计算机软件升级的方法

文档序号:6376034阅读:224来源:国知局
专利名称:计算机软件升级的方法
技术领域
本发明涉及计算机软件升级的方法,尤指一种局域网中计算机软件升级的方法。
背景技术
计算机软件是结合计算机硬件执行一定功能的程序。对于计算机软件提供商来说,需要不断更新升级计算机软件以提供给用户更多的功能。而随着互联网的发展,计算机软件升级逐渐发展到通过服务器/客户端的方式实现远程升级。所谓服务器/客户端的方式是指计算机软件提供商将最新版本的计算机软件升级数据存放在服务器上,客户端的用户通过互联网采用HTTP(超链接传输协议)或FTP(文件传输协议)的方式直接从服务器上下载所需的升级数据。
上述计算机软件升级的方法存在如下的缺点由于现在很多的计算机都是处于一个局域网内部,如一个公司的网络,统一通过局域网中路由器出口连接上国际互联网,而一套相同的计算机软件安装在一个局域网内的多台计算机上的情况很普遍。因此,该局域网中每一份计算机软件都有网上升级的需求,而采用上述的方法升级软件时,所述局域网中的各个需要升级软件的用户仍只能分别与服务器交互以得到最新的软件升级数据,对于多份相同的计算机软件,需重复从升级服务器上下载相同的升级数据。在升级用户较多时,如多个用户同时连接升级服务器下载数据,这些重复下载的数据会占据网络出口带宽,造成网络的拥塞,增加升级服务器的负担,并使其他正常的网络操作受到影响,如浏览网页、发送电子邮件等等,而且重复下载,升级效率较低,造成网络资源的极大浪费。

发明内容
本发明是为了解决局域网用户在升级同一计算机软件时重复下载,造成网络资源浪费的问题。
为了解决上述问题,本发明提出了一种计算机软件升级的方法,该方法包括以下步骤a)服务端从升级服务器下载软件升级所需数据并升级本服务端上所述软件;b)所述服务端向子网广播一个通知信息以指示局域网中客户端有最新的软件升级数据;c)客户端获取所述通知信息,向所述服务端回送响应信息;d)所述服务端与客户端组成多播组,由所述服务端向客户端多播软件升级数据;e)所述客户端获取所述软件升级数据并升级所述软件。
最好,步骤b)所述通知信息包括软件版本号、多播地址及端口号。
最好,所述步骤c)还包括判断的步骤c1)接收该通知信息的客户端获取所述软件版本号,并与本地软件版本号比较;c2)根据比较结果确定是否向所述服务端回送响应信息,若比较结果为本地软件版本号低于所述软件版本号,则回送响应信息,否则,不回送响应信息。
最好,步骤c)所述响应信息包括有客户端的IP地址。
最好,所述步骤d)包括以下步骤
d1)服务端获取响应的客户端的IP地址,并与所述IP地址的客户端组成多播组;d2)采用所述多播地址及端口号,向所述IP地址的客户端多播软件升级数据。
最好,步骤d)还包括对待多播的软件升级数据进行预处理,所述步骤d2)进一步包括以下步骤d21)将所有软件升级数据合并到连续的内存块中;d22)将所述内存块中数据分成大小合适的数据块,所述数据块包括一信息头,其中包含用于唯一标识所述数据块的标识信息;d23)发送一个摘要信息包给客户端,所述摘要信息包包含要发送的总数据块数和总数据大小及CRC校验和信息;d24)按顺序逐一发送所述数据块;d25)当数据发送完成,继续发送一个完成数据包,所述完成数据包包含已发送的数据块标识信息及发送的总数据大小信息;d26)检查客户端是否要求重发数据块,若是,获取要重发的数据块标识信息,重新发送所述数据块,否则,结束发送数据流程;所述步骤e)进一步包括以下步骤e1)接收摘要数据包,并保存其中的摘要信息;e2)接收数据块,并将其放置到分配好的内存块中;e3)接收完成数据包,并根据所述摘要信息及完成数据包信息检查是否有数据块丢失,若检查到有数据块丢失,则将该数据块的标识信息反馈回服务端,要求服务端重发该数据块,直到确认所有的数据块都已接收到,结束数据接收流程,若没有检查到数据块丢失,则直接结束数据接收流程;
e4)以接收到的数据升级本客户端上的所述软件。
最好,所述步骤d26)还包括预设等待重发请求时间的步骤,若在预设的等待重发请求时间内服务端收到客户端的重发请求信息,则重发所要求的数据块,否则,结束数据发送的流程。
与现有计算机软件升级的技术相比,本发明有以下的优点1、同一局域网中只需一个用户从升级服务器上下载软件升级所需的数据,其他用户可通过多播的方式获得所需的软件升级数据。由于只需从升级服务器下载一次软件升级数据,因此,可以避免现有技术同一局域网中用户重复下载软件升级数据的缺点,有利于提高升级效率,避免网络资源的浪费;2、本发明在服务端下载软件升级数据后,数据的传送都在局域网内部进行,数据传输速率快,相比现有技术整个局域网用户升级的速度提高了。


图1是本发明计算机软件升级的方法应用环境的组成示意图;图2是图1所示局域网中服务端从升级服务器下载软件升级数据的流程图;图3是本发明计算机软件升级方法中服务端数据处理的流程图;图4是本发明计算机软件升级的方法中对待多播的升级数据进行预处理的流程图;图5是本发明计算机软件升级的方法中服务端通过多播将数据发送给客户端的流程图;图6是本发明计算机软件升级的方法中对软件升级数据预处理后的数据块信息头数据结构示意图;
图7是本发明计算机软件升级的方法中客户端数据处理的流程图。
具体实施例方式
图1是本发明计算机软件升级的方法应用环境的组成示意图。
本发明可广泛应用在计算机软件升级的场合。参看图1所示,网络升级服务器11为互联网上保存计算机软件升级数据的服务器,用户可通过互联网从该服务器下载软件升级所需的数据;所述局域网12是由若干台计算机组成的小型网络,该局域网中全部计算机或部分计算机安装有需要升级的软件。本实施例中,所述需要升级的软件为杀毒软件,并假设该局域网中有四台计算机安装有所述的杀毒软件并且都有升级杀毒软件的需求。
另外,为了叙述的方便,本实施例指定所述计算机121作为服务端,而计算机122、123、124作为客户端,所述服务端指从网络升级服务器下载杀毒软件升级所需的数据,然后向局域网中其他安装有该杀毒软件并需要软件升级的客户端发送所述从升级服务器下载来的升级数据的计算机;所述客户端指不到升级服务器下载软件升级数据,而是通过局域网从服务端获取所述软件升级数据的计算机。所述服务端与客户端的指定并不是唯一的,任何一台安装有所述计算机软件的计算机都可以作为服务端,当然也可以作为客户端。
上述服务端与升级服务器之间可按照HTTP或者FTP协议通信,局域网中服务端与多个客户端之间可按照TCP/IP协议进行通信。
图2是图1所示局域网中服务端从升级服务器下载软件升级数据的流程图。
本实施例,当局域网中服务端上安装的杀毒软件在自动升级时间到或用户显式操作,需要通过互联网从升级服务器上下载软件升级数据进行升级时,执行以下步骤步骤201服务端通过HTTP或FTP协议的方式请求连接杀毒软件的升级服务器,所述升级服务器是由用户从服务器列表中自行选择的或由程序自动选择的连接速度最快的一个,在服务端提交的连接信息中包含有本地软件序列号及用户激活码等数据,用于升级服务器判断所述本地软件是否为合法的授权版本;步骤202当服务端成功连接到服务器后,服务器检查服务端的本地拷贝软件是否为合法的软件版本,如不是合法的软件版本,则提示服务端,拒绝执行软件升级请求并退出;如是合法的软件版本,则检查其最新的本地软件版本号,与服务器提供的最新版本比较,若不低于服务器上的最新软件版本号,则无升级的必要,提示用户,退出升级流程,如低于服务器上的最新版本,则继续执行下述的升级步骤;步骤203服务端从升级服务器下载最新的软件升级数据到本地,并执行升级操作,即用从升级服务器下载的最新数据替换本地原有的相同文件;步骤204服务端上计算机软件升级完成,关闭与远程升级服务器的连接。
上述服务端从互联网远程升级服务器上获取软件升级所需要的数据并升级所述软件,与现有技术是相同的。但该局域网中其他安装有相同杀毒软件的客户端也有软件升级的需要,若按照现有技术的实现方案,客户端只能重复上述服务端升级的过程重新从升级服务器上下载软件升级数据,显然,这种局域网中计算机软件升级方法对网络的带宽造成了极大的浪费,网络升级效率不高,在升级用户数较多时,会对升级服务器造成极大的压力,考虑到服务端上已经保存了软件升级所需的升级数据,即服务端上保存的软件升级数据与升级服务器上的软件升级数据是相同的。因此,局域网中其他需要软件升级的客户端可从服务端获取所需的升级数据,下面进行详细说明。
首先叙述服务端数据处理的流程,图3是本发明计算机软件升级方法中服务端数据处理的流程图,包括以下的步骤步骤301服务端下载软件升级数据完毕,在本局域网所属子网内广播一个通知信息,以便通知局域网中客户端有最新的软件升级数据,所述通知信息可由一个UDP(用户数据包)数据包广播出去,具体的,所述通知信息包括要更新的软件版本号以及本地发送升级数据所用的多播地址及端口号等信息。
本步骤广播该UDP数据包除了通知客户端有最新升级数据外,其另一目的是为了统计本子网中有多少需要软件升级的客户端,由于网络运输的延迟以及UDP数据包丢包的可能性,该广播的数据包会持续一段时间,例如,30秒;步骤302等待一段时间,然后开始统计反馈回的要软件升级的客户端的响应信息,所述响应信息包括需软件升级的客户端的IP地址,统计时不但要统计所述客户端的IP地址,还包括需升级软件的客户端个数等信息,如果统计得到的结果为需升级的客户端个数为0,表明当前没有需要软件升级的客户端,结束软件升级流程,否则,继续以下步骤;步骤303将要发送的下载获取的软件升级数据进行预处理以便提高网络传输的效率,所述软件升级数据保存在本地根目录下某个文件夹中,传送时需要先预处理以便正确的传送及提高网络传输的效率;步骤304通过从响应信息获取的客户端的IP地址,采用上述广播通知信息中的多播地址及端口号,将上述预处理的数据通过UDP数据包多播发送到客户端。
图4是本发明计算机软件升级方法中对待多播的软件升级数据进行预处理的流程图。
所述对待多播的升级数据进行预处理具体包括以下步骤步骤401判断要发送的文件目录路径是否正确,若正确,则进入步骤402,否则,进入步骤404;步骤402将指定目录下的所有文件格式化为一块连续的内存块以便发送;步骤403将所述内存块中数据分成多个大小合适的数据块,所述数据块包括一信息头,其中包含用于唯一标识所述数据块的标识信息,如将所述内存块分成多个数据块时分配给该数据块的标识ID、该数据块的大小以及CRC校验和等信息;;步骤404返回错误信息。
下面说明多播软件升级数据的过程,图5是本发明计算机软件升级的方法中服务端通过多播将软件升级数据发送给客户端的流程图,上述服务端通过多播将软件升级数据发送给客户端具体包括以下步骤步骤501发送一个摘要信息包给客户端,所述摘要信息包包含要发送的总数据块数和总数据大小及CRC(循环冗余校验)校验和等信息;步骤502按顺序逐一发送所述数据块,发送数据完成,继续发送一个完成数据包,所述完成数据包包含已发送的数据块标识信息及发送的总数据大小等信息;步骤503检查客户端是否要求重发数据块,若是,进入步骤504获取要重发的数据块标识信息,重新发送所述数据块,否则,进入步骤505结束发送数据流程。
图6是本发明计算机软件升级方法中经分割后的数据块结构示意图。
如上述的,所述的数据块包括两部分数据信息头和实际数据部分,如图6中所示,所述标识信息包括本数据块的标识ID、本数据块的CRC、本数据块的总大小等信息,实际数据部分则是待发送给各客户端的真正的软件升级数据。
继续说明本发明的方法,图7是本发明计算机软件升级的方法中客户端数据处理的流程图,具体包括以下步骤步骤701接收服务端发送来的通知信息,具体客户端在接收到服务端广播的UDP数据包后,获取其中的软件版本号等信息与本地的相应信息比较,如软件版本号,若不高于本地,则无需升级,不进行任何处理,反之,回送一个升级响应信息给服务端,所述响应信息还通过UDP数据包反馈给服务端,表明本客户端要参加本次升级会话;步骤702加入以服务端为发送源的多播组,该组的多播地址及端口号等信息由服务端发送的通知信息获取,然后开始等待服务端发送数据;步骤703当接收到一个数据包时,首先校验数据包是否有效,如上提到的,每一个从服务端发来的数据包都有CRC校验和等信息,因此,在接收到数据包时,通过校验以确定该数据包是否有效,若有效,则进入步骤704;否则,不接收该数据包;步骤704判断该数据包是否为摘要信息包,若是,保存该数据包,以便接收完所有数据包后根据所述摘要信息包的信息检验是否有丢包,若所述数据包并不是摘要信息包,则继续等待客户端发送摘要信息包;步骤705开始接收实际的升级数据包,由于发送端是将升级数据预处理后分成一个个小数据块并顺序发送的,接收时也一一接收所述的数据块并放到内存中相应的位置,在接收升级数据完毕后,继续接收完成信息包;步骤706获取完成信息包的信息,并根据本地保存的所述摘要信息及完成数据包信息检查是否有数据块丢失,并确定需重发的数据块信息,若检查到有数据块丢失,则将该数据块的标识信息(如标识ID)反馈回服务端,要求服务端重发该数据块,直到确认所有的数据块都已接收到,结束数据接收流程,若没有检查到数据块丢失,则直接结束数据接收流程;步骤707接收数据完毕,将存放在本地内存中的软件升级数据还原保存在临时目录中;步骤708还原升级数据完毕,执行升级操作,即用还原得到的数据替换本地原有的相同文件,至此,整个局域网中计算机软件升级全部完成。
上述本发明计算机软件升级的方法,任一台局域网中计算机均可作为服务端从升级服务器下载升级所需的数据,并在其中一台计算机获取升级数据后,即以多播的方式向其他需升级的计算机发送所述的数据,由于整个局域网只需从升级服务器下载一次升级数据,其余数据传送都在局域网中进行,因此,数据传送速率快,升级效率相对现有技术更高,可以避免现有技术从升级服务器重复下载数据的缺点。
上述仅以优选实施例对本发明进行说明,非因此即局限本发明的权利范围,事实上通过局域网多播的方式实现局域网中数据传送的方式还有多种,因此,在不脱离本发明思想的情况下,凡运用本发明说明书及附图内容所为的等效变化,均理同包含于本发明的权利要求范围内。
权利要求
1.一种计算机软件升级的方法,用于升级安装在局域网中多台计算机上的软件,其特征在于,该方法包括以下步骤a)服务端从升级服务器下载软件升级所需数据并升级本服务端上所述软件;b)所述服务端向子网广播一个通知信息以指示局域网中客户端有最新的软件升级数据;c)客户端获取所述通知信息,向所述服务端回送响应信息;d)所述服务端与客户端组成多播组,由所述服务端向客户端多播软件升级数据;e)所述客户端获取所述软件升级数据并升级所述软件。
2.根据权利要求1所述计算机软件升级的方法,其特征在于,步骤b)所述通知信息包括软件版本号、多播地址及端口号。
3.根据权利要求2所述局域网中计算机软件升级的方法,其特征在于,所述步骤c)还包括判断的步骤c1)接收该通知信息的客户端获取所述软件版本号,并与本地软件版本号比较;c2)根据比较结果确定是否向所述服务端回送响应信息,若比较结果为本地软件版本号低于所述软件版本号,则回送响应信息,否则,不回送响应信息。
4.根据权利要求2或3所述计算机软件升级的方法,其特征在于,步骤c)所述响应信息包括有客户端的IP地址。
5.根据权利要求4所述计算机软件升级的方法,其特征在于,所述步骤d)包括以下步骤d1)服务端获取响应的客户端的IP地址,并与所述IP地址的客户端组成多播组;d2)采用所述多播地址及端口号,向所述IP地址的客户端多播软件升级数据。
6.根据权利要求5所述计算机软件升级的方法,其特征在于,步骤d)还包括对待多播的软件升级数据进行预处理,所述步骤d2)进一步包括以下步骤d21)将所有软件升级数据合并到连续的内存块中;d22)将所述内存块中数据分成大小合适的数据块,所述数据块包括一信息头,其中包含用于唯一标识所述数据块的标识信息;d23)发送一个摘要信息包给客户端,所述摘要信息包包含要发送的总数据块数和总数据大小及CRC校验和信息;d24)按顺序逐一发送所述数据块;d25)当数据发送完成,继续发送一个完成数据包,所述完成数据包包含已发送的数据块标识信息及发送的总数据大小信息;d26)检查客户端是否要求重发数据块,若是,获取要重发的数据块标识信息,重新发送所述数据块,否则,结束发送数据流程;所述步骤e)进一步包括以下步骤e1)接收摘要数据包,并保存其中的摘要信息;e2)接收数据块,并将其放置到分配好的内存块中;e3)接收完成数据包,并根据所述摘要信息及完成数据包信息检查是否有数据块丢失,若检查到有数据块丢失,则将该数据块的标识信息反馈回服务端,要求服务端重发该数据块,直到确认所有的数据块都已接收到,结束数据接收流程,若没有检查到数据块丢失,则直接结束数据接收流程;e4)以接收到的数据升级本客户端上的所述软件。
7.根据权利要求6所述计算机软件的方法,其特征在于,所述步骤d26)还包括预设等待重发请求时间的步骤,若在预设的等待重发请求时间内服务端收到客户端的重发请求信息,则重发所要求的数据块,否则,结束数据发送的流程。
全文摘要
本发明公开一种计算机软件升级的方法,用于升级安装在局域网中多台计算机上的软件,该方法包括以下步骤a)服务端从升级服务器下载软件升级所需数据并升级本服务端上所述软件;b)所述服务端向局域网广播一个通知信息以指示局域网中客户端有最新的软件升级数据;c)客户端获取该通知信息,向所述服务端回送响应信息;d)所述服务端与客户端组成多播组,由所述服务端向客户端多播软件升级数据;e)所述客户端获取所述软件升级数据并升级所述软件。由于本发明通过多播的方式在局域网中传送软件升级数据,传送速率快,升级效率高。
文档编号G06F9/445GK1584865SQ0315394
公开日2005年2月23日 申请日期2003年8月21日 优先权日2003年8月21日
发明者刘海峰, 张周 申请人:珠海金山软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1