專利名稱:用于臨時(shí)重新定位可用軟件許可的對(duì)等軟件許可管理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本公開(kāi)總體上涉及軟件許可(license)管理系統(tǒng),并且更具體地涉及用于臨時(shí)重 新定位可用軟件許可的對(duì)等軟件許可管理系統(tǒng)。
背景技術(shù):
軟件許可管理是任何商業(yè)軟件產(chǎn)品的基本服務(wù)以確保軟件產(chǎn)品的合法使用并且 確保軟件產(chǎn)品的適當(dāng)分布。軟件許可提供器(“許可提供器”)通常位于被定位在計(jì)算機(jī)服 務(wù)器上的軟件內(nèi)。軟件許可用戶(“許可用戶”)通常是被定位在計(jì)算機(jī)工作站或計(jì)算機(jī)服 務(wù)器上的軟件應(yīng)用?,F(xiàn)有的軟件許可管理系統(tǒng)基于軟件提供器的能力來(lái)安全地與軟件許可 用戶進(jìn)行通信。許可提供器具有存儲(chǔ)在計(jì)算機(jī)服務(wù)器內(nèi)的有限個(gè)軟件許可(“許可”),其中將所 述許可提供器定位在所述計(jì)算機(jī)服務(wù)器上。許可提供器通常具有加密的許可文件,其包含 許可的名稱以及被授權(quán)接收該許可的客戶(即許可用戶)的名稱。當(dāng)許可用戶期望獲得特定軟件許可時(shí),該許可用戶可能試圖從一個(gè)或多個(gè)許可提 供器獲取許可。許可用戶將許可請(qǐng)求發(fā)送到一個(gè)或多個(gè)許可提供器??梢詽M足許可用戶的 請(qǐng)求的許可提供器(1)準(zhǔn)許該許可用戶的所請(qǐng)求的許可(或多個(gè)許可),(2)將所請(qǐng)求的許 可(或多個(gè)許可)標(biāo)記為由該許可用戶正在使用,以及(3)建立和保持與該許可用戶的安 全通信鏈路。許可提供器保持與許可用戶的安全通信鏈路直到該許可用戶釋放許可(或多個(gè) 許可)或與該許可用戶的鏈路因?yàn)橛布蜍浖收隙橹梗瑥亩[含地釋放許可(或 多個(gè)許可)。被標(biāo)記為正在使用的許可不能被其他許可用戶使用直到該許可已被釋放為止。 被釋放的許可重新進(jìn)入許可提供器的可用許可池中。軟件許可管理系統(tǒng)中的加密許可文件可以被存儲(chǔ)在硬盤(pán)驅(qū)動(dòng)器或諸如通用串行 總線(USB)密鑰或智能卡之類的其他存儲(chǔ)器設(shè)備上。如先前所提到的那樣,加密許可文件 包含授權(quán)許可用戶的名稱以及這些許可用戶被授權(quán)接收的許可的名稱。軟件許可管理系統(tǒng) 能夠讀取加密許可文件中的授權(quán)信息并且將所請(qǐng)求的許可用于具有適當(dāng)授權(quán)的許可用戶。軟件許可管理系統(tǒng)通常存在于遠(yuǎn)離它許可的軟件應(yīng)用的位置的位置處。這提供了 許可過(guò)程的更便利的集中管理。在現(xiàn)有軟件許可管理系統(tǒng)中,(位于許可服務(wù)器上的)許 可提供器被定位在相對(duì)于(位于客戶端服務(wù)器上的)許可用戶的遠(yuǎn)程位置。
專用許可服務(wù)器在移動(dòng)計(jì)算場(chǎng)景中無(wú)效。例如,專用許可服務(wù)器對(duì)支持軟件產(chǎn)品 示范或訓(xùn)練遠(yuǎn)程非固定位置處的操作無(wú)效。在移動(dòng)計(jì)算場(chǎng)景中提供軟件許可的現(xiàn)有技術(shù) 方法包括提供(具有附加費(fèi)用)(1)支持移動(dòng)使用的短期或?qū)S觅Y格(entitlement),(2) 以硬件密鑰形式的便攜式資格,(3)臨時(shí)離線獨(dú)立許可,以及(4)不基于網(wǎng)絡(luò)的節(jié)點(diǎn)鎖定許可。期望具有一種在移動(dòng)計(jì)算場(chǎng)景中提供軟件許可資格的更有效方法。期望具有一種 有能力在移動(dòng)計(jì)算場(chǎng)景中臨時(shí)重新定位可用軟件許可的軟件許可管理系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明提供一種能夠臨時(shí)重新定位可用軟件許可的對(duì)等軟件許可管理系統(tǒng)。本 發(fā)明包括對(duì)等軟件許可管理系統(tǒng),在該對(duì)等軟件許可管理系統(tǒng)中允許將任何節(jié)點(diǎn)(即在其 中安裝本發(fā)明的軟件許可管理系統(tǒng)軟件的任何計(jì)算機(jī))用作許可提供器,或者用作許可用 戶,或者用作許可提供器和許可用戶二者。本發(fā)明的對(duì)等軟件許可管理系統(tǒng)的任何節(jié)點(diǎn)具有如下能力(1)臨時(shí)從另一個(gè)節(jié) 點(diǎn)借用軟件許可,以及(2)將所借用的軟件許可重新用于又一個(gè)節(jié)點(diǎn),就像借用該軟件許 可的節(jié)點(diǎn)本身是許可提供器一樣。本發(fā)明的對(duì)等軟件許可管理系統(tǒng)的每個(gè)節(jié)點(diǎn)作為許可用 戶和許可提供器二者來(lái)運(yùn)行。根據(jù)下面的附圖、描述和權(quán)利要求,其他技術(shù)特征可對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)是 顯而易見(jiàn)的。
為了更全面地理解本公開(kāi),現(xiàn)在結(jié)合附圖參考下面的描述,其中圖1說(shuō)明本發(fā)明的對(duì)等軟件許可管理系統(tǒng)的示例性第一計(jì)算機(jī)節(jié)點(diǎn)的示意性表 示;圖2說(shuō)明本發(fā)明的第一計(jì)算機(jī)節(jié)點(diǎn)訪問(wèn)來(lái)自本發(fā)明的第二計(jì)算機(jī)節(jié)點(diǎn)的軟件許 可的示意性表示;圖3說(shuō)明本發(fā)明的第一計(jì)算機(jī)節(jié)點(diǎn)從本發(fā)明的第二計(jì)算機(jī)節(jié)點(diǎn)臨時(shí)借用軟件許 可的示意性表示;圖4說(shuō)明本發(fā)明的第三計(jì)算機(jī)節(jié)點(diǎn)訪問(wèn)從本發(fā)明的第一計(jì)算機(jī)節(jié)點(diǎn)臨時(shí)借用的 軟件許可的示意性表示;圖5說(shuō)明示出本發(fā)明的方法的有利實(shí)施例的步驟的流程圖;以及圖6說(shuō)明示出本發(fā)明的方法的另一個(gè)有利實(shí)施例的步驟的流程圖。
具體實(shí)施例方式圖1到圖6以及用于在本專利文件中描述本發(fā)明原理的各種實(shí)施例僅是為了舉例 說(shuō)明并且不應(yīng)該被解釋成以任何方式來(lái)限制本發(fā)明的范圍。本領(lǐng)域技術(shù)人員將會(huì)理解本發(fā) 明的原理可以以任何類型的適當(dāng)布置的設(shè)備或系統(tǒng)來(lái)實(shí)施。參與本發(fā)明的對(duì)等軟件許可管理系統(tǒng)的每個(gè)計(jì)算機(jī)被稱為節(jié)點(diǎn)。在對(duì)等系統(tǒng)中, 每個(gè)節(jié)點(diǎn)可以從其他節(jié)點(diǎn)接受輸入連接,并且每個(gè)節(jié)點(diǎn)可以發(fā)起到其他節(jié)點(diǎn)的輸出連接。這一特征使對(duì)等系統(tǒng)有別于客戶端_服務(wù)器系統(tǒng)。在客戶端_服務(wù)器系統(tǒng)中,僅客戶端節(jié) 點(diǎn)可以發(fā)起輸出連接并且僅服務(wù)器節(jié)點(diǎn)可以接受輸入連接。圖1說(shuō)明本發(fā)明的對(duì)等軟件許可管理系統(tǒng)的示例性第一計(jì)算機(jī)節(jié)點(diǎn)100(也被叫 做節(jié)點(diǎn)1)的示意性表示。第一計(jì)算機(jī)節(jié)點(diǎn)100代表該系統(tǒng)中每一個(gè)其他節(jié)點(diǎn)(未在圖1 中示出)。如圖1中所示,第一計(jì)算機(jī)節(jié)點(diǎn)100包括應(yīng)用過(guò)程(application process) 110。 應(yīng)用過(guò)程110包括至少一個(gè)程序120和許可庫(kù)130。該許可庫(kù)130包含一個(gè)或多個(gè)軟件許 可。程序120能夠通過(guò)許可應(yīng)用編程接口(在圖1中被叫做“許可API (Licensing API)”) 來(lái)訪問(wèn)許可庫(kù)130。第一計(jì)算機(jī)節(jié)點(diǎn)100還包括被稱為許可服務(wù)140或許可后臺(tái)程序(daemon) 140的 連續(xù)運(yùn)行的程序。許可后臺(tái)程序140連接到許可庫(kù)130并且與其通信。許可庫(kù)130能夠訪 問(wèn)許可后臺(tái)程序140以將由程序120提出的任何許可請(qǐng)求傳遞給許可后臺(tái)程序140。第一計(jì)算機(jī)節(jié)點(diǎn)100還包括加密許可文件150。加密許可文件150包含授權(quán)許可 用戶的名稱以及這些許可用戶被授權(quán)接收的許可的名稱。許可后臺(tái)程序140連接到加密許 可文件150并且與其通信。許可后臺(tái)程序140能夠讀取加密許可文件150中的授權(quán)信息并 且將所請(qǐng)求的許可用于具有適當(dāng)授權(quán)的許可用戶。第一計(jì)算機(jī)節(jié)點(diǎn)100還包括地址文件160,該地址文件160包含對(duì)等系統(tǒng)中遠(yuǎn)程定 位的許可節(jié)點(diǎn)的計(jì)算機(jī)地址。許可后臺(tái)程序140連接到地址文件160并且與其通信。許可 后臺(tái)程序140能夠與對(duì)等系統(tǒng)中遠(yuǎn)程定位的節(jié)點(diǎn)通信。計(jì)算機(jī)節(jié)點(diǎn)100的標(biāo)準(zhǔn)計(jì)算機(jī)硬件(中央處理單元、存儲(chǔ)器單元等等)和計(jì)算機(jī) 節(jié)點(diǎn)100的標(biāo)準(zhǔn)計(jì)算機(jī)軟件(操作系統(tǒng)等等)連同本發(fā)明的對(duì)等軟件許可管理系統(tǒng)的軟 件(許可后臺(tái)程序、許可文件、許可庫(kù)等等)一起包括執(zhí)行本發(fā)明功能的軟件許可管理控制
O圖2說(shuō)明第一計(jì)算機(jī)節(jié)點(diǎn)100訪問(wèn)來(lái)自本發(fā)明的對(duì)等系統(tǒng)的第二計(jì)算機(jī)節(jié)點(diǎn)200 的軟件許可的示意性表示。第二計(jì)算機(jī)節(jié)點(diǎn)200包括應(yīng)用過(guò)程210,該應(yīng)用過(guò)程210包括至 少一個(gè)程序220和許可庫(kù)230。第二計(jì)算機(jī)節(jié)點(diǎn)200還包括其自己的許可后臺(tái)程序240和 加密許可文件250。盡管未在圖2中示出,但是第二計(jì)算機(jī)節(jié)點(diǎn)200還包括地址文件,該地 址文件包含對(duì)等系統(tǒng)中遠(yuǎn)程定位的許可節(jié)點(diǎn)的計(jì)算機(jī)地址。圖2說(shuō)明第一計(jì)算機(jī)節(jié)點(diǎn)100如何訪問(wèn)來(lái)自對(duì)等系統(tǒng)中的第二節(jié)點(diǎn)200的軟件許 可。當(dāng)至少一個(gè)程序120提出許可請(qǐng)求時(shí),許可庫(kù)130將該請(qǐng)求發(fā)送到許可后臺(tái)程序140。 許可后臺(tái)程序140首先嘗試從其自己的加密許可文件150 (未在圖2中示出)訪問(wèn)(或“檢 查(check out)”)所請(qǐng)求的許可。如果所請(qǐng)求的許可在加密許可文件150中,則許可后臺(tái) 程序140將所請(qǐng)求的許可從許可庫(kù)130提供給程序120。如果所請(qǐng)求的許可沒(méi)有在加密許可文件150中(即所請(qǐng)求的許可不是本地可用 的),則許可后臺(tái)程序140將該許可請(qǐng)求傳遞給已知的遠(yuǎn)程節(jié)點(diǎn)(其也被稱為遠(yuǎn)程主機(jī))。 圖2說(shuō)明第一計(jì)算機(jī)節(jié)點(diǎn)100的許可后臺(tái)程序140和第二計(jì)算機(jī)節(jié)點(diǎn)200的許可后臺(tái)程序 240之間的連接和通信。許可后臺(tái)程序240訪問(wèn)其自己的加密許可文件250以確定所請(qǐng)求的許可是否位 于第二計(jì)算機(jī)節(jié)點(diǎn)200內(nèi)。如果所請(qǐng)求的許可位于加密許可文件250內(nèi),則許可后臺(tái)程序 240將所請(qǐng)求的許可標(biāo)記成正在使用并且準(zhǔn)許許可請(qǐng)求。許可后臺(tái)程序240將所請(qǐng)求的許
6可從許可庫(kù)230提供給許可后臺(tái)程序140。許可后臺(tái)程序140將所請(qǐng)求的許可提供給許可 庫(kù)130和請(qǐng)求程序120。如果所請(qǐng)求許可沒(méi)有位于第二計(jì)算機(jī)節(jié)點(diǎn)200中的加密許可文件250內(nèi),則許可 后臺(tái)程序240報(bào)告找回到第一計(jì)算機(jī)節(jié)點(diǎn)100中的許可后臺(tái)程序140。當(dāng)許可后臺(tái)程序140向?qū)Φ染W(wǎng)絡(luò)中的其他節(jié)點(diǎn)發(fā)出許可請(qǐng)求時(shí),其他節(jié)點(diǎn)將該請(qǐng) 求級(jí)聯(lián)(cascade)到他們本地地址列表(如果有的話)中的其他節(jié)點(diǎn)直到找到所請(qǐng)求的許 可或者許可搜索因?yàn)槿鄙賹?duì)等網(wǎng)絡(luò)中連接的任何節(jié)點(diǎn)上的所請(qǐng)求許可的可用性而失敗為 止。在搜索所請(qǐng)求的許可時(shí),將經(jīng)由API鏈路將成功或失敗報(bào)告返回到請(qǐng)求程序120。 (1)當(dāng)請(qǐng)求程序120經(jīng)由API鏈路釋放許可時(shí)或者(2)當(dāng)請(qǐng)求程序120終止時(shí),成功訪問(wèn)的 許可將最終被返回到該許可所來(lái)自的遠(yuǎn)程計(jì)算機(jī)節(jié)點(diǎn)。將許可返回到該許可所來(lái)自的遠(yuǎn)程 計(jì)算機(jī)節(jié)點(diǎn)需要本地許可后臺(tái)程序140跟蹤該許可源自何處,并且與遠(yuǎn)程計(jì)算機(jī)節(jié)點(diǎn)上的 許可后臺(tái)程序(例如我們本示例中的許可后臺(tái)程序240)通信以將所請(qǐng)求的許可的最終釋 放通知給遠(yuǎn)程計(jì)算機(jī)節(jié)點(diǎn)上的許可后臺(tái)程序。在所請(qǐng)求的許可已釋放之后,從遠(yuǎn)程計(jì)算機(jī) 節(jié)點(diǎn)的本地加密許可文件提供所請(qǐng)求的許可的該遠(yuǎn)程計(jì)算機(jī)節(jié)點(diǎn)上的許可后臺(tái)程序?qū)⒃?許可釋放返回到對(duì)于后續(xù)許可合適的本地許可池中。為了防止濫用許可資格,提供所請(qǐng)求的許可的計(jì)算機(jī)節(jié)點(diǎn)的許可后臺(tái)程序生成臨 時(shí)“一切順利(all is well)”信號(hào)(被稱為“心跳(heartbeat)”)并且將其發(fā)送給參與許 可訪問(wèn)(也被稱為許可“檢查”)的所有其他計(jì)算機(jī)節(jié)點(diǎn)。如果為了某些原因,心跳信號(hào)沒(méi) 有按照預(yù)期那樣被確認(rèn),則該心跳信號(hào)被稱為已失敗。如果該心跳信號(hào)失敗,則許可檢查過(guò) 程所涉及的所有許可后臺(tái)程序立即認(rèn)為許可檢查過(guò)程已失敗。心跳信號(hào)的失敗導(dǎo)致經(jīng)由API鏈路通知請(qǐng)求程序(例如程序120)其已成功請(qǐng)求 的許可現(xiàn)在不可用并且先前成功的許可請(qǐng)求已終止。然后從許可后臺(tái)程序的本地加密許可 文件提供所請(qǐng)求的許可的該許可后臺(tái)程序?qū)⒃撛S可釋放回到對(duì)于后續(xù)許可合適的本地許 可池中。當(dāng)從本地許可文件中滿足許可請(qǐng)求時(shí),不需要心跳信號(hào)。除了被檢查之外,許可還可以被借用。借用許可要求將來(lái)自一個(gè)許可文件的許可 重新定位到另一個(gè)許可文件達(dá)預(yù)定(但有限)的時(shí)間段。計(jì)算機(jī)節(jié)點(diǎn)中的許可后臺(tái)程序可以請(qǐng)求從另一個(gè)計(jì)算機(jī)節(jié)點(diǎn)借用一個(gè)或多個(gè)許 可。從概念上來(lái)說(shuō),許可借用過(guò)程類似于從一個(gè)節(jié)點(diǎn)到另一個(gè)的普通許可檢查過(guò)程。但是 在借用交易(transaction)中涉及的兩個(gè)節(jié)點(diǎn)之間不存在保持的心跳信號(hào)。這使得借用節(jié) 點(diǎn)可以從供體(donor)節(jié)點(diǎn)的網(wǎng)絡(luò)斷開(kāi)并在借用節(jié)點(diǎn)離線(即沒(méi)有連接到對(duì)等網(wǎng)絡(luò))時(shí)繼 續(xù)使用所借用的許可。供體節(jié)點(diǎn)認(rèn)為所借用的許可已被檢查。但是借用節(jié)點(diǎn)認(rèn)為所借用的 許可可用于由在借用節(jié)點(diǎn)上本地運(yùn)行的程序進(jìn)行檢查。圖3說(shuō)明第一計(jì)算機(jī)節(jié)點(diǎn)100如何從對(duì)等系統(tǒng)中的第二計(jì)算機(jī)節(jié)點(diǎn)200臨時(shí)借用 軟件許可。當(dāng)至少一個(gè)程序120提出許可請(qǐng)求時(shí),許可庫(kù)130將該請(qǐng)求發(fā)送到許可后臺(tái)程 序140。許可后臺(tái)程序140首先嘗試從其自己的加密許可文件150 (未在圖3中示出)訪 問(wèn)(或“檢查”)所請(qǐng)求的許可。如果所請(qǐng)求的許可在加密許可文件150中,則許可后臺(tái)程 序140將所請(qǐng)求的許可從許可庫(kù)130提供給程序120。如果所請(qǐng)求的許可沒(méi)有在加密許可文件150中(即所請(qǐng)求的許可不是本地可用的),則許可后臺(tái)程序140可以發(fā)布請(qǐng)求來(lái)從已知的遠(yuǎn)程節(jié)點(diǎn)(其也被稱為遠(yuǎn)程主機(jī))之一 借用許可。圖3說(shuō)明第一計(jì)算機(jī)節(jié)點(diǎn)100的許可后臺(tái)程序140和第二計(jì)算機(jī)節(jié)點(diǎn)200的許 可后臺(tái)程序240之間的連接和通信。盡管未在圖3中示出,但是第二計(jì)算機(jī)節(jié)點(diǎn)200包括 先前提到的地址文件,該地址文件包含對(duì)等系統(tǒng)中遠(yuǎn)程定位的許可節(jié)點(diǎn)的計(jì)算機(jī)地址。許可后臺(tái)程序240訪問(wèn)供體許可文件270以確定所請(qǐng)求的許可是否是被授權(quán)當(dāng) 作借用許可“借出”的許可。如果所請(qǐng)求的許可位于供體許可文件270內(nèi),則許可后臺(tái)程序 240將該所請(qǐng)求的許可標(biāo)記為正在使用達(dá)所請(qǐng)求的時(shí)間段并且準(zhǔn)許該許可請(qǐng)求。許可后臺(tái) 程序240將所請(qǐng)求的借用許可從許可庫(kù)230提供給許可后臺(tái)程序140。許可后臺(tái)程序140 將所請(qǐng)求的借用許可存儲(chǔ)在借用許可文件170中并且允許請(qǐng)求程序120訪問(wèn)所請(qǐng)求的借用 許可。如果所請(qǐng)求的借用許可沒(méi)有位于供體許可文件270內(nèi),則許可后臺(tái)程序240報(bào)告 找回到第一計(jì)算機(jī)節(jié)點(diǎn)100中的許可后臺(tái)程序140。當(dāng)許可后臺(tái)程序140向?qū)Φ染W(wǎng)絡(luò)中的其他節(jié)點(diǎn)發(fā)出借用許可的請(qǐng)求時(shí),其他節(jié)點(diǎn) 將該請(qǐng)求級(jí)聯(lián)到他們本地地址列表(如果有的話)中的其他節(jié)點(diǎn)直到找到所請(qǐng)求的許可或 者許可搜索因?yàn)槿鄙賹?duì)等網(wǎng)絡(luò)中連接的任何節(jié)點(diǎn)上的所請(qǐng)求許可的可用性而失敗為止。如先前所提到的那樣,當(dāng)許可后臺(tái)程序240向許可后臺(tái)程序140發(fā)送借用許可時(shí), 許可后臺(tái)程序140將所借用的許可存儲(chǔ)在借用許可文件170中。存儲(chǔ)在第一計(jì)算機(jī)節(jié)點(diǎn) 100中的借用許可文件170中的所借用的許可表現(xiàn)為在所請(qǐng)求的時(shí)間段(即借用許可的“壽 命”)期間的普通本地許可。在所借用的許可被成功地存儲(chǔ)在第一計(jì)算機(jī)節(jié)點(diǎn)100中的借用許可文件170中之 后,第一計(jì)算機(jī)節(jié)點(diǎn)100的許可后臺(tái)程序140和第二計(jì)算機(jī)節(jié)點(diǎn)200的許可后臺(tái)程序240 之間的網(wǎng)絡(luò)連接被切斷。在圖3中用剪刀符號(hào)290示意性地表示所述切斷。在離線(即沒(méi) 有連接到對(duì)等網(wǎng)絡(luò))時(shí),借用節(jié)點(diǎn)(在我們的本示例中第一計(jì)算機(jī)節(jié)點(diǎn)100)可繼續(xù)使用所 借用的許可。在借用節(jié)點(diǎn)和供體節(jié)點(diǎn)連接到公共網(wǎng)絡(luò)的任何時(shí)候,借用節(jié)點(diǎn)(在我們的本示例 中第一計(jì)算機(jī)節(jié)點(diǎn)100)可以檢查返回到供體節(jié)點(diǎn)(在我們的本示例中第二計(jì)算機(jī)節(jié)點(diǎn) 200)的借用許可。檢查返回到供體節(jié)點(diǎn)的借用許可結(jié)束借用時(shí)段。為了確保借用交易并加強(qiáng)借用許可的時(shí)間限制,有必要在借用借用許可時(shí)指定最 大借用時(shí)間限制。供體節(jié)點(diǎn)和借用節(jié)點(diǎn)二者獨(dú)立地跟蹤最大借用時(shí)間限制(也被稱為“超 時(shí)”值)。如果超時(shí)值在借用許可從借用節(jié)點(diǎn)返回到供體節(jié)點(diǎn)之前期滿,則將在借用者節(jié)點(diǎn) 上自動(dòng)禁用借用許可并且將在供體節(jié)點(diǎn)上自動(dòng)啟用(即檢查返回到供體節(jié)點(diǎn)中的)該借用 許可。在借用許可仍處于超時(shí)值內(nèi)的時(shí)間期間,借用許可保持有效。此外,有效的借用 許可被認(rèn)為對(duì)于來(lái)自借用節(jié)點(diǎn)的檢查是可用的。因?yàn)榫W(wǎng)絡(luò)的對(duì)等性能,不限于僅由在借用 節(jié)點(diǎn)上運(yùn)行的程序來(lái)檢查借用許可。也就是說(shuō),借用許可可以用于請(qǐng)求該借用許可的其他 連接節(jié)點(diǎn)。這意味著許可可以從供體節(jié)點(diǎn)(其用作許可服務(wù)器)臨時(shí)重新定位到借用節(jié)點(diǎn) (其隨后相對(duì)于供體節(jié)點(diǎn)離線),并且該借用節(jié)點(diǎn)隨后可以用作借用許可的許可服務(wù)器。圖4說(shuō)明第一計(jì)算機(jī)節(jié)點(diǎn)100如何用作借用許可的許可服務(wù)器并且將所借用的許 可用于對(duì)等系統(tǒng)中的第三計(jì)算機(jī)節(jié)點(diǎn)300。第三計(jì)算機(jī)節(jié)點(diǎn)300包括應(yīng)用過(guò)程310,該應(yīng)用過(guò)程310進(jìn)一步包括至少一個(gè)程序320和許可庫(kù)330。該第三計(jì)算機(jī)節(jié)點(diǎn)300還包括其自 己的許可后臺(tái)程序340和地址文件360。盡管沒(méi)有在圖4中示出,但是第三計(jì)算機(jī)節(jié)點(diǎn)300 還包括加密許可文件。當(dāng)至少一個(gè)程序320提出許可請(qǐng)求時(shí),許可庫(kù)330將該請(qǐng)求發(fā)送到許可后臺(tái)程序 340。許可后臺(tái)程序340首先嘗試從其自己的加密許可文件(未在圖4中示出)訪問(wèn)(或 “檢查”)所請(qǐng)求的許可。如果所請(qǐng)求的許可在加密許可文件中,則許可后臺(tái)程序340將所 請(qǐng)求的許可從許可庫(kù)330提供給程序320。如果所請(qǐng)求的許可沒(méi)有在加密許可文件中(即所請(qǐng)求的許可不是本地可用的), 則許可后臺(tái)程序340可以發(fā)布請(qǐng)求來(lái)從已知的遠(yuǎn)程節(jié)點(diǎn)(其也被稱為遠(yuǎn)程主機(jī))之一訪問(wèn) (或“檢查”)許可。圖4說(shuō)明第三計(jì)算機(jī)節(jié)點(diǎn)300的許可后臺(tái)程序340和第一計(jì)算機(jī)節(jié)點(diǎn) 100的許可后臺(tái)程序140之間的連接和通信。盡管未在圖4中示出,但是第一計(jì)算機(jī)節(jié)點(diǎn) 100包括加密許可文件150和包含對(duì)等系統(tǒng)中遠(yuǎn)程定位的許可節(jié)點(diǎn)的計(jì)算機(jī)地址的地址文 件 160。許可后臺(tái)程序140訪問(wèn)所借用的許可文件170以確定所請(qǐng)求的許可是否是可用 的。如果所請(qǐng)求的許可位于借用許可文件170內(nèi),則許可后臺(tái)程序140將該所請(qǐng)求的許可標(biāo) 記為正在使用并且準(zhǔn)許許可請(qǐng)求。許可后臺(tái)程序140將所請(qǐng)求的許可從借用許可文件170 提供給許可后臺(tái)程序340。許可后臺(tái)程序340將所借用的許可提供給許可庫(kù)330和請(qǐng)求程 序 320。如果所請(qǐng)求的許可沒(méi)有位于借用許可文件170內(nèi),則許可后臺(tái)程序140報(bào)告找回 到第三計(jì)算機(jī)節(jié)點(diǎn)300中的許可后臺(tái)程序340。當(dāng)許可后臺(tái)程序340向?qū)Φ染W(wǎng)絡(luò)中的其他節(jié)點(diǎn)發(fā)出訪問(wèn)許可的請(qǐng)求時(shí),其他節(jié)點(diǎn) 將該請(qǐng)求級(jí)聯(lián)到他們本地地址列表(如果有的話)中的其他節(jié)點(diǎn)直到找到所請(qǐng)求的許可或 者許可搜索因?yàn)槿鄙賹?duì)等網(wǎng)絡(luò)中連接的任何節(jié)點(diǎn)上的所請(qǐng)求許可的可用性而失敗為止。如先前所提到的那樣,當(dāng)許可后臺(tái)程序140向許可后臺(tái)程序340發(fā)送借用許可時(shí), 許可后臺(tái)程序340將所借用的許可提供給程序320。第一計(jì)算機(jī)節(jié)點(diǎn)100是已相對(duì)于原始 供體節(jié)點(diǎn)(第二計(jì)算機(jī)節(jié)點(diǎn)200)離線的借用節(jié)點(diǎn)。第一計(jì)算機(jī)節(jié)點(diǎn)100又以這種方式用 作將先前借用的許可用于第三計(jì)算機(jī)節(jié)點(diǎn)300的許可服務(wù)器。圖5說(shuō)明示出本發(fā)明的方法的有利實(shí)施例的步驟的流程圖500。在第一步驟中,提 供計(jì)算機(jī)許可節(jié)點(diǎn)的對(duì)等網(wǎng)絡(luò)(步驟510)。然后,第一計(jì)算機(jī)節(jié)點(diǎn)100中的請(qǐng)求程序120 向其許可后臺(tái)程序140發(fā)布許可請(qǐng)求(步驟520)。許可后臺(tái)程序140在本地許可文件150 和本地許可庫(kù)130中搜索所請(qǐng)求的許可,并且如果找到,則將所請(qǐng)求的許可發(fā)送給請(qǐng)求程 序120 (步驟530)。如果許可后臺(tái)程序140在第一計(jì)算機(jī)節(jié)點(diǎn)100中沒(méi)有找到所請(qǐng)求的許可,則許可 后臺(tái)程序140向?qū)Φ染W(wǎng)絡(luò)中的每個(gè)計(jì)算機(jī)節(jié)點(diǎn)發(fā)送許可請(qǐng)求,對(duì)于所述計(jì)算機(jī)節(jié)點(diǎn)來(lái)說(shuō)該 許可后臺(tái)程序140具有地址并且該許可請(qǐng)求通過(guò)網(wǎng)絡(luò)節(jié)點(diǎn)級(jí)聯(lián)(步驟540)。然后,第二計(jì) 算機(jī)節(jié)點(diǎn)200中的許可后臺(tái)程序240確定所請(qǐng)求的許可處于其本地許可文件250中并且處 于其本地許可庫(kù)230中(步驟550)。然后,許可后臺(tái)程序240(1)將所請(qǐng)求的許可標(biāo)記為正在使用,并且(2)準(zhǔn)許許可 后臺(tái)程序140的許可請(qǐng)求,并且(3)在許可準(zhǔn)許的持續(xù)時(shí)間內(nèi)將心跳信號(hào)發(fā)給許可后臺(tái)程序140 (步驟560)。當(dāng)(1)請(qǐng)求程序120釋放許可,或(2)當(dāng)請(qǐng)求程序120終止,或(3)當(dāng) 心跳信號(hào)失效時(shí),許可終止(步驟570)。當(dāng)許可終止時(shí),則許可后臺(tái)程序240將該許可釋放 返回到對(duì)于后續(xù)許可合適的本地許可池中(步驟580)。圖6說(shuō)明示出本發(fā)明的方法的另一個(gè)有利實(shí)施例的步驟的流程圖600。在第一步 驟中,提供計(jì)算機(jī)許可節(jié)點(diǎn)的對(duì)等網(wǎng)絡(luò)(步驟610)。然后,第一計(jì)算機(jī)節(jié)點(diǎn)100中的請(qǐng)求程 序120向其許可后臺(tái)程序140發(fā)布許可請(qǐng)求(步驟620)。許可后臺(tái)程序140在本地許可文 件150和本地許可庫(kù)130中搜索所請(qǐng)求的許可,并且如果找到,則將所請(qǐng)求的許可發(fā)送給請(qǐng) 求程序120 (步驟630)。如果許可后臺(tái)程序140沒(méi)有在第一計(jì)算機(jī)節(jié)點(diǎn)100中找到所請(qǐng)求的許可,則許可 后臺(tái)程序140向?qū)Φ染W(wǎng)絡(luò)中的每個(gè)計(jì)算機(jī)節(jié)點(diǎn)發(fā)送借用請(qǐng)求,對(duì)于所述計(jì)算機(jī)節(jié)點(diǎn)來(lái)說(shuō)該 許可后臺(tái)程序140具有地址并且該借用請(qǐng)求通過(guò)網(wǎng)絡(luò)節(jié)點(diǎn)級(jí)聯(lián)(步驟640)。然后,第二計(jì) 算機(jī)節(jié)點(diǎn)200中的許可后臺(tái)程序240確定所請(qǐng)求的許可處于其本地供體文件270中并且處 于其本地許可庫(kù)230中(步驟650)。然后,許可后臺(tái)程序240(1)將所請(qǐng)求的許可標(biāo)記為在所請(qǐng)求的時(shí)間限制內(nèi)正在 使用,并且(2)將所請(qǐng)求的借用許可發(fā)送到第一計(jì)算機(jī)節(jié)點(diǎn)100中的許可后臺(tái)程序140和 借用許可文件270中(步驟660)。然后,第一計(jì)算機(jī)節(jié)點(diǎn)100和第二計(jì)算機(jī)節(jié)點(diǎn)200之間 的網(wǎng)絡(luò)連接被切斷并且該第一計(jì)算機(jī)節(jié)點(diǎn)100利用所借用的許可離線操作(步驟670)。當(dāng)離線操作時(shí),則第一計(jì)算機(jī)節(jié)點(diǎn)100隨后向第三計(jì)算機(jī)節(jié)點(diǎn)300許可所借用的 許可(步驟680)。當(dāng)原始請(qǐng)求時(shí)間限制期滿時(shí),所借用的許可自動(dòng)終止(步驟690)。當(dāng)所 借用的許可終止時(shí),則許可后臺(tái)程序240將所借用的許可釋放返回到對(duì)于后續(xù)許可或后續(xù) 借用合適的本地許可池中(步驟695)。闡明遍及該專利文件使用的某些詞和短語(yǔ)的定義是有益的。術(shù)語(yǔ)“應(yīng)用”、“程序” 和“例程”指的是一個(gè)或多個(gè)計(jì)算機(jī)程序、指令集、過(guò)程、功能、對(duì)象、類、實(shí)例或適于以適合 的計(jì)算機(jī)語(yǔ)言來(lái)實(shí)施的相關(guān)數(shù)據(jù)。術(shù)語(yǔ)“耦合”以及其衍生詞指的是兩個(gè)或更多元件之間 任何直接或間接通信,而不管這些元件彼此是否是物理接觸的。術(shù)語(yǔ)“發(fā)射”、“接收”和“通信”以及其衍生詞包括直接和間接通信。術(shù)語(yǔ)“包括” 和“包含”以及其衍生詞意味著非限制性地包括。術(shù)語(yǔ)“或”是包括性的,意味著和/或。短 語(yǔ)“與...相關(guān)聯(lián)的”和“與其相關(guān)聯(lián)的”以及其衍生詞可意味著包括、包括在內(nèi)、與...互 連、包含、包含在內(nèi)、連接到或與.· ·連接、耦合到或與.· ·耦合、與.· ·通信、與.· ·協(xié)作、 交錯(cuò)、并置、接近、綁定到或與...綁定、具有、具有...的屬性等等。術(shù)語(yǔ)“控制器”意味著 控制至少一個(gè)操作的任何設(shè)備、系統(tǒng)或其部分??刂破骺梢砸杂布?、固件、軟件或其至少兩 個(gè)的某種組合來(lái)實(shí)施。與任何特定控制器相關(guān)聯(lián)的功能可以是集中式的或分布式的,而不 管是本地地還是遠(yuǎn)程地。盡管本公開(kāi)已描述了某些實(shí)施例以及通常相關(guān)聯(lián)的方法,但是這些實(shí)施例和方法 的變化和置換將對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)是顯而易見(jiàn)的。因此,示例實(shí)施例的上述描述不限 定或約束本公開(kāi)。在不偏離由下述權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,還有可 能存在其他改變、替換和變化。
權(quán)利要求
一種用于管理軟件許可的裝置,包括在對(duì)等計(jì)算機(jī)網(wǎng)絡(luò)中連接在一起的多個(gè)計(jì)算機(jī)(100、200、300),其中每個(gè)計(jì)算機(jī)是所述網(wǎng)絡(luò)的計(jì)算機(jī)節(jié)點(diǎn);其中每個(gè)計(jì)算機(jī)節(jié)點(diǎn)包括作為軟件許可提供器和軟件許可用戶而運(yùn)行的軟件許可管理控制器。
2.根據(jù)權(quán)利要求1所述的裝置,其中每個(gè)計(jì)算機(jī)節(jié)點(diǎn)中的軟件許可管理控制器包括與 其他計(jì)算機(jī)節(jié)點(diǎn)中的其他許可后臺(tái)程序(140)通信的許可后臺(tái)程序(140)。
3.根據(jù)權(quán)利要求2所述的裝置,其中第一計(jì)算機(jī)節(jié)點(diǎn)中的許可后臺(tái)程序響應(yīng)于從所述 第一計(jì)算機(jī)節(jié)點(diǎn)中的請(qǐng)求程序接收到對(duì)軟件許可的請(qǐng)求,在所述第一計(jì)算機(jī)節(jié)點(diǎn)中搜索所 請(qǐng)求的軟件許可。
4.根據(jù)權(quán)利要求3所述的裝置,其中所述第一計(jì)算機(jī)節(jié)點(diǎn)中的許可后臺(tái)程序響應(yīng)于在 所述第一計(jì)算機(jī)節(jié)點(diǎn)中沒(méi)有找到所請(qǐng)求的軟件許可,向其他計(jì)算機(jī)節(jié)點(diǎn)中的其他許可后臺(tái) 程序發(fā)送借用軟件許可的請(qǐng)求。
5.根據(jù)權(quán)利要求4所述的裝置,其中第二計(jì)算機(jī)節(jié)點(diǎn)中的許可后臺(tái)程序確定所請(qǐng)求的 軟件許可位于所述第二計(jì)算機(jī)節(jié)點(diǎn)中;并且將所述所請(qǐng)求的軟件許可標(biāo)記為在所請(qǐng)求的時(shí) 間限制內(nèi)正在使用;以及將所述所請(qǐng)求的軟件許可發(fā)送給所述第一計(jì)算機(jī)節(jié)點(diǎn)中的許可后 臺(tái)程序。
6.根據(jù)權(quán)利要求5所述的裝置,其中在所述第一計(jì)算機(jī)節(jié)點(diǎn)已從所述第二計(jì)算機(jī)節(jié)點(diǎn) 接收到所借用的軟件許可之后,從所述第二計(jì)算機(jī)節(jié)點(diǎn)借用軟件許可的第一計(jì)算機(jī)節(jié)點(diǎn)的 連接被從所述第二計(jì)算機(jī)節(jié)點(diǎn)切斷。
7.一種用于管理軟件許可的裝置,包括在對(duì)等計(jì)算機(jī)網(wǎng)絡(luò)中連接在一起的多個(gè)計(jì)算機(jī)(100、200、300),其中每個(gè)計(jì)算機(jī)是所 述網(wǎng)絡(luò)的計(jì)算機(jī)節(jié)點(diǎn);其中每個(gè)計(jì)算機(jī)節(jié)點(diǎn)包括軟件許可管理控制器,該軟件許可管理控制器包括與其他計(jì) 算機(jī)節(jié)點(diǎn)中的其他許可后臺(tái)程序(140)通信的許可后臺(tái)程序(140);其中第一計(jì)算機(jī)節(jié)點(diǎn)中的許可后臺(tái)程序響應(yīng)于從所述第一計(jì)算機(jī)節(jié)點(diǎn)中的請(qǐng)求程序 接收到對(duì)軟件許可的請(qǐng)求,在所述第一計(jì)算機(jī)節(jié)點(diǎn)中搜索所述所請(qǐng)求的軟件許可;以及其中響應(yīng)于在所述第一計(jì)算機(jī)節(jié)點(diǎn)中沒(méi)有找到所請(qǐng)求的軟件許可,所述第一計(jì)算機(jī)節(jié) 點(diǎn)中的許可后臺(tái)程序向其他計(jì)算機(jī)節(jié)點(diǎn)中的其他許可后臺(tái)程序發(fā)送對(duì)許可所述軟件許可 的請(qǐng)求。
8.根據(jù)權(quán)利要求7所述的裝置,其中當(dāng)出現(xiàn)下述各項(xiàng)之一時(shí)所請(qǐng)求的軟件許可終止 所述第一計(jì)算機(jī)節(jié)點(diǎn)中的請(qǐng)求程序釋放所述所請(qǐng)求的軟件許可,所述第一計(jì)算機(jī)節(jié)點(diǎn)中的 請(qǐng)求程序終止操作;以及所述心跳信號(hào)失敗。
9.一種用于管理軟件許可的方法,包括下述步驟連接(510、610)對(duì)等計(jì)算機(jī)網(wǎng)絡(luò)中的多個(gè)計(jì)算機(jī),其中每個(gè)計(jì)算機(jī)是所述網(wǎng)絡(luò)的計(jì)算 機(jī)節(jié)點(diǎn);在每個(gè)計(jì)算機(jī)節(jié)點(diǎn)內(nèi)提供軟件許可管理控制器;以及操作(520-580,620-695)作為軟件許可提供器和軟件許可用戶的所述軟件許可管理 控制器。
10.根據(jù)權(quán)利要求9所述的方法,還包括步驟臨時(shí)從第二計(jì)算機(jī)節(jié)點(diǎn)的軟件許可管理控制器借用軟件許可以由第一計(jì)算機(jī)節(jié)點(diǎn)的 軟件許可管理控制器使用;以及將來(lái)自所述第一計(jì)算機(jī)節(jié)點(diǎn)的軟件許可管理控制器的許可準(zhǔn)許給第三計(jì)算機(jī)節(jié)點(diǎn)的 軟件許可管理控制器以使用從所述第二計(jì)算機(jī)節(jié)點(diǎn)的軟件許可管理控制器借用的軟件許可。
全文摘要
公開(kāi)了一種能夠臨時(shí)重新定位可用軟件許可的對(duì)等軟件許可管理系統(tǒng)。允許將該對(duì)等軟件許可管理系統(tǒng)中的任何節(jié)點(diǎn)(100、200、300)(即在其中安裝本發(fā)明的軟件許可管理系統(tǒng)軟件的任何計(jì)算機(jī))用作許可提供器,或者用作許可用戶,或者用作許可提供器和許可用戶二者。對(duì)等軟件許可管理系統(tǒng)的任何節(jié)點(diǎn)具有如下能力臨時(shí)從另一個(gè)節(jié)點(diǎn)借用軟件許可,以及將所借用的軟件許可重新用于又一個(gè)節(jié)點(diǎn),就像借用該軟件許可的節(jié)點(diǎn)本身是許可提供器一樣。將對(duì)等軟件許可管理系統(tǒng)的每個(gè)節(jié)點(diǎn)作為許可用戶和許可提供器二者來(lái)運(yùn)行。
文檔編號(hào)G06F21/24GK101960459SQ200980106659
公開(kāi)日2011年1月26日 申請(qǐng)日期2009年2月10日 優(yōu)先權(quán)日2008年2月28日
發(fā)明者C·D·埃利奧特, D·J·帕文, S·G·諾里斯 申請(qǐng)人:霍尼韋爾國(guó)際公司