- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)