一种集中式仓储化的软件管理方法

2016-07-22 20:01李鹏陈智涛
电脑知识与技术 2016年16期
关键词:集中管理服务化

李鹏+陈智涛

摘要:该文设计实现了一种集中式仓储化的软件管理方法,将软件以统一的形式存储在软件仓储库中,供用户按需下载,自动完成软件安装、版本更新、运行环境设置以及配置文件修改等部署工作,从根本上解决了软件管理混乱、安装部署专业性强易出错的难题。

关键词:仓储化存储;集中管理;自动部署;服务化

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)16-0110-03

1 绪论

1.1 背景及实现方案

随着当前信息化水平的日益提升,越来越多的信息系统被应用到企业内部各个层面,极大地提升了企业的工作效率。但同时由于云计算、大数据技术日新月异的发展,各种新架构、新方法层出不穷,使得基于不同技术架构开发的软件安装部署差异性很大,同时软件更新换代的频率也变得更快,这就对企业信息系统的使用人员提出了很高的技术要求,需要将很大的精力放在软件的部属与更新的过程中,而不是如何通过信息系统处理相关业务,降低了业务人员使用新系统、新技术的热情。

软件仓储化管理方法针对上述软件在使用过程中存在的各种问题,提出“规范开发、统一封装、集中入库、按需部署”的软件管理方法,即:在信息系统开发初期集中梳理系统配置需求,确定软件运行所需的软件、数据库、服务等环境,指定配置文件模板统一下发;开发完成后使用软件打包工具进行封装,封装完成形成.zip格式软件压缩包,其中包含软件属性信息及安装部署信息;软件包通过Web形式的注册门户添加到软件仓储库中,安装软件类别进行存储,同时可以通过在线方式对软件进行维护操作;当业务人员需要使用某一软件时,部署在客户端的业务服务框架将自动下载软件进行安装,并自动检测软件版本进行更新。

通过上面描述,我们可以看出软件仓储化管理方法是一套面向软件的全流程管控方法,通过对软件生命周期的管理,实现软件的规范管理、动态安装和即装即用。

1.2 现有方案技术缺点及本方案解决方法

从现有的软件安装方式看,大都没有从软件的全生命周期的角度对软件进行管控,提供的功能比较单一,基本上都是将各方开发好的软件上传至统一的存储环境中进行管理,当用户需要下载安装某一软件时,也只是将安装文件推送至客户端,让用户自行进行软件安装,更谈不上自动配置依赖环境及修改配置文件;此外,对于一些B/S架构的软件,由于没有实体的安装文件,现有的软件库是无能为力的,最多提供一个检索页面,让用户查询相应地址,在浏览器中输入地址进而打开页面的方式,费时费力。

本发明方法将所有的软件均作为APP进行处理,无论软件的形态是单机、服务端、客户端还是仅仅是一个网页地址,均需通过打包工具进行封装,输入软件的基本属性信息、环境依赖信息、角色信息、脚本信息等软件显示运行所必需的条件,然后将封装好的软件上传至软件仓储环境中,软件仓储环境将根据软件的类型采取不同的分类管理策略,提供软件的浏览、检索、维护等多种操作手段;而在用户端则部署安装业务服务框架,接管用户当前桌面,负责软件的下载、安装及更新工作,用户只需要几步简单的可视化界面操作,即可完成软件的部署工作,框架将自动检测本机的环境并进行配置,整个部署工作的进展情况可在界面中实时予以展示。

2 技术实现

2.1 技术概述

仓储化软件管理方法借鉴了当前移动终端应用部署的方式,将移动端软件商店的思想移植到固定端,实现软件安装的一键操作,简化了软件部署及更新流程,使得用户将精力更多的投放到信息系统本身。

要实现仓储化软件管理方法,主要由软件打包工具、软件仓储环境和业务服务框架三部分作为底层支持。其方案示意如图 1所示。

如上图所示,仓储化软件管理方法针对如那件开发的过程不做过多限制,仅需要按照规范要求填写配置文件信息,开发完成后通过软件打包工具对软件的运行环境、脚本信息、依赖软件等信息进行设置,生成标准格式软件压缩包;而后,通过软件仓储环境管理人员将软件实体包注册到软件仓储环境中,软件仓储环境将分别保存软件的属性信息和实体软件;业务人员通过部署在客户端的业务服务框架从软件仓储环境中检索和下载软件,业务服务框架自动完成软件的安装部署工作,并自动监测自身版本信息,实现已安装软件的自动更新。

2.1.1 软件打包工具

软件打包工具是软件进行仓储化管理的基础,所有软件属性必须经过软件打包工具封装,才能被后续过程自动识别。因此,所有涉及软件发现即使用的信息均需在此处进行配置,具体包括:基本属性、服务属性、依赖关系、用户角色及预操作脚本信息。

当前的业务软件和商业软件出于安全性和可靠性考虑,越来越多的运行在非Windows环境下,因此打包工具必须跨平台运行在不同的操作系统下,同时由于打包过程涉及众多类型不同的属性配置,所以打包工具应以可视化向导的方式逐步引导用户完成打包操作,基于上述考虑打包工具采用JAVA SWT的方式进行开发,显示风格与用户操作系统保持一致。

软件打包工具主要包括基本属性配置、服务属性配置、依赖关系配置、用户角色配置、脚本配置和软件封装6个功能模块,其内部逻辑图如图 2所示。

2.1.2 软件仓储环境

软件仓储环境为B/S架构的软件管理平台,是信息系统纳入仓储化管理的门户,是联系软件开发者与软件管理者,以及业务人员的桥梁。

软件管理员将软件打包工具封装的标准压缩包通过WEB页面上传至软件仓储环境中,仓储环境解析软件压缩包获取完整的软件属性信息,根据软件类别采取相应的软件管理策略;同时以WEB服务接口的形式向业务服务框架提供软件查询、下载及更新服务。软件仓储环境的内部逻辑图如图 3所示。

2.1.3 业务服务框架

业务服务框架支持基于C++开发的客户端软件应用集成,同时支持基于WEB的门户界面集成,为业务系统用户提供统一门户入口,对被集成的各类通用基础服务以及业务应用服务软件进行访问,支持不同形式的业务的聚合及不同格式的业务内容的聚合,并可根据每个用户的使用特点和角色不同,定制个性化的工作空间,主要功能包括:用户管理、配置管理、样式管理、软件检索、应用中心、软件管理、窗口浏览器、任务管理器8个功能模块。其内部逻辑图如图 4所示。

2.2 软件自动部署方式

本发明针对软件自动下载部署的流程进行了详细的定义,即用户首先通过业务服务框架发起软件查询请求,随后集成框架在软件仓储环境中找到指定软件并下载在本地,然后解压软件包并按照文件的设置进行软件安装,安装进度在框架主界面中实时显示。详细部署流程如图 5所示:

针对上述部署流程,提出如下处理原则:

1)软件下载逻辑控制

当用户提出软件下载请求后,并不立即从软件仓储环境中下载该软件,而是首先在业务服务框架下检索该软件是否已被安装,若已安装将不在下载。

鉴于信息系统部署环境的差异性,软件仓储环境和业务服务框架支持软件的断点续传,业务服务框架会自动记录软件当前的下载状态,当出现异常终止下载后,已下载的软件不会删除,下次框架启动时将继续执行下载过程。

2) 依赖环境配置

当软件下载完成后,业务服务框架并不急于进行安装,而是按照属性文件的内容检测安装环境是否具备,若安装环境尚不具备则首先从软件仓储环境中下载依赖软件进行安装;整个依赖检测的过程可以嵌套执行,直至所有的依赖环境均被安装;若依赖软件仓储环境无法提供,则安装过程直接终止,已安装的依赖环境不再回退。

3) 修改配置文件

当前软件开发模式下,软件运行所需的服务端信息如:数据库地址、服务端信息等大多存放在制定的配置文件中,需要用户手工修改,而大多数情况下用户对于后台运行的服务信息并不了解,这就需要仓储化管理方法动态获取服务信息。

软件安装完成后,业务服务框架会自动修改软件运行所需配置文件中的信息:业务服务框架读取配置文件中的关键字,将其发送至软件仓储环境,软件仓储环境结合用户权限信息在属性库中检索出其对应的真实值,并返回业务服务框架,框架修改配置文件内容。

考虑到后续服务端信息变更的可能性,框架将在软件每次启动之前进行一次配置文件的更新,确保服务端的实时性。

4) 实时进度显示

软件整个下载安装部署的过程均在业务服务框架界面中实时显示,当进度条走完,表示安装过程顺利完成,在界面中出现该软件快捷方式,点击快捷方式将直接启动软件;若中途安装失败则进度条直接消失,界面给出错误原因。

2.3 软件版本更新方式

本发明借鉴移动端APP更新方法,将其移植到信息系统中,使固定端同样具备软件更新主动推送的功能,详细更新流程如图 6所示:

如上图所示,业务服务框架在启动时或每隔一段时间就会将框架内已安装的软件信息发送至软件仓储环境,由软件仓储环境判断哪些软件存在新版本并将版本信息返回集成框架,框架在用户界面中的软件图标上给出提示信息,用户根据个人意愿决定是否执行版本更新,若用户决定执行版本更新,则框架将首先在软件仓储环境中下载新软件版本,并按照属性文件要求备份已安装软件数据信息,然后执行新版软件的安装步骤,若新版本安装完成导入备份数据信息随后卸载旧版本;若安装失败再删除已安装信息版本软件,恢复旧版本使用。

针对上述部署流程,提出如下处理原则:

1) 版本更新判定原则

信息系统在开发之初即为系统中的每个软件分配唯一的软件标识,后续版本更新不得变更软件标识。软件开发完成使用软件打包工具封装时,将软件标识作为必填属性之一添加到属性文件中。相同软件的不同版本通过打包工具提供的版本号属性进行区分,在软件仓储环境中相同软件标识的多个软件将被认为是同一软件的不同版本。

当软件仓储环境接收到业务服务框架提交的软件版本信息后,将根据软件标识和版本号在自身属性库中进行比对,若存在相同软件标识且版本号大于已安装版本号软件时即认为该存在更新。

2) 版本更新过程限定

为保证软件在版本更新过程中使用的连续性,在进行版本更新前需将已安装版本的数据信息进行备份,备份数据的类型在软件打包工具生成的数据文件中有详细的描述;

① 软件版本进行更新应先进行新版本的安装,在进行旧版本的删除,以保证旧版本在新版本安装失败后还能正常使用;

② 若软件仓储环境中同时存在多个可更新版本时,将默认推送最新的版本软件;

③ 业务服务框架作为软件的一种,也可同步进行更新操作。

④ 多个软件的更新操作可并行执行,软件的更新操作不会影响其他已安装软件的正常运行。

3 结束语

本方法最大的特点为结合信息系统特点对软件进行全生命周期的管理,而现有的软件管理模式将软件开发人员、软件管理人员及最终的软件使用人员割裂开来,各自为政。造成最终用户需要将很大的精力放在软件的安装部署工作上,从一开始就降低了对信息系统的好感度;同样软件管理人员在旧的软件管理模式下,很大一部分精力要用来解决最终用户在软件安装及更新过程中出现的各种问题。

本文从信息系统真实的开发及使用场景入手,结合移动端应用使用流程,通盘考虑软件整个使用流程,更多地从如何打通软件存续的各个阶段的连接点下功夫,实现对软件的仓储化管理,而对软件自身形态不做任何限制,确保不同开发语言、不同开发环境下生成的软件均可自动安装部署在系统用户的环境中。

本文提出的集中式仓储化管理方法解决了信息系统各类软件无法统一管理、自动部署的难题,为软件管理模式设计确立了标杆,提供了思路。

参考文献:

[1] 冯翔, 殷月明, 吴永和. 融合软件商店和Web聚合的SaaS软件开发模型[J]. 电信科学, 2012(11).

[2] 马友忠, 孟小峰, 姜大盺. 移动应用集成:框架、技术与挑战[J]. 计算机学报, 2013(7).

[3] 周婧. 基于云服务平台的应用软件商店开发者社区研究与实现[D].成都: 电子科技大学, 2009.

猜你喜欢
集中管理服务化
制造服务化与企业绩效的U 型关系研究
——基于组织惰性的调节作用
制造企业服务化程度、服务化模式和服务化收益研究
制造业服务化发展战略研究
浅谈民营集团型企业资金管理
制造服务化发展战略
制造业服务化对提升制造型企业创新能力的作用研究