王富強,丁小梅,王紅濤,李 韜,趙軍濤
(中國重型機械研究院股份公司,陜西 西安 710032)
現(xiàn)在很多軟件都需要授權使用,軟件授權是為了讓用戶按照購買許可來使用軟件,授權許可涉及到軟件的安裝份數(shù)、使用時間和功能模塊等內(nèi)容。對于公司來說,必需軟件的使用人數(shù)會有很多,而且這樣的軟件也會有多種,所以根據(jù)合理的需要購買適當?shù)能浖跈嗍种匾?。在很多公司中,現(xiàn)在大都采用浮動授權的方式進行計算機之間的授權轉移,減輕公司用于購買軟件授權的負擔,充分使用每個軟件授權。
一些軟件已經(jīng)有相對應的軟件浮動授權管理系統(tǒng)來進行浮動授權,但很多這樣的管理系統(tǒng)收回授權的方式都基于用戶機上軟件的主動退出或者管理員手動的強制下線。在這樣的浮動授權管理模式下,就存在客戶端上軟件長期占用授權但并無操作的情況,這樣便很容易造成軟件授權短缺錯覺。
本文提出軟件浮動授權輔助系統(tǒng),采用后臺監(jiān)控的方法來防止軟件授權被長期無效占用,利用后臺服務程序監(jiān)測需要監(jiān)控軟件的CPU活動,當檢測閑置時間達到一個設定值時,系統(tǒng)將會保存當前作業(yè)后正常關閉軟件(軟件正常關閉時授權才會自動收回)。采用這種方法有效地提高了軟件授權的利用率,減少公司在軟件授權采購上的開銷。
軟件正常關閉一般需要對軟件打開文件進行關閉保存,當軟件無需要保存文件時,軟件直接調(diào)用taskkill命令關閉軟件;在有需要保存的文件時,軟件正常關閉的一般過程如圖1所示,首先界面會先彈出是否保存的確認對話框,在默認為是的情況下,接著彈出文件另存為對話框,兩個對話框都使用Windows API進行自動控制,直到所有文件保存。后臺監(jiān)控的方法可廣泛應用于無需人為干預的情況下,方便快捷并且很少出現(xiàn)異常情況,能夠很好地自適應于很多應用中。
圖1 軟件正常關閉一般過程圖
對于一般的C/S架構系統(tǒng),都需要進行網(wǎng)絡數(shù)據(jù)傳輸,將數(shù)據(jù)從客戶端傳輸?shù)椒掌鞫说倪^程如圖2所示??蛻舳顺绦驎⑴渲梦募恍┬畔⑹褂肧ocket傳輸?shù)椒掌鞫耍掌鞫顺绦蛟诮邮盏叫畔⒑?,將信息處理并存儲到本地?shù)據(jù)庫,當服務器端需要對數(shù)據(jù)進行操作處理時,再從本地數(shù)據(jù)庫進行存取。服務器端與本地數(shù)據(jù)庫進行交互操作,過程是基于ODBC驅(qū)動程序?qū)?zhí)行操作進行轉換,間接性操作數(shù)據(jù)庫。
圖2 數(shù)據(jù)傳輸過程圖
對于每一個系統(tǒng)來說,需求分析都是不可或缺的環(huán)節(jié)。它可以從總體上幫助系統(tǒng)開發(fā)人員確定研究方向,盡量提供系統(tǒng)實現(xiàn)功能需求的全部信息,因此要保證系統(tǒng)需求分析階段與設計階段的一致性和完整性。本系統(tǒng)需求分析階段的主要工作是根據(jù)系統(tǒng)的目標要求以及終端用戶的咨詢意見確定系統(tǒng)的核心功能需求和其它需求。
本系統(tǒng)實現(xiàn)的目標要求為:
(1)檢測目標軟件是否運行;
(2)檢測目標軟件是否閑置,當閑置時間達到設定時間間隔正常關閉軟件;
(3)對正常關閉軟件收回授權的用戶機進行記錄。
通過詳細分軟件浮動授權輔助系統(tǒng)的目標要求,并對用戶信息進行收集整理,將系統(tǒng)的需求分析劃分為:信息需求分析、功能需求分析和方法需求分析。
本系統(tǒng)的信息需求分析階段需要采集用戶使用軟件的種類、可接受的界面方式、一些具體參數(shù)的數(shù)值大小以及應答反饋消息,然后將這些信息提取整理和分層次結構化,獲得完整的輸入信息。在信息需求分析過程中,對整理過的輸入信息通過一些方法(例如:過程控制方法和數(shù)據(jù)應答方法)處理依次獲得中間數(shù)據(jù)信息和輸出數(shù)據(jù)信息,其中輸出數(shù)據(jù)信息包含閑置時間達到設定值的提示信息、軟件正常關閉的反饋信息和軟件關閉的記錄次數(shù)信息。
系統(tǒng)的功能需求分析是主要基于系統(tǒng)的目標要求和信息需求分析,分析系統(tǒng)涉及的功能模塊主要包括異常事件的診斷處理、系統(tǒng)可視化界面構建、軟件正常關閉和信息反饋等。
系統(tǒng)的方法需求分析是分析整個系統(tǒng)中采用的方法,本系統(tǒng)涉及的方法主要有界面搭建方法、框架設計方法和過程控制方法等。系統(tǒng)基于C#編程語言進行系統(tǒng)的界面設計,其中服務器端以Windows應用程序的形式與管理員進行交互;系統(tǒng)使用MySQL數(shù)據(jù)庫對系統(tǒng)服務器端數(shù)據(jù)進行管理,系統(tǒng)在數(shù)據(jù)庫上的操作僅涉及一些存取操作,其中借助ODBC驅(qū)動實現(xiàn)系統(tǒng)服務器端對MySQL數(shù)據(jù)庫的操作;對系統(tǒng)執(zhí)行過程中產(chǎn)生的異常事件采用自動診斷方式,并將診斷報告記錄為日志;客戶端以后臺服務程序的形式對系統(tǒng)客戶端進行過程控制。
本系統(tǒng)是一個C/S架構的系統(tǒng),包含有客戶端程序和服務器端程序,系統(tǒng)的整體框架圖如圖3 所示。其中客戶端程序為后臺服務程序,主要執(zhí)行監(jiān)控目標軟件、正常關閉軟件并且保存文件的工作;服務器端是一個Windows應用程序,主要為管理員提供信息瀏覽。
圖3 系統(tǒng)整體框架圖
在系統(tǒng)的整體框架圖中,系統(tǒng)的客戶端采用后臺監(jiān)控的方法檢測目標軟件是否閑置,不涉及用戶的交互操作??蛻舳瞬扇∶扛粢粋€時間間隔執(zhí)行一遍監(jiān)測程序,檢測每個目標軟件是否閑置。如果檢測到軟件閑置,記錄軟件的連續(xù)閑置時間;否則,將閑置時間置0。當目標軟件的閑置時間達到預設值時,系統(tǒng)判定用戶機上的授權軟件為長期無效占用。客戶端利用后臺控制程序?qū)υ撌跈嘬浖M行正常關閉。在客戶端授權軟件正常關閉后,系統(tǒng)的客戶端會將關閉消息發(fā)送給服務器端。系統(tǒng)的服務器端接收到用戶IP傳來的消息,將關閉的消息按照不同IP、不同計算機名對應保存在本地數(shù)據(jù)庫中,管理員可以根據(jù)需要進行瀏覽。
本文提出的軟件浮動授權輔助系統(tǒng)主要針對于CAX類型軟件,CAX類型軟件即采用CAD、CAM、CAE、CAPP、CIM、CIMS、CAS、CAT、CAI等各項技術實現(xiàn)計算機輔助設計的軟件,現(xiàn)在主要涉及的CAX類型軟件主要有AutoCAD、SecoMan和Eplan。
系統(tǒng)的實現(xiàn)過程中,在用戶計算機上配置客戶端程序,使用后臺監(jiān)控的方法檢測CAX軟件是否長時間處于無操作占用情況,一旦檢測到便要正常關閉CAX軟件來進行強制下線授權操作,其中需要對CAX軟件打開的相關文件進行保存,處理AutoCAD、SecoMan和Eplan軟件的不同之處在于對話框的參數(shù)不同。在CAX授權軟件正常關閉后,該CAX授權軟件的浮動授權管理系統(tǒng)會自動收回用戶機的軟件授權。同時,軟件浮動授權輔助系統(tǒng)的客戶端會將授權收回消息記錄在本地,還會通過網(wǎng)絡傳輸?shù)椒掌鞫耍掌鞫送ㄟ^MySQL數(shù)據(jù)庫對不同用戶機上不同的CAX授權軟件進行管理,管理員可以通過交互界面進行瀏覽。
由于系統(tǒng)的客戶端采用后臺監(jiān)控控制的方法設計,系統(tǒng)在實現(xiàn)中需要充分考慮安全性和可維護性。系統(tǒng)采用異常事件處理的方式避免出現(xiàn)后臺程序卡死,同時將異常事件記錄在錯誤日志中,方便進行維護。
在系統(tǒng)的測試階段將CAX軟件閑置時間設置為較短時間,主要對一個CAX類型軟件的授權收回進行測試。將測試條件進行劃分模塊,采用定多變一的方法反復測試,并將多次測試過程結果進行記錄,以優(yōu)化本系統(tǒng)的應用效果。
在測試系統(tǒng)的過程中,測試的評估結果符合系統(tǒng)的目標要求,在性能方面具有一定的準確性、高效率和安全性。經(jīng)過試運行,軟件浮動授權輔助系統(tǒng)在很大程度上杜絕了用戶長期無效占用軟件授權的情況,提高了軟件授權的使用效率,節(jié)省了在昂貴的設計類軟件授權購買上的開支,從而在保障了設計軟件的高效利用滿足用戶使用需求的同時降低了企業(yè)的運營成本。