[发明专利]一种自动分发、运行和更新可执行程序的方法及系统在审
申请号: | 201310385972.2 | 申请日: | 2013-08-30 |
公开(公告)号: | CN103473287A | 公开(公告)日: | 2013-12-25 |
发明(设计)人: | 张闯;李钊;徐克付;张鹏 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/445 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 自动 分发 运行 更新 可执行 程序 方法 系统 | ||
1.一种自动分发、运行和更新可执行程序的方法,其特征在于,包括如下步骤:
步骤A:客户端将可执行程序及相关文件所在目录打包成一个文件,并存储在缓存中;
步骤B:客户端采用大文件分割及索引存储方法将缓存中的打包文件存储到状态存储集群的相应目录中;
步骤C:工作节点每隔心跳时间到状态存储集群中与其相关的目录检测索引状态,当检测到有新的索引或已有索引有更新,按照索引方式将可执行程序下载到本地目录;
步骤D:工作节点每隔心跳时间到状态存储集群中与其相关的目录获取包括程序名、程序地址的程序相关信息;
步骤E:工作节点根据程序相关信息,每隔心跳时间到本地目录检测可执行程序的下载状态,直到检测到可执行程序下载完成时,启动工作进程执行可执行程序。
2.根据权利要求1所述一种自动分发、运行和更新可执行程序的方法,其特征在于,上述技术方案还包括:
步骤F:工作节点执行单元每隔心跳时间检查本地目录中正在执行的可执行程序;
步骤G:计算可执行程序的MD5值,当发现可执行程序的MD5值发生变化时则终止对原可执行程序的执行,重新执行更新的可执行程序。
3.根据权利要求1所述一种自动分发、运行和更新可执行程序的方法,其特征在于,所述步骤B中客户端采用大文件分割及索引存储方法将缓存中的打包文件存储到状态存储集群的相应目录中的具体实现为:
步骤B1:判断状态存储集群中是否存在与打包文件相对应的父目录,如果存在,执行步骤B2;如果不存在,则新建父目录,执行步骤B2;
步骤B2:将打包文件分割成若干个分片文件;
步骤B3:在状态存储集群中的父目录中存储包括分片文件数目、每片分片文件的大小、末尾分片文件大小在内的分片信息;
步骤B4:根据父目录中存储的分片信息创建相应数量的子目录;
步骤B5:将各分片文件存入相应的子目录中。
4.根据权利要求3所述一种自动分发、运行和更新可执行程序的方法,其特征在于,所述步骤C中工作节点从状态存储集群下载可执行程序的具体实现为:
步骤C1:工作节点每隔心跳时间检查状态存储集群中与其相关的父目录的版本号及更新时间;
步骤C2:根据父目录的版本号是否更新且更新时间小于心跳时间,判断是否有新的可执行程序需要执行或原可执行程序需要更新,如果有则执行步骤C3;否则等待心跳时间,返回步骤C1;
步骤C3:所述工作节点根据父目录中存储的分片信息,将子目录中存储的分片文件拼接读取到工作节点的本地目录。
5.根据权利要求4所述一种自动分发、运行和更新可执行程序的方法,其特征在于,客户端向状态存储集群上传分片文件前,要对父目录加写锁,上传完毕,解除对父目录的写锁;工作节点从状态存储集群下载可执行程序前,要对父目录加读锁,下载完毕后,解除对父目录的读锁。
6.根据权利要求5所述一种自动分发、运行和更新可执行程序的方法,其特征在于,对父目录加读、写锁的具体实现为:
想获得锁的进程在父目录下创建临时节点,读锁的临时节点前缀设置为read+编号,写锁的前缀设置为write+编号;
创建读锁的时候,检查是否有编号小于自己的写锁存在,若存在则对编号刚好小于自己的写锁节点进行监听,直到监听的写锁被撤销,便可获得读锁;
创建写锁时,检查创建的临时节点编号是否为最小,如不是最小,则需要对编号刚好小于自己的读锁或写锁进行监听,直到监听的锁被撤销,便可获得写锁;
撤销读锁或写锁只需删除临时节点。
7.一种自动分发、运行和更新可执行程序的系统,其特征在于,包括客户端、状态存储集群和若干个工作节点;
所述客户端,其用于将可执行程序及相关文件所在目录打包成一个文件,存储在缓存中;并采用大文件分割及索引存储方法将缓存中的打包文件存储到状态存储集群的相应目录中;
所述状态存储集群,其用于以索引方式存储客户端上传的文件,还用于保存其客户端和各工作节点的工作状态及心跳信息;
所述工作节点,其用于每隔心跳时间到状态存储集群检测索引状态,当检测到有新的索引或已有索引有更新,按照索引方式将可执行程序下载到本地目录,下载完成时,启动工作进程执行可执行程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310385972.2/1.html,转载请声明来源钻瓜专利网。