朱理化 黃 浩 方 偉
(中國航發控制系統研究所 江蘇 無錫 214000)
浮動授權是一種計算機軟件許可證管理方式。在這種方式下,軟件有限數量的授權由授權管理服務器通過計算機網絡共享給一個較大數量的用戶群。目前,浮動授權得到了廣泛使用,尤其適用于那些被眾多用戶間歇使用的昂貴軟件。一方面,軟件供應商通過浮動授權解決方案避免因侵權行為而造成損失;另一方面,通過動態分配機制,使用軟件的組織也不再需要為每個用戶都購買軟件許可證,從而降低了軟件購買費用。
購買浮動授權的計算機軟件時,需要估算出合適的授權數量。購買的授權數量太多,會導致授權閑置,造成資源浪費;反之,購買的授權數量太少,會導致授權緊張,降低工作效率。估算授權數量的難點在于缺少明確的量化指標及其計算方法。
目前,軟件采購實踐中常用的估算方法有3種:1) 經驗比例法。由預期的用戶數量按照經驗比例折算出浮動授權的購買數量。經驗比例一般由軟件供應商提供,是對眾多用戶使用情況的統計結果。但每個企業都有各自的特點,授權需求數量與用戶數量的比例也會有所差異,直接套用這個經驗比例,會產生較大的風險。2) 分批購買法。為了防止一次性購買的授權數量超過實際使用需求,可以分多批購買。先購買少量的授權,然后對使用情況進行監視,經過一段時間的統計,若發現授權數量不足,則再購買一批。多次重復此過程,直到授權數量滿足要求。該方法可以有效降低購買風險,但是由于需要發生多輪軟件購買、使用情況統計,效率較低。3) 試用統計法。購買之前,先從軟件供應商處獲取大量的試用授權,進行一段時間的試用,統計出授權的需求數量,再做出購買決策。該方法只需要一輪試用便可以準確統計出的授權的需求數量,效率較高。但是,如此規模的試用授權一般難以獲取。在理論研究方面,文獻[3]研究了浮動授權系統的數學模型,給出了一種授權數量的計算方法,但沒有建立合適的量化指標,不能解決軟件采購方的需求差異問題。文獻[4]研究了某圖書館管理軟件的浮動授權數量優化方法,但建立的數學模型不適應于一般的浮動授權系統。
本文首先基于排隊理論建立了浮動授權系統的數學模型,提出以申請獲準率作為確定浮動授權數量的量化指標,并以此為基礎給出了一種軟件浮動授權采購數量的估算方法。通過在某安全性分析軟件采購活動中的應用對該數學模型進行了驗證,并對該數學模型進行了適當的簡化。
浮動授權系統的工作原理如圖1所示。軟件客戶端安裝于諸多用戶計算機上,軟件授權安裝于授權管理服務器上。當一個用戶希望使用該軟件時,通過網絡向授權管理服務器發出授權申請。授權管理服務器檢查授權總量和已占用授權數量,若有空閑授權,則準許該用戶使用軟件;否則,拒絕該用戶使用軟件。用戶在完成軟件使用后會通知服務器釋放授權。授權管理服務器在準許用戶使用或用戶釋放授權時會更新已占用授權數量。

圖1 浮動授權系統的工作原理圖
浮動授權系統的關鍵規則包括:1) 當有空閑授權時,先申請的用戶被許可使用軟件;2) 同時使用軟件的用戶數量不得大于浮動授權的總量。
2.1 排隊論概述
排隊是日常生活中經常遇到的現象。如顧客到商店購買物品,若待付款顧客的數量超過服務臺數量,顧客就不能立即得到服務,因而就出現了排隊現象。對于排隊系統,如果服務設備太大,就會發生空閑浪費;如果服務設備太少,排隊現象就會嚴重,對顧客體驗造成不利影響。因此,排隊系統的管理人員必須考慮如何取得平衡,以提高服務質量。排隊論就是為解決上述問題而發展的一門學科。
排隊論將排隊系統分為輸入過程、排隊規則、服務機構三個部分。輸入過程即指顧客到達排隊系統的過程,其特征包括顧客的總體數量、到來的方式、相繼到達的時間間隔等。排隊規則,指系統從已到達顧客中選擇服務對象的規則,可能包括先到先服務、隨機服務、有優先權的服務等。服務機構的特征包括服務臺數量、服務臺的排列方式、服務方式、服務時間等。
排隊論給出了排隊系統的分類方法,并針對不同類型的排隊系統建立了數學模型。應用排隊論時,需首先分析待研究系統的特征,從而得到該系統的具體類型,然后建立數學模型并計算出該系統的評價指標,最后根據評價指標做出優化決策。
排隊論使用Kendall符號X/Y/Z/A/B/C對排隊系統進行分類。其中:
X表示顧客到達間隔時間的分布,可以為負指數分布(M)、一般服務時間分布(G)、k階愛爾朗分布(Ek)、確定型分布(D)等;
Y表示服務時間的分布,也可以為負指數分布(M)、一般服務時間分布(G)、k階愛爾朗分布(Ek)、確定型分布(D)等;
Z表示服務臺個數;
A表示系統容量限制;
B表示顧客源數量;
C表示服務規則,可以為先到先服務(FCFS)、隨機服務等。
2.2 浮動授權系統的排隊類型
從浮動授權系統的工作過程描述可以發現顧客、排隊規則、服務機構等排隊系統的典型特征。因此,該系統可抽象為一種排隊系統。為了確定浮動授權系統的具體類型,對排隊系統的特征因素分析如下:
1) 顧客到達的間隔時間分布 基于如下假設和分析,可以認為授權申請的間隔時間符合參數為λ的負指數分布:
(1) 無后效性。在不相重疊的時間區間內用戶發起授權申請的數量可以合理假設為相互獨立。
(2) 平穩性和有限性。對充分小的時間Δt,在時間區間[t,t+Δt]內有1個用戶發起授權申請的概率與t無關,而約與Δt成正比,即P1(t,t+Δt)=λΔt。實際情況與此假設可能會有偏差。例如,每個工作日剛開始上班時授權申請相對集中,而接近下班時授權申請則相對偏少。對此,我們僅建立授權申請較穩定的時段的數學模型。
(3) 普通性。對充分小的時間Δt, 在時間區間[t,t+Δt]內有2個或2個以上用戶發起申請的概率極小,以致可以忽略不計。
2) 服務時間的分布 授權申請間隔時間的分析同樣適用于授權占用時間。通過向軟件供應商咨詢或開展軟件試用,可以得到授權占用平均時間(1/μ)。那么,授權占用時間符合參數為μ的負指數分布。
3) 服務臺個數 浮動授權總量(c)即為服務臺個數,一般為多個。
4) 系統容量限制 用戶申請被拒絕后,即回到顧客源。該系統不存在有形的隊列。文獻[3]認為被拒絕用戶,會像其他未申請過授權的用戶一樣在一段時間后再發起申請,因此認為系統的容量即為浮動授權總量,從而建立了M/M/c/c/m類型的隊列模型。實際上,用戶被拒絕后,其使用目的尚未達成,在等待一段時間后,必然再次發起申請。可以理解為被拒絕用戶會進入一個虛擬隊列等待授權準許。而且,授權管理服務器一般可以提供目前的授權占用狀態,被拒絕用戶可以據此在授權空閑時再次發起申請。因此,可以認為存在一個無限長的虛擬隊列,即系統的容量為無窮大。
5) 顧客源數目 軟件授權一般僅在特定范圍內使用。因此用戶總量(m)是有限的。
6) 服務規則 在有空閑授權時,先發起申請的用戶獲得授權。因此,該系統服務規則為先到先服務FCFS。
綜上所述,軟件浮動授權系統可以抽象為M/M/c/∞/m/FCFS類型的排隊系統,如圖2所示。其授權申請的間隔時間符合參數為λ的負指數分布,授權占用時間符合參數為μ的負指數分布,有c個服務臺,系統容量為無窮大,顧客群為m。

圖2 M/M/c/∞/m/FCFS類型的排隊系統結構圖
2.3 浮動授權系統的數學模型
對于該排隊系統,由排隊理論可知,排隊系統中有0個用戶的概率為:
式中:
排隊系統中有n個用戶的概率為:
2.4 浮動授權數量估算方法
為了量化授權總量的適中程度,本文提出了申請獲準率指標。該指標指某一時刻一個用戶發出申請能夠得到授權的概率。申請獲準率越高,用戶體驗越好,工作效率越高,授權的使用頻率越低。根據定義,購買c個授權時的申請獲準率為:
軟件采購組織根據待采購軟件的資金預算、關鍵程度、預期的用戶體驗度等情況設定一個申請獲準率的閾值Gr。那么,軟件采購的數量為:N=c,當G(c)≥Gr且G(c-1) 上述估算方法在某安全性分析軟件采購時得到了應用。首先,從軟件供應商處獲取了少量的試用授權,并開展試用。試用期間對該軟件的使用情況進行了統計。用戶申請使用該軟件的間隔時間(1/λ)平均為5 h。單個用戶每次占用授權的時間(1/μ)平均為1 h。一段時期內使用該軟件的用戶數量(m)約為10人。軟件采購組織根據自身需要設定的申請獲準率閾值為90%。按照本文提出的估算方法,軟件授權采購數量與預期的申請獲準率的關系如圖3所示。從圖3可見,當購買的授權數量為3個時,獲準率為93%。因此,該軟件的浮動授權購買數量確定為3個。 圖3 某軟件的預期申請獲準率與購買數量關系圖 在該軟件采購完成后,軟件授權在一段時間內的實際使用情況如圖4所示。實際獲準率平均為90%,與預期基本相符。 圖4 某軟件的實際申請獲準率情況 在上述估算方法的應用過程發現本文提出的數學模型過于復雜,不便使用。在排隊模型的基礎上做如下假設:用戶發起的授權申請都能得到準許。在授權的數量足夠使用的情況下,這個假設近似成立。那么,單個用戶在某時刻發起授權申請的概率為λ/μ。某個時刻,有n個用戶發起授權申請的概率可簡化為: 使用上述簡化模型估算的某需求管理軟件的浮動授權采購數量與使用排隊模型估算的浮動授權采購數量的比較如圖5所示。當申請獲準率大于90%以上時,兩者重合。以90%的授權獲準率閾值計算,得到的購買數量為3個,與排隊模型相同。因此,當軟件采購組織設置的閾值大于90%時,可以采用簡化模型進行授權購買數量估算。 圖5 使用簡化模型和排隊模型估算的授權采購數量比較 本文基于排隊理論建立了軟件浮動授權系統的數學模型,提出以申請獲準率為評價浮動授權數量適中程度的量化指標,并以此為基礎給出了一種軟件浮動授權采購數量的估算方法。通過在某軟件采購活動中的應用對該估算方法進行了驗證,并對數學模型進行了適當的簡化。 在浮動授權數量估算過程中值得注意的是,組織對軟件的使用需求可能是不穩定的,會隨著組織的任務負荷、軟件的推廣程度等因素發生變化。以圖4某軟件的實際申請獲準率情況為例,第8周以后隨著軟件的推廣,申請獲準率有所下降。因此,建議在軟件采購前進行試用以統計出盡量準確的參數,并將本文的估算方法與分批購買法結合使用。 參 考 文 獻 [1] 王琴琴,郭師虹.軟件授權技術的研究[J].計算機技術與發展,2012,22(9):235-238. [2] 陳智聰.基于浮動授權管理的許可證使用報表系統的研究與實現[D].廣州:華南理工大學,2011. [3] Murtojarvi M,Jarvinen J,Johnsson M,et al.Determining the Proper Number and Price of Software Licenses[J].IEEE Transactions on Software Engineering,2007,33(5):305-315. [4] Quandt R E.On the optimum number of library software licenses[J].Journal of Economic Behavior & Organization,1999,38(3):349-356. [5] 運籌學教材編寫組.運籌學[M].北京:清華大學出版社,1990:310-348. [6] 熊擁軍,胡四元.排隊理論在電子文獻服務系統中的應用[J].現代圖書情報技術,2008,24(11):82-85. [7] He C X,Fu X D,Liu L,et al.Setting optional number of Web services in Web service communities based on queue theory[C]//IEEE International Conference on Software Engineering and Service Science.IEEE,2015:417-422. [8] 楊曉妍.排隊論在交通控制系統中的應用研究[D].青島:青島科技大學,2015. [9] 林琳,高亞靜.基于排隊理論的充電站最優配置[J].電力科學與工程,2014,30(4):33-37.3 應用與驗證


4 模型的簡化與比較

5 結 語