面向大规模网络的高效、可靠的软件分发方法

文档序号:6366837阅读:165来源:国知局
专利名称:面向大规模网络的高效、可靠的软件分发方法
技术领域
本发明涉及文件网络传输,特别是涉及一种针对大规模局域网,远程一点对多点高效、可靠传输软件并自动安装的方法。
背景技术
本发明中所述的软件分发是指通过网络通信技术将指定的软件稳定、可靠、高效的在指定的计算机终端上安装。
随着计算机网络应用的迅猛发展,多年来,颇具实用价值的软件分发技术在传输效率上一直进行着大量改进,例如断点续传、线程池并行传送或类似BT (比特流)的传输机制等,但是上述方法一般来说都无法取得传输速度和占用网络资源的均衡,往往以提高传输速度来牺牲有限的网络带宽资源。另外,分发后软件安装的过程也需要计算机终端用户参与,即使实现了某种层面的软件自动安装但常会要求终端用户在安装过程中暂停鼠标、 键盘等操作,因此,此种自动安装方式并无法实现完全的静默安装。综上,传统的软件分发由于技术和实现方法的局限性,存在软件分发效率低、网络带宽占用不可控、软件安装的过程需要终端用户全部或部分参与的问题。
然而,对于单位用户,特别是具有大规模局域网终端的企业级用户,软件分发的高效、带宽占用的均衡及安装过程对于终端用户无干扰都是至关重要的,三者同时实现才能够提供实用的软件分发功能。现有的软件分发方式无法满足这些要求,因此,需要有一种通用的、高效的、可靠的软件分发方式来解决上述问题。发明内容
本发明的主要目的在于提供面向大规模网络的高效、可靠的软件分发方法,该方法能够提高软件分发效率、实现带宽负载均衡和对终端用户无干扰的完全静默安装。
为了达到上述目的,本发明提出的面向大规模网络的高效、可靠的软件分发方法, 包括以下步骤a.在发送端启动软件安装打包程序,运行要给接收端发送并安装的软件的安装文件 (.exe文件),开始在发送端安装该软件,在安装过程中,已运行的软件安装打包程序监视发送端计算机操作系统的注册表和文件的变化,即新增、删除、修改的文件和注册表信息,并且依据注册表和文件的变化内容生成软件包;b.发送端把步骤a生成的软件包切成N个文件块;在发送端设置软件传输的带宽占用范围;c.在发送端选择需要接收并安装软件的接收端,发送端获取接收端唯一性标识信息, 包括IP地址、MAC地址、子网掩码、所在VLAN ;d.发送端根据获取的接收端唯一性标识信息将选择的接收端作为节点构建树结构,发送端作为树的根(root)节点,接收端为节点,生成树结构信息;基于通用定义,直接位于一个节点之上的节点是该节点的父节点,直接位于一个节点之下的节点是该节点的子节点,发送端即根节点发送树结构信息到其子节点,该子节点收到树结构信息后,判断自己是否还存在子节点,如果存在则将树结构信息发送给自己的子节点,依此类推,直至将树结构信息发送到所有的节点,以使每个节点获取自己在树结构中的位置;如果发送端是首次构建树结构,则继续执行步骤e,如果非首次构建树结构,则跳到步骤f ;e.发送端建立结果确认列表,所述结果确认列表包括接收端的唯一性标识信息和接收端的结束状态项,初始设置结束状态项为“未完成”;f.发送端建立文件验证信息,所述文件验证信息包括文件大小和文件MD5码,发送端即根节点发送文件验证信息到其子节点,该子节点收到文件验证信息后,判断自己是否还存在子节点,如果存在则将文件验证信息发送给自己的子节点,依此类推,直至将文件验证信息发送到所有的节点;g.发送端即根节点按照树结构依次发送每个文件块到其子节点;发送端控制发送到网卡数据的数量,从而控制带宽占用范围;根节点判断自己是否存在异常子节点,如子节点通信失败、超时、关机情况,如果根节点不存在异常子节点,则根节点的子节点收到所述文件块后,判断自己是否还存在子节点,如果存在则发送所述文件块到自己的子节点,根节点的子节点在向自己的子节点发送文件块的过程中,控制带宽并判断自己是否存在异常子节点,如果根节点的子节点不存在异常子节点,则继续向下层子节点发送所述文件块,依此类推,直至将所有N个文件块发送到所有正常的节点,跳到步骤i ;如果任一节点存在异常子节点则继续执行步骤h ;h.发送端即根节点刨除异常节点,由该异常节点的父节点接管该异常节点的子节点; 发送端即根节点记录异常节点中断的相关信息,所述异常节点中断的相关信息,包括IP地址、MAC地址、子网掩码、所在VLAN、中断时已接收的文件块信息,跳到步骤d;i.每个接收端根据从发送端接收到的文件验证信息判断自己是否接收到所有N个文件块,如果接收端接收到所有N个文件块,则将该所有N个文件块在接收端合成与步骤a生成的软件包同样的软件包,该合成后的软件包自动解开,该接收端根据该合成后的软件包中记录的计算机操作系统的注册表和文件的变化信息,写入接收端操作系统对应的注册表信息和对应目录中的文件信息,通过跳过软件用户操作界面,将信息直接写入磁盘的方式达到安装软件的目的;该接收端发送结束标志给自己的父节点,并按照树结构依次逆向传递到发送端即根节点;如果接收端未接收到所有N个文件块,继续接收文件块,重新执行步骤i ;j.发送端更新步骤e创建的结果确认列表,每收到一个接收端的结束标志,设置列表中该接收端的结束状态为“已完成”,当发送端收到所有正常接收端的结束标志后,继续执行步骤k ;k.发送端判断是否存在异常节点中断的相关信息,如果不存在,则整个软件分发过程结束;如果存在,则继续执打步骤I ;I.发送端判断异常节点网络是否恢复正常,如果未恢复正常,则跳到步骤k ;如果恢复正常,继续执行步骤m;m.步骤I中恢复正常的节点自动连接到根节点即发送端,并从根节点获取记录的异常节点中断的相关信息;n.发送端即根节点从断点开始继续向已恢复正常的节点分发未接收的文件块;发送端3/6页控制发送到网卡数据的数量,从而控制带宽占用范围;在根节点发送文件块的过程中,根节点判断恢复正常的节点是否存在异常,如果该节点不存在异常,则跳到步骤i ;如果该节点存在异常,则继续执行步骤O ;o.发送端即根节点记录异常节点中断的相关信息,跳到步骤k。
所述步骤d中构建树结构,包括如下步骤dl.发送端根据接收端唯一性标识信息中的接收端所在VLAN信息,将接收端按照VLAN 进行分组,相同VLAN信息划分到同一组中,形成多个接收端组即子树(subtree),每个组的成员都是同一个VLAN下的接收端;d2.以发送端作为树结构的根节点,每个VLAN的第一个节点作为第二层节点即根节点的子节点,第二层节点的子节点为第三层节点依此类推,直至所有节点。
本发明的有益效果是本发明的面向大规模网络的高效、可靠的软件分发方法,解决了大规模局域网中软件分发效率低、资源占用大、不可自动安装或自动化程度不佳的问题。该方法可以有效的向大量终端同时分发软件,具有分发高效、支持断点续传、网络资源占用可控、真正无人干预的自动静默安装、分发内容广泛的特点,大大提升了企事业单位局域网中普遍应用的软件分发方法的可用性、易用性和可靠性。


图I是本发明的软件分发方法的流程图;图2是本发明的软件分发方法中构建树结构方法的示意图。
具体实施方式
下面结合附图和实施例,对本发明的软件分发方法做进一步详细描述。
本发明的软件分发方法能够远程高效、可靠的对计算机终端分发、安装或升级各类软件,特别是企事业单位常用的各类大型软件如OFFICE、杀毒软件、ERP业务系统、OA办公系统及各类软件升级补丁等,同时通过批量下发,使得大范围的系统安装或升级变成发送端的一次性的简单操作。
本发明的软件分发方法不受局域网内终端个数和网络情况的限制,特别适用于多 VLAN (虚拟局域网)情况,而且,支持分发的软件内容广泛,因此,可满足企事业单位日常软件分发的应用需求。实施例
对大规模局域网环境实施大型软件分发例如一个有1000台终端计算机的局域网,网络带宽100M,网内划分为5个VLAN,每个 VLAN有200台计算机,对此1000台计算机分发并安装大小为100M的360杀毒软件。如图 I所示,本发明的面向大规模网络的高效、可靠的软件分发方法,包括以下步骤a.步骤101生成软件包在发送端计算机201上,首先启动软件安装打包程序,然后运行要给局域网内1000台接收端计算机发送并安装的360杀毒软件的安装文件360sd. exe, 开始在发送端计算机201安装360杀毒软件,在安装360杀毒软件的整个过程中,已运行的6CN 102546839 A软件安装打包程序监视发送端计算机操作系统的注册表和文件的变化,即新增、删除、修改的文件和注册表信息,并且依据注册表和文件的变化内容生成待发送的360杀毒软件软件包;b.步骤102文件切块并设置带宽占用范围发送端计算机201把步骤101生成的360 杀毒软件软件包,按照每个文件块大小为1K,切成102400个文件块;在发送端计算机201 设置分发软件的带宽占用范围,为了不影响网内正常工作通讯需要,设置软件分发任务网络资源占用为整个网络带宽的60% ;c.步骤103获取接收端唯一性标识信息在发送端计算机201选择1000台需要安装 360杀毒软件的接收端计算机;发送端计算机201获取1000台接收端计算机各自的唯一性标识信息,包括IP地址、MAC地址、子网掩码、所在VLAN ;d.步骤104构建树结构并发送树结构信息在分发过程中一个重要的环节就是要根据所选择的接收端信息构建分发的树结构,为了使分发高效,本发明中所述的构建树结构的方式具有创新性,此种构造方式是高效进行分发的基础,具体如下发送端根据获取的接收端唯一性标识信息将需要接收并安装360杀毒软件的1000台接收端计算机作为节点构建树结构Tl,发送端计算机201作为根节点,1000台接收端计算机202均为节点,具体构建树结构的方法如下发送端计算机201根据接收端计算机202所在VLAN信息,将1000台接收端计算机202 按照VLAN进行分组,形成5个接收端组即子树(subtree)203、204、205、206、207,同一个组的成员都是同一个VLAN中的计算机;以发送端计算机201为树结构的根节点,每个接收端组的第一个节点208、209、210、211、212为第二层节点即根节点的子节点,第二层节点的子节点213、214、215、216、217为第三层节点,依此类推,直至所有的节点。构建树结构完成后,将树结构Tl的信息发送到树结构中每个节点,则每个节点均可获取自己在当前树结构中的位置;判断发送端计算机201是否是首次构建树结构,如果是首次构建树结构,则继续执行步骤105,如果非首次构建树结构,则跳到步骤106 ;e.步骤105建立结果确认列表在发送端计算机201建立结果确认列表,列表内容包括 1000台接收端计算机各自的唯一性标识信息和所有接收端的结束状态项,初始设置所有接收端的结束状态为“未完成”;f.步骤106建立并发送文件验证信息发送端建立文件验证信息,所述文件验证信息包括文件大小100M和文件MD5码,发送端计算机201即根节点按照树结构发送该文件验证信息到其子节点(208、209、210、211、212),根节点的子节点(208、209、210、211、212)收到文件验证信息后,判断自己是否还存在子节点,如果存在则将文件验证信息发送给自己的子节点(213、214、215、216、217),依此类推,直至将文件验证信息发送给所有的1000个节占.g.步骤107发送文件块及带宽控制发送端计算机201即根节点按照树结构Tl依次发送每个文件块到其子节点(208、209、210、211、212);发送端计算机201控制发送到网卡数据的数量,从而控制带宽占用范围在设定的占用范围,即网络带宽的60%;根节点判断自己是否存在异常子节点,如子节点通信失败、超时、关机情况,如果根节点不存在异常子节点,则根节点的子节点(208、209、210、211、212 )各自收到所述文件块后,各自判断自己是否还存在子节点,如果存在则依次发送所述文件块到自己的子节点(213、214、215、216、217),根节点的子节点(208、209、210、211、212)在向自己的子节点发送每个文件块的过程中,各自控制带宽并判断是否存在异常子节点,如果根节点的子节点不存在异常子节点,则继续向下层子节点发送所述文件块,依此类推,直至将所有102400个文件块发送到所有正常的节点即接收端计算机,跳到步骤109 ;如果任一节点存在异常子节点则继续执行步骤108 ;h.步骤108异常处理在发送文件块过程中如果出现一些接收端计算机异常的情况, 导致发送操作中断,此时需要进行必要的异常处理,保证正常的接收端计算机不受影响继续接收文件块;本实例的软件分发操作在步骤107文件块发送过程中,节点214的父节点 209向其传送第88个文件块时节点214断网,父节点209通知发送端计算机201节点214 异常,发送端计算机201记录异常节点214中断的相关信息,包括IP地址192. 168. 3. 20、 MAC地址20-CF-30-E9-19、子网掩码255. 255. 255. O、所在VLAN2、中断时已接收的文件块信息87个;发送端计算机201刨除异常节点214,由异常节点214的父节点209接管异常节点214的子节点219,跳到步骤104去重新构建树结构,并重新通知其他接收端计算机树结构的信息;i.步骤109接收端安装360杀毒软件每台接收端计算机根据从发送端计算机201接收到的文件验证信息,判断自己是否接收到所有102400个文件块,如果文件块接收完成, 则将所有102400个文件块在接收端计算机合成与步骤101生成的360杀毒软件软件包同样的软件包;360杀毒软件软件包在接收端上自动解开,根据该软件包中记录的计算机操作系统的注册表和文件的变化信息,写入接收端操作系统对应的注册表信息和对应目录中文件信息,完成软件安装;在将注册表和文件的变化信息写入接收端操作系统对应的注册表信息和对应目录中文件信息的过程中,通过跳过软件用户操作界面,将信息直接写入磁盘的方式达到安装软件的目的,不需要终端用户点击“下一步”来完成软件的安装,且不影响终端用户正常的鼠标、键盘操作;当接收端计算机360杀毒软件安装完成后则发送结束标志给自己的父节点,并按照树结构依次逆向传递到发送端计算机201 ;如果接收端计算机未接收到所有102400个文件块,重新执行步骤109继续接收文件块;j.步骤110确认结果确认列表发送端计算机201收到每台接收端计算机发回的结束标志后,发送端计算机201更新步骤105创建的结果确认列表,每收到一个接收端计算机的结束标志,则设置列表中该接收端计算机的结束状态为“已完成”,发送端计算机201收到所有正常接收端计算机的结束标志后,继续执行步骤111 ;k.步骤111判断是否存在异常节点信息发送端计算机201判断是否存在异常节点中断的相关信息,如果不存在,则整个软件分发过程结束;如果存在,则继续执行步骤112 ;I.步骤112判断异常节点情况由于本实施例的软件分发操作存在异常节点214中断的相关信息,则发送端计算机201收到所有正常的999台接收端计算机的结束标志后,判断异常节点214网络是否恢复正常,如果未恢复正常,则跳到步骤111 ;如果恢复正常,继续执行步骤113 ;m.步骤113获取异常中断相关信息节点214自动连接到发送端计算机201,并从发送端计算机201获取记录的异常节点214中断的相关信息;n.步骤114断点续传及带宽控制发送端计算机201从断点第88个文件块开始继续向节点214发送未接收的文件块;发送端计算机201控制带宽占用范围在设定的占用范围, 即网络带宽的60% ;在发送文件块过程中发送端计算机201判断已恢复正常的节点214是否存在异常,如果节点214不存在异常,则跳到步骤109 ;如果节点214存在异常,则继续执行步骤115 ;o.步骤115异常节点异常处理发送端计算机201记录异常节点214中断的相关信息,包括 IP 地址 192. 168. 3. 20、MAC 地址 20-CF-30-E9-19、子网掩码 255. 255. 255. O、所在 VLAN2、中断时已接收的文件块信息个数,跳到步骤111。
由于本发明的软件分发方法对接收端的信息进行了优化排列,并采用了树结构来进行分发,提高分发效率的同时又优化了带宽的占用。为了体现本发明的软件分发方法的高效和带宽占用优势,通过本发明的软件分发方法和传统以线程池并行传送方法两种不同的软件分发方法,如实施例中操作,在同环境(1000台计算机,划分为5个VLAN)发送同软件(大小为100M的360杀毒软件)情况下进行分发时间和带宽占用情况的对比。
本发明的面向大规模网络的高效、可靠的软件分发方法的分发时间和带宽占用情况如下对于分布在5个VLAN中的1000台计算机分发100M的360杀毒软件,按照在本发明的软件分发方法构建图2所示树结构,针对该树结构,发送端仅需要对5台计算机进行软件分发,然后这5台计算机在收到一个数据包的同时就会发送给自己的子节点,以此类推,按照100M软件发送给I台计算机为10秒计算,发送给5台计算机的时间为10X5=50秒,各 VLAN中每台计算机向自己的子节点转发数据包的时间一般为毫秒级,并且是同步转发,时间并行,在此以I秒计,且按各VLAN中最大化计算,则1000台计算机发送100M软件的时间为 50+200X1=250 秒。
关于带宽占用,由于发送端仅发送给5台计算机,其他的通信都是在各自的VLAN 中进行,所以对于整个局域网的带宽占用来说,都是平均分布在各个VLAN中,最大的优化了网络带宽的使用,不会产生都集中在发送端的瓶颈效应。
传统的以线程池并行传送的软件分发方法的分发时间和带宽占用情况如下对于分布在5个VLAN中的1000台计算机分发100M的360杀毒软件,由于线程池的个数不可能无限大,一般会根据操作系统和计算机的硬件配置选择一个合适的值,这里以 20为例,网卡一般是100M,理论情况下的传输速度一般为IOM/秒,那么对I台计算机分发 100M的软件,则需要10秒,对于1000台计算机而言,由于是从一个发送端发送给所有接收端,所以理论上需要1000X 10=10000秒。此方法对带宽的占用很大,对于发送端来说需要一直占用发送端到接收端的100M带宽。
权利要求
1.面向大规模网络的高效、可靠的软件分发方法,其特征是包括以下步骤a.在发送端启动软件安装打包程序,运行要给接收端发送并安装的软件的安装文件, 开始在发送端安装该软件,在安装过程中,已运行的软件安装打包程序监视发送端计算机操作系统的注册表和文件的变化,即新增、删除、修改的文件和注册表信息,并且依据注册表和文件的变化内容生成软件包;b.发送端把步骤a生成的软件包切成N个文件块;在发送端设置软件传输的带宽占用范围;c.在发送端选择需要接收并安装软件的接收端,发送端获取接收端唯一性标识信息, 包括IP地址、MAC地址、子网掩码、所在VLAN ;d.发送端根据获取的接收端唯一性标识信息将选择的接收端作为节点构建树结构,发送端作为树的根节点,接收端为节点,生成树结构信息;基于通用定义,直接位于一个节点之上的节点是该节点的父节点,直接位于一个节点之下的节点是该节点的子节点,发送端即根节点发送树结构信息到其子节点,该子节点收到树结构信息后,判断自己是否还存在子节点,如果存在则将树结构信息发送给自己的子节点,依此类推,直至将树结构信息发送到所有的节点,以使每个节点获取自己在树结构中的位置;如果发送端是首次构建树结构, 则继续执行步骤e,如果非首次构建树结构,则跳到步骤f ;e.发送端建立结果确认列表,所述结果确认列表包括接收端的唯一性标识信息和接收端的结束状态项,初始设置结束状态项为“未完成”;f.发送端建立文件验证信息,所述文件验证信息包括文件大小和文件MD5码,发送端即根节点发送文件验证信息到其子节点,该子节点收到文件验证信息后,判断自己是否还存在子节点,如果存在则将文件验证信息发送给自己的子节点,依此类推,直至将文件验证信息发送到所有的节点;g.发送端即根节点按照树结构依次发送每个文件块到其子节点;发送端控制发送到网卡数据的数量,从而控制带宽占用范围;根节点判断自己是否存在异常子节点,如子节点通信失败、超时、关机情况,如果根节点不存在异常子节点,则根节点的子节点收到所述文件块后,判断自己是否还存在子节点,如果存在则发送文件块到自己的子节点,根节点的子节点在向自己的子节点发送文件块的过程中,控制带宽并判断自己是否存在异常子节点,如果根节点的子节点不存在异常子节点,则继续向下层子节点发送所述文件块,依此类推,直至将所有N个文件块发送到所有正常的节点,跳到步骤i ;如果任一节点存在异常子节点则继续执行步骤h ;h.发送端即根节点刨除异常节点,由该异常节点的父节点接管该异常节点的子节点; 发送端即根节点记录异常节点中断的相关信息,所述异常节点中断的相关信息,包括IP地址、MAC地址、子网掩码、所在VLAN、中断时已接收的文件块信息,跳到步骤d;i.每个接收端根据从发送端接收到的文件验证信息判断自己是否接收到所有N个文件块,如果接收端接收到所有N个文件块,则将该所有N个文件块在接收端合成与步骤a生成的软件包同样的软件包,该合成后的软件包自动解开,该接收端根据该合成后的软件包中记录的计算机操作系统的注册表和文件的变化信息,写入接收端操作系统对应的注册表信息和对应目录中的文件信息,通过跳过软件用户操作界面,将信息直接写入磁盘的方式达到安装软件的目的;该接收端发送结束标志给自己的父节点,并按照树结构依次逆向传递到发送端即根节点;如果接收端未接收到所有N个文件块,则继续接收文件块,重新执行步骤i ;j.发送端更新步骤e创建的结果确认列表,每收到一个接收端的结束标志,设置列表中该接收端的结束状态为“已完成”,当发送端收到所有正常接收端的结束标志后,继续执行步骤k ;k.发送端判断是否存在异常节点中断的相关信息,如果不存在,则整个软件分发过程结束;如果存在,则继续执打步骤I ; 1.发送端判断异常节点网络是否恢复正常,如果未恢复正常,则跳到步骤k;如果恢复正常,继续执行步骤m;m.步骤I中恢复正常的节点自动连接到根节点即发送端,并从根节点获取记录的异常节点中断的相关信息;n.发送端即根节点从断点开始继续向已恢复正常的节点分发未接收的文件块;发送端控制发送到网卡数据的数量,从而控制带宽占用范围;在根节点发送文件块的过程中,根节点判断恢复正常的节点是否存在异常,如果该节点不存在异常,则跳到步骤i ;如果该节点存在异常,则继续执行步骤O ;o.发送端即根节点记录异常节点中断的相关信息,跳到步骤k。
2.如权利要求I所述的软件分发方法,其特征是所述步骤d中构建树结构,包括以下步骤dl.发送端根据接收端唯一性标识信息中的接收端所在VLAN信息,将接收端按照VLAN 进行分组,相同VLAN信息划分到同一组中,形成多个接收端组即子树,每个组的成员都是同一个VLAN下的接收端;d2.以发送端作为树结构的根节点,每个VLAN的第一个节点作为第二层节点即根节点的子节点,第二层节点的子节点为第三层节点依此类推,直至所有节点。
全文摘要
本发明提供了面向大规模网络的高效、可靠的软件分发方法,包括通过软件安装打包程序生成软件包;构建树结构;发送端向接收端发送文件验证信息;发送文件块并进行带宽控制;处理分发过程中异常及断点续传;接收端合成软件包并安装软件;发送端确认发送结果。本发明通过将接收端进行分组形成树状结构,对树状结构中的节点以并行方式进行软件分发,实现了提高分发效率、可控带宽、断点续传、自动安装、实时结果反馈,满足了大规模网络中高效、可靠的进行软件分发和无人干预的自动安装的需求,解决了现有方法软件分发效率低、网络带宽占用不可控、软件安装的过程需要终端用户参与的问题。
文档编号G06F9/445GK102546839SQ201210079919
公开日2012年7月4日 申请日期2012年3月25日 优先权日2012年3月25日
发明者孔祥焱, 宋非, 金魁 申请人:沈阳通用软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1