一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理方法與系統(tǒng),本發(fā)明涉及局域網(wǎng)絡(luò)中許可證進(jìn)行動(dòng)態(tài)授權(quán)的領(lǐng)域,解決許可證的網(wǎng)絡(luò)共享。該有軟件許可證動(dòng)態(tài)授權(quán)管理系統(tǒng)包括數(shù)據(jù)庫(kù)、許可證生成服務(wù)器、許可證授權(quán)管理服務(wù)器以及客戶(hù)機(jī);其中epoll技術(shù)實(shí)現(xiàn)并發(fā)授權(quán);心跳探測(cè)技術(shù)實(shí)現(xiàn)無(wú)效網(wǎng)絡(luò)的許可證回收;該授權(quán)管理方法和系統(tǒng)與傳統(tǒng)方式相比,提供高效高質(zhì)的授權(quán)服務(wù)。
【專(zhuān)利說(shuō)明】—種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件許可證授權(quán)【技術(shù)領(lǐng)域】,特別是涉及一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理方法和裝置,該方法用于在局域網(wǎng)內(nèi)對(duì)網(wǎng)絡(luò)浮動(dòng)許可證進(jìn)行動(dòng)態(tài)授權(quán)和相關(guān)管理操作,實(shí)現(xiàn)許可證的網(wǎng)絡(luò)共享。
【背景技術(shù)】
[0002]計(jì)算機(jī)軟件作為一種知識(shí)密集型的商品化產(chǎn)品,在開(kāi)發(fā)過(guò)程中付出的成本往往是硬件價(jià)值的數(shù)倍乃至數(shù)百倍。然而,從軟件誕生開(kāi)始,非法復(fù)制問(wèn)題造成了軟件生廠(chǎng)商的重大損失。由此,軟件保護(hù)技術(shù)應(yīng)運(yùn)而生。目前,常用的軟件保護(hù)方法有:軟盤(pán)加密、密碼表加密、序列號(hào)保護(hù)、Key File保護(hù)、⑶-check、軟件狗、軟件加殼和許可證保護(hù)。
[0003]許可證保護(hù)方法是序列號(hào)加密方法的一個(gè)發(fā)展,它能實(shí)現(xiàn)更多的功能性需求,靈活度更高,特別適合那些大型的功能復(fù)雜模塊多的商業(yè)軟件。當(dāng)用戶(hù)從網(wǎng)上下載或購(gòu)買(mǎi)軟件時(shí),軟件安裝好之后第一次啟動(dòng),一般會(huì)有兩種情況:要么提示用戶(hù)安裝許可證文件,要么生成一個(gè)小文件,這個(gè)小文件里面的內(nèi)容是用戶(hù)機(jī)器的一些指紋信息,也可以是一串加密過(guò)的數(shù)字。用戶(hù)將這個(gè)小文件發(fā)送給軟件開(kāi)發(fā)商,軟件開(kāi)發(fā)商根據(jù)用戶(hù)的需求來(lái)生成不同類(lèi)型的許可證,如使用期限,使用功能模塊等。
[0004]常用的許可證文件分為單機(jī)鎖定許可證和網(wǎng)絡(luò)浮動(dòng)許可證兩大類(lèi)。單機(jī)鎖定許可證是根據(jù)計(jì)算機(jī)的MAC地址、硬盤(pán)號(hào)等將軟件鎖定到特定計(jì)算機(jī),適合于單個(gè)用戶(hù)在單臺(tái)計(jì)算機(jī)上使用軟件的情況。網(wǎng)絡(luò)浮動(dòng)許可證是在一臺(tái)計(jì)算機(jī)上所生成的若干可共享的許可證文件,用戶(hù)通過(guò)網(wǎng)絡(luò)與之通訊并取得許可證后,即可在網(wǎng)絡(luò)中的任何一臺(tái)客戶(hù)機(jī)上運(yùn)行相應(yīng)的應(yīng)用軟件。
[0005]由于單機(jī)鎖定許可證與特定主機(jī)緊密相關(guān),因此,軟件的使用許可僅指向網(wǎng)絡(luò)中的某些特定節(jié)點(diǎn),不可更改到其他機(jī)器上使用,該方法具有很大的局限性。而網(wǎng)絡(luò)浮動(dòng)許可證可浮動(dòng)在網(wǎng)絡(luò)上并動(dòng)態(tài)地分配給網(wǎng)絡(luò)上正在申請(qǐng)使用許可的各個(gè)節(jié)點(diǎn),完成軟件許可的浮動(dòng)并發(fā)授權(quán),具有較大的靈活性和較高的使用效率等優(yōu)點(diǎn)。因此,在大型商業(yè)軟件的許可證授權(quán)管理方法中常采用網(wǎng)絡(luò)浮動(dòng)許可證來(lái)實(shí)現(xiàn)軟件許可證的動(dòng)態(tài)發(fā)放與回收。目前,隨著客戶(hù)端并發(fā)連接訪(fǎng)問(wèn)數(shù)目的增多,授權(quán)服務(wù)器承載的壓力增大,嚴(yán)重影響了服務(wù)器的性能,導(dǎo)致用戶(hù)無(wú)法訪(fǎng)問(wèn)或不能及時(shí)獲得授權(quán)服務(wù),不能滿(mǎn)足日益增長(zhǎng)的服務(wù)需求。此外,當(dāng)客戶(hù)端異常掉線(xiàn)時(shí),服務(wù)器也不能及時(shí)獲知該情況,使得授權(quán)無(wú)效占用而導(dǎo)致別的軟件用戶(hù)無(wú)法申請(qǐng)得到合法授權(quán)。
[0006]
因此,在局域網(wǎng)中,針對(duì)功能復(fù)雜、模塊眾多的大型商業(yè)軟件,為了有效保護(hù)軟件版權(quán),最大化地為客戶(hù)端軟件的并發(fā)授權(quán)申請(qǐng)?zhí)峁┝己玫母卟l(fā)訪(fǎng)問(wèn)服務(wù),最終提高軟件的經(jīng)濟(jì)效率,我們需要設(shè)計(jì)一種更靈活、更高效的軟件授權(quán)管理方法來(lái)實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)浮動(dòng)許可證文件的動(dòng)態(tài)共享。
【發(fā)明內(nèi)容】
[0007]本發(fā)明提供了一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理系統(tǒng)。該系統(tǒng)用于在局域網(wǎng)內(nèi)對(duì)網(wǎng)絡(luò)浮動(dòng)許可證進(jìn)行動(dòng)態(tài)授權(quán)和相關(guān)管理操作,實(shí)現(xiàn)許可證的網(wǎng)絡(luò)共享。
[0008]本發(fā)明為解決上述技術(shù)問(wèn)題所采用的技術(shù)方案是:
[0009]1.一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理方法,其特征在于包含以下步驟:
[0010]步驟一.客戶(hù)端發(fā)送計(jì)算機(jī)硬件指紋信息到許可證授權(quán)管理服務(wù)器;
[0011]步驟二.許可證授權(quán)管理服務(wù)器解析客戶(hù)端的申請(qǐng)授權(quán)信息;
[0012]步驟三.根據(jù)步驟二的信息許可證授權(quán)管理服務(wù)器執(zhí)行:
[0013]三-1.申請(qǐng)授權(quán)信息不符合許可證規(guī)則,則提示用戶(hù)重新申請(qǐng)?jiān)S可證,跳轉(zhuǎn)到步驟十一;
[0014]三-2.申請(qǐng)授權(quán)信息符合許可證規(guī)則,則進(jìn)入步驟四;
[0015]步驟四.許可證授權(quán)管理服務(wù)器向許可證生成服務(wù)器申請(qǐng)浮動(dòng)許可證文件;
[0016]步驟五.許可證生成服務(wù)器生成網(wǎng)絡(luò)浮動(dòng)許可證;
[0017]步驟六.許可證生成服務(wù)器將網(wǎng)絡(luò)浮動(dòng)許可證文件的相關(guān)信息存儲(chǔ)于數(shù)據(jù)庫(kù),繼而發(fā)送許可證到許可證授權(quán)管理服務(wù)器進(jìn)行綁定;
步驟七.許可證授權(quán)管理服務(wù)器驗(yàn)證浮動(dòng)許可證文件:
七-1.許可證文件不符合驗(yàn)證規(guī)則,則發(fā)送給客戶(hù)端驗(yàn)證失敗的消息,跳轉(zhuǎn)到步驟十一 ;
七-2.許可證文件通過(guò)驗(yàn)證規(guī)則,檢測(cè)最大并發(fā)數(shù):
(七-2-a).若用戶(hù)量已達(dá)到最大并發(fā)數(shù),則發(fā)送給客戶(hù)端申請(qǐng)不成功的信息,跳轉(zhuǎn)到步驟十一;
(七-2-b).若用戶(hù)量未達(dá)到最大并發(fā)數(shù),允許申請(qǐng)授權(quán)的最大客戶(hù)端用戶(hù)數(shù),且并發(fā)計(jì)數(shù)器加一;
步驟八.許可證授權(quán)服務(wù)器啟動(dòng)守護(hù)程序;
步驟九.發(fā)送驗(yàn)證通過(guò)信息到客戶(hù)機(jī);
步驟十.授權(quán)成功后,啟動(dòng)退出策略:
(十-1).如果軟件沒(méi)有正常啟動(dòng),則提示用戶(hù)并且將授權(quán)歸還服務(wù)器后退出程序;
(十-2).如果軟件正常使用后退出,則先將授權(quán)歸還服務(wù)器后退出程序;
步驟十一.執(zhí)行程序結(jié)束。
2.進(jìn)一步地,其特征在于許可證授權(quán)管理服務(wù)器采用印oil技術(shù)實(shí)現(xiàn)并發(fā)授權(quán)技術(shù)。
3.進(jìn)一步地,其特征在于所述許可證授權(quán)服務(wù)器守護(hù)程序包含心跳探測(cè)技術(shù),步驟如
下:
3-1.軟件獲取許可證授權(quán)管理服務(wù)器授權(quán)運(yùn)行時(shí),將本次鏈接信息記錄到許可證授權(quán)管理服務(wù)器的希哈表中,flag值至0,同時(shí)客戶(hù)端定時(shí)器開(kāi)始計(jì)時(shí),管理定時(shí)器開(kāi)始計(jì)時(shí);3-2.軟件運(yùn)行過(guò)程中,客戶(hù)端軟件每間隔時(shí)間Tc向許可證授權(quán)管理服務(wù)器發(fā)送一個(gè)心跳報(bào)文,Tc為所述客戶(hù)端定時(shí)器的預(yù)先設(shè)置時(shí)間;
3-3.許可證授權(quán)管理服務(wù)器未接收到心跳報(bào)文,則所述希哈表中該條授權(quán)信息的flag的值不變;
3-4.許可證授權(quán)管理服務(wù)器接受到心跳報(bào)文,則將所述希哈表中該條授權(quán)信息的flag的值至I,表示網(wǎng)絡(luò)存活;
3-5.許可證授權(quán)管理服務(wù)器每間隔時(shí)間Ts (Ts>Tc)遍歷所述希哈表,Ts為管理定時(shí)器的預(yù)先設(shè)置時(shí)間,并根據(jù)每一項(xiàng)flag的鍵值選擇執(zhí)行;
(3-5-1) flag值為I則保持網(wǎng)絡(luò),并將值I至為O ;
(3-5-2)flag值為O則認(rèn)為客戶(hù)端軟件非正常狀態(tài),首先回收軟件授權(quán),并將該條連接信息從希哈表中刪除,最大并發(fā)數(shù)減1,退出程序。
4.進(jìn)一步地,其特征在于步驟一、步驟二中發(fā)送的申請(qǐng)授權(quán)信息由DES算法加密。
5.進(jìn)一步地,其特征在于所述步驟五中網(wǎng)絡(luò)浮動(dòng)許可證采用MD5或SHA或DE5加密算法實(shí)現(xiàn)許可證加密。
6.進(jìn)一步地,其特征在于驗(yàn)證所述許可證規(guī)則的步驟:
6-1.是否有許可證文件,是則繼續(xù)執(zhí)行6-2 ;否則執(zhí)行步驟三-1 ;
6-2.是否是浮動(dòng)許可證文件,是則繼續(xù)執(zhí)行6-3 ;否則執(zhí)行步驟三-1 ;
6-3.許可證文件是否被修改,否則繼續(xù)執(zhí)行6-4 ;是則執(zhí)行步驟三-1 ;
6-4.用戶(hù)是否被授權(quán),是則執(zhí)行步驟三-2;否則執(zhí)行步驟三-1。
7.進(jìn)一步地,其特征在于步驟七中所述驗(yàn)證規(guī)則的驗(yàn)證步驟如下:
7-1.用戶(hù)是否被授權(quán),是則執(zhí)行7-2,否則執(zhí)行步驟七-1;
7-2.驗(yàn)證申請(qǐng)的模塊是否被授權(quán),是則執(zhí)行步驟七_(dá)2,否則執(zhí)行步驟步驟七-1 ;
8.一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理系統(tǒng),該系統(tǒng)包括許可證授權(quán)管理服務(wù)器虛擬連接上游許可證生成服務(wù)器虛以及下游的客戶(hù)端,其特征在于所述許可證生成服務(wù)器包含數(shù)據(jù)庫(kù)用于存儲(chǔ)許可證信息;許可證生成服務(wù)器用于生成加密網(wǎng)絡(luò)浮動(dòng)許可證;許可證授權(quán)管理服務(wù)器用于管理與回收授權(quán)許可。
9.進(jìn)一步地,其特征是心跳探測(cè)模塊位于許可證授權(quán)管理服務(wù)器和客戶(hù)端建立的虛擬網(wǎng)絡(luò)中,心跳探測(cè)模塊包含客戶(hù)端定時(shí)器、管理定時(shí)器、希哈表。
10.進(jìn)一步地,其特征在于所述步數(shù)據(jù)庫(kù)存儲(chǔ)許可證信息包括:種子文件地址、需要授權(quán)的子模塊信息、許可證文件地址、被授權(quán)的用戶(hù)、授權(quán)類(lèi)型。
11.進(jìn)一步地,其特征在于所述計(jì)算機(jī)硬件指紋信息包含:網(wǎng)卡MAC地址、CPU序列號(hào)或磁盤(pán)序列號(hào)或BIOS序列號(hào)具有唯一性的指紋信息。
[0018]為了增加軟件開(kāi)發(fā)商現(xiàn)有軟件的收入流,軟件許可證動(dòng)態(tài)授權(quán)管理方法采取了靈活度高的軟件許可證授權(quán)方式。它根據(jù)軟件用戶(hù)的需求數(shù)來(lái)動(dòng)態(tài)發(fā)放浮動(dòng)許可證,完成對(duì)軟件功能模塊及其使用期限的限制,除此之外,它還能限制網(wǎng)絡(luò)中使用軟件的用戶(hù)數(shù)目。從某種角度上來(lái)講這種授權(quán)管理方式并不是把軟件的授權(quán)與軟件用戶(hù)的機(jī)器綁定死,只要是在授權(quán)的機(jī)器當(dāng)中,均可以在所限制的數(shù)目?jī)?nèi)同時(shí)運(yùn)行授權(quán)軟件,即實(shí)現(xiàn)軟件許可證的網(wǎng)絡(luò)共享。如果網(wǎng)絡(luò)中正常使用的授權(quán)軟件實(shí)例個(gè)數(shù)超過(guò)了授權(quán)限制,即使是授權(quán)的機(jī)器也無(wú)法正常啟動(dòng)軟件。同時(shí),許可證授權(quán)管理服務(wù)器還具有回收軟件授權(quán)的功能。當(dāng)網(wǎng)絡(luò)中的軟件用戶(hù)正常退出軟件之后,服務(wù)器可以回收該軟件模塊的授權(quán),便于其他軟件用戶(hù)申請(qǐng)使用;當(dāng)軟件用戶(hù)使用的計(jì)算機(jī)發(fā)生異常短線(xiàn),如系統(tǒng)崩潰死機(jī),電源斷電以及網(wǎng)線(xiàn)無(wú)意間斷開(kāi)網(wǎng)絡(luò),服務(wù)器可以通過(guò)與客戶(hù)端配合的心跳機(jī)制,在一定時(shí)間內(nèi)若收不到客戶(hù)端的心跳包則認(rèn)為其不再存活,從而回收該客戶(hù)端的軟件授權(quán)。這種動(dòng)態(tài)的軟件授權(quán)管理方式非常適合局域網(wǎng)中用戶(hù)共同使用的軟件。[0019]在本發(fā)明的框架中,為提高軟件的安全性,許可證生成服務(wù)器采用MD5、SHA, DE5等加密算法生成一種基于機(jī)器指紋的網(wǎng)絡(luò)浮動(dòng)許可證;數(shù)據(jù)庫(kù)用于存放許可證生成服務(wù)器中所生成的許可證文件的具體信息,包括種子文件地址、需要授權(quán)的子模塊信息、許可證文件地址、被授權(quán)的用戶(hù)、授權(quán)的類(lèi)型等;客戶(hù)端用于連接許可證授權(quán)管理服務(wù)器,提出授權(quán)申請(qǐng),并在用戶(hù)退出時(shí)通知許可證授權(quán)管理服務(wù)器釋放許可證資源。許可證授權(quán)管理服務(wù)器根據(jù)浮動(dòng)許可證的授權(quán)信息,利用并發(fā)授權(quán)技術(shù)和心跳探測(cè)技術(shù)來(lái)對(duì)網(wǎng)絡(luò)中的客戶(hù)端軟件進(jìn)行動(dòng)態(tài)授權(quán)發(fā)放和回收。服務(wù)器在啟動(dòng)時(shí)首先校驗(yàn)浮動(dòng)許可證文件的有效性,運(yùn)行服務(wù)器的機(jī)器身份認(rèn)證,通過(guò)這些校驗(yàn)之后,服務(wù)器讀取許可證文件的授權(quán)信息,包括浮動(dòng)許可證授權(quán)的客戶(hù)機(jī)器的身份信息,授權(quán)的軟件模塊,使用期限及相應(yīng)的授權(quán)并發(fā)數(shù)目,隨后等待客戶(hù)端軟件用戶(hù)的軟件授權(quán)申請(qǐng)或用戶(hù)軟件退出回收授權(quán)。
[0020]在該機(jī)制保護(hù)下的軟件,軟件啟動(dòng)時(shí)調(diào)用客戶(hù)端模塊來(lái)訪(fǎng)問(wèn)服務(wù)器并申請(qǐng)軟件授權(quán)。服務(wù)器與客戶(hù)端之間要實(shí)現(xiàn)一套安全的通信交互協(xié)議,客戶(hù)端模塊啟動(dòng)時(shí),會(huì)采集機(jī)器指紋信息,并將該指紋信息和申請(qǐng)的授權(quán)信息按照協(xié)議,加密之后發(fā)送到服務(wù)器。服務(wù)器端解析客戶(hù)端的申請(qǐng)授權(quán)信息并作出響應(yīng),客戶(hù)端模塊根據(jù)服務(wù)器的響應(yīng)結(jié)果來(lái)采取軟件的下一步執(zhí)行操作。授權(quán)成功之后則軟件啟動(dòng)正常,否則提示用戶(hù)并退出。用戶(hù)正常退出軟件之前,會(huì)將授權(quán)歸還給服務(wù)器,以便其他用戶(hù)申請(qǐng)使用。如果客戶(hù)端軟件異常退出,服務(wù)器將在某段時(shí)間內(nèi)接受不到客戶(hù)端發(fā)送的心跳包,從而認(rèn)為其已網(wǎng)絡(luò)死亡,并回收其軟件功能模塊的授權(quán)和其他系統(tǒng)資源等。
[0021](I)并發(fā)授權(quán)技術(shù)
隨著客戶(hù)端并發(fā)連接訪(fǎng)問(wèn)數(shù)目的增多,服務(wù)器承載的壓力加大,嚴(yán)重影響服務(wù)器的服務(wù)性能,導(dǎo)致用戶(hù)無(wú)法訪(fǎng)問(wèn)或不能及時(shí)獲得服務(wù)?;趕elect/poll等傳統(tǒng)的I/O復(fù)用輪詢(xún)技術(shù)的服務(wù)器漸漸不能滿(mǎn)足日益增長(zhǎng)的服務(wù)需求。許可證授權(quán)管理服務(wù)器采用了目前Linux2.6內(nèi)核提供的epoll技術(shù)。epoll是Linux下多路復(fù)用I/O接口 select/poll的增強(qiáng)版本,它能顯著提高程序在大量并發(fā)連接中只有少量活躍的情況下的系統(tǒng)CPU利用率,因?yàn)樗鼤?huì)復(fù)用文件描述符集合來(lái)傳遞結(jié)果而不用迫使開(kāi)發(fā)者每次等待事件之前都必須重新準(zhǔn)備要被偵聽(tīng)的文件描述符集合;另一原因就是獲取事件的時(shí)候,它無(wú)須遍歷整個(gè)被偵聽(tīng)的描述符集,只要遍歷那些被內(nèi)核I/O事件異步喚醒而加入Ready隊(duì)列的描述符集合就行了。epoll除了提供select/poll那種1/0事件的電平觸發(fā)(Level Triggered)夕卜,還提供了邊沿觸發(fā)(Edge Triggered),這就使得用戶(hù)空間程序有可能緩存1/0狀態(tài),減少epoll_wait/印oll_pwait的調(diào)用,提高應(yīng)用程序效率。該技術(shù)具有良好的高并發(fā)訪(fǎng)問(wèn)服務(wù)性能,它能最大化地為客戶(hù)端軟件的并發(fā)授權(quán)申請(qǐng)?zhí)峁└咝У姆?wù)。
[0022](2)心跳探測(cè)技術(shù)
軟件在獲得許可證授權(quán)管理服務(wù)器的授權(quán)運(yùn)行后,在客戶(hù)端和服務(wù)器之間維持著一個(gè)虛擬的連接狀態(tài),如果這個(gè)虛擬連接異常斷開(kāi)之后,客戶(hù)端即使正常退出,在向服務(wù)器歸還授權(quán)時(shí)將歸還不成功,而且服務(wù)器也不知道客戶(hù)端掉線(xiàn)了,無(wú)法回收授權(quán),造成授權(quán)被無(wú)效占用。為此,在服務(wù)器和客戶(hù)端之間采用心跳機(jī)制來(lái)防止客戶(hù)端的異常斷線(xiàn),讓服務(wù)器知道客戶(hù)端軟件是網(wǎng)絡(luò)存活的。即使客戶(hù)端異常斷開(kāi),服務(wù)器在某段時(shí)間后也能發(fā)現(xiàn)客戶(hù)端異常掉線(xiàn)而網(wǎng)絡(luò)死亡,從而回收授權(quán),防止授權(quán)無(wú)效占用而導(dǎo)致別的軟件用戶(hù)無(wú)法申請(qǐng)得到合法授權(quán)。該機(jī)制需要客戶(hù)端和服務(wù)器端之間的配合才能使服務(wù)器有效回收授權(quán)資源。每個(gè)客戶(hù)端連接至服務(wù)器,服務(wù)器都有與之對(duì)應(yīng)的Socket連接。如果客戶(hù)端軟件獲得了授權(quán)管理服務(wù)器的授權(quán),客戶(hù)端和服務(wù)器的底層通信模塊會(huì)一直保持這個(gè)連接狀態(tài)直到客戶(hù)端退出。由于客戶(hù)端模塊中包含了發(fā)送心跳包的定時(shí)器,軟件在運(yùn)行的整個(gè)過(guò)程中,會(huì)由定時(shí)器每隔時(shí)間Tc通過(guò)客戶(hù)端模塊向服務(wù)器發(fā)送心跳包信息,以告知服務(wù)它是網(wǎng)絡(luò)存活的。
[0023]服務(wù)器將所有與客戶(hù)端對(duì)應(yīng)的Socket連接描述符記錄到一張Clients_List表中,并通過(guò)這些Socket連接描述符9來(lái)了解每個(gè)客戶(hù)端的信息,而且在有新的客戶(hù)端授權(quán)成功后,服務(wù)器會(huì)將新的Socket連接描述符加入那張表中。Clients_List表是一張哈希表,因?yàn)楣1淼牟檎宜俣群芸?,它以Socket連接描述符作為鍵,F(xiàn)lag標(biāo)志符作為值,鍵值一一對(duì)應(yīng)。Flag標(biāo)志符有兩種值,“O”或“ I ”,“O”服務(wù)器表示沒(méi)有在規(guī)定時(shí)間內(nèi)接收到客戶(hù)端的心跳,即服務(wù)器認(rèn)為其網(wǎng)絡(luò)死亡并采取相應(yīng)動(dòng)作,回收軟件授權(quán)和其他資源等。“I”表示服務(wù)器在規(guī)定時(shí)間內(nèi)收到了客戶(hù)端的心跳包信息,即服務(wù)器認(rèn)為其是網(wǎng)絡(luò)存活的。
[0024]服務(wù)器里也設(shè)定了定時(shí)器,每隔時(shí)間Ts (Ts>Tc)會(huì)遍歷Client_List表,根據(jù)每一項(xiàng)鍵值的情況采取動(dòng)作,并將所有鍵對(duì)應(yīng)的值重新設(shè)置為“O”。服務(wù)器在收到客戶(hù)端心跳時(shí),會(huì)去修改其該表中其Socket連接描述符鍵對(duì)應(yīng)的值為“I”。在下一個(gè)Ts遍歷該表時(shí),如果發(fā)現(xiàn)該值為“0”,則認(rèn)為該鍵Socket連接描述符對(duì)應(yīng)的客戶(hù)端軟件已網(wǎng)絡(luò)死亡,回收客戶(hù)端軟件的授權(quán),并從Client_List表中刪除該項(xiàng)。如果發(fā)現(xiàn)該值為“ 1”,則重置為“0”,等待下一次客戶(hù)端的心跳包到達(dá)。
[0025]由于在網(wǎng)絡(luò)中,一般是局域網(wǎng),心跳包從客戶(hù)端通過(guò)網(wǎng)絡(luò)傳送到達(dá)至服務(wù)器需要一定時(shí)間,這里特別要注意時(shí)間段Tc和Ts的設(shè)置,要使它們的時(shí)間差足夠客戶(hù)端的心跳包到達(dá)服務(wù)器,才能取得比較好的效果。如果時(shí)間差值小或Ts小于Tc,客戶(hù)端還來(lái)不及發(fā)送心跳包或心跳包還在網(wǎng)絡(luò)的傳送過(guò)程中,服務(wù)器在Ts后遍歷發(fā)現(xiàn)其標(biāo)志為“0”,認(rèn)為客戶(hù)端網(wǎng)絡(luò)死亡從而回收授權(quán)。事實(shí)上客戶(hù)端是網(wǎng)絡(luò)存活的,或已發(fā)送心跳包而服務(wù)器未收到,這樣是不符合邏輯的, 也不科學(xué)。因此必須要設(shè)置Ts大于Tc,并且使其差值設(shè)置足夠。
[0026](3)通信協(xié)議
許可證授權(quán)管理服務(wù)器與客戶(hù)端模塊之間的信息通信有一套簡(jiǎn)單的通信協(xié)議。客戶(hù)端向服務(wù)器發(fā)出申請(qǐng)信息,服務(wù)器根據(jù)協(xié)議解析收到的信息,并根據(jù)浮動(dòng)許可證授權(quán)的情況響應(yīng),客戶(hù)端收到服務(wù)器的響應(yīng)信息,根據(jù)協(xié)議解析,從而判斷是否獲得授權(quán)啟動(dòng)軟件,軟件退出時(shí)將授權(quán)歸還給服務(wù)器,服務(wù)器回收授權(quán)以防止授權(quán)被占用,便于其他軟件用戶(hù)申請(qǐng)。具體協(xié)議內(nèi)容格式如表1、表2、表3。
對(duì)象 I格式I描述
WFm~機(jī)器指紋:申客戶(hù)端首先獲取機(jī)器指紋信息,然后將該信息和申請(qǐng)模塊名稱(chēng)以及申請(qǐng)標(biāo)志“on”三段請(qǐng)模塊:申請(qǐng)信息以“:”分開(kāi)形成一個(gè)長(zhǎng)字符串,采用ms算法加密該字符串,將加密結(jié)果發(fā)送給服
__務(wù)器,等待服務(wù)器響應(yīng)。_
服務(wù)器授權(quán)模塊:相服務(wù)器接收到客戶(hù)端的加密信息,采用DES解密,解析發(fā)現(xiàn)客戶(hù)端是要申請(qǐng)某軟件模塊應(yīng)標(biāo)志的授權(quán),便根據(jù)授權(quán)的情況作出響應(yīng),將授權(quán)模塊和響應(yīng)標(biāo)志以“”分開(kāi),DES加密后發(fā)__I送給客戶(hù)端,由客戶(hù)端模塊解密和解析響應(yīng)的內(nèi)容。并根據(jù)內(nèi)容判斷進(jìn)行下一步動(dòng)作。[0027]表1客戶(hù)端申請(qǐng)授權(quán)協(xié)議格式表
【權(quán)利要求】
1.一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理方法,其特征在于包含以下步驟: 步驟一.客戶(hù)端發(fā)送計(jì)算機(jī)硬件指紋信息到許可證授權(quán)管理服務(wù)器; 步驟二.許可證授權(quán)管理服務(wù)器解析客戶(hù)端的申請(qǐng)授權(quán)信息; 步驟三.根據(jù)步驟二的信息許可證授權(quán)管理服務(wù)器執(zhí)行: 三-1.申請(qǐng)授權(quán)信息不符合許可證規(guī)則,則提示用戶(hù)重新申請(qǐng)?jiān)S可證,跳轉(zhuǎn)到步驟十一 ; 三-2.申請(qǐng)授權(quán)信息符合許可證規(guī)則,則進(jìn)入步驟四; 步驟四.許可證授權(quán)管理服務(wù)器向許可證生成服務(wù)器申請(qǐng)浮動(dòng)許可證文件; 步驟五.許可證生成服務(wù)器生成網(wǎng)絡(luò)浮動(dòng)許可證; 步驟六.許可證生成服務(wù)器將網(wǎng)絡(luò)浮動(dòng)許可證文件的相關(guān)信息存儲(chǔ)于數(shù)據(jù)庫(kù),繼而發(fā)送許可證到許可證授權(quán)管理服務(wù)器進(jìn)行綁定; 步驟七.許可證授權(quán)管理服務(wù)器驗(yàn)證浮動(dòng)許可證文件: 七-1.許可證文件不符合驗(yàn)證規(guī)則,則發(fā)送給客戶(hù)端驗(yàn)證失敗的消息,跳轉(zhuǎn)到步驟十一 ; 七-2.許可證文件通過(guò)驗(yàn)證規(guī)則,檢測(cè)最大并發(fā)數(shù): (七-2-a).若用戶(hù)量已達(dá)到最大并發(fā)數(shù),則發(fā)送給客戶(hù)端申請(qǐng)不成功的信息,跳轉(zhuǎn)到步驟十一; (七-2-b).若用戶(hù)量未達(dá)到最大并發(fā)數(shù),允許申請(qǐng)授權(quán)的最大客戶(hù)端用戶(hù)數(shù),且并發(fā)計(jì)數(shù)器加一; 步驟八.許可證授權(quán)服務(wù)器啟動(dòng)守護(hù)程序; 步驟九.發(fā)送驗(yàn)證通過(guò)信息到客戶(hù)機(jī); 步驟十.授權(quán)成功后,啟動(dòng)退出策略: (十-1).如果軟件沒(méi)有正常啟動(dòng),則提示用戶(hù)并且將授權(quán)歸還服務(wù)器后退出程序; (十-2).如果軟件正常使用后退出,則先將授權(quán)歸還服務(wù)器后退出程序; 步驟十一.執(zhí)行程序結(jié)束。
2.根據(jù)權(quán)利要求1所述一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理方法,其特征在于許可證授權(quán)管理服務(wù)器采用epoll技術(shù)實(shí)現(xiàn)并發(fā)授權(quán)技術(shù)。
3.根據(jù)權(quán)利要求1所述一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理方法,其特征在于所述許可證授權(quán)服務(wù)器守護(hù)程序包含心跳探測(cè)技術(shù),步驟如下: 3-1.軟件獲取許可證授權(quán)管理服務(wù)器授權(quán)運(yùn)行時(shí),將本次鏈接信息記錄到許可證授權(quán)管理服務(wù)器的希哈表中,flag值至0,同時(shí)客戶(hù)端定時(shí)器開(kāi)始計(jì)時(shí),管理定時(shí)器開(kāi)始計(jì)時(shí);3-2.軟件運(yùn)行過(guò)程中,客戶(hù)端軟件每間隔時(shí)間Tc向許可證授權(quán)管理服務(wù)器發(fā)送一個(gè)心跳報(bào)文,Tc為所述客戶(hù)端定時(shí)器的預(yù)先設(shè)置時(shí)間; 3-3.許可證授權(quán)管理服務(wù)器未接收到心跳報(bào)文,則所述希哈表中該條授權(quán)信息的flag的值不變; 3-4.許可證授權(quán)管理服務(wù)器接受到心跳報(bào)文,則將所述希哈表中該條授權(quán)信息的flag的值至I,表示網(wǎng)絡(luò)存活; 3-5.許可證授權(quán)管理服務(wù)器每間隔時(shí)間Ts (Ts>Tc)遍歷所述希哈表,Ts為管理定時(shí)器的預(yù)先設(shè)置時(shí)間,并根據(jù)每一項(xiàng)flag的鍵值選擇執(zhí)行,:(3-5-1) flag值為I則保持網(wǎng)絡(luò),并將值I至為O ; (3-5-2)flag值為O則認(rèn)為客戶(hù)端軟件非正常狀態(tài),首先回收軟件授權(quán),并將該條連接信息從希哈表中刪除,最大并發(fā)數(shù)減1,退出程序。
4.根據(jù)權(quán)利要求1所述一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理方法,其特征在于步驟一、步驟二中發(fā)送的申請(qǐng)授權(quán)信息由DES算法加密。
5.根據(jù)權(quán)利要求1所述一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理方法,其特征在于所述步驟五中網(wǎng)絡(luò)浮動(dòng)許可證采用MD5或SHA或DE5加密算法實(shí)現(xiàn)許可證加密。
6.根據(jù)權(quán)利要求1所述一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理方法,其特征在于驗(yàn)證所述許可證規(guī)則的步驟: 6-1.是否有許可證文件,是則繼續(xù)執(zhí)行6-2 ;否則執(zhí)行步驟三-1 ; 6-2.是否是浮動(dòng)許可證文件,是則繼續(xù)執(zhí)行6-3 ;否則執(zhí)行步驟三-1 ; 6-3.許可證文件是否被修改,否則繼續(xù)執(zhí)行6-4 ;是則執(zhí)行步驟三-1 ; 6-4.用戶(hù)是否被授權(quán),是則執(zhí)行步驟三-2;否則執(zhí)行步驟三-1。
7.根據(jù)權(quán)利要求1所述一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理方法,其特征在于步驟七中所述驗(yàn)證規(guī)則的驗(yàn)證步驟如下: 7-1.用戶(hù)是否被授權(quán),是則執(zhí)行7-2,否則執(zhí)行步驟七-1; 7-2.驗(yàn)證申請(qǐng)的模塊是否被授權(quán),是則執(zhí)行步驟七_(dá)2,否則執(zhí)行步驟步驟七-1 ; 一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理系統(tǒng),該系統(tǒng)包括許可證授權(quán)管理服務(wù)器虛擬連接上游許可證生成服務(wù)器虛以及下游的客戶(hù)端,其特征在于所述許可證生成服務(wù)器包含數(shù)據(jù)庫(kù)用于存儲(chǔ)許可證信息;許可證生成服務(wù)器用于生成加密網(wǎng)絡(luò)浮動(dòng)許可證;許可證授權(quán)管理服務(wù)器用于管理與回收授權(quán)許可。
8.根據(jù)權(quán)利要求8所述一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理系統(tǒng),其特征是心跳探測(cè)模塊位于許可證授權(quán)管理服務(wù)器和客戶(hù)端建立的虛擬網(wǎng)絡(luò)中,心跳探測(cè)模塊包含客戶(hù)端定時(shí)器、管理定時(shí)器、希哈表。
9.根據(jù)權(quán)利要求8所述一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理系統(tǒng),其特征在于所述步數(shù)據(jù)庫(kù)存儲(chǔ)許可證信息包括:種子文件地址、需要授權(quán)的子模塊信息、許可證文件地址、被授權(quán)的用戶(hù)、授權(quán)類(lèi)型。
10.根據(jù)權(quán)利要求8所述一種基于局域網(wǎng)的軟件許可證動(dòng)態(tài)授權(quán)管理系統(tǒng),其特征在于所述計(jì)算機(jī)硬件指紋信息包含:網(wǎng)卡MAC地址、CPU序列號(hào)或磁盤(pán)序列號(hào)或BIOS序列號(hào)具有唯一性的指紋信息。
【文檔編號(hào)】G06F21/12GK103838987SQ201310252358
【公開(kāi)日】2014年6月4日 申請(qǐng)日期:2013年6月24日 優(yōu)先權(quán)日:2013年6月24日
【發(fā)明者】李玉軍, 王潤(rùn), 廖郭波, 張強(qiáng) 申請(qǐng)人:電子科技大學(xué)