C/S架构系统的自动更新功能设计与实现(一)

需求背景

项目上要开发一个C/S架构的系统,在客户单位的内网上使用。客户要求,系统上线后,有版本更新时,要能够自动检测新版本并获取更新,而不需要每次使用U盘等介质拷贝安装新版本。基于此需求,我们需要设计一套可以在线更新的C/S架构,在系统启动时,检测服务器有无更新版本,如果有的话,就自动下载新版本组件到本地。更新完成后,启动新版本。

功能设计

服务器端版本库目录

设置一个专门用于发布版本的目录,每个版本有更新时,手动放到此目录下。客户端更新时,也从此目录下获取最新版本。可定义版本文件夹的命名规则,如:版本1、版本2、版本3,或:版本_V20190601、版本_V20190603、版本_V20190610。当然,如果不定义规则,将自动获取最后一次进行写操作的文件夹,视为最新版本。

服务器端版本更新服务接口

  • 获取最新版本摘要:包括版本号、版本发布日期、版本更新文件汇总信息(总个数、总大小)等
  • 获取最新版本更新文件详细信息:包括相对路径、大小、时间、MD5码等
  • 获取最新版本完整信息:包括摘要与更新文件详细信息
  • 下载更新文件:根据文件名,从服务器端逐个下载更新文件到客户端

客户端与服务器通信机制

  • 基于HTTP协议的WebAPI通信,架构清晰,开发简单,成熟高效。
  • HTTP协议传输对象(除文件流外)均采用轻量易解析的JSON格式。
  • 内网环境下使用,不考虑客户端身份校验。

客户端更新机制

启动时,首先判断有无版本更新文件,如有,则取得本地版本信息。获取服务器端最新版本,如版本号、版本更新时间、版本文件摘要内容与本地相同,则表示无新版本,不需更新。如不同,则启动更新过程,取得服务器端更新文件信息,逐文件对比服务器端文件与本地文件是否一致,不一致即进行下载更新。
更新的文件先放到一个临时目录下。更新完成时,将更新文件拷贝到可执行文件(主程序)目录下,替换旧版文件。
拷贝替换完成时,删除临时文件,关闭更新窗口,启动主程序(无更新时不显示更新窗口,直接启动主程序)。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java c/s(Client/Server)自动升级是指在Java C/S架构中,客户端和服务器端的Java应用程序可以实现自动更新和升级。 在Java C/S架构中,通常客户端和服务器端的Java应用程序是分开部署的,客户端负责提供用户界面和交互功能,而服务器端负责处理业务逻辑和数据存储。为了保持应用程序的性能和功能的最新状态,自动升级变得十分重要。 实现Java C/S自动升级的一种常见方式是使用Java的远程方法调用(Remote Method Invocation, RMI)技术。通过RMI,客户端和服务器之间可以进行通信和交互。当服务器端有新的版本发布时,它可以通过RMI将新版本的应用程序推送给客户端。 另一种实现自动升级的方式是使用Java Web Start技术。Java Web Start允许在客户端上直接启动和更新Java应用程序。当服务器端有新版本发布时,客户端可以通过Java Web Start自动下载和安装新版本,并且可以根据用户设置进行自动更新。 无论是使用RMI还是Java Web Start,实现Java C/S的自动升级都需要特定的代码和配置。服务器端需要提供版本管理和分发新版本的功能,客户端需要提供相应的更新和自动升级的功能。此外,还需要考虑网络传输和安全性等方面的问题。 总之,Java C/S自动升级是通过使用技术手段,在Java应用程序的客户端和服务器端之间实现自动更新和升级的功能。这样可以确保应用程序的性能和功能的最新状态,提供更好的用户体验和服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值