专利名称:一种远程文件的版本快速比对方法
一种远程文件的版本快速比对方法
技术领域:
本发明涉及一种计算机程序领域中关于远程文件的版本比对方法。背景技术:
目前,大部分企业应用计算机程序皆采用CS结构(服务器,客户端)进行部署。 在CS(服务器,客户端)结构下,由于计算机程序本身的版本更新,很多应用程序都会采用新版本的程序首先部署到服务端,各客户端从服务端自动下载最新程序已达到更新本地程序至最新版本的方法。同时,为了保证客户端程序是否与服务端程序一致,均要让客户端程序与服务端程序进行对比,已确认版本是否一致,是否需要更新。客户端的企业应用计算机程序一般包括若干个计算机程序和相关的程序依赖库。 如图1,在进行程序对比时,往往是客户端的各程序和依赖库逐一与服务端的对应程序文件进行对比,判断程序版本是否一致,这就导致了各客户端首先要连接至服务端,上传客户端各程序的版本信息,在服务端上进行版本对比,如版本不一致通知客户端做好下载准备,客户端下载最新程序版本,已便对客户端本地程序进行版本更新。由于部署时服务端可能只有一台或少量,可往往存在大量的对应客户端,数量好几倍于服务端,如果所有的客户端版本对比均在服务端进行,会极大的加重服务端的负担且服务端与客户端间要多次通讯连接才能达到版本更新的目的,为此现有的方法会加重服务端及相关通讯网络的负担,产生过多的运算。因此,存在着以下两个主要缺点缺点1 客户端连接至服务器后,需将客户端上的程序逐一与服务器上程序进行版本对比,导致对此次数较多,加重服务器负担。缺点2 所有客户端的程序版本对比均要在服务端上进行,如果有成千上万个客户端进行版本对比,所有的运算均在服务端上进行,加重服务端负担。
发明内容本发明要解决的技术问题,在于提供一种远程文件的版本快速比对方法,它能够减轻服务端上的运算负担,实现客户端与服务端之间程序的快速对比。本发明是这样实现的一种远程文件的版本快速比对方法,具体包括如下步骤步骤10、在服务端根据最新程序生成最新的统一版本信息文件,在客户端保留有服务端原有的统一版本信息文件;步骤20、客户端连接到服务端,所述客户端下载服务端最新的统一版本信息文件;步骤30、客户端将下载的最新的统一版本信息文件与客户端保留的原有的统一版本信息文件进行程序的一一校验对比,如果对比一致,则继续对比下一程序,如果对比不一致,则通知客户端下载更新该本地程序版本,然后再对比下一程序,直至所有程序对比完毕;
3
步骤40、客户端请求下载需要更新的程序,将下载的程序覆盖替换掉原本的程序, 并将原有的统一版本信息文件替换为最新的统一版本信息文件。进一步的,所述步骤30中,所述校验比对的步骤具体包括根据下载的统一版本信息文件中记录的每一个程序名称,在客户端的统一版本信息文件中进行搜索,搜索是否有此相同程序名称的本地程序,客户端若无,则通知下载更新此程序;若有,再比较此程序的版本信息是否相同,若不同,则通知下载更新此程序;若相同,则不进行下载更新此程序, 继续比对下一个程序。进一步的,所述统一版本信息文件的结构包括程序的数目、名称、版本信息、文件大小。进一步的,所述版本信息是利用MD5算法计算出的程序文件值。本发明具有如下优点本发明采用在服务端生成服务端程序的统一版本信息文件,在客户端生成本地程序的统一版本信息文件,客户端下载服务端的统一版本信息文件后,与本地的统一版本信息文件进行程序的逐一对比,避免了客户端程序逐一与服务端程序进行版本对比的数量, 极大的降低了对比次数;本发明是采用下载服务端的统一版本信息文件至客户端,在客户端上进行版本对比的方法,通过将服务端上的运算分担至各客户端上,极大的减少服务端上的负担。
下面参照附图结合实施例对本发明作进一步的说明。图1为现有方法的结构示意图。图2为本发明的同一版本信息文件的示意图。图3为本发明方法的结构示意图。图4为本发明统一版本信息文件的比对流程示意图。
具体实施方式请参阅图2至图4所示,对本发明的实施例进行详细的说明。在CS结构(服务器,客户端)的自动升级程序中,服务端和客户端之间需要进行程序版本的比较,才能决定是否要进行程序的下载更新。要实现客户端程序的自动升级,需要在服务器提供有最新版本的程序,以使得客户端连接到服务器能够下载到最新版本的程序进行更新。本发明在服务端保存着一个统一版本信息文件,该统一版本信息文件详细记录着服务端程序(包括DLL即动态链接库、数据文件等等)的最新版本信息。服务端的统一版本信息文件是由一个独立的版本生成工具生成的,将需要的程序(包括DLL、数据文件等) 拉入到该版本生成工具,然后利用MD5算法(Message Digest Algorithm MD5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护)计算出的各程序文件值, 然后按统一版本信息文件格式生成对应的统一版本信息文件,并将相关程序与版本信息文件覆盖到服务端的下载目录(供客户端下载程序使用)。服务端的统一版本信息文件的结构包括程序的数目、名称、版本信息、文件大小。如图2所示,开始的节点Count下的字段FileCoimt记录服务端所有程序的数目,接下去的节点AllFile记录每个程序的名称FileName、版本信息FileVersion、文件大小FileSize, 字段FileName后面连接的数字代表是第几个要更新的程序,从O开始计算。例如FileNameO =CMSMain. exe,意思就是第一个程序的程序名称为 CMSMain. exe。FileVersionO = 2. 1, 意思就是第一个程序的版本信息为2. 1版本。FileSizeO = 2271,意思就是第一个程序的大小为2271字节。所述版本信息(FileVersion)的内容是使用MD5算法计算出的程序文件值,以保证版本信息值的唯一性。服务端的统一版本信息文件根据服务端程序的更新而不断的生成最新的统一版本信息文件。客户端也保存着一个统一版本信息文件,客户端的统一版本信息文件是下载自服务端的原有的统一版本信息文件,即客户端的原有的统一版本信息文件反映着客户端现有本地程序的版本情况。客户端保留的原有的统一版本信息文件的结构也包括程序的数目、名称、版本信息、文件大小。如图2所示,开始的节点Count下的字段FileCoimt记录服务端所有程序的数目,接下去的节点AllFile记录每个程序的名称FileName、版本信息FileVersion、文件大小FileSize,字段FileName后面连接的数字代表是第几个要更新的程序,从O开始计算。 例如FileNamel = CMS. dll,意思就是第二个程序的程序名称为CMS. dll。FileVersionl =ι. 1,意思就是第二个程序的版本信息为1. 1版本。FileSizel = 232,意思就是第二个程序的大小为232字节。所述版本信息(FileVersion)的内容是使用MD5算法计算出的程序文件值,以保证版本信息值的唯一性。当需要进行版本校验的时候,只要将服务端的最新的统一版本信息文件和客户端的原有的统一版本信息文件进行解析对比,如果一致,就不需要更新。如果不一致,就需要更新。如图3,本发明工作的具体流程为在服务端根据最新程序生成最新的统一版本信息文件,在客户端保留有服务端原有的统一版本信息文件;将客户端连接至服务端,所述客户端下载服务端最新的统一版本信息文件,然后将下载的统一版本信息文件与客户端本地的统一版本信息文件进行校验比对。如图4,根据下载的统一版本信息文件中记录的每一个程序名称,在客户端的原有的统一版本信息文件中进行搜索,搜索是否有此相同程序名称的本地程序,客户端若无,则通知下载更新此程序;若有,再比较此程序的版本信息字段是否相同,若不同,则通知下载更新此程序;若相同,则不进行下载更新此程序,继续比对下一个程序。例如,先将服务端最新的统一版本信息文件中第一个程序CMSMain. exe在客户端的原有的统一版本信息文件中进行搜索比对, 假设,客户端的统一版本信息文件中没有程序名称为CMSMain. exe的程序,则客户端需要从服务端下载此名称为CMSMain. exe程序。然后继续将服务端的第二个程序CMS. dll的名称在客户端的统一版本信息文件中进行搜索比对,若客户端的统一版本信息文件中存在程序名称为CMS. dll的程序,则,继续比对该程序的版本信息(FileVersion)的内容是否相同,如果两者的版本信息都一样即都是1. 1,则说明客户端的程序与服务端的程序是一致的,不需要更新,如果两者的版本信息不一样,则说明客户端的程序与服务端的程序不一致,客户端需要下载服务端的程序进行更新。
当服务端的最新的统一版本信息文件中记录的信息与客户端的原有的统一版本信息文件全部比较完毕后,客户端开始请求下载需要更新的程序。下载完毕后,将下载的程序覆盖替换掉原本的程序。在最后,客户端将原有的统一版本信息文件替换为最新的统一版本信息文件。以上所述,仅为本发明较佳实施例而已,故不能依此限定本发明实施的范围,即依本发明专利范围及说明书内容所作的等效变化与修饰,皆应仍属本发明涵盖的范围内。
权利要求
1.一种远程文件的版本快速比对方法,其特征在于具体包括如下步骤步骤10、在服务端根据最新程序生成最新的统一版本信息文件,在客户端保留有服务端原有的统一版本信息文件;步骤20、客户端连接到服务端,所述客户端下载服务端最新的统一版本信息文件;步骤30、客户端将下载的最新的统一版本信息文件与客户端保留的原有的统一版本信息文件进行程序的一一校验对比,如果对比一致,则继续对比下一程序,如果对比不一致, 则通知客户端下载更新该本地程序版本,然后再对比下一程序,直至所有程序对比完毕;步骤40、客户端请求下载需要更新的程序,将下载的程序覆盖替换掉原本的程序,并将原有的统一版本信息文件替换为最新的统一版本信息文件。
2.根据权利要求1所述的一种远程文件的版本快速比对方法,其特征在于所述步骤 30中,所述校验比对的步骤具体包括根据下载的统一版本信息文件中记录的每一个程序名称,在客户端的统一版本信息文件中进行搜索,搜索是否有此相同程序名称的本地程序, 客户端若无,则通知下载更新此程序;若有,再比较此程序的版本信息是否相同,若不同,则通知下载更新此程序;若相同,则不进行下载更新此程序,继续比对下一个程序。
3.根据权利要求1所述的一种远程文件的版本快速比对方法,其特征在于所述统一版本信息文件的结构包括程序的数目、名称、版本信息、文件大小。
4.根据权利要求3所述的一种远程文件的版本快速比对方法,其特征在于所述版本信息是利用MD5算法计算出的程序文件值。
全文摘要
本发明提供一种远程文件的版本快速比对方法,包括如下步骤10、在服务端根据最新程序生成最新的统一版本信息文件,在客户端保留有服务端原有的统一版本信息文件;20、所述客户端下载服务端的统一版本信息文件;30、客户端将下载的统一版本信息文件与本地的统一版本信息文件进行程序的一一对比,若对比一致,则继续对比下一程序,若对比不一致,则通知客户端下载更新该本地程序,然后再对比下一程序,直至所有程序对比完毕;40、客户端请求下载需要更新的程序,将下载的程序覆盖替换掉原本的程序,并根据下载更新的本地程序生成客户端的统一版本信息文件。本发明能够减轻服务端上的运算负担,实现客户端与服务端之间程序的快速对比。
文档编号G06F9/445GK102541593SQ201110429118
公开日2012年7月4日 申请日期2011年12月20日 优先权日2011年12月20日
发明者王建设, 蔡炆炆 申请人:福建星网视易信息系统有限公司