软件在线升级设计方案及演变过程分析.docxVIP

软件在线升级设计方案及演变过程分析.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件在线升级设计方案及演变过程分析 摘要:本文通过一个虚拟项目,以时间为序,描述了一个软件在线升级设计方案的演变过程,针对遇到的一些典型问题进行分析,提出了相应的解决方法,并对该方案的一些不足提出改进建议。 关键字:在线升级?自动升级?升级包?类工厂?Xml ? 一、?????????????前言 目前,各种业务系统的应用软件,部署方式为B/S结构和C/S结构。B/S由于易于部署、维护,但完成一些复杂业务时性能较弱。C/S结构,通过在客户部署客户端,性能优于B/S结构,但随着客户的增多,各种客户端版本的不统一,造成服务器复杂度提高,性能下降。通过在线升级,可以降低新版本软件的部署费用,提高客户满意度。 二、?????????????项目背景 假设某软件公司,有多个产品线,其中一个项目组负责其中一套应用软件,采用C/S结构设计,在全国各地拥有广泛的用户群。由于原有版本只带有简单的升级功能,需要制定完善的升级方案。如果该升级方案设计实现完美,可以推广到全公司各个产品使用。 三、?????????????第一次设计方案 1、?接到项目任务后,需要对需求进行分析,确定设计思路 该项目需要完成在线升级的功能,部署时,就得采用客户端-服务器结构,可分别简称为升级工具、升级服务器。升级工具向升级服务器查询升级包,并完成升级包的下载。 升级工具,需要完成应用软件的升级,待升级的应用软件,简称为应用程序。为了降低应用程序与升级工具的耦合,升级工具设计为单独的可执行程序,通过应用程序调用执行。 此时,确定了定义:升级工具,升级服务器,应用程序,相互关系如下图所示: 2、进一步分析 升级工具,需要升级自己。升级工具已经加载的DLL,是不能升级的,这需要将升级工具的功能一分为二,简称为升级工具A、升级工具B。升级工具A完成升级工具B的升级,升级工具B完成升级工具A的升级。 升级工具两部分的功能,可分别描述为:升级工具A主要完成升级包的查询、下载;更新升级工具B;升级工具B主要完成升级应用程序、更新升级工具A。 此时,重新确定了定义:升级工具、升级服务器、升级工具A、升级工具B,相互关系如下图示: 四、?????????????第二次设计方案 ???????1、开发中遇到的问题 ???????升级工具B,根据升级对象的特征,需要升级应用程序的文件、数据库结构、下载数据,每部分均通过独立模块完成。 ???????由于不同升级包的升级项各不相同,如何协调不同升级包的处理模块,调用、显示界面统一,是需要解决的问题。 ???????2、解决办法 ???????升级包提供包含各个升级项的配置,由类工厂负责生成的各个升级项的实现类,由升级工具的调度模块统一调用。其结构如下图所示: 五、?????????????第三次设计方案 ???????1、内部测试时遇到的问题 ???????由于应用程序的开发人员,与升级工具开发人员分工的不同,分别独立开发、测试自己职责范围内的开发任务。应用程序与升级工具之间的信息交换,如何能够标准化、规范化,如果能够在保持结构不变的情况下,扩展新的功能需求,需要解决。 ???????应用程序是一个主干程序,同时可以外挂各种扩展性功能组件。这些扩展的功能组件,大多是为某些特定范围内的客户,或者某些指定客户定制的。当应用程序升级以后,这些扩展组件也需要升级才能正常使用,这样,就需要一个非常灵活的配置。 ???????2、解决办法 ???????应用程序与升级工具间,通过应用程序列表Xml配置文件,完成数据交换。应用程序每次启动时,将自己的信息写入Xml配置文件。各种扩展的功能模块、升级工具,每次启动时,也将自己的信息写入Xml配置文件。 ???????同时,参照此设计,为了降低升级工具A与升级工具B的耦合,减少升级工具B对升级工具A的依赖,升级工具A下载完升级包,将已下载升级包的信息写入到已下载升级包Xml配置文件,启动升级工具。 ???????升级工具B完成升级后,将新版本信息写入应用程序列表配置文件,可防止检测升级包出现失误。 ???????调整后的结构,如下图所示: 六、?????????????总结与展望 1、?当前设计方案总结 ???????经过调整后的设计方案,由于是通过应用程序列表的Xml配置文件,实现应用程序和扩展组件的数据交换,此时,扩展组件可以任意扩展,升级工具均可通过Xml配置文件,向升级服务器查询、下载升级包。 ???????由于每次下载的升级包数量各不相同,升级工具A与升级工具B通过已下载升级包的Xml配置文件,完成数据交换,灵活、规范。 ???????升级工具B采用类工厂设计思路,动态生成各升级项的实现类,安装升级包界面统一、正式。 ???????但是,此设计方案只能应用于同一产品及其扩展组件的升级,

文档评论(0)

xiedenglong2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档