專利名稱:使用自主數(shù)據(jù)處理機的計算機處理和程序設(shè)計方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計算機處理和程序設(shè)計方法,尤其涉及使用新型自主數(shù)據(jù)處理機的方法。
背景技術(shù):
計算機處理已從其最初的理論基礎(chǔ)發(fā)展到當前作為面向機器的樣式,其中機器指令由中央處理器(CPU)執(zhí)行從而將原始數(shù)據(jù)和連續(xù)步驟中的輸入轉(zhuǎn)換成有用的輸出。為了實現(xiàn)包含越來越大量數(shù)據(jù)的越來越復雜的任務(wù),計算機硬件以指數(shù)增加的方式在速度、能力、容量方面發(fā)展,現(xiàn)在正接近原子尺度和光的速度與波長的物理極限。通過線性程序設(shè)計方法的復雜任務(wù)的程序設(shè)計需要密集的代碼編寫,這可能要求幾百萬行的代碼且易于受錯誤和交叉代碼沖突的影響,它們都可能需要密集的調(diào)試。自然還需要程序設(shè)計用為所選的操作系統(tǒng)選擇的一種程序設(shè)計語言完成,這導致過時和常規(guī)的系統(tǒng)。
開發(fā)了面向?qū)ο蟮某绦蛟O(shè)計(OOP)方法以便用自含且自執(zhí)行的模塊分解較大的程序設(shè)計任務(wù)。因此,已為特定功能進行優(yōu)化的模塊可以在多種多樣更大的程序設(shè)計任務(wù)中以模塊化形式按目錄分類和重復使用。但是,OOP方法需要在程序設(shè)計環(huán)境上作為整體執(zhí)行類定義層次,導致OOP模塊的封閉系統(tǒng)和程序庫必須被重新編譯以便支持各種環(huán)境。
過去的十年間開發(fā)了并行處理方法來嘗試通過由CPU的陣列協(xié)力將處理任務(wù)分解成幾部分來獲得增加的能力。但是,并行處理的常規(guī)方法需要程序設(shè)計任務(wù)的集中管理和控制,這對任務(wù)的協(xié)調(diào)和同步方面有嚴格的要求。迄今,并行處理方法還在繼續(xù)采用線性程序設(shè)計方法,它很密集且易于出錯,特別是在并行操作時,并受所選的程序設(shè)計語言和操作系統(tǒng)控制。
近些年,隨著大規(guī)模分布式網(wǎng)絡(luò)的產(chǎn)生,開始建議通過將大而復雜的任務(wù)分解成很小的塊并在網(wǎng)絡(luò)上協(xié)作的計算機之間將其分布來進行這些非常大或復雜的任務(wù),這通常稱作“分布計算”或“網(wǎng)絡(luò)計算”。對分布計算的建議代表計算樣式從高計算強度的任務(wù)處理向在網(wǎng)絡(luò)上的資源之間廣泛分布數(shù)據(jù)并通過分布工作用低強度CPU局部處理的轉(zhuǎn)變。但是,由于使用相同的線性程序設(shè)計方法和集中化的管理和控制,迄今的分布計算樣式還需要嚴格的程序設(shè)計和協(xié)作來實現(xiàn)相當?shù)慕Y(jié)果。一個或多個單獨處理工作的錯誤或與使用集中處理管理的通信或協(xié)作關(guān)聯(lián)的時間延遲可以產(chǎn)生瓶頸,這影響了這種方法的效果。
利用多個異步計算機處理的一種方法稱作“基于流的程序設(shè)計”(“FBP”),如在1994年紐約Von Nostrand Reinhold出版的J.Paul Morrison的,F(xiàn)low-BasedProgrammingA New Approach To Application Development中詳細描述的。該參考文獻根據(jù)以下三個原則描述了基于流的程序設(shè)計“異步處理、具有其特有的壽命的數(shù)據(jù)包和連接的外部定義”。在FBP中,應用定義為“黑箱”處理的網(wǎng)絡(luò),它通過預定的條件交換數(shù)據(jù)。FBP是通過“黑箱”處理的網(wǎng)絡(luò)的步進標記的數(shù)據(jù)包的處理,因此是數(shù)據(jù)為中心的處理。FBP方法需要極高的預言能力來良好地工作。
因此,本發(fā)明的主要目的是提供計算機處理和有關(guān)的程序設(shè)計方法,它分散了計算機處理任務(wù)的管理并允許用自適應的選項,諸如采用可得的最有效通路來自主進行數(shù)據(jù)的分布或并行處理。
本發(fā)明的進一步的目的在于提供新的程序設(shè)計方法,它被最佳地設(shè)計來通過無需束縛的程序設(shè)計環(huán)境從而可以支持多個程序設(shè)計語言的同時使用并消除集中的處理管理來促進并行或分布數(shù)據(jù)處理。它還旨在降低復雜的處理任務(wù)所需的程序設(shè)計強度和情況特殊性質(zhì)和這種程序設(shè)計出錯的易感性。
發(fā)明概述根據(jù)本發(fā)明,一種計算機處理和相關(guān)程序設(shè)計方法要求創(chuàng)建多個軟件實體(這里稱作“分子”),它可以被動態(tài)地配置以自主地處理數(shù)據(jù)。分子可以發(fā)送和接收能夠表示分子的狀態(tài)、是否實現(xiàn)了處理任務(wù)、處理任務(wù)的結(jié)果以及是否要通過創(chuàng)建一個或多個“下一個”分子來終止、中斷、重新配置或繼續(xù)分子的操作的信號。由共用的一組軟件微組分來創(chuàng)建分子,可以以任一程序設(shè)計語言編寫所述微組分以便在任一操作系統(tǒng)環(huán)境中運行。
為整個處理任務(wù)創(chuàng)建的分子可駐留在單個計算資源(CPU和數(shù)據(jù)庫),但是,它們理想地適合于部署在網(wǎng)絡(luò)上或并行處理環(huán)境中的不同類型的分布計算資源上。以一種或多種適合于分子即將操作于其上的計算資源的程序設(shè)計語言將每個分子進行編程。分子可以用編譯的或運行時間編譯的代碼的混合運行,允許它們在僅有部分處理適應于在其上運行的計算資源上運行。分子可以彼此發(fā)送信號并用共用的網(wǎng)絡(luò)協(xié)議發(fā)送和接受數(shù)據(jù)。它們運行以便自主地完成其各數(shù)據(jù)處理任務(wù)直到完成整個數(shù)據(jù)處理任務(wù)??梢酝ㄟ^在動態(tài)地適合完成任務(wù)的“邏輯網(wǎng)絡(luò)”中創(chuàng)建分子和構(gòu)造它們的操作和相互作用來進行整個數(shù)據(jù)處理任務(wù)。
適合并行處理環(huán)境,可以動態(tài)地配置分子在并行計算資源上自主運行。定義邏輯網(wǎng)絡(luò)以便允許對它旨在處理的數(shù)據(jù)對象和對作為中間CPU資源的并行處理機陣列的任何可得的處理機的有效訪問。處理機訪問的調(diào)度可以由主控制器程序或由獨立的調(diào)度程序分子或小型邏輯網(wǎng)絡(luò)處理。將分子編程來將它們的狀態(tài)、結(jié)果和下一個分子的終止、重新配置或產(chǎn)生發(fā)送信號。為了更有效和快速地完成數(shù)據(jù)處理任務(wù),分子的分散、自主操作避免了常規(guī)并行處理方法中的剛性的調(diào)度結(jié)構(gòu)和時間延遲沖突。
作為軟件配置的實體,分子由以下基本軟件微組分組成信號處理機、輸入處理機、接口處理機、方法處理機、有關(guān)方法和輸出處理機。信號處理機能發(fā)送和接受用于調(diào)用其它分子的信號和將網(wǎng)絡(luò)上的其它分子和資源發(fā)送信號。輸入處理機接受數(shù)據(jù)輸入并將數(shù)據(jù)排隊。接口處理機確定到分子的輸入何時滿足預定條件以便打開到方法處理機的通路。方法處理機根據(jù)預定方法處理從輸入處理機的隊列發(fā)送的數(shù)據(jù)并將輸出發(fā)送到輸出處理機。
適合軟件程序設(shè)計方法,創(chuàng)建分子的邏輯網(wǎng)絡(luò)以便在任一類型的任何可得的計算資源上運行并以任一格式和在任一位置處理數(shù)據(jù)。將初始化文件編程來創(chuàng)建計劃中的計算資源上的分子的初始主機。初始分子用來產(chǎn)生表示程序步驟進行的連續(xù)層或波中的下一個分子。構(gòu)成每個初始化文件來組合來自標準微組分類犁庫的分子的軟件微組分。根據(jù)它們的功能客觀地選擇這些標準類型,且不是00P分層中剛性的類類型。在適應計劃在其中操作的環(huán)境的程序設(shè)計語言中所需和編程時,可以方便地創(chuàng)建新型的軟件微組分。
使用本發(fā)明的計算機處理和程序設(shè)計方法,可以通過設(shè)計由部分分子構(gòu)造的邏輯網(wǎng)絡(luò)來進行復雜計算和數(shù)據(jù)處理任務(wù),其中所述部分分子使用任何類型的任何可得計算資源并在包括網(wǎng)絡(luò)上的任何位置。因此,例如,可以用操作不同傳統(tǒng)的系統(tǒng)的分子、用不同語言編程的應用程序和用任一格式存儲的任一類型的數(shù)據(jù)設(shè)計邏輯網(wǎng)絡(luò)。結(jié)果,可以更有效地進行分布或并行處理環(huán)境中數(shù)據(jù)處理任務(wù),并可以承擔完全新型的數(shù)據(jù)處理任務(wù)。
將在以下本發(fā)明詳細的描述中參考
本發(fā)明的其它目的、特點和優(yōu)點。
圖1A是根據(jù)本發(fā)明軟件實體(“分子”)的一般示意圖,圖1B示出分布計算或并行處理環(huán)境中分子的邏輯網(wǎng)絡(luò)的部署。
圖2示出用于基本類型軟件分子的結(jié)構(gòu)的較佳實例,它具有信號處理機、輸入處理機、接口處理機、方法處理機和輸出處理器微組分。
圖3更詳細地示出軟件分子的接口處理機的邏輯操作。
圖4A和4B示出兩個方法處理類型的實例,分別是塊方法處理和流方法處理。
圖5A-5F示出本發(fā)明的程序設(shè)計方法和常規(guī)面向?qū)ο蟮某绦蛟O(shè)計的比較。
圖6A-6D一步一步地示出3個基本類型的分子,塊處理、流處理和流塊處理的運行時間的執(zhí)行。
圖7示出如何應用新穎的計算機處理和程序設(shè)計方法來產(chǎn)生可以完成數(shù)據(jù)同步任務(wù)的邏輯網(wǎng)絡(luò)。
詳細說明在本發(fā)明中,一種新的計算機處理和程序設(shè)計方法要求創(chuàng)建多個軟件實體(“分子”),它們被編程來自主地與其它分子以及可得的計算資源聯(lián)系來處理數(shù)據(jù)。從共用的一組以任何程序設(shè)計語言編程的軟件微組分(micro-component)創(chuàng)建分子,以便在任何操作系統(tǒng)環(huán)境中運行。它們在分子的邏輯網(wǎng)絡(luò)中被配置以便進行數(shù)據(jù)處理的任務(wù),它可以是整個處理任務(wù)的一部分。邏輯網(wǎng)絡(luò)或邏輯網(wǎng)絡(luò)的網(wǎng)絡(luò)可以駐留在單個計算機環(huán)境中,但特別適合在并行處理和分布處理環(huán)境中使用。
參考圖1A,示出了根據(jù)本發(fā)明的軟件實體(“分子”)1,0的一般示意圖。每個軟件分子10基本由其配置(數(shù)據(jù))文件、信號處理機40、輸入處理機42、接口處理機44、方法(47)和方法處理機46以及輸出處理機48(將在以下的標題“軟件分子”中進一步地詳細描述)組成。從本地或遠程的源聚集和組合分子的部分以創(chuàng)建分子(在以下的標題“程序設(shè)計方法”中進一步地詳細描述)。每個分子被編程來自主處理所定義的數(shù)據(jù)對象,并且可以向其它分子發(fā)送信號和從它們接收信號,通過它們所述分子可以在邏輯網(wǎng)絡(luò)中相互作用從而完成處理任務(wù)。分配邏輯網(wǎng)絡(luò)以便在任何可得的計算資源上運行,并通過計算環(huán)境中的通信總線和/或通過網(wǎng)絡(luò)環(huán)境中的網(wǎng)絡(luò)(在圖中通過連接線表示)與其它邏輯網(wǎng)絡(luò)上的其它分子通信。通過通信連接,分子可以發(fā)送和接收數(shù)據(jù)到其信號處理機40、通過任何輸入源存取數(shù)據(jù)到其輸入處理機42并通過其輸出處理機48輸出數(shù)據(jù)。
參考圖1B,示出用于分布計算環(huán)境的分子的邏輯網(wǎng)絡(luò)20的部署。通過任何類型的網(wǎng)絡(luò)(由連接線表示)連接本地計算機、LAN/WAN服務(wù)器、CPU、網(wǎng)絡(luò)服務(wù)器、數(shù)據(jù)庫、I/O裝置等形式的多個分布計算資源。該網(wǎng)絡(luò)可以是局域網(wǎng)(LAN)、廣域網(wǎng)和/或全球網(wǎng)(因特網(wǎng))。當邏輯網(wǎng)絡(luò)中的整個網(wǎng)絡(luò)可以駐留在單個計算資源處并在網(wǎng)絡(luò)上與具有要用分子處理數(shù)據(jù)的其它計算資源通信時,如果旨在于特定計算資源處處理數(shù)據(jù)的邏輯網(wǎng)絡(luò)在這些計算資源處駐留并本地處理數(shù)據(jù)并代替地通過網(wǎng)絡(luò)將它們的狀態(tài)信息和結(jié)果與其它分子通信,就大大提升了系統(tǒng)的效率。因此,例如,用于處理COBOL格式的數(shù)據(jù)的分子可以駐留在存儲COBOL格式數(shù)據(jù)的COBOL服務(wù)器上,或用于處理JAVA空間內(nèi)數(shù)據(jù)的分子可以駐留在具有所需數(shù)據(jù)和本地駐留的JAVA虛擬機的計算資源處。在這種分布模式中,本地駐留的分子的邏輯網(wǎng)絡(luò)可以用其所駐留的計算資源所使用的程序設(shè)計語言編程,從而它可以方便地在該環(huán)境中操作。
可以類似地在并行處理環(huán)境中部署邏輯網(wǎng)絡(luò),或邏輯網(wǎng)絡(luò)的網(wǎng)絡(luò),所述的并行處理環(huán)境具有一組CPU資源(由CPU#1,...,CPU#6表示)和相關(guān)的數(shù)據(jù)庫和I/O裝置。構(gòu)成邏輯網(wǎng)絡(luò)以便允許每個分子對它所希望處理的數(shù)據(jù)對象的有效訪問。可以通過資源管理器分子或邏輯網(wǎng)絡(luò)排定分子對CPU計算資源的訪問。可供選擇地,它可以和諸如在并行處理環(huán)境中常規(guī)使用的CPU調(diào)度程序(scheduler)通信。由于將分子設(shè)計成自主處理數(shù)據(jù),所以它們無需通過集中的處理管理監(jiān)控和控制就可以進行操作。分子將它們的狀態(tài)信息、結(jié)果和下一個分子的終止、重新配置或產(chǎn)生發(fā)送信號給系統(tǒng)中建立的其它分子或邏輯網(wǎng)絡(luò)。但是,還可能以混合安排使邏輯網(wǎng)絡(luò)和常規(guī)控制器程序進行通信。
軟件分子參考圖2,示出了基本類型的軟件分子的較佳結(jié)構(gòu),它具有信號處理機40、輸入處理機42、數(shù)據(jù)接口處理機44、方法處理機46和輸出處理機48。信號處理機40能夠?qū)⑿盘柊l(fā)送到通信總線或網(wǎng)絡(luò)上的其它分子和其它資源并能從它們接收信號,這類似于CB或私人無線電網(wǎng)絡(luò)上分散的信號廣播。以通信總線或網(wǎng)絡(luò)上使用的共用協(xié)議將信號廣播,例如因特網(wǎng)通信上使用的TCP/IP協(xié)議。
信號處理機40可以在系統(tǒng)內(nèi)進行以下的基本程序1.從數(shù)據(jù)源讀取配置文件。配置文件包含分子的子部分的名字、屬性和類型。
2.通過按照配置文件中所定義的裝配子部分來構(gòu)建分子。通過從具有存儲的處理機類型的文件庫的本地或遠程源請求該部分的名字和類型進行子部分的加載或調(diào)用。
3.選擇信號環(huán)境。信號處理機收聽配置文件中指定的信號環(huán)境。
4.將分子刪除、中止或重啟。
5.發(fā)送信號到指定的信號環(huán)境或從它發(fā)送信號。
6.解釋其接收的信號,并將該信號傳遞給合適的分子的子部分,包括重新配置的能力。信號處理機可以將要求發(fā)送給子部分。信號處理機請求的實例包括(a)到輸入處理機或輸出處理機以降低隊列大小;(b)到5個子部分中的任何一個以寫出它們的狀態(tài)并隨后消失(die);(c)暗示或命令5個子部分中的任何一個重新映射(re-mapping);(d)修改緩沖大小或存儲器的使用。
7.請求加載“下一個”或其它分子。信號處理機查看指定的名字登記以便了解是否已存在“下一個”分子。如果存在,則信號處理機將使分子重新映射,或可供選擇地,如果它被指定了,則將不請求“下一個”分子。如果不存在,則要求創(chuàng)建新的信號處理機,它將加載“下一個”分子。新的信號處理機不是子線程,而是完整地分開的和獨特的新實體。這是和其它程序設(shè)計樣式的區(qū)別,在所述其它的程序樣式中所有的線程是主要的母線程的子線程,它們一起形成應用程序。
可以以任何適應分子駐留的計算資源的通信或“信號”環(huán)境的方式實現(xiàn)信號處理機的信號發(fā)送和接收。在常規(guī)計算機或網(wǎng)絡(luò)環(huán)境中,信號處理機可以發(fā)行或接收“信號”作為尋址于系統(tǒng)中或網(wǎng)絡(luò)上的指定分子的數(shù)據(jù)包。來自信號處理機的信號可以根據(jù)名字登記中保持的地址而路由到目標分子。名字登記可以由另一個分子或邏輯網(wǎng)絡(luò),或常規(guī)的資源寄存器(register)保持。例如,諸如JAVATM共享數(shù)據(jù)環(huán)境的常規(guī)數(shù)據(jù)共享環(huán)境具有為給定的應用建立的服務(wù)器、客戶機和數(shù)據(jù)通道的寄存器。信號處理機還可以“收聽”用于全局廣播給所有分子的信號環(huán)境,或者它可以調(diào)到如配置文件中所列出的指定頻道,或者等待來自任何指定信號環(huán)境的任何信號,或者可以與邏輯網(wǎng)絡(luò)中其它分子的組一起調(diào)到同樣的頻道。
將分子的處理機部分構(gòu)成共用的一組類型,它們可以被調(diào)用來創(chuàng)建或動態(tài)地配置分子??梢酝ㄟ^將所需處理機類型的名字發(fā)送信號來裝配分子,以便從存儲器取回代碼的對應部分。在這種方式中,可以根據(jù)數(shù)據(jù)源或存儲模型的正確類型訪問任何數(shù)量的輸入和輸出處理機的類型。類似地,可以用許多不同類型的方法處理機配置分子。當向接口處理機提供新的配置信息時,將與為給定條件調(diào)用的方法處理機類型有關(guān)的新信息進行存儲,從而在存在這些情況時分子可以執(zhí)行新方法??梢酝ㄟ^本地存儲器、LAN、WAN或因特網(wǎng)從所存儲的文件訪問用于分子的5個部分處理機中的任何一個的源或?qū)ο蟠a的合適部分。
在附錄I中提供的列表中示出了可能在分子配置文件中涉及的處理機類型和屬性的范圍的基本實例。但是,可以理解,可創(chuàng)建的處理機的數(shù)量、類型和屬性是無限制的,且可以隨用于配合不同類型的存儲模型、數(shù)據(jù)共享環(huán)境和計算資源的程序員的需要相應地擴展。
輸入處理機42建立從指定類型的存儲模型到數(shù)據(jù)源的分子連接,如程序員所確定的。通過設(shè)計,輸入處理機提供對任何存儲模型的數(shù)據(jù)源的接口。它將進入的數(shù)據(jù)源排列成隊列允許的范圍,如所選類型的輸入處理機所確定的,隨后向接口處理機44登記它已將數(shù)據(jù)排隊了。輸入處理機還允許分子的其它子部分查詢其數(shù)據(jù)。
在所示的實例中,在輸入處理機42a以及輸入處理機42b的隊列“B”中接受對存儲器或數(shù)據(jù)“A”的輸入指針,而在輸入處理機42c的隊列“E”中接受輸入指針/數(shù)據(jù)“D”。
由分子中裝配的輸入處理機的類型確定可以進入任何輸入處理機的數(shù)據(jù)源的類型。每種類型的輸入處理機可以為給定存儲模型如何接受數(shù)據(jù)指定給定存儲模型的特殊數(shù)據(jù)通道。例如,可以使用常規(guī)數(shù)據(jù)共享環(huán)境的存儲模型和數(shù)據(jù)處理功能,諸如Sun Microsystems,Mountain View,CA的Java共享數(shù)據(jù)工具包(JSDTTM)。在產(chǎn)生輸入處理機時,為系統(tǒng)的存儲環(huán)境登記指定的數(shù)據(jù)通道。隨后可以將來自指定的數(shù)據(jù)通道上的源(系統(tǒng)中的其它分子或第三方客戶機)的數(shù)據(jù)路由到輸入處理機。通過為特定的數(shù)據(jù)類型選擇輸入處理機,可以免去在運行時間上進行數(shù)據(jù)類型檢查的需要??梢詫懭敫鞣N類型的輸入處理機以便適應將被處理的各種文件類型。在較佳的結(jié)構(gòu)中,一旦輸入處理機接受了數(shù)據(jù)源并開始處理數(shù)據(jù),則數(shù)據(jù)將是“無類型的”直到輸出處理機將到給定環(huán)境的接口的數(shù)據(jù)進行格式化或設(shè)置類型。使用多個輸入處理機的優(yōu)點在于允許從多個存儲模型同時訪問數(shù)據(jù)源,這些存儲模型在同一分子中被聚合并處理。
通過確定分子的輸入何時滿足一個或多個預定的條件,接口處理機44執(zhí)行分子的中央功能。通過允許分子等待滿足預定條件的輸入,而非必須由指示命令和由集中的處理管理監(jiān)控,分子能夠等待、查看和處理,從而它具有自主行動的特性。這不同于常規(guī)線性程序設(shè)計的代碼指令,后者中它被寫入來在特定順序中在特定的時間執(zhí)行特定的任務(wù)。預定條件可以是出現(xiàn)所有所需數(shù)據(jù)輸入到輸入處理機??晒┻x擇地,它可以包括出現(xiàn)由信號處理機接收的信號。還可以通過信號處理機接受的信號動態(tài)地重新配置接口處理機,以便改變預定的條件來調(diào)用用于給定的一組條件的方法或輸出處理機以便被調(diào)用來處理結(jié)果。
根據(jù)存在哪種輸入數(shù)據(jù)源,接口處理機可以具有用于多個不同方法處理機和有關(guān)方法中的每一個的預定輸入條件。在等待來自一個或多個輸入處理機的指示的接口處理機內(nèi),分子具有多個查找表。在幫助輸入處理機和方法處理機之間的通信之前,接口處理機將等待,直到滿足查找表中指定的所有輸入。
接口處理機可以使用用于監(jiān)控多個輸入條件的任何合適裝置來確定何時滿足預定條件的需要。該功能可以通過等效于位陣列、條碼表或開關(guān)陣列的軟件實現(xiàn)。在滿足所有所需輸入條件時,接口處理機44請求各方法處理機46并將用于調(diào)用有關(guān)方法47的合適的參考傳遞給它。在圖2所示的實例中,輸入處理機42a和42b告知接口處理機44正確的指針/數(shù)據(jù)源被排隊,以使位陣列中指定的標記被設(shè)定為“1”來表示輸入條件“C”,而輸入處理機42c設(shè)定用于輸入條件“F”的標記位。
通過出現(xiàn)另一個輸入條件,例如被發(fā)送到信號處理機40的信號,位陣列第三行中的第四個標記位被設(shè)定為“1”。由于位陣列的第三行中所有所需的標記位都被設(shè)定為“1”,所以接口處理機44打開通道“G”來調(diào)用合適的方法處理機46,它隨后請求用于處理到輸出處理機48的輸入的有關(guān)方法47。
圖3中,描述了接口處理機的邏輯操作的更詳細的方法。接口處理機44存儲表示為“查找#1”的第一條件所必需的預定輸入。查找#1指定在接口處理機44的預定條件下將產(chǎn)生什么事件,包括“所有數(shù)據(jù)出現(xiàn)”、“超時”和“信號”。接口處理機44可以具有一個或多個查找。在該實例中,查找#1描述一個根據(jù)三個數(shù)據(jù)源的出現(xiàn)的接口處理機,該三個數(shù)據(jù)源是共享存儲數(shù)據(jù)A、硬件存儲數(shù)據(jù)B和網(wǎng)絡(luò)存儲數(shù)據(jù)C。
在查找#1中,根據(jù)是否出現(xiàn)共享存儲數(shù)據(jù)A將指數(shù)1設(shè)定成開/關(guān),同樣地,指數(shù)2用于硬件存儲數(shù)據(jù)B而指數(shù)3用于網(wǎng)絡(luò)存儲數(shù)據(jù)C。當所有數(shù)據(jù)都出現(xiàn)時,接口處理機請求合適的方法處理機46a“所有數(shù)據(jù)出現(xiàn)”。作為缺省條件,如果經(jīng)過了指定的時間間隔而沒有滿足所有的數(shù)據(jù)輸入條件,則用于“超時”的指數(shù)被設(shè)定為“開”以調(diào)用方法處理機46b。作為另一種缺省條件,如果在滿足所有數(shù)據(jù)輸入條件之前信號處理機40接受到指定的信號,則將“信號”指數(shù)設(shè)定為“開”以調(diào)用方法處理機46e。查找#2示作根據(jù)兩個數(shù)據(jù)源,硬件存儲數(shù)據(jù)B和網(wǎng)絡(luò)存儲數(shù)據(jù)C。接口處理機總是知道哪個相關(guān)的輸入處理機42具有數(shù)據(jù),因為當輸入處理機接受到新數(shù)據(jù)或不再具有數(shù)據(jù)時,它會通知接口處理機。
再參考圖2,當滿足預定的輸入條件時,調(diào)用各方法處理機(對于三組預定條件的類型“H”、“K”和“N”),請求在輸入數(shù)據(jù)上進行的相關(guān)的方法47或處理步驟,并將輸入數(shù)據(jù)從輸入處理機42提供到方法47。可以通過通路“G”將輸入數(shù)據(jù)作為塊處理,或作為流數(shù)據(jù)。如果輸入數(shù)據(jù)是流,則方法處理機建立用于流的輸入通路,它由來自方法處理機的隊列“I”和來自輸入處理機的輸入響應“J”處理。對于數(shù)據(jù)塊,方法47將輸出M返回到方法處理機46,它將輸出M發(fā)送到輸出處理機48并隨后在其之后清除。對于流數(shù)據(jù),輸出M被直接發(fā)送到輸出處理機48直到方法終止。方法的實例可以是計算算術(shù)和、將數(shù)據(jù)分類、進行邏輯操作等等,并可以包括整個第三方應用。
圖4A和4B示出兩個方法處理類型的實例,分別是塊方法處理和流方法處理。在塊方法處理中,方法處理機46從接口處理機44接收請求方法47所需的進入數(shù)據(jù)的參考。隨后,方法處理機46查詢來自輸入處理機42的進入數(shù)據(jù),請求塊方法47并將響應傳遞給方法47。隨后,方法處理機46等待方法47返回其結(jié)果。隨后,它從輸出處理機48獲得輸出處理機參考并將結(jié)果發(fā)送給它們。如果不存在參考,則方法處理機可以創(chuàng)建(調(diào)用)輸出處理機。隨后,將數(shù)據(jù)傳遞到輸出處理機48,方法處理機46退出。
在流方法處理中,方法處理機46從接口處理機44接收請求方法47所需的進入數(shù)據(jù)的參考。方法處理機46還獲得或創(chuàng)建用于流出數(shù)據(jù)的輸出處理機48參考。在滿足預定條件時,請求流方法47,并將輸入和輸出處理機參考傳遞到流方法47。隨后,流方法47可以從輸入處理機42接收數(shù)據(jù)、處理它并將其直接提供給輸出處理機48。在該流方式中利用方法處理機46允許分子用作“連接引擎”,它允許邏輯網(wǎng)絡(luò)將方法47的動態(tài)鏈串在一起。
如程序員所確定的,在將被提供輸出的存儲環(huán)境類型中,輸出處理機48建立到數(shù)據(jù)通道的合適連接。如果沒有在輸出處理機的配置文件中指定用于輸出的數(shù)據(jù)通道,則可以啟用輸出處理機以便在運行時間上響應現(xiàn)有條件創(chuàng)建數(shù)據(jù)通道。通過設(shè)計,輸出處理機因而允許任何類型的存儲模型的接口。它將流出的數(shù)據(jù)源排隊成隊列所允許的范圍,如程序員根據(jù)所選的輸出處理機的類型所確定的。
使用輸出處理機的優(yōu)點在于允許用于輸入數(shù)據(jù)的多個存儲模型的同時分配,它們在同一分子中聚合和處理??梢杂泻芏囝愋偷妮敵鎏幚頇C。特別的優(yōu)點是用于共享存儲計算機系統(tǒng)的輸入和輸出處理機的使用。取代移動實際的數(shù)據(jù),對于另一個或下一個要操作的分子,可以在分子內(nèi)或從一個分子到另一個地移動數(shù)據(jù)或過程的指針。這給予了分子相比常規(guī)的面向?qū)ο蟮某绦蛟O(shè)計(OOP)方法速度上的優(yōu)勢。OOP方法也可以傳遞指針,但必須通過OOP程序處理指針來找到指針。相反,分子可以從另一個分子接收原始指針并用下一個操作直接處理。
如程序員所確定的,每個分子具有微組分,這些微組分允許分子進行自主行動來將由規(guī)定的方法所需的數(shù)據(jù)處理為想要的數(shù)據(jù)。在構(gòu)建邏輯網(wǎng)絡(luò)所針對的無論哪種數(shù)據(jù)共享環(huán)境中,數(shù)據(jù)移動到指定數(shù)據(jù)通道上的分子或從其移動出。如果任何數(shù)據(jù)都不可得,則分子將簡單地等待,并不必指示下一步將作什么??梢越o每個分子唯一的名字,它保存在名字登記中。因此,任何分子可以根據(jù)其唯一的名字將該分子發(fā)信號,且不能在同一登記中創(chuàng)建同一名字的另外的分子。
可以在任何時候通過將終止信號發(fā)送到信號處理機40終止分子的處理。在它們存在期間的任何一點,可以將分子停止并通過發(fā)送到信號處理機40的重新配置信號而針對不同的模式或方法重新配置。還可以將分子發(fā)送信號來寫出其當前的配置(狀態(tài)信息),從而可以在任何一時間點分析處理狀態(tài)。相反,常規(guī)的程序不保持動態(tài)改變的狀態(tài)信息,因此不能解釋在任一特定時間時在運行什么。
在分子的5個子部分中的任一個或全部接收到一“除去(kill)”信號且所選的處理機類型支持保留關(guān)于處理狀態(tài)的信息時,處理機將它們的狀態(tài)信息寫入可以被重新加載的分子配置文件。因此,如果由于任一原因系統(tǒng)故障,則可以從分子獲得狀態(tài)信息,并重新創(chuàng)建每個分子和整個邏輯網(wǎng)絡(luò)的狀態(tài)。這允許系統(tǒng)管理員定位哪里或如何產(chǎn)生故障,還允許將該配置文件加載入另一個分子以便一旦改正了故障還能再繼續(xù)處理。重新建立過程(邏輯網(wǎng)絡(luò))的“狀態(tài)”的能力和與其它程序設(shè)計樣式中的不同。如果系統(tǒng)出現(xiàn)故障,通常整個過程必須從開始處重新啟動并通過每次執(zhí)行一步地步進直至到達故障。使用本發(fā)明的程序設(shè)計方法,使用邏輯網(wǎng)絡(luò),可以就在故障點之前重新創(chuàng)建過程,大大地提升了診斷速度。
分子的配置文件指定分子將作為什么運行狀態(tài)運行,諸如“運行一次”、“運行直至沒有數(shù)據(jù)”或“運行直到信號通知消失”。當完成一次運行時,當其輸入處理機和輸出處理機中不再有數(shù)據(jù)時,或當信號處理機接收信號來從信號環(huán)境中除去分子時,分子可以將其本身清除(clean itselfup)。這可以通過清除軟件文件或禁用其可執(zhí)行代碼來實現(xiàn)。因此,可以通過處理每個分子基礎(chǔ)上的“清除”來保持邏輯網(wǎng)絡(luò)的完整性。在終止之后不遺留不正確的數(shù)據(jù)或狀態(tài)信息,其中它們可能使其它處理機變壞。分子水平上的清除還提供有效的存儲使用并不必定期清除程序。僅在所需的運行時間內(nèi)加載分子,所以當分子終止時立即將機器資源釋放。對于流方法,可以創(chuàng)建分子,只要提供數(shù)據(jù),它就使用可得的資源來流化數(shù)據(jù),在這一點上釋放了機器資源。如果動態(tài)地確定分子的必要的壽命,程序員可以指示信號處理機來收聽合適的信號環(huán)境來接收除去信號??梢詫⒃摮バ盘柊l(fā)送到分子的每個子部分以便將其本身清除,這可以包括寫出它們的狀態(tài)用作將來的參考。該程序設(shè)計方法用每個分子(每個數(shù)據(jù)處理子步驟)將其本身消除的獨特能力提供了機器資源的有效使用。在另一種程序設(shè)計樣式中,雖然在運行時間期間產(chǎn)生某些清除,但不會釋放大部分機器資源直到應用程序退出。
邏輯網(wǎng)絡(luò)程序設(shè)計方法本發(fā)明的程序設(shè)計方法要求構(gòu)建一個或多個邏輯網(wǎng)絡(luò)來進行整個處理任務(wù)的增加的處理步驟。通過一組增加的處理步驟完成處理任務(wù)的程序設(shè)計是程序設(shè)計領(lǐng)域中一件技術(shù)、靈活和藝術(shù)的事,并超出了本描述的范圍。新程序設(shè)計方法的基本特性是邏輯網(wǎng)絡(luò)的創(chuàng)建,該邏輯網(wǎng)絡(luò)工作地連接到由多個分子構(gòu)成的計算資源,這些分子可以自主地進行數(shù)據(jù)處理步驟。邏輯網(wǎng)絡(luò)的特定結(jié)構(gòu)取決于所需進行的處理任務(wù)(在以下的“數(shù)據(jù)同步實例”中描述了一特殊實例)。邏輯網(wǎng)絡(luò)的創(chuàng)建中的基本元素是至少一個分子的創(chuàng)建,所述分子具有以上描述的基本的5個子部分。
為了編寫分子,程序員具有一處理機類型庫,由該庫創(chuàng)建分子。程序員首先確定從哪個數(shù)據(jù)源獲得數(shù)據(jù),這些數(shù)據(jù)源諸如存儲的文件、因特網(wǎng)目錄、JSDTTM空間(Sun MicroSystems的商標,Mountain View,CA),IBM TubuleTM空間(IBM公司的商標,Armonk,NY)等等,和用什么方法來處理數(shù)據(jù)。程序員選擇合適的輸入和輸出處理機類型,它們和設(shè)置或?qū)Ⅰv留數(shù)據(jù)源的數(shù)據(jù)環(huán)境相匹配,隨后選擇合適的接口處理機。程序員通過確定為了請求方法處理機需要滿足哪些輸入條件來配置接口處理機。隨后,程序員選擇將調(diào)用的方法的名字,和哪個輸出處理機與被處理的數(shù)據(jù)將被發(fā)送至的環(huán)境匹配。程序員確定分子是否將運行一次、運行直到?jīng)]有數(shù)據(jù)或運行直到收到消失信號。程序員還確定是否使用超時時間段、什么超時方法和當接收到特定類型的信號時請求什么方法。最后,程序員定義將加載什么另外的或下一個分子,和將使用什么信號來重新映射這個或其他的分子。
這導致一個分子單元。程序員將它保存為一個初始文件并給它一個獨特的名字,該名字登錄在名字登記中。程序員對邏輯網(wǎng)絡(luò)中創(chuàng)建的每個分子進行類似的處理。隨著進一步發(fā)展了這種樣式的程序設(shè)計,在用于程序設(shè)計使用的庫中可以存儲用于優(yōu)化分子和甚至整個邏輯網(wǎng)絡(luò)的標準初始化文件。處理機的庫或列表的發(fā)展被認為能允許外行不寫一行代碼而創(chuàng)建完整處理分子或整個應用程序。
通過本發(fā)明的程序設(shè)計方法將數(shù)據(jù)處理任務(wù)編程的結(jié)果是通過創(chuàng)建分子的邏輯網(wǎng)絡(luò)來執(zhí)行程序,其中所述分子的邏輯網(wǎng)絡(luò)可以自主地在任何計算資源上處理數(shù)據(jù),不需要集中的處理管理而將它們分配到上述的計算資源。進一步的重要特點是能夠動態(tài)地重新配置邏輯網(wǎng)絡(luò)的一個或多個分子,以便或者隨運行時間的改變,或者隨程序的發(fā)展或擴展,或者隨程序錯誤的校正,改變其數(shù)據(jù)處理功能。
處理任務(wù)中的步驟的執(zhí)行是通過信號處理機的生成的動作完成的。在產(chǎn)生信號處理機時,在讀取其配置文件時,它分叉并創(chuàng)建配置文件中指出的任何其他的分子。
信號處理機還將其分子重新映射到另一個分子名字,或可以請求另一個方法。因此,分子的每個層構(gòu)建“其本身之前以外(out ahead ofitself)”的邏輯網(wǎng)絡(luò)。結(jié)果,將產(chǎn)生分子的連續(xù)的層,隨后將擱置(sit)并等待實現(xiàn)它們的可得數(shù)據(jù)源的輸入條件。
圖5A-5F示出本發(fā)明的邏輯網(wǎng)絡(luò)程序設(shè)計方法和常規(guī)面向?qū)ο蟮某绦蛟O(shè)計的比較。該實例使用根據(jù)給定的查找輸入查找汽車數(shù)據(jù)的數(shù)據(jù)處理任務(wù)的簡單化比較。
通過一個或多個種類的汽車類型、制造、風格、駕駛特性、操縱特性、顏色、剎車特性以及加速特性,建立數(shù)據(jù)處理程序來進行數(shù)據(jù)庫的查找。圖5A-5C中示出邏輯網(wǎng)絡(luò)程序設(shè)計方法的效果,而圖5D-5F中是面向?qū)ο蟮某绦蛟O(shè)計方法。
圖5A中,加載汽車分子。當用查找輸入A,C,D實現(xiàn)汽車分子時,請求創(chuàng)建操縱分子,它依次請求創(chuàng)建駕駛分子。將輸入傳遞到駕駛分子,它處理這些輸入并返回一結(jié)果。在面向?qū)ο蟮某绦蛟O(shè)計方法中,如圖5所示,加載整個汽車對象,并將輸入A,C,D傳遞到汽車對象。汽車對象的分級元素或類,例如,汽車類型、操縱和駕駛,處理輸入,產(chǎn)生結(jié)果。
圖5B示出在邏輯網(wǎng)絡(luò)程序設(shè)計樣式中,如何不必為了改變操作的功能特性而退出運行操作。添加氣和電(電源)分子并使它們可由操作訪問。將重新映射的信號發(fā)送到加速分子以便包含請求加速的情況中添加的新分子。在面向?qū)ο蟮某绦蛟O(shè)計方法中,如圖5E所示,必須退出操作的運行,為了整個汽車對象而獲得源代碼,為了層級中的其位置編輯氣和電對象,并編輯加速對象來包含層級變化。隨后,必須將對象代碼重新編譯,在這種情況中,還必須編輯、重新編譯和重新連接將在操作中使用的任何其他源代碼或?qū)ο蟠a。
在圖5C中最后的實例中,現(xiàn)在運行邏輯網(wǎng)絡(luò)程序設(shè)計方法中的加速分子。在通過新的輸入B和現(xiàn)有輸入C實現(xiàn)加速分子使,請求氣分子,并傳遞和處理數(shù)據(jù),返回結(jié)果。在圖5F中面向?qū)ο蟮膶嵗?,重新開始操作,并重新加載整個汽車對象。將輸入B和C傳遞到汽車對象,且汽車類型、操縱、加速和氣的分級元素或類處理該輸入,產(chǎn)生結(jié)果。這示出,在邏輯網(wǎng)絡(luò)程序設(shè)計方法中,在運行系統(tǒng)時,系統(tǒng)可以動態(tài)地適應應用的新參數(shù)。這就不必重新編碼和編譯來繼續(xù)運行操作。
編譯和運行時間操作在邏輯網(wǎng)絡(luò)程序設(shè)計方法中,通過設(shè)計相互作用的分子的邏輯“網(wǎng)絡(luò)”實現(xiàn)整個處理任務(wù),其中上述的邏輯網(wǎng)絡(luò)可以自主地進行數(shù)據(jù)源到最終結(jié)果的所需處理。在運行時間上從程序員編寫的初始文件產(chǎn)生分子的網(wǎng)絡(luò),它們在參與整個處理任務(wù)完成的計算資源之間分配。
初始文件產(chǎn)生分子的初始群(cohort)來開始處理任務(wù)。利用本地CPU和相關(guān)數(shù)據(jù)庫的可得的計算資源,分子保持操作直到它們被終止、沒有數(shù)據(jù)或被重新配置。在操作期間,它們可以被用來在任何時候調(diào)用其他的分子。以這種方式,它們用作動態(tài)環(huán)境中的自主元素。但是,它們的操作是有目的的并立刻在任何地方并行,而不是混亂的。
計算機處理的這個新樣式產(chǎn)生優(yōu)化的有效分布處理,以及真正并行程序設(shè)計和處理的能力。除了能使用網(wǎng)絡(luò)上的任何機器而不管其類型或操作系統(tǒng)環(huán)境,它還立刻處理來自不同源的數(shù)據(jù)。
在較佳實施中,給處理機指定獨特的類型名字并寫入對象或源代碼中??梢詾轭A計將遇到的許多類型的程序設(shè)計環(huán)境編寫同一類型的處理機,從而可以調(diào)用正確的代碼類型來在想要的本地計算資源上運行。例如,它們可以以將在其上運行的本地計算資源的操作系統(tǒng)使用的程序語言編寫,或可以以諸如,JAVATM腳本(Sun Microsystems的商標,MountainView,CA)的可移植的元語言編寫以便在該操作系統(tǒng)環(huán)境中的可執(zhí)行部分(JAVA虛擬機)上運行。
用于產(chǎn)生邏輯網(wǎng)絡(luò)的分子的初始文件物理上作為存儲在磁盤上或存儲器中或通過到本地計算資源的網(wǎng)絡(luò)傳輸?shù)南鄬^小的文件存在。它們作為可執(zhí)行文件運行,該可執(zhí)行文件被讀入本地計算資源的RAM并象其他編譯的程序一樣被執(zhí)行。如果分子旨在在因特網(wǎng)環(huán)境中被部署,則可以從URL地址檢索,或從本地目錄,例如/usr/lib/java獲得代碼文件。
初始文件用來通過調(diào)用部分處理機的名字裝配分子的每個初始群。當調(diào)用處理機名字時,從所存儲的處理機庫(本地的或遠程的)檢索包含源或?qū)ο蟠a的文件,并將它們裝配來形成分子。這導致比常規(guī)OOP方法中的更多的柔性運行時間操作,在常規(guī)的OOP方法中以完整裝配的塊或編寫首先必須被編譯以便運行的源代碼的其他程序設(shè)計語言編寫整個對象。
圖6A-6D一步一步地示出3種基本類型的分子,塊處理、流處理和流塊處理(streaming a block process)的運行時間的執(zhí)行。在圖6A中示出了分子的基本部分,包括信號處理機40、輸入處理機42、接口處理機44、方法處理機46、方法47和輸出處理機48。用于分子的初始文件首先構(gòu)建信號處理機40。信號處理機啟動并通報用于整個程序的名字登記。如果該名字已存在,則或者忽略該創(chuàng)建分子的請求,或者重新映射現(xiàn)有的分子。動態(tài)命名約定也可以用來除去保持集中的名字登記的需要。隨后,信號處理機40調(diào)用輸入和輸出處理機42和48以及接口處理機44。在這一點上,有一運行的分子等待輸入。應注意,在任何步驟上,信號處理機可以命令或排隊輸入和輸出處理機、接口處理機和方法處理機的所有屬性的重新映射,或它可以中斷、繼續(xù)或終止一單元。
對于圖6B所示的塊處理,在步驟A中分子等待輸入處理機42向接口處理機44登記它們具有數(shù)據(jù)。當實現(xiàn)接口處理機44時,進行到請求方法處理機46。在步驟B中,方法處理機從接口處理機接收輸入處理機參考、輸出處理機名字和方法名字。方法處理機向輸入處理機查詢輸入數(shù)據(jù)作為一個塊。在步驟C中,方法處理機請求方法47并傳遞輸入數(shù)據(jù)響應,隨后等待方法返回一結(jié)果。當在步驟D中返回結(jié)果時,方法處理機獲得輸出處理機參考。如果它不存在,則方法處理機創(chuàng)建輸出處理機48。隨后,進行到將結(jié)果傳遞給輸出處理機。步驟E中,輸出處理機48將數(shù)據(jù)發(fā)送到其輸出環(huán)境,且分子返回來等待輸入處理機將更多的數(shù)據(jù)排隊。
對于圖6C所示的流處理,在步驟A中分子等待輸入處理機向接口處理機登記它們具有數(shù)據(jù)。當實現(xiàn)接口處理機時,進行到請求方法處理機。在步驟B中,方法處理機從接口處理機接收輸入處理機參考、輸出處理機名字和方法名字。為流處理選擇的方法處理機獲得輸出處理機參考,或者,如果它不存在,則創(chuàng)建輸出處理機。在步驟C中,方法處理機請求方法47并傳遞輸入和輸出處理機參考?,F(xiàn)在,方法流過輸入和輸出處理機直到輸入數(shù)據(jù)隊列是空的,或輸出處理機不再存在。在步驟D中,將最后的方法結(jié)果傳遞到輸出處理機。在步驟E中,輸出處理機將數(shù)據(jù)發(fā)送到其輸出環(huán)境,且分子返回來等待輸入處理機將更多的數(shù)據(jù)排隊。
對于圖6D所示的流塊處理,在步驟A中分子等待輸入處理機向接口處理機登記,且當實現(xiàn)時,進行到請求方法處理機。在步驟B中,方法處理機從接口處理機接收輸入處理機參考、輸出處理機名字和方法名字,并獲得輸出處理機參考或創(chuàng)建輸出處理機。在步驟C中,所選擇的方法處理機將查詢輸入處理機,用輸入數(shù)據(jù)請求方法,等待結(jié)果,以及將結(jié)果傳遞到輸出處理機。如果輸入處理機隊列不是空的,則方法處理機重復這些步驟直到隊列是空的或輸出處理機不再存在。在步驟D中,將最后的方法結(jié)果傳遞到輸出處理機。在步驟E中,輸出處理機將數(shù)據(jù)發(fā)送到其輸出環(huán)境,且分子返回來等待輸出處理機將更多的數(shù)據(jù)排隊。
在邏輯網(wǎng)絡(luò)的操作中,在一個計算機器上開始的過程可以移動到別處,在網(wǎng)絡(luò)上的另一個可得的機器上,或在具有可得資源的多個機器上繼續(xù)操作。對于操作來說只有部分活動的邏輯網(wǎng)絡(luò)是必要的。
數(shù)據(jù)同步實例現(xiàn)在將參考圖7描述一個特殊的實例,以便示出如何應用計算機處理和程序設(shè)計方法來產(chǎn)生能完成給定處理任務(wù)的邏輯網(wǎng)絡(luò),例如使來自不同數(shù)據(jù)源的數(shù)據(jù)流同步,這些數(shù)據(jù)流諸如處理多媒體圖像中通常使用的。初始文件創(chuàng)建一開(open)分子70,它讀取輸入配置文件,并創(chuàng)建新分子,資源管理器7l和屬性用戶接口72。資源管理器7l查詢機器可得的資源并在給定從配置文件確定開分子的標準時確定機器可以處理多少數(shù)據(jù)源(在該實例中3個)。資源管理器7l創(chuàng)建3個數(shù)據(jù)加載器74a、74b、74c和用戶定義的數(shù)據(jù)加載器74d。
屬性用戶接口72允許從輸入配置文件中的屬性選擇,以及新屬性的創(chuàng)建,和文件類型和文件名字的選擇。在用戶要求時它創(chuàng)建新定制(custom)數(shù)據(jù)加載器,以及執(zhí)行分子73。執(zhí)行分子73分配文件名字、文件類型和文件屬性,并創(chuàng)建新分子,它包括同步分子80。
數(shù)據(jù)加載器74a、74b、74c將數(shù)據(jù)定位,如果有足夠的存儲量則將數(shù)據(jù)加載入存儲器,或如必要則是數(shù)據(jù)分幾部分加載,準備傳遞數(shù)據(jù),以及創(chuàng)建數(shù)據(jù)用戶接口分子75a、75b、75c。這允許用戶彌補特定數(shù)據(jù)流的期限來確定何時每個流應該開始,以便調(diào)節(jié)特定的數(shù)據(jù)流來匹配其他流的長度,和確定數(shù)據(jù)流的持續(xù)時間。數(shù)據(jù)加載器還創(chuàng)建數(shù)據(jù)流器(streamer)分子76a、76b、76c,它們產(chǎn)生與所提供的參數(shù)一致的數(shù)據(jù)流,并創(chuàng)建新的分子。
用戶定義的數(shù)據(jù)加載器74d創(chuàng)建壓縮用戶接口77,它允許用戶控制數(shù)據(jù)壓縮量,和數(shù)據(jù)壓縮器78,它按照所提供的參考壓縮數(shù)據(jù)。數(shù)據(jù)壓縮器78創(chuàng)建數(shù)據(jù)用戶接口75和數(shù)據(jù)流器76d。
同步分子80創(chuàng)建同步用戶接口79,它啟用脈率的調(diào)整并提供從流開始過去多少時間的計數(shù)。用戶可以使用該時間計數(shù)來停止、再次開始、或在數(shù)據(jù)流中向前和向后移動。同步分子80產(chǎn)生同步脈沖、保持可得數(shù)據(jù)流器的列表來發(fā)送脈沖到,根據(jù)同步用戶接口保存的參數(shù),并創(chuàng)建新分子。
同步分子80還創(chuàng)建層分子8l,它將大量的輸入數(shù)據(jù)流組合成大量指定的輸出流,并創(chuàng)建包括顯示分子82和保存分子83的新分子。顯示分子82將數(shù)據(jù)輸出到屏幕上,而保存分子83將數(shù)據(jù)輸出到磁盤、網(wǎng)絡(luò)、磁帶或其它媒介。
現(xiàn)在將描述產(chǎn)生預定結(jié)果的部分的相互作用。用戶選擇用于開分子70的初始文件,它要求創(chuàng)建屬性用戶接口72。開70請求資源管理器7l。如果在機器或網(wǎng)絡(luò)上已存在使用中的資源管理器,則該資源管理器用來重新分配資源,否則將創(chuàng)建新的資源管理器。資源管理器7l計算可以充裕地處理多少數(shù)據(jù)流,并請求創(chuàng)建數(shù)據(jù)加載器74,每個數(shù)據(jù)流一個(該實例中3個)。它通過觀看輸入文件類型,隨后觀看該類型文件的一般尺寸,隨后觀看可得的存儲資源來這么做,并由這些參數(shù)確定可以進行多少加載器而不損壞存儲器。
用戶為屬性用戶接口72中的每個可得的數(shù)據(jù)加載器74選擇一個名字和一個文件類型。如果用戶選擇了比可得的數(shù)據(jù)加載器74更多的文件類型,則屬性用戶接口72從資源管理器71請求另外的數(shù)據(jù)加載器74。數(shù)據(jù)加載器的創(chuàng)建是可用戶化至這樣的程度,即用戶可以請求屬性用戶接口之外的文件類型。在這種情況下,將給出到用戶定義的數(shù)據(jù)加載器74d的名字和路徑。這給予系統(tǒng)的適應性來接受沒有預定的數(shù)據(jù)類型。用戶還確定被轉(zhuǎn)移到屬性用戶接口72中執(zhí)行的屬性或參數(shù)。
執(zhí)行73要求創(chuàng)建同步80分子,它要求創(chuàng)建層81分子。層81分子順次要求創(chuàng)建顯示82和保存83分子。同步80保持將被發(fā)送同步脈沖的名字的列表,如數(shù)據(jù)流器中所通知的。
在執(zhí)行時,將文件名字、類型和屬性傳遞到數(shù)據(jù)加載器。一旦數(shù)據(jù)加載器得到文件名字、類型和屬性,就將它們實現(xiàn)并將定位數(shù)據(jù)和開始將數(shù)據(jù)加載入存儲器。如果沒有足夠的存儲器可用,它將部分地加載數(shù)據(jù)。隨后,數(shù)據(jù)加載器請求創(chuàng)建數(shù)據(jù)用戶接口75和數(shù)據(jù)流器76。對用文件名字、文件類型和屬性實現(xiàn)的每個數(shù)據(jù)加載器和用戶定義的數(shù)據(jù)加載器進行該過程。
在資源管理器71檢測到資源變得稀少的情況中,它將把請求傳遞給數(shù)據(jù)加載器來調(diào)用數(shù)據(jù)壓縮。隨后,數(shù)據(jù)加載器將請求數(shù)據(jù)壓縮器78進行合適的數(shù)據(jù)壓縮。在一個屬性要求壓縮數(shù)據(jù)的情況中,數(shù)據(jù)加載器將把該數(shù)據(jù)發(fā)送到數(shù)據(jù)壓縮器78??梢栽L問壓縮用戶接口77來調(diào)整壓縮參數(shù)。
隨后,用戶選擇數(shù)據(jù)用戶接口75中每個數(shù)據(jù)流的持續(xù)時間和起始點。用戶可以補償或調(diào)節(jié)特定數(shù)據(jù)流的時間范圍以匹配其它流的長度。在用由數(shù)據(jù)用戶接口75發(fā)送的參數(shù)實現(xiàn)數(shù)據(jù)流器76時,它將其參考名字傳遞給同步80,通知它數(shù)據(jù)已準備流化。隨后,同步80將該參考名字添加到它將脈沖到的名字列表。該列表由此時系統(tǒng)中任何數(shù)據(jù)流器的參考名字組成。如果在數(shù)據(jù)流器中沒有數(shù)據(jù)準備流化,則將從同步80列表中除去參考名字。名字列表中的參考數(shù)量還被傳遞到層81的部分。
同步80開始將其脈沖傳遞到數(shù)據(jù)流器76,它將數(shù)據(jù)傳遞到層81部分。如果層81部分不接受列表上所有的數(shù)據(jù)流,則它將請求同步80減緩脈沖直到所有數(shù)據(jù)同時到達層81。層81部分將數(shù)據(jù)傳遞到顯示82,并請求保持83部分。如果在任何點上用戶希望干預數(shù)據(jù)流來暫停、停止或移回時間計數(shù),則用戶可以在同步用戶接口79內(nèi)進行。
在數(shù)據(jù)同步實例中使用邏輯網(wǎng)絡(luò)程序設(shè)計方法具有幾個優(yōu)點。由于動態(tài)配置性能,可以有多個用戶同時使用給定機器或網(wǎng)絡(luò)上的同步系統(tǒng),且將由資源管理器向每一個分配數(shù)據(jù)同步資源。這種能力實現(xiàn)了自動加載平衡,這一般采用另外的加載平衡的專用軟件應用程序。由于用戶可以創(chuàng)建所需的任何用戶定義的數(shù)據(jù)加載器,系統(tǒng)可以適應任何數(shù)據(jù)格式。系統(tǒng)動態(tài)地將數(shù)據(jù)預格式化和預處理。系統(tǒng)還將確定如果需要在沒有用戶干預的情況下何時需要壓縮。數(shù)據(jù)壓縮器將自動地響應所滿足的條件而進行壓縮。它還將數(shù)據(jù)重新格式化成網(wǎng)絡(luò)文件類型,如數(shù)據(jù)加載器中所列出的??紤]硬件資源,系統(tǒng)將適應地將各種數(shù)據(jù)源遞送到交互同步的顯示器。系統(tǒng)還是分布式的且平臺獨立。任何一個部分可以駐留在LAN、WAN或因特網(wǎng)網(wǎng)絡(luò)上的任何機器上。在并行處理環(huán)境中,分配在多個CPU上的多個同步邏輯網(wǎng)絡(luò)可以被協(xié)調(diào)來將并行數(shù)據(jù)流遞送到共用層。
分子是邏輯網(wǎng)絡(luò)程序設(shè)計方法的基本元素。它承載一般與更大的應用有關(guān)的其基本功能,其中更大的應用包括存儲管理、調(diào)用功能和清除。它的軌跡(footprint)很小,很靈活且可動態(tài)地重新配置(自適應的)。其用作本地部分網(wǎng)絡(luò)以及不同硬件環(huán)境上的遠程網(wǎng)絡(luò)的連接器。邏輯網(wǎng)絡(luò)程序設(shè)計樣式真正允許具有功能單元之間無縫兼容性的自主處理,而無需集中處理管理或高預知的調(diào)度和協(xié)調(diào)。
產(chǎn)業(yè)適應性使用本發(fā)明的計算機處理和程序設(shè)計方法,可以通過設(shè)計由部分分子構(gòu)成的邏輯網(wǎng)絡(luò)來進行復雜的計算和數(shù)據(jù)處理任務(wù),它利用任何類型和任何網(wǎng)絡(luò)上的任何位置的任何可得的計算源。因此,它理想地適合于在分布計算和并行處理環(huán)境中進行處理任務(wù)??梢杂梅肿釉O(shè)計邏輯網(wǎng)絡(luò),所述分子和任何類型的傳統(tǒng)系統(tǒng)、以不同語言編程的應用程序和以任何格式存儲的任何類型的數(shù)據(jù),因此能夠啟用數(shù)據(jù)集成任務(wù)的更加有效的程序設(shè)計,以及整個新型數(shù)據(jù)集成系統(tǒng)的創(chuàng)建。
通過使其部分適合于產(chǎn)業(yè)特殊接口和功能性,就可以將邏輯網(wǎng)絡(luò)程序設(shè)計方法應用到任何領(lǐng)域。例如,它可以應用于數(shù)據(jù)集成、建模、模擬、數(shù)據(jù)顯像、動畫、翻譯和模塊化產(chǎn)品應用中。對于當前基于因特網(wǎng)的應用,它可以適合于當前市場的簡單需要,其中集合了這些考慮基于服務(wù)器的計算模型;固有可量測性;基于JAVATM的核心功能和擴展;用于傳遞的網(wǎng)絡(luò)瀏覽器技術(shù);管理兆兆位數(shù)據(jù)集的能力;具有集成功能的普遍存在的數(shù)據(jù)庫模型;客戶化的內(nèi)置功能;分布式終端用戶感覺和設(shè)計前提;模塊化序列數(shù)據(jù)流;和分階段的執(zhí)行方法。
邏輯網(wǎng)絡(luò)程序設(shè)計方法特別適于數(shù)據(jù)顯像應用,諸如數(shù)據(jù)中心和系統(tǒng)監(jiān)控,視覺共同指揮(visual corporate helm),決策支持系統(tǒng),復雜關(guān)系的顯示和科學建模顯像。邏輯網(wǎng)絡(luò)軟件可以用作具有并行、分散、同步和跟蹤面向?qū)ο蟮男蛄械姆蔷€性現(xiàn)場座標圖。當結(jié)合視覺接口時,邏輯網(wǎng)絡(luò)的模塊化方法的優(yōu)點是特別明顯的。分子是單個方法,從而方法命名它們。由于方法的連接或聯(lián)編對于分子是固有的,所以通過面向人的功能名字或視覺提示可以快速地組合邏輯網(wǎng)絡(luò),而不用考慮內(nèi)部操作。在任何故障點簡單地運行邏輯網(wǎng)絡(luò)將調(diào)用自診斷。最優(yōu)支持環(huán)境中被可視地監(jiān)控,該程序設(shè)計方法將把“編程”計算機的能力擴展到計算機識字外行。合適的分析將把復雜數(shù)據(jù)處理任務(wù)的程序設(shè)計簡化到通過識別所需的部件和將片段鉤在一起裝配管道并裝置的水平。
可以理解,在給出以上的本發(fā)明原理的描述時,可以設(shè)計許多修改和變化。這種修改和變化旨在被認為是在本發(fā)明的精神和范圍之內(nèi),如所附權(quán)利要求書所定義的。
附錄I<pre listing-type="program-listing"><![CDATA[objectMolecule(String moleculeCallerName,String moleculeCalledName){/*Contributes to methods,methodTriggers,communication*/objectNames[] =Object names(session/client names)objectContexts[]=Equivalent to package(molecule is componate toa functioncollection of molecule,and is of relative Context)/*Socketing/Sessioning*/objectContextKey{} =controls scope of access to event,field,and methodgroups,names,locations,version labeling,establishstatus,{eventNeighbors{}=List of comsuming molecules(passEvents/Data)eventNeighborsConsumeRoute{}=List of which Local/Remote data sets the neighbormolecules can consume(Routing);eventNeighborsProduceRoute{}=List of where then consuming routing produces thedata sets local to the neighbor molecule;/*The objectMolecule.Deamon.thread should maintain a record of molecule channelIO*/fieldChannel{} =Table of which channels are activefieldChannelExposed{} =Table defining channels inter/external exposablityfieldLocalStatic{} =Table of static local memory routingfieldLocalStaticExposed{} =Table of defining static local memory routingexposabilityfieldLocalDynamic{} =Table of dynamic local channel routingfieldLocalDynamicExposed{} =Table ofdefining local channel exposability }/*localRemoteSwitcher()*/objectMethodAccessLabeling[]=Determines Local or Remote access for methodsobjectMethod[] =Methods callable name (local to Java or via API)objectMethodMoleculeData{} =Data from File.moleculeName that forfillsConsuming/Producing Routing./*methodTrigger()data,Local/Remnote flags*/ objectWait[] =methodTrigger()lifespan.or lifespan dependancy objectMethodConsumingRouting[] =Which Channel/Local data have methodTrigger()block on objectMethodConsumingFofillment[]=Where a methodTrigger() can look for data localand or remote and if it can switch between the twoand if so who takes priority. objectMethodProducingRouting[] =Which Channel/Local space data is delivered to. a methodTrigger().thread is started for each objectMethod[]element.All interfacable molecule should have enough data to create a methodTrigger for objectDisplay(). fieldChannel.LocalStatic.LocalDynamic{}.a localRemoteSwitcher().thread is startedas a child to methodTrigger().thread as approriate,which is governed by objectMethodAccessLabeling[],objectMethodConsumingFofillment[] }objectDisplayO { struct objectDisplayEnvi{ displayEnviroment[] =Reference to current interface environment,trackgrounding,Screen tracking system displayState{} =Switch modes Accept Events,Accept Args,Accept Pointer,..etcCriteria relevant object/Superscope/subscope displayAlphas[]=zBuffersLayer′s relative alpha(range 0.0-1.0)array allowssingle object to multiple Depthsor volume Depth assignment. displayZDepths[]=zBufferLayer assignment,array allows single object tomultiple Depths or volume Depth assignment. displayZElements[] =micro layering for a given zBufferLayer displayComposites[] =Object accumulation(add,subtract,dif,..) displayLocations[]=Global location when parent,relative location when child regPeriod[] =Array to(x,y image)or(x,y,z volume) regDisplay{} =Display scale as opposed to preObjectArray x,y,and/or zdimensions and registration Array[]=array from an ObjectDisplayEngine() EventArray[]=array from an EventDisplayEngine() RegArray[] =array from an RegistrationDisplayEngine() }}objectEnviroment(){Establish broadcasting pointer information channels and display through put channels.}-------Core Array Process Methods------TypeData/StringMultiArray=array with N dimensionsSinglArray=arrayX1,arrayX2,..,arrayXNMixedArray=arrayX1,arrayX2,array with 1-N dimensions,..,arrayXNAlgorithm(API call,Java Claass/Method Call) Encode-consumer(trpe,MixedArray,format) produce(file)*rawtoformat(simple to many)*Multipl SinglArrays to aif,wav,txt*Multipl SinglArrays,or MixedArray to rgb,tif,jpgDecode-consumer(file)produce(type,MixedArray)*format to raw(many to simple)*aif,wav,txt to Multipl SinglArrays*rgb,tif,jpg to Multipl SinglArrays,or MixedArrayCmd Line-pass(String cmd,String argv[])return(pid,status)Splitter-consume(type,MixedArray[N],how)produce(type,MixedArray)Mixer-consume(type,MixedArray[N],how)produce(type,MixedArray)Stream-consume(type,SinglArray,how,rate)produce(channel VARstream)PacketStream-consume(type,MixedArray,how,rate)produce(channel VAR[]stream)Packet-consume(channel VARstream,how)produce(type,SinglArray)MultiPacket-consume(channel VAR[]stream,how)produce(type,MultiArry)Formula w/Logic controlling output:-consurme(Elm & MixedArray,Sting equation)produce(Elm & MixedArray);*Composite Over,under,multiple,add,differanceRange-consume(type,MixedArray[N])produce(type,min[X1->N],max[X1->N],avg[X1->N])Sort-consume(type,SinglArray,key)produce(type,SinglArray)Element -consume(type,MixedArray[N],index[])produce(type,MixedArray)Crop -consume(type,MixedArray[N],indexStart[X1->N],indexEnd[X1->N]) produce(type,arrayX1->N)Scale -consume(type,MixedArray[N],type,F(xiàn)actor)produce(type,MixedArray[N])Sample -consume(type,MixedArray,step)produce(type,MixedArray)Flip -consume(type,SinglArray,xdirection,ydirection)produce(type,SinglArray)Filter -consume(type,SinglArray,)produce(type,SinglArray)Rotate -consume(type,SinglArray,angle,direction)produce(type,SinglArray)Intrpolate-consume(type,MixedArray[N],interp_type)produce(type,MixedArray[N])TasksData manipulation Process sequencing tool]]></pre>
權(quán)利要求
1.一種計算機處理方法,其特征在于,包括以下步驟創(chuàng)建多個分別由軟件微組分配置的軟件實體(“分子10”),所述軟件微組分包括信號處理機(40)、至少一個輸入處理機(42)、至少一個輸出處理機(48)、接口處理機(44)和用于相關(guān)聯(lián)方法的至少一個方法處理機(46),所述輸入處理機、輸出處理機和所述信號處理機用于將通信信號發(fā)送到另一分子或各分子之外的邏輯網(wǎng)絡(luò)或從其接收通信信號并用于連接到其它微組分,所述至少一個輸入處理機用于將輸入數(shù)據(jù)排隊,所述接口處理機用于確定何時滿足由所述輸入處理機接收所需的輸入數(shù)據(jù)的預定輸入條件,并隨后調(diào)用所述方法處理機,所述方法處理機用于調(diào)用所述相關(guān)聯(lián)的方法來處理所述輸入數(shù)據(jù),而所述至少一個輸出處理機用于將通過所述方法處理輸入數(shù)據(jù)的結(jié)果輸出;將所創(chuàng)建的分子存儲于庫中以便在其后的運行時間中使用;在給定的計算資源上部署包括多個分子的邏輯網(wǎng)絡(luò),所述多個分子被選擇來通過調(diào)用從庫中檢索到并在給定的計算資源上執(zhí)行的第一分子執(zhí)行給定的處理任務(wù);以及通過所述第一分子的所述信號處理機發(fā)送通信信號來調(diào)用所述其他分子,所述第一分子調(diào)用一個或多個其他的分子來“連動地”逐步地擴展所述邏輯網(wǎng)絡(luò)。
2.如權(quán)利要求1所述的計算機處理方法,其特征在于,所述創(chuàng)建步驟包括創(chuàng)建多個邏輯網(wǎng)絡(luò),其各自使其軟件實體的網(wǎng)絡(luò)被配置成自主地使用計算資源進行數(shù)據(jù)處理任務(wù),而所述部署步驟包括分別用多個計算資源中的一個部署多個邏輯網(wǎng)絡(luò)。
3,如權(quán)利要求2所述的計算機處理方法,其特征在于,在分布式計算環(huán)境中的網(wǎng)絡(luò)上分配所述多個計算資源。
4.如權(quán)利要求2所述的計算機處理方法,其特征在于,所述多個計算資源包括在并行處理環(huán)境中并行的一組中央處理單元(CPU)。
5.如權(quán)利要求1所述的計算機處理方法,其特征在于,所述至少一個邏輯網(wǎng)絡(luò)包括多個分子,且所述邏輯網(wǎng)絡(luò)作為初始化文件存在,用于產(chǎn)生分子的初始主機,它在增量處理步驟的連續(xù)層中調(diào)用和產(chǎn)生其他分子。
6.如權(quán)利要求1所述的計算機處理方法,其特征在于,所述創(chuàng)建步驟包括創(chuàng)建具有處理機功能的分子,用于在增量處理步驟的連續(xù)層中創(chuàng)建下一個分子。
7.如權(quán)利要求1所述的計算機處理方法,其特征在于,所述創(chuàng)建步驟包括創(chuàng)建具有內(nèi)置處理機功能的分子,用于當分子即將終止時進行其功能的清理。
8.如權(quán)利要求1所述的計算機處理方法,其特征在于,所述創(chuàng)建步驟包括創(chuàng)建具有處理機類型的分子,用于記錄有關(guān)其微組分處理機的狀態(tài)的信息并通過所述信號處理機將這種狀態(tài)信息發(fā)送到外部。
9.如權(quán)利要求1所述的計算機處理方法,其特征在于,當存在著執(zhí)行處理任務(wù)的分子時,所述信號處理機可以接收用于動態(tài)地重新配置分子的微組分處理機的信號并且具有用于該目的的處理機類型。
10.如權(quán)利要求1所述的計算機處理方法,其特征在于,所述接口處理機包括處理機類型,用于向分子提供自主等待、觀看和進行所述相關(guān)的方法的特性以通過等待到所述輸入處理機指示在調(diào)用用于相關(guān)方法的所述方法處理機之前出現(xiàn)預定的輸入條件來處理輸入數(shù)據(jù)。
11.如權(quán)利要求1所述的計算機處理方法,其特征在于,所述接口處理機包括多個處理機類型,用于確定何時滿足出現(xiàn)各自所需要的數(shù)據(jù)的各預定輸入條件并用于分別調(diào)用多個方法處理機和相關(guān)方法中的每一個。
12.如權(quán)利要求1所述的計算機處理方法,其特征在于,所述輸入處理機選自分別對應于多個不同數(shù)據(jù)源類型的多個輸入處理機類型中的一個。
13.一種分布式計算方法,其特征在于,包括以下步驟創(chuàng)建多個軟件實體(“分子10”),用用于發(fā)送通信信號到另一個分子或各分子之外的邏輯網(wǎng)絡(luò)和從其接受通信信號的軟件微組分配置所述每個軟件實體,每個分子的所述微組分彼此連接以便在給定的計算環(huán)境中處理輸入數(shù)據(jù),在所述計算環(huán)境中所述分子被部署并提供處理輸入數(shù)據(jù)的結(jié)果輸出;將多個分子各自部署于多個計算環(huán)境的每一個上;以及將部署于其各自的計算環(huán)境中的每個分子初始化以便初始化增量處理步驟的連續(xù)層中數(shù)據(jù)處理功能的分子的“邏輯網(wǎng)絡(luò)”,其中第一分子調(diào)用一個或多個其它分子來“連動地”增量擴展所述邏輯網(wǎng)絡(luò)。
14.如權(quán)利要求13所述的分布計算方法,其特征在于,每個計算環(huán)境中的每個邏輯網(wǎng)絡(luò)在其各自的計算環(huán)境中自主地執(zhí)行其數(shù)據(jù)處理功能,并返回一希望從該計算環(huán)境中獲得的輸出。
15.如權(quán)利要求14所述的分布計算方法,其特征在于,每個邏輯網(wǎng)絡(luò)將用于其各自計算環(huán)境的輸出返回到一外部監(jiān)控實體,且所述外部監(jiān)控實體組合來自另外的計算環(huán)境的輸出以獲得分布計算的組合輸出。
16.如權(quán)利要求15所述的分布計算方法,其特征在于,所述計算環(huán)境是分布于網(wǎng)絡(luò)上的多個計算站點,而邏輯網(wǎng)絡(luò)通過在網(wǎng)絡(luò)上發(fā)送信號來返回它們的輸出。
17.如權(quán)利要求15所述的分布計算方法,其特征在于,所述計算環(huán)境是并行處理環(huán)境中并行操作的一組處理單元(CPU)形式的多個計算資源。
18.一種網(wǎng)絡(luò)計算方法,其特征在于,包括以下步驟創(chuàng)建多個軟件實體(“分子10”),用用于發(fā)送通信信號到另一個分子或各分子之外的邏輯網(wǎng)絡(luò)和從其接受通信信號的軟件微組分配置所述每個軟件實體,每個分子的所述微組分彼此連接以便在給定的計算環(huán)境中處理輸入數(shù)據(jù),在所述計算環(huán)境中所述分子被部署并提供處理輸入數(shù)據(jù)的結(jié)果輸出;將所述多個分子各自部署于多個計算環(huán)境的每一個上,其中所述多個計算環(huán)境是分布在網(wǎng)絡(luò)上的計算站點;將部署于其各自計算環(huán)境中的每個分子初始化以便初始化增量處理步驟的連續(xù)層中數(shù)據(jù)處理功能的分子的“邏輯網(wǎng)絡(luò)”,其中第一分子調(diào)用一個或多個其它分子來“連動地”增量擴展所述邏輯網(wǎng)絡(luò);以及使每個網(wǎng)絡(luò)計算站點處的每個邏輯網(wǎng)絡(luò)在其各自的計算環(huán)境中自主進行其數(shù)據(jù)處理功能,并返回一希望從該網(wǎng)絡(luò)計算站點獲得的輸出。
19.如權(quán)利要求18所述的網(wǎng)絡(luò)計算方法,其特征在于,每個邏輯網(wǎng)絡(luò)將用于其各自網(wǎng)絡(luò)計算站點的輸出返回到一網(wǎng)絡(luò)監(jiān)控實體,且所述網(wǎng)絡(luò)監(jiān)控實體組合來自網(wǎng)絡(luò)計算站點的輸出以便獲得用于網(wǎng)絡(luò)的組合輸出。
20.如權(quán)利要求19所述的網(wǎng)絡(luò)計算方法,其特征在于,網(wǎng)絡(luò)是網(wǎng)絡(luò)的網(wǎng)絡(luò)(“因特網(wǎng)”),且邏輯網(wǎng)絡(luò)被部署在因特網(wǎng)上的網(wǎng)站處以便自主地計算來自網(wǎng)站的數(shù)據(jù)并將它們的輸出返回到網(wǎng)絡(luò)監(jiān)控實體。
全文摘要
一種計算處理和程序設(shè)計方法要求創(chuàng)建多個軟件實體(“分子10”),它可以被動態(tài)配置來自主處理數(shù)據(jù)。分子可以發(fā)送和接收信號,所述信號表示分子的狀態(tài),是否完成了處理任務(wù),處理任務(wù)的結(jié)果和是否通過一個或多個“下一個”分子的創(chuàng)建而終止、中斷、重新配置或繼續(xù)分子的操作??梢詮墓灿玫囊唤M軟件微組分(40、42、44、46、48)創(chuàng)建分子,它可以在任何程序設(shè)計語言編寫以便在任何操作系統(tǒng)環(huán)境中運行。分子可以和單個計算資源駐留在一起,但是,它們理想地適于隨網(wǎng)絡(luò)上或并行處理環(huán)境中不同類型的分布計算資源部署。通過創(chuàng)建“邏輯網(wǎng)絡(luò)”中的分子來進行全部數(shù)據(jù)處理任務(wù),所述邏輯網(wǎng)絡(luò)動態(tài)地適于完成其任務(wù)。可以分配邏輯網(wǎng)絡(luò)來和不同傳統(tǒng)系統(tǒng)、和以不同語言編程的應用程序以及和以任何格式存儲的任何類型的數(shù)據(jù)一起工作。結(jié)果,分布或并行處理環(huán)境中的數(shù)據(jù)處理任務(wù)可以更加有效地進行,并可以采取全新類型的網(wǎng)絡(luò)計算或并行處理任務(wù)。
文檔編號G06F9/45GK1537271SQ01823503
公開日2004年10月13日 申請日期2001年7月23日 優(yōu)先權(quán)日1998年9月18日
發(fā)明者韋爾西·法伯爾斯, 焦爾·帕克, 帕克, 韋爾西 法伯爾斯 申請人:韋爾西·法伯爾斯, 焦爾·帕克, 韋爾西 法伯爾斯