專利名稱:用于自主計算的合成服務(wù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及改進的數(shù)據(jù)處理系統(tǒng),具體地說,涉及管理硬件和軟件組件的方法和設(shè)備。更具體地說,本發(fā)明提供自動識別和組合組件,以便達到功能性要求的方法和設(shè)備。
背景技術(shù):
現(xiàn)代計算技術(shù)已導致極其復雜并且不斷變化的環(huán)境。一種這樣的環(huán)境是因特網(wǎng)(也稱為互聯(lián)網(wǎng)絡(luò))。因特網(wǎng)是借助網(wǎng)關(guān)連接在一起的可能相異的一組計算機網(wǎng)絡(luò),所述網(wǎng)關(guān)處理數(shù)據(jù)傳送和把消息從發(fā)送網(wǎng)絡(luò)的協(xié)議轉(zhuǎn)換成接收網(wǎng)絡(luò)使用的協(xié)議。當用大寫字母開頭時,術(shù)語“因特網(wǎng)”指的是使用TCP/IP協(xié)議組的網(wǎng)絡(luò)和網(wǎng)關(guān)的集合。目前,最常用的通過因特網(wǎng)傳送數(shù)據(jù)的方法是采用萬維網(wǎng)環(huán)境(也簡稱為Web)。也存在用于傳送信息的其它因特網(wǎng)資源,例如文件傳送協(xié)議(FTP)和Gopher,但是不如Web普及。在Web環(huán)境中,服務(wù)器和客戶機利用超文本傳送協(xié)議(HTTP)實現(xiàn)數(shù)據(jù)事務(wù),超文本傳送協(xié)議(HTTP)是一種用于傳送各種數(shù)據(jù)文件(例如文本、靜止圖像、音頻、運動視頻等)的已知協(xié)議。用標準頁面描述語言,超文本置標語言(HTML)格式化各種數(shù)據(jù)文件中的信息,以便向用戶呈現(xiàn)。因特網(wǎng)還廣泛用于把應用程序傳送給使用瀏覽器的用戶。用戶時??赏ㄟ^因特網(wǎng)搜索并獲得軟件包。
其它類型的復雜網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)包括為簡化大公司中的工作而創(chuàng)建的那些網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)。許多情況下,這些網(wǎng)絡(luò)可在世界范圍內(nèi)跨越多個地區(qū)。這些復雜網(wǎng)絡(luò)還可把因特網(wǎng)用作進行業(yè)務(wù)的虛擬產(chǎn)品網(wǎng)絡(luò)的一部分。由于需要管理和更新在網(wǎng)絡(luò)內(nèi)使用的軟件,從而使這些網(wǎng)絡(luò)更復雜。
隨著軟件逐漸變得日益“自主”(autonomic),安裝和配置軟件的任務(wù)將越來越多地由計算機本身進行,與由管理員進行所述安裝和配置相反。目前的安裝和配置機制正在朝著“自主”進程發(fā)展。例如,許多操作系統(tǒng)和軟件包將根據(jù)用戶指定的要求,自動尋找特定的軟件組件。這些安裝和更新機制通常在預先選擇的位置與因特網(wǎng)連接,以查看更新組件或所需組件是否存在。如果更新組件或其它組件存在,那么向用戶呈現(xiàn)消息,其中所述消息詢問用戶是否下載和安裝該組件。這種系統(tǒng)的一個例子是作為開放式源碼Debian GNU/Linux操作系統(tǒng)一部分的程序包管理程序“dselect”。
朝著“自主”計算的下一障礙涉及在不需要用戶干預的情況下,識別并安裝/下載必需的硬件和軟件組件。在這種下一代系統(tǒng)中,自主配置實用程序會響應對特定功能性的需要的檢測,安裝組件。在這種情況下,可能不存在提供所需功能性的單一硬件或軟件組件。從而,最好存在這樣一種方案,借助該方案,能夠在缺少提供必需功能性的單一組件的情況下,獲得所需的功能性。
發(fā)明內(nèi)容
因此,本發(fā)明提供一種計算機實現(xiàn)的保存關(guān)于硬件和軟件組件的信息的進程,包括接收包含功能要求的請求;咨詢目錄以確定是否存在滿足功能要求的單一組件;響應不存在滿足功能要求的單一組件的確定,識別當按照組合方法組合時,會滿足所述功能要求的多個功能性;和識別滿足多個功能性的多個組件。
還提供一種包含實現(xiàn)本發(fā)明的進程的指令的計算機程序產(chǎn)品。還提供一種實現(xiàn)所述進程的數(shù)據(jù)處理系統(tǒng)。
從而本發(fā)明提供一種改進的目錄服務(wù),所述目錄服務(wù)不僅保存其它組件為定位并利用目錄中列舉的組件而需要的信息,而且還能夠動態(tài)地構(gòu)成滿足客戶機的功能要求的“元服務(wù)”(meta service)。
響應來自客戶機的對特定功能要求的請求,目錄服務(wù)確定提供所需功能性的一組硬件和/或軟件組件。隨后借助根據(jù)域知識的邏輯推斷,組合和配置該組中的組件,以獲得所需的功能。歷史機制便于立即再調(diào)用(recall)已經(jīng)導出的硬件或軟件組件的配置。
在附加的權(quán)利要求中陳述了本發(fā)明特有的新特征。但是,結(jié)合附圖,參考例證實施例的下述詳細說明,將更好地理解發(fā)明本身,以及發(fā)明的優(yōu)選使用模式,其它目的和優(yōu)點,其中圖1表示其中可實現(xiàn)本發(fā)明的聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng);圖2是圖1的聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng)內(nèi)的服務(wù)器系統(tǒng)的方框圖;圖3是圖1的聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng)內(nèi)的客戶機系統(tǒng)的方框圖;圖4表示根據(jù)本發(fā)明的優(yōu)選實施例的自主合成中介系統(tǒng)的整體視圖;圖5是在本發(fā)明的優(yōu)選實施例中,滿足對硬件或軟件組件的請求的進程的流程圖;圖6是向本文檔中使用的E-R(實體-關(guān)系圖)中的符號提供圖例的圖;圖7是表示供本發(fā)明的優(yōu)選實施例使用的數(shù)據(jù)庫系統(tǒng)的例證E-R圖;圖8是根據(jù)本發(fā)明的優(yōu)選實施例的接下來是控制邏輯的進程的流程圖;圖9描述了本發(fā)明的結(jié)構(gòu)變化,其中遠程元服務(wù)提供者被用于提供導出的元服務(wù);圖10描述了本發(fā)明的結(jié)構(gòu)變化,其中遠程元服務(wù)能力被合并到合成服務(wù)中。
具體實施例方式
現(xiàn)在參見附圖,圖1描述了其中可實現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是其中可實現(xiàn)本發(fā)明的計算機網(wǎng)絡(luò)。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100包含網(wǎng)絡(luò)102,網(wǎng)絡(luò)102是用于提供在網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100內(nèi)連接在一起的各種設(shè)備和計算機之間的通信鏈路的媒介。網(wǎng)絡(luò)102可包括連接,例如有線、無線通信鏈路,或者光纜。
在所示例子中,服務(wù)器104連同存儲單元106一起與網(wǎng)絡(luò)102連接。另外,客戶機108、110和112與網(wǎng)絡(luò)102連接。這些客戶機108、110和112可以是例如個人計算機或網(wǎng)絡(luò)計算機。在所示例子中,服務(wù)器104向客戶機108-112提供數(shù)據(jù),例如引導文件,操作系統(tǒng)映像和應用程序??蛻魴C108、110和112是服務(wù)器104的客戶機。網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100可包括未示出的另外的服務(wù)器、客戶機和其它設(shè)備。在所示例子中,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100是因特網(wǎng),網(wǎng)絡(luò)102代表使用傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)協(xié)議組相互通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的全球集合。因特網(wǎng)的核心是由成千上萬的路由數(shù)據(jù)和消息的商業(yè)、政府、教育和其它計算機系統(tǒng)組成的主節(jié)點或主計算機之間的高速數(shù)據(jù)通信線路的主干網(wǎng)。當然,網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)100也可被實現(xiàn)成許多不同類型的網(wǎng)絡(luò),例如企業(yè)內(nèi)部網(wǎng),局域網(wǎng)(LAN)或者廣域網(wǎng)(WAN)。
圖1只是一個例子,并不是對本發(fā)明的結(jié)構(gòu)限制。
參見圖2,根據(jù)本發(fā)明的一個優(yōu)選實施例,描述了可被實現(xiàn)成服務(wù)器,例如圖1中的服務(wù)器104的數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)200可以是對稱的多處理器(SMP)系統(tǒng),包括與系統(tǒng)總線206連接的多個處理器202和204。另一方面,可以采用單處理器系統(tǒng)。存儲器控制器/高速緩存208也與系統(tǒng)總線206連接,存儲器控制器/高速緩存208提供到本地存儲器209的接口。I/O總線橋210與系統(tǒng)總線206連接,提供到I/O總線212的接口。存儲器控制器/高速緩存208和I/O總線橋210可如圖所示被集成。
與I/O總線212連接的外設(shè)部件互連(PCI)總線橋214提供到PCI局部總線216的接口。許多調(diào)制解調(diào)器可與PCI局部總線216連接。典型的PCI總線實現(xiàn)將支持四個PCI擴展插槽或者內(nèi)插連接器。通過經(jīng)內(nèi)插板與PCI局部總線216連接的調(diào)制解調(diào)器218和網(wǎng)絡(luò)適配器220,可提供到圖1中的客戶機108-112的通信鏈路。
附加的PCI總線橋222和224向附加的PCI局部總線226和228提供接口,從所述附加的PCI局部總線226和228可支持附加的調(diào)制解調(diào)器或網(wǎng)絡(luò)適配器。按照這種方式,數(shù)據(jù)處理系統(tǒng)200允許連接到多個網(wǎng)絡(luò)計算機。存儲變換圖形適配器230和硬盤232也如圖所示,直接地或者間接地與I/O總線212連接。
本領(lǐng)域的普通技術(shù)人員會認識到圖2中描述的硬件可發(fā)生變化。例如,除了所示硬件之外或者代替所示硬件,也可使用其它外設(shè)部件,例如光盤驅(qū)動器等。所描述的例子并不意味著對本發(fā)明的結(jié)構(gòu)限制。
圖2中所示的數(shù)據(jù)處理系統(tǒng)可以是,例如運行AdvancedInteractive Executive(AIX)操作系統(tǒng)或LINUX操作系統(tǒng)的IBMeServer pSeries系統(tǒng)(Armonk,New York的國際商用機器公司的產(chǎn)品)。
現(xiàn)在參見圖3,描述了其中可實現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)300是客戶機計算機的一個例子。數(shù)據(jù)處理系統(tǒng)300采用外設(shè)部件互連(PCI)局部總線體系結(jié)構(gòu)。雖然描述的例子采用PCI總線,不過也可使用其它總線體系結(jié)構(gòu),例如加速圖形端口(AGP)和工業(yè)標準結(jié)構(gòu)(ISA)。處理器302和主存儲器304通過PCI橋308與PCI局部總線306連接。PCI橋308還可包括用于處理器302的集成存儲器控制器和高速緩沖存儲器。通過直接組件互連或者通過內(nèi)插板,能夠?qū)崿F(xiàn)到PCI局部總線306的附加連接。在所示例子中,局域網(wǎng)(LAN)適配器310,SCSI主總線適配器312和擴展總線接口314通過直接組件連接與PCI局部總線306連接。相反,音頻適配器316,圖形適配器318和音頻/視頻適配器319通過插入擴展插槽中的內(nèi)插板與PCI局部總線306連接。擴展總線接口314為鍵盤和鼠標適配器320,調(diào)制解調(diào)器322和附加存儲器324提供連接。小型計算機系統(tǒng)接口(SCSI)主總線適配器312為硬盤驅(qū)動器326,磁帶驅(qū)動器328和CD-ROM驅(qū)動器330提供連接。典型的PCI局部總線實現(xiàn)將支持三個或四個PCI擴展插槽或內(nèi)插連接器。
操作系統(tǒng)在處理器302上運行,用于協(xié)調(diào)并提供圖3中的數(shù)據(jù)處理系統(tǒng)300內(nèi)的各種組件的控制。操作系統(tǒng)可以是可從市場上獲得的操作系統(tǒng),例如Windows XP(它可從Microsoft公司獲得)。面向?qū)ο蟮木幊滔到y(tǒng),例如Java可以和操作系統(tǒng)一起運行,并提供從在數(shù)據(jù)處理系統(tǒng)300上執(zhí)行的Java程序或應用程序?qū)Σ僮飨到y(tǒng)的調(diào)用?!癑ava”是太陽微系統(tǒng)的商標。操作系統(tǒng)、面向?qū)ο蟮牟僮飨到y(tǒng)和應用程序或程序用指令存在于存儲裝置,例如硬盤驅(qū)動器326上,并且可被裝入主存儲器304,以便由處理器302執(zhí)行。
本領(lǐng)域的普通技術(shù)人員會認識到圖3中的硬件可隨著實現(xiàn)而變化。除了圖3中所示的硬件之外或者代替圖3中所示的例子,可以使用其它內(nèi)部硬件或外圍裝置,例如快速只讀存儲器(ROM),等同的非易失性存儲器或者光盤驅(qū)動器等。另外,本發(fā)明的進程可被應用于多處理器數(shù)據(jù)處理系統(tǒng)。
作為另一例子,數(shù)據(jù)處理系統(tǒng)300可以是配置成能夠不依賴于某一類型的網(wǎng)絡(luò)通信接口而引導的獨立系統(tǒng)。作為另一例子,數(shù)據(jù)處理系統(tǒng)300可以是個人數(shù)字助理(PDA)設(shè)備,該個人數(shù)字助理(PDA)設(shè)備配有ROM和/或快速ROM,以便提供用于保存操作系統(tǒng)文件和/或用戶生成的數(shù)據(jù)的非易失性存儲器。
圖3中描述的例子和上述例子并不意味著對結(jié)構(gòu)的限制。例如,除了采取PDA的形式之外,數(shù)據(jù)處理系統(tǒng)300也可以是筆記本計算機或手持式計算機。數(shù)據(jù)處理系統(tǒng)300也可以是信息站或Web設(shè)備。
本發(fā)明的目的在于一種保存關(guān)于硬件和軟件組件的信息的改進目錄服務(wù)。在本文檔中,術(shù)語“服務(wù)”用于描述硬件和軟件組件。在自主計算范例中,可根據(jù)功能要求動態(tài)取得和組合(綁定)服務(wù)。從而,自主計算環(huán)境中的硬件和軟件組合被稱為“服務(wù)”,以強調(diào)在自主計算中,只是關(guān)于當前功能要求部署系統(tǒng)組件的事實。從而在構(gòu)建(build)時,自主計算系統(tǒng)不是由固定不變的一組組件靜態(tài)構(gòu)成,而是根據(jù)需要動態(tài)地利用可用“服務(wù)”。
有時單一服務(wù)不能提供自主計算系統(tǒng)所需的功能性。在這種情況下,通過把許多服務(wù)組合在一起,能夠?qū)崿F(xiàn)所需的功能性。從而,本發(fā)明提供的目錄服務(wù)不僅保存其它組件為定位和利用在目錄中列舉的服務(wù)所需的信息,而且還能夠動態(tài)地構(gòu)成滿足客戶機的請求的“元服務(wù)”。
例如,如果客戶機請求目錄提供目錄中不存在的關(guān)于某一類型服務(wù)的細節(jié)(包括(但不限于)該服務(wù)的位置或身份),那么簡單的目錄服務(wù)會簡單地答復不存在這樣的服務(wù)。但是,改進的目錄服務(wù)具有根據(jù)預編程的知識或者飛擊式(on-the-fly)推論,導出(或者使另一軟件實體導出)某一機制,借助所述機制,存在于該目錄中的組件可被組合,以便獲得與發(fā)出請求的客戶機最初尋求的服務(wù)的功能性等效的功能性。
例如,考慮發(fā)出請求的服務(wù)(例如軟件組件)向目錄要求和能夠提供1PB(帕字節(jié))的直接存取存儲空間的可用服務(wù)有關(guān)的信息的情形。在目錄不包含關(guān)于任意這種服務(wù)的信息,但是包含和均能夠提供100TB(太字節(jié))的直接存取存儲空間的10個服務(wù)相關(guān)的信息的情況下,目錄服務(wù)能夠向發(fā)出請求的服務(wù)返回一個響應,指示如果發(fā)出請求的服務(wù)組合所述10個服務(wù),那么它能夠獲得最初請求的服務(wù)的等同物。
圖4描述了根據(jù)本發(fā)明的一個優(yōu)選實施例的目錄和合成服務(wù)(composition service)的整體視圖。請求服務(wù)400向目錄服務(wù)401請求滿足特定功能性要求的服務(wù),目錄服務(wù)401本身是一個服務(wù)(硬件或軟件組件)。目錄服務(wù)401咨詢可用服務(wù)數(shù)據(jù)庫406,查找提供必需功能性的服務(wù)(硬件或軟件組件)的位置。如果不存在這樣的單一服務(wù),那么目錄服務(wù)401可利用合成服務(wù)402(它也是一個硬件或軟件組件)把單個的服務(wù)組合成“元服務(wù)”來提供所需的功能。
在優(yōu)選實施例中,通過利用標準化目錄服務(wù)方案,例如Web服務(wù)描述語言(WSDL)和系統(tǒng),例如統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議(UDDI),目錄服務(wù)401可提供目錄服務(wù),諸如統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議(UDDI)之類的系統(tǒng)允許程序查找提供特定服務(wù)的實體的位置,并且自動確定如何與這些服務(wù)通信以及如何與這些服務(wù)實施事務(wù)。WSDL是由代表性公司,例如國際商用機器公司,Ariba公司和Microsoft公司創(chuàng)建的萬維網(wǎng)聯(lián)盟正在討論的建議標準。UDDI版本3是用于Web服務(wù)應用和服務(wù)的當前規(guī)范。UDDI的其它發(fā)展和變化將由結(jié)構(gòu)化信息標準推動組織(OASIS)處理。
合成服務(wù)402將首先試圖借助保存先前導出的服務(wù)組合的結(jié)果的歷史數(shù)據(jù)庫405來滿足請求。如果不存在適用的先前導出的組合,那么合成邏輯403將被用于導出可用服務(wù)的新組合,所述新組合滿足請求的功能要求。在一個優(yōu)選實施例中,合成邏輯403是利用來自組合提示404的關(guān)于組件可組合性的可用服務(wù)數(shù)據(jù)庫406信息中的組件信息,導出滿足請求服務(wù)400的初始請求的功能要求的組件組合的軟件。
圖5是根據(jù)本發(fā)明的一個優(yōu)選實施例,滿足服務(wù)請求的進程的流程圖。圖5被分成兩個部分。目錄服務(wù)部分500包括涉及(例如由圖4中的目錄服務(wù)401)識別和定位單個服務(wù)的塊,合成服務(wù)部分512包括涉及組合單個服務(wù)以形成元服務(wù)的塊。本領(lǐng)域的普通技術(shù)人員會認識到這種塊的劃分可與不同的軟件進程相符(例如,目錄服務(wù)部分500中的塊由一個軟件進程執(zhí)行,而合成服務(wù)512中的塊由一個不同的軟件進程執(zhí)行),或者可不與不同的軟件進程相符(例如,一個進程執(zhí)行所有塊,或者多個進程執(zhí)行不同分組的塊)。圖5假定使用軟件的兩個獨立組織單元(例如進程、線程、函數(shù)、子例程等)(即目錄服務(wù)401和合成服務(wù)402),不過如上所述,在實踐中,這樣的劃分不是必需的。
現(xiàn)在參見圖5表示的進程流,該進程始于從客戶機收到請求(即,服務(wù)或組件請求另外的功能)(方框501)。隨后,確定可用服務(wù)(即可用服務(wù)數(shù)據(jù)庫406)是否能夠滿足所述請求(方框502)。如果是(方框502是),那么從可用服務(wù)數(shù)據(jù)庫406取回恰當?shù)捻憫?方框503),所述響應提供與恰當服務(wù)的使用相關(guān)的指令。該響應隨后被返回給客戶機,以允許客戶機利用選擇的服務(wù)(方框504)。
如果可用服務(wù)不能滿足所述請求(方框502否),那么所述請求被轉(zhuǎn)發(fā)給合成服務(wù)402(方框505)。合成服務(wù)402接收該請求(方框506),并確定歷史數(shù)據(jù)庫405是否能夠滿足所述請求(方框507)。如果是(方框507是),那么從歷史數(shù)據(jù)庫405返回一個響應(方框509)。如果否(方框507否),那么使用合成邏輯403導出提供必需功能性的組合(方框510)。該新組合被輸入歷史數(shù)據(jù)庫405(方框508),并返回一個響應(方框509)。目錄服務(wù)401隨后接收合成服務(wù)402的響應(方框511),并把該響應返回給客戶機(方框504)。
如圖4和5可看出,響應請求識別和/或組合服務(wù)的任務(wù)涉及從一個或多個數(shù)據(jù)庫取回數(shù)據(jù),并對數(shù)據(jù)應用邏輯(例如合成邏輯403)來導出恰當?shù)捻憫?。圖6和7描述在本發(fā)明的一個優(yōu)選實施例中,可用于保存目錄、組合和歷史信息的一種可能數(shù)據(jù)庫方案。本領(lǐng)域的普通技術(shù)人員會認識到這里描述的方案的許多變化和替代也是適用的,而不會脫離本發(fā)明的范圍和精神。下面的圖中描述的數(shù)據(jù)庫方案只是用于舉例說明的目的。
數(shù)據(jù)庫建模的E-R(實體-關(guān)系)方法提供數(shù)據(jù)庫的概念設(shè)計的語義學(semantics)。就E-R方法來說,用實體、實體的屬性和實體之間的關(guān)系來表示數(shù)據(jù)庫信息,其中應用了下述定義。圖6中圖解說明了與每種定義對應的建模語義學。圖6改編自Elmasri和Navathe,F(xiàn)undamental of Database Systems,第3版,Addision Wesley(2000)第41-66頁,該文獻包含關(guān)于E-R圖的另外材料,在此引為參考。
實體實體是與之相關(guān)的信息被收集的主要對象。例如,在包含關(guān)于公司職員的信息的數(shù)據(jù)庫中,實體可能是“雇員”。在E-R建模中,用方框表示實體。根據(jù)其與另一實體的依賴性,實體可被稱為弱實體或強實體。強實體不依賴于另一實體,即,強實體的存在不要求另一實體的存在。如圖6中所示,用單一的無陰影的方框表示。弱實體從另一實體得到其存在。例如,如果只有當其與某一雇員相關(guān)聯(lián)時,工作時間表才能夠存在,那么實體“工作時間表”從實體“雇員”得出其存在。如圖6中所示,弱實體用同心方框表示。
屬性屬性是給出實體的描述性質(zhì)的標記(lable)(例如名稱、顏色等)。存在兩類屬性。主屬性(key attribute)區(qū)分實體的具體值(occurence)。例如在美國,社會保險號是區(qū)分個人的主屬性。描述符屬性僅僅描述實體具體值(例如性別、體重)。如圖6中所示,在E-R建模中,用和它所屬的實體(方框)連接在一起的橢圓表示屬性。
在一些情況下,屬性可具有多個值。例如,表示企業(yè)的實體可具有一個多取值屬性“位置”。如果企業(yè)具有多個位置,那么屬性“位置”將具有多個值。如圖6中所示,多取值屬性由同心橢圓表示。
關(guān)系關(guān)系是實體具體值之間表現(xiàn)出的連通性。關(guān)系可以是一對一,一對多和多對多,某一實體參與某一關(guān)系可以是隨意的或者強制的。例如,在包含關(guān)于某一公司的職員的信息的數(shù)據(jù)庫中,雇員實體具體值之中的關(guān)系“配偶”是一對一的(如果一般認為一個雇員最多具有一個配偶)。此外,參與該關(guān)系是可以任意選擇的,因為可能存在未婚雇員。作為另一例子,如果公司政策規(guī)定每個雇員確實具有一個經(jīng)理,那么雇員實體具體值之間的關(guān)系“由誰管理”是多對一(許多雇員可能具有相同的經(jīng)理),和強制的(每個雇員必須具有一個經(jīng)理)。
如圖6中所示,在E-R建模中,如果關(guān)系與一個或兩個實體相關(guān),那么用菱形表示該關(guān)系,如果關(guān)系與兩個以上的實體相關(guān),那么用n邊形表示該關(guān)系。通過使用字符“1”和“N”來表示1∶1或1∶N基數(shù)比(cardinality ratio),或者通過使用明確的結(jié)構(gòu)結(jié)束條件,指示關(guān)系中的基數(shù)比(一對一,一對多等),如圖6中所示。當實體的的所有實例參與該關(guān)系時,用雙線連接該實體方框和關(guān)系菱形框;否則,用單線連接該實體和該關(guān)系,如圖6中所示。
圖7是可應用于本發(fā)明的優(yōu)選實施例的例證數(shù)據(jù)庫方案的實體-關(guān)系(E-R)圖。根據(jù)圖4中描述的體系結(jié)構(gòu),圖7中描述的方案被分成多個部分,即目錄服務(wù)部分700,歷史數(shù)據(jù)庫部分702和組合提示部分704。本領(lǐng)域的普通技術(shù)人員會認識到這樣的劃分僅僅是概念上的劃分,并不意圖要求彼此不同的部分中信息的任何物理分離。
圖7中的“基本”(base)實體是組件實體706,代表一個基礎(chǔ)的“基本”服務(wù),意味著不是其它組件(服務(wù))的合成物的一個單個組件(服務(wù))。每個組件可具有由多值屬性“要求”708表示的多個要求,例如某些最小硬件要求或者對其它服務(wù)的依賴性。
在特定的應用(712)下,三元關(guān)系(ternary)“提供1(provides1)”710使每個組件(706)與一個或多個基本功能性(714)相關(guān)。三元關(guān)系“提供1”710表示當按照某一方式(712)使用時,特定組件(706)提供一個或多個基本功能性(714)。
三元關(guān)系“綜合”(synthesize)716使一個或多個基本功能性(714)與一個組合方法(組合方法實體718)和一個對應的導出功能(導出功能實體720)相關(guān)。三元關(guān)系“綜合”716表示可按照某一方式(718)組合一個或多個基本功能(714),獲得導出功能(720)。例如,把圖形文件從“BMP”(位圖)文件轉(zhuǎn)換成“TIFF”(標志圖像文件格式)文件可以是一個基本功能性,把TIFF文件轉(zhuǎn)換成“GIF”(圖形交換格式)可以是另一基本功能性。從而,從BMP轉(zhuǎn)換成GIF格式理應是可通過應用把BMP-TIFF轉(zhuǎn)換服務(wù)的輸出提供給TIFF-GIF轉(zhuǎn)換服務(wù)的組合方法,而獲得的導出功能性。應注意在圖7中,三元關(guān)系“綜合”716關(guān)系到功能性,而不是組件。例如,三元關(guān)系“綜合”716會指出任意BMP-TIFF轉(zhuǎn)換服務(wù)可和任意TIFF-GIF轉(zhuǎn)換服務(wù)相結(jié)合,產(chǎn)生BMP-GIF轉(zhuǎn)換元服務(wù);在三元關(guān)系“綜合”716中沒有就應使用哪個特定的BMP-TIFF轉(zhuǎn)換服務(wù)做出任何指示。
“可組合的”關(guān)系722使組合方法(718)與一個或多個組件(706)相聯(lián)系。“可組合的”關(guān)系722表示可按照特定的組合方法(718)組合特定的一組組件。從而,就上述圖形文件格式轉(zhuǎn)換來說,“可組合的”關(guān)系722會保存通過把一個轉(zhuǎn)換服務(wù)的輸出饋送給另一轉(zhuǎn)換服務(wù)的輸入,可組合兩個特定的轉(zhuǎn)換服務(wù)的指示。從而,如果必須從基本功能性得到某一功能,那么可咨詢“可組合的”關(guān)系722,以確??砂凑斋@得所需導出功能性必需的方式,組合一組特定組件。
把一組基本功能性(714)組合成一個導出功能性(720)的組件(706)的組合是由“組合”實體724表示的組合,“組合”實體724通過關(guān)系722、728和730與實體706、714和720相關(guān)?!敖M合”實體724的“組合方案”屬性726表示形成或使用該組合的信息。組合實體724提供保存已導出的組合的歷史機構(gòu)。例如,“組合方案”屬性726可包含組合方法信息(例如,來自“組合方法”實體718),或者使用或形成某一組合的任意其它有關(guān)信息(例如,由單個組件形成組合的指令或者包含來自單個組件的代碼的組合軟件組件的副本)。
數(shù)據(jù)庫方案,例如圖7中描述的方案可利用數(shù)據(jù)庫管理系統(tǒng),例如關(guān)系數(shù)據(jù)庫管理系統(tǒng),面向?qū)ο蟮臄?shù)據(jù)庫管理系統(tǒng),對象相關(guān)的數(shù)據(jù)庫管理系統(tǒng)或演繹數(shù)據(jù)庫管理系統(tǒng)來實現(xiàn)。在本發(fā)明的優(yōu)選實施例中,本領(lǐng)域中可用的其它數(shù)據(jù)存儲范例也是可能的。
根據(jù)本發(fā)明的一個優(yōu)選實施例,使諸如圖7中所示的數(shù)據(jù)庫方案與控制邏輯(例如由圖4中的目錄服務(wù)401,合成服務(wù)402和合成邏輯403提供的控制邏輯)結(jié)合,以允許作為功能要求的補償,選擇和/或組合可用服務(wù)。圖8以流程圖的形式,描述了可在本發(fā)明的一個實施例中使用的控制邏輯的一個可能實施例。圖8中描述的控制邏輯以圖7中的數(shù)據(jù)庫方案為基礎(chǔ),組合參考圖4說明的目錄服務(wù)401、合成服務(wù)402和合成邏輯403的功能。如同結(jié)合圖4所述,本發(fā)明不要求嚴格分離目錄服務(wù)401、合成服務(wù)402和合成邏輯403。和圖7中的數(shù)據(jù)庫方案的情況一樣,圖8中描述的進程只是起控制邏輯如何工作的一個例子的作用,并不是對本發(fā)明的限制。
圖8中描述的進程開始于調(diào)用某一子例程尋找與規(guī)定的功能要求相聯(lián)系的組件和約束條件(方框800)。方框800中調(diào)用的子例程是作為規(guī)定的每個功能要求的補償,尋找和/或組合組件的遞歸子例程。當組件被包含到關(guān)于每個功能要求的解決方案中時,該子例程被遞歸調(diào)用,以便作為剩余要求的補償,包含另外的組件和/或組合。當最初調(diào)用該子例程時,功能要求的完整列表和代表迄今為止的解決方案中的組件和約束條件的兩個空列表可作為參數(shù)被傳遞給子例程。當該子例程被反復遞歸調(diào)用時,組合和約束條件被加入代表迄今的解決方案的兩個列表中,并從功能要求列表中刪除迄今的解決方案已滿足的功能要求。
每次調(diào)用該子例程時,確定是否還存在沒有解決的任何功能要求(方框802)。如果不存在任何另外的功能要求(方框802否),那么迄今的解決方案應作為結(jié)果被返回(方框804)。
如果確實存在任意功能要求(方框802是),那么確定是否已選擇了用于包含在迄今的解決方案中的任意組件(方框806)。如果是(方框806是),那么確定任意剩余要求是否能夠被已選擇的用于包含在該解決方案中的組件滿足(方框808)。如果否(方框808否)或者迄今沒有選擇任何組件,那么進程進行到方框812。
如果存在由已選擇的組件滿足的要求(方框808是),那么使用信息(即,指令客戶機如何使用所討論的組合來實現(xiàn)所需功能性的信息)被加入迄今的解決方案中的約束條件列表中(方框810)。隨后進行遞歸調(diào)用,以解決任何剩余的功能要求(方框811)。
在方框812中,確定是否存在可由還未被選擇以便包含在迄今的解決方案中的單一組件滿足的要求。如果是(方框812是),那么把該組件加入迄今的解決方案中的組件列表中(方框814),關(guān)于該組件的使用信息被加入迄今的解決方案中(方框810),遞歸調(diào)用該子例程以處理任意剩余的功能要求(方框811)。
如果單一組件不能滿足任何功能要求(方框812否),那么確定功能的組合是否能夠滿足某一功能要求(方框816)。如果是(方框816是),那么遞歸調(diào)用該子例程,找出滿足為獲得必需的導出功能要求所需的功能要求的一組組件(方框818)。隨后檢查遞歸子例程調(diào)用,查看是否可按照必需的方式組合子例程返回的組件(方框819)。如果否(方框819否),那么該進程產(chǎn)生另外的子例程調(diào)用,尋找可組合的組件(方框818)。如果找到可恰當組合的一組組件(方框819是),那么組件被加入迄今的解決方案中(方框814),規(guī)定如何組合和使用組件的使用信息被加入迄今的解決方案中(方框810),遞歸調(diào)用該子例程,以解決任何剩余的功能要求(方框811)。
一旦子例程返回解決方案,那么導出的組合被保存在歷史數(shù)據(jù)庫中(方框820)。本領(lǐng)域的普通技術(shù)人員會認識到可利用常規(guī)的數(shù)據(jù)庫存儲技術(shù),或者通過用支持制表邏輯編程或自修改代碼的語言(例如Prolog)修改程序邏輯,或者通過任意其它恰當?shù)氖侄?并局限于簡單數(shù)據(jù)庫表示法)來實現(xiàn)歷史數(shù)據(jù)庫。
雖然圖4-8中描述的優(yōu)選實施例假定目錄服務(wù)或組合目錄和合成服務(wù)將返回包含允許客戶機組合和使用服務(wù)(組件)的指令或其它信息的響應,不過許多其它體系結(jié)構(gòu)也是可能的。圖9描述了本發(fā)明的利用遠程元服務(wù)提供者912的一個實施例。遠程元服務(wù)提供者912允許從客戶機遠程執(zhí)行服務(wù)的實際組合。具體地說,客戶機900向目錄服務(wù)904發(fā)出請求902,如果需要服務(wù)的組合,那么目錄服務(wù)904把請求906轉(zhuǎn)發(fā)給合成服務(wù)908。合成服務(wù)908隨后把組合指令910轉(zhuǎn)發(fā)給遠程元服務(wù)提供者912。目錄服務(wù)904隨后應答(914,未示出)客戶機900,通知客戶機900遠程元服務(wù)提供者912現(xiàn)在可以提供所請求的功能性??蛻魴C900隨后可利用遠程元服務(wù)提供者912,好像它是提供所請求功能性的單個服務(wù)一樣。但是,遠程元服務(wù)提供者912實際上充當根據(jù)組合指令910,構(gòu)成“元服務(wù)”的服務(wù)的組合的接口。
圖10表示了本發(fā)明的另一結(jié)構(gòu)變化,其中遠程元服務(wù)提供者被合并到用于導出組合的合成服務(wù)中??蛻魴C1000向目錄服務(wù)1004發(fā)出請求1002,如果需要服務(wù)的組合,那么目錄服務(wù)1004把請求10006轉(zhuǎn)發(fā)給合成服務(wù)1008,如同圖9中的元服務(wù)提供者912那樣,合成服務(wù)1008把導出的元服務(wù)提供給客戶機1000。目錄服務(wù)1004隨后應答(1010,示未出)客戶機1000,通知客戶機1000合成服務(wù)1008現(xiàn)在可以提供所請求的功能。關(guān)于圖10中的體系結(jié)構(gòu)的一個變化就是目錄服務(wù)1004提供導出的元服務(wù),而不是合成服務(wù)1008提供導出的元服務(wù)。
本發(fā)明的其它變化也是可能的。例如,可分布式地完成推導組合的進程,以致從同時工作的多個合成服務(wù)返回多個解決方案,并從返回的解決方案中選擇最好的一個解決方案。另一種變化是向發(fā)出請求的客戶機提供兩個或更多的可能組合,可能還伴隨將被用作選擇標準的輔助信息,允許客戶機選擇提供的可能組合之一??芍С侄鄠€解決方案的另一種方式是合成服務(wù)(或目錄服務(wù))詢問客戶機是否有會幫助從多個候選者中選擇一個導出組合的偏愛,以致合成服務(wù)(或者目錄服務(wù))隨后能夠提供最適合客戶機的偏愛的一個或多個解決方案。例如,可詢問客戶機是更關(guān)心速度還是可靠性,并且可提供其中根據(jù)客戶機的需要,處理速度/可靠性折衷的解決方案。
重要的是要注意到,盡管在全功能數(shù)據(jù)處理系統(tǒng)的上下文中描述了本發(fā)明,但是本領(lǐng)域的普通技術(shù)人員會認識到,本發(fā)明的進程能夠以指令或其它功能描述材料的計算機可讀介質(zhì)的形式以及各種其它形式分布,并且無論實際用于進行所述分布的信號承載介質(zhì)的具體類型如何,本發(fā)明都同樣適用。計算機可讀介質(zhì)的例子包括可記錄類型的介質(zhì),比如軟盤、硬盤驅(qū)動器、RAM、CD-ROM、DVD-ROM,以及傳輸類型的介質(zhì),比如數(shù)字和模擬通信鏈路,使用諸如射頻和光波傳輸?shù)葌鬏斝问降挠芯€或者無線通信鏈路。計算機可讀介質(zhì)可以采用編碼格式的形式,所述編碼格式被解碼以實際用于具體的數(shù)據(jù)處理系統(tǒng)。功能描述材料是把功能性給予機器的信息。功能描述材料包括(但不限于)計算機程序,指令,規(guī)則,事實,可計算的函數(shù)的定義,對象和數(shù)據(jù)結(jié)構(gòu)。
上面出于舉例說明的目的,描述了本發(fā)明,并不是要窮盡本發(fā)明或者將本發(fā)明限于所公開的形式。對于本領(lǐng)域普通技術(shù)人員來說,許多修改和變化是顯而易見的。上述實施例的選擇和描述是為了更好地解釋本發(fā)明的原理及其實際應用,并使本領(lǐng)域的普通技術(shù)人員能夠理解本發(fā)明的針對所能想到的具體用途進行各種適當修改的各種實施例。
權(quán)利要求
1.一種計算機實現(xiàn)的保存關(guān)于硬件和軟件組件的信息的方法,包括接收(501)包含功能要求的請求;咨詢(502)目錄(401),以確定是否存在滿足功能要求的單一組件;響應不存在滿足功能要求的單一組件的確定,識別(816)當按照組合方法組合時,會滿足所述功能要求的多個功能性;和識別(818)滿足多個功能性的多個組件。
2.按照權(quán)利要求1所述的方法,其中功能要求是服務(wù)定義,目錄通過咨詢可用服務(wù)的數(shù)據(jù)庫來確定定義的服務(wù)是否可用。
3.按照權(quán)利要求1或2所述的方法,還包括得出根據(jù)組合方法組合多個組件,以便達到功能要求的指令。
4.按照權(quán)利要求3所述的方法,其中請求由客戶機進行,所述方法還包括把指令返回給客戶機,從而客戶機可利用多個組件來達到功能要求。
5.按照權(quán)利要求3所述的方法,其中請求由客戶機進行,所述方法還包括把指令提供給遠程元服務(wù)提供者,以致遠程元服務(wù)提供者可通過把多個組件組合成一個元服務(wù),向客戶機提供滿足功能要求的功能性。
6.按照任意前述權(quán)利要求所述的方法,還包括登記所述多個組件供未來之用,而不必重新識別所述多個組件。
7.按照權(quán)利要求1所述的方法,其中請求由客戶機進行,所述方法還包括使所述多個組件的識別對除客戶機之外的服務(wù)可用。
8.按照權(quán)利要求1所述的方法,其中請求由客戶機進行,所述方法還包括識別滿足多個功能性的組件的多個組合;和向客戶機提供所述多個組合中的某一組合的選擇。
9.按照權(quán)利要求1所述的方法,其中請求由客戶機進行,所述方法還包括識別滿足多個功能性的組件的多個組合;查詢客戶機以確定另外的偏愛;和根據(jù)所述另外的偏愛,從所述多個組合中選擇至少一個組合提供給客戶機。
10.一種包含當由計算機執(zhí)行時,使計算機實現(xiàn)下述方法的指令的計算機程序產(chǎn)品接收(501)包含功能要求的請求;咨詢(502)目錄(401),以確定是否存在滿足功能要求的單一組件;響應不存在滿足功能要求的單一組件的確定,識別(816)當按照組合方法組合時,會滿足所述功能要求的多個功能性;和識別(818)滿足多個功能性的多個組件。
11.按照權(quán)利要求10所述的計算機程序產(chǎn)品,其中功能要求是服務(wù)定義,目錄通過咨詢可用服務(wù)的數(shù)據(jù)庫來確定定義的服務(wù)是否可用。
12.按照權(quán)利要求10或11所述的計算機程序產(chǎn)品,其中計算機執(zhí)行的方法還包括得出根據(jù)組合方法組合多個組件,以便達到功能要求的指令。
13.按照權(quán)利要求12所述的計算機程序產(chǎn)品,其中請求由客戶機進行,計算機執(zhí)行的方法包括把指令返回給客戶機,從而客戶機可利用多個組件來達到功能要求。
14.按照權(quán)利要求12所述的計算機程序產(chǎn)品,其中請求由客戶機進行,計算機執(zhí)行的所述方法包括把指令提供給遠程元服務(wù)提供者,以致遠程元服務(wù)提供者可通過把多個組件組合成一個元服務(wù),向客戶機提供滿足功能要求的功能性。
15.按照權(quán)利要求10-14任意之一所述的計算機程序產(chǎn)品,其中計算機執(zhí)行的方法包括登記所述多個組件供未來之用,而不必重新識別所述多個組件。
16.按照權(quán)利要求10所述的計算機程序產(chǎn)品,其中請求由客戶機進行,計算機執(zhí)行的所述方法包括使所述多個組件的識別對除客戶機之外的服務(wù)可用。
17.按照權(quán)利要求10所述的計算機程序產(chǎn)品,其中請求由客戶機進行,計算機執(zhí)行的所述方法包括識別滿足多個功能性的組件的多個組合;和向客戶機提供所述多個組合中的某一組合的選擇。
18.按照權(quán)利要求10所述的計算機程序產(chǎn)品,其中請求由客戶機進行,計算機執(zhí)行的所述方法包括識別滿足多個功能性的組件的多個組合;查詢客戶機以確定另外的偏愛;和根據(jù)所述另外的偏愛,從所述多個組合中選擇至少一個組合提供給客戶機。
19.一種數(shù)據(jù)處理系統(tǒng),包括接收包含功能要求的請求的裝置(501);咨詢目錄(401),以確定是否存在滿足功能要求的單一組件的裝置(502);響應不存在滿足功能要求的單一組件的確定,識別當按照組合方法組合時,會滿足所述功能要求的多個功能性的裝置(816);和識別滿足多個功能性的多個組件的裝置(818)。
20.按照權(quán)利要求19所述的數(shù)據(jù)處理系統(tǒng),其中功能要求是服務(wù)定義,系統(tǒng)還包括可由目錄咨詢的服務(wù)定義的數(shù)據(jù)庫。
21.按照權(quán)利要求19或20所述的數(shù)據(jù)處理系統(tǒng),還包括得出根據(jù)組合方法組合多個組件,以便達到功能要求的指令的裝置。
22.按照權(quán)利要求21所述的數(shù)據(jù)處理系統(tǒng),其中請求由客戶機進行,所述數(shù)據(jù)處理系統(tǒng)還包括把指令返回給客戶機的裝置,從而客戶機可利用多個組件來達到功能要求。
23.按照權(quán)利要求21所述的數(shù)據(jù)處理系統(tǒng),其中請求由客戶機進行,所述數(shù)據(jù)處理系統(tǒng)還包括把指令提供給遠程元服務(wù)提供者,以致遠程元服務(wù)提供者可通過把多個組件組合成一個元服務(wù),向客戶機提供滿足功能要求的功能性的裝置。
24.按照權(quán)利要求19-23任意之一所述的數(shù)據(jù)處理系統(tǒng),還包括登記所述多個組件供未來之用,而不必重新識別所述多個組件的裝置。
25.按照權(quán)利要求19所述的數(shù)據(jù)處理系統(tǒng),其中請求由客戶機進行,所述數(shù)據(jù)處理系統(tǒng)還包括使所述多個組件的識別對除客戶機之外的服務(wù)可用的裝置。
26.按照權(quán)利要求19所述的數(shù)據(jù)處理系統(tǒng),其中請求由客戶機進行,所述數(shù)據(jù)處理系統(tǒng)還包括識別滿足多個功能性的組件的多個組合的裝置;和向客戶機提供所述多個組合中的某一組合的選擇的裝置。
27.按照權(quán)利要求19所述的數(shù)據(jù)處理系統(tǒng),其中請求由客戶機進行,所述數(shù)據(jù)處理系統(tǒng)還包括識別滿足多個功能性的組件的多個組合的裝置;查詢客戶機以確定另外的偏愛的裝置;和根據(jù)所述另外的偏愛,從所述多個組合中選擇至少一個組合提供給客戶機的裝置。
全文摘要
公開提供用于保存關(guān)于硬件和軟件組件的信息的改進目錄服務(wù)的方法、計算機程序產(chǎn)品和數(shù)據(jù)處理系統(tǒng)。所述目錄服務(wù)不僅保存其它硬件和軟件組件為定位并使用目錄中列舉的組件而需要的信息,而且還能夠動態(tài)構(gòu)成達到客戶機的功能性要求的“元服務(wù)”。
文檔編號H04L29/08GK1689298SQ03822261
公開日2005年10月26日 申請日期2003年9月11日 優(yōu)先權(quán)日2002年9月20日
發(fā)明者拉加什·達斯, 伊萬·尼古拉斯·沃利 申請人:國際商業(yè)機器公司