朱理化 黃 浩 方 偉
(中國航發(fā)控制系統(tǒng)研究所 江蘇 無錫 214000)
浮動授權是一種計算機軟件許可證管理方式。在這種方式下,軟件有限數(shù)量的授權由授權管理服務器通過計算機網(wǎng)絡共享給一個較大數(shù)量的用戶群。目前,浮動授權得到了廣泛使用,尤其適用于那些被眾多用戶間歇使用的昂貴軟件。一方面,軟件供應商通過浮動授權解決方案避免因侵權行為而造成損失;另一方面,通過動態(tài)分配機制,使用軟件的組織也不再需要為每個用戶都購買軟件許可證,從而降低了軟件購買費用。
購買浮動授權的計算機軟件時,需要估算出合適的授權數(shù)量。購買的授權數(shù)量太多,會導致授權閑置,造成資源浪費;反之,購買的授權數(shù)量太少,會導致授權緊張,降低工作效率。估算授權數(shù)量的難點在于缺少明確的量化指標及其計算方法。
目前,軟件采購實踐中常用的估算方法有3種:1) 經(jīng)驗比例法。由預期的用戶數(shù)量按照經(jīng)驗比例折算出浮動授權的購買數(shù)量。經(jīng)驗比例一般由軟件供應商提供,是對眾多用戶使用情況的統(tǒng)計結(jié)果。但每個企業(yè)都有各自的特點,授權需求數(shù)量與用戶數(shù)量的比例也會有所差異,直接套用這個經(jīng)驗比例,會產(chǎn)生較大的風險。2) 分批購買法。為了防止一次性購買的授權數(shù)量超過實際使用需求,可以分多批購買。先購買少量的授權,然后對使用情況進行監(jiān)視,經(jīng)過一段時間的統(tǒng)計,若發(fā)現(xiàn)授權數(shù)量不足,則再購買一批。多次重復此過程,直到授權數(shù)量滿足要求。該方法可以有效降低購買風險,但是由于需要發(fā)生多輪軟件購買、使用情況統(tǒng)計,效率較低。3) 試用統(tǒng)計法。購買之前,先從軟件供應商處獲取大量的試用授權,進行一段時間的試用,統(tǒng)計出授權的需求數(shù)量,再做出購買決策。該方法只需要一輪試用便可以準確統(tǒng)計出的授權的需求數(shù)量,效率較高。但是,如此規(guī)模的試用授權一般難以獲取。在理論研究方面,文獻[3]研究了浮動授權系統(tǒng)的數(shù)學模型,給出了一種授權數(shù)量的計算方法,但沒有建立合適的量化指標,不能解決軟件采購方的需求差異問題。文獻[4]研究了某圖書館管理軟件的浮動授權數(shù)量優(yōu)化方法,但建立的數(shù)學模型不適應于一般的浮動授權系統(tǒng)。
本文首先基于排隊理論建立了浮動授權系統(tǒng)的數(shù)學模型,提出以申請獲準率作為確定浮動授權數(shù)量的量化指標,并以此為基礎給出了一種軟件浮動授權采購數(shù)量的估算方法。通過在某安全性分析軟件采購活動中的應用對該數(shù)學模型進行了驗證,并對該數(shù)學模型進行了適當?shù)暮喕?/p>
浮動授權系統(tǒng)的工作原理如圖1所示。軟件客戶端安裝于諸多用戶計算機上,軟件授權安裝于授權管理服務器上。當一個用戶希望使用該軟件時,通過網(wǎng)絡向授權管理服務器發(fā)出授權申請。授權管理服務器檢查授權總量和已占用授權數(shù)量,若有空閑授權,則準許該用戶使用軟件;否則,拒絕該用戶使用軟件。用戶在完成軟件使用后會通知服務器釋放授權。授權管理服務器在準許用戶使用或用戶釋放授權時會更新已占用授權數(shù)量。
圖1 浮動授權系統(tǒng)的工作原理圖
浮動授權系統(tǒng)的關鍵規(guī)則包括:1) 當有空閑授權時,先申請的用戶被許可使用軟件;2) 同時使用軟件的用戶數(shù)量不得大于浮動授權的總量。
2.1 排隊論概述
排隊是日常生活中經(jīng)常遇到的現(xiàn)象。如顧客到商店購買物品,若待付款顧客的數(shù)量超過服務臺數(shù)量,顧客就不能立即得到服務,因而就出現(xiàn)了排隊現(xiàn)象。對于排隊系統(tǒng),如果服務設備太大,就會發(fā)生空閑浪費;如果服務設備太少,排隊現(xiàn)象就會嚴重,對顧客體驗造成不利影響。因此,排隊系統(tǒng)的管理人員必須考慮如何取得平衡,以提高服務質(zhì)量。排隊論就是為解決上述問題而發(fā)展的一門學科。
排隊論將排隊系統(tǒng)分為輸入過程、排隊規(guī)則、服務機構(gòu)三個部分。輸入過程即指顧客到達排隊系統(tǒng)的過程,其特征包括顧客的總體數(shù)量、到來的方式、相繼到達的時間間隔等。排隊規(guī)則,指系統(tǒng)從已到達顧客中選擇服務對象的規(guī)則,可能包括先到先服務、隨機服務、有優(yōu)先權的服務等。服務機構(gòu)的特征包括服務臺數(shù)量、服務臺的排列方式、服務方式、服務時間等。
排隊論給出了排隊系統(tǒng)的分類方法,并針對不同類型的排隊系統(tǒng)建立了數(shù)學模型。應用排隊論時,需首先分析待研究系統(tǒng)的特征,從而得到該系統(tǒng)的具體類型,然后建立數(shù)學模型并計算出該系統(tǒng)的評價指標,最后根據(jù)評價指標做出優(yōu)化決策。
排隊論使用Kendall符號X/Y/Z/A/B/C對排隊系統(tǒng)進行分類。其中:
X表示顧客到達間隔時間的分布,可以為負指數(shù)分布(M)、一般服務時間分布(G)、k階愛爾朗分布(Ek)、確定型分布(D)等;
Y表示服務時間的分布,也可以為負指數(shù)分布(M)、一般服務時間分布(G)、k階愛爾朗分布(Ek)、確定型分布(D)等;
Z表示服務臺個數(shù);
A表示系統(tǒng)容量限制;
B表示顧客源數(shù)量;
C表示服務規(guī)則,可以為先到先服務(FCFS)、隨機服務等。
2.2 浮動授權系統(tǒng)的排隊類型
從浮動授權系統(tǒng)的工作過程描述可以發(fā)現(xiàn)顧客、排隊規(guī)則、服務機構(gòu)等排隊系統(tǒng)的典型特征。因此,該系統(tǒng)可抽象為一種排隊系統(tǒng)。為了確定浮動授權系統(tǒng)的具體類型,對排隊系統(tǒng)的特征因素分析如下:
1) 顧客到達的間隔時間分布 基于如下假設和分析,可以認為授權申請的間隔時間符合參數(shù)為λ的負指數(shù)分布:
(1) 無后效性。在不相重疊的時間區(qū)間內(nèi)用戶發(fā)起授權申請的數(shù)量可以合理假設為相互獨立。
(2) 平穩(wěn)性和有限性。對充分小的時間Δt,在時間區(qū)間[t,t+Δt]內(nèi)有1個用戶發(fā)起授權申請的概率與t無關,而約與Δt成正比,即P1(t,t+Δt)=λΔt。實際情況與此假設可能會有偏差。例如,每個工作日剛開始上班時授權申請相對集中,而接近下班時授權申請則相對偏少。對此,我們僅建立授權申請較穩(wěn)定的時段的數(shù)學模型。
(3) 普通性。對充分小的時間Δt, 在時間區(qū)間[t,t+Δt]內(nèi)有2個或2個以上用戶發(fā)起申請的概率極小,以致可以忽略不計。
2) 服務時間的分布 授權申請間隔時間的分析同樣適用于授權占用時間。通過向軟件供應商咨詢或開展軟件試用,可以得到授權占用平均時間(1/μ)。那么,授權占用時間符合參數(shù)為μ的負指數(shù)分布。
3) 服務臺個數(shù) 浮動授權總量(c)即為服務臺個數(shù),一般為多個。
4) 系統(tǒng)容量限制 用戶申請被拒絕后,即回到顧客源。該系統(tǒng)不存在有形的隊列。文獻[3]認為被拒絕用戶,會像其他未申請過授權的用戶一樣在一段時間后再發(fā)起申請,因此認為系統(tǒng)的容量即為浮動授權總量,從而建立了M/M/c/c/m類型的隊列模型。實際上,用戶被拒絕后,其使用目的尚未達成,在等待一段時間后,必然再次發(fā)起申請。可以理解為被拒絕用戶會進入一個虛擬隊列等待授權準許。而且,授權管理服務器一般可以提供目前的授權占用狀態(tài),被拒絕用戶可以據(jù)此在授權空閑時再次發(fā)起申請。因此,可以認為存在一個無限長的虛擬隊列,即系統(tǒng)的容量為無窮大。
5) 顧客源數(shù)目 軟件授權一般僅在特定范圍內(nèi)使用。因此用戶總量(m)是有限的。
6) 服務規(guī)則 在有空閑授權時,先發(fā)起申請的用戶獲得授權。因此,該系統(tǒng)服務規(guī)則為先到先服務FCFS。
綜上所述,軟件浮動授權系統(tǒng)可以抽象為M/M/c/∞/m/FCFS類型的排隊系統(tǒng),如圖2所示。其授權申請的間隔時間符合參數(shù)為λ的負指數(shù)分布,授權占用時間符合參數(shù)為μ的負指數(shù)分布,有c個服務臺,系統(tǒng)容量為無窮大,顧客群為m。
圖2 M/M/c/∞/m/FCFS類型的排隊系統(tǒng)結(jié)構(gòu)圖
2.3 浮動授權系統(tǒng)的數(shù)學模型
對于該排隊系統(tǒng),由排隊理論可知,排隊系統(tǒng)中有0個用戶的概率為:
式中:
排隊系統(tǒng)中有n個用戶的概率為:
2.4 浮動授權數(shù)量估算方法
為了量化授權總量的適中程度,本文提出了申請獲準率指標。該指標指某一時刻一個用戶發(fā)出申請能夠得到授權的概率。申請獲準率越高,用戶體驗越好,工作效率越高,授權的使用頻率越低。根據(jù)定義,購買c個授權時的申請獲準率為:
軟件采購組織根據(jù)待采購軟件的資金預算、關鍵程度、預期的用戶體驗度等情況設定一個申請獲準率的閾值Gr。那么,軟件采購的數(shù)量為:N=c,當G(c)≥Gr且G(c-1) 上述估算方法在某安全性分析軟件采購時得到了應用。首先,從軟件供應商處獲取了少量的試用授權,并開展試用。試用期間對該軟件的使用情況進行了統(tǒng)計。用戶申請使用該軟件的間隔時間(1/λ)平均為5 h。單個用戶每次占用授權的時間(1/μ)平均為1 h。一段時期內(nèi)使用該軟件的用戶數(shù)量(m)約為10人。軟件采購組織根據(jù)自身需要設定的申請獲準率閾值為90%。按照本文提出的估算方法,軟件授權采購數(shù)量與預期的申請獲準率的關系如圖3所示。從圖3可見,當購買的授權數(shù)量為3個時,獲準率為93%。因此,該軟件的浮動授權購買數(shù)量確定為3個。 圖3 某軟件的預期申請獲準率與購買數(shù)量關系圖 在該軟件采購完成后,軟件授權在一段時間內(nèi)的實際使用情況如圖4所示。實際獲準率平均為90%,與預期基本相符。 圖4 某軟件的實際申請獲準率情況 在上述估算方法的應用過程發(fā)現(xiàn)本文提出的數(shù)學模型過于復雜,不便使用。在排隊模型的基礎上做如下假設:用戶發(fā)起的授權申請都能得到準許。在授權的數(shù)量足夠使用的情況下,這個假設近似成立。那么,單個用戶在某時刻發(fā)起授權申請的概率為λ/μ。某個時刻,有n個用戶發(fā)起授權申請的概率可簡化為: 使用上述簡化模型估算的某需求管理軟件的浮動授權采購數(shù)量與使用排隊模型估算的浮動授權采購數(shù)量的比較如圖5所示。當申請獲準率大于90%以上時,兩者重合。以90%的授權獲準率閾值計算,得到的購買數(shù)量為3個,與排隊模型相同。因此,當軟件采購組織設置的閾值大于90%時,可以采用簡化模型進行授權購買數(shù)量估算。 圖5 使用簡化模型和排隊模型估算的授權采購數(shù)量比較 本文基于排隊理論建立了軟件浮動授權系統(tǒng)的數(shù)學模型,提出以申請獲準率為評價浮動授權數(shù)量適中程度的量化指標,并以此為基礎給出了一種軟件浮動授權采購數(shù)量的估算方法。通過在某軟件采購活動中的應用對該估算方法進行了驗證,并對數(shù)學模型進行了適當?shù)暮喕?/p> 在浮動授權數(shù)量估算過程中值得注意的是,組織對軟件的使用需求可能是不穩(wěn)定的,會隨著組織的任務負荷、軟件的推廣程度等因素發(fā)生變化。以圖4某軟件的實際申請獲準率情況為例,第8周以后隨著軟件的推廣,申請獲準率有所下降。因此,建議在軟件采購前進行試用以統(tǒng)計出盡量準確的參數(shù),并將本文的估算方法與分批購買法結(jié)合使用。 參 考 文 獻 [1] 王琴琴,郭師虹.軟件授權技術的研究[J].計算機技術與發(fā)展,2012,22(9):235-238. [2] 陳智聰.基于浮動授權管理的許可證使用報表系統(tǒng)的研究與實現(xiàn)[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] 熊擁軍,胡四元.排隊理論在電子文獻服務系統(tǒng)中的應用[J].現(xiàn)代圖書情報技術,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] 楊曉妍.排隊論在交通控制系統(tǒng)中的應用研究[D].青島:青島科技大學,2015. [9] 林琳,高亞靜.基于排隊理論的充電站最優(yōu)配置[J].電力科學與工程,2014,30(4):33-37.3 應用與驗證
4 模型的簡化與比較
5 結(jié) 語