孫超 張云飛 韓慶時 劉銳



摘要:石油公司每年投入大量資金采購各類專業軟件,為掌握軟件許可證的真實需求,建立了石油專業軟件許可證監測系統,實現在公司范圍內軟件集中管理和統一監控,節約軟件投資成本。該研究提出了軟件許可證監測系統的設計思路和整體架構,論述了數據庫以及各個子系統的詳細設計與實現方法,形成了跨操作系統、跨軟件廠商的軟件許可證數據采集統一解決方案。目前系統采集的監測數據已成功為軟件規劃采購提供數據支撐,達到了降本增效的目標。
關鍵詞:石油專業軟件;許可證;統一監測;數據分析;flexlm
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)36-0229-03
1背景
石油勘探開發科研軟件在石油工業的快速發展中發揮了重要的作用,已成為科研生產不可缺少的技術研究手段[1]。在石油勘探領域中,有大量的解釋專業軟件被頻繁使用,在地震資料解釋過程中,經常遇到解釋軟件不夠用的情況,因此需要多個二級單位共同使用、互通有無,提高許可的使用效率[2]。
科研軟件許可證是公司投入巨額資金采購的重要資源,然而由于缺少數據監測工具,不掌握各分公司許可證的使用情況和真實需求,只能依據工作量和人員數量來估算,造成需求計劃不準確。另一方面,一套軟件中的功能模塊之間依賴關系及許可證配比關系復雜,僅憑經驗很難精準確定每個模塊的需求數量,缺少有效的評估及預測工具,無法確定軟件配置方案合理性,難于與廠商開展有效的溝通與談判。
隨著科研生產工作量和人員數量的增加,科研軟件需求數量不斷增加,采購資金逐年增長。公司從降本增效高度出發,提出了“科研軟件集中管理、統一監控、科學規劃”的要求,建立了科研軟件許可證監測系統。
2設計思路
本系統的設計目標是全面監測各分公司科研軟件的使用情況,為軟件采購方案提供數據支持。在系統建設中,應遵循以下原則。
2.1數據可視化
目前在用的科研軟件共有100余款,包含模塊數千個,許可證分布在北京、天津、深圳、湛江、上海等地的多個分公司,隨著時間的累積,監測數據量將達千萬條。因此,將海量的監測數據可視化,以圖表的形式展現十分重要。同時,在設計時應從多個不同維度的查看軟件的應用情況,例如同一款軟件不同分公司使用的峰谷情況、各分公司需求軟件模塊配比情況,本地、共享中心許可的使用情況等。
2.2系統易擴展
系統的擴展性體現為:第一是監測軟件的擴展性,公司每年會根據業務需要采購新的科研軟件,系統應支持多種操作系統、多種許可管理模式的許可證監測;第二是監測目標的擴展性,公司的整合重組可能要求對更多的分公司進行軟件許可證監測,因此要求能夠靈活配置監測目標,支持橫向擴展。
2.3數據易維護
系統應時刻保證監測數據的完整性和準確性,否則統計的報表價值將大打折扣,這就要求系統具有良好的數據維護性。監測數據一旦發現不完整或是存在不合理值,應及時發送告警給各分公司管理員,以保障監測數據的完整可靠。
3總體架構
系統按功能劃分為監測子系統、管理子系統和統計分析子系統,各個子系統之間保持松耦合關系,相互獨立部署、獨立運行,采用WebService技術通信。
監測子系統是整個系統的核心,負責實時采集各分公司的軟件許可證使用信息,并將其寫人數據庫形成歷史數據;管理子系統用于錄入科研軟件的靜態基礎數據,包括模塊、許可服務配置、合同等信息;統計分析子系統負責將科研軟件的使用情況可視化,以圖形控件和Excel輸出兩種形式進行有效呈現。
4系統的設計與實現
4.1數據庫設計
數據庫的主要實體集有許可證中心、許可服務、軟件、模塊和監測結果,ER圖如下所示。
根據ER圖,設計數據庫表,分別為:許可證中心(ID、名稱、編碼)、軟件(ID、廠商、描述)、軟件模塊分類(ID、軟件ID、模塊名稱、License名稱、描述)、模塊數量(ID、模塊ID、許可證中心ID、數量、更新時間)、許可服務(ID、許可證中心ID、軟件ID、IP、端口、主機名)、監測結果(ID、模塊ID、時間、使用數、部署數)。
4.2監測子系統
License是由軟件廠商創建的數字許可證,它規定了哪些用戶可以合法使用哪些軟件,以及使用軟件的哪部分功能,浮動Llcense是一種適用于網絡用戶的License使用模式,多個用戶可以同時使用軟件,直到同時使用人數達到License規定的上限[3]。國內外不同廠商的科研軟件采用不同的許可證管理工具,包括FlexLM、SafeNet以及白研管理工具,其中80%以上的軟件使用FlexLM。針對這種現狀,開發兩種數據采集接口:一種面向FlexLM,另一種面向非FlexLM。
4.2.1 FlexLM管理模式
FlexLM是當前軟件業中應用最為廣泛的軟件使用許可證管理軟件[4],在全球獲得了超過2000個軟件商的廣泛支持[5],使用FlexLM的最大優點是可通過網絡來實現軟件使用許可的授權。FlexLM提供了很多許可證管理工具,其中,Imstat命令可以監控所有網絡許可活動的狀態,具體用法為:
Imstat [-a] [-c license_file_list] [-f' [feature]] [-i [feature]] [-s[server]] [-S [vendor]][-t timeout_value]
這里我們主要使用Imstat -a -e port@IP來獲取指定許可證的實時使用狀態,其中port為端口號,IP為許可證服務器lP地址。Imstat命令的返回結果示例見下圖,從返回的字符串中我們可以得到該軟件所有模塊的使用數、部署數、正在使用軟件的賬號名、主機名、開始時間等信息,編寫程序將返回的字符串整理并寫入數據庫,即可形成許可證的監測歷史數據。
4.2.2非FlexLM管理模式
除了FlexLM,一些軟件還會使用其他的許可證管理工具,這些管理工具一般沒有提供許可證監控工具。為統一監測數據格式、便于系統的后續運維工作,我們要求軟件廠商提供許可證監測接口,通過http協議訪問返回JSON格式字符串,JSON格式示例如下:
[
{"featureName":"featurel ","version":" 1.O","licenseNum”:”6”,”usedNum": "1", "usageList": [{"userName": "userl", "hostName":“hostnamel ","ip":"192.168.0.1”, "startTime":"2019-10-10 15:1l:29”,”use(lNum”:”1”)]),
{ "featureName":"feature2","version":" 1.O","licenseNum":"8”,”useclNum": "I", "usageList": [{"userName": "user2", "hostName":”hostname2", "ip":”192.168.0.2", "startTime": "2019-10-10 13:23:42”,”usedNum”:”1”}]}”
]
返回值為一個JSON對象數組,JSON對象中的featureName為模塊名,version為版本號,licenseNum為部署數,usedNum為使用數,usageList為使用人員列表(包括用戶名、主機名、IP.開始時間,使用數),然后編寫統一的JSON解析程序完成監測數據入庫。
4.3管理子系統
管理子系統主要維護科研軟件的靜態基礎數據,包括許可證中心、許可服務、軟件和模塊等信息,具體功能如下:
4.3.1許可服務管理
許可服務管理是系統管理員與監控子系統的交互界面,管理員通過瀏覽器即可添加、更新、刪除監測的軟件列表(服務器主機名、IP地址、端口號),并白動和監控子系統聯動,實現軟件的監測[6]。
4.3.2軟件模塊管理
管理員通過軟件模塊管理功能可以查看某款軟件包含的模塊清單,以及分布在各個分公司的許可數量,支持同一多個版本間的模塊購買記錄查詢及對比。支持軟件模塊動態釋放功能,對特定機器使用不同策略,識別終端閑置情況,動態釋放激活軟件許可[7]。
4.3.3系統告警
當許可證服務出現異常(如許可證過期、進程中止),監測程序無法取得軟件的使用情況時,系統會通過郵件、短信方式自動發送告警至各分公司系統管理員。告警信息包括發生時間、許可證中心、軟件名稱、IP、主機名、端口以及錯誤信息等。
4.4統計分析子系統
統計分析子系統是系統的核心功能,是各分公司管理員查看軟件使用情況的交互平臺,共包含三部分功能:實時應用監測、歷史數據查詢和白動生成軟件使用報表[8]。
4.4.1實時應用監測
實時應用監測可以查看各個軟件所有模塊的實時使用狀態,包括部署數量、使用數量以及當前使用的用戶信息(用戶名、登錄主機、開始時間等)。
4.4.2歷史數據查詢
歷史數據查詢可查看某個模塊的歷史使用趨勢,便于系統管理員快速查看軟件及模塊的歷史使用情況,同時支持多許可證中心對比、多模塊對比等功能,白動過濾工作日使得統計結果更接近真實情況。
4.4.3自動生成軟件使用報表
每年在采購科研軟件時需提交軟件的使用報表,此功能支持批量生成報表,自動計算各個模塊的歷史使用峰值和移動平均峰值。
監測系統采集到的許可證使用情況是一組組離散數據,其30天移動平均曲線能很好反映用戶應用趨勢,能夠消除異常數值十擾。移動平均的計算公式如下:
Ft= (At-I+At-2+At-3+ … +At-3 0)/n,
·Ft代表預移動平均值;
·n代表移動平均的時期個數;
·At-l代表前期實際值;
·At-2,At-3和At-n分別表示前兩期、前三期直至前n期的實際值。
5結束語
石油專業軟件許可證監測系統實現了有限公司范圍內科研軟件的全面監測,共收集監測數據9000多萬條,精準掌握各單位許可證使用情況和應用峰谷規律,許可證需求量明顯降低,為科研軟件配置方案優化奠定了基礎。基于監測數據,利用概率統計學原理快速預測各模塊的需求數量,使科研軟件配置方案更具合理性。
參考文獻:
[1]張云飛,李志剛,韓慶時,等.石油勘探開發專業軟件共享技術研究與應用[J].網絡安全技術與應用,2018(11):91-92.
[2]楊顯峰,毛承國,張進鐸,等.地震勘探解釋軟件遠程共享的構建方法探討[J].計算機時代,2014(5):28-30.
[3]付偉,肖儂,盧錫城.網格環境中基于浮動License的軟件資源共享[J].計算機工程與科學,2008,30(8):120-123.
[4]陳軍.FLEXlm對多個CAD系統License的管理[J].CAD/CAM與制造業信息化,2001(10):48-49.
[5]章泳健.FLEXlm許可證管理的工作原理及使用方法[J].福建電腦,2002(10):10-11,13.
[6]楊顯峰,毛承同,陳翔,等.軟件遠程共享管理平臺的設計與實現[J].計算機時代,2016(9):42-44.
[7]鄧莉,范德軍,孫胤航.大型專業軟件集中管控技術探索與實踐[J].中國管理信息化,2014(22):93-94.
[8]仝維維,賈寧,高超,等.基于研發設計軟件的License資源共享平臺研究[J].計算機與網絡,2018,44(10):65-68.
【通聯編輯:謝媛媛】
收稿日期:2019-10-29
作者簡介:孫超(1987-),男,北京市人,工程師,碩士,主要研究方向為石油勘探開發軟硬件架構設計;張云飛(1962-),男,高級工程師,本科;韓慶時(1963-),男,高級工程師,本科;劉銳(198 7-),男,工程師,碩士。