【摘 要】為了有效解決傳統(tǒng)的Windows系統(tǒng)軟件管理模式依賴域管理,安裝文件格式和客戶端數(shù)量受限,且安裝過(guò)程影響用戶體驗(yàn)的問(wèn)題,提出基于云平臺(tái)的軟件分發(fā)系統(tǒng)來(lái)實(shí)現(xiàn)Windows軟件管理。該系統(tǒng)研究云平臺(tái)軟件定義網(wǎng)絡(luò)架構(gòu)下虛擬機(jī)的網(wǎng)絡(luò)特性,設(shè)計(jì)適用于云平臺(tái)多集群環(huán)境下的網(wǎng)關(guān)代理服務(wù),借助FTP服務(wù)實(shí)現(xiàn)多客戶端的軟件安裝、升級(jí)和卸載,并通過(guò)全程靜默安裝的方式來(lái)改善用戶體驗(yàn)。通過(guò)對(duì)比發(fā)現(xiàn),分發(fā)系統(tǒng)更穩(wěn)定高效,能克服傳統(tǒng)管理平臺(tái)的諸多問(wèn)題。
【關(guān)鍵詞】云計(jì)算 OpenStack 軟件分發(fā) 網(wǎng)關(guān)代理
1 引言
為有效地解決傳統(tǒng)的Windows系統(tǒng)軟件管理模式依賴域管理,安裝文件格式和客戶端數(shù)量受限,且安裝過(guò)程影響用戶體驗(yàn)的問(wèn)題,提出基于云平臺(tái)的軟件分發(fā)系統(tǒng)來(lái)實(shí)現(xiàn)Windows軟件管理。本文設(shè)計(jì)了基于云平臺(tái)的軟件分發(fā)系統(tǒng),能夠支持多種安裝包格式(EXE、ISO、MSI);集群管理用戶,支持多級(jí)網(wǎng)絡(luò)安裝,不限制用戶數(shù)量;靜默安裝,不干擾用戶的正常操作;記錄安裝日志,便于安裝失敗后查找原因;限制某些軟件運(yùn)行,提高用戶系統(tǒng)的安全性。云軟件分發(fā)系統(tǒng)解決了大型企業(yè)中計(jì)算機(jī)軟件的統(tǒng)一管理問(wèn)題,并能與企業(yè)現(xiàn)有的云平臺(tái)結(jié)合,方便安裝使用。
2 云軟件分發(fā)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)
2.1 設(shè)計(jì)方案
本方案采用OpenStack云平臺(tái),應(yīng)用Newton版本,使用Fuel 9.1安裝部署實(shí)現(xiàn)。
以云平臺(tái)作為底層框架,依托虛擬化技術(shù)和網(wǎng)絡(luò)技術(shù),搭建了一個(gè)基于云平臺(tái)的軟件分發(fā)系統(tǒng)VSDS(Visual Software Distribution System)。系統(tǒng)以各管理節(jié)點(diǎn)(即虛擬機(jī))軟件為中心,實(shí)現(xiàn)了對(duì)任意受控節(jié)點(diǎn)上軟件的安裝、卸載、升級(jí),充分考慮了單位的環(huán)境和需求,以限制某些軟件的安裝運(yùn)行。系統(tǒng)以支持豐富軟件包、完全靜默為目標(biāo),在關(guān)鍵技術(shù)領(lǐng)域努力突破,以達(dá)到對(duì)主流軟件包靜默安裝的支持,建立技術(shù)門檻,以適應(yīng)不同網(wǎng)絡(luò)環(huán)境、不同規(guī)模組織的分發(fā)目標(biāo),提供全面可靠的分發(fā)方案。圖1為云軟件分發(fā)系統(tǒng)架構(gòu)示意圖:
云軟件分發(fā)系統(tǒng)采用C/S(Client/Server)架構(gòu),系統(tǒng)版本Ubuntu 13.04,使用.net與java語(yǔ)言開(kāi)發(fā),數(shù)據(jù)庫(kù)使用mysql5.5,硬件設(shè)備方面,需要兩臺(tái)服務(wù)器和一臺(tái)千兆交換機(jī)。
兩臺(tái)服務(wù)器的硬件要求為:
CPU:兩顆四核英特爾處理器E5506 2.13 GHz;
內(nèi)存:4 GB DDR3 RDIMM內(nèi)存;
磁盤:2×146 G,兩個(gè)硬件分區(qū);
網(wǎng)卡:雙千兆網(wǎng)卡。
虛擬機(jī)的配置要求為:
CPU:1 GHz;
內(nèi)存:1 GB;
磁盤:20 G以上。
服務(wù)器的功能要求為:
采用分布式架構(gòu),一個(gè)中心服務(wù)器同多個(gè)子網(wǎng)代理、多節(jié)點(diǎn)結(jié)構(gòu),支持虛擬機(jī)的系統(tǒng)平臺(tái)為Windows;
實(shí)現(xiàn)運(yùn)行管理、節(jié)點(diǎn)管理、軟件分發(fā)、集群管理等功能;
實(shí)現(xiàn)軟件分發(fā)管理,單節(jié)點(diǎn)多軟件包、多節(jié)點(diǎn)、多軟件包安裝;
實(shí)現(xiàn)安裝包管理,安裝包掃描、編輯;
實(shí)現(xiàn)節(jié)點(diǎn)管理,添加、刪除節(jié)點(diǎn);
實(shí)現(xiàn)監(jiān)控運(yùn)行狀況,查看系統(tǒng)中各組件的運(yùn)行情況;
實(shí)現(xiàn)豐富的軟件包支持,支持的格式包括MSI、EXE等;
實(shí)現(xiàn)完全靜默,尤其是EXE的靜默;
實(shí)現(xiàn)對(duì)多級(jí)網(wǎng)絡(luò)、批量分發(fā)的支持。
2.2 核心組件
云軟件分發(fā)系統(tǒng)核心組件是基于云平臺(tái)SDN(Software Defined Network)的網(wǎng)關(guān)代理。云平臺(tái)SDN可以實(shí)現(xiàn)集群間的網(wǎng)絡(luò)隔離,每一個(gè)集群使用一個(gè)子網(wǎng),集群間網(wǎng)絡(luò)無(wú)法通信。這樣控制臺(tái)就無(wú)法與客戶端建立通信,網(wǎng)關(guān)代理很好地解決了這個(gè)問(wèn)題。網(wǎng)關(guān)代理采用Web api框架構(gòu)建的Service服務(wù)。圖2為網(wǎng)關(guān)代理流程圖:
(1)網(wǎng)關(guān)代理獲取帶控制臺(tái)的信息包,信息包包含需要安裝的客戶端信息、安裝包列表、各安裝包的md5(Message-Digest Algorithm 5)校驗(yàn)碼及拷貝安裝包的限時(shí)權(quán)限令牌ticket。
(2)提取客戶端信息校驗(yàn),檢查客戶端是否在該集群下,如果在該集群下,則將客戶端需要安裝的軟件包列表及各安裝包的校驗(yàn)碼消息轉(zhuǎn)發(fā)至各客戶端。
(3)同時(shí)去控制器申請(qǐng)遠(yuǎn)程拷貝需要安裝的軟件安裝包,遠(yuǎn)程拷貝軟件安裝包需要驗(yàn)證之前下發(fā)的ticket,合法則允許拷貝軟件安裝包。
(4)網(wǎng)關(guān)代理在控制器拷貝軟件安裝包完成后,通知客戶端來(lái)拷貝軟件。客戶端同樣攜帶ticket申請(qǐng)遠(yuǎn)程拷貝軟件安裝包。通過(guò)驗(yàn)證后,客戶端將拷貝的軟件安裝包和之前下發(fā)的安裝包的md5校驗(yàn)碼進(jìn)行比對(duì),通過(guò)即可安裝軟件。
2.3 系統(tǒng)架構(gòu)
云軟件分發(fā)系統(tǒng)架構(gòu)包括:
(1)VSDSCore?;趈ava平臺(tái)的軟件分發(fā)服務(wù)端的業(yè)務(wù)邏輯實(shí)現(xiàn),為軟件分發(fā)平臺(tái)的主要功能。選擇Spring MVC+Hibernate構(gòu)成基礎(chǔ)架構(gòu)。Spring MVC框架提供了構(gòu)建Web應(yīng)用程序的全功能MVC模塊。Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它進(jìn)行了非常輕量級(jí)的對(duì)象封裝,可以使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。
(2)OpenVSDS?;赼xis2實(shí)現(xiàn)的Webservice服務(wù)端,對(duì)外開(kāi)放軟件分發(fā)的功能。依賴VSDSCore來(lái)實(shí)現(xiàn)業(yè)務(wù)。圖3為云軟件分發(fā)系統(tǒng)架構(gòu)圖:
(3)VSDSWeb?;趈ava平臺(tái)的Web服務(wù)端實(shí)現(xiàn)的Web管理平臺(tái),主要以Web形式提供軟件分發(fā)功能。依賴VSDSCore來(lái)實(shí)現(xiàn)業(yè)務(wù)。Web管理臺(tái)的圖表展示采用JQuery、JavaScript框架。JQuery使用戶能更方便地處理HTML documents、events,并且方便地為網(wǎng)站提供AJAX交互,同時(shí)大大減少了直接使用JavaScript的開(kāi)發(fā)成本。
(4)VSDSAgent?;趈ava平臺(tái)的網(wǎng)關(guān)代理,主要為適應(yīng)多級(jí)網(wǎng)絡(luò)結(jié)構(gòu),部署在子網(wǎng)網(wǎng)關(guān)上的代理軟件。
(5)VSDSClient。基于.net(3.5以上)平臺(tái)的軟件分發(fā)客戶端,部署在Windows系列客戶節(jié)點(diǎn)機(jī)器上,主要功能是接收服務(wù)端分發(fā)及調(diào)度請(qǐng)求。
2.4 功能流程
在云平臺(tái)創(chuàng)建三臺(tái)虛擬機(jī),三個(gè)客戶端,需要分發(fā)的軟件是QQ.exe、WinRAR.msi。圖4為云軟件分發(fā)流程圖。
(1)通過(guò)Ftp服務(wù)向控制臺(tái)上傳軟件安裝包。上傳成功后在Web頁(yè)面可見(jiàn)。
(2)通過(guò)Web界面指定需要安裝軟件的節(jié)點(diǎn)和安裝的軟件,客戶端在收到指令后安裝軟件包。
(3)存在多個(gè)集群多級(jí)網(wǎng)絡(luò)的情況下,因存在網(wǎng)絡(luò)隔離的情況,服務(wù)器無(wú)法與虛擬機(jī)直接通信。需要使用集群添加集群管理客戶端,由集群上的網(wǎng)關(guān)服務(wù)器轉(zhuǎn)發(fā)消息至客戶端,然后才可以安裝軟件包。
(4)軟件分發(fā)開(kāi)始后,可通過(guò)Web界面的分發(fā)記錄獲取安裝進(jìn)度。日志部分可獲取操作信息和結(jié)果。圖5為云軟件分發(fā)Web頁(yè)面展示分發(fā)記錄。
2.5 性能指標(biāo)
AD(Active Directory)域策略安裝軟件將軟件設(shè)置為共享,通過(guò)內(nèi)網(wǎng)訪問(wèn)安裝,VSDS則是通過(guò)客戶端將控制臺(tái)遠(yuǎn)程拷貝至本地進(jìn)行安裝,以減輕控制臺(tái)的壓力。網(wǎng)絡(luò)條件同等的情況下VSDS安裝時(shí)間更短。
在擁有相同數(shù)量的客戶端條件下,VSDS通過(guò)集群的網(wǎng)關(guān)代理支持更多的客戶端同時(shí)安裝軟件。在200個(gè)客戶端情況下,AD域策略的客戶端只能分批安裝軟件,VSDS通過(guò)網(wǎng)關(guān)代理則可以同時(shí)安裝。當(dāng)用戶規(guī)模越大,云軟件分發(fā)系統(tǒng)在性能上和AD域策略相比有更大的優(yōu)勢(shì)。表2為200個(gè)客戶端安裝軟件時(shí)間比對(duì):
支持多種安裝包格式,增加了能支持的軟件種類,不僅支持MSI格式,還支持EXE、ISO格式,軟件支持覆蓋率達(dá)95%。
利用集群網(wǎng)關(guān)代理支持多級(jí)網(wǎng)絡(luò)解決大規(guī)模節(jié)點(diǎn)批量分發(fā)問(wèn)題,使得在一定規(guī)模節(jié)點(diǎn)環(huán)境下,系統(tǒng)能保持合理的負(fù)載。解決復(fù)雜網(wǎng)絡(luò)環(huán)境下無(wú)法進(jìn)行分發(fā)的問(wèn)題,既能滿足簡(jiǎn)單的二級(jí)網(wǎng)絡(luò),同時(shí)也能在多級(jí)網(wǎng)絡(luò)條件下進(jìn)行分發(fā)。
靜默安裝全程無(wú)提示,不影響用戶的操作使用;記錄安裝日志,便于管理員管理,為查找問(wèn)題提供方便;可以限制員工手動(dòng)運(yùn)行不被允許的程序,提高虛擬機(jī)系統(tǒng)的安全性和穩(wěn)定性。
3 結(jié)束語(yǔ)
云軟件分發(fā)系統(tǒng)是一套基于云平臺(tái)的軟件自動(dòng)化安裝系統(tǒng),利用網(wǎng)關(guān)代理適用于多級(jí)網(wǎng)絡(luò),支持豐富的安裝包格式,靜默安裝,作用于集中管理Windows平臺(tái)計(jì)算機(jī)軟件自動(dòng)安裝、卸載以及升級(jí)。
基于云平臺(tái)的軟件分發(fā)系統(tǒng)滿足了政府、國(guó)有企業(yè)及私有企業(yè)對(duì)軟件分發(fā)業(yè)務(wù)的需要。滿足了復(fù)雜網(wǎng)絡(luò)環(huán)境、不同規(guī)模組織機(jī)構(gòu)的各種各樣的安裝包格式支持,提供了全面可靠的解決方案。目前主要需求集中在Windows平臺(tái),未來(lái)可根據(jù)需求考慮支持Linux平臺(tái)。對(duì)于使用第三方云平臺(tái)的用戶,后期可以新增適配接口進(jìn)行集成。
參考文獻(xiàn):
[1] 梁哲聰. 基于構(gòu)件的軟件升級(jí)的若干關(guān)鍵技術(shù)研究[D]. 上海: 上海交通大學(xué), 2008.
[2] 彭輝. 企業(yè)軟件分發(fā)系統(tǒng)的研究與開(kāi)發(fā)[D]. 西安: 西安理工大學(xué), 2006.
[3] 馬殿欣,靳勝利,王華,等. 軟件在線升級(jí)程序的設(shè)計(jì)[J]. 電腦編程技巧與維護(hù), 2004(5): 75-82.
[4] OpenStack. OpenStack Installation Tutorial for Ubuntu [EB/OL]. [2017-05-10]. https://docs.openstack.org/newton/install-guide-ubuntu/.
[5] Fuel. Fuel Installation Guide [EB/OL]. [2017-05-10]. https://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide.html.
[6] 李雙權(quán),王燕偉. 云計(jì)算中服務(wù)器虛擬化技術(shù)探討[J]. 郵電設(shè)計(jì)技術(shù), 2011(10): 27-33.
[7] 李輝.基于OpenStack的私有云計(jì)算平臺(tái)的研究和實(shí)現(xiàn)[D].南昌: 江西師范大學(xué), 2013.
[8] 周冠宇. 云計(jì)算的虛擬技術(shù)架構(gòu)分析[J]. 移動(dòng)通信, 2011(9): 9-13.
[9] 邱志聰,王飛. 基于CA的安全軟件分發(fā)方案[J]. 計(jì)算機(jī)工程與應(yīng)用, 2005(11): 48-49.
[10] 吳海玲,鄧書(shū)芬,紀(jì)求華. 一種在云計(jì)算系統(tǒng)創(chuàng)建虛擬機(jī)的方法及云計(jì)算系統(tǒng)[P]. 中國(guó)專利: 201110145661.X, 2011-09-14.
[11] 鄧書(shū)芬,吳海玲,吳文青,等. 基于云計(jì)算平臺(tái)保持主機(jī)資源穩(wěn)定的方法[P]. 中國(guó)專利: 201210371657.X, 2015-07-29.