專(zhuān)利名稱(chēng):利用基于信用的令牌來(lái)平衡對(duì)共享資源的訪(fǎng)問(wèn)的方法、系統(tǒng)和計(jì)算機(jī)程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域。更具體地,本發(fā)明涉及對(duì)數(shù)據(jù)處理系統(tǒng)中共享資源的 訪(fǎng)問(wèn)O
背景技術(shù):
共享資源在現(xiàn)代數(shù)據(jù)處理系統(tǒng)中是很常見(jiàn)的。一般說(shuō)來(lái),共享資源包括任何(邏 輯的和/或物理的)組件,其可以由多個(gè)使用者(exploiter)輪流訪(fǎng)問(wèn)。共享資源的一個(gè) 示例是服務(wù)器計(jì)算機(jī)(或者簡(jiǎn)稱(chēng)為服務(wù)器),其向借助于客戶(hù)端計(jì)算機(jī)(或者簡(jiǎn)稱(chēng)為客戶(hù) 端)訪(fǎng)問(wèn)該服務(wù)器的大量用戶(hù)提供相應(yīng)的服務(wù)。上述客戶(hù)端/服務(wù)器結(jié)構(gòu)的典型應(yīng)用是在 SOA(面向服務(wù)的體系架構(gòu))環(huán)境中,例如用于DAM(數(shù)字資產(chǎn)管理)類(lèi)型服務(wù)的實(shí)現(xiàn)。有些可用服務(wù)是免費(fèi)的;然而,大部分服務(wù)的使用是以用戶(hù)的某種支付為條件的。具體地,如US-A-2003/0028653中所描述的,預(yù)付信用可以與每個(gè)用戶(hù)相關(guān)聯(lián);以 這種方式,用戶(hù)被授權(quán)使用特定的服務(wù),直到他的/她的信用耗盡。此文檔提出基于加密令 牌的使用的安全改進(jìn),該加密令牌對(duì)認(rèn)證信息(與用戶(hù)和客戶(hù)端有關(guān))、授權(quán)信息(與授予 的訪(fǎng)問(wèn)級(jí)別有關(guān))和計(jì)費(fèi)信息(與信用和已經(jīng)花費(fèi)的總量有關(guān))進(jìn)行存儲(chǔ);例如,令牌可以 存儲(chǔ)在向用戶(hù)提供的智能卡上。每當(dāng)用戶(hù)期望訪(fǎng)問(wèn)由服務(wù)器提供的應(yīng)用時(shí),令牌便被傳輸 至該服務(wù)器。服務(wù)器對(duì)該令牌進(jìn)行解密,并且使用提取的信息來(lái)驗(yàn)證他的/她的身份、授權(quán) 和剩余信用;如果上述驗(yàn)證結(jié)果是肯定的,則允許該用戶(hù)訪(fǎng)問(wèn)期望的應(yīng)用。繼而,服務(wù)器監(jiān) 測(cè)用戶(hù)對(duì)該應(yīng)用的訪(fǎng)問(wèn);當(dāng)剩余信用耗盡時(shí),服務(wù)器相應(yīng)地警告該用戶(hù),以便他/她可以保 存正在進(jìn)行中的工作并退出該應(yīng)用,或者獲得進(jìn)一步的信用來(lái)繼續(xù)訪(fǎng)問(wèn)該應(yīng)用。在US-A-2006/0271692中也使用了信用的概念,以便對(duì)提交到服務(wù)器的命令的執(zhí) 行進(jìn)行控制。為此目的,信用由數(shù)字集合表示;每個(gè)提交命令包括這些數(shù)字中的一個(gè),以便 僅當(dāng)該數(shù)字位于有效窗口內(nèi)且還未被使用時(shí),對(duì)該提交的命令進(jìn)行處理。以這種方式,服務(wù) 器可以動(dòng)態(tài)地管理信用(通過(guò)擴(kuò)大有效窗口或者縮小有效窗口);而且,無(wú)法重用相同數(shù)字 防止了對(duì)服務(wù)器的泛洪攻擊。類(lèi)似的令牌還可以用于其他目的。例如,US-B-6715082建議在服務(wù)器上存儲(chǔ)不同用戶(hù)的證書(shū);繼而,將令牌與每個(gè) 證書(shū)相關(guān)聯(lián),從而避免用戶(hù)將其再次分離(re-rending)。此外,在US-B-7028090中,向確認(rèn)之后的每個(gè)用戶(hù)發(fā)布令牌;該令牌存儲(chǔ)了在有 限時(shí)間內(nèi)向用戶(hù)授予的特定許可。最后,US-B-6065117公開(kāi)了將令牌用于在服務(wù)器上獲取關(guān)于相應(yīng)客戶(hù)端的狀態(tài)信 肩、ο 在任何情況下,服務(wù)器的問(wèn)題(更一般地,任何共享資源的問(wèn)題)在于它們本質(zhì)上 是有限的。例如,被允許并發(fā)使用每個(gè)服務(wù)的用戶(hù)不能超過(guò)預(yù)定的最大數(shù)量。此限制可能 歸因于主觀約束或者客觀約束。實(shí)際上,服務(wù)器的處理能力決定了可以為使用服務(wù)而建立(在服務(wù)器與客戶(hù)端之間)的工作會(huì)話(huà)的數(shù)量。附加地或者備選地,為了確保服務(wù)質(zhì)量的足 夠水平,或者根據(jù)特定的授權(quán)合約(例如,將服務(wù)的費(fèi)用與并發(fā)用戶(hù)的數(shù)量相聯(lián)系),可以 減少并發(fā)用戶(hù)的數(shù)量。在這方面,通常實(shí)現(xiàn)超時(shí)機(jī)制(其中,當(dāng)相應(yīng)用戶(hù)的不活動(dòng)時(shí)間達(dá)到 預(yù)定閾值時(shí),自動(dòng)關(guān)閉每個(gè)會(huì)話(huà)),以避免服務(wù)器忙于無(wú)用的會(huì)話(huà)。然而,在任何情況下,在 達(dá)到并發(fā)用戶(hù)的最大數(shù)量之后,新用戶(hù)使用該服務(wù)的任何請(qǐng)求都會(huì)被拒絕。這嚴(yán)重地限制了服務(wù)器的可用性;此問(wèn)題在這樣的服務(wù)(諸如DAM類(lèi)型的服務(wù)) 中尤其嚴(yán)重,即,這些服務(wù)在任何情況下(例如,即便在請(qǐng)求的峰值的情況下)都應(yīng)當(dāng)確保 最大可能數(shù)量的不同用戶(hù)對(duì)其的使用。應(yīng)當(dāng)注意,上文所述的需要經(jīng)常要與避免服務(wù)器過(guò) 度超載的對(duì)立請(qǐng)求進(jìn)行平衡。例如,這發(fā)生在每個(gè)會(huì)話(huà)維護(hù)相應(yīng)用戶(hù)的上下文信息時(shí);通 常,該上下文信息借助于復(fù)雜的握手過(guò)程(用于對(duì)用戶(hù)進(jìn)行確認(rèn)和授權(quán))來(lái)收集。因此,每 當(dāng)同一用戶(hù)提交由另一會(huì)話(huà)處理的進(jìn)一步請(qǐng)求時(shí),便應(yīng)當(dāng)重新收集上下文信息(在會(huì)話(huà)關(guān) 閉時(shí),上下文信息便丟失)。
發(fā)明內(nèi)容
總體上,本公開(kāi)是基于如下思想,S卩,定義共享資源的受限特許使用(例如,以信 用隨時(shí)間減少的形式),以用于強(qiáng)制釋放對(duì)共享資源的訪(fǎng)問(wèn)。具體地,本發(fā)明的不同方面提供了如獨(dú)立權(quán)利要求中記載的解決方案。本發(fā)明的 有益實(shí)施方式在從屬權(quán)利要求書(shū)中進(jìn)行描述。更具體地,本發(fā)明的一方面提出了一種用于多個(gè)使用者實(shí)體(諸如客戶(hù)端)對(duì)數(shù) 據(jù)處理系統(tǒng)中的共享資源(諸如服務(wù))進(jìn)行訪(fǎng)問(wèn)的方法。該方法開(kāi)始于將針對(duì)共享資源的 特許使用的特許限制與活動(dòng)實(shí)體集合的每一個(gè)相關(guān)聯(lián)(諸如,以信用的形式)。針對(duì)每個(gè)活 動(dòng)實(shí)體測(cè)量使用指示符;該使用指示符表示活動(dòng)實(shí)體對(duì)共享資源的實(shí)際使用(諸如,由其 接收到期望響應(yīng)的次數(shù)來(lái)定義)。該方法通過(guò)接收用于由活動(dòng)實(shí)體中的一個(gè)新實(shí)體對(duì)共享 資源進(jìn)行訪(fǎng)問(wèn)的訪(fǎng)問(wèn)請(qǐng)求而繼續(xù)。該方法檢測(cè)共享資源的臨界狀況(諸如,在沒(méi)有可用于 使用服務(wù)的句柄時(shí))。釋放向被允許的實(shí)體集中的至少一個(gè)實(shí)體(當(dāng)前正在訪(fǎng)問(wèn)共享資源 的實(shí)體)授予的訪(fǎng)問(wèn);這響應(yīng)于該訪(fǎng)問(wèn)請(qǐng)求處于臨界狀況并且新活動(dòng)實(shí)體的使用指示符沒(méi) 有達(dá)到特許限制而發(fā)生。繼而向該新活動(dòng)實(shí)體授予訪(fǎng)問(wèn)。通常,該方法在達(dá)到被允許對(duì)共享資源進(jìn)行的最大并發(fā)訪(fǎng)問(wèn)數(shù)量之后,查找應(yīng)用。優(yōu)選地,將相應(yīng)使用指示符與特許限制最接近(例如,具有最低信用)的訪(fǎng)問(wèn)選作 將要釋放的訪(fǎng)問(wèn)。作為進(jìn)一步的改進(jìn),訪(fǎng)問(wèn)的強(qiáng)制釋放被調(diào)節(jié)(例如,根據(jù)相應(yīng)實(shí)體的活動(dòng))。所提出的解決方案可以在具有客戶(hù)端/服務(wù)器架構(gòu)的系統(tǒng)中實(shí)現(xiàn)(其中為每個(gè)訪(fǎng) 問(wèn)分配工作會(huì)話(huà)的句柄)。通常,上下文信息與每個(gè)句柄相關(guān)聯(lián)(諸如在有狀態(tài)應(yīng)用中)。作為進(jìn)一步的改進(jìn),當(dāng)相應(yīng)客戶(hù)端的不活動(dòng)指示符達(dá)到閾值(即,超時(shí))時(shí),釋放 每個(gè)句柄。在這種情況下,訪(fǎng)問(wèn)的強(qiáng)制釋放可以限制在不活動(dòng)指示符超出另一閾值(位于上 文所述閾值之前)的客戶(hù)端中。本發(fā)明的實(shí)現(xiàn)基于令牌的使用(用于向相應(yīng)客戶(hù)端授權(quán)訪(fǎng)問(wèn));該令牌與用于保存客戶(hù)端在不同會(huì)話(huà)之間的上下文信息的簡(jiǎn)檔相關(guān)聯(lián)。用于進(jìn)一步改進(jìn)解決方案的方式是在創(chuàng)建每個(gè)令牌時(shí)分配句柄(如果可能的 話(huà))°優(yōu)選地,在達(dá)到使用限制(諸如另一個(gè)超時(shí))之后,釋放每個(gè)令牌。本發(fā)明的另一方面提出了相應(yīng)的服務(wù)。本發(fā)明的又一方面提出了用于執(zhí)行上述方法的計(jì)算機(jī)程序。本發(fā)明的不同方面提出了相應(yīng)的系統(tǒng)。
通過(guò)參照將結(jié)合附圖閱讀的、僅以非限制指示的方式給出的如下詳細(xì)描述,將最 好地理解本發(fā)明本身及其進(jìn)一步的特征和優(yōu)勢(shì),其中圖1是可以在其中應(yīng)用根據(jù)本發(fā)明一個(gè)實(shí)施方式的解決方案的數(shù)據(jù)處理系統(tǒng)示 意框圖;圖2-圖3是與根據(jù)本發(fā)明一個(gè)實(shí)施方式的解決方案的應(yīng)用有關(guān)的一個(gè)示例性場(chǎng) 景的說(shuō)明性時(shí)序圖;圖4示出了可以用于實(shí)現(xiàn)根據(jù)本發(fā)明一個(gè)實(shí)施方式的解決方案主要軟件組件;以 及圖5A-圖5B示出了對(duì)與根據(jù)本發(fā)明一個(gè)實(shí)施方式的解決方案的實(shí)現(xiàn)有關(guān)的活動(dòng) 流程進(jìn)行描述的示意圖。
具體實(shí)施例方式具體參照?qǐng)D1,其示出了分布式數(shù)據(jù)處理系統(tǒng)100。系統(tǒng)100具有通常基于互聯(lián)網(wǎng) 的客戶(hù)端/服務(wù)器架構(gòu)?;ヂ?lián)網(wǎng)包括數(shù)百萬(wàn)的服務(wù)器105 (圖中僅出了一個(gè)),其通過(guò)全球 通信網(wǎng)絡(luò)110進(jìn)行互聯(lián)。每個(gè)服務(wù)器105提供一個(gè)或多個(gè)服務(wù)??蛻?hù)端115的用戶(hù)對(duì)服 務(wù)器105進(jìn)行訪(fǎng)問(wèn)(通過(guò)附圖中未示出的、作為用于互聯(lián)網(wǎng)的訪(fǎng)問(wèn)提供者進(jìn)行操作的計(jì)算 機(jī)),以便使用提供的服務(wù)。例如,服務(wù)遵守S0A規(guī)范。在這種情況下,每個(gè)服務(wù)包括單機(jī)基本任務(wù),其可以通 過(guò)經(jīng)過(guò)良好定義的、獨(dú)立于其底層實(shí)現(xiàn)的接口來(lái)調(diào)用;S0A環(huán)境本質(zhì)上是無(wú)狀態(tài)的,這意味 著服務(wù)的每次調(diào)用都是自恰的(對(duì)先前的處理沒(méi)有任何了解)。這些服務(wù)可以是DAM類(lèi) 型-支持?jǐn)?shù)字資產(chǎn)(諸如照片、視頻、音樂(lè)等)的采集、存儲(chǔ)和獲取。例如,每個(gè)服務(wù)可以利 用被封裝(wrap)以便在S0A環(huán)境中工作的舊有應(yīng)用來(lái)實(shí)現(xiàn)。舊有應(yīng)用可能反而是有狀態(tài) 的,這意味著要為不同的處理維護(hù)每個(gè)用戶(hù)的上下文信息。通常,上下文信息包括個(gè)人數(shù)據(jù) (與用戶(hù)和/或相應(yīng)的客戶(hù)端有關(guān)),和狀態(tài)信息(與處理的當(dāng)前進(jìn)展有關(guān))。通常,個(gè)人數(shù) 據(jù)借助于握手過(guò)程進(jìn)行收集,其允許對(duì)用戶(hù)的身份和他的/她的用于使用期望服務(wù)的授權(quán) 進(jìn)行驗(yàn)證。具體地,服務(wù)器105包括由并行連接到系統(tǒng)總線(xiàn)120的若干單元形成的計(jì)算機(jī)。具 體地,一個(gè)或者多個(gè)微處理器(PP) 125控制服務(wù)器105的操作;RAM 130直接用作微處理 器125的工作存儲(chǔ)器,并且ROM 135存儲(chǔ)用于服務(wù)器105的引導(dǎo)程序的基本代碼。若干外 設(shè)單元聚集在本地總線(xiàn)140周?chē)?借助于各自的接口)。具體地,海量存儲(chǔ)器包括一個(gè)或者多個(gè)硬盤(pán)145和用于讀?、?ROM 155的驅(qū)動(dòng)150。而且,服務(wù)器105包括輸入單元160 (例 如,鍵盤(pán)和鼠標(biāo))和輸出單元165(例如,監(jiān)視器和打印機(jī))。適配器170用于將服務(wù)器105 向網(wǎng)絡(luò)110連接。橋單元175將系統(tǒng)總線(xiàn)120與本地總線(xiàn)140對(duì)接。每個(gè)微處理器125和 橋單元175可以作為請(qǐng)求訪(fǎng)問(wèn)系統(tǒng)總線(xiàn)120以傳輸信息的主代理進(jìn)行操作。仲裁器180利 用對(duì)系統(tǒng)總線(xiàn)120的互斥來(lái)管理訪(fǎng)問(wèn)的授予。圖2示出了關(guān)于訪(fǎng)問(wèn)上文所述服務(wù)器的一般用戶(hù)隨時(shí)間(t)的活動(dòng)的示例性場(chǎng) 景。針對(duì)并發(fā)使用由服務(wù)器提供的服務(wù)的每個(gè)(被允許的)用戶(hù)建立相應(yīng)的工作會(huì)話(huà)并 分配連接句柄,該連接句柄用于訪(fǎng)問(wèn)用戶(hù)的上下文信息。用戶(hù)通過(guò)提交一系列的服務(wù)請(qǐng)求 (例如,用于上傳、搜索或者下載特定數(shù)字資產(chǎn))來(lái)與服務(wù)器交互。服務(wù)器處理每個(gè)服務(wù)請(qǐng) 求(通過(guò)利用用戶(hù)的上下文信息,該上下文信息繼而相應(yīng)地更新);例如,這涉及存儲(chǔ)上傳 的數(shù)字資產(chǎn)、搜索可用的數(shù)字資產(chǎn),或者獲取所需的數(shù)字資產(chǎn)(針對(duì)每個(gè)執(zhí)行的操作向用 戶(hù)收費(fèi))。服務(wù)器繼而向用戶(hù)返回相應(yīng)的響應(yīng);通常,該響應(yīng)包括上傳的返回代碼、滿(mǎn)足期 望搜索的數(shù)字資產(chǎn)列表,或者所選的數(shù)字資產(chǎn)。當(dāng)用戶(hù)或者服務(wù)器關(guān)閉會(huì)話(huà)時(shí)(例如,在用 戶(hù)已經(jīng)獲得了所有期望的信息,或者已經(jīng)達(dá)到了花費(fèi)限制之后),句柄被釋放,相應(yīng)的上下 文信息被丟棄。在任何情況下,當(dāng)用戶(hù)在沒(méi)有與服務(wù)器交互的情況下保持不活動(dòng)(即,在 已經(jīng)分配了句柄之后,或者在已經(jīng)接收到先前服務(wù)請(qǐng)求的響應(yīng)之后,沒(méi)有提交過(guò)服務(wù)請(qǐng)求) 的時(shí)段超過(guò)預(yù)定超時(shí)時(shí)間Lh(諸如,15-30分鐘)時(shí),句柄被自動(dòng)釋放。例如,該圖分別示出 了從開(kāi)始時(shí)間S1-S4持續(xù)到結(jié)束時(shí)間E1-E4的四個(gè)句柄H1-H4。服務(wù)器可以管理并發(fā)句柄的最大數(shù)量(例如,大約數(shù)百個(gè));一旦達(dá)到句柄的此最 大數(shù)量,便沒(méi)有更多的句柄可以分配給想要使用該服務(wù)的新用戶(hù)。在附圖中示出的極簡(jiǎn)化 示例中,假設(shè)句柄的最大數(shù)量是4,在時(shí)間S4達(dá)到此限制。因此,在時(shí)間S3之后,將拒絕新 用戶(hù)的任何服務(wù)請(qǐng)求,服務(wù)器將保持為不可用(對(duì)于新用戶(hù)而言),直到句柄H1-H4之一被 釋放;在該討論的示例中,此不可用時(shí)間Ti將持續(xù)到時(shí)間E2(這時(shí)句柄H2被釋放)。為了緩解此問(wèn)題,在根據(jù)本發(fā)明一個(gè)實(shí)施方式的解決方案中(下文將詳細(xì)描述), 向每個(gè)(活動(dòng)的)用戶(hù)授予對(duì)服務(wù)器的特許使用;然而,該特許使用會(huì)根據(jù)用戶(hù)對(duì)服務(wù)器的 實(shí)際使用而加以限制。例如,此限制由如下信用來(lái)定義,該信用會(huì)在用戶(hù)每次接收到針對(duì)提 交到服務(wù)器的服務(wù)請(qǐng)求的響應(yīng)時(shí)減少。當(dāng)沒(méi)有句柄可用時(shí)(因?yàn)橐呀?jīng)達(dá)到了句柄的最大數(shù) 量),該信用用來(lái)平衡服務(wù)的使用。在這種情況下,如果相應(yīng)信用沒(méi)有耗盡的新用戶(hù)提交服 務(wù)請(qǐng)求,則服務(wù)器會(huì)強(qiáng)制釋放當(dāng)前分配給另一用戶(hù)的句柄,該釋放的句柄繼而被分配給該 新的用戶(hù)(而在其他方式中,該服務(wù)請(qǐng)求照例會(huì)被拒絕)。上文所述特許使用(用于強(qiáng)制釋放句柄)極大地提高了服務(wù)器的可用性;該優(yōu)勢(shì) 在這樣的服務(wù)(諸如,DAM類(lèi)型的服務(wù))中尤其明顯,其中該服務(wù)應(yīng)當(dāng)在任何情況下(例如, 即使在請(qǐng)求的峰值的情況下)確保最大可能數(shù)量的不同用戶(hù)對(duì)其的使用。然而,對(duì)此特許使用設(shè)置的限制(通過(guò)信用隨時(shí)間減少)避免了可能由句柄的連 續(xù)釋放所導(dǎo)致的服務(wù)器的任何過(guò)度超載。換句話(huà)說(shuō),所提出的解決方案在服務(wù)器的高可用性與其低開(kāi)銷(xiāo)的相反需求之間提 供了極好的權(quán)衡。例如,如圖3所示,考慮如下情況句柄HI分配給用戶(hù)Ua,并且句柄H2分配給用 戶(hù)Ub。在時(shí)間tl處,新用戶(hù)Uc提交用于開(kāi)始使用服務(wù)的連接請(qǐng)求。響應(yīng)于此,服務(wù)器執(zhí)
7行握手過(guò)程以對(duì)用戶(hù)Uc的身份和他的/她的授權(quán)進(jìn)行驗(yàn)證;假設(shè)握手過(guò)程成功,向用戶(hù)Uc 授予針對(duì)服務(wù)器所需的訪(fǎng)問(wèn)。為此目的,服務(wù)器為用戶(hù)Uc創(chuàng)建新的訪(fǎng)問(wèn)令牌Kc。該令牌Kc用于訪(fǎng)問(wèn)存儲(chǔ)有握手過(guò)程期間收集的、用戶(hù)Uc的個(gè)人數(shù)據(jù)的簡(jiǎn)檔。該簡(jiǎn)檔還包括向用戶(hù)Uc分派的信用Cc的 當(dāng)前值;該信用Cc初始化為開(kāi)始值Cctl(諸如,大約幾十)。如果可能的話(huà),服務(wù)器立即為令牌Kc分配句柄(此信息保存在相應(yīng)的簡(jiǎn)檔中)。 在所討論的情況下,句柄H3是可用的,從而使其可以被分配給令牌Kc ;為此目的,句柄的上 下文信息利用從令牌Kc的簡(jiǎn)檔加載的、用戶(hù)Uc的個(gè)人數(shù)據(jù)進(jìn)行初始化。此附加特征試圖 使句柄準(zhǔn)備好用于第一服務(wù)請(qǐng)求,該第一服務(wù)請(qǐng)求非常有可能在短時(shí)間內(nèi)由剛被授予對(duì)服 務(wù)器的訪(fǎng)問(wèn)的用戶(hù)提交。每當(dāng)用戶(hù)Uc向服務(wù)器提交服務(wù)請(qǐng)求時(shí),這些服務(wù)請(qǐng)求都借助于句柄H3 (與他的/ 她的令牌Kc相關(guān)聯(lián))進(jìn)行處理,其向用戶(hù)Uc返回(在所討論示例中的時(shí)間t2和t3處)相 應(yīng)的響應(yīng);向用戶(hù)Uc返回每個(gè)響應(yīng)還使得相應(yīng)的信用Cc減1。句柄H3繼而在時(shí)間t4處被 釋放,因?yàn)橐呀?jīng)達(dá)到超時(shí)Lh,而用戶(hù)Uc沒(méi)有提交任何進(jìn)一步的服務(wù)請(qǐng)求;不過(guò),句柄H3的 上下文信息在丟棄之前被保存在令牌Kc的簡(jiǎn)檔中。相同的H3繼而被分配給另一用戶(hù)Ud。句柄的超時(shí)機(jī)制減小了服務(wù)器上競(jìng)爭(zhēng)的可能性,因?yàn)楫?dāng)句柄不再被需要時(shí)(例 如,因?yàn)橄鄳?yīng)的用戶(hù)已經(jīng)從服務(wù)器獲得了期望的所有響應(yīng),但是忘記關(guān)閉會(huì)話(huà)),其會(huì)被釋 放。以這種方式,減小了對(duì)實(shí)現(xiàn)上文所述用于強(qiáng)制釋放句柄的過(guò)程的需求。稍后(在時(shí)間t5處),用戶(hù)Uc向服務(wù)器提交另一服務(wù)請(qǐng)求。在這種情況下,沒(méi)有 為他的/她的令牌Kc分配句柄。因此,服務(wù)器試圖為令牌Kc分配句柄;在所討論的情況 中,句柄H4是可用的,從而使其可以被分配給令牌Kc。為此目的,用戶(hù)Uc的上下文信息從 令牌Kc的簡(jiǎn)檔重新加載。以這種方式,所需的信息立即可用(針對(duì)此收集,不會(huì)給服務(wù)器 造成任何超載)。如上所述,用戶(hù)Uc提交借助于句柄H4進(jìn)行處理的服務(wù)請(qǐng)求;向用戶(hù)Uc返 回(在所討論的示例中為時(shí)間t6、t7和t8處)相應(yīng)的響應(yīng),信用Cc相應(yīng)地減少。當(dāng)達(dá)到 超時(shí)Lh時(shí),繼而在時(shí)間t9處釋放句柄H4,句柄H4的上下文信息保存到令牌Kc的簡(jiǎn)檔中。 該同一句柄H4繼而被分配給又一用戶(hù)Ue0以這種方式,令牌Kc完全與句柄H1-H4解耦合(因?yàn)殡S著時(shí)間的推移,針對(duì)同一 令牌Kc,可以使用不同的句柄H1-H4)。在任何情況下,保存在令牌Kc簡(jiǎn)檔中的上下文信 息(其在創(chuàng)建相應(yīng)令牌時(shí)為該令牌加載)在向服務(wù)器提交的不同服務(wù)請(qǐng)求之間提供了連續(xù) 性(從而避免了啟動(dòng)成本,而該啟動(dòng)成本在借助于握手過(guò)程重新收集上下文信息時(shí)是需要 的)。稍后(在時(shí)間tlO處),用戶(hù)Uc向服務(wù)器提交另一服務(wù)請(qǐng)求。在這種情況下,同樣 沒(méi)有為他的/她的令牌Kc分配句柄;然而,現(xiàn)在沒(méi)有進(jìn)一步的句柄可用(因?yàn)橐呀?jīng)達(dá)到了 最大數(shù)量4)。不過(guò),由于信用Cc沒(méi)有耗盡,所有句柄H1-H4之一被釋放并且被分配給令牌 Kc ;在所討論的示例中,句柄H2(當(dāng)前分配給了用戶(hù)Ub)被釋放并且被分配給令牌Kc。優(yōu)選地,將被釋放的句柄是根據(jù)相應(yīng)用戶(hù)的信用來(lái)選擇的;具體地,服務(wù)器釋放其 用戶(hù)信用最低的句柄。此附加特征避免了懲罰剛被授予對(duì)服務(wù)器進(jìn)行訪(fǎng)問(wèn)的用戶(hù)。如上所述,用戶(hù)Uc提交借助于句柄H2進(jìn)行處理的服務(wù)請(qǐng)求;相應(yīng)的響應(yīng)返回給用 戶(hù)Uc (在所討論的示例中為時(shí)間til和tl2處),信用Cc相應(yīng)地減少-在時(shí)間tl2處降到O。當(dāng)達(dá)到超時(shí)Lh時(shí),繼而在時(shí)間tl3處釋放句柄H2,并且句柄H2的上下文信息保存至令 牌Kc的簡(jiǎn)檔中。同一句柄H2繼而分配給又一用戶(hù)Uf。 稍后(在時(shí)間tl4處),用戶(hù)Uc向服務(wù)器提交另一個(gè)服務(wù)請(qǐng)求。同樣在這種情況 中,沒(méi)有為他的/她的令牌Kc分配句柄,并且沒(méi)有其他句柄可用。然而,現(xiàn)在信用Cc耗盡 了 ;因此,服務(wù)器對(duì)服務(wù)請(qǐng)求的處理被照例拒絕_如圖中的叉所表示的。繼而可見(jiàn),所提出的信用并不是用于啟用/禁用相應(yīng)用戶(hù)對(duì)服務(wù)器的訪(fǎng)問(wèn)(在 本領(lǐng)域中公知的預(yù)付信用中,僅在每個(gè)用戶(hù)的信用未耗盡的情況下,允許他/她訪(fǎng)問(wèn)服務(wù) 器)。相反,當(dāng)一個(gè)或者多個(gè)句柄仍可用時(shí)(對(duì)服務(wù)器的訪(fǎng)問(wèn)可以是免費(fèi)的,或者可以借助 于任何支付技術(shù)進(jìn)行控制),該信用對(duì)于服務(wù)器而言是完全不起作用的。取而代之地,僅當(dāng) 沒(méi)有句柄可用時(shí),才被考慮使用信用來(lái)平衡對(duì)服務(wù)器的訪(fǎng)問(wèn)。優(yōu)選地,如附圖中所示,令牌Kc在預(yù)定超時(shí)Lt (通常遠(yuǎn)長(zhǎng)于用于句柄的超時(shí)Lh) 之后到期(例如,大約幾天)。在這種情況下,令牌Kc被釋放;這涉及丟棄相應(yīng)的簡(jiǎn)檔,并 且釋放與該簡(jiǎn)檔相關(guān)聯(lián)的句柄(如果有的話(huà))。為此目的,可以將指示令牌Kc創(chuàng)建時(shí)間的 時(shí)間戳存儲(chǔ)到其簡(jiǎn)檔中。繼而,將拒絕在令牌Kc到期之后提交的任何進(jìn)一步的服務(wù)請(qǐng)求, 通過(guò)重復(fù)上述握手過(guò)程(用于再次驗(yàn)證用戶(hù)的身份和授權(quán)),繼而為用戶(hù)Uc創(chuàng)建新的令牌, 同一用戶(hù)Uc可以請(qǐng)求重新訪(fǎng)問(wèn)服務(wù)器。此附加特征提高了所提出解決方案的安全性,因?yàn)?其限制了臨時(shí)授予的對(duì)服務(wù)器的訪(fǎng)問(wèn)(針對(duì)每個(gè)用戶(hù)的相同驗(yàn)證)。移至圖4,可以用于實(shí)現(xiàn)上述解決方法的主要軟件組件作為整體表示為標(biāo)號(hào)400。 信息(程序和數(shù)據(jù))通常存儲(chǔ)在硬盤(pán)上,并且當(dāng)程序運(yùn)行時(shí),其與操作系統(tǒng)和其他應(yīng)用程 序(附圖中未示出)一起被(至少部分地)加載到服務(wù)器的工作存儲(chǔ)器中。例如,首先從 ⑶-ROM將程序安裝到硬盤(pán)上。具體地,web服務(wù)器405用于不同用戶(hù)通過(guò)運(yùn)行在相應(yīng)客戶(hù)端上的瀏覽器(附圖 中未示出)來(lái)與服務(wù)器交互。具體而言,web服務(wù)器405接收針對(duì)由一個(gè)或者多個(gè)web應(yīng) 用410提供的服務(wù)(在所述示例中為DAM類(lèi)型的服務(wù))的請(qǐng)求(連接/服務(wù)),并返回相應(yīng) 的響應(yīng)。web服務(wù)器405與調(diào)度器415對(duì)接,該調(diào)度器415對(duì)服務(wù)器上的所有會(huì)話(huà)進(jìn)行管 理。為此目的,調(diào)度器415控制存儲(chǔ)庫(kù)420,該存儲(chǔ)庫(kù)420存儲(chǔ)具有相應(yīng)上下文信息的每個(gè) 已分配句柄。用戶(hù)數(shù)據(jù)庫(kù)425包括被授權(quán)訪(fǎng)問(wèn)服務(wù)器的所有用戶(hù)的個(gè)人數(shù)據(jù),并由調(diào)度器 415使用以在握手過(guò)程期間對(duì)每個(gè)用戶(hù)進(jìn)行驗(yàn)證。調(diào)度器415還控制另一存儲(chǔ)庫(kù)430,其存 儲(chǔ)與相應(yīng)簡(jiǎn)檔一起使用的每個(gè)令牌?,F(xiàn)在考慮圖5A-圖5B,利用方法500來(lái)表示可以在上述系統(tǒng)中實(shí)現(xiàn)的示例性過(guò)程 (用于控制對(duì)服務(wù)器的訪(fǎng)問(wèn))的邏輯流。該方法從黑色開(kāi)始圓圈503開(kāi)始,并且每當(dāng)用于任 何句柄的超時(shí)Lh到期時(shí),便轉(zhuǎn)到框506。例如,此結(jié)果借助于針對(duì)每個(gè)句柄的計(jì)數(shù)器來(lái)實(shí) 現(xiàn);該計(jì)數(shù)器在后臺(tái)持續(xù)運(yùn)行,但是每當(dāng)相應(yīng)的用戶(hù)提交針對(duì)句柄的服務(wù)請(qǐng)求時(shí),該計(jì)數(shù)器 被重置。當(dāng)超時(shí)到期時(shí),在框509處,將句柄的上下文信息保存至相應(yīng)令牌的簡(jiǎn)檔中。該句 柄繼而在框510處被釋放(該句柄的上下文信息被丟棄)。參考框512,每當(dāng)服務(wù)器從用戶(hù)接收到關(guān)閉相應(yīng)訪(fǎng)問(wèn)的請(qǐng)求時(shí)(通過(guò)將令牌作為 參數(shù)進(jìn)行傳遞),該方法轉(zhuǎn)到框515。響應(yīng)于此,通過(guò)丟棄句柄的上下文信息,與相應(yīng)簡(jiǎn)檔中 的令牌相關(guān)聯(lián)的句柄(如果有的話(huà))被釋放。該方法前進(jìn)到框516,其中令牌現(xiàn)在可以被釋放,相應(yīng)的簡(jiǎn)檔被丟棄。
移至框518,服務(wù)器接收來(lái)自新用戶(hù)的連接請(qǐng)求。繼而,活動(dòng)流程轉(zhuǎn)到框521,在此 處執(zhí)行握手過(guò)程以便對(duì)用戶(hù)的身份和他的/她的授權(quán)進(jìn)行驗(yàn)證。假設(shè)握手過(guò)程成功,服務(wù) 器在框522處為該用戶(hù)創(chuàng)建新的令牌;同時(shí),相應(yīng)的信用被初始化為開(kāi)始值,并且該令牌的 時(shí)間戳被設(shè)置成當(dāng)前時(shí)間。繼續(xù)到框524,利用用戶(hù)的個(gè)人數(shù)據(jù)(在握手過(guò)程期間收集的) 來(lái)填入相應(yīng)的簡(jiǎn)檔?,F(xiàn)在,在框527處執(zhí)行測(cè)試,以確定是否有任何句柄可用(因?yàn)檫€沒(méi)有達(dá)到句柄的 最大數(shù)量)。如果有句柄可用,則在框530處為令牌分配句柄(向相應(yīng)的簡(jiǎn)檔添加該已分配 句柄的指示)。繼續(xù)到框531,句柄的上下文信息利用從令牌的簡(jiǎn)檔加載的用戶(hù)個(gè)人數(shù)據(jù)進(jìn) 行初始化。繼而,方法向下進(jìn)入框533 ;在沒(méi)有句柄可用時(shí),也可以直接從框527達(dá)到該同
——占
;^ ο每次服務(wù)器在框533處接收到來(lái)自一般用戶(hù)的服務(wù)請(qǐng)求(連同所分派的令牌一 起)時(shí),活動(dòng)流程轉(zhuǎn)到框536;在這個(gè)階段中,服務(wù)器獲取所接收到的令牌的簡(jiǎn)檔。繼而,在 框537處,將從創(chuàng)建令牌(由令牌簡(jiǎn)檔中的時(shí)間戳來(lái)指示)起流逝的時(shí)間與超時(shí)Lt進(jìn)行比 較?,F(xiàn)在,在框539處,驗(yàn)證令牌的狀態(tài)。如果令牌已經(jīng)過(guò)期(由于從令牌創(chuàng)建起流逝的時(shí) 間超出了超時(shí)Lt),則在框540處,服務(wù)器釋放該令牌(連同與此相關(guān)聯(lián)的可能的句柄)。繼 而,在框542處,該服務(wù)器請(qǐng)求被拒絕(向用戶(hù)返回相應(yīng)的錯(cuò)誤消息)。該方法在同心白/ 黑停止圓圈545處結(jié)束。反之,當(dāng)令牌仍然有效時(shí),服務(wù)器在框548處驗(yàn)證句柄是否與該令牌相關(guān)聯(lián)(如令 牌簡(jiǎn)檔中指示的)。如果沒(méi)有找到句柄,則在框551處執(zhí)行測(cè)試以確定是否已經(jīng)達(dá)到句柄 的最大數(shù)量。如果已經(jīng)達(dá)到句柄的最大數(shù)量,則服務(wù)器在框554處從令牌的簡(jiǎn)檔中獲取用 戶(hù)的信用。繼而方法繼續(xù)到框557,在其中服務(wù)器對(duì)用戶(hù)剩余信用進(jìn)行驗(yàn)證。如果信用耗 盡(即,低于0或者等同于0),則在框542處,再次拒絕該服務(wù)器請(qǐng)求(該方法在停止圓圈 545處結(jié)束)。反之(S卩,當(dāng)信用高于0時(shí)),在框560處選擇分配給信用最低的用戶(hù)的句柄。優(yōu) 選地,該選擇被限制于與不活動(dòng)時(shí)間長(zhǎng)于授予時(shí)段(短于超時(shí)Lh)的用戶(hù)相關(guān)聯(lián)的句柄。此 授予時(shí)段代表仍然活躍的用戶(hù)的典型最大不活動(dòng)時(shí)間,因?yàn)檫@些用戶(hù)還沒(méi)有從服務(wù)器獲得 所有期望的響應(yīng)(使得進(jìn)一步的服務(wù)請(qǐng)求很可能稍后提交);例如,低于授予時(shí)段的不活動(dòng) 時(shí)間可以對(duì)應(yīng)于挑選將要提交的服務(wù)器請(qǐng)求、回放接收到的數(shù)字資產(chǎn),等等。關(guān)于此特征的 更多細(xì)節(jié)可以參考2007年6月26日提交的、共同未決專(zhuān)利申請(qǐng)?zhí)朎P07111069. 7(通過(guò)參 考而將其整個(gè)公開(kāi)在此引入)。繼而在框561處進(jìn)行測(cè)試,以確定是否已經(jīng)找到句柄。如 果沒(méi)有找到,則在框542處再次拒絕服務(wù)請(qǐng)求(該方法在停止圓圈545處結(jié)束)。相反,在 框562處,將所選句柄的上下文信息保存至相應(yīng)令牌的簡(jiǎn)檔中。繼而,在框563處,釋放所 選的句柄(其上下文信息被丟棄)?,F(xiàn)在,活動(dòng)流程向下進(jìn)入框566 ;當(dāng)一個(gè)或者多個(gè)句柄仍然可用時(shí)(由于還沒(méi)有達(dá) 到句柄的最大值),也可以直接從框551到達(dá)同一點(diǎn)。在這個(gè)階段中,向該令牌分配新的句 柄(向相應(yīng)的簡(jiǎn)檔添加所分配句柄的指示)。繼續(xù)到框567,直接從令牌的簡(jiǎn)檔加載句柄的 上下文信息。繼而,方法向下進(jìn)入框569。轉(zhuǎn)回參考框548,當(dāng)句柄已經(jīng)與令牌相關(guān)聯(lián)時(shí),在 框568處獲取相應(yīng)的上下文信息。同樣在這種情況下,該方法繼而向下進(jìn)入框569。
此時(shí),處理由用戶(hù)提交的服務(wù)請(qǐng)求;為此目的,服務(wù)器使用相應(yīng)句柄的上下文信 息,繼而該信息被相應(yīng)地更新(如果需要的話(huà))。根據(jù)服務(wù)請(qǐng)求的輸出,活動(dòng)流程繼而在框572處分支。如果服務(wù)請(qǐng)求的處理成功 (向用戶(hù)返回相應(yīng)結(jié)果),則在框575處,在令牌的簡(jiǎn)檔中降低用戶(hù)的信用。該方法繼而在 停止圓圈545處結(jié)束;否則,也可以從框572直接到達(dá)同一點(diǎn)。當(dāng)然,為了滿(mǎn)足本地需求和特定需求,本領(lǐng)域技術(shù)人員可以對(duì)上述解決方案應(yīng)用 很多邏輯上的和/或物理上的修改和改變。更具體地,盡管已經(jīng)參考本發(fā)明的優(yōu)選實(shí)施方 式以一定的特殊性程度描述了本發(fā)明,但是應(yīng)該理解,形式和細(xì)節(jié)上的各種省略、替換和改 變以及其他實(shí)施方式都是可能的。具體地,甚至可以在不具有用于提供對(duì)上述描述徹底理 解的前述內(nèi)容中記載的具體細(xì)節(jié)(諸如,數(shù)字示例)的情況下實(shí)現(xiàn)提出的解決方案;相反, 為了避免不必要的細(xì)節(jié)混淆本描述,可能已經(jīng)省略或簡(jiǎn)化了公知特征。而且,本意在于與本 發(fā)明的任何公開(kāi)實(shí)施方式結(jié)合描述的特定元件和/或方法步驟可以并入作為一般性設(shè)計(jì) 選擇主題的任何其他實(shí)施方式中。
具體地,提出的解決方案利用等同方法來(lái)實(shí)現(xiàn)(通過(guò)使用類(lèi)似的步驟、移除不必 要的某些步驟或添加其他可選的步驟);而且,可以以不同的順序、并發(fā)地或以交織的方式 (至少部分地)執(zhí)行步驟。雖然在之前的描述中參考了信用(包括在每次向用戶(hù)返回響應(yīng)時(shí)就會(huì)遞減的整 數(shù)值),但這不是限制性的。例如,如果計(jì)數(shù)器用于向用戶(hù)返回的響應(yīng)的次數(shù)(當(dāng)計(jì)數(shù)器達(dá) 到預(yù)定值時(shí),該信用耗盡),則類(lèi)似的考慮是適用的;更一般地,可以考慮對(duì)服務(wù)器特許使 用的任何其他限制,例如,基于已經(jīng)處理了的服務(wù)請(qǐng)求的數(shù)量(與其結(jié)果無(wú)關(guān))、基于連接 時(shí)間、基于服務(wù)的消耗等。而且,可以將提出的信用任意地授予所有用戶(hù),或是只授予其子 集。如果句柄的最大數(shù)量以另一方式定義(例如,在一天期間動(dòng)態(tài)改變),則類(lèi)似的考 慮是適用的。然而,提出的解決方案適于響應(yīng)于不同臨界狀況的檢測(cè)(諸如,當(dāng)尋找可用服 務(wù)器所需的時(shí)間超過(guò)可接受的值時(shí),或者當(dāng)服務(wù)質(zhì)量下降到需要保證的限度以下時(shí))。在本發(fā)明的不同實(shí)施方式中(當(dāng)檢測(cè)到其他臨界狀況時(shí)),不排除強(qiáng)制釋放兩個(gè) 或者更多句柄的可能性(當(dāng)從信用還沒(méi)有耗盡的用戶(hù)接收到其他服務(wù)請(qǐng)求時(shí))。在任何情 況下,可以根據(jù)不同的標(biāo)準(zhǔn)(甚至與對(duì)應(yīng)的信用無(wú)關(guān))來(lái)選擇要釋放的句柄;例如,可能釋 放與具有最長(zhǎng)不活動(dòng)時(shí)間的用戶(hù)相關(guān)聯(lián)的句柄。在本發(fā)明的一個(gè)備選實(shí)現(xiàn)中,句柄的強(qiáng)制釋放可以是無(wú)條件的,使得總是對(duì)信用 沒(méi)有耗盡(在達(dá)到句柄的最大值之后)的新用戶(hù)提交的每個(gè)服務(wù)請(qǐng)求進(jìn)行服務(wù)。雖然已經(jīng)參照SOA服務(wù)(并且尤其是DAM類(lèi)型的服務(wù))描述了提出的解決方案,但 是這不以限定的方式進(jìn)行解釋。實(shí)際上,類(lèi)似的考慮適用于其他SOA服務(wù)(例如,用于在線(xiàn) 即時(shí)消息收發(fā)應(yīng)用),或者適用于基于任何其他架構(gòu)(例如,依照CORBA規(guī)格)的服務(wù)。更 一般地,提出的解決方案適于被應(yīng)用以對(duì)任意邏輯和/或物理用戶(hù)實(shí)體(諸如,操作系統(tǒng)、 軟件應(yīng)用、路由器、交換機(jī)等)對(duì)任何其他邏輯和/或物理共享資源(諸如,文件、數(shù)據(jù)庫(kù)、 磁盤(pán)、打印機(jī)、掃描儀等)的訪(fǎng)問(wèn)進(jìn)行管理。同樣地,任何其他上下文信息可以用于提供在任何其他種類(lèi)工作會(huì)話(huà)中所需的服 務(wù)(等同的句柄用于其管理)。在任何情況下,沒(méi)有什么能夠阻止向無(wú)狀態(tài)類(lèi)型的服務(wù)應(yīng)用相同的解決方案。而且,可以以不同的方式監(jiān)測(cè)每個(gè)用戶(hù)的(不)活動(dòng);例如,可以用另一方式(諸 如,通過(guò)過(guò)濾零星的服務(wù)請(qǐng)求)來(lái)測(cè)量不活動(dòng)時(shí)間,或者不活動(dòng)時(shí)間可以由任何類(lèi)似指示 符(諸如,等于在整個(gè)服務(wù)器訪(fǎng)問(wèn)期間、用戶(hù)的遞增的不活動(dòng)時(shí)間)來(lái)替換。然而,沒(méi)有什 么能夠阻止與相應(yīng)用戶(hù)的活動(dòng)相獨(dú)立地將每個(gè)句柄保持為已被分配,直到在達(dá)到句柄的最 大數(shù)量之后其他用戶(hù)需要句柄為止。 備選地,句柄的強(qiáng)制釋放可以以任何其他方式來(lái)調(diào)節(jié)(例如,通過(guò)將其限制到信 用低于新用戶(hù)之一的用戶(hù))。同樣地,可以利用任何其他過(guò)程來(lái)收集上下文信息(諸如,請(qǐng)求用戶(hù)輸入他的/她 的個(gè)人數(shù)據(jù));上下文信息可以存儲(chǔ)在任何等同結(jié)構(gòu)(甚至分布式類(lèi)型的結(jié)構(gòu))中。而且, 應(yīng)當(dāng)注意,令牌可以利用用于向服務(wù)的使用授權(quán)的任何等同元素來(lái)替換(例如,通過(guò)在服 務(wù)器上相應(yīng)地簡(jiǎn)單標(biāo)記每個(gè)授權(quán)用戶(hù)的標(biāo)識(shí)符)。同樣地,簡(jiǎn)檔可以利用任何等同結(jié)構(gòu)來(lái)替 換,或者簡(jiǎn)檔可以實(shí)時(shí)地(而不只在釋放句柄時(shí))與相應(yīng)句柄的上下文信息保持同步。在 任何情況下,不排除僅工作在句柄層級(jí)的不同實(shí)現(xiàn)。與立即為每個(gè)新令牌分配句柄的嘗試有關(guān)的特征不是必須的。在本發(fā)明的一個(gè)備選實(shí)施方式中,可以根據(jù)任何其他策略來(lái)釋放令牌(例如,當(dāng) 服務(wù)的消耗達(dá)到預(yù)定限制時(shí));在任何情況下,具體的應(yīng)用中不排除不具有任何到期的令 牌使用(例如,不具有嚴(yán)格的安全需求)。如果以不同的方式對(duì)程序(其可以用于實(shí)現(xiàn)本發(fā)明的每個(gè)實(shí)施方式)進(jìn)行組織, 或如果提供了附加的模塊或功能,則類(lèi)似的考慮是適用的;同樣,存儲(chǔ)器結(jié)構(gòu)可以是其他類(lèi) 型,或可以由等同實(shí)體(不必包括物理存儲(chǔ)介質(zhì))替換。在任何情況下,程序可以采用適于 由任何數(shù)據(jù)處理系統(tǒng)使用或結(jié)合任何數(shù)據(jù)處理系統(tǒng)使用的任何形式,諸如外部軟件或常駐 軟件、固件或微代碼(例如,在將編譯的或解釋的目標(biāo)代碼或源代碼中)。而且,可以在任 何計(jì)算機(jī)可用介質(zhì)上提供程序;該介質(zhì)可以是適于包含、存儲(chǔ)、通信、傳播或傳送程序的任 何元件。例如,該介質(zhì)可以是電、磁、光、電磁、紅外或半導(dǎo)體類(lèi)型;此類(lèi)介質(zhì)的示例是固定盤(pán) (其中可以預(yù)加載程序)、可移動(dòng)盤(pán)、帶、卡、導(dǎo)線(xiàn)、光纖、無(wú)線(xiàn)連接、網(wǎng)絡(luò)、廣播波等。在任何 情況下,根據(jù)本發(fā)明一個(gè)實(shí)施方式的解決方案適于利用硬件結(jié)構(gòu)(例如,集成在半導(dǎo)體材 料的芯片中)實(shí)現(xiàn)或利用軟件和硬件的組合來(lái)實(shí)現(xiàn)。而且,提出的服務(wù)可以由任何等同的服務(wù)提供者來(lái)實(shí)現(xiàn),諸如包括服務(wù)器集群的 服務(wù)提供者。在任何情況下,根據(jù)本發(fā)明的解決方案還適于應(yīng)用在不是基于服務(wù)的傳統(tǒng)環(huán) 境中。提出的方法還可以在具有不同架構(gòu)或包括等同單元(例如,基于本地網(wǎng)絡(luò))的系 統(tǒng)上執(zhí)行。而且,每個(gè)計(jì)算機(jī)可以包括類(lèi)似的元件(諸如,臨時(shí)存儲(chǔ)程序或程序的一部分以 減少在執(zhí)行期間對(duì)大容量存儲(chǔ)器的訪(fǎng)問(wèn)的高速緩沖存儲(chǔ)器);在任何情況下,以任何代碼 執(zhí)行實(shí)體(諸如PDA、移動(dòng)電話(huà)等)或其組合(諸如多層服務(wù)器架構(gòu)、網(wǎng)格計(jì)算基礎(chǔ)架構(gòu)等) 來(lái)替換計(jì)算機(jī)都是可能的。
權(quán)利要求
一種用于由多個(gè)使用者實(shí)體對(duì)數(shù)據(jù)處理系統(tǒng)中的共享資源進(jìn)行訪(fǎng)問(wèn)的方法(500),所述方法包括步驟將針對(duì)所述共享資源的特許使用的特許限制與活動(dòng)實(shí)體集合中的每個(gè)實(shí)體相關(guān)聯(lián)(518-524);測(cè)量(575)用于每個(gè)活動(dòng)實(shí)體的使用指示符,所述使用指示符指示所述活動(dòng)實(shí)體對(duì)所述共享資源的實(shí)際使用;接收(533)用于由所述活動(dòng)實(shí)體中的一個(gè)新活動(dòng)實(shí)體訪(fǎng)問(wèn)所述共享資源的訪(fǎng)問(wèn)請(qǐng)求;檢測(cè)(533,551)所述共享資源的臨界狀況;響應(yīng)于所述訪(fǎng)問(wèn)請(qǐng)求處于所述臨界狀況并且所述新活動(dòng)實(shí)體的使用指示符未達(dá)到所述特許限制,釋放(554-563)向當(dāng)前被允許訪(fǎng)問(wèn)所述共享資源的實(shí)體集合的至少一個(gè)實(shí)體授予的訪(fǎng)問(wèn);以及向所述新活動(dòng)實(shí)體授予(566-567)所述訪(fǎng)問(wèn)。
2.根據(jù)權(quán)利要求1所述的方法(500),其中允許對(duì)所述共享資源的并發(fā)訪(fǎng)問(wèn)的最大數(shù) 量,檢測(cè)(533,551)所述臨界狀況的步驟包括在達(dá)到所述訪(fǎng)問(wèn)的最大數(shù)量之后,接收(533)所述訪(fǎng)問(wèn)請(qǐng)求。
3.根據(jù)權(quán)利要求1或2所述的方法(500),其中釋放(554-563)向所述至少一個(gè)被允 許的實(shí)體授予的訪(fǎng)問(wèn)的步驟包括選擇(560)所述被允許的實(shí)體中、相應(yīng)的使用指示符與所述特許限制最接近的一個(gè);以及釋放(563)向所選擇的被允許的實(shí)體授予的訪(fǎng)問(wèn)。
4.根據(jù)權(quán)利要求1到3的任何權(quán)利要求所述的方法(500),進(jìn)一步包括步驟將向所述至少一個(gè)被允許的實(shí)體授予的訪(fǎng)問(wèn)的釋放(554-563)調(diào)節(jié)(560-561)為釋放 狀況。
5.根據(jù)權(quán)利要求1到4的任何權(quán)利要求所述的方法(500),其中所述共享資源包括適 于提供服務(wù)的服務(wù)器;每個(gè)使用者實(shí)體包括適于使用所述服務(wù)的客戶(hù)端;每個(gè)訪(fǎng)問(wèn)請(qǐng)求包 括用于使用所述服務(wù)的服務(wù)請(qǐng)求;以及每個(gè)被允許的實(shí)體包括當(dāng)前正在使用所述服務(wù)的被 允許的客戶(hù)端,工作會(huì)話(huà)的句柄被分配給每個(gè)被允許的客戶(hù)端,以及其中向所述新活動(dòng)客戶(hù)端授予(566-567)訪(fǎng)問(wèn)的步驟包括分配(566)相應(yīng)的新句柄;以及釋放(554-563)向所述至少一個(gè)被允許的客戶(hù)端授予的訪(fǎng)問(wèn)的步驟包括釋放(563)每 個(gè)相應(yīng)的句柄,響應(yīng)于從所述新活動(dòng)客戶(hù)端接收所述服務(wù)請(qǐng)求,所述方法進(jìn)一步包括步驟利用(568)先前分配給所述新活動(dòng)客戶(hù)端的句柄,如果所述句柄可用的話(huà)。
6.根據(jù)權(quán)利要求5所述的方法(500),其中每個(gè)會(huì)話(huà)涉及維護(hù)相應(yīng)被允許的客戶(hù)端的 用于使用所述服務(wù)的上下文信息;向所述新活動(dòng)客戶(hù)端授予(566-567)訪(fǎng)問(wèn)的步驟進(jìn)一步包括加載(567)所述相應(yīng)的 上下文信息;以及釋放(554-563)向所述至少一個(gè)被允許的客戶(hù)端授予的訪(fǎng)問(wèn)的步驟進(jìn)一步包括丟棄 (563)每個(gè)相應(yīng)的上下文信息。
7.根據(jù)權(quán)利要求5或6所述的方法(500),進(jìn)一步包括步驟監(jiān)測(cè)(506)每個(gè)被允許的客戶(hù)端的活動(dòng);以及當(dāng)所述相應(yīng)的被允許的客戶(hù)端的不活動(dòng)指示符達(dá)到第一閾值時(shí),釋放(509-510)每個(gè) 句柄。
8.根據(jù)從屬于權(quán)利要求4的權(quán)利要求7所述的方法(500),其中調(diào)節(jié)(560-561)向所 述至少一個(gè)被允許的客戶(hù)端授予的訪(fǎng)問(wèn)的釋放(554-563)的步驟包括將所述釋放限制(560)于所述不活動(dòng)指示符超過(guò)位于所述第一閾值之前的第二閾值 的被允許的客戶(hù)端。
9.根據(jù)權(quán)利要求6到8的任何權(quán)利要求所述的方法(500),其中將所述特許限制與每 個(gè)活動(dòng)客戶(hù)端相關(guān)聯(lián)(518-524)的步驟包括接收(518)所述活動(dòng)客戶(hù)端用于開(kāi)始使用所述服務(wù)的連接請(qǐng)求; 收集(521)所述活動(dòng)客戶(hù)端的上下文信息;創(chuàng)建(522)用于向所述活動(dòng)客戶(hù)端授權(quán)以使用所述服務(wù)的令牌,與所述活動(dòng)客戶(hù)端的 特許限制相關(guān)聯(lián)的所述令牌被初始化為開(kāi)始值;以及將所述活動(dòng)客戶(hù)端的上下文信息存儲(chǔ)(524)至與所述令牌相關(guān)聯(lián)的簡(jiǎn)檔中,其中向所述新活動(dòng)客戶(hù)端授予(566-567)訪(fǎng)問(wèn)的步驟包括將所述新的句柄與所述相應(yīng)的令牌相關(guān)聯(lián)(566);以及從所述相應(yīng)令牌的簡(jiǎn)檔獲取(567)所述相應(yīng)的上下文信息,并且其中釋放(554-563)向所述至少一個(gè)被允許的客戶(hù)端授予的訪(fǎng)問(wèn)的步驟包括向所述相應(yīng)令牌的簡(jiǎn)檔保存(562)每個(gè)相應(yīng)的上下文信息。
10.根據(jù)權(quán)利要求9所述的方法(500),響應(yīng)于所述特許限制與每個(gè)活動(dòng)客戶(hù)端的關(guān)聯(lián) (518-524)未處于所述臨界狀況,進(jìn)一步包括步驟向所述活動(dòng)實(shí)體授予(530-531)所述訪(fǎng)問(wèn)。
11.根據(jù)權(quán)利要求9或10所述的方法(500),進(jìn)一步包括步驟 在達(dá)到使用限制之后,釋放(540)所述令牌。
12.一種服務(wù)(400),其部署在數(shù)據(jù)處理系統(tǒng)(100)中,用于實(shí)現(xiàn)根據(jù)權(quán)利要求1到11 的任何權(quán)利要求所述的方法(500)。
13.一種計(jì)算機(jī)程序(400),當(dāng)所述計(jì)算機(jī)程序在數(shù)據(jù)處理系統(tǒng)(105)上執(zhí)行時(shí),用于 執(zhí)行權(quán)利要求1到11的任何權(quán)利要求所述的方法(500)。
14.一種系統(tǒng)(105),包括用于執(zhí)行根據(jù)權(quán)利要求1到11的任何權(quán)利要求所述的方法 (500)的步驟的裝置(400)。
全文摘要
提出一種用于多個(gè)使用者實(shí)體(諸如客戶(hù)端)對(duì)數(shù)據(jù)處理系統(tǒng)中的共享資源(諸如服務(wù))進(jìn)行訪(fǎng)問(wèn)的解決方案。相應(yīng)的方法(500)開(kāi)始于將針對(duì)共享資源的特許使用的特許限制與活動(dòng)實(shí)體集合的每一個(gè)實(shí)體相關(guān)聯(lián)(518-524)(諸如以信用的形式)的步驟。為每個(gè)活動(dòng)實(shí)體測(cè)量(575)使用指示符;該使用指示符表示活動(dòng)實(shí)體對(duì)共享資源的實(shí)際使用(諸如,由其接收期望響應(yīng)的次數(shù)來(lái)定義)。該方法通過(guò)接收(533)活動(dòng)實(shí)體中的一個(gè)新活動(dòng)實(shí)體對(duì)共享資源進(jìn)行訪(fǎng)問(wèn)的訪(fǎng)問(wèn)請(qǐng)求而繼續(xù)。該方法檢測(cè)(533,551)共享資源的臨界狀況(諸如,在沒(méi)有可用于使用服務(wù)的句柄時(shí))。釋放(554-563)向當(dāng)前正在訪(fǎng)問(wèn)共享資源的被允許的實(shí)體集合的至少一個(gè)實(shí)體授予的訪(fǎng)問(wèn);這響應(yīng)于該訪(fǎng)問(wèn)請(qǐng)求處于臨界狀況并且新活動(dòng)實(shí)體的使用指示符沒(méi)有達(dá)到特許限制而發(fā)生。繼而向新活動(dòng)實(shí)體授予(566-567)訪(fǎng)問(wèn)。
文檔編號(hào)H04L29/06GK101803330SQ200880106808
公開(kāi)日2010年8月11日 申請(qǐng)日期2008年8月5日 優(yōu)先權(quán)日2007年9月14日
發(fā)明者A·卡斯特盧西, R·古阿達(dá) 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司