惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Hackread – Cybersecurity News, Data Breaches, AI and More
C
Check Point Blog
Hacker News: Ask HN
Hacker News: Ask HN
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
WordPress大学
WordPress大学
P
Proofpoint News Feed
V
Visual Studio Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
N
Netflix TechBlog - Medium
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 聂微东
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 叶小钗
Cisco Talos Blog
Cisco Talos Blog
S
Schneier on Security
T
Threat Research - Cisco Blogs
腾讯CDC
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The Hacker News
The Hacker News
Google DeepMind News
Google DeepMind News
Microsoft Security Blog
Microsoft Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
GbyAI
GbyAI
N
News | PayPal Newsroom
L
LINUX DO - 最新话题
酷 壳 – CoolShell
酷 壳 – CoolShell
P
Palo Alto Networks Blog
T
Tenable Blog
S
Secure Thoughts
T
Threatpost
V2EX - 技术
V2EX - 技术
大猫的无限游戏
大猫的无限游戏
Martin Fowler
Martin Fowler
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Vercel News
Vercel News
罗磊的独立博客
P
Privacy & Cybersecurity Law Blog
Engineering at Meta
Engineering at Meta
小众软件
小众软件
Google DeepMind News
Google DeepMind News
N
News and Events Feed by Topic
Y
Y Combinator Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Cybersecurity and Infrastructure Security Agency CISA
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
P
Privacy International News Feed
H
Heimdal Security Blog
量子位
B
Blog

博客园 - 衡斅

基于.net C# Socket WinForm MQTT 客户端开发 基于.Net C# 通信开发-网络调试助手 基于.Net C# 通信开发-串口调试助手 基于HBuilderX+UniApp+ColorUi+UniCloud 优宝库 开发实战(一) .net core 跨平台开发 微服务架构 基于Nginx反向代理 服务集群负载均衡 .Net Core 跨平台开发实战-服务器缓存:本地缓存、分布式缓存、自定义缓存 redis 分布式缓存实战-redis 事务 基于.net EF6 MVC5+WEB Api 的Web系统框架总结(4)-Excel文件读、写操作 基于.net EF6 MVC5+WEB Api 的Web系统框架总结(3)-项目依赖注入 基于.net EF6 MVC5+WEB Api 的Web系统框架总结(2)-业务项目搭建 基于.net EF6 MVC5+WEB Api 的Web系统框架总结(1)-Web前端页面 基于html5 plus + Mui 移动App开发(三)-食全库 基于Html5 Plus + Vue + Mui 移动App开发(三)-文件操作(读取、保存、更新数据) 基于Html5 Plus + Vue + Mui 移动App 开发(二) 基于html5 plus + Mui 移动App开发(一) 基于百度地图的产品销售的单位查看功能设计与实现 基于服务(Web Service)的文件管理Winform客户端实现(二) 如何通过WPS 2013 API 将Office(Word、Excel和PPT)文件转PDF文件 如何通过SerialPort读取和写入设备COM端口数据
实全软件产品自动升级管理解决方案
衡斅 · 2015-06-28 · via 博客园 - 衡斅

实全软件产品自动升级管理解决方案

目 录

1.    描述... 1

2.    产品管理后台系统... 1

2.1.     产品发布... 1

2.2.     产品下载... 2

2.3.     下载日志... 3

2.4.     异常日志... 3

3.    产品Web Service服务接口... 3

3.1.     接口说明... 4

4.    产品升级更新程序... 4

4.1.     产品升级自动更新工具... 5

4.2.     产品版本信息... 5

5.    结语... 6

1.      描述

  任何一个开发团队在软件产品的开发、设计中都很难将软件产品做到完美,在有限的时间、人力和物力情况,甚至还存在较多的漏洞时,就得将产品交付客户试用。在软件的使用中,会不断发现问题,这些问题可能是软件本身的毛病;也可能是运行的软、硬件环境的变化造成的;同时用户会有不断的完善产品功能的要求。因此软件产品升级在我们使用的时候变得越来越普遍。对于用户来说,软件升级可以补全漏洞,确保数据安全;可以增加和更新功能,用起来更加得心应手。对于软件开发商来说,为了拓展市场,增强自己的竞争力,也需要不断升级自己的软件,力求做得更好。所以说软件产品的版本控制和自动更新升级功能对于开发和维护有重要的意义。

    本软件产品自动升级管理解决方案为:

  • 使用Winform 程序管理各个软件产品信息、版本、产品文件、产品升级跟踪及产品异常跟踪。
  • 使用WEB Service提供产品升级更新接口。
  • 使用Windows 程序和服务程序获取服务器产品升级信息及升级文件,并对产品进行自动更新操作。

2.      产品管理后台系统

  使用Winform 程序管理各个软件产品信息、版本、产品文件、产品升级跟踪及产品异常跟踪。

2.1.   产品发布

   对产品版本信息进行登记,增加产品文件并进行发布。产品发布后允许产品升级更新程序进行下载更新。提供产品发布前产品信息及产品文件下载,进行测试,以保证产品升级更新程序下载的程序能够正常运行。

 

2.2.   产品下载

产品下载提供产品发版本后的产品信息及产品文件下载,可下载历史版本文件,遇到发布后有重大问题时,允许取消发布,即不允许产品升级更新程序进行下载文件。

 

2.3.   下载日志

下载日志跟踪产品下载日志

2.4.   异常日志

异常日志跟踪产品更新异常日志及程序异常日志,以便产品优化。

3.      产品Web Service服务接口

产品Web Service 服务接口主要提供给产品升级更新程序检查、下载及提交更新日志接口。

3.1.   接口说明

接口名称

接口说明

SQReturnResult GetPReleaseDateTime(string pProductNo)

获取产品最新发版时间。返回说明:成功:0,失败

SQReturnResult GetPReleaseInfo(string pProductNo)

获取产品信息。返回说明:成功:0,失败

SQReturnResult GetProductFile(string pProductNo,string pVersion, string pFileName)

获取产品文件内容。返回说明:成功:0,失败

SQReturnResult GetProductFileByte(string pFileTag)

获取产品文件内容。返回说明:成功:0,失败

SQReturnResult AddError(string pProductNo, string pProductName, string pPVersion

            , string pCustomerNo, string pCustomerName, string pErrorClassify, string pErrorTitle, string pErrorRemark)

增加产品异常信息。返回说明:成功:0,失败

4.      产品升级更新程序

  实现客户端相关文件的自动更新有多种方法,常见的方法是通过人工的或智能的手段通知客户端有新的软件版本和更新方法,软件使用人员手动从网上下载必要的文件并更新;或者在应用软件的菜单条目中增加自动升级的功能,让使用人员控制软件升级的频率和时机。这些方法在特定条件下应当有它存在的意义和优势,但对那些与数据库有关的管理程序而言,考虑到多客户数据处理的同步与协调问题,如果软件的更新由使用人员掌握,很难保证版本之间数据处理的一致性,并且往往使得开发人员为了考虑前后程序的兼容性束缚了设计思路。因此,本文实现的软件自动升级方法,其中有一个重要的目标是保证软件强制性的升级,而且考虑到使用人员计算机应用能力的参差不齐,力求达到升级过程的无缝过渡。也就是说,使用人员在程序启动的时候,由程序本身检测是否有新的版本需要更新,并在用户完全不知情的情况下替换相关文件,最后又自动重新运行新的主程序。对用户来说,软件升级的过程是程序在后台自动、平滑地实现的,根本不需要关心软件的升级问题,只要放心地使用,完全由开发人员掌握软件的分发、维护、更新、同步等问题。为实现这一关键目标,设计思路应主要包括以下几点:

  • 产品升级更新程序连接服务器获取产品最新发版时间,与本地产品发版时间进行比对。
  • 本地产品发版时间与服务器发版时间不符时,获取产品发版信息。
  • 根据产品发版信息下载服务器产品文件。
  • 将下载的产品文件更新到产品目录。

4.1.   产品升级自动更新工具

 

4.2.   产品版本信息

  产品版本信息记录产品版本信息及产品文件信息。同时下载后将保存到产品目录中,以便下次根据此进行判断是否有新的版本需要下载及更新。

 

5.      结语

  软件产品自动升级更新管理解决方案目前支持Winform程序,Windows服务程序及控制台程序,对于B/S架构软件产品,产品文件及文件目录比较多,管理产品文件方式进行发布会比程序要复杂;如果打包成一个文件,产品升级更新工具需要对打包文件进行解压,将后续考虑优化。产品升级更新工具只负责下载产品文件及更新文件,对于软件产品需要更新数据库、需要更新注册表等操作,将由软件产品自身处理。