本篇文章是对【大话QT之十二】基于CTK Plugin Framework的插件版本动态升级文章的补充,在上篇文章中我们阐述的重点是新版本的插件已经下载到plugins目录后应该如何更新本地正在运行的程序,是整个插件升级实现的后半部分。本篇文章就来讲述软件自动部署(当然,也包括插件升级)的前半部分。
我们必须有这样一点认识,即:我们的程序是运行在用户机器上的,插件更新不是我们手动放进去的,而必须有一种机制使客户端能够检测到需要升级插件了,然后将插件自动下载下来,最后自动进行安装或插件更新。
系统软件自动部署实现的基本架构为:
上图中的组成中,【应用】和【更新服务】部分是运行在客户端的,【数据库】和【文件服务器】是运行在服务端,而【Server (WebServer)】则负责客户端与服务端进行通信,其基本的流程如下:
1> 客户端的【更新服务】采用QTimer::singleShot()定时触发版本检测的逻辑。
2> 版本检测逻辑中采用WebServer请求访问服务端的版本检测服务(通过PHP实