本发明专利技术提供了一种基于多线程技术实现软件智能化自动升级的系统及方法,通过主线程监听系统端口;通过连接处理线程从主线程轮循接收来自服务中心的通信连接,处理数据并将作业对象写入内部队列结构;通过任务工作线程处理内部队列结构中的作业对象,进行作业类型分离后,分派给线程池内的工作线程处理;通过版本升级线程定期访问服务中心,在通过服务中心的审核后下载升级文件并进行自动升级操作;通过线程池增加或停用工作线程,执行任务工作线程分派的作业。本发明专利技术通过多线程技术采用远程过程调用进行数据传送方式极大提高了软件的整体运行效率,在客户机‑服务器模式下实现了智能化自动升级,同时有效提高了升级工作的灵活性、简易性。
System and Method of Software Intelligent Automatic Upgrading Based on Multithread Technology
【技术实现步骤摘要】
基于多线程技术实现软件智能化自动升级的系统及方法
本专利技术涉及计算机
,具体地,涉及一种基于多线程技术实现软件智能化自动升级的系统及方法。
技术介绍
在许多大型企业中使用的企业级管理平台软件大多采用分布式系统架构,即服务端中心软件系统(以下简称服务中心)负责任务的生成、分派和管理,分布于网络中各个不同工作站的智能终端软件系统(以下简称“Agent”)负责执行各种用途的计算机作业任务,如查询操作系统CPU使用率、检查网络连通性、统计数据库性能报表等等。采用这种架构的软件系统一般都涉及使用大量Agent系统。然而,在工程的实施和维护过程中,为它们进行版本升级的工作量是巨大的、繁琐的,这些缺陷严重影响了它的广泛应用。因此,设计一种优秀的、智能的版本自动升级机制是非常必要的。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种基于多线程技术实现软件智能化自动升级的系统及方法。根据本专利技术提供的一种基于多线程技术实现软件智能化自动升级的系统,包括:主线程:监听系统端口;连接处理线程:从主线程轮循接收来自服务中心的通信连接,处理数据并将作业对象写入内部队列结构;任务工作线程:处理内部队列结构中的作业对象,进行作业类型分离后,分派给线程池内的工作线程处理,并发送执行结果到服务中心;版本升级线程:定期访问服务中心,在通过服务中心的审核后下载升级文件并进行自动升级操作;线程池:增加或停用工作线程,执行任务工作线程分派的作业。优选的,所述线程池包括:请求队列:存放和提取请求;结果队列:存储请求执行后返回的结果;线程池管理器:增加或停用工作线程;其中,工作线程通过轮询方式不断查看请求队列,只要有请求存在,则会提取出请求,进行执行;线程池管理器用调用方法查看结果队列,只要有值就取出,调用结果处理函数执行。优选的,所述版本升级线程在通过服务中心的审核后下载升级文件并进行自动升级操作包括步骤:步骤1、从服务中心获取升级新版本号,和本地当前版本号比较判定是否进行后续升级操作,若判断结果为是则执行下一步,若判断结果为否则结束;步骤2、从服务中心获取系统的升级授权状态值,判定是否进行升级操作,若判断结果为是则执行下一步,若判断结果为否则结束;步骤3、从服务中心下载升级压缩文件和MD5值;步骤4、计算下载升级压缩文件的MD5值并判定是否下载成功;步骤5、将升级压缩文件解压缩到本地临时目录;步骤6、将解压缩文件和目录复制到系统的相关目录;步骤7、执行系统的重启动脚本,由主线程重启后运行解压缩文件,并完成自动升级操作。根据本专利技术提供的一种基于多线程技术实现软件智能化自动升级的方法,包括:通过主线程监听系统端口;通过连接处理线程从主线程轮循接收来自服务中心的通信连接,处理数据并将作业对象写入内部队列结构;通过任务工作线程处理内部队列结构中的作业对象,进行作业类型分离后,分派给线程池内的工作线程处理,并发送执行结果到服务中心;通过版本升级线程定期访问服务中心,在通过服务中心的审核后下载升级文件并进行自动升级操作;通过线程池增加或停用工作线程,执行任务工作线程分派的作业。优选的,所述线程池包括:请求队列:存放和提取请求;结果队列:存储请求执行后返回的结果;线程池管理器:增加或停用工作线程;其中,工作线程通过轮询方式不断查看请求队列,只要有请求存在,则会提取出请求,进行执行;线程池管理器用调用方法查看结果队列,只要有值就取出,调用结果处理函数执行。优选的,所述版本升级线程在通过服务中心的审核后下载升级文件并进行自动升级操作包括步骤:步骤1、从服务中心获取升级新版本号,和本地当前版本号比较判定是否进行后续升级操作,若判断结果为是则执行下一步,若判断结果为否则结束;步骤2、从服务中心获取系统的升级授权状态值,判定是否进行升级操作,若判断结果为是则执行下一步,若判断结果为否则结束;步骤3、从服务中心下载升级压缩文件和MD5值;步骤4、计算下载升级压缩文件的MD5值并判定是否下载成功;步骤5、将升级压缩文件解压缩到本地临时目录;步骤6、将解压缩文件和目录复制到系统的相关目录;步骤7、执行系统的重启动脚本,由主线程重启后运行解压缩文件,并完成自动升级操作。与现有技术相比,本专利技术具有如下的有益效果:本专利技术通过多线程技术采用远程过程调用进行数据传送方式极大提高了软件的整体运行效率,在客户机-服务器模式下实现了智能化自动升级,在保证软件系统正确升级的同时有效提高了升级工作的灵活性、简易性。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1为本专利技术的系统架构图;图2为本专利技术线程池的工作模型图;图3为本专利技术软件升级的工作序列图;图4为本专利技术软件升级的工作流程图。具体实施方式下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变化和改进。这些都属于本专利技术的保护范围。如图1所示,本专利技术提供的一种基于多线程技术实现软件智能化自动升级的系统分为两部分,核心软件为主体,采用多线程设计模式负责到达通信连接和数据的处理、随后由基于独立线程的线程池处理数据,然后发送执行结果。同时,版本升级线程定周期进行文件下载升级操作,完成Agent的自动升级工作。基于多线程技术实现软件智能化自动升级的系统具体包括:主线程:监听系统端口;连接处理线程:从主线程轮循接收来自服务中心的通信连接,处理数据并将作业对象写入内部队列结构;任务工作线程:处理内部队列结构中的作业对象,进行作业类型分离后,分派给线程池内的工作线程处理,并发送执行结果到服务中心;版本升级线程:定期访问服务中心,在通过服务中心的审核后下载升级文件并进行自动升级操作;线程池:增加或停用工作线程,执行任务工作线程分派的作业。线程池是预先创建线程的一种技术。它在还没有任务到来之前,创建一定数量的线程,放入空闲队列中。这些线程都是处于睡眠状态,即均为启动,不消耗CPU,只是占用较小的内存空间。当请求到来之后,给这次请求分配一个空闲的工作线程,把请求传入此工作线程中运行,进行处理。当预先创建的工作线程都处于运行状态,即预制线程不够,线程池可以自由创建一定数量的新工作线程,用于处理更多的请求。当系统比较空闲时,也可以通过移出一部分一直处于停用状态的工作线程。Agent的线程池包括:(1)线程池管理器(ThreadPool),增加或停用工作线程,管理线程池;(2)工作线程(WorkThread),线程池中的线程;(3)请求接口(WorkRequest),创建请求对象,以供工作线程调度任务的执行;(4)请求队列(RequestQueue),用于存放和提取请求;(5)结果队列(ResultQueue),用于存储请求执行后返回的结果。如图2所示,线程池管理器通过添加请求的方法向请求队列(RequestQueue)添加请求,这些请求事先需要实现请求接口,即传递工作函数、参数、结果处理函数、以及异常处理函数。之后,初始化一定数量的工作线程,这些线程通过轮询方式不断查看请求队列(RequestQueue),只要有请求存在,则会提取出请求本文档来自技高网...
【技术保护点】
1.一种基于多线程技术实现软件智能化自动升级的系统,其特征在于,包括:主线程:监听系统端口;连接处理线程:从主线程轮循接收来自服务中心的通信连接,处理数据并将作业对象写入内部队列结构;任务工作线程:处理内部队列结构中的作业对象,进行作业类型分离后,分派给线程池内的工作线程处理,并发送执行结果到服务中心;版本升级线程:定期访问服务中心,在通过服务中心的审核后下载升级文件并进行自动升级操作;线程池:增加或停用工作线程,执行任务工作线程分派的作业。
【技术特征摘要】
1.一种基于多线程技术实现软件智能化自动升级的系统,其特征在于,包括:主线程:监听系统端口;连接处理线程:从主线程轮循接收来自服务中心的通信连接,处理数据并将作业对象写入内部队列结构;任务工作线程:处理内部队列结构中的作业对象,进行作业类型分离后,分派给线程池内的工作线程处理,并发送执行结果到服务中心;版本升级线程:定期访问服务中心,在通过服务中心的审核后下载升级文件并进行自动升级操作;线程池:增加或停用工作线程,执行任务工作线程分派的作业。2.根据权利要求1所述的基于多线程技术实现软件智能化自动升级的系统,其特征在于,所述线程池包括:请求队列:存放和提取请求;结果队列:存储请求执行后返回的结果;线程池管理器:增加或停用工作线程;其中,工作线程通过轮询方式不断查看请求队列,只要有请求存在,则会提取出请求,进行执行;线程池管理器用调用方法查看结果队列,只要有值就取出,调用结果处理函数执行。3.根据权利要求1所述的基于多线程技术实现软件智能化自动升级的系统,其特征在于,所述版本升级线程在通过服务中心的审核后下载升级文件并进行自动升级操作包括步骤:步骤1、从服务中心获取升级新版本号,和本地当前版本号比较判定是否进行后续升级操作,若判断结果为是则执行下一步,若判断结果为否则结束;步骤2、从服务中心获取系统的升级授权状态值,判定是否进行升级操作,若判断结果为是则执行下一步,若判断结果为否则结束;步骤3、从服务中心下载升级压缩文件和MD5值;步骤4、计算下载升级压缩文件的MD5值并判定是否下载成功;步骤5、将升级压缩文件解压缩到本地临时目录;步骤6、将解压缩文件和目录复制到系统的相关目录;步骤7、执行系统的重启动脚本,由主线程重启后运行解压缩文件,并完成自动升级操作。4....
【专利技术属性】
技术研发人员:顾宇栋,姜宇,汤春艳,刘晓,龚新平,赵新阳,
申请(专利权)人:上海宝信软件股份有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。