本发明涉及软件领域,尤其涉及一种软件安装方法及系统。
背景技术
目前,对于原厂批量拷机、安装软件或系统时,由于每个客户端的镜像都不一样,通常需要制作很多种镜像、并同时对诸多台计算机进行灌软工作时,有时候客户端计算机的数量能达到上百台,此时服务器端的压力就会很大,工作效率成为瓶颈。在实际操作中,由于每台客户端下载的数据大致都是相同的,因此客户端之间也可以互为下载和上传,我们可以利用这一点来对整个系统进行加速,并提高工作效率。
针对现有技术中所存在的问题,提供一种软件安装方法及系统具有重要意义。
技术实现要素:
为解决上述问题,本发明实施例提供一种软件安装方法及系统。
为实现上述目的,本发明实施例的软件安装方法,所述方法包括:接收客户端对目标文件的下载请求;将所述目标文件相对应的文件信息列表传输至所述客户端;接收所述客户端对所述目标文件的文件包的下载请求;将所述文件包传输至所述客户端;
进一步地,在将所述文件包传输至所述客户端之后还包括:接收所述客户端的同步信息;
本发明实施例还提供了一种软件安装方法,所述方法包括:向服务器端发送对目标文件的下载请求;接收所述目标文件相对应的文件信息列表;解析所述文件信息列表,确定具体需要下载的所述目标文件的文件包;向所述服务器端发送所述文件包的下载请求;接收所述文件包,并存储至内存;
进一步地,所述同步信息具体为所述客户端内已有文件包的文件信息及所述客户端的被下载量;
本发明实施例还提供了一种软件安装方法,所述方法包括:向服务器端发送对其他客户端的同步信息的查询请求;接收并解析所述同步信息,筛选出拥有目标文件的文件包且下载量最少的客户端;向所述客户端发送对所述目标文件的文件包的下载请求;接收所述文件包,并存储至内存;向所述服务器端传送同步信息;
进一步地,所述同步信息具体为所述客户端内已有文件包的文件信息及所述客户端的被下载量;
本发明实施例还提供了一种软件安装系统,包括服务器端和客户端,所述服务器端包括存储模块、服务器解析服务模块和服务器下载/上传服务模块;所述客户端包括内存模块、客户端解析服务模块和客户端下载/上传服务模块;所述存储模块用于存储目标文件及所述客户端的同步信息;所述服务器解析服务模块用于将所述目标文件分为若干个文件包,并建立所述目标文件相对应的文件信息列表;所述服务器下载/上传服务模块用于接收所述客户端对所述目标文件、所述文件包的下载请求,并将所述目标文件、所述文件包传输至所述客户端;所述内存模块用于存储所述目标文件及所述文件包;所述客户端解析服务模块用于解析所述文件信息列表,并确定具体需要下载的所述目标文件的文件包;所述客户端下载/上传服务模块用于向所述服务器端发送对目标文件、所述文件包的下载请求,并接收所述目标文件、所述文件包;还用于将所述客户端的同步信息传输至所述服务器端;
进一步地,所述服务器下载/上传服务模块还用于接收所述客户端对所有客户端的同步信息的查询请求,并将所述同步信息传输至所述客户端;所述客户端下载/上传服务模块还用于向所述服务器端发送对所有客户端的同步信息的查询请求,并接收所述同步信息;
进一步地,所述客户端下载/上传服务模块还用于向其他客户端发送对目标文件、所述文件包的下载请求,并接收所述目标文件、所述文件包;所述客户端下载/上传服务模块还用于接收其他客户端对所述目标文件、所述文件包的下载请求,并将所述目标文件、所述文件包传输至其他客户端;
进一步地,所述客户端还包括驱动模块,所述驱动模块用于配置文件过滤服务。
本发明实施例的一种软件安装方法及系统,利用客户端与客户端之间相互上传和下载的原理,实现了能够让每个客户端都充当服务器,减轻了服务器端的压力,从而让批量安装更加的高效,快捷。
附图说明
图1为本发明实施例所述软件安装方法的第一流程示意图;
图2为本发明实施例所述软件安装方法的第二流程示意图;
图3为本发明实施例所述软件安装方法的第三流程示意图;
图4为本发明实施例所述软件安装系统的结构示意图。
具体实施方式
下面,结合附图,对本发明的结构以及工作原理等作进一步的说明。
如图1所示,图1为本发明实施例所述软件安装方法的第一流程示意图,包括服务器端及客户端,所述方法用于服务器端,所述服务器端存储了目标文件,并将所述目标文件分为若干个文件包,同时建立所述目标文件相对应的文件信息列表,所述文件信息列表具体包括了所述目标文件的文件名称、文件号;及所述目标文件的文件包的包号、位置信息、包长度、数据内容和数据校验值;所述方法具体包括:
sa1接收客户端对目标文件的下载请求;
sa2将所述目标文件相对应的文件信息列表传输至所述客户端;
sa3接收所述客户端对所述目标文件的文件包的下载请求;
sa4将所述文件包传输至所述客户端;
sa5接收所述客户端的同步信息。
具体地,所述同步信息为所述客户端内已有文件包的文件信息及所述客户端的被下载量。
如图2所示,图2为本发明实施例所述软件安装方法的第二流程示意图,包括服务器端及客户端,所述方法用于客户端,在本发明优选的实施例中,包括若干个客户端,所述方法包括:
sb1向服务器端发送对目标文件的下载请求;
sb2接收所述目标文件相对应的文件信息列表;
sb3解析所述文件信息列表,确定具体需要下载的所述目标文件的文件包;
sb4向所述服务器端发送所述文件包的下载请求;
sb5接收所述文件包,并存储至内存;
sb6向所述服务器端传送同步信息。
在本发明优选的实施例中,在所述接收所述文件包,并存储至内存之前还包括,检测所述客户端的内存空间是否够用,若不够用,则将最早占用的内存释放,直到内存空间够用为止。
如图3所示,图3为本发明实施例所述软件安装方法的第三流程示意图,包括服务器端及客户端,所述方法用于客户端向其他客户端请求下载的情况下,所述客户端要先想所述服务器确认哪些其他客户端拥有所述客户端想要下载的目标文件,确认之后,所述客户端再确认其他拥有所述目标文件的客户端哪一个是被下载量最小的,并将拥有所述目标文件的被下载量最小的客户端确定为目标客户端,最后再向所述目标客户端请求下载所述目标文件,所述方法具体包括:
sc1向服务器端发送对其他客户端的同步信息的查询请求;
sc2接收并解析所述同步信息,筛选出拥有目标文件的文件包且下载量最少的客户端;
sc3向所述客户端发送对所述目标文件的文件包的下载请求;
sc4接收所述文件包,并存储至内存;
sc5向所述服务器端传送同步信息。
如图4所示,如图4为本发明实施例所述软件安装系统的结构示意图,包括服务器端1和客户端2,所述服务器端1包括存储模块11、服务器解析服务模块12和服务器下载/上传服务模块13;所述客户端2包括内存模块21、客户端解析服务模块22和客户端下载/上传服务23模块;所述存储模块11用于存储目标文件及所述客户端2的同步信息;所述服务器解析服务模块12用于将所述目标文件分为若干个文件包,并建立所述目标文件相对应的文件信息列表;所述服务器下载/上传服务模块13用于接收所述客户端2对所述目标文件、所述文件包的下载请求,并将所述目标文件、所述文件包传输至所述客户端2;所述内存模块21用于存储所述目标文件及所述文件包;所述客户端2解析服务模块22用于解析所述文件信息列表,并确定具体需要下载的所述目标文件的文件包;所述客户端下载/上传服务模块23用于向所述服务器1端发送对目标文件、所述文件包的下载请求,并接收所述目标文件、所述文件包;还用于将所述客户端2的同步信息传输至所述服务器端1;
所述服务器下载/上传服务模块13还用于接收所述客户端2对所有客户端的同步信息的查询请求,并将所述同步信息传输至所述客户端2;所述客户端下载/上传服务模块23还用于向所述服务器端1发送对所有客户端的同步信息的查询请求,并接收所述同步信息;所述客户端下载/上传服务模块23还用于向其他客户端发送对目标文件、所述文件包的下载请求,并接收所述目标文件、所述文件包;所述客户端2下载/上传服务模块23还用于接收其他客户端对所述目标文件、所述文件包的下载请求,并将所述目标文件、所述文件包传输至其他客户端;
所述客户端2还包括驱动模块24,所述驱动模块24用于配置文件过滤服务。在本发明优选的实施例中,所述文件过滤服务具体为当所述客户端读取文件时,将所述文件信息返回给所述客户端下载/上传服务模块,客户端下载/上传服务模块根据文件信息到所述服务器端查找,若没有,则按照正常流程读取文件,若存在,则所述客户端下载/上传服务模块开始下载相对应的文件,当需要的数据下载完毕时,读取本部分数据,如果缺少,则暂停读取文件,直到数据存在为止。
在本发明的实施例一中,包括一个服务器端和若干个客户端,所述服务器端需要批量将操作系统安装到每个所述客户端上,因为所述客户端的硬盘均为空,所以所有的上传、下载、读取及存储操作均需要在所述客户端的内存上执行。所述服务器端存储了目标文件,即操作系统安装文件,所述服务器端将所述操作系统安装文件分为若干个文件包,并建立所述目标文件相对应的文件信息列表,所述文件信息列表具体包括了所述目标文件的文件名称、文件号;及所述目标文件的文件包的包号、位置信息、包长度、数据内容和数据校验值;所述服务器端包括存储模块、服务器解析服务模块和服务器下载/上传服务模块;所述存储模块用于存储目标文件及所述客户端的同步信息;所述服务器解析服务模块用于将所述目标文件分为若干个文件包,并建立所述目标文件相对应的文件信息列表;所述服务器下载/上传服务模块用于接收所述客户端对所述目标文件、所述文件包的下载请求,并将所述目标文件、所述文件包传输至所述客户端;所述服务器下载/上传服务模块还用于接收所述客户端对所有客户端的同步信息的查询请求,并将所述同步信息传输至所述客户端;所述客户端下载/上传服务模块还用于向所述服务器端发送对所有客户端的同步信息的查询请求,并接收所述同步信息;
所述若干个客户端中均包括内存模块、客户端解析服务模块、客户端下载/上传服务模块和驱动模块;所述内存模块用于存储所述目标文件及所述文件包;所述客户端解析服务模块用于解析所述文件信息列表,并确定具体需要下载的所述目标文件的文件包;所述客户端下载/上传服务模块用于向所述服务器端发送对目标文件、所述文件包的下载请求,并接收所述目标文件、所述文件包;还用于将所述客户端的同步信息传输至所述服务器端;所述客户端下载/上传服务模块还用于向其他客户端发送对目标文件、所述文件包的下载请求,并接收所述目标文件、所述文件包;所述客户端下载/上传服务模块还用于接收其他客户端对所述目标文件、所述文件包的下载请求,并将所述目标文件、所述文件包传输至其他客户端;所述驱动模块用于配置文件过滤服务。在本发明优选的实施例中,所述文件过滤服务具体为当所述客户端读取文件时,将所述文件信息返回给所述客户端下载/上传服务模块,客户端下载/上传服务模块根据文件信息到所述服务器端查找,若没有,则按照正常流程读取文件,若存在,则所述客户端下载/上传服务模块开始下载相对应的文件,当需要的数据下载完毕时,读取本部分数据,如果缺少,则暂停读取文件,直到数据存在为止。
所述方法具体包括两种情况,第一,客户端和服务器之间的下载和上传;第二,客户端和客户端之间的下载和上传。
在第一种情况下,所述方法具体包括:
所述客户端向服务器端发送对目标文件的下载请求;
所述服务器端接收客户端对目标文件的下载请求;
所述服务器端将所述目标文件相对应的文件信息列表传输至所述客户端;
所述客户端接收所述目标文件相对应的文件信息列表;
所述客户端解析所述文件信息列表,确定具体需要下载的所述目标文件的文件包;
所述客户端向所述服务器端发送所述文件包的下载请求;
所述服务器端接收所述客户端对所述目标文件的文件包的下载请求;
所述服务器端将所述文件包传输至所述客户端;
所述客户端接收所述文件包,并存储至内存;
所述客户端向所述服务器端传送同步信息。
所述服务器端接收所述客户端的同步信息。
在第二种情况下,所述方法具体包括:
向服务器端发送对其他客户端的同步信息的查询请求;
接收并解析所述同步信息,筛选出拥有目标文件的文件包且下载量最少的客户端;
向所述客户端发送对所述目标文件的文件包的下载请求;
接收所述文件包,并存储至内存;
向所述服务器端传送同步信息。
以上,仅为本发明的示意性描述,本领域技术人员应该知道,在不偏离本发明的工作原理的基础上,可以对本发明作出多种改进,这均属于本发明的保护范围。