基于云平台的软件分发设计与实现
2017-07-06邓书芬
【摘 要】为了有效解决传统的Windows系统软件管理模式依赖域管理,安装文件格式和客户端数量受限,且安装过程影响用户体验的问题,提出基于云平台的软件分发系统来实现Windows软件管理。该系统研究云平台软件定义网络架构下虚拟机的网络特性,设计适用于云平台多集群环境下的网关代理服务,借助FTP服务实现多客户端的软件安装、升级和卸载,并通过全程静默安装的方式来改善用户体验。通过对比发现,分发系统更稳定高效,能克服传统管理平台的诸多问题。
【关键词】云计算 OpenStack 软件分发 网关代理
1 引言
为有效地解决传统的Windows系统软件管理模式依赖域管理,安装文件格式和客户端数量受限,且安装过程影响用户体验的问题,提出基于云平台的软件分发系统来实现Windows软件管理。本文设计了基于云平台的软件分发系统,能够支持多种安装包格式(EXE、ISO、MSI);集群管理用户,支持多级网络安装,不限制用户数量;静默安装,不干扰用户的正常操作;记录安装日志,便于安装失败后查找原因;限制某些软件运行,提高用户系统的安全性。云软件分发系统解决了大型企业中计算机软件的统一管理问题,并能与企业现有的云平台结合,方便安装使用。
2 云软件分发系统的设计和实现
2.1 设计方案
本方案采用OpenStack云平台,应用Newton版本,使用Fuel 9.1安装部署实现。
以云平台作为底层框架,依托虚拟化技术和网络技术,搭建了一个基于云平台的软件分发系统VSDS(Visual Software Distribution System)。系统以各管理节点(即虚拟机)软件为中心,实现了对任意受控节点上软件的安装、卸载、升级,充分考虑了单位的环境和需求,以限制某些软件的安装运行。系统以支持丰富软件包、完全静默为目标,在关键技术领域努力突破,以达到对主流软件包静默安装的支持,建立技术门槛,以适应不同网络环境、不同规模组织的分发目标,提供全面可靠的分发方案。图1为云软件分发系统架构示意图:
云软件分发系统采用C/S(Client/Server)架构,系统版本Ubuntu 13.04,使用.net与java语言开发,数据库使用mysql5.5,硬件设备方面,需要两台服务器和一台千兆交换机。
两台服务器的硬件要求为:
CPU:两颗四核英特尔处理器E5506 2.13 GHz;
内存:4 GB DDR3 RDIMM内存;
磁盘:2×146 G,两个硬件分区;
网卡:双千兆网卡。
虚拟机的配置要求为:
CPU:1 GHz;
内存:1 GB;
磁盘:20 G以上。
服务器的功能要求为:
采用分布式架构,一个中心服务器同多个子网代理、多节点结构,支持虚拟机的系统平台为Windows;
实现运行管理、节点管理、软件分发、集群管理等功能;
实现软件分发管理,单节点多软件包、多节点、多软件包安装;
实现安装包管理,安装包扫描、编辑;
实现节点管理,添加、删除节点;
实现监控运行状况,查看系统中各组件的运行情况;
实现丰富的软件包支持,支持的格式包括MSI、EXE等;
实现完全静默,尤其是EXE的静默;
实现对多级网络、批量分发的支持。
2.2 核心组件
云软件分发系统核心组件是基于云平台SDN(Software Defined Network)的网关代理。云平台SDN可以实现集群间的网络隔离,每一个集群使用一个子网,集群间网络无法通信。这样控制台就无法与客户端建立通信,网关代理很好地解决了这个问题。网关代理采用Web api框架構建的Service服务。图2为网关代理流程图:
(1)网关代理获取带控制台的信息包,信息包包含需要安装的客户端信息、安装包列表、各安装包的md5(Message-Digest Algorithm 5)校验码及拷贝安装包的限时权限令牌ticket。
(2)提取客户端信息校验,检查客户端是否在该集群下,如果在该集群下,则将客户端需要安装的软件包列表及各安装包的校验码消息转发至各客户端。
(3)同时去控制器申请远程拷贝需要安装的软件安装包,远程拷贝软件安装包需要验证之前下发的ticket,合法则允许拷贝软件安装包。
(4)网关代理在控制器拷贝软件安装包完成后,通知客户端来拷贝软件。客户端同样携带ticket申请远程拷贝软件安装包。通过验证后,客户端将拷贝的软件安装包和之前下发的安装包的md5校验码进行比对,通过即可安装软件。
2.3 系统架构
云软件分发系统架构包括:
(1)VSDSCore。基于java平台的软件分发服务端的业务逻辑实现,为软件分发平台的主要功能。选择Spring MVC+Hibernate构成基础架构。Spring MVC框架提供了构建Web应用程序的全功能MVC模块。Hibernate是一个开放源代码的对象关系映射框架,它进行了非常轻量级的对象封装,可以使用对象编程思维来操纵数据库。
(2)OpenVSDS。基于axis2实现的Webservice服务端,对外开放软件分发的功能。依赖VSDSCore来实现业务。图3为云软件分发系统架构图:
(3)VSDSWeb。基于java平台的Web服务端实现的Web管理平台,主要以Web形式提供软件分发功能。依赖VSDSCore来实现业务。Web管理台的图表展示采用JQuery、JavaScript框架。JQuery使用户能更方便地处理HTML documents、events,并且方便地为网站提供AJAX交互,同时大大减少了直接使用JavaScript的开发成本。
(4)VSDSAgent。基于java平台的网关代理,主要为适应多级网络结构,部署在子网网关上的代理软件。
(5)VSDSClient。基于.net(3.5以上)平台的软件分发客户端,部署在Windows系列客户节点机器上,主要功能是接收服务端分发及调度请求。
2.4 功能流程
在云平台创建三台虚拟机,三个客户端,需要分发的软件是QQ.exe、WinRAR.msi。图4为云软件分发流程图。
(1)通过Ftp服务向控制台上传软件安装包。上传成功后在Web页面可见。
(2)通过Web界面指定需要安装软件的节点和安装的软件,客户端在收到指令后安装软件包。
(3)存在多个集群多级网络的情况下,因存在网络隔离的情况,服务器无法与虚拟机直接通信。需要使用集群添加集群管理客户端,由集群上的网关服务器转发消息至客户端,然后才可以安装软件包。
(4)软件分发开始后,可通过Web界面的分发记录获取安装进度。日志部分可获取操作信息和结果。图5为云软件分发Web页面展示分发记录。
2.5 性能指标
AD(Active Directory)域策略安装软件将软件设置为共享,通过内网访问安装,VSDS则是通过客户端将控制台远程拷贝至本地进行安装,以减轻控制台的压力。网络条件同等的情况下VSDS安装时间更短。
在拥有相同数量的客户端条件下,VSDS通过集群的网关代理支持更多的客户端同时安装软件。在200个客户端情况下,AD域策略的客户端只能分批安装软件,VSDS通过网关代理则可以同时安装。当用户规模越大,云软件分发系统在性能上和AD域策略相比有更大的优势。表2为200个客户端安装软件时间比对:
支持多种安装包格式,增加了能支持的软件种类,不仅支持MSI格式,还支持EXE、ISO格式,软件支持覆盖率达95%。
利用集群网关代理支持多级网络解决大规模节点批量分发问题,使得在一定规模节点环境下,系统能保持合理的负载。解决复杂网络环境下无法进行分发的问题,既能满足简单的二级网络,同时也能在多级网络条件下进行分发。
静默安装全程无提示,不影响用户的操作使用;记录安装日志,便于管理员管理,为查找问题提供方便;可以限制员工手动运行不被允许的程序,提高虚拟机系统的安全性和稳定性。
3 结束语
云软件分发系统是一套基于云平台的软件自动化安装系统,利用网关代理适用于多级网络,支持丰富的安装包格式,静默安装,作用于集中管理Windows平台计算机软件自动安装、卸载以及升级。
基于云平台的软件分发系统满足了政府、国有企业及私有企业对软件分发业务的需要。满足了复杂网络环境、不同规模组织机构的各种各样的安装包格式支持,提供了全面可靠的解决方案。目前主要需求集中在Windows平台,未来可根据需求考虑支持Linux平台。对于使用第三方云平台的用户,后期可以新增适配接口进行集成。
参考文献:
[1] 梁哲聪. 基于构件的软件升级的若干关键技术研究[D]. 上海: 上海交通大学, 2008.
[2] 彭辉. 企业软件分发系统的研究与开发[D]. 西安: 西安理工大学, 2006.
[3] 马殿欣,靳胜利,王华,等. 软件在线升级程序的设计[J]. 电脑编程技巧与维护, 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] 李雙权,王燕伟. 云计算中服务器虚拟化技术探讨[J]. 邮电设计技术, 2011(10): 27-33.
[7] 李辉.基于OpenStack的私有云计算平台的研究和实现[D].南昌: 江西师范大学, 2013.
[8] 周冠宇. 云计算的虚拟技术架构分析[J]. 移动通信, 2011(9): 9-13.
[9] 邱志聪,王飞. 基于CA的安全软件分发方案[J]. 计算机工程与应用, 2005(11): 48-49.
[10] 吴海玲,邓书芬,纪求华. 一种在云计算系统创建虚拟机的方法及云计算系统[P]. 中国专利: 201110145661.X, 2011-09-14.
[11] 邓书芬,吴海玲,吴文青,等. 基于云计算平台保持主机资源稳定的方法[P]. 中国专利: 201210371657.X, 2015-07-29.