專(zhuān)利名稱(chēng):用于智能元中的動(dòng)態(tài)命令擴(kuò)展的方法和裝置的制作方法
發(fā)明的背景本發(fā)明涉及軟件系統(tǒng)結(jié)構(gòu)設(shè)計(jì),尤其是一種提供軟件組件的動(dòng)態(tài)擴(kuò)展的方法,如對(duì)象類(lèi)(object classes)。
在傳統(tǒng)的計(jì)算環(huán)境中,可執(zhí)行組件需要向其它的可執(zhí)行組件做請(qǐng)求。我們知道在一些情況下,組件所支持的那些請(qǐng)求被直接地建立到可能對(duì)它做請(qǐng)求的所有的組件中。在其它情況下,組件可以具有回答關(guān)于它支持的請(qǐng)求的查詢(xún)的能力。后面的情況的優(yōu)點(diǎn)是不需要所有潛在的客戶(hù)端擁有所有其它的組件所支持的操作的全部知識(shí)。這是眾所周知的技術(shù)。
傳統(tǒng)上,當(dāng)一個(gè)組件收到一個(gè)它不能識(shí)別的請(qǐng)求時(shí),它通過(guò)對(duì)請(qǐng)求的組件發(fā)送回一個(gè)錯(cuò)誤(error)來(lái)響應(yīng)。這經(jīng)常會(huì)導(dǎo)致請(qǐng)求的組件在請(qǐng)求鏈上的錯(cuò)誤層疊直到應(yīng)用失敗。
一些系統(tǒng),諸如Common Lisp,SmallTalk和Forth提供了軟件組件的動(dòng)態(tài)綁定。但是,在組件實(shí)際上被請(qǐng)求之前,這些系統(tǒng)在安裝或類(lèi)定義時(shí)間時(shí)進(jìn)行這種動(dòng)態(tài)綁定。因此,需要巨大的資源覆蓋區(qū)(large resource footprint)。
域名服務(wù)器(DNS)具有請(qǐng)求將一個(gè)解決域名的請(qǐng)求傳遞到知識(shí)更豐富的服務(wù)器中的能力。但是,如果DNS收到它們不能處理的格式的請(qǐng)求,它們不具有升級(jí)它們的功能的能力,如果域名不在它已存儲(chǔ)的列表中時(shí),就只是簡(jiǎn)單地傳遞域名。
CORBA動(dòng)態(tài)調(diào)用接口Dynamic Invocation Interface(DII)和動(dòng)態(tài)構(gòu)架接口Dynamic Skeleton Interface(DSI)允許對(duì)軟件組件請(qǐng)求的動(dòng)態(tài)調(diào)度,從而對(duì)其它組件的改變可以在運(yùn)行時(shí)被利用;但是,它們沒(méi)有包括在服務(wù)器組件中的可執(zhí)行內(nèi)容的動(dòng)態(tài)擴(kuò)展性。服務(wù)器組件如果收到它不能處理的請(qǐng)求就返回一個(gè)錯(cuò)誤。
發(fā)明的評(píng)述本發(fā)明提供了一種軟件組件,其可以動(dòng)態(tài)更新它所支持的請(qǐng)求的方法和裝置,而不是在請(qǐng)求不被理解時(shí)發(fā)送一個(gè)錯(cuò)誤。從請(qǐng)求的組件(calling component)的角度來(lái)看,請(qǐng)求是以標(biāo)準(zhǔn)的方式填充,不返回錯(cuò)誤。這就有減少不必要的應(yīng)用失敗的重大意義。
本發(fā)明還提供了一種方法和裝置,當(dāng)來(lái)自客戶(hù)端的請(qǐng)求不被理解時(shí),軟件組件在遠(yuǎn)程服務(wù)器上檢索可能發(fā)現(xiàn)的合適的升級(jí)軟件,從而滿(mǎn)足請(qǐng)求而不返回錯(cuò)誤。
附圖的簡(jiǎn)要說(shuō)明
圖1表示設(shè)置用于應(yīng)用本發(fā)明的第一實(shí)施例的系統(tǒng)的裝置;圖2是說(shuō)明第一實(shí)施例的控制流程的交互流程圖;圖3A表示根據(jù)本發(fā)明的第二實(shí)施例的裝置;圖3B表示圖3A所示的裝置的功能;圖4表示根據(jù)本發(fā)明的第三實(shí)施例的裝置;圖5表示根據(jù)本發(fā)明的第四實(shí)施例的裝置。
詳細(xì)說(shuō)明本發(fā)明的幾個(gè)實(shí)施例參見(jiàn)此后的圖1-5的介紹。這些實(shí)施例全都是在請(qǐng)求可以由客戶(hù)端在運(yùn)行時(shí)動(dòng)態(tài)構(gòu)成并被發(fā)送給服務(wù)器處理的環(huán)境下操作的。這與請(qǐng)求是在編譯時(shí)靜態(tài)地建立的語(yǔ)言編譯系統(tǒng)相反,通常被確認(rèn)為與靜態(tài)定義接口不同。而是,它被認(rèn)為是在任何時(shí)侯相互獨(dú)立情況下,服務(wù)器可以改變它的接口,客戶(hù)端可以改變它的請(qǐng)求。在這種情況下,客戶(hù)端必須為服務(wù)器拒絕任何請(qǐng)求做準(zhǔn)備,即使請(qǐng)求預(yù)先成功地被處理。每個(gè)實(shí)施例增加了一個(gè)機(jī)構(gòu)以定位和加載應(yīng)用程序以處理客戶(hù)端對(duì)前述的未知的命令的請(qǐng)求。這使得否則就會(huì)失敗的請(qǐng)求成功地完成。
如圖1和2所示的本發(fā)明的第一實(shí)施例。本發(fā)明的這一特殊實(shí)施例在一基于對(duì)象的操作環(huán)境下操作,雖然本發(fā)明的其它實(shí)施例可能在其它的組件可能是在應(yīng)用客戶(hù)端組件的軟件環(huán)境下操作,例如采用參數(shù)、限量或方法。基于對(duì)象的軟件環(huán)境是眾所周知的,許多的軟件環(huán)境是基于對(duì)象模型的。在這種環(huán)境下,對(duì)象類(lèi)被定義,每個(gè)對(duì)象類(lèi)有一組方法(method)。對(duì)象類(lèi)的分級(jí)會(huì)經(jīng)常被提供,子類(lèi)具有它們的父類(lèi)的所有方法和特性以及進(jìn)一步的方法和特性。軟件組件可以產(chǎn)生定義的類(lèi)的對(duì)象實(shí)例,其可以獨(dú)立地起作用。相同對(duì)象的許多實(shí)例可能同時(shí)存在并且每個(gè)單獨(dú)起作用。調(diào)用其它對(duì)象的方法的對(duì)象起到客戶(hù)端對(duì)象的作用,被調(diào)用的含有方法的對(duì)象起到服務(wù)器對(duì)象的作用。如圖1所示,對(duì)象12、14、18通過(guò)接口20相互通訊。接口的特性根據(jù)系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)而變化。例如,它允許在采用適當(dāng)?shù)膮f(xié)議的網(wǎng)絡(luò)中,在對(duì)象間相互通訊。與每個(gè)對(duì)象結(jié)合的服務(wù)器請(qǐng)求阻止器server request interceptor(SRI)16阻止對(duì)該結(jié)合的對(duì)象做出的請(qǐng)求,如圖1的點(diǎn)劃線(xiàn)所示。
圖2是描述動(dòng)態(tài)請(qǐng)求裝置的總體設(shè)計(jì)的統(tǒng)一建模語(yǔ)言Unified ModelingLanguage(UML)交互流程圖并用一例子說(shuō)明控制流。
在如圖2所示的流程圖中,客戶(hù)端12做了調(diào)用服務(wù)器組件14上的“foo( )”的請(qǐng)求。此請(qǐng)求可能包括各種可能是不同的數(shù)據(jù)類(lèi)型的參數(shù)。客戶(hù)端未知,在圖1所示的SRI 16阻止了請(qǐng)求。SRI查詢(xún)它所知道的服務(wù)器組件當(dāng)前支持的請(qǐng)求列表162(稱(chēng)為一個(gè)know( )請(qǐng)求)。如果“know(foo)”返回false,服務(wù)器請(qǐng)求阻止器SRI就對(duì)主請(qǐng)求檔案服務(wù)器Request Archive Server(RAS)18做一個(gè)“get(foo)”請(qǐng)求,其包含對(duì)于在系統(tǒng)中支持的所有請(qǐng)求的可執(zhí)行組件。如果此請(qǐng)求具有與請(qǐng)求不相容的語(yǔ)句,在此情況下,對(duì)于組件可以處理的foo( ),對(duì)請(qǐng)求檔案服務(wù)器RAS 18做一個(gè)請(qǐng)求,看是否存在可以處理此請(qǐng)求的新版foo( )存在。請(qǐng)求檔案服務(wù)器找到帶有foo( )的可執(zhí)行組件(如果它存在)并用“hereis(foo)”請(qǐng)求把它發(fā)送到服務(wù)器組件14。請(qǐng)求檔案服務(wù)器還把對(duì)get(foo)命令的成功響應(yīng)發(fā)送到服務(wù)器請(qǐng)求阻止器16,還應(yīng)該把更新的foo( )支持的請(qǐng)求的副本發(fā)送到服務(wù)器上以便服務(wù)器請(qǐng)求阻止器可以將它們?cè)黾拥剿С值恼?qǐng)求的列表162中。然后,服務(wù)器請(qǐng)求阻止器16代表客戶(hù)端組件12通過(guò)invoke(foo)請(qǐng)求來(lái)調(diào)用在服務(wù)器組件上的foo( )請(qǐng)求(知道服務(wù)器現(xiàn)在支持foo( ))。在invoke(foo)請(qǐng)求返回后,服務(wù)器請(qǐng)求阻止器16返回任何合適的值給客戶(hù)端組件12。從客戶(hù)端來(lái)看,可執(zhí)行內(nèi)容的動(dòng)態(tài)檢索是隱藏的。請(qǐng)求檔案服務(wù)器18不需要是一個(gè)單一實(shí)體;它可以是一個(gè)資源分布網(wǎng)絡(luò)。為簡(jiǎn)化起見(jiàn),在此實(shí)施例中,它被表示為一單一實(shí)體。例如,服務(wù)器組件可能提供對(duì)動(dòng)態(tài)鏈接庫(kù)文件中的對(duì)象的訪問(wèn)。動(dòng)態(tài)鏈接庫(kù)文件提供可以在運(yùn)行時(shí)被連接到程序的功能,因此,當(dāng)它們被使用時(shí),它們不浪費(fèi)內(nèi)存。如果類(lèi)的對(duì)象實(shí)例文件運(yùn)行時(shí)不能連接到運(yùn)行的程序,或者如果被訪問(wèn)的動(dòng)態(tài)鏈接庫(kù)文件不能提供滿(mǎn)足請(qǐng)求的合適的功能,就對(duì)動(dòng)態(tài)鏈接庫(kù)文件或其升級(jí)版做檢索。例如,所做的檢索可能發(fā)現(xiàn)定位網(wǎng)絡(luò)上的其它位置的服務(wù)器上的文件。
本發(fā)明的其它實(shí)施例,以與圖1的實(shí)施例的相似的方式操作,可以包括相同的組件和結(jié)構(gòu),參見(jiàn)此后的圖3-5。
如圖3A所示,本發(fā)明的第二實(shí)施例在命令解釋程序環(huán)境下執(zhí)行。在存儲(chǔ)在計(jì)算機(jī)21的內(nèi)存22中的傳統(tǒng)的命令行解釋程序24中(例如UNIX Bourne命令解釋程序或在MS-DOS中的COMMAND.COM,請(qǐng)求被客戶(hù)端編寫(xiě)成文本行,直接由用戶(hù)發(fā)出,從腳本讀取或者由可能產(chǎn)生解釋程序?qū)嵗南到y(tǒng)上的可執(zhí)行組件發(fā)出。在此實(shí)例中,解釋程序命令解釋器26起服務(wù)器的作用。典型的請(qǐng)求是應(yīng)用帶有命令行參數(shù)的隨機(jī)存儲(chǔ)在長(zhǎng)期存儲(chǔ)器29中的程序。命令解釋器具有它理解的某種請(qǐng)求詞庫(kù)。該詞庫(kù)包括一組內(nèi)部執(zhí)行命令,和外部可用程序,通常存儲(chǔ)在一組指定的目錄內(nèi)。詞庫(kù)可以通過(guò)增加外部程序被擴(kuò)展到適當(dāng)?shù)脑~典中。對(duì)于本發(fā)明以前的命令解釋器,如果一個(gè)請(qǐng)求不對(duì)應(yīng)于一個(gè)內(nèi)部命令或一個(gè)外部程序25,命令解釋器將返回一個(gè)表示請(qǐng)求沒(méi)有被滿(mǎn)足的錯(cuò)誤消息。
如圖3B所示,根據(jù)本發(fā)明的第二實(shí)施例,當(dāng)一個(gè)請(qǐng)求不是命令解釋程序的詞庫(kù)中的一部分時(shí),將提供一個(gè)擴(kuò)展機(jī)構(gòu)(extension mechanism)進(jìn)行調(diào)解。命令解釋程序檢索的詞典組,稱(chēng)為路徑(path),被視為可用程序的高速緩沖存儲(chǔ)器(cache)。當(dāng)對(duì)不在高速緩沖存儲(chǔ)器中的程序做請(qǐng)求時(shí),本發(fā)明的實(shí)施例的擴(kuò)展機(jī)構(gòu)就在命令解釋器檢索的范圍之外檢索一個(gè)或多個(gè)網(wǎng)絡(luò)或檔案源28以定位程序。如果程序被定位,通過(guò)用程序解釋器把程序復(fù)制到路徑中而將程序帶“進(jìn)高速緩沖存儲(chǔ)器中”。一旦程序被“高速緩存”,即使當(dāng)初始的請(qǐng)求被做出時(shí),程序在那里,原先的請(qǐng)求可以被重新發(fā)布。
有了該機(jī)構(gòu),可以定義外部策略以結(jié)束一個(gè)命令并將它從高速緩沖存儲(chǔ)器中刪除,如果需要,預(yù)期它可以在稍后被替換。一個(gè)這樣的策略可能會(huì)刪除近來(lái)沒(méi)有被使用的程序。另一個(gè)策略可能是將版本號(hào)和超過(guò)時(shí)限的失效的程序相對(duì)于它們的參考源進(jìn)行比較,或者當(dāng)出現(xiàn)一個(gè)較新的版本時(shí)就自動(dòng)更新它們。這些策略與動(dòng)態(tài)命令擴(kuò)展機(jī)構(gòu)相一致并取決于動(dòng)態(tài)命令擴(kuò)展機(jī)構(gòu),但是不是機(jī)構(gòu)本身的一部分。
如圖4所示的本發(fā)明的第三實(shí)施例,在客戶(hù)端/服務(wù)器系統(tǒng)的客戶(hù)端,一個(gè)協(xié)議解釋器讀取請(qǐng)求,調(diào)用服務(wù)器函數(shù)處理它們并返回結(jié)果給客戶(hù)端。服務(wù)器的詞庫(kù)常常由協(xié)議定義,并被客戶(hù)端內(nèi)在理解??蛻?hù)端準(zhǔn)備一個(gè)請(qǐng)求,傳輸給服務(wù)器并等待響應(yīng)。如果客戶(hù)端請(qǐng)求的一個(gè)操作不被服務(wù)器所理解,服務(wù)器就返回適當(dāng)?shù)腻e(cuò)誤,表示請(qǐng)求不能被滿(mǎn)足。在一些情況下,該反應(yīng)表示服務(wù)器和客戶(hù)端沒(méi)有使用相同版本的協(xié)議。
第三實(shí)施例提供的擴(kuò)展機(jī)構(gòu)以?xún)?nèi)許客戶(hù)端和服務(wù)器協(xié)議沿著向后兼容的升級(jí)路徑獨(dú)立發(fā)展??蛻?hù)端32根據(jù)它估計(jì)的來(lái)自服務(wù)器34(協(xié)議)的詞庫(kù)對(duì)一個(gè)操作做一個(gè)請(qǐng)求。協(xié)議結(jié)合死棋試圖找到一種對(duì)應(yīng)于所請(qǐng)求的操作的方法(功能應(yīng)用)。如果操作是服務(wù)器的詞庫(kù)的一部分,相關(guān)的方法被調(diào)用,通常返回結(jié)果。如果操作還不是服務(wù)器詞庫(kù)的一部分,一個(gè)或多個(gè)網(wǎng)絡(luò)或檔案源38被檢索以定位對(duì)該操作的方法。如果發(fā)現(xiàn)一個(gè)適當(dāng)?shù)姆椒?,?dāng)如果初始的請(qǐng)求被做出時(shí)該方法存在,它就被加載到服務(wù)器的詞庫(kù)中,與該操作結(jié)合并被調(diào)用.以這種方式,服務(wù)器可以被動(dòng)態(tài)地?cái)U(kuò)展以處理被升級(jí)的客戶(hù)端做出的請(qǐng)求,使得客戶(hù)端和服務(wù)器適度地發(fā)展。
如圖5所示的本發(fā)明的第四實(shí)施例,在一分布式系統(tǒng)中應(yīng)用,例如CORBA。在此系統(tǒng)中,客戶(hù)端42可以通過(guò)服務(wù)器對(duì)象對(duì)執(zhí)行自動(dòng)建立操作請(qǐng)求。在一個(gè)基于CORBA的環(huán)境中,動(dòng)態(tài)調(diào)用接口(DII)被用于使該功能生效。ORB將操作請(qǐng)求映象到服務(wù)器端的對(duì)象執(zhí)行的方法中。
根據(jù)此實(shí)施例,擴(kuò)展機(jī)構(gòu)對(duì)服務(wù)客戶(hù)端操作請(qǐng)求提供實(shí)時(shí)的對(duì)象執(zhí)行方法的加載。如果客戶(hù)端42請(qǐng)求一個(gè)不是來(lái)自服務(wù)器對(duì)象44的操作,對(duì)象請(qǐng)求代理程序(ORB)調(diào)用ORB外部的檢索組件48以在系統(tǒng)的某處的服務(wù)器49上定位一個(gè)合適的方法執(zhí)行。如果找到這樣的方法,它與此操作結(jié)合并以正常的方法被調(diào)用。否則,當(dāng)操作沒(méi)有被發(fā)現(xiàn)操作就如其正常情況而失敗。
為了在ORB操作/方法解決機(jī)構(gòu)中進(jìn)行調(diào)節(jié),必須使用ORB賣(mài)方(vendor)的特殊接口。許多賣(mài)方提供可以允許動(dòng)態(tài)擴(kuò)展技術(shù)應(yīng)用的阻止器機(jī)構(gòu)。
本發(fā)明可以在基于系統(tǒng)結(jié)構(gòu)的組件中應(yīng)用。在這樣的結(jié)構(gòu)中,松散結(jié)合的服務(wù)群體合作在一起以提供系統(tǒng)功能。當(dāng)系統(tǒng)發(fā)展時(shí),這些服務(wù)的數(shù)量和特性會(huì)隨著時(shí)間發(fā)生很大的變化。這樣一個(gè)發(fā)展的系統(tǒng)的靈活性通過(guò)一個(gè)擴(kuò)展機(jī)構(gòu)而增強(qiáng),當(dāng)它們被請(qǐng)求時(shí),該擴(kuò)展機(jī)構(gòu)嘗試定位和獲得服務(wù)的執(zhí)行。
一客戶(hù)端做了一個(gè)連接到特殊服務(wù)的本地請(qǐng)求。本地服務(wù)管理器具有它直接知道的一組服務(wù)。如果服務(wù)已經(jīng)存在,就做連接并返回客戶(hù)端。如果服務(wù)不存在,可能是本地服務(wù)管理器的一部分動(dòng)態(tài)擴(kuò)展機(jī)構(gòu),或者是由本地服務(wù)管理器驅(qū)動(dòng)的獨(dú)立組件,檢索請(qǐng)求服務(wù)的執(zhí)行。如果應(yīng)用可以被發(fā)現(xiàn),當(dāng)如果服務(wù)已經(jīng)存在時(shí),它被服務(wù)管理器加載,連接過(guò)程繼續(xù)進(jìn)行。如果需要,通過(guò)在服務(wù)識(shí)別器中包括一些版本信息可以提供服務(wù)的版本,從而有效地使新的版本顯得象一個(gè)新的不同的服務(wù)。舊的不使用的服務(wù)執(zhí)行的刪除是超出動(dòng)態(tài)擴(kuò)展機(jī)構(gòu)范圍的管理事務(wù)。
當(dāng)本發(fā)明的最佳實(shí)施例被說(shuō)明和介紹時(shí),本技術(shù)領(lǐng)域的普通技術(shù)人員應(yīng)該理解在沒(méi)有偏離本發(fā)明的情況下,在較寬的范圍內(nèi)可以做變化和修改。在此后的權(quán)利要求中闡明了本發(fā)明的各種特征。
權(quán)利要求
1.一種計(jì)算機(jī)系統(tǒng),包括客戶(hù)端組件服務(wù)器組件,所述的客戶(hù)端組件安排用來(lái)對(duì)所述的服務(wù)器組件做請(qǐng)求;維持可以被所述的服務(wù)器滿(mǎn)足的請(qǐng)求的表達(dá)的裝置;一請(qǐng)求阻止組件,安排用于阻止來(lái)自所述的客戶(hù)端組件到所述的服務(wù)器組件的請(qǐng)求,如果該請(qǐng)求被服務(wù)器支持,從所述的表達(dá)建立;其中如果所述的請(qǐng)求不被支持,如果要求所述的服務(wù)器支持所述的請(qǐng)求,所述的請(qǐng)求阻止組件被安排檢索外部資源以便定位,并對(duì)所述的服務(wù)器提供額外的功能以支持所述的請(qǐng)求;所述的請(qǐng)求阻止組件此后將請(qǐng)求傳送給所述的服務(wù)器以執(zhí)行。
2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中所述的客戶(hù)端和服務(wù)器組件包括在一個(gè)或多個(gè)計(jì)算機(jī)程序中的對(duì)象。
3.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其中所述的服務(wù)器組件包括一個(gè)在動(dòng)態(tài)鏈接庫(kù)文件中表達(dá)的對(duì)象,其中所述的請(qǐng)求阻止組件檢索所述的動(dòng)態(tài)鏈接庫(kù)文件,或如果在所述的計(jì)算機(jī)系統(tǒng)中含有的所述的動(dòng)態(tài)鏈接庫(kù)文件的當(dāng)前版不能提供所述的服務(wù)器組件的功能,檢索所述的動(dòng)態(tài)鏈接庫(kù)文件的升級(jí)版。
4.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中客戶(hù)端組件包括一個(gè)軟件程序,服務(wù)器組件包括一個(gè)被軟件組件調(diào)用的操作系統(tǒng)命令解釋程序,請(qǐng)求阻止組件是一個(gè)命令解釋器。
5.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其中計(jì)算機(jī)系統(tǒng)是一個(gè)CORBA分布式系統(tǒng),其中所述的客戶(hù)端和服務(wù)器組件是在所述的系統(tǒng)上的對(duì)象,其中所述的請(qǐng)求阻止組件是在對(duì)象請(qǐng)求代理程序中。
6.一種計(jì)算機(jī)系統(tǒng),包括客戶(hù)端組件服務(wù)器組件,所述的客戶(hù)端組件安排用來(lái)對(duì)所述的服務(wù)器組件做請(qǐng)求;包括可以被所述的服務(wù)器滿(mǎn)足的請(qǐng)求的表達(dá)的裝置;一種裝置,安排用于阻止來(lái)自所述的客戶(hù)端組件到所述的服務(wù)器組件的請(qǐng)求,如果該請(qǐng)求被服務(wù)器支持,從所述的表達(dá)建立;如果所述的請(qǐng)求不被支持,如果要求所述的服務(wù)器支持所述的請(qǐng)求,所述的請(qǐng)求阻止組件被安排檢索外部資源以便定位,并對(duì)所述的服務(wù)器提供額外的功能以支持所述的請(qǐng)求;此后將請(qǐng)求傳送給所述的服務(wù)器以執(zhí)行。
7.根據(jù)權(quán)利要求6所述的計(jì)算機(jī)系統(tǒng),其中所述的客戶(hù)端和服務(wù)器組件包括在一個(gè)或多個(gè)計(jì)算機(jī)程序中的對(duì)象。
8.根據(jù)權(quán)利要求7所述的計(jì)算機(jī)系統(tǒng),其中所述的服務(wù)器組件包括一個(gè)在動(dòng)態(tài)鏈接庫(kù)文件中表達(dá)的對(duì)象,其中所述的請(qǐng)求阻止組件檢索所述的動(dòng)態(tài)鏈接庫(kù)文件,或如果在所述的計(jì)算機(jī)系統(tǒng)中含有的所述的動(dòng)態(tài)鏈接庫(kù)文件的當(dāng)前版不能提供所述的服務(wù)器組件的功能,檢索所述的動(dòng)態(tài)鏈接庫(kù)文件的升級(jí)版。
9.根據(jù)權(quán)利要求6所述的計(jì)算機(jī)系統(tǒng),其中客戶(hù)端組件包括一個(gè)軟件程序,服務(wù)器組件包括一個(gè)被軟件組件調(diào)用的操作系統(tǒng)命令解釋程序,請(qǐng)求阻止組件是一個(gè)命令解釋器。
10.根據(jù)權(quán)利要求6所述的計(jì)算機(jī)系統(tǒng),其中計(jì)算機(jī)系統(tǒng)是一個(gè)CORBA分布式系統(tǒng),其中所述的客戶(hù)端和服務(wù)器組件是在所述的系統(tǒng)上的對(duì)象,其中所述的請(qǐng)求阻止組件是在對(duì)象請(qǐng)求代理程序中。
全文摘要
本發(fā)明提供了一種系統(tǒng)(20),其中在沒(méi)有對(duì)這些組件做請(qǐng)求的客戶(hù)端(12)組件沒(méi)有被通知由他們的請(qǐng)求啟動(dòng)的升級(jí)的情況下,當(dāng)需要新功能時(shí),作為服務(wù)器(14)的軟件組件可以被升級(jí)或被安裝。然后,服務(wù)器(14)可以對(duì)否則會(huì)在客戶(hù)端(12)組件中造成錯(cuò)誤的請(qǐng)求做響應(yīng)。
文檔編號(hào)G06F9/445GK1381004SQ99814817
公開(kāi)日2002年11月20日 申請(qǐng)日期1999年12月22日 優(yōu)先權(quán)日1998年12月24日
發(fā)明者阿龍·阿博特, 戴爾·舒馬赫, 布雷特·彼得森 申請(qǐng)人:計(jì)算機(jī)合伙思維公司