亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

使用自主數(shù)據(jù)處理機(jī)的計(jì)算機(jī)處理和程序設(shè)計(jì)方法

文檔序號(hào):6478287閱讀:397來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):使用自主數(shù)據(jù)處理機(jī)的計(jì)算機(jī)處理和程序設(shè)計(jì)方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及計(jì)算機(jī)處理和程序設(shè)計(jì)方法,尤其涉及使用新型自主數(shù)據(jù)處理機(jī)的方法。
背景技術(shù)
計(jì)算機(jī)處理已從其最初的理論基礎(chǔ)發(fā)展到當(dāng)前作為面向機(jī)器的樣式,其中機(jī)器指令由中央處理器(CPU)執(zhí)行從而將原始數(shù)據(jù)和連續(xù)步驟中的輸入轉(zhuǎn)換成有用的輸出。為了實(shí)現(xiàn)包含越來(lái)越大量數(shù)據(jù)的越來(lái)越復(fù)雜的任務(wù),計(jì)算機(jī)硬件以指數(shù)增加的方式在速度、能力、容量方面發(fā)展,現(xiàn)在正接近原子尺度和光的速度與波長(zhǎng)的物理極限。通過(guò)線(xiàn)性程序設(shè)計(jì)方法的復(fù)雜任務(wù)的程序設(shè)計(jì)需要密集的代碼編寫(xiě),這可能要求幾百萬(wàn)行的代碼且易于受錯(cuò)誤和交叉代碼沖突的影響,它們都可能需要密集的調(diào)試。自然還需要程序設(shè)計(jì)用為所選的操作系統(tǒng)選擇的一種程序設(shè)計(jì)語(yǔ)言完成,這導(dǎo)致過(guò)時(shí)和常規(guī)的系統(tǒng)。
開(kāi)發(fā)了面向?qū)ο蟮某绦蛟O(shè)計(jì)(OOP)方法以便用自含且自執(zhí)行的模塊分解較大的程序設(shè)計(jì)任務(wù)。因此,已為特定功能進(jìn)行優(yōu)化的模塊可以在多種多樣更大的程序設(shè)計(jì)任務(wù)中以模塊化形式按目錄分類(lèi)和重復(fù)使用。但是,OOP方法需要在程序設(shè)計(jì)環(huán)境上作為整體執(zhí)行類(lèi)定義層次,導(dǎo)致OOP模塊的封閉系統(tǒng)和程序庫(kù)必須被重新編譯以便支持各種環(huán)境。
過(guò)去的十年間開(kāi)發(fā)了并行處理方法來(lái)嘗試通過(guò)由CPU的陣列協(xié)力將處理任務(wù)分解成幾部分來(lái)獲得增加的能力。但是,并行處理的常規(guī)方法需要程序設(shè)計(jì)任務(wù)的集中管理和控制,這對(duì)任務(wù)的協(xié)調(diào)和同步方面有嚴(yán)格的要求。迄今,并行處理方法還在繼續(xù)采用線(xiàn)性程序設(shè)計(jì)方法,它很密集且易于出錯(cuò),特別是在并行操作時(shí),并受所選的程序設(shè)計(jì)語(yǔ)言和操作系統(tǒng)控制。
近些年,隨著大規(guī)模分布式網(wǎng)絡(luò)的產(chǎn)生,開(kāi)始建議通過(guò)將大而復(fù)雜的任務(wù)分解成很小的塊并在網(wǎng)絡(luò)上協(xié)作的計(jì)算機(jī)之間將其分布來(lái)進(jìn)行這些非常大或復(fù)雜的任務(wù),這通常稱(chēng)作“分布計(jì)算”或“網(wǎng)絡(luò)計(jì)算”。對(duì)分布計(jì)算的建議代表計(jì)算樣式從高計(jì)算強(qiáng)度的任務(wù)處理向在網(wǎng)絡(luò)上的資源之間廣泛分布數(shù)據(jù)并通過(guò)分布工作用低強(qiáng)度CPU局部處理的轉(zhuǎn)變。但是,由于使用相同的線(xiàn)性程序設(shè)計(jì)方法和集中化的管理和控制,迄今的分布計(jì)算樣式還需要嚴(yán)格的程序設(shè)計(jì)和協(xié)作來(lái)實(shí)現(xiàn)相當(dāng)?shù)慕Y(jié)果。一個(gè)或多個(gè)單獨(dú)處理工作的錯(cuò)誤或與使用集中處理管理的通信或協(xié)作關(guān)聯(lián)的時(shí)間延遲可以產(chǎn)生瓶頸,這影響了這種方法的效果。
利用多個(gè)異步計(jì)算機(jī)處理的一種方法稱(chēng)作“基于流的程序設(shè)計(jì)”(“FBP”),如在1994年紐約Von Nostrand Reinhold出版的J.Paul Morrison的,F(xiàn)low-BasedProgrammingA New Approach To Application Development中詳細(xì)描述的。該參考文獻(xiàn)根據(jù)以下三個(gè)原則描述了基于流的程序設(shè)計(jì)“異步處理、具有其特有的壽命的數(shù)據(jù)包和連接的外部定義”。在FBP中,應(yīng)用定義為“黑箱”處理的網(wǎng)絡(luò),它通過(guò)預(yù)定的條件交換數(shù)據(jù)。FBP是通過(guò)“黑箱”處理的網(wǎng)絡(luò)的步進(jìn)標(biāo)記的數(shù)據(jù)包的處理,因此是數(shù)據(jù)為中心的處理。FBP方法需要極高的預(yù)言能力來(lái)良好地工作。
因此,本發(fā)明的主要目的是提供計(jì)算機(jī)處理和有關(guān)的程序設(shè)計(jì)方法,它分散了計(jì)算機(jī)處理任務(wù)的管理并允許用自適應(yīng)的選項(xiàng),諸如采用可得的最有效通路來(lái)自主進(jìn)行數(shù)據(jù)的分布或并行處理。
本發(fā)明的進(jìn)一步的目的在于提供新的程序設(shè)計(jì)方法,它被最佳地設(shè)計(jì)來(lái)通過(guò)無(wú)需束縛的程序設(shè)計(jì)環(huán)境從而可以支持多個(gè)程序設(shè)計(jì)語(yǔ)言的同時(shí)使用并消除集中的處理管理來(lái)促進(jìn)并行或分布數(shù)據(jù)處理。它還旨在降低復(fù)雜的處理任務(wù)所需的程序設(shè)計(jì)強(qiáng)度和情況特殊性質(zhì)和這種程序設(shè)計(jì)出錯(cuò)的易感性。
發(fā)明概述根據(jù)本發(fā)明,一種計(jì)算機(jī)處理和相關(guān)程序設(shè)計(jì)方法要求創(chuàng)建多個(gè)軟件實(shí)體(這里稱(chēng)作“分子”),它可以被動(dòng)態(tài)地配置以自主地處理數(shù)據(jù)。分子可以發(fā)送和接收能夠表示分子的狀態(tài)、是否實(shí)現(xiàn)了處理任務(wù)、處理任務(wù)的結(jié)果以及是否要通過(guò)創(chuàng)建一個(gè)或多個(gè)“下一個(gè)”分子來(lái)終止、中斷、重新配置或繼續(xù)分子的操作的信號(hào)。由共用的一組軟件微組分來(lái)創(chuàng)建分子,可以以任一程序設(shè)計(jì)語(yǔ)言編寫(xiě)所述微組分以便在任一操作系統(tǒng)環(huán)境中運(yùn)行。
為整個(gè)處理任務(wù)創(chuàng)建的分子可駐留在單個(gè)計(jì)算資源(CPU和數(shù)據(jù)庫(kù)),但是,它們理想地適合于部署在網(wǎng)絡(luò)上或并行處理環(huán)境中的不同類(lèi)型的分布計(jì)算資源上。以一種或多種適合于分子即將操作于其上的計(jì)算資源的程序設(shè)計(jì)語(yǔ)言將每個(gè)分子進(jìn)行編程。分子可以用編譯的或運(yùn)行時(shí)間編譯的代碼的混合運(yùn)行,允許它們?cè)趦H有部分處理適應(yīng)于在其上運(yùn)行的計(jì)算資源上運(yùn)行。分子可以彼此發(fā)送信號(hào)并用共用的網(wǎng)絡(luò)協(xié)議發(fā)送和接受數(shù)據(jù)。它們運(yùn)行以便自主地完成其各數(shù)據(jù)處理任務(wù)直到完成整個(gè)數(shù)據(jù)處理任務(wù)??梢酝ㄟ^(guò)在動(dòng)態(tài)地適合完成任務(wù)的“邏輯網(wǎng)絡(luò)”中創(chuàng)建分子和構(gòu)造它們的操作和相互作用來(lái)進(jìn)行整個(gè)數(shù)據(jù)處理任務(wù)。
適合并行處理環(huán)境,可以動(dòng)態(tài)地配置分子在并行計(jì)算資源上自主運(yùn)行。定義邏輯網(wǎng)絡(luò)以便允許對(duì)它旨在處理的數(shù)據(jù)對(duì)象和對(duì)作為中間CPU資源的并行處理機(jī)陣列的任何可得的處理機(jī)的有效訪(fǎng)問(wèn)。處理機(jī)訪(fǎng)問(wèn)的調(diào)度可以由主控制器程序或由獨(dú)立的調(diào)度程序分子或小型邏輯網(wǎng)絡(luò)處理。將分子編程來(lái)將它們的狀態(tài)、結(jié)果和下一個(gè)分子的終止、重新配置或產(chǎn)生發(fā)送信號(hào)。為了更有效和快速地完成數(shù)據(jù)處理任務(wù),分子的分散、自主操作避免了常規(guī)并行處理方法中的剛性的調(diào)度結(jié)構(gòu)和時(shí)間延遲沖突。
作為軟件配置的實(shí)體,分子由以下基本軟件微組分組成信號(hào)處理機(jī)、輸入處理機(jī)、接口處理機(jī)、方法處理機(jī)、有關(guān)方法和輸出處理機(jī)。信號(hào)處理機(jī)能發(fā)送和接受用于調(diào)用其它分子的信號(hào)和將網(wǎng)絡(luò)上的其它分子和資源發(fā)送信號(hào)。輸入處理機(jī)接受數(shù)據(jù)輸入并將數(shù)據(jù)排隊(duì)。接口處理機(jī)確定到分子的輸入何時(shí)滿(mǎn)足預(yù)定條件以便打開(kāi)到方法處理機(jī)的通路。方法處理機(jī)根據(jù)預(yù)定方法處理從輸入處理機(jī)的隊(duì)列發(fā)送的數(shù)據(jù)并將輸出發(fā)送到輸出處理機(jī)。
適合軟件程序設(shè)計(jì)方法,創(chuàng)建分子的邏輯網(wǎng)絡(luò)以便在任一類(lèi)型的任何可得的計(jì)算資源上運(yùn)行并以任一格式和在任一位置處理數(shù)據(jù)。將初始化文件編程來(lái)創(chuàng)建計(jì)劃中的計(jì)算資源上的分子的初始主機(jī)。初始分子用來(lái)產(chǎn)生表示程序步驟進(jìn)行的連續(xù)層或波中的下一個(gè)分子。構(gòu)成每個(gè)初始化文件來(lái)組合來(lái)自標(biāo)準(zhǔn)微組分類(lèi)犁庫(kù)的分子的軟件微組分。根據(jù)它們的功能客觀地選擇這些標(biāo)準(zhǔn)類(lèi)型,且不是00P分層中剛性的類(lèi)類(lèi)型。在適應(yīng)計(jì)劃在其中操作的環(huán)境的程序設(shè)計(jì)語(yǔ)言中所需和編程時(shí),可以方便地創(chuàng)建新型的軟件微組分。
使用本發(fā)明的計(jì)算機(jī)處理和程序設(shè)計(jì)方法,可以通過(guò)設(shè)計(jì)由部分分子構(gòu)造的邏輯網(wǎng)絡(luò)來(lái)進(jìn)行復(fù)雜計(jì)算和數(shù)據(jù)處理任務(wù),其中所述部分分子使用任何類(lèi)型的任何可得計(jì)算資源并在包括網(wǎng)絡(luò)上的任何位置。因此,例如,可以用操作不同傳統(tǒng)的系統(tǒng)的分子、用不同語(yǔ)言編程的應(yīng)用程序和用任一格式存儲(chǔ)的任一類(lèi)型的數(shù)據(jù)設(shè)計(jì)邏輯網(wǎng)絡(luò)。結(jié)果,可以更有效地進(jìn)行分布或并行處理環(huán)境中數(shù)據(jù)處理任務(wù),并可以承擔(dān)完全新型的數(shù)據(jù)處理任務(wù)。
將在以下本發(fā)明詳細(xì)的描述中參考


本發(fā)明的其它目的、特點(diǎn)和優(yōu)點(diǎn)。

圖1A是根據(jù)本發(fā)明軟件實(shí)體(“分子”)的一般示意圖,圖1B示出分布計(jì)算或并行處理環(huán)境中分子的邏輯網(wǎng)絡(luò)的部署。
圖2示出用于基本類(lèi)型軟件分子的結(jié)構(gòu)的較佳實(shí)例,它具有信號(hào)處理機(jī)、輸入處理機(jī)、接口處理機(jī)、方法處理機(jī)和輸出處理器微組分。
圖3更詳細(xì)地示出軟件分子的接口處理機(jī)的邏輯操作。
圖4A和4B示出兩個(gè)方法處理類(lèi)型的實(shí)例,分別是塊方法處理和流方法處理。
圖5A-5F示出本發(fā)明的程序設(shè)計(jì)方法和常規(guī)面向?qū)ο蟮某绦蛟O(shè)計(jì)的比較。
圖6A-6D一步一步地示出3個(gè)基本類(lèi)型的分子,塊處理、流處理和流塊處理的運(yùn)行時(shí)間的執(zhí)行。
圖7示出如何應(yīng)用新穎的計(jì)算機(jī)處理和程序設(shè)計(jì)方法來(lái)產(chǎn)生可以完成數(shù)據(jù)同步任務(wù)的邏輯網(wǎng)絡(luò)。
詳細(xì)說(shuō)明在本發(fā)明中,一種新的計(jì)算機(jī)處理和程序設(shè)計(jì)方法要求創(chuàng)建多個(gè)軟件實(shí)體(“分子”),它們被編程來(lái)自主地與其它分子以及可得的計(jì)算資源聯(lián)系來(lái)處理數(shù)據(jù)。從共用的一組以任何程序設(shè)計(jì)語(yǔ)言編程的軟件微組分(micro-component)創(chuàng)建分子,以便在任何操作系統(tǒng)環(huán)境中運(yùn)行。它們?cè)诜肿拥倪壿嬀W(wǎng)絡(luò)中被配置以便進(jìn)行數(shù)據(jù)處理的任務(wù),它可以是整個(gè)處理任務(wù)的一部分。邏輯網(wǎng)絡(luò)或邏輯網(wǎng)絡(luò)的網(wǎng)絡(luò)可以駐留在單個(gè)計(jì)算機(jī)環(huán)境中,但特別適合在并行處理和分布處理環(huán)境中使用。
參考圖1A,示出了根據(jù)本發(fā)明的軟件實(shí)體(“分子”)1,0的一般示意圖。每個(gè)軟件分子10基本由其配置(數(shù)據(jù))文件、信號(hào)處理機(jī)40、輸入處理機(jī)42、接口處理機(jī)44、方法(47)和方法處理機(jī)46以及輸出處理機(jī)48(將在以下的標(biāo)題“軟件分子”中進(jìn)一步地詳細(xì)描述)組成。從本地或遠(yuǎn)程的源聚集和組合分子的部分以創(chuàng)建分子(在以下的標(biāo)題“程序設(shè)計(jì)方法”中進(jìn)一步地詳細(xì)描述)。每個(gè)分子被編程來(lái)自主處理所定義的數(shù)據(jù)對(duì)象,并且可以向其它分子發(fā)送信號(hào)和從它們接收信號(hào),通過(guò)它們所述分子可以在邏輯網(wǎng)絡(luò)中相互作用從而完成處理任務(wù)。分配邏輯網(wǎng)絡(luò)以便在任何可得的計(jì)算資源上運(yùn)行,并通過(guò)計(jì)算環(huán)境中的通信總線(xiàn)和/或通過(guò)網(wǎng)絡(luò)環(huán)境中的網(wǎng)絡(luò)(在圖中通過(guò)連接線(xiàn)表示)與其它邏輯網(wǎng)絡(luò)上的其它分子通信。通過(guò)通信連接,分子可以發(fā)送和接收數(shù)據(jù)到其信號(hào)處理機(jī)40、通過(guò)任何輸入源存取數(shù)據(jù)到其輸入處理機(jī)42并通過(guò)其輸出處理機(jī)48輸出數(shù)據(jù)。
參考圖1B,示出用于分布計(jì)算環(huán)境的分子的邏輯網(wǎng)絡(luò)20的部署。通過(guò)任何類(lèi)型的網(wǎng)絡(luò)(由連接線(xiàn)表示)連接本地計(jì)算機(jī)、LAN/WAN服務(wù)器、CPU、網(wǎng)絡(luò)服務(wù)器、數(shù)據(jù)庫(kù)、I/O裝置等形式的多個(gè)分布計(jì)算資源。該網(wǎng)絡(luò)可以是局域網(wǎng)(LAN)、廣域網(wǎng)和/或全球網(wǎng)(因特網(wǎng))。當(dāng)邏輯網(wǎng)絡(luò)中的整個(gè)網(wǎng)絡(luò)可以駐留在單個(gè)計(jì)算資源處并在網(wǎng)絡(luò)上與具有要用分子處理數(shù)據(jù)的其它計(jì)算資源通信時(shí),如果旨在于特定計(jì)算資源處處理數(shù)據(jù)的邏輯網(wǎng)絡(luò)在這些計(jì)算資源處駐留并本地處理數(shù)據(jù)并代替地通過(guò)網(wǎng)絡(luò)將它們的狀態(tài)信息和結(jié)果與其它分子通信,就大大提升了系統(tǒng)的效率。因此,例如,用于處理COBOL格式的數(shù)據(jù)的分子可以駐留在存儲(chǔ)COBOL格式數(shù)據(jù)的COBOL服務(wù)器上,或用于處理JAVA空間內(nèi)數(shù)據(jù)的分子可以駐留在具有所需數(shù)據(jù)和本地駐留的JAVA虛擬機(jī)的計(jì)算資源處。在這種分布模式中,本地駐留的分子的邏輯網(wǎng)絡(luò)可以用其所駐留的計(jì)算資源所使用的程序設(shè)計(jì)語(yǔ)言編程,從而它可以方便地在該環(huán)境中操作。
可以類(lèi)似地在并行處理環(huán)境中部署邏輯網(wǎng)絡(luò),或邏輯網(wǎng)絡(luò)的網(wǎng)絡(luò),所述的并行處理環(huán)境具有一組CPU資源(由CPU#1,...,CPU#6表示)和相關(guān)的數(shù)據(jù)庫(kù)和I/O裝置。構(gòu)成邏輯網(wǎng)絡(luò)以便允許每個(gè)分子對(duì)它所希望處理的數(shù)據(jù)對(duì)象的有效訪(fǎng)問(wèn)。可以通過(guò)資源管理器分子或邏輯網(wǎng)絡(luò)排定分子對(duì)CPU計(jì)算資源的訪(fǎng)問(wèn)??晒┻x擇地,它可以和諸如在并行處理環(huán)境中常規(guī)使用的CPU調(diào)度程序(scheduler)通信。由于將分子設(shè)計(jì)成自主處理數(shù)據(jù),所以它們無(wú)需通過(guò)集中的處理管理監(jiān)控和控制就可以進(jìn)行操作。分子將它們的狀態(tài)信息、結(jié)果和下一個(gè)分子的終止、重新配置或產(chǎn)生發(fā)送信號(hào)給系統(tǒng)中建立的其它分子或邏輯網(wǎng)絡(luò)。但是,還可能以混合安排使邏輯網(wǎng)絡(luò)和常規(guī)控制器程序進(jìn)行通信。
軟件分子參考圖2,示出了基本類(lèi)型的軟件分子的較佳結(jié)構(gòu),它具有信號(hào)處理機(jī)40、輸入處理機(jī)42、數(shù)據(jù)接口處理機(jī)44、方法處理機(jī)46和輸出處理機(jī)48。信號(hào)處理機(jī)40能夠?qū)⑿盘?hào)發(fā)送到通信總線(xiàn)或網(wǎng)絡(luò)上的其它分子和其它資源并能從它們接收信號(hào),這類(lèi)似于CB或私人無(wú)線(xiàn)電網(wǎng)絡(luò)上分散的信號(hào)廣播。以通信總線(xiàn)或網(wǎng)絡(luò)上使用的共用協(xié)議將信號(hào)廣播,例如因特網(wǎng)通信上使用的TCP/IP協(xié)議。
信號(hào)處理機(jī)40可以在系統(tǒng)內(nèi)進(jìn)行以下的基本程序1.從數(shù)據(jù)源讀取配置文件。配置文件包含分子的子部分的名字、屬性和類(lèi)型。
2.通過(guò)按照配置文件中所定義的裝配子部分來(lái)構(gòu)建分子。通過(guò)從具有存儲(chǔ)的處理機(jī)類(lèi)型的文件庫(kù)的本地或遠(yuǎn)程源請(qǐng)求該部分的名字和類(lèi)型進(jìn)行子部分的加載或調(diào)用。
3.選擇信號(hào)環(huán)境。信號(hào)處理機(jī)收聽(tīng)配置文件中指定的信號(hào)環(huán)境。
4.將分子刪除、中止或重啟。
5.發(fā)送信號(hào)到指定的信號(hào)環(huán)境或從它發(fā)送信號(hào)。
6.解釋其接收的信號(hào),并將該信號(hào)傳遞給合適的分子的子部分,包括重新配置的能力。信號(hào)處理機(jī)可以將要求發(fā)送給子部分。信號(hào)處理機(jī)請(qǐng)求的實(shí)例包括(a)到輸入處理機(jī)或輸出處理機(jī)以降低隊(duì)列大??;(b)到5個(gè)子部分中的任何一個(gè)以寫(xiě)出它們的狀態(tài)并隨后消失(die);(c)暗示或命令5個(gè)子部分中的任何一個(gè)重新映射(re-mapping);(d)修改緩沖大小或存儲(chǔ)器的使用。
7.請(qǐng)求加載“下一個(gè)”或其它分子。信號(hào)處理機(jī)查看指定的名字登記以便了解是否已存在“下一個(gè)”分子。如果存在,則信號(hào)處理機(jī)將使分子重新映射,或可供選擇地,如果它被指定了,則將不請(qǐng)求“下一個(gè)”分子。如果不存在,則要求創(chuàng)建新的信號(hào)處理機(jī),它將加載“下一個(gè)”分子。新的信號(hào)處理機(jī)不是子線(xiàn)程,而是完整地分開(kāi)的和獨(dú)特的新實(shí)體。這是和其它程序設(shè)計(jì)樣式的區(qū)別,在所述其它的程序樣式中所有的線(xiàn)程是主要的母線(xiàn)程的子線(xiàn)程,它們一起形成應(yīng)用程序。
可以以任何適應(yīng)分子駐留的計(jì)算資源的通信或“信號(hào)”環(huán)境的方式實(shí)現(xiàn)信號(hào)處理機(jī)的信號(hào)發(fā)送和接收。在常規(guī)計(jì)算機(jī)或網(wǎng)絡(luò)環(huán)境中,信號(hào)處理機(jī)可以發(fā)行或接收“信號(hào)”作為尋址于系統(tǒng)中或網(wǎng)絡(luò)上的指定分子的數(shù)據(jù)包。來(lái)自信號(hào)處理機(jī)的信號(hào)可以根據(jù)名字登記中保持的地址而路由到目標(biāo)分子。名字登記可以由另一個(gè)分子或邏輯網(wǎng)絡(luò),或常規(guī)的資源寄存器(register)保持。例如,諸如JAVATM共享數(shù)據(jù)環(huán)境的常規(guī)數(shù)據(jù)共享環(huán)境具有為給定的應(yīng)用建立的服務(wù)器、客戶(hù)機(jī)和數(shù)據(jù)通道的寄存器。信號(hào)處理機(jī)還可以“收聽(tīng)”用于全局廣播給所有分子的信號(hào)環(huán)境,或者它可以調(diào)到如配置文件中所列出的指定頻道,或者等待來(lái)自任何指定信號(hào)環(huán)境的任何信號(hào),或者可以與邏輯網(wǎng)絡(luò)中其它分子的組一起調(diào)到同樣的頻道。
將分子的處理機(jī)部分構(gòu)成共用的一組類(lèi)型,它們可以被調(diào)用來(lái)創(chuàng)建或動(dòng)態(tài)地配置分子。可以通過(guò)將所需處理機(jī)類(lèi)型的名字發(fā)送信號(hào)來(lái)裝配分子,以便從存儲(chǔ)器取回代碼的對(duì)應(yīng)部分。在這種方式中,可以根據(jù)數(shù)據(jù)源或存儲(chǔ)模型的正確類(lèi)型訪(fǎng)問(wèn)任何數(shù)量的輸入和輸出處理機(jī)的類(lèi)型。類(lèi)似地,可以用許多不同類(lèi)型的方法處理機(jī)配置分子。當(dāng)向接口處理機(jī)提供新的配置信息時(shí),將與為給定條件調(diào)用的方法處理機(jī)類(lèi)型有關(guān)的新信息進(jìn)行存儲(chǔ),從而在存在這些情況時(shí)分子可以執(zhí)行新方法??梢酝ㄟ^(guò)本地存儲(chǔ)器、LAN、WAN或因特網(wǎng)從所存儲(chǔ)的文件訪(fǎng)問(wèn)用于分子的5個(gè)部分處理機(jī)中的任何一個(gè)的源或?qū)ο蟠a的合適部分。
在附錄I中提供的列表中示出了可能在分子配置文件中涉及的處理機(jī)類(lèi)型和屬性的范圍的基本實(shí)例。但是,可以理解,可創(chuàng)建的處理機(jī)的數(shù)量、類(lèi)型和屬性是無(wú)限制的,且可以隨用于配合不同類(lèi)型的存儲(chǔ)模型、數(shù)據(jù)共享環(huán)境和計(jì)算資源的程序員的需要相應(yīng)地?cái)U(kuò)展。
輸入處理機(jī)42建立從指定類(lèi)型的存儲(chǔ)模型到數(shù)據(jù)源的分子連接,如程序員所確定的。通過(guò)設(shè)計(jì),輸入處理機(jī)提供對(duì)任何存儲(chǔ)模型的數(shù)據(jù)源的接口。它將進(jìn)入的數(shù)據(jù)源排列成隊(duì)列允許的范圍,如所選類(lèi)型的輸入處理機(jī)所確定的,隨后向接口處理機(jī)44登記它已將數(shù)據(jù)排隊(duì)了。輸入處理機(jī)還允許分子的其它子部分查詢(xún)其數(shù)據(jù)。
在所示的實(shí)例中,在輸入處理機(jī)42a以及輸入處理機(jī)42b的隊(duì)列“B”中接受對(duì)存儲(chǔ)器或數(shù)據(jù)“A”的輸入指針,而在輸入處理機(jī)42c的隊(duì)列“E”中接受輸入指針/數(shù)據(jù)“D”。
由分子中裝配的輸入處理機(jī)的類(lèi)型確定可以進(jìn)入任何輸入處理機(jī)的數(shù)據(jù)源的類(lèi)型。每種類(lèi)型的輸入處理機(jī)可以為給定存儲(chǔ)模型如何接受數(shù)據(jù)指定給定存儲(chǔ)模型的特殊數(shù)據(jù)通道。例如,可以使用常規(guī)數(shù)據(jù)共享環(huán)境的存儲(chǔ)模型和數(shù)據(jù)處理功能,諸如Sun Microsystems,Mountain View,CA的Java共享數(shù)據(jù)工具包(JSDTTM)。在產(chǎn)生輸入處理機(jī)時(shí),為系統(tǒng)的存儲(chǔ)環(huán)境登記指定的數(shù)據(jù)通道。隨后可以將來(lái)自指定的數(shù)據(jù)通道上的源(系統(tǒng)中的其它分子或第三方客戶(hù)機(jī))的數(shù)據(jù)路由到輸入處理機(jī)。通過(guò)為特定的數(shù)據(jù)類(lèi)型選擇輸入處理機(jī),可以免去在運(yùn)行時(shí)間上進(jìn)行數(shù)據(jù)類(lèi)型檢查的需要。可以寫(xiě)入各種類(lèi)型的輸入處理機(jī)以便適應(yīng)將被處理的各種文件類(lèi)型。在較佳的結(jié)構(gòu)中,一旦輸入處理機(jī)接受了數(shù)據(jù)源并開(kāi)始處理數(shù)據(jù),則數(shù)據(jù)將是“無(wú)類(lèi)型的”直到輸出處理機(jī)將到給定環(huán)境的接口的數(shù)據(jù)進(jìn)行格式化或設(shè)置類(lèi)型。使用多個(gè)輸入處理機(jī)的優(yōu)點(diǎn)在于允許從多個(gè)存儲(chǔ)模型同時(shí)訪(fǎng)問(wèn)數(shù)據(jù)源,這些存儲(chǔ)模型在同一分子中被聚合并處理。
通過(guò)確定分子的輸入何時(shí)滿(mǎn)足一個(gè)或多個(gè)預(yù)定的條件,接口處理機(jī)44執(zhí)行分子的中央功能。通過(guò)允許分子等待滿(mǎn)足預(yù)定條件的輸入,而非必須由指示命令和由集中的處理管理監(jiān)控,分子能夠等待、查看和處理,從而它具有自主行動(dòng)的特性。這不同于常規(guī)線(xiàn)性程序設(shè)計(jì)的代碼指令,后者中它被寫(xiě)入來(lái)在特定順序中在特定的時(shí)間執(zhí)行特定的任務(wù)。預(yù)定條件可以是出現(xiàn)所有所需數(shù)據(jù)輸入到輸入處理機(jī)。可供選擇地,它可以包括出現(xiàn)由信號(hào)處理機(jī)接收的信號(hào)。還可以通過(guò)信號(hào)處理機(jī)接受的信號(hào)動(dòng)態(tài)地重新配置接口處理機(jī),以便改變預(yù)定的條件來(lái)調(diào)用用于給定的一組條件的方法或輸出處理機(jī)以便被調(diào)用來(lái)處理結(jié)果。
根據(jù)存在哪種輸入數(shù)據(jù)源,接口處理機(jī)可以具有用于多個(gè)不同方法處理機(jī)和有關(guān)方法中的每一個(gè)的預(yù)定輸入條件。在等待來(lái)自一個(gè)或多個(gè)輸入處理機(jī)的指示的接口處理機(jī)內(nèi),分子具有多個(gè)查找表。在幫助輸入處理機(jī)和方法處理機(jī)之間的通信之前,接口處理機(jī)將等待,直到滿(mǎn)足查找表中指定的所有輸入。
接口處理機(jī)可以使用用于監(jiān)控多個(gè)輸入條件的任何合適裝置來(lái)確定何時(shí)滿(mǎn)足預(yù)定條件的需要。該功能可以通過(guò)等效于位陣列、條碼表或開(kāi)關(guān)陣列的軟件實(shí)現(xiàn)。在滿(mǎn)足所有所需輸入條件時(shí),接口處理機(jī)44請(qǐng)求各方法處理機(jī)46并將用于調(diào)用有關(guān)方法47的合適的參考傳遞給它。在圖2所示的實(shí)例中,輸入處理機(jī)42a和42b告知接口處理機(jī)44正確的指針/數(shù)據(jù)源被排隊(duì),以使位陣列中指定的標(biāo)記被設(shè)定為“1”來(lái)表示輸入條件“C”,而輸入處理機(jī)42c設(shè)定用于輸入條件“F”的標(biāo)記位。
通過(guò)出現(xiàn)另一個(gè)輸入條件,例如被發(fā)送到信號(hào)處理機(jī)40的信號(hào),位陣列第三行中的第四個(gè)標(biāo)記位被設(shè)定為“1”。由于位陣列的第三行中所有所需的標(biāo)記位都被設(shè)定為“1”,所以接口處理機(jī)44打開(kāi)通道“G”來(lái)調(diào)用合適的方法處理機(jī)46,它隨后請(qǐng)求用于處理到輸出處理機(jī)48的輸入的有關(guān)方法47。
圖3中,描述了接口處理機(jī)的邏輯操作的更詳細(xì)的方法。接口處理機(jī)44存儲(chǔ)表示為“查找#1”的第一條件所必需的預(yù)定輸入。查找#1指定在接口處理機(jī)44的預(yù)定條件下將產(chǎn)生什么事件,包括“所有數(shù)據(jù)出現(xiàn)”、“超時(shí)”和“信號(hào)”。接口處理機(jī)44可以具有一個(gè)或多個(gè)查找。在該實(shí)例中,查找#1描述一個(gè)根據(jù)三個(gè)數(shù)據(jù)源的出現(xiàn)的接口處理機(jī),該三個(gè)數(shù)據(jù)源是共享存儲(chǔ)數(shù)據(jù)A、硬件存儲(chǔ)數(shù)據(jù)B和網(wǎng)絡(luò)存儲(chǔ)數(shù)據(jù)C。
在查找#1中,根據(jù)是否出現(xiàn)共享存儲(chǔ)數(shù)據(jù)A將指數(shù)1設(shè)定成開(kāi)/關(guān),同樣地,指數(shù)2用于硬件存儲(chǔ)數(shù)據(jù)B而指數(shù)3用于網(wǎng)絡(luò)存儲(chǔ)數(shù)據(jù)C。當(dāng)所有數(shù)據(jù)都出現(xiàn)時(shí),接口處理機(jī)請(qǐng)求合適的方法處理機(jī)46a“所有數(shù)據(jù)出現(xiàn)”。作為缺省條件,如果經(jīng)過(guò)了指定的時(shí)間間隔而沒(méi)有滿(mǎn)足所有的數(shù)據(jù)輸入條件,則用于“超時(shí)”的指數(shù)被設(shè)定為“開(kāi)”以調(diào)用方法處理機(jī)46b。作為另一種缺省條件,如果在滿(mǎn)足所有數(shù)據(jù)輸入條件之前信號(hào)處理機(jī)40接受到指定的信號(hào),則將“信號(hào)”指數(shù)設(shè)定為“開(kāi)”以調(diào)用方法處理機(jī)46e。查找#2示作根據(jù)兩個(gè)數(shù)據(jù)源,硬件存儲(chǔ)數(shù)據(jù)B和網(wǎng)絡(luò)存儲(chǔ)數(shù)據(jù)C。接口處理機(jī)總是知道哪個(gè)相關(guān)的輸入處理機(jī)42具有數(shù)據(jù),因?yàn)楫?dāng)輸入處理機(jī)接受到新數(shù)據(jù)或不再具有數(shù)據(jù)時(shí),它會(huì)通知接口處理機(jī)。
再參考圖2,當(dāng)滿(mǎn)足預(yù)定的輸入條件時(shí),調(diào)用各方法處理機(jī)(對(duì)于三組預(yù)定條件的類(lèi)型“H”、“K”和“N”),請(qǐng)求在輸入數(shù)據(jù)上進(jìn)行的相關(guān)的方法47或處理步驟,并將輸入數(shù)據(jù)從輸入處理機(jī)42提供到方法47??梢酝ㄟ^(guò)通路“G”將輸入數(shù)據(jù)作為塊處理,或作為流數(shù)據(jù)。如果輸入數(shù)據(jù)是流,則方法處理機(jī)建立用于流的輸入通路,它由來(lái)自方法處理機(jī)的隊(duì)列“I”和來(lái)自輸入處理機(jī)的輸入響應(yīng)“J”處理。對(duì)于數(shù)據(jù)塊,方法47將輸出M返回到方法處理機(jī)46,它將輸出M發(fā)送到輸出處理機(jī)48并隨后在其之后清除。對(duì)于流數(shù)據(jù),輸出M被直接發(fā)送到輸出處理機(jī)48直到方法終止。方法的實(shí)例可以是計(jì)算算術(shù)和、將數(shù)據(jù)分類(lèi)、進(jìn)行邏輯操作等等,并可以包括整個(gè)第三方應(yīng)用。
圖4A和4B示出兩個(gè)方法處理類(lèi)型的實(shí)例,分別是塊方法處理和流方法處理。在塊方法處理中,方法處理機(jī)46從接口處理機(jī)44接收請(qǐng)求方法47所需的進(jìn)入數(shù)據(jù)的參考。隨后,方法處理機(jī)46查詢(xún)來(lái)自輸入處理機(jī)42的進(jìn)入數(shù)據(jù),請(qǐng)求塊方法47并將響應(yīng)傳遞給方法47。隨后,方法處理機(jī)46等待方法47返回其結(jié)果。隨后,它從輸出處理機(jī)48獲得輸出處理機(jī)參考并將結(jié)果發(fā)送給它們。如果不存在參考,則方法處理機(jī)可以創(chuàng)建(調(diào)用)輸出處理機(jī)。隨后,將數(shù)據(jù)傳遞到輸出處理機(jī)48,方法處理機(jī)46退出。
在流方法處理中,方法處理機(jī)46從接口處理機(jī)44接收請(qǐng)求方法47所需的進(jìn)入數(shù)據(jù)的參考。方法處理機(jī)46還獲得或創(chuàng)建用于流出數(shù)據(jù)的輸出處理機(jī)48參考。在滿(mǎn)足預(yù)定條件時(shí),請(qǐng)求流方法47,并將輸入和輸出處理機(jī)參考傳遞到流方法47。隨后,流方法47可以從輸入處理機(jī)42接收數(shù)據(jù)、處理它并將其直接提供給輸出處理機(jī)48。在該流方式中利用方法處理機(jī)46允許分子用作“連接引擎”,它允許邏輯網(wǎng)絡(luò)將方法47的動(dòng)態(tài)鏈串在一起。
如程序員所確定的,在將被提供輸出的存儲(chǔ)環(huán)境類(lèi)型中,輸出處理機(jī)48建立到數(shù)據(jù)通道的合適連接。如果沒(méi)有在輸出處理機(jī)的配置文件中指定用于輸出的數(shù)據(jù)通道,則可以啟用輸出處理機(jī)以便在運(yùn)行時(shí)間上響應(yīng)現(xiàn)有條件創(chuàng)建數(shù)據(jù)通道。通過(guò)設(shè)計(jì),輸出處理機(jī)因而允許任何類(lèi)型的存儲(chǔ)模型的接口。它將流出的數(shù)據(jù)源排隊(duì)成隊(duì)列所允許的范圍,如程序員根據(jù)所選的輸出處理機(jī)的類(lèi)型所確定的。
使用輸出處理機(jī)的優(yōu)點(diǎn)在于允許用于輸入數(shù)據(jù)的多個(gè)存儲(chǔ)模型的同時(shí)分配,它們?cè)谕环肿又芯酆虾吞幚???梢杂泻芏囝?lèi)型的輸出處理機(jī)。特別的優(yōu)點(diǎn)是用于共享存儲(chǔ)計(jì)算機(jī)系統(tǒng)的輸入和輸出處理機(jī)的使用。取代移動(dòng)實(shí)際的數(shù)據(jù),對(duì)于另一個(gè)或下一個(gè)要操作的分子,可以在分子內(nèi)或從一個(gè)分子到另一個(gè)地移動(dòng)數(shù)據(jù)或過(guò)程的指針。這給予了分子相比常規(guī)的面向?qū)ο蟮某绦蛟O(shè)計(jì)(OOP)方法速度上的優(yōu)勢(shì)。OOP方法也可以傳遞指針,但必須通過(guò)OOP程序處理指針來(lái)找到指針。相反,分子可以從另一個(gè)分子接收原始指針并用下一個(gè)操作直接處理。
如程序員所確定的,每個(gè)分子具有微組分,這些微組分允許分子進(jìn)行自主行動(dòng)來(lái)將由規(guī)定的方法所需的數(shù)據(jù)處理為想要的數(shù)據(jù)。在構(gòu)建邏輯網(wǎng)絡(luò)所針對(duì)的無(wú)論哪種數(shù)據(jù)共享環(huán)境中,數(shù)據(jù)移動(dòng)到指定數(shù)據(jù)通道上的分子或從其移動(dòng)出。如果任何數(shù)據(jù)都不可得,則分子將簡(jiǎn)單地等待,并不必指示下一步將作什么??梢越o每個(gè)分子唯一的名字,它保存在名字登記中。因此,任何分子可以根據(jù)其唯一的名字將該分子發(fā)信號(hào),且不能在同一登記中創(chuàng)建同一名字的另外的分子。
可以在任何時(shí)候通過(guò)將終止信號(hào)發(fā)送到信號(hào)處理機(jī)40終止分子的處理。在它們存在期間的任何一點(diǎn),可以將分子停止并通過(guò)發(fā)送到信號(hào)處理機(jī)40的重新配置信號(hào)而針對(duì)不同的模式或方法重新配置。還可以將分子發(fā)送信號(hào)來(lái)寫(xiě)出其當(dāng)前的配置(狀態(tài)信息),從而可以在任何一時(shí)間點(diǎn)分析處理狀態(tài)。相反,常規(guī)的程序不保持動(dòng)態(tài)改變的狀態(tài)信息,因此不能解釋在任一特定時(shí)間時(shí)在運(yùn)行什么。
在分子的5個(gè)子部分中的任一個(gè)或全部接收到一“除去(kill)”信號(hào)且所選的處理機(jī)類(lèi)型支持保留關(guān)于處理狀態(tài)的信息時(shí),處理機(jī)將它們的狀態(tài)信息寫(xiě)入可以被重新加載的分子配置文件。因此,如果由于任一原因系統(tǒng)故障,則可以從分子獲得狀態(tài)信息,并重新創(chuàng)建每個(gè)分子和整個(gè)邏輯網(wǎng)絡(luò)的狀態(tài)。這允許系統(tǒng)管理員定位哪里或如何產(chǎn)生故障,還允許將該配置文件加載入另一個(gè)分子以便一旦改正了故障還能再繼續(xù)處理。重新建立過(guò)程(邏輯網(wǎng)絡(luò))的“狀態(tài)”的能力和與其它程序設(shè)計(jì)樣式中的不同。如果系統(tǒng)出現(xiàn)故障,通常整個(gè)過(guò)程必須從開(kāi)始處重新啟動(dòng)并通過(guò)每次執(zhí)行一步地步進(jìn)直至到達(dá)故障。使用本發(fā)明的程序設(shè)計(jì)方法,使用邏輯網(wǎng)絡(luò),可以就在故障點(diǎn)之前重新創(chuàng)建過(guò)程,大大地提升了診斷速度。
分子的配置文件指定分子將作為什么運(yùn)行狀態(tài)運(yùn)行,諸如“運(yùn)行一次”、“運(yùn)行直至沒(méi)有數(shù)據(jù)”或“運(yùn)行直到信號(hào)通知消失”。當(dāng)完成一次運(yùn)行時(shí),當(dāng)其輸入處理機(jī)和輸出處理機(jī)中不再有數(shù)據(jù)時(shí),或當(dāng)信號(hào)處理機(jī)接收信號(hào)來(lái)從信號(hào)環(huán)境中除去分子時(shí),分子可以將其本身清除(clean itselfup)。這可以通過(guò)清除軟件文件或禁用其可執(zhí)行代碼來(lái)實(shí)現(xiàn)。因此,可以通過(guò)處理每個(gè)分子基礎(chǔ)上的“清除”來(lái)保持邏輯網(wǎng)絡(luò)的完整性。在終止之后不遺留不正確的數(shù)據(jù)或狀態(tài)信息,其中它們可能使其它處理機(jī)變壞。分子水平上的清除還提供有效的存儲(chǔ)使用并不必定期清除程序。僅在所需的運(yùn)行時(shí)間內(nèi)加載分子,所以當(dāng)分子終止時(shí)立即將機(jī)器資源釋放。對(duì)于流方法,可以創(chuàng)建分子,只要提供數(shù)據(jù),它就使用可得的資源來(lái)流化數(shù)據(jù),在這一點(diǎn)上釋放了機(jī)器資源。如果動(dòng)態(tài)地確定分子的必要的壽命,程序員可以指示信號(hào)處理機(jī)來(lái)收聽(tīng)合適的信號(hào)環(huán)境來(lái)接收除去信號(hào)??梢詫⒃摮バ盘?hào)發(fā)送到分子的每個(gè)子部分以便將其本身清除,這可以包括寫(xiě)出它們的狀態(tài)用作將來(lái)的參考。該程序設(shè)計(jì)方法用每個(gè)分子(每個(gè)數(shù)據(jù)處理子步驟)將其本身消除的獨(dú)特能力提供了機(jī)器資源的有效使用。在另一種程序設(shè)計(jì)樣式中,雖然在運(yùn)行時(shí)間期間產(chǎn)生某些清除,但不會(huì)釋放大部分機(jī)器資源直到應(yīng)用程序退出。
邏輯網(wǎng)絡(luò)程序設(shè)計(jì)方法本發(fā)明的程序設(shè)計(jì)方法要求構(gòu)建一個(gè)或多個(gè)邏輯網(wǎng)絡(luò)來(lái)進(jìn)行整個(gè)處理任務(wù)的增加的處理步驟。通過(guò)一組增加的處理步驟完成處理任務(wù)的程序設(shè)計(jì)是程序設(shè)計(jì)領(lǐng)域中一件技術(shù)、靈活和藝術(shù)的事,并超出了本描述的范圍。新程序設(shè)計(jì)方法的基本特性是邏輯網(wǎng)絡(luò)的創(chuàng)建,該邏輯網(wǎng)絡(luò)工作地連接到由多個(gè)分子構(gòu)成的計(jì)算資源,這些分子可以自主地進(jìn)行數(shù)據(jù)處理步驟。邏輯網(wǎng)絡(luò)的特定結(jié)構(gòu)取決于所需進(jìn)行的處理任務(wù)(在以下的“數(shù)據(jù)同步實(shí)例”中描述了一特殊實(shí)例)。邏輯網(wǎng)絡(luò)的創(chuàng)建中的基本元素是至少一個(gè)分子的創(chuàng)建,所述分子具有以上描述的基本的5個(gè)子部分。
為了編寫(xiě)分子,程序員具有一處理機(jī)類(lèi)型庫(kù),由該庫(kù)創(chuàng)建分子。程序員首先確定從哪個(gè)數(shù)據(jù)源獲得數(shù)據(jù),這些數(shù)據(jù)源諸如存儲(chǔ)的文件、因特網(wǎng)目錄、JSDTTM空間(Sun MicroSystems的商標(biāo),Mountain View,CA),IBM TubuleTM空間(IBM公司的商標(biāo),Armonk,NY)等等,和用什么方法來(lái)處理數(shù)據(jù)。程序員選擇合適的輸入和輸出處理機(jī)類(lèi)型,它們和設(shè)置或?qū)Ⅰv留數(shù)據(jù)源的數(shù)據(jù)環(huán)境相匹配,隨后選擇合適的接口處理機(jī)。程序員通過(guò)確定為了請(qǐng)求方法處理機(jī)需要滿(mǎn)足哪些輸入條件來(lái)配置接口處理機(jī)。隨后,程序員選擇將調(diào)用的方法的名字,和哪個(gè)輸出處理機(jī)與被處理的數(shù)據(jù)將被發(fā)送至的環(huán)境匹配。程序員確定分子是否將運(yùn)行一次、運(yùn)行直到?jīng)]有數(shù)據(jù)或運(yùn)行直到收到消失信號(hào)。程序員還確定是否使用超時(shí)時(shí)間段、什么超時(shí)方法和當(dāng)接收到特定類(lèi)型的信號(hào)時(shí)請(qǐng)求什么方法。最后,程序員定義將加載什么另外的或下一個(gè)分子,和將使用什么信號(hào)來(lái)重新映射這個(gè)或其他的分子。
這導(dǎo)致一個(gè)分子單元。程序員將它保存為一個(gè)初始文件并給它一個(gè)獨(dú)特的名字,該名字登錄在名字登記中。程序員對(duì)邏輯網(wǎng)絡(luò)中創(chuàng)建的每個(gè)分子進(jìn)行類(lèi)似的處理。隨著進(jìn)一步發(fā)展了這種樣式的程序設(shè)計(jì),在用于程序設(shè)計(jì)使用的庫(kù)中可以存儲(chǔ)用于優(yōu)化分子和甚至整個(gè)邏輯網(wǎng)絡(luò)的標(biāo)準(zhǔn)初始化文件。處理機(jī)的庫(kù)或列表的發(fā)展被認(rèn)為能允許外行不寫(xiě)一行代碼而創(chuàng)建完整處理分子或整個(gè)應(yīng)用程序。
通過(guò)本發(fā)明的程序設(shè)計(jì)方法將數(shù)據(jù)處理任務(wù)編程的結(jié)果是通過(guò)創(chuàng)建分子的邏輯網(wǎng)絡(luò)來(lái)執(zhí)行程序,其中所述分子的邏輯網(wǎng)絡(luò)可以自主地在任何計(jì)算資源上處理數(shù)據(jù),不需要集中的處理管理而將它們分配到上述的計(jì)算資源。進(jìn)一步的重要特點(diǎn)是能夠動(dòng)態(tài)地重新配置邏輯網(wǎng)絡(luò)的一個(gè)或多個(gè)分子,以便或者隨運(yùn)行時(shí)間的改變,或者隨程序的發(fā)展或擴(kuò)展,或者隨程序錯(cuò)誤的校正,改變其數(shù)據(jù)處理功能。
處理任務(wù)中的步驟的執(zhí)行是通過(guò)信號(hào)處理機(jī)的生成的動(dòng)作完成的。在產(chǎn)生信號(hào)處理機(jī)時(shí),在讀取其配置文件時(shí),它分叉并創(chuàng)建配置文件中指出的任何其他的分子。
信號(hào)處理機(jī)還將其分子重新映射到另一個(gè)分子名字,或可以請(qǐng)求另一個(gè)方法。因此,分子的每個(gè)層構(gòu)建“其本身之前以外(out ahead ofitself)”的邏輯網(wǎng)絡(luò)。結(jié)果,將產(chǎn)生分子的連續(xù)的層,隨后將擱置(sit)并等待實(shí)現(xiàn)它們的可得數(shù)據(jù)源的輸入條件。
圖5A-5F示出本發(fā)明的邏輯網(wǎng)絡(luò)程序設(shè)計(jì)方法和常規(guī)面向?qū)ο蟮某绦蛟O(shè)計(jì)的比較。該實(shí)例使用根據(jù)給定的查找輸入查找汽車(chē)數(shù)據(jù)的數(shù)據(jù)處理任務(wù)的簡(jiǎn)單化比較。
通過(guò)一個(gè)或多個(gè)種類(lèi)的汽車(chē)類(lèi)型、制造、風(fēng)格、駕駛特性、操縱特性、顏色、剎車(chē)特性以及加速特性,建立數(shù)據(jù)處理程序來(lái)進(jìn)行數(shù)據(jù)庫(kù)的查找。圖5A-5C中示出邏輯網(wǎng)絡(luò)程序設(shè)計(jì)方法的效果,而圖5D-5F中是面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。
圖5A中,加載汽車(chē)分子。當(dāng)用查找輸入A,C,D實(shí)現(xiàn)汽車(chē)分子時(shí),請(qǐng)求創(chuàng)建操縱分子,它依次請(qǐng)求創(chuàng)建駕駛分子。將輸入傳遞到駕駛分子,它處理這些輸入并返回一結(jié)果。在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,如圖5所示,加載整個(gè)汽車(chē)對(duì)象,并將輸入A,C,D傳遞到汽車(chē)對(duì)象。汽車(chē)對(duì)象的分級(jí)元素或類(lèi),例如,汽車(chē)類(lèi)型、操縱和駕駛,處理輸入,產(chǎn)生結(jié)果。
圖5B示出在邏輯網(wǎng)絡(luò)程序設(shè)計(jì)樣式中,如何不必為了改變操作的功能特性而退出運(yùn)行操作。添加氣和電(電源)分子并使它們可由操作訪(fǎng)問(wèn)。將重新映射的信號(hào)發(fā)送到加速分子以便包含請(qǐng)求加速的情況中添加的新分子。在面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中,如圖5E所示,必須退出操作的運(yùn)行,為了整個(gè)汽車(chē)對(duì)象而獲得源代碼,為了層級(jí)中的其位置編輯氣和電對(duì)象,并編輯加速對(duì)象來(lái)包含層級(jí)變化。隨后,必須將對(duì)象代碼重新編譯,在這種情況中,還必須編輯、重新編譯和重新連接將在操作中使用的任何其他源代碼或?qū)ο蟠a。
在圖5C中最后的實(shí)例中,現(xiàn)在運(yùn)行邏輯網(wǎng)絡(luò)程序設(shè)計(jì)方法中的加速分子。在通過(guò)新的輸入B和現(xiàn)有輸入C實(shí)現(xiàn)加速分子使,請(qǐng)求氣分子,并傳遞和處理數(shù)據(jù),返回結(jié)果。在圖5F中面向?qū)ο蟮膶?shí)例中,重新開(kāi)始操作,并重新加載整個(gè)汽車(chē)對(duì)象。將輸入B和C傳遞到汽車(chē)對(duì)象,且汽車(chē)類(lèi)型、操縱、加速和氣的分級(jí)元素或類(lèi)處理該輸入,產(chǎn)生結(jié)果。這示出,在邏輯網(wǎng)絡(luò)程序設(shè)計(jì)方法中,在運(yùn)行系統(tǒng)時(shí),系統(tǒng)可以動(dòng)態(tài)地適應(yīng)應(yīng)用的新參數(shù)。這就不必重新編碼和編譯來(lái)繼續(xù)運(yùn)行操作。
編譯和運(yùn)行時(shí)間操作在邏輯網(wǎng)絡(luò)程序設(shè)計(jì)方法中,通過(guò)設(shè)計(jì)相互作用的分子的邏輯“網(wǎng)絡(luò)”實(shí)現(xiàn)整個(gè)處理任務(wù),其中上述的邏輯網(wǎng)絡(luò)可以自主地進(jìn)行數(shù)據(jù)源到最終結(jié)果的所需處理。在運(yùn)行時(shí)間上從程序員編寫(xiě)的初始文件產(chǎn)生分子的網(wǎng)絡(luò),它們?cè)趨⑴c整個(gè)處理任務(wù)完成的計(jì)算資源之間分配。
初始文件產(chǎn)生分子的初始群(cohort)來(lái)開(kāi)始處理任務(wù)。利用本地CPU和相關(guān)數(shù)據(jù)庫(kù)的可得的計(jì)算資源,分子保持操作直到它們被終止、沒(méi)有數(shù)據(jù)或被重新配置。在操作期間,它們可以被用來(lái)在任何時(shí)候調(diào)用其他的分子。以這種方式,它們用作動(dòng)態(tài)環(huán)境中的自主元素。但是,它們的操作是有目的的并立刻在任何地方并行,而不是混亂的。
計(jì)算機(jī)處理的這個(gè)新樣式產(chǎn)生優(yōu)化的有效分布處理,以及真正并行程序設(shè)計(jì)和處理的能力。除了能使用網(wǎng)絡(luò)上的任何機(jī)器而不管其類(lèi)型或操作系統(tǒng)環(huán)境,它還立刻處理來(lái)自不同源的數(shù)據(jù)。
在較佳實(shí)施中,給處理機(jī)指定獨(dú)特的類(lèi)型名字并寫(xiě)入對(duì)象或源代碼中。可以為預(yù)計(jì)將遇到的許多類(lèi)型的程序設(shè)計(jì)環(huán)境編寫(xiě)同一類(lèi)型的處理機(jī),從而可以調(diào)用正確的代碼類(lèi)型來(lái)在想要的本地計(jì)算資源上運(yùn)行。例如,它們可以以將在其上運(yùn)行的本地計(jì)算資源的操作系統(tǒng)使用的程序語(yǔ)言編寫(xiě),或可以以諸如,JAVATM腳本(Sun Microsystems的商標(biāo),MountainView,CA)的可移植的元語(yǔ)言編寫(xiě)以便在該操作系統(tǒng)環(huán)境中的可執(zhí)行部分(JAVA虛擬機(jī))上運(yùn)行。
用于產(chǎn)生邏輯網(wǎng)絡(luò)的分子的初始文件物理上作為存儲(chǔ)在磁盤(pán)上或存儲(chǔ)器中或通過(guò)到本地計(jì)算資源的網(wǎng)絡(luò)傳輸?shù)南鄬?duì)較小的文件存在。它們作為可執(zhí)行文件運(yùn)行,該可執(zhí)行文件被讀入本地計(jì)算資源的RAM并象其他編譯的程序一樣被執(zhí)行。如果分子旨在在因特網(wǎng)環(huán)境中被部署,則可以從URL地址檢索,或從本地目錄,例如/usr/lib/java獲得代碼文件。
初始文件用來(lái)通過(guò)調(diào)用部分處理機(jī)的名字裝配分子的每個(gè)初始群。當(dāng)調(diào)用處理機(jī)名字時(shí),從所存儲(chǔ)的處理機(jī)庫(kù)(本地的或遠(yuǎn)程的)檢索包含源或?qū)ο蟠a的文件,并將它們裝配來(lái)形成分子。這導(dǎo)致比常規(guī)OOP方法中的更多的柔性運(yùn)行時(shí)間操作,在常規(guī)的OOP方法中以完整裝配的塊或編寫(xiě)首先必須被編譯以便運(yùn)行的源代碼的其他程序設(shè)計(jì)語(yǔ)言編寫(xiě)整個(gè)對(duì)象。
圖6A-6D一步一步地示出3種基本類(lèi)型的分子,塊處理、流處理和流塊處理(streaming a block process)的運(yùn)行時(shí)間的執(zhí)行。在圖6A中示出了分子的基本部分,包括信號(hào)處理機(jī)40、輸入處理機(jī)42、接口處理機(jī)44、方法處理機(jī)46、方法47和輸出處理機(jī)48。用于分子的初始文件首先構(gòu)建信號(hào)處理機(jī)40。信號(hào)處理機(jī)啟動(dòng)并通報(bào)用于整個(gè)程序的名字登記。如果該名字已存在,則或者忽略該創(chuàng)建分子的請(qǐng)求,或者重新映射現(xiàn)有的分子。動(dòng)態(tài)命名約定也可以用來(lái)除去保持集中的名字登記的需要。隨后,信號(hào)處理機(jī)40調(diào)用輸入和輸出處理機(jī)42和48以及接口處理機(jī)44。在這一點(diǎn)上,有一運(yùn)行的分子等待輸入。應(yīng)注意,在任何步驟上,信號(hào)處理機(jī)可以命令或排隊(duì)輸入和輸出處理機(jī)、接口處理機(jī)和方法處理機(jī)的所有屬性的重新映射,或它可以中斷、繼續(xù)或終止一單元。
對(duì)于圖6B所示的塊處理,在步驟A中分子等待輸入處理機(jī)42向接口處理機(jī)44登記它們具有數(shù)據(jù)。當(dāng)實(shí)現(xiàn)接口處理機(jī)44時(shí),進(jìn)行到請(qǐng)求方法處理機(jī)46。在步驟B中,方法處理機(jī)從接口處理機(jī)接收輸入處理機(jī)參考、輸出處理機(jī)名字和方法名字。方法處理機(jī)向輸入處理機(jī)查詢(xún)輸入數(shù)據(jù)作為一個(gè)塊。在步驟C中,方法處理機(jī)請(qǐng)求方法47并傳遞輸入數(shù)據(jù)響應(yīng),隨后等待方法返回一結(jié)果。當(dāng)在步驟D中返回結(jié)果時(shí),方法處理機(jī)獲得輸出處理機(jī)參考。如果它不存在,則方法處理機(jī)創(chuàng)建輸出處理機(jī)48。隨后,進(jìn)行到將結(jié)果傳遞給輸出處理機(jī)。步驟E中,輸出處理機(jī)48將數(shù)據(jù)發(fā)送到其輸出環(huán)境,且分子返回來(lái)等待輸入處理機(jī)將更多的數(shù)據(jù)排隊(duì)。
對(duì)于圖6C所示的流處理,在步驟A中分子等待輸入處理機(jī)向接口處理機(jī)登記它們具有數(shù)據(jù)。當(dāng)實(shí)現(xiàn)接口處理機(jī)時(shí),進(jìn)行到請(qǐng)求方法處理機(jī)。在步驟B中,方法處理機(jī)從接口處理機(jī)接收輸入處理機(jī)參考、輸出處理機(jī)名字和方法名字。為流處理選擇的方法處理機(jī)獲得輸出處理機(jī)參考,或者,如果它不存在,則創(chuàng)建輸出處理機(jī)。在步驟C中,方法處理機(jī)請(qǐng)求方法47并傳遞輸入和輸出處理機(jī)參考?,F(xiàn)在,方法流過(guò)輸入和輸出處理機(jī)直到輸入數(shù)據(jù)隊(duì)列是空的,或輸出處理機(jī)不再存在。在步驟D中,將最后的方法結(jié)果傳遞到輸出處理機(jī)。在步驟E中,輸出處理機(jī)將數(shù)據(jù)發(fā)送到其輸出環(huán)境,且分子返回來(lái)等待輸入處理機(jī)將更多的數(shù)據(jù)排隊(duì)。
對(duì)于圖6D所示的流塊處理,在步驟A中分子等待輸入處理機(jī)向接口處理機(jī)登記,且當(dāng)實(shí)現(xiàn)時(shí),進(jìn)行到請(qǐng)求方法處理機(jī)。在步驟B中,方法處理機(jī)從接口處理機(jī)接收輸入處理機(jī)參考、輸出處理機(jī)名字和方法名字,并獲得輸出處理機(jī)參考或創(chuàng)建輸出處理機(jī)。在步驟C中,所選擇的方法處理機(jī)將查詢(xún)輸入處理機(jī),用輸入數(shù)據(jù)請(qǐng)求方法,等待結(jié)果,以及將結(jié)果傳遞到輸出處理機(jī)。如果輸入處理機(jī)隊(duì)列不是空的,則方法處理機(jī)重復(fù)這些步驟直到隊(duì)列是空的或輸出處理機(jī)不再存在。在步驟D中,將最后的方法結(jié)果傳遞到輸出處理機(jī)。在步驟E中,輸出處理機(jī)將數(shù)據(jù)發(fā)送到其輸出環(huán)境,且分子返回來(lái)等待輸出處理機(jī)將更多的數(shù)據(jù)排隊(duì)。
在邏輯網(wǎng)絡(luò)的操作中,在一個(gè)計(jì)算機(jī)器上開(kāi)始的過(guò)程可以移動(dòng)到別處,在網(wǎng)絡(luò)上的另一個(gè)可得的機(jī)器上,或在具有可得資源的多個(gè)機(jī)器上繼續(xù)操作。對(duì)于操作來(lái)說(shuō)只有部分活動(dòng)的邏輯網(wǎng)絡(luò)是必要的。
數(shù)據(jù)同步實(shí)例現(xiàn)在將參考圖7描述一個(gè)特殊的實(shí)例,以便示出如何應(yīng)用計(jì)算機(jī)處理和程序設(shè)計(jì)方法來(lái)產(chǎn)生能完成給定處理任務(wù)的邏輯網(wǎng)絡(luò),例如使來(lái)自不同數(shù)據(jù)源的數(shù)據(jù)流同步,這些數(shù)據(jù)流諸如處理多媒體圖像中通常使用的。初始文件創(chuàng)建一開(kāi)(open)分子70,它讀取輸入配置文件,并創(chuàng)建新分子,資源管理器7l和屬性用戶(hù)接口72。資源管理器7l查詢(xún)機(jī)器可得的資源并在給定從配置文件確定開(kāi)分子的標(biāo)準(zhǔn)時(shí)確定機(jī)器可以處理多少數(shù)據(jù)源(在該實(shí)例中3個(gè))。資源管理器7l創(chuàng)建3個(gè)數(shù)據(jù)加載器74a、74b、74c和用戶(hù)定義的數(shù)據(jù)加載器74d。
屬性用戶(hù)接口72允許從輸入配置文件中的屬性選擇,以及新屬性的創(chuàng)建,和文件類(lèi)型和文件名字的選擇。在用戶(hù)要求時(shí)它創(chuàng)建新定制(custom)數(shù)據(jù)加載器,以及執(zhí)行分子73。執(zhí)行分子73分配文件名字、文件類(lèi)型和文件屬性,并創(chuàng)建新分子,它包括同步分子80。
數(shù)據(jù)加載器74a、74b、74c將數(shù)據(jù)定位,如果有足夠的存儲(chǔ)量則將數(shù)據(jù)加載入存儲(chǔ)器,或如必要?jiǎng)t是數(shù)據(jù)分幾部分加載,準(zhǔn)備傳遞數(shù)據(jù),以及創(chuàng)建數(shù)據(jù)用戶(hù)接口分子75a、75b、75c。這允許用戶(hù)彌補(bǔ)特定數(shù)據(jù)流的期限來(lái)確定何時(shí)每個(gè)流應(yīng)該開(kāi)始,以便調(diào)節(jié)特定的數(shù)據(jù)流來(lái)匹配其他流的長(zhǎng)度,和確定數(shù)據(jù)流的持續(xù)時(shí)間。數(shù)據(jù)加載器還創(chuàng)建數(shù)據(jù)流器(streamer)分子76a、76b、76c,它們產(chǎn)生與所提供的參數(shù)一致的數(shù)據(jù)流,并創(chuàng)建新的分子。
用戶(hù)定義的數(shù)據(jù)加載器74d創(chuàng)建壓縮用戶(hù)接口77,它允許用戶(hù)控制數(shù)據(jù)壓縮量,和數(shù)據(jù)壓縮器78,它按照所提供的參考?jí)嚎s數(shù)據(jù)。數(shù)據(jù)壓縮器78創(chuàng)建數(shù)據(jù)用戶(hù)接口75和數(shù)據(jù)流器76d。
同步分子80創(chuàng)建同步用戶(hù)接口79,它啟用脈率的調(diào)整并提供從流開(kāi)始過(guò)去多少時(shí)間的計(jì)數(shù)。用戶(hù)可以使用該時(shí)間計(jì)數(shù)來(lái)停止、再次開(kāi)始、或在數(shù)據(jù)流中向前和向后移動(dòng)。同步分子80產(chǎn)生同步脈沖、保持可得數(shù)據(jù)流器的列表來(lái)發(fā)送脈沖到,根據(jù)同步用戶(hù)接口保存的參數(shù),并創(chuàng)建新分子。
同步分子80還創(chuàng)建層分子8l,它將大量的輸入數(shù)據(jù)流組合成大量指定的輸出流,并創(chuàng)建包括顯示分子82和保存分子83的新分子。顯示分子82將數(shù)據(jù)輸出到屏幕上,而保存分子83將數(shù)據(jù)輸出到磁盤(pán)、網(wǎng)絡(luò)、磁帶或其它媒介。
現(xiàn)在將描述產(chǎn)生預(yù)定結(jié)果的部分的相互作用。用戶(hù)選擇用于開(kāi)分子70的初始文件,它要求創(chuàng)建屬性用戶(hù)接口72。開(kāi)70請(qǐng)求資源管理器7l。如果在機(jī)器或網(wǎng)絡(luò)上已存在使用中的資源管理器,則該資源管理器用來(lái)重新分配資源,否則將創(chuàng)建新的資源管理器。資源管理器7l計(jì)算可以充裕地處理多少數(shù)據(jù)流,并請(qǐng)求創(chuàng)建數(shù)據(jù)加載器74,每個(gè)數(shù)據(jù)流一個(gè)(該實(shí)例中3個(gè))。它通過(guò)觀看輸入文件類(lèi)型,隨后觀看該類(lèi)型文件的一般尺寸,隨后觀看可得的存儲(chǔ)資源來(lái)這么做,并由這些參數(shù)確定可以進(jìn)行多少加載器而不損壞存儲(chǔ)器。
用戶(hù)為屬性用戶(hù)接口72中的每個(gè)可得的數(shù)據(jù)加載器74選擇一個(gè)名字和一個(gè)文件類(lèi)型。如果用戶(hù)選擇了比可得的數(shù)據(jù)加載器74更多的文件類(lèi)型,則屬性用戶(hù)接口72從資源管理器71請(qǐng)求另外的數(shù)據(jù)加載器74。數(shù)據(jù)加載器的創(chuàng)建是可用戶(hù)化至這樣的程度,即用戶(hù)可以請(qǐng)求屬性用戶(hù)接口之外的文件類(lèi)型。在這種情況下,將給出到用戶(hù)定義的數(shù)據(jù)加載器74d的名字和路徑。這給予系統(tǒng)的適應(yīng)性來(lái)接受沒(méi)有預(yù)定的數(shù)據(jù)類(lèi)型。用戶(hù)還確定被轉(zhuǎn)移到屬性用戶(hù)接口72中執(zhí)行的屬性或參數(shù)。
執(zhí)行73要求創(chuàng)建同步80分子,它要求創(chuàng)建層81分子。層81分子順次要求創(chuàng)建顯示82和保存83分子。同步80保持將被發(fā)送同步脈沖的名字的列表,如數(shù)據(jù)流器中所通知的。
在執(zhí)行時(shí),將文件名字、類(lèi)型和屬性傳遞到數(shù)據(jù)加載器。一旦數(shù)據(jù)加載器得到文件名字、類(lèi)型和屬性,就將它們實(shí)現(xiàn)并將定位數(shù)據(jù)和開(kāi)始將數(shù)據(jù)加載入存儲(chǔ)器。如果沒(méi)有足夠的存儲(chǔ)器可用,它將部分地加載數(shù)據(jù)。隨后,數(shù)據(jù)加載器請(qǐng)求創(chuàng)建數(shù)據(jù)用戶(hù)接口75和數(shù)據(jù)流器76。對(duì)用文件名字、文件類(lèi)型和屬性實(shí)現(xiàn)的每個(gè)數(shù)據(jù)加載器和用戶(hù)定義的數(shù)據(jù)加載器進(jìn)行該過(guò)程。
在資源管理器71檢測(cè)到資源變得稀少的情況中,它將把請(qǐng)求傳遞給數(shù)據(jù)加載器來(lái)調(diào)用數(shù)據(jù)壓縮。隨后,數(shù)據(jù)加載器將請(qǐng)求數(shù)據(jù)壓縮器78進(jìn)行合適的數(shù)據(jù)壓縮。在一個(gè)屬性要求壓縮數(shù)據(jù)的情況中,數(shù)據(jù)加載器將把該數(shù)據(jù)發(fā)送到數(shù)據(jù)壓縮器78??梢栽L(fǎng)問(wèn)壓縮用戶(hù)接口77來(lái)調(diào)整壓縮參數(shù)。
隨后,用戶(hù)選擇數(shù)據(jù)用戶(hù)接口75中每個(gè)數(shù)據(jù)流的持續(xù)時(shí)間和起始點(diǎn)。用戶(hù)可以補(bǔ)償或調(diào)節(jié)特定數(shù)據(jù)流的時(shí)間范圍以匹配其它流的長(zhǎng)度。在用由數(shù)據(jù)用戶(hù)接口75發(fā)送的參數(shù)實(shí)現(xiàn)數(shù)據(jù)流器76時(shí),它將其參考名字傳遞給同步80,通知它數(shù)據(jù)已準(zhǔn)備流化。隨后,同步80將該參考名字添加到它將脈沖到的名字列表。該列表由此時(shí)系統(tǒng)中任何數(shù)據(jù)流器的參考名字組成。如果在數(shù)據(jù)流器中沒(méi)有數(shù)據(jù)準(zhǔn)備流化,則將從同步80列表中除去參考名字。名字列表中的參考數(shù)量還被傳遞到層81的部分。
同步80開(kāi)始將其脈沖傳遞到數(shù)據(jù)流器76,它將數(shù)據(jù)傳遞到層81部分。如果層81部分不接受列表上所有的數(shù)據(jù)流,則它將請(qǐng)求同步80減緩脈沖直到所有數(shù)據(jù)同時(shí)到達(dá)層81。層81部分將數(shù)據(jù)傳遞到顯示82,并請(qǐng)求保持83部分。如果在任何點(diǎn)上用戶(hù)希望干預(yù)數(shù)據(jù)流來(lái)暫停、停止或移回時(shí)間計(jì)數(shù),則用戶(hù)可以在同步用戶(hù)接口79內(nèi)進(jìn)行。
在數(shù)據(jù)同步實(shí)例中使用邏輯網(wǎng)絡(luò)程序設(shè)計(jì)方法具有幾個(gè)優(yōu)點(diǎn)。由于動(dòng)態(tài)配置性能,可以有多個(gè)用戶(hù)同時(shí)使用給定機(jī)器或網(wǎng)絡(luò)上的同步系統(tǒng),且將由資源管理器向每一個(gè)分配數(shù)據(jù)同步資源。這種能力實(shí)現(xiàn)了自動(dòng)加載平衡,這一般采用另外的加載平衡的專(zhuān)用軟件應(yīng)用程序。由于用戶(hù)可以創(chuàng)建所需的任何用戶(hù)定義的數(shù)據(jù)加載器,系統(tǒng)可以適應(yīng)任何數(shù)據(jù)格式。系統(tǒng)動(dòng)態(tài)地將數(shù)據(jù)預(yù)格式化和預(yù)處理。系統(tǒng)還將確定如果需要在沒(méi)有用戶(hù)干預(yù)的情況下何時(shí)需要壓縮。數(shù)據(jù)壓縮器將自動(dòng)地響應(yīng)所滿(mǎn)足的條件而進(jìn)行壓縮。它還將數(shù)據(jù)重新格式化成網(wǎng)絡(luò)文件類(lèi)型,如數(shù)據(jù)加載器中所列出的??紤]硬件資源,系統(tǒng)將適應(yīng)地將各種數(shù)據(jù)源遞送到交互同步的顯示器。系統(tǒng)還是分布式的且平臺(tái)獨(dú)立。任何一個(gè)部分可以駐留在LAN、WAN或因特網(wǎng)網(wǎng)絡(luò)上的任何機(jī)器上。在并行處理環(huán)境中,分配在多個(gè)CPU上的多個(gè)同步邏輯網(wǎng)絡(luò)可以被協(xié)調(diào)來(lái)將并行數(shù)據(jù)流遞送到共用層。
分子是邏輯網(wǎng)絡(luò)程序設(shè)計(jì)方法的基本元素。它承載一般與更大的應(yīng)用有關(guān)的其基本功能,其中更大的應(yīng)用包括存儲(chǔ)管理、調(diào)用功能和清除。它的軌跡(footprint)很小,很靈活且可動(dòng)態(tài)地重新配置(自適應(yīng)的)。其用作本地部分網(wǎng)絡(luò)以及不同硬件環(huán)境上的遠(yuǎn)程網(wǎng)絡(luò)的連接器。邏輯網(wǎng)絡(luò)程序設(shè)計(jì)樣式真正允許具有功能單元之間無(wú)縫兼容性的自主處理,而無(wú)需集中處理管理或高預(yù)知的調(diào)度和協(xié)調(diào)。
產(chǎn)業(yè)適應(yīng)性使用本發(fā)明的計(jì)算機(jī)處理和程序設(shè)計(jì)方法,可以通過(guò)設(shè)計(jì)由部分分子構(gòu)成的邏輯網(wǎng)絡(luò)來(lái)進(jìn)行復(fù)雜的計(jì)算和數(shù)據(jù)處理任務(wù),它利用任何類(lèi)型和任何網(wǎng)絡(luò)上的任何位置的任何可得的計(jì)算源。因此,它理想地適合于在分布計(jì)算和并行處理環(huán)境中進(jìn)行處理任務(wù)??梢杂梅肿釉O(shè)計(jì)邏輯網(wǎng)絡(luò),所述分子和任何類(lèi)型的傳統(tǒng)系統(tǒng)、以不同語(yǔ)言編程的應(yīng)用程序和以任何格式存儲(chǔ)的任何類(lèi)型的數(shù)據(jù),因此能夠啟用數(shù)據(jù)集成任務(wù)的更加有效的程序設(shè)計(jì),以及整個(gè)新型數(shù)據(jù)集成系統(tǒng)的創(chuàng)建。
通過(guò)使其部分適合于產(chǎn)業(yè)特殊接口和功能性,就可以將邏輯網(wǎng)絡(luò)程序設(shè)計(jì)方法應(yīng)用到任何領(lǐng)域。例如,它可以應(yīng)用于數(shù)據(jù)集成、建模、模擬、數(shù)據(jù)顯像、動(dòng)畫(huà)、翻譯和模塊化產(chǎn)品應(yīng)用中。對(duì)于當(dāng)前基于因特網(wǎng)的應(yīng)用,它可以適合于當(dāng)前市場(chǎng)的簡(jiǎn)單需要,其中集合了這些考慮基于服務(wù)器的計(jì)算模型;固有可量測(cè)性;基于JAVATM的核心功能和擴(kuò)展;用于傳遞的網(wǎng)絡(luò)瀏覽器技術(shù);管理兆兆位數(shù)據(jù)集的能力;具有集成功能的普遍存在的數(shù)據(jù)庫(kù)模型;客戶(hù)化的內(nèi)置功能;分布式終端用戶(hù)感覺(jué)和設(shè)計(jì)前提;模塊化序列數(shù)據(jù)流;和分階段的執(zhí)行方法。
邏輯網(wǎng)絡(luò)程序設(shè)計(jì)方法特別適于數(shù)據(jù)顯像應(yīng)用,諸如數(shù)據(jù)中心和系統(tǒng)監(jiān)控,視覺(jué)共同指揮(visual corporate helm),決策支持系統(tǒng),復(fù)雜關(guān)系的顯示和科學(xué)建模顯像。邏輯網(wǎng)絡(luò)軟件可以用作具有并行、分散、同步和跟蹤面向?qū)ο蟮男蛄械姆蔷€(xiàn)性現(xiàn)場(chǎng)座標(biāo)圖。當(dāng)結(jié)合視覺(jué)接口時(shí),邏輯網(wǎng)絡(luò)的模塊化方法的優(yōu)點(diǎn)是特別明顯的。分子是單個(gè)方法,從而方法命名它們。由于方法的連接或聯(lián)編對(duì)于分子是固有的,所以通過(guò)面向人的功能名字或視覺(jué)提示可以快速地組合邏輯網(wǎng)絡(luò),而不用考慮內(nèi)部操作。在任何故障點(diǎn)簡(jiǎn)單地運(yùn)行邏輯網(wǎng)絡(luò)將調(diào)用自診斷。最優(yōu)支持環(huán)境中被可視地監(jiān)控,該程序設(shè)計(jì)方法將把“編程”計(jì)算機(jī)的能力擴(kuò)展到計(jì)算機(jī)識(shí)字外行。合適的分析將把復(fù)雜數(shù)據(jù)處理任務(wù)的程序設(shè)計(jì)簡(jiǎn)化到通過(guò)識(shí)別所需的部件和將片段鉤在一起裝配管道并裝置的水平。
可以理解,在給出以上的本發(fā)明原理的描述時(shí),可以設(shè)計(jì)許多修改和變化。這種修改和變化旨在被認(rèn)為是在本發(fā)明的精神和范圍之內(nèi),如所附權(quán)利要求書(shū)所定義的。
附錄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 &amp; MixedArray,Sting equation)produce(Elm &amp; 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.一種計(jì)算機(jī)處理方法,其特征在于,包括以下步驟創(chuàng)建多個(gè)分別由軟件微組分配置的軟件實(shí)體(“分子10”),所述軟件微組分包括信號(hào)處理機(jī)(40)、至少一個(gè)輸入處理機(jī)(42)、至少一個(gè)輸出處理機(jī)(48)、接口處理機(jī)(44)和用于相關(guān)聯(lián)方法的至少一個(gè)方法處理機(jī)(46),所述輸入處理機(jī)、輸出處理機(jī)和所述信號(hào)處理機(jī)用于將通信信號(hào)發(fā)送到另一分子或各分子之外的邏輯網(wǎng)絡(luò)或從其接收通信信號(hào)并用于連接到其它微組分,所述至少一個(gè)輸入處理機(jī)用于將輸入數(shù)據(jù)排隊(duì),所述接口處理機(jī)用于確定何時(shí)滿(mǎn)足由所述輸入處理機(jī)接收所需的輸入數(shù)據(jù)的預(yù)定輸入條件,并隨后調(diào)用所述方法處理機(jī),所述方法處理機(jī)用于調(diào)用所述相關(guān)聯(lián)的方法來(lái)處理所述輸入數(shù)據(jù),而所述至少一個(gè)輸出處理機(jī)用于將通過(guò)所述方法處理輸入數(shù)據(jù)的結(jié)果輸出;將所創(chuàng)建的分子存儲(chǔ)于庫(kù)中以便在其后的運(yùn)行時(shí)間中使用;在給定的計(jì)算資源上部署包括多個(gè)分子的邏輯網(wǎng)絡(luò),所述多個(gè)分子被選擇來(lái)通過(guò)調(diào)用從庫(kù)中檢索到并在給定的計(jì)算資源上執(zhí)行的第一分子執(zhí)行給定的處理任務(wù);以及通過(guò)所述第一分子的所述信號(hào)處理機(jī)發(fā)送通信信號(hào)來(lái)調(diào)用所述其他分子,所述第一分子調(diào)用一個(gè)或多個(gè)其他的分子來(lái)“連動(dòng)地”逐步地?cái)U(kuò)展所述邏輯網(wǎng)絡(luò)。
2.如權(quán)利要求1所述的計(jì)算機(jī)處理方法,其特征在于,所述創(chuàng)建步驟包括創(chuàng)建多個(gè)邏輯網(wǎng)絡(luò),其各自使其軟件實(shí)體的網(wǎng)絡(luò)被配置成自主地使用計(jì)算資源進(jìn)行數(shù)據(jù)處理任務(wù),而所述部署步驟包括分別用多個(gè)計(jì)算資源中的一個(gè)部署多個(gè)邏輯網(wǎng)絡(luò)。
3,如權(quán)利要求2所述的計(jì)算機(jī)處理方法,其特征在于,在分布式計(jì)算環(huán)境中的網(wǎng)絡(luò)上分配所述多個(gè)計(jì)算資源。
4.如權(quán)利要求2所述的計(jì)算機(jī)處理方法,其特征在于,所述多個(gè)計(jì)算資源包括在并行處理環(huán)境中并行的一組中央處理單元(CPU)。
5.如權(quán)利要求1所述的計(jì)算機(jī)處理方法,其特征在于,所述至少一個(gè)邏輯網(wǎng)絡(luò)包括多個(gè)分子,且所述邏輯網(wǎng)絡(luò)作為初始化文件存在,用于產(chǎn)生分子的初始主機(jī),它在增量處理步驟的連續(xù)層中調(diào)用和產(chǎn)生其他分子。
6.如權(quán)利要求1所述的計(jì)算機(jī)處理方法,其特征在于,所述創(chuàng)建步驟包括創(chuàng)建具有處理機(jī)功能的分子,用于在增量處理步驟的連續(xù)層中創(chuàng)建下一個(gè)分子。
7.如權(quán)利要求1所述的計(jì)算機(jī)處理方法,其特征在于,所述創(chuàng)建步驟包括創(chuàng)建具有內(nèi)置處理機(jī)功能的分子,用于當(dāng)分子即將終止時(shí)進(jìn)行其功能的清理。
8.如權(quán)利要求1所述的計(jì)算機(jī)處理方法,其特征在于,所述創(chuàng)建步驟包括創(chuàng)建具有處理機(jī)類(lèi)型的分子,用于記錄有關(guān)其微組分處理機(jī)的狀態(tài)的信息并通過(guò)所述信號(hào)處理機(jī)將這種狀態(tài)信息發(fā)送到外部。
9.如權(quán)利要求1所述的計(jì)算機(jī)處理方法,其特征在于,當(dāng)存在著執(zhí)行處理任務(wù)的分子時(shí),所述信號(hào)處理機(jī)可以接收用于動(dòng)態(tài)地重新配置分子的微組分處理機(jī)的信號(hào)并且具有用于該目的的處理機(jī)類(lèi)型。
10.如權(quán)利要求1所述的計(jì)算機(jī)處理方法,其特征在于,所述接口處理機(jī)包括處理機(jī)類(lèi)型,用于向分子提供自主等待、觀看和進(jìn)行所述相關(guān)的方法的特性以通過(guò)等待到所述輸入處理機(jī)指示在調(diào)用用于相關(guān)方法的所述方法處理機(jī)之前出現(xiàn)預(yù)定的輸入條件來(lái)處理輸入數(shù)據(jù)。
11.如權(quán)利要求1所述的計(jì)算機(jī)處理方法,其特征在于,所述接口處理機(jī)包括多個(gè)處理機(jī)類(lèi)型,用于確定何時(shí)滿(mǎn)足出現(xiàn)各自所需要的數(shù)據(jù)的各預(yù)定輸入條件并用于分別調(diào)用多個(gè)方法處理機(jī)和相關(guān)方法中的每一個(gè)。
12.如權(quán)利要求1所述的計(jì)算機(jī)處理方法,其特征在于,所述輸入處理機(jī)選自分別對(duì)應(yīng)于多個(gè)不同數(shù)據(jù)源類(lèi)型的多個(gè)輸入處理機(jī)類(lèi)型中的一個(gè)。
13.一種分布式計(jì)算方法,其特征在于,包括以下步驟創(chuàng)建多個(gè)軟件實(shí)體(“分子10”),用用于發(fā)送通信信號(hào)到另一個(gè)分子或各分子之外的邏輯網(wǎng)絡(luò)和從其接受通信信號(hào)的軟件微組分配置所述每個(gè)軟件實(shí)體,每個(gè)分子的所述微組分彼此連接以便在給定的計(jì)算環(huán)境中處理輸入數(shù)據(jù),在所述計(jì)算環(huán)境中所述分子被部署并提供處理輸入數(shù)據(jù)的結(jié)果輸出;將多個(gè)分子各自部署于多個(gè)計(jì)算環(huán)境的每一個(gè)上;以及將部署于其各自的計(jì)算環(huán)境中的每個(gè)分子初始化以便初始化增量處理步驟的連續(xù)層中數(shù)據(jù)處理功能的分子的“邏輯網(wǎng)絡(luò)”,其中第一分子調(diào)用一個(gè)或多個(gè)其它分子來(lái)“連動(dòng)地”增量擴(kuò)展所述邏輯網(wǎng)絡(luò)。
14.如權(quán)利要求13所述的分布計(jì)算方法,其特征在于,每個(gè)計(jì)算環(huán)境中的每個(gè)邏輯網(wǎng)絡(luò)在其各自的計(jì)算環(huán)境中自主地執(zhí)行其數(shù)據(jù)處理功能,并返回一希望從該計(jì)算環(huán)境中獲得的輸出。
15.如權(quán)利要求14所述的分布計(jì)算方法,其特征在于,每個(gè)邏輯網(wǎng)絡(luò)將用于其各自計(jì)算環(huán)境的輸出返回到一外部監(jiān)控實(shí)體,且所述外部監(jiān)控實(shí)體組合來(lái)自另外的計(jì)算環(huán)境的輸出以獲得分布計(jì)算的組合輸出。
16.如權(quán)利要求15所述的分布計(jì)算方法,其特征在于,所述計(jì)算環(huán)境是分布于網(wǎng)絡(luò)上的多個(gè)計(jì)算站點(diǎn),而邏輯網(wǎng)絡(luò)通過(guò)在網(wǎng)絡(luò)上發(fā)送信號(hào)來(lái)返回它們的輸出。
17.如權(quán)利要求15所述的分布計(jì)算方法,其特征在于,所述計(jì)算環(huán)境是并行處理環(huán)境中并行操作的一組處理單元(CPU)形式的多個(gè)計(jì)算資源。
18.一種網(wǎng)絡(luò)計(jì)算方法,其特征在于,包括以下步驟創(chuàng)建多個(gè)軟件實(shí)體(“分子10”),用用于發(fā)送通信信號(hào)到另一個(gè)分子或各分子之外的邏輯網(wǎng)絡(luò)和從其接受通信信號(hào)的軟件微組分配置所述每個(gè)軟件實(shí)體,每個(gè)分子的所述微組分彼此連接以便在給定的計(jì)算環(huán)境中處理輸入數(shù)據(jù),在所述計(jì)算環(huán)境中所述分子被部署并提供處理輸入數(shù)據(jù)的結(jié)果輸出;將所述多個(gè)分子各自部署于多個(gè)計(jì)算環(huán)境的每一個(gè)上,其中所述多個(gè)計(jì)算環(huán)境是分布在網(wǎng)絡(luò)上的計(jì)算站點(diǎn);將部署于其各自計(jì)算環(huán)境中的每個(gè)分子初始化以便初始化增量處理步驟的連續(xù)層中數(shù)據(jù)處理功能的分子的“邏輯網(wǎng)絡(luò)”,其中第一分子調(diào)用一個(gè)或多個(gè)其它分子來(lái)“連動(dòng)地”增量擴(kuò)展所述邏輯網(wǎng)絡(luò);以及使每個(gè)網(wǎng)絡(luò)計(jì)算站點(diǎn)處的每個(gè)邏輯網(wǎng)絡(luò)在其各自的計(jì)算環(huán)境中自主進(jìn)行其數(shù)據(jù)處理功能,并返回一希望從該網(wǎng)絡(luò)計(jì)算站點(diǎn)獲得的輸出。
19.如權(quán)利要求18所述的網(wǎng)絡(luò)計(jì)算方法,其特征在于,每個(gè)邏輯網(wǎng)絡(luò)將用于其各自網(wǎng)絡(luò)計(jì)算站點(diǎn)的輸出返回到一網(wǎng)絡(luò)監(jiān)控實(shí)體,且所述網(wǎng)絡(luò)監(jiān)控實(shí)體組合來(lái)自網(wǎng)絡(luò)計(jì)算站點(diǎn)的輸出以便獲得用于網(wǎng)絡(luò)的組合輸出。
20.如權(quán)利要求19所述的網(wǎng)絡(luò)計(jì)算方法,其特征在于,網(wǎng)絡(luò)是網(wǎng)絡(luò)的網(wǎng)絡(luò)(“因特網(wǎng)”),且邏輯網(wǎng)絡(luò)被部署在因特網(wǎng)上的網(wǎng)站處以便自主地計(jì)算來(lái)自網(wǎng)站的數(shù)據(jù)并將它們的輸出返回到網(wǎng)絡(luò)監(jiān)控實(shí)體。
全文摘要
一種計(jì)算處理和程序設(shè)計(jì)方法要求創(chuàng)建多個(gè)軟件實(shí)體(“分子10”),它可以被動(dòng)態(tài)配置來(lái)自主處理數(shù)據(jù)。分子可以發(fā)送和接收信號(hào),所述信號(hào)表示分子的狀態(tài),是否完成了處理任務(wù),處理任務(wù)的結(jié)果和是否通過(guò)一個(gè)或多個(gè)“下一個(gè)”分子的創(chuàng)建而終止、中斷、重新配置或繼續(xù)分子的操作??梢詮墓灿玫囊唤M軟件微組分(40、42、44、46、48)創(chuàng)建分子,它可以在任何程序設(shè)計(jì)語(yǔ)言編寫(xiě)以便在任何操作系統(tǒng)環(huán)境中運(yùn)行。分子可以和單個(gè)計(jì)算資源駐留在一起,但是,它們理想地適于隨網(wǎng)絡(luò)上或并行處理環(huán)境中不同類(lèi)型的分布計(jì)算資源部署。通過(guò)創(chuàng)建“邏輯網(wǎng)絡(luò)”中的分子來(lái)進(jìn)行全部數(shù)據(jù)處理任務(wù),所述邏輯網(wǎng)絡(luò)動(dòng)態(tài)地適于完成其任務(wù)。可以分配邏輯網(wǎng)絡(luò)來(lái)和不同傳統(tǒng)系統(tǒng)、和以不同語(yǔ)言編程的應(yīng)用程序以及和以任何格式存儲(chǔ)的任何類(lèi)型的數(shù)據(jù)一起工作。結(jié)果,分布或并行處理環(huán)境中的數(shù)據(jù)處理任務(wù)可以更加有效地進(jìn)行,并可以采取全新類(lèi)型的網(wǎng)絡(luò)計(jì)算或并行處理任務(wù)。
文檔編號(hào)G06F9/45GK1537271SQ01823503
公開(kāi)日2004年10月13日 申請(qǐng)日期2001年7月23日 優(yōu)先權(quán)日1998年9月18日
發(fā)明者韋爾西·法伯爾斯, 焦?fàn)枴づ量? 帕克, 韋爾西 法伯爾斯 申請(qǐng)人:韋爾西·法伯爾斯, 焦?fàn)枴づ量? 韋爾西 法伯爾斯
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1