一种通过socket通信方式自动升级目标软件的程序的制作方法

文档序号:14727214发布日期:2018-06-19 11:51阅读:237来源:国知局

本发明属于C++及C#工程的技术领域,具体地说,涉及一种通过socket通信方式自动升级目标软件的程序。



背景技术:

在一个较大型的分布式系统中,可能会在多台主机上部署多种软件,当系统规模增大到一定程度后,如果系统中大量软件需要更新时会非常麻烦,传统人工逐个软件更新不仅工作量大而且容易出现遗漏。



技术实现要素:

针对现有技术中上述的不足,本发明提供一种可以自动升级目标软件,并且可以管理被升级软件版本号、记录升级日志、方便管理升级进度的通过socket通信方式自动升级目标软件的程序。

为了达到上述目的,本发明采用的解决方案是:一种通过socket通信方式自动升级目标软件的程序,包括升级客户端、升级服务器及FTP服务器,所述的升级客户端部署在目标软件所在的主机内,升级客户端在运行过程中和升级服务器持续保持有socket连接。

所述的升级客户端用于检测并发送目标软件信息、接收升级消息并检测目标软件是否需要升级,下载升级版本文件,升级目标软件。

所述的升级服务器包括数据库,升级服务器用于接收目标软件信息、导入目标软件的升级信息及升级版本文件、保持升级信息到数据库、发送升级消息。

所述FTP服务器用于保存升级版本文件。

进一步地,所述的通过socket通信方式自动升级目标软件的程序包括以下步骤:

1)升级提供者将目标软件的升级信息及升级版本文件添加到升级服务器中;

2)升级服务器将升级版本文件存入FTP服务器;

3)升级服务器保持升级信息到数据库,所述升级信息包括升级版本信息、升级改动描述、需更新的文件及所述需更新的文件的路径;

4)升级客户端读取升级客户端所在主机内的目标软件的信息,升级客户端将目标软件的当前版本信息发送至升级服务器;

5)升级服务器对比目标软件的当前版本信息与目标软件的升级版本信息并发送目标软件的当前本版本信息与目标软件的升级版本信息的对比结果至升级客户端;

6)升级客户端解析所述对比结果,目标软件的当前版本不需要升级,运行流程跳回步骤4);目标软件的当前版本需要升级,升级客户端向用户发出询问,得到确认升级的指令后,升级客户端向升级服务器发出升级请求,升级服务器将生成的升级信息发送至客户端;

7)升级客户端关闭正在运行的程序,升级客户端从FTP服务器获取所述需更新的文件替换所述目标软件的当前版本文件,完成升级。

进一步地,所述的步骤6)中,升级客户端解析所述对比结果,目标软件的当前版本需要升级,升级客户端向用户发出询问,升级客户端得到用户拒绝升级的指令后,运行流程退出程序。

进一步地,所述的步骤7)中,升级客户端从FTP服务器获取所述需更新的文件,升级客户端校验所述需更新的文件是否正确,所述需更新的文件错误,运行流程调回上一层,升级客户端重新从FTP服务器获取所述需更新的文件;所述需更新的文件正确,升级客户端使用所述需更新的文件替换所述目标软件的当前版本文件,完成升级。

进一步地,所述的升级客户端和升级服务器使用UDP通信并具备并发控制。

进一步地,所述的FTP服务器可以与升级服务器分布部署。

进一步地,所述的数据库使用本地文本型数据库。

本发明的有益效果是:

1、替代人工逐个软件更新的方式,提高工作效率并记录升级日志,方便管理;

2、通过socket通信方式自动升级目标软件;

3、记录升级日志,方便追溯升级过程,将每次更新的版本都记录到数据库中,以便获取客户端版本与最新版本的差异;

4、管理被升级软件版本号,每一种目标软件拥有一个独立版本号,一个升级客户端可以同时管理多种目标软件;

5、升级文件压缩保存在FTP服务器中,升级文件使用FTP传输,与升级信令独立;

6、可以在不改动目标软件的前提下实现自动批量升级程序。

附图说明

图1为本发明实施例的系统框架图。

图2为升级服务器的运行流程图。

图3为本发明中升级服务器的工作时序图。

图4为升级客户端的运行流程图。

图5为本发明中升级客户端的工作时序图。

具体实施方式

以下结合附图对本发明作进一步描述:

为使本发明的目的、技术方案和优点更加清楚,下面对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参照附图1-附图5,本发明提供一种通过socket通信方式自动升级目标软件的程序,包括升级客户端、升级服务器及FTP服务器,所述的升级客户端部署在目标软件所在的主机内,升级客户端在运行过程中和升级服务器持续保持有socket连接;socket又称\"套接字\",应用程序通常通过\"套接字\"向网络发出请求或者应答网络请求,本发明通过socket通信方式自动升级目标软件。

所述的升级客户端用于检测并发送目标软件信息、接收升级消息并检测目标软件是否需要升级,下载升级版本文件,升级目标软件;本发明替代人工逐个软件更新的方式,提高工作效率,可以在不改动目标软件的前提下实现自动批量升级程序。

所述的升级服务器包括数据库,升级服务器用于接收目标软件信息、导入目标软件的升级信息及升级版本文件、保持升级信息到数据库、发送升级消息;升级服务器记录升级日志,方便追溯升级过程,将每次更新的版本都记录到数据库中,以便获取客户端版本与最新版本的差异,管理被升级软件版本号,每一种目标软件拥有一个独立版本号,使得一个升级客户端可以同时管理多种目标软件。

所述FTP服务器用于保存升级版本文件,升级版本文件压缩保存在FTP服务器中,升级版本文件使用FTP传输,与升级信令独立。

本实施例中,所述的通过socket通信方式自动升级目标软件的程序包括以下步骤:

1)升级提供者将目标软件的升级信息及升级版本文件添加到升级服务器中;升级服务器在运行过程中记录升级日志,方便追溯升级过程;

2)升级服务器将升级版本文件存入FTP服务器;当目标软件需要升级时,升级客户端从FTP服务器下载升级版本文件来完成目标软件的升级;

3)升级服务器保持升级信息到数据库,所述升级信息包括升级版本信息、升级改动描述、需更新的文件及所述需更新的文件的路径;数据库用于保存升级日志,当升级客户端向升级服务器发出升级请求时,升级服务器将生成的升级信息发送至升级客户端;

4)升级客户端读取升级客户端所在主机内的目标软件的信息,升级客户端将目标软件的当前版本信息发送至升级服务器;

5)升级服务器对比目标软件的当前版本信息与目标软件的升级版本信息并发送目标软件的当前本版本信息与目标软件的升级版本信息的对比结果至升级客户端;

6)升级客户端解析所述对比结果,当目标软件的当前版本不需要升级时,运行流程跳回步骤4);当目标软件的当前版本需要升级时,升级客户端向用户发出询问,升级客户端在得到用户的确认升级的指令后,升级客户端向升级服务器发出升级请求,升级服务器将生成的升级信息发送至升级客户端,升级客户端开始对目标软件进行升级;

7)升级客户端关闭正在运行的程序,升级客户端从FTP服务器获取所述需更新的文件替换所述目标软件的当前版本文件,修改程序版本号,完成升级。

本实施例中,所述的步骤6)中,升级客户端解析所述对比结果,目标软件的当前版本需要升级,升级客户端向用户发出询问,升级客户端得到用户拒绝升级的指令后,运行流程退出程序,程序结束。

本实施例中,所述的步骤7)中,升级客户端从FTP服务器获取所述需更新的文件,升级客户端校验所述需更新的文件是否正确,当所述需更新的文件错误时,运行流程调回上一层,升级客户端重新从FTP服务器获取所述需更新的文件;当所述需更新的文件正确时,升级客户端使用所述需更新的文件替换所述目标软件的当前版本文件,修改程序版本号,完成升级,重新开始检验是否需要升级,循环达到自动升级目标软件的效果。

本实施例中,所述的升级客户端和升级服务器使用UDP通信并具备并发控制。

本实施例中,所述的FTP服务器可以与升级服务器分布部署。

本实施例中,所述的数据库使用本地文本型数据库。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1