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

服務(wù)器內(nèi)分派客戶請求時執(zhí)行語義并發(fā)控制的裝置和方法

文檔序號:6414760閱讀:221來源:國知局
專利名稱:服務(wù)器內(nèi)分派客戶請求時執(zhí)行語義并發(fā)控制的裝置和方法
技術(shù)領(lǐng)域
本發(fā)明涉及客戶-服務(wù)器(也叫“分布式”)計算領(lǐng)域,其中一個計算設(shè)備(“客戶機”)請求另一個計算設(shè)備(“服務(wù)器”)執(zhí)行客戶機的部分工作。
過去幾年以來,客戶-服務(wù)器計算在信息技術(shù)世界中已經(jīng)變得越來越重要。這種分布式計算允許一臺計算機將其某些工作委托給另一臺計算機,后者-例如一有可能更適于執(zhí)行該工作。
客戶-服務(wù)器計算的益處,由于使用了稱為面向?qū)ο蟮某绦蛟O(shè)計(OOP)這種著名的計算機程序設(shè)計技術(shù),已經(jīng)進一步得到加強。面向?qū)ο蟮某绦蛟O(shè)計允許客戶機與服務(wù)器位于不同的(異類的)“平臺”。平臺是計算機用來進行工作的特定硬件-軟件-操作系統(tǒng)-通訊協(xié)議的一種組合。OOP允許客戶應(yīng)用程序和服務(wù)器應(yīng)用程序在它們自己的平臺上運行,而無須考慮客戶應(yīng)用程序的工作請求將如何與服務(wù)器應(yīng)用程序通信并被接受。同樣,服務(wù)器應(yīng)用程序無須考慮OOP系統(tǒng)將如何接收、轉(zhuǎn)換服務(wù)器應(yīng)用程序的處理結(jié)果并將其傳送回發(fā)出請求的客戶應(yīng)用程序。
OOP技術(shù)如何與異類客戶-服務(wù)器系統(tǒng)結(jié)合,其細(xì)節(jié)在美國專利號5,440,744和歐洲專利公開申請?zhí)朎P0677,943A2中有所解釋。本文引用這兩篇公開文獻作為參考。不過,下文將給出一例基本體系結(jié)構(gòu),以利讀者有上下文來理解本發(fā)明的環(huán)境。


圖1所示,客戶機10(例如可以是一臺安裝了IBMOS/2操作系統(tǒng)的個人電腦)有一個應(yīng)用程序40在其操作系統(tǒng)上運行(“IBM”和“OS/2”是IBM公司的商標(biāo))。應(yīng)用程序40將定期地要求將工作在服務(wù)器計算機20上執(zhí)行,并且/或者將數(shù)據(jù)從服務(wù)器20返回,供應(yīng)用程序40以后使用。服務(wù)器計算機20例如可以是一個運行IBM的MVS操作系統(tǒng)的高能主計算機(MVS也是IBM公司的商標(biāo))。就本發(fā)明來說,要求由服務(wù)器執(zhí)行通訊訪問的請求,是用戶與第一個應(yīng)用程序40的交互作用提出的,還是應(yīng)用程序40不依賴用戶的交互作用而獨立操作、在程序運行期間自動提出請求的,這對于本發(fā)明來說無關(guān)緊要。
當(dāng)客戶計算機10希望提出一個請求,要求服務(wù)器計算機20的服務(wù)時,第一應(yīng)用程序40向第一邏輯裝置50通知所要求的服務(wù)。通知方法例如是,將某個遠(yuǎn)程過程的名稱連同一列輸入和輸出參數(shù)一起發(fā)送給第一邏輯裝置50。第一邏輯裝置50然后處理這樣的任務(wù),即通過查閱在存儲器60中存儲的對可用通訊服務(wù)的定義,建立與第二計算機的必要通訊。所有可能的服務(wù)都被定義成一個對象類內(nèi)聚框架(cohesive framework of object classess),這些類(class)是從一個單一對象類導(dǎo)出的。用這種方法來定義服務(wù)在效能和可重用性方面具有很多優(yōu)點。
為了建立與服務(wù)器20的必要通訊,第一邏輯裝置50首先判斷需要使用框架中的哪個對象類,然后創(chuàng)建該對象的一個實例(instance);向該對象發(fā)送一個信息,以使該對象調(diào)用它的一個子程序(method)。其結(jié)果是通過連接裝置80建立了與服務(wù)器計算機20的鏈路,隨后發(fā)送一個請求到第二邏輯裝置90。
第二邏輯裝置90將請求傳遞到服務(wù)器計算機20上運行的第二應(yīng)用程序100(本文以下稱為服務(wù)應(yīng)用程序),以便服務(wù)應(yīng)用程序100能執(zhí)行該請求要求的特定任務(wù),例如運行一個數(shù)據(jù)檢索過程。該任務(wù)一旦完成,服務(wù)應(yīng)用程序可能需要將結(jié)果發(fā)送回第一計算機10。服務(wù)應(yīng)用程序100在執(zhí)行請求任務(wù)期間以及在向第一計算機10反饋結(jié)果時,與第二邏輯裝置90交互作用。第二邏輯裝置90建立對象的實例,并在服務(wù)器應(yīng)用程序100要求時,按要求調(diào)用這些對象的適當(dāng)子程序。對象實例是根據(jù)存儲器110中存儲的對象類內(nèi)聚框架創(chuàng)建的。
由于采用以上技術(shù),客戶應(yīng)用程序40就不向通訊體系結(jié)構(gòu)暴露。此外,服務(wù)應(yīng)用程序100是通過為其環(huán)境的標(biāo)準(zhǔn)機構(gòu)被調(diào)用的,所以它不知道自己正被遠(yuǎn)程調(diào)用。
對象管理組織(OMG)是一個國際性組織,涉及在圖1所示異類平臺上的客戶-服務(wù)器計算的各個方面。OMG已經(jīng)發(fā)布了客戶計算機(例如10)與服務(wù)器計算機(例如20)通訊(以O(shè)OP形式)的公開標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)中有一部分定義了一種對象請求代理器(ORB-Object Request Broker),它起著客戶機與服務(wù)器計算機之間面向?qū)ο蟮臉蚵返淖饔?。ORB從面向?qū)ο蟮膱?zhí)行細(xì)節(jié)中斷開客戶和服務(wù)器應(yīng)用程序的連接,至少執(zhí)行第一第二邏輯裝置50與90以及連接裝置80的部分工作。
圖2表示這種系統(tǒng)的常規(guī)體系結(jié)構(gòu)。一旦客戶請求經(jīng)過對象請求代理器21進入服務(wù)器,對象請求代理器就尋找能執(zhí)行請求的某個服務(wù)器對象,并將請求發(fā)送給該服務(wù)器對象的對象適配器22(也由OMG標(biāo)準(zhǔn)定義),請求被存儲在對象適配器的緩沖器中,等待由服務(wù)器對象處理。服務(wù)器對象有多個并行執(zhí)行線程(23a、23b、23c),服務(wù)器對象可以在其中任何線程上執(zhí)行自己的一個實例。這樣,服務(wù)器對象就可以同時處理多個請求。對象適配器22負(fù)責(zé)查看并行的執(zhí)行線程中哪個準(zhǔn)備好執(zhí)行另一個請求,并將位于緩沖器外出端的請求分配給下一個可用執(zhí)行線程。這在上述美國專利中被描述成服務(wù)器將排隊請求分派給執(zhí)行線程的“分派”機制。
圖2的OMG標(biāo)準(zhǔn)服務(wù)器體系結(jié)構(gòu)特別適用于事務(wù)處理領(lǐng)域。計算機實現(xiàn)的事務(wù)處理系統(tǒng)在許多產(chǎn)業(yè)中被用于執(zhí)行重要的商業(yè)任務(wù)。一個事務(wù)定義一個單一工作單元,它要么完全被完成,要么就根本不執(zhí)行。以銀行自動柜員機為例,如果有顧客欲從自動柜員機取款,則送出鈔票、減少機器中的現(xiàn)款余額、減少客戶的銀行帳戶余額諸動作,要么必須全部發(fā)生,要么哪一個都不得發(fā)生。這些子動作中無論哪個發(fā)生錯誤,都會導(dǎo)致記錄與實際不符的后果。
分布式事務(wù)處理涉及的事務(wù),影響到多處物理或邏輯位置的資源。在上面的例子中,事務(wù)既影響自動柜員機管理的資源,也影響銀行主計算機管理的銀行收支記錄。這類事務(wù)牽涉到一個特定的客戶計算機(例如圖1的10)與另一個特定的服務(wù)器計算機(例如圖1的20)就服務(wù)器處理的一系列客戶請求進行的通訊。
在典型的客戶-服務(wù)器系統(tǒng)中,客戶系統(tǒng)和服務(wù)器系統(tǒng)對這類事務(wù)的總體處理各自都有工作。此外,同一時間可能會有許多不同的客戶試圖使用同一服務(wù)器來處理各自的事務(wù)。例如,許多不同的ATM機(客戶系統(tǒng))可能會試圖同時開始事務(wù)以訪問在銀行大型中央服務(wù)器上運行的流行數(shù)據(jù)庫程序中的數(shù)據(jù)。在這些情況下,服務(wù)器必須能夠隔開這些并發(fā)事務(wù),以防它們彼此影響。就是說,在一個事務(wù)處理完(事務(wù)的所有部分都了結(jié),或者所有部分都放棄)之前,其它試圖訪問相同服務(wù)器對象的事務(wù)必須被迫等待。
例如,如果在城市一邊一家銀行的ATM機上,丈夫試圖將$2000從家庭的支票帳戶轉(zhuǎn)到利息更高的家庭存款帳戶,與此同時,在城市另一邊的(不同一家銀行所有的)ATM機上,其太太正試圖執(zhí)行同樣的事務(wù),則服務(wù)器必須能夠有效地處理這種情況,使這兩個并發(fā)事務(wù)不會對擁有該數(shù)據(jù)庫服務(wù)器的銀行產(chǎn)生問題。
解決這種問題的典型方法是,服務(wù)器數(shù)據(jù)庫程序?qū)Σl(fā)訪問進行事務(wù)鎖定(transactional locking)。就是說,一旦第一個客戶(例如該丈夫的ATM)請求訪問數(shù)據(jù)庫中存儲的家庭帳戶數(shù)據(jù),服務(wù)器的數(shù)據(jù)庫管理系統(tǒng)(DBMS)就鎖定訪問。然后,盡管太太的事務(wù)已經(jīng)并發(fā)地提出了請求,但是丈夫的事務(wù)會繼續(xù)獨立地得到處理。太太的客戶ATM無權(quán)訪問該數(shù)據(jù),因為丈夫的客戶ATM已經(jīng)對該數(shù)據(jù)上了鎖。
在服務(wù)器應(yīng)用程序中(即DBMS中)設(shè)置的并發(fā)控制功能,對于上述一類的數(shù)據(jù)庫服務(wù)器來說,運作得還不錯,這是因為在這些服務(wù)器的管理系統(tǒng)軟件中已經(jīng)融入了復(fù)雜的鎖定技術(shù)。然而,如果上述系統(tǒng)要使用其它類型的應(yīng)用程序,就要求服務(wù)器應(yīng)用程序的程序員在編寫面向?qū)ο蟮某绦蚴菍?fù)雜的鎖定方案加入其程序中。此外,程序員還必須深入了解事務(wù)處理理論,以便能夠在程序的并發(fā)控制內(nèi)容中建立適當(dāng)?shù)氖聞?wù)處理上下文。
為了解決這個問題,IBM公司1997年1月25日申請了一個專利(英國專利申請?zhí)?701566.3),在該專利公開的方法中,事務(wù)鎖定在ORB(圖2的21)內(nèi)執(zhí)行。就是說,該方法在各客戶請求向?qū)ο筮m配器22傳送途中經(jīng)過ORB21時,判斷是否有必要為服務(wù)器資源上鎖,如果與當(dāng)前保留的鎖不沖突,就為這些資源上鎖。如果存在沖突,則新來的請求必須等待,直到當(dāng)前保留的沖突鎖(被以前的請求)釋放。
然而,在上述這兩種現(xiàn)有技術(shù)方法中,要進行并發(fā)控制就必須為服務(wù)器資源上鎖。這種上鎖的步驟如下所述。首先,將新來的請求分派到可用的線程,創(chuàng)建服務(wù)器對象的一個實例。第二,為該線程獲得本地存儲器來存儲服務(wù)器對象的該實例。第三,將服務(wù)器對象相聯(lián)的程序和數(shù)據(jù)寫入該存儲器。第四,訪問用于執(zhí)行的相關(guān)文件。最后,在執(zhí)行上述四個步驟之后,為該服務(wù)器對象上鎖,以確保不允許以后的請求與該先到的請求對該服務(wù)器對象的資源的訪問產(chǎn)生沖突。對于下一個分派的請求,執(zhí)行前四個步驟,如果該請求要求訪問被鎖定的資源,則該請求必須等待,直到該服務(wù)器對象的鎖被第一個請求釋放。
用鎖來執(zhí)行并發(fā)控制的結(jié)果是經(jīng)常使中央處理機單元(CPU)資源得不到有效利用,在并發(fā)請求的數(shù)目增加時尤其如此。例如,假設(shè)2000個用戶都共用同一個匯率對象,其中1999個客戶要獲得某個人們經(jīng)常關(guān)心的匯率(例如美元對英鎊)的最新值,另一個用戶要更新該匯率的值。如果采用上鎖的方法,則要用到2000個線程,要分配2000個本地存儲器存儲區(qū)。要分派這么多請求到線程、獲得這么多存儲區(qū)、寫入大量程序、訪問大量文件,就需要很大數(shù)目的CPU處理周期。所以,本領(lǐng)域極其需要有一種更有效的方法來分派客戶請求。
本發(fā)明的一個方面是,提供一種在面向?qū)ο蟮漠愵惪蛻?服務(wù)器計算環(huán)境中分派客戶請求供服務(wù)器對象執(zhí)行的裝置,該裝置包含一個存儲請求的緩沖器,緩沖器有一個輸入端和一個輸出端,前者與一個向該裝置輸送客戶請求的通訊通道相連;與緩沖器輸出端相連的多個執(zhí)行線程;一個語義并發(fā)控制裝置,其作用之一是,檢查緩沖器中某請求的語義以及多個并行的執(zhí)行線程中的任何執(zhí)行線程上當(dāng)前正被執(zhí)行的各請求的語義,其作用之二是,如果對請求的語義檢查表明,從緩沖器向執(zhí)行線程分派請求會導(dǎo)致對服務(wù)器對象的資源的訪問沖突,則推遲這種分派。
最好是,緩沖器包含在對象適配器內(nèi)。進一步最好是,通訊通道中包括一個對象請求代理器。進一步最好是,語義并發(fā)控制裝置在判斷分派緩沖器中的一個請求是否與已經(jīng)分派給線程的請求沖突時,要考慮服務(wù)器對象的狀態(tài)。
本發(fā)明的第二個方面是,提供一種在面向?qū)ο蟮漠愵惪蛻?服務(wù)器計算環(huán)境中分派客戶請求供服務(wù)器對象執(zhí)行的方法,該方法包含以下步驟檢查存儲請求的緩沖器中的某請求的語義,其中該緩沖器有一個輸入端和一個輸出端,前者與一個向本發(fā)明裝置傳輸客戶請求的通訊通道相連;檢查與緩沖器輸出端相連的多個并行的執(zhí)行線程中的任何執(zhí)行線程上當(dāng)前正被執(zhí)行的各請求的語義;如果對請求的語義檢查表明,從緩沖器向執(zhí)行線程分派請求會導(dǎo)致對服務(wù)器對象的資源的訪問沖突,則推遲這種分派。
本發(fā)明的第三個方面是,提供一種計算機程序產(chǎn)品,它在計算機上運行時,執(zhí)行本發(fā)明第二個方面的方法。
因此,運用本發(fā)明,由于沒有必要對服務(wù)器對象資源加鎖,于是服務(wù)器對象就能對在服務(wù)器處收到的客戶請求更高效執(zhí)行并發(fā)控制,節(jié)省大量的CPU處理周期。具體來說,如果上鎖,則緩沖器中的所有請求都被分派給各線程,存儲器被分配給每個分派的請求,對每個分派的請求發(fā)生其它的相關(guān)處理。然而,運用本發(fā)明,從緩沖器分派一個請求(以及為該請求分配存儲器)只在判定該請求對服務(wù)器對象資源的訪問不會與線程上當(dāng)前正在執(zhí)行的其它請求產(chǎn)生沖突時才發(fā)出。
要更好地理解上述發(fā)明,可以閱讀下文結(jié)合以下各附圖對一個最佳實施例的詳細(xì)說明。
圖1的框圖表示一種已知的采用對象技術(shù)的異類客戶-服務(wù)器體系結(jié)構(gòu),本發(fā)明可應(yīng)用到其上下文。
圖2是按照常規(guī)設(shè)計的一種服務(wù)器體系結(jié)構(gòu)的框圖。
圖3是按照本發(fā)明一個最佳實施例的一種服務(wù)器體系結(jié)構(gòu)的框圖。
圖4是表示按照本發(fā)明一個最佳實施例的處理步驟的一個流程圖。
在圖3的最佳實施例中,服務(wù)器進程接收的來自客戶進程的請求,首先由服務(wù)器的對象請求代理器31接收。ORB31然后將以某服務(wù)器對象為目的地的請求傳遞到該服務(wù)器對象的對象適配器32。該服務(wù)器對象有多個并行的執(zhí)行線程33a、33b、33c,各執(zhí)行線程上能并行運行該服務(wù)器對象的不同實例,以便執(zhí)行大量的客戶請求。這些與上述的圖2表示的現(xiàn)有技術(shù)類似。
根據(jù)圖3表示的本發(fā)明的最佳實施例,在圖2表示的現(xiàn)有技術(shù)中附加了另外一個軟件單元。這一附加軟件單元是并發(fā)控制單元34,它從對象適配器32接收一個輸入,也從各執(zhí)行線程33a~33c接收輸入并向?qū)ο筮m配器32提供一個輸出。并發(fā)控制單元34執(zhí)行的功能保證,如果將對象適配器32中的某客戶請求分派給某執(zhí)行線程會導(dǎo)致對服務(wù)器對象的資源的訪問沖突,則不將該客戶請求分派給該執(zhí)行線程。
在以下為說明本最佳實施例的操作而描述的例子中,服務(wù)器對象代表一個銀行帳戶。于是,以下討論的各種請求都是要訪問某銀行帳戶的請求。有一個排隊請求是來自某客戶ATM(自動柜員機)要求從該帳戶提取資金的請求。發(fā)出該請求的請求人是該帳戶的所有人,希望提取一些資金。發(fā)出第二個排隊請求的是一個銀行官員,他請求查詢該銀行帳戶的透支數(shù)額(可能該帳戶上的余額快要接近零,因此該銀行官員擔(dān)心該帳戶帳面會發(fā)生赤字)。第三個排隊請求來自另一個客戶ATM,目的是查看該帳戶的余額。發(fā)出該請求的是帳戶所有人的太太,她在城中與所有人不同地點的另一個ATM上。
并發(fā)控制單元34接受輸入對象適配器32中緩沖器頂部的請求(即隊列中下一個要分派給執(zhí)行線程33a、33b或33c的請求),以確定請求的語義。就是說,并發(fā)控制單元34要確定,該請求是對該銀行帳戶對象請求讀訪問,還是對該銀行帳戶對象請求寫訪問,或者既不是對該銀行帳戶對象請求讀訪問,又不是對該銀行帳戶對象請求寫訪問。
并發(fā)控制單元34也從線程33a、33b和33c接受輸入,以確定當(dāng)前正在線程上執(zhí)行的請求的語義。就是說,并發(fā)控制單元34要確定,當(dāng)前正在線程上執(zhí)行的各請求涉及的是對該銀行帳戶對象請求讀訪問,還是對該銀行帳戶對象請求寫訪問,或者既不是對該銀行帳戶對象請求讀訪問,又不是對該銀行帳戶對象請求寫訪問。
接著,并發(fā)控制單元34將對象適配器32中緩沖器頂部的請求的語義,與當(dāng)前正在線程(33a、33b、33c)上執(zhí)行的各請求的語義進行比較。并發(fā)控制單元34只有在認(rèn)定如果將服務(wù)器適配器32中頂部的請求分派給某可用線程不會導(dǎo)致對服務(wù)器對象的資源的訪問沖突時,才將該客戶請求分派給該可用線程。
例如,如果緩沖器頂部的請求是太太要求查看銀行帳戶余額的請求,則并發(fā)控制單元34檢查該請求的語義后確定這是一個讀請求。該請求的目的僅僅是讀銀行帳戶的余額(而不會改變數(shù)據(jù)庫中該帳戶相聯(lián)的任何數(shù)據(jù)的值)。假設(shè)現(xiàn)在只有一個請求正在某線程(假設(shè)是33a)上執(zhí)行,即銀行官員要求查看該帳戶上預(yù)定的透支,并發(fā)控制單元34則檢查該請求的語義后確定這又是一個讀請求(不必改變?nèi)魏未鎯?shù)據(jù),只是將透支數(shù)目返回給該官員)。因為這兩個請求都是讀請求,所以并發(fā)控制單元34就將對象適配器32中該頂部請求分派給其它某個線程(例如是33b)。
然而,如果當(dāng)前正在線程33a上執(zhí)行是帳戶所有人要求取款的請求,對象適配器32的頂部請求是太太要求查看銀行帳戶余額的請求,執(zhí)行結(jié)果則不一樣。因為當(dāng)前正在線程33a上執(zhí)行的請求表明它是一個寫請求(因為其結(jié)果是減少該銀行帳戶的余額),所以對象適配器中緩沖器頂部的請求(其目的是讀同一個余額)就不被分派給線程,而是被迫等待,直到線程33a上的請求執(zhí)行完成。
本發(fā)明的最佳實施例執(zhí)行的步驟如圖4的流程圖所示。
在步驟4l,并發(fā)控制單元34檢查排在對象適配器32中緩沖器頂部的請求(該請求是下一個由緩沖器分派的請求)的語義。就是說,并發(fā)控制單元34要確定該請求是請求對服務(wù)器對象資源讀訪問,還是請求對服務(wù)器對象資源寫訪問。
步驟42,并發(fā)控制單元34檢查當(dāng)前正在線程33a、33b、33c上執(zhí)行的各請求的語義。就是說,并發(fā)控制單元34要確定執(zhí)行請求正在執(zhí)行是對服務(wù)器對象資源讀訪問,還是對服務(wù)器對象資源寫訪問。
步驟43,并發(fā)控制單元34用其在步驟41和42所收集的信息來確定,該頂部請求是可以被分派(步驟44)給一個可用執(zhí)行線程,還是應(yīng)當(dāng)讓其等待(步驟45),直到至少有一個當(dāng)前執(zhí)行請求的執(zhí)行完成了對該服務(wù)器對象資源的訪問。其做法是,如果有一個讀請求在緩沖器的頂部等待分派,而所有當(dāng)前執(zhí)行的請求都是讀請求,則可以將該讀請求分派給某個可用線程去并發(fā)執(zhí)行,因為對同一服務(wù)器對象資源的并發(fā)讀操作之間不存在沖突。然而,如果一個寫操作與另一個寫操作或者與讀操作并發(fā)執(zhí)行,則存在沖突。因此,如果分派對象適配器32中的頂部請求會導(dǎo)致后一種情況的發(fā)生,則并發(fā)控制單元34就要推遲分派。
根據(jù)服務(wù)器對象的性質(zhì),并發(fā)控制單元34在決定是否允許分派某請求時,也可以具體考察服務(wù)器對象的狀態(tài)。例如,假設(shè)服務(wù)器對象是這樣一種隊列,其隊列中的每一元素對于讀/寫來說都是可單獨尋址的。來自第一個事務(wù)的請求正在請求讀位于該隊列前面的元素,并且該請求已經(jīng)被分派給執(zhí)行線程。此時,就可以將正在請求向隊列中最后一個元素寫數(shù)據(jù)的(正在等待分派的)第二個請求,并發(fā)地分派給同一個服務(wù)器對象,即使該第二個請求正在請求要寫訪問的,正是(假設(shè)該隊列不是空隊列)第一個請求已經(jīng)被允許進行讀訪問的同一個服務(wù)器對象。這是因為,第二個請求盡管是個寫請求,卻不與第一個請求(這是讀請求)沖突。原因就在該服務(wù)器對象由多個元素組成,這些元素能被不同的請求單獨地訪問而不會彼此沖突。
此外,并發(fā)控制單元34沒有必要總是考慮將緩沖器中的頂部請求作為下一次分派的候選對象。并發(fā)控制單元34可以檢查緩沖器中所有請求和不按順序地挑選請求來分派。
權(quán)利要求
1.一種在面向?qū)ο蟮漠愵惪蛻?服務(wù)器計算環(huán)境中分派客戶請求供服務(wù)器對象執(zhí)行的裝置,該裝置的特征在于包含一個存儲請求的緩沖器,緩沖器有一個輸入端和一個輸出端,前者與一個向該裝置輸送客戶請求的通訊通道相連;與緩沖器輸出端相連的多個并行執(zhí)行線程;一個語義并發(fā)控制裝置,其作用之一是,檢查緩沖器中某請求的語義以及多個并行的執(zhí)行線程中的任何執(zhí)行線程上當(dāng)前正被執(zhí)行的各請求的語義,其作用之二是,如果對請求的語義檢查表明,從緩沖器向執(zhí)行線程分派請求會導(dǎo)致對服務(wù)器對象的資源的訪問沖突,則推遲這種分派。
2.權(quán)利要求1的裝置,其特征在于緩沖器包含在一個對象適配器內(nèi)。
3.權(quán)利要求1的裝置,其特征在于,通訊通道包括一個對象請求代理器。
4.權(quán)利要求1的裝置,其特征在于,語義并發(fā)控制裝置在判斷分派緩沖器中某請求是否與已經(jīng)分派到線程上的請求沖突時,還要考慮服務(wù)器對象的狀態(tài)。
5.一種在面向?qū)ο蟮漠愵惪蛻?服務(wù)器計算環(huán)境中分派客戶請求供服務(wù)器對象執(zhí)行的方法,其特征在于包含以下步驟檢查一個存儲請求的緩沖器中一個請求的語義,其中該緩沖器有一個輸入端和一個輸出端,前者與一個向該裝置輸送客戶請求的通訊通道相連;檢查與緩沖器輸出端相連的多個并行的執(zhí)行線程中的任何執(zhí)行線程上當(dāng)前正被執(zhí)行的各請求的語義;如果對請求的語義檢查表明,從緩沖器向執(zhí)行線程分派請求會導(dǎo)致對服務(wù)器對象的資源的訪問沖突,則推遲這種分派。
6.權(quán)利要求5的方法,其特征在于緩沖器包含在一個對象適配器內(nèi)。
7.權(quán)利要求5的方法,其特征在于,通訊通道包括一個對象請求代理器。
8.一種在計算機可讀介質(zhì)上存儲的計算機程序產(chǎn)品,當(dāng)用于在計算機上運行時,執(zhí)行一種在面向?qū)ο蟮漠愵惪蛻?服務(wù)器計算環(huán)境中分派客戶請求供服務(wù)器對象執(zhí)行的方法,該方法的特征在于包含以下步驟檢查一個存儲請求的緩沖器中一個請求的語義,其中該緩沖器有一個輸入端和一個輸出端,前者與一個向該裝置輸送客戶請求的通訊通道相連;檢查與緩沖器輸出端相連的多個并行的執(zhí)行線程中的任何執(zhí)行線程上當(dāng)前正被執(zhí)行的各請求的語義;如果對請求的語義檢查表明,從緩沖器向執(zhí)行線程分派請求會導(dǎo)致對服務(wù)器對象的資源的訪問沖突,則推遲這種分派。
9.權(quán)利要求8的產(chǎn)品,其特征在于緩沖器包含在一個對象適配器內(nèi)。
10.權(quán)利要求8的產(chǎn)品,其特征在于,通訊通道包括一個對象請求代理器。
全文摘要
本發(fā)明提供一種在面向?qū)ο蟮漠愵惪蛻簟?wù)器計算環(huán)境中分派客戶請求供服務(wù)器對象執(zhí)行的裝置,該裝置包含:一個存儲請求的緩沖器;與緩沖器輸出端相連的多個并行執(zhí)行線程;一個語義并發(fā)控制裝置,作用之一是,檢查緩沖器中某請求的語義以及多個并行的執(zhí)行線程中的任何執(zhí)行線程上當(dāng)前正被執(zhí)行的各請求的語義,作用之二是,如果對請求的語義檢查表明從緩沖器向執(zhí)行線程分派請求會導(dǎo)致對服務(wù)器對象的資源的訪問沖突,則推遲這種分派。
文檔編號G06F9/46GK1225473SQ9812597
公開日1999年8月11日 申請日期1998年12月31日 優(yōu)先權(quán)日1998年2月4日
發(fā)明者T·弗羅因德, I·S·C·豪斯頓 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1