论文部分内容阅读
企业的信息化在提高企业效率的同时,也带来了管理和运营上的负担。企业中的IT部门通常需要负责操作系统安装和升级,安全补丁的部署,应用程序的部署和升级等任务。随着企业规模的扩大,这些任务大多数情况下需要跨越不同的时间、地域和软硬件平台。这样复杂的部署环境,再加上多变的部署需求,不仅增加了管理的难度和成本,也降低了管理的效率,如果不采取措施,管理成本将迅速增加,并远远超过软件本身的价值。因此,开发可重用的部署过程管理软件,实现对软件部署的统一管理,成了当务之急。 ZSDT(Zju Software Delivery Toolkit)自动软件发布系统就是在这种需求下诞生的。ZSDT能够降低企业软件部署的风险和复杂度。该系统可以自动完成软件部署的各个环节,包括计划、执行、报告等。然而,ZSDT中核心功能是软件包的无人值守安装。通过本论文将要介绍的ZSDT打包器和ZSDT发布代理,ZSDT实现了软件包的无人值守安装和卸载,并能监控整个过程。 ZSDT打包器通过在一台“样本计算机”上安装需要发布的软件,并通过截获系统调用以“记录软件行为”,从而创建ZSDT自定义的软件包。而ZSDT发布代理是一个运行于终端计算机上的程序,它接受ZSDT的控制,负责在终端计算机上部署软件包或回滚已经部署的软件包。本文介绍了这两个模块的设计思路和实现方法。主要工作包括: 针对ZSDT支持各种安装包格式等特点,设计和实现了ZSDT打包器。通过分析打包器设计的设计目标,提出了多种可能的设计方案,并最终选择了最有效的“记录软件行为”的方案。设计和开发了该方案所依赖的内核态模块和用户态模块。调查和解决了开发过程中的多项难题,包括系统调用截获、注册表和文件系统的实时监视、软件安装过程中重新启动计算机并在重启后自动继续打包等。 针对ZSDT需要(1)按需安装软件包(2)无人值守部署,并监视安装过程(3)可回滚部署的软件等特点,设计和实现了ZSDT发布代理。主要包括以下模块:控制命令监听模块,使终端计算机能接受ZSDT的统一管理;软件包下载模块,实现软件包的按需下载和断点续传;软件包部署和回滚模块,实现软件的无人值守部署,以及按需回滚。