CN101902352A - 远程部署计算机程序的方法和系统 - Google Patents
远程部署计算机程序的方法和系统 Download PDFInfo
- Publication number
- CN101902352A CN101902352A CN2009101382727A CN200910138272A CN101902352A CN 101902352 A CN101902352 A CN 101902352A CN 2009101382727 A CN2009101382727 A CN 2009101382727A CN 200910138272 A CN200910138272 A CN 200910138272A CN 101902352 A CN101902352 A CN 101902352A
- Authority
- CN
- China
- Prior art keywords
- resource information
- deployment
- time
- client computer
- network resource
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开一种远程部署计算机程序的方法和系统,该方法包括以下步骤:响应于为客户机远程部署多个计算机程序的请求,获取所述客户机的可用资源信息和相关的网络资源信息;根据所述客户机的可用资源信息和相关的网络资源信息确定部署策略;以及根据所述部署策略远程部署所述多个计算机程序的传输和安装。
Description
技术领域
本发明涉及远程部署计算机程序的方法和系统,特别涉及优化远程部署计算机程序的方法和系统。
背景技术
目前,一些大型企业或公司因为业务需要,成批购置了大量的计算机节点或集群系统,并按需求在不同的节点上面运行几类应用。这些计算机节点或集群系统通过局域网或广域网的连接来协同完成一项或几项应用。通常远程计算机上需要安装大量的应用程序。多台计算机系统的逐一安装一方面需要花费高昂的开销,这包括专业的人力和时间的开销,另一方面影响系统的可用性。
针对以上需求,远程部署系统应运而生,它能在广域网环境下对系统内任意一个计算机节点进行计算机程序的传输、安装,从而减少人力安装的开销,有效地提高系统维护的效率,并为系统稳定地运行提供更多的保障。
目前已知的一种远程部署方法是单线程远程部署方法,图1示出单线程远程部署计算机程序的方法示意图。对于n个待安装的计算机程序,先将待安装的计算机程序一个一个下载到本地,然后再一个一个顺序安装,因此远程部署的总时间是所有计算机程序的下载时间与所有计算机程序的安装时间的总和。
目前已知的另一种远程部署方法是双线程的远程部署方法:对于n个待安装的计算机程序,线程1将n个待安装的计算机程序顺序下载,线程2在等待第i(1≤i≤n)个计算机程序下载完成后,开始安装第i个计算机程序。因此远程部署的总时间为:所有计算机程序的下载时间与全部计算机程序下载完成时还未开始安装的计算机程序的安装时间的总和,若下载全部完成时还有正在安装的计算机程序,还要在加上这部分计算机程序的剩余安装时间。
然而,随着具有多个组件的软件安装包越来越大,上述两种远程部署需要花费用户大量的时间。尤其在对拥有大量计算机节点的企业进行远程部署时,大量远程部署的时间大大影响企业的正常运营以及对外所提供的服务,极大地增加了企业支持用户的企业管理费用。
因此,需要一种优化的远程部署计算机程序的方法。
发明内容
基于上述问题,本发明提供一种优化的远程部署计算机程序的方法和系统。
根据本发明的一个方面,提供一种远程部署计算机程序的方法,包括:响应于为客户机远程部署多个计算机程序的请求,获取所述客户机的可用资源信息和相关的网络资源信息;根据所述客户机的可用资源信息和相关的网络资源信息确定部署策略;以及根据所述部署策略远程部署所述多个计算机程序的传输和安装。
根据本发明的另一方面,提供一种远程部署计算机程序的系统,包括:信息获取装置,被配置为响应于为客户机远程部署多个计算机程序的请求,获取所述客户机的可用资源信息和相关的网络资源信息;部署策略确定装置,被配置为根据所述客户机的可用资源信息和网络资源信息确定部署策略;以及远程部署装置,被配置为根据所述部署策略远程部署所述多个计算机程序的传输和安装。
本发明的方法和装置,根据客户机的可用资源信息和网络资源信息优化远程部署策略,极大地提高了远程部署的效率,为企业级用户节约了大量的时间和成本。
附图说明
结合附图,通过参考下列详细的示例性实施例的描述,将会更好地理解本发明本身、优选的实施方式以及本发明的目的和优点,其中:
图1示出已知的单线程远程部署方法的示意图;
图2示出已知的双线程远程部署方法的示意图;
图3示出根据本发明实施例的远程部署计算机程序的方法流程图;
图4示出根据本发明实施例的确定部署策略的方法流程图;
图5示出根据本发明实施例的计算远程部署时间的方法流程图;
图6示出根据本发明实施例确定的两个组件的部署策略的示意图;
图7示出根据本发明实施例确定的三个组件的部署策略的示意图;
图8示出根据本发明一个实施例的动态调整部署策略的方法;
图9示出根据本发明实施例的远程部署计算机程序的系统框图。
具体实施方式
参照附图描述根据本发明的实施例。
图3示出根据本发明实施例的远程部署计算机程序的方法流程图。如图所示,在步骤301,响应于为客户机远程部署多个计算机程序的请求,获取所述客户机的可用资源信息和相关的网络资源信息;在步骤302,根据所述客户机的可用资源信息和网络资源信息确定部署策略;以及在步骤303,根据所述部署策略远程部署所述多个计算机程序的传输和安装。
在步骤301,响应于为客户机远程部署多个计算机程序的请求,获取所述客户机的可用资源信息和相关的网络资源信息。具体地,根据本发明的一个实施例,可以由客户机向服务器查询安装列表,响应于服务器返回安装列表,客户机发出远程部署安装列表中的多个计算机程序的请求。根据本发明的另一个实施例,服务器查询客户机的安装列表,响应于查询到安装列表,发出为客户机远程部署多个计算机程序的请求。获取的客户机本地可用资源信息至少可以包括操作系统的类型和版本、CPU的速度、CPU的平均使用率、可用内存、硬盘可用大小以及IO速度的至少其中之一,客户机的本地可用资源信息可以通过安装在客户机侧的代理程序来获取,也可以由服务器通过IT管理系统来获取,还可以通过第三方软件来获取。在获取客户机的本地资源信息之后,利用软件提供商提供的统一接口的工具来计算计算机程序的安装时间。接口的输入参数为客户机的本地可用资源信息数据,包括操作系统的类型和版本、CPU的速度、CPU的平均使用率、可用内存、硬盘可用大小以及IO速度的至少其中之一,输出为相应计算机程序的安装时间。
与客户机相关的网络资源信息至少包括网络传输带宽、网络传输方式的其中之一。通过在客户机侧安装代理程序或者由进行远程部署的服务器向客户机发送测试数据包来测试客户机与服务器之间的网络传输带宽信息,也可以通过IT管理系统来获取客户机与服务器之间的网络传输带宽信息,还可以通过获取底层网络的配置信息来获得客户机与服务器之间的网络传输带宽信息。对于网络带宽的波动的情况,从统计意义的角度,在一段时间内网络传输速度不是随机剧烈波动的,而是能够稳定在一定数值的。因此从一个统计学角度获得某一段时间内的平均传输速度,作为某一段时间的网络带宽是完全合理的。企业内网络带宽更大,也更稳定。但由于维护企业内网稳定性的要求,从服务器下载软件的带宽一般都是受限的。这个限制一般在服务器端设置。被设置的属性包括同时进行下载的客户端的数量,每个客户端的最大下载带宽等。这样可以避免下载服务因为占用带宽过大,影响服务器上其它程序,应用和服务。所以,企业内部网络的实际下载带宽比物理设备提供的最大带宽要小。例如,网络共享带宽为1Gbps/s,下载连接数限制为50,每个连接的下载带宽限制为10Mbps/s。这样可以保证在服务器在满负荷下载时,服务器上的其它程序,应用和服务不会因为网络阻塞而受到影响。最终,这种居于高硬件配置的网络下载设置进一步保证了企业内网的稳定性。
可以根据不同的网络传输方式采用不同的网络传输带宽的计算方法,本发明的一个实施例中,对于传统的CS(客户端服务器)方式,服务器吐出数据流,客户端接收数据,服务器很容易到达流量的瓶颈上限。CS方式主要包括FTP、HTTPS和HTTP网络传输协议,以FTP为例,客户端要想下载一个文件,必须连接到提供FTP服务的服务器上,然后用FTP协议下载文件,这是传统的客户端-服务器模型。在CS方式下,需要获得客户机与服务器之间的传输速度,作为计算计算机程序传输时间的依据。在本发明的另一实施例中,对于P2P(peer-to-peer)方式,在个人电脑之间直接进行资源和服务的共享,而不象传统的browser/server或者client/server结构那样需要经过服务器的介入和服务。在P2P结构中,每台个人电脑同时充当服务器和客户端的角色,当需要其他电脑的文件或者服务时,两台电脑直接建立联系,本机是客户端,而当响应其他电脑的资源要求时,本机又成为提供资源与服务的服务器。BT(BitTorrent)传输方式是一种典型的P2P方式,在这种方式下,需要获得客户机与客户机之间的传输速度,作为计算网络传输带宽的依据。
在步骤302,根据所述客户机的可用资源信息和相关的网络资源信息确定安装策略。具体地,优化远程部署的时间,其中进一步包括根据客户机的可用资源信息计算多个计算机程序的安装时间并根据所述相关的网络资源信息计算多个计算机程序的传输时间,基于所述多个计算机程序的安装时间和传输时间确定部署策略。
图4示出根据本发明实施例确定部署策略的方法流程图400。在步骤401,从待处理计算机程序的任务池中随机取出一个计算机程序并放入一个临时任务队列的起始位置;在步骤402,从待处理计算机程序的任务池中再随机取出一个计算机程序作为当前计算机程序;在步骤403,将当前计算机程序插入临时任务队列的起始位置;在步骤404,按照图5示出的算法流程图500根据当前临时任务队列的计算机程序排列顺序计算队列下载和安装计算机程序的总时间;在步骤S405,判断是否按照当前计算机程序插在临时任务队列队尾的排列顺序计算该队列下载和安装计算机程序的总时间,如果结果为否,那么在步骤S406,将当前计算机程序的插入位置在临时任务队列中向后移位并重复步骤S404直至按照当前计算机程序遍历临时任务队列的所有位置的队列排列顺序完成计算相应队列下载和安装计算机程序的总时间,即,步骤S405的判断结果为是,那么在步骤S407对按照当前计算机程序位于临时任务队列各个位置时所对应的各个临时任务队列的排列顺序计算相应队列下载和安装计算机程序的总时间进行比较并排序;在步骤S408,根据下载和安装计算机程序总时间的最小值所对应的排列顺序将当前计算机程序插入队列的相应位置;在步骤S409,判断待处理的计算机程序的任务池中是否还有计算机程序,若结果为是,继续步骤402到步骤408直到待处理计算机程序池中没有多余的计算机程序;若结果为否,那么当前临时队列是最优排列,流程结束。
图5示出根据本发明实施例计算远程部署总时间的方法流程图500。图中的累计延迟时间是指,对于第n个计算机程序,该计算机程序下载完成和开始安装之间延迟的时间。造成这一延迟的原因是在第n个计算机程序下载完成时,之前下载完成的计算机程序尚未完成安装。之前下载完成而尚未完成安装的计算机程序一般包括第n-1个软件,但也可能包括第n-2个软件或者更早下载的软件。同时,第n-1个软件在安装时,也可能会有延迟,这种延迟效应会产生累加效应,并影响后续的安装过程。
在步骤S501,将初始化累计延迟时间设为0;在步骤S502,按照任务队列中计算机程序的排列顺序取出第n个位置的计算机程序,n从1开始;在步骤S503,下载和安装计算机程序的总时间被初始化为当前环境下第n个位置的计算机程序的下载时间;在步骤S504,取出计算机程序队列中第n+1个位置的计算机程序;在步骤S505,在初始化的下载和安装计算机程序的总时间上累加第n+1个位置的计算机程序的下载时间;在步骤S506,判断第n个位置的计算机程序的安装时间与累计延迟时间的和是否小于或等于第n+1个位置的计算机程序的下载时间;若结果为是,那么在步骤S507累计延迟时间为0;若结果为否,那么在步骤S508计算累计延迟时间=第n个位置的计算机程序安装时间+当前累计延迟时间-第n+1个位置的计算机程序的下载时间;接着,在步骤S509,判断当前任务队列还有计算机程序吗,若结果为是,那么n=n+1,返回到步骤S504重复执行;若结果为否,那么前进到步骤S510,计算按照当前任务队列的排列顺序下载和安装计算机程序的总时间=当前下载和安装计算机程序的总时间+累计延迟时间+最后位置的计算机程序的安装时间。
根据本发明实施例的远程部署方法得到的任务队列是对应于部署时间最短的部署策略的计算机程序任务队列,对于计算机程序数目少的处理任务,也可以采用穷举法来分别计算各种排列组合所需要的处理总时间,从而选出最优的方案,然而对于数目较多的计算机程序处理任务,根据本发明实施例的方法效率更高,能够节省更多的时间成本。根据本发明实施例提供的远程部署方法,在安装和下载同时进行时,由于不存在两个或两个以上软件同时安装和同时下载的情况,因此同一时刻只运行一个下载线程和一个安装线程,对于目前的CPU处理器,下载和安装两个线程不会消耗掉很多的CPU资源,因为对于下载,数据的接收采用DMA的传输方式,这也就意味着会占用很少的CPU资源。在CPU平均使用率、可用内存大小以及硬盘大小没有到100%的情况下,两个线程不会出现由于硬件资源被消耗尽而产生互相影响性能的状况。本发明的计算机程序可以是独立安装的软件或软件包,也可以是一个个独立安装的组件。以下示出根据本发明的实施例部署两个组件和三个组件的实施例。
远程部署两个组件的第一实施例
首先响应于客户机向服务器查询安装列表的请求,服务器返回安装列表,安装列表显示客户机需要安装组件A和组件B。响应于客户机的组件安装请求,服务器获取客户机的可以资源信息和相关的网络资源信息。由客户机或者服务器测试客户机与服务器之间的网络资源信息,测试得到客户机与服务器之间的传输带宽是1M字节/每秒,采用ftp传输协议进行传输。客户机查询本地可用资源信息,其中操作系统是Window 2000 sp4,CPU速度是3GHz,CPU的平均使用率是50%,可用内存是1GB,可用硬盘是50GB,硬盘IO速度是10M字节/每秒。服务器根据客户机的可用资源信息,调用软件提供商提供的待处理组件的API接口,计算出组件A的安装时间是5分钟,组件B的安装时间是10分钟。服务器根据网络资源信息和软件大小计算软件传输时间,这里组件A为600M字节,组件B为900M字节,根据网络带宽,计算得到组件A的下载时间是10分钟,组件B的下载时间是15分钟。利用上述安装时间和传输时间根据本发明实施例的算法确定部署策略,按照图4的流程图,从待处理组件的任务池里随机取出组件B并放入一个临时任务队列的起始位置,再取出组件A并放在该临时任务队列的起始位置,按照组件队列AB的顺序计算待处理组件A和B传输并安装完成的总时间TAB,根据图5的方法流程图,初始化累计延迟时间为0,由于组件B不存在安装的延迟时间,累计延迟时间是0,接着取出组件A,将该队列下载和安装的总时间初始化为组件A的下载时间10分钟,然后取出组件B,此时该队列下载和安装的总时间等于当前队列下载和安装的总时间(10分钟)加上组件B的下载时间(15分钟),结果为25分钟,接着判断组件A的安装时间(5分钟)与当前累计延迟时间(0)的和是否小于等于组件B的下载时间(15分钟),结果为是,因此累计延迟时间为0,接着计算该队列下载并安装完成的总时间TAB=TA下载+TB下载+TB安装=10+15+10=35分钟。再将组件A向后移位至队尾,按照组件队列BA的顺序计算待安装处理组件A和B传输并安装完成的总时间TBA,初始化累计延迟时间为0,接着取出组件B,将该队列下载和安装的总时间初始化为组件B的下载时间15分钟,然后取出组件A,此时队列下载和安装的总时间等于当前队列下载和安装的总时间(15)加上组件A的下载时间(10分钟),结果为25分钟,接着判断组件B的安装时间(10分钟)与当前累计延迟时间(0)的和是否小于等于组件A的下载时间(10分钟),结果为是,因此累计延迟时间为0,接着计算该队列下载并安装完成的总时间TBA=TB下载+TA下载+TA安装=15+10+5=30分钟。通过比较确定按照队列BA的顺序进行下载和安装是最优部署策略,图6示出根据本发明实施例确定两个组件的部署策略,即,先下载组件B,再下载组件A,在下载组件A的同时安装组件B,最后安装组件A。将确定的部署策略进行存储,服务器可以根据上述部署策略监控客户机安装组件,也可以将上述部署策略发送到客户机,由客户机来执行组件安装。
利用图1所示的单线程远程部署的方法部署组件A和组件B,即,先将组件A和组件B分别下载到本地之后,再分别安装组件A和组件B,根据上述提供的组件A和组件B的安装时间和传输时间,可以计算出远程部署所需的总时间=10+15+5+10=40分钟。相较于单线程的远程部署方法,本发明部署策略的部署时间节省了25%。相较于本发明实施例中的另一个双线程部署策略的部署时间(TAB),根据本发明部署策略部署时间节省了14%。
远程部署三个组件的第二实施例
首先响应于客户机向服务器查询安装列表的请求,服务器返回安装列表,安装列表显示客户机需要安装组件A、组件B和组件C。响应于客户机的组件安装请求,服务器获取客户机的可以资源信息和相关的网络资源信息。由客户机或者服务器测试客户机与服务器之间的网络资源信息,测试得到客户机与服务器之间的网络带宽是1M字节/每秒,采用ftp传输协议进行传输。客户机查询本地可用资源信息,其中操作系统是AIX 5.3.0.4,CPU速度是2.5GHz,CPU的平均使用率是30%,可用内存是2GB,可用硬盘是100GB,硬盘IO速度是8M字节/每秒。服务器根据客户机的可用资源信息,调用软件提供商提供的待处理组件的API接口,计算出组件A的安装时间是1分钟,组件B的安装时间是5分钟,组件C的安装时间是10分钟。服务器根据网络资源信息和软件大小计算软件传输时间,这里组件A为600M字节,组件B为300M字节,组件C为60M字节,根据网络带宽,计算得到组件A的下载时间是10分钟,组件B的下载时间是5分钟,组件C的下载时间是1分钟。利用上述安装时间和传输时间根据本发明实施例的方法确定安装策略,首先按照图4的流程图,从待处理组件的任务池里随机取出组件A并放入一个临时任务队列的起始位置,再取出组件B并放在该临时任务队列的起始位置,按照组件队列BA的顺序计算待处理组件A和B下载并安装的总时间TBA,由于组件A不存在安装的延迟时间,累计延迟时间是0,因此组件A和B下载并安装完成的总时间TBA=TB下 载+TA下载+TA安装=5+10+1=16分钟。再将组件B向后移位至队尾,按照组件队列AB的顺序计算待处理组件A和B下载和安装完成的总时间TAB,由于组件B不存在安装延时,累计延迟时间是0,因此组件A和B下载并安装完成的总时间TAB=TA下载+TB下载+TB安装=10+5+5=20分钟,通过比较时间的大小,确定保留顺序为BA的队列。接着取出最后一个组件C并插入队列BA起始位置形成第一种组件队列CBA,按照组件队列CBA的顺序根据图5的流程图计算待处理组件A、B和C下载和安装的总时间TCBA,首先将当前累计延迟时间初始化为0,接着取出组件C,将该队列下载和安装的总时间初始化为C组件的下载时间1分钟,然后取出组件B,此时队列下载和安装的总时间等于当前队列下载和安装的总时间(1分钟)加上组件B的下载时间(5分钟),结果为6分钟,接着判断组件C的安装时间(10分钟)与当前累计延迟时间(0)的和是否小于等于组件B的下载时间(5分钟),判断结果为否,此时存在累计延迟时间,累计延迟时间=组件C的安装时间+当前累计延迟时间-组件B的下载时间=10-5=5分钟。接着取出队列中的组件A,在该队列下载和安装的总时间(6分钟)上累加组件A的下载时间(10分钟)后为16分钟,判断组件B的安装时间(5分钟)与当前累计延迟时间(5分钟)的和是否小于或等于组件A的下载时间(10分钟),判断结果为是,那么累计延迟时间为0,最后计算该队列的下载和安装的总时间TCBA=TC下载+TB下载+TA下载+TA安装=1+5+10+1=17分钟。接着返回到图4的方法流程图,将组件C向后移位形成第二种组件队列BCA,按照组件队列BCA的顺序计算待处理组件A、B和C下载和安装的总时间TBAC,根据图5的方法流程图,首先将当前累计延迟时间初始化为0,接着取出组件B,将该队列下载和安装的总时间初始化为组件B的下载时间5分钟,然后取出组件C,此时队列下载和安装的总时间等于当前队列下载和安装的总时间(5分钟)加上组件C的下载时间(1分钟),结果为6分钟,接着判断组件B的安装时间(5分钟)与当前累计延迟时间(0)的和是否小于等于组件C的下载时间(1分钟),判断结果为否,因此存在累计延迟时间,累计延迟时间=组件B的安装时间+当前累计延迟时间-组件C的下载时间=5-1=4分钟。接着取出组件队列中的A,在该队列下载和安装的总时间上累加组件A的下载时间后为16分钟,并判断组件C的安装时间(10分钟)与当前累计延迟时间(4分钟)的和是否小于或等于组件A的下载时间(10分钟),判断结果为否,那么累计延迟时间=组件C的安装时间+当前累计延迟时间-组件A的下载时间=10+4-10=4分钟,最后计算该队列的下载和安装的总时间TBCA=TB下载+TC下载+TA下载+TA安装=5+10+1+4+1=21分钟。将组件C向后移位至队尾,形成第三种组件队列BAC,按照组件队列BAC的顺序计算待处理组件A、B和C下载和安装的总时间TBAC,根据图5的方法流程图,首先将当前累计延迟时间初始化为0,接着取出组件B,将该队列下载和安装的总时间初始化为组件B的下载时间5分钟,然后取出组件A,此时在该队列下载和安装的总时间上累加组件A的下载时间(10分钟)后为15分钟,接着判断组件B的安装时间(5分钟)与当前累计延迟时间(0)的和是否小于等于组件A的下载时间(10分钟),结果为是,因此累计延迟时间为0。接着取出组件队列中的C,在该队列下载和安装的总时间(15分钟)上累加组件C的下载时间(1分钟)后为16分钟,并判断组件A的安装时间(1分钟)与当前累计延迟时间(0)的和是否小于或等于组件C的下载时间(1分钟),结果为是,那么累计延迟时间为0,最后计算该队列的下载和安装的总时间TBAC=TB下载+TA下载+TC下载+TC安装=1+5+10+10=26分钟。通过比较确定按照队列BCA的顺序进行下载和安装是最优部署策略。图7示出根据本发明实施例确定的三个组件的部署策略,即,先下载组件C,再分别下载组件B和组件A,在下载组件B后人组件A的同时安装组件C和组件B,最后安装组件A。将该部署策略进行存储,服务器可以根据上述部署策略监控客户机安装组件,也可以将上述安装策略发送到客户机,由客户机来执行组件安装。
利用图1所示的单线程远程部署的方法部署组件A、B和C,根据上述提供的组件A、B和C的安装时间和传输时间,可以计算出远程部署所需的总时间=10+5+1+1+5+10=32分钟。相较于单线程的远程部署方法,本发明最优部署策略的部署时间节省了47%。相较于本发明实施例中的双线程部署策略的最长部署时间,即,按照队列ABC的顺序进行下载和安装的总时间TABC(30分钟),本发明部署策略的部署时间节省了43%。
本发明实施例的远程部署计算机程序的方法,以远程部署时间最短为目标,统筹考虑客户机的本地可用资源信息和网络资源信息,向用户提供优化部署时间的远程部署策略,提高了远程部署的效率,为需要远程部署大量计算节点的企业级用户节省了大量宝贵的时间资源。
在根据部署策略实施远程部署计算机程序的过程中,由于实际运行情况,客户机的可用资源信息和相关的网络资源信息可能会发生变化,因此需要动态调整剩余计算机程序的部署策略。例如,计算机程序的实际传输速度和计算所得的传输速度不符。在这种情况下,需要监测计算机程序的实际传输速度。再例如,CPU的平均使用率发生变化,影响了计算机程序的安装时间。
根据本发明的一个实施例,可以设置获取可用资源信息和相关的网络资源信息的时间间隔,在预定的时间重新获取客户机的可用资源信息和网络资源信息,并根据客户机的当前可用资源信息和网络资源信息重新确定剩余计算机程序的部署策略,并根据重新确定的部署策略远程部署剩余多个计算机程序。
图8示出根据本发明一个实施例动态调整部署策略的方法,如图所示,在步骤801,对客户机的可用资源信息和相关的网络资源信息进行监测,例如可以监测计算机程序的实际传输速度,也可以监测CPU的平均使用率。根据本发明的一个实施例,可以根据预先设定的阈值来触发重新调整剩余计算机程序的部署策略,首先根据可用资源信息和网络资源信息预先设置阈值,其中预先设定的阈值可以是:计算机程序的实际传输速度超过/低于计算的计算机程序的传输速度一定的百分比、CPU的平均使用率超过规定的百分比或者可用内存的大小低于规定的百分比。接着判断当前可用资源信息和相关的网络资源信息是否超过阈值。
在步骤802,响应于当前可用资源信息或相关的网络资源信息超过阈值,根据所述客户机的当前可用资源信息和相关的网络资源信息重新确定剩余计算机程序的部署策略。具体地,可以根据本发明图4和图5所示的方法重新确定剩余计算机程序的部署策略。
在步骤803,根据所述重新确定的部署策略远程部署所述剩余多个计算机程序。
根据本发明实施例动态调整部署策略的方法根据客户机的可用资源信息和相关的网络资源信息的实际情况动态地调整最优部署策略,进一步提高远程部署的性能和效率。
基于同一发明构思,本发明还提供了远程部署计算机程序的系统。图9示出根据本发明实施例的远程部署计算机程序的系统框图。如图所示,远程部署计算机程序的系统包括:信息获取装置901,被配置为响应于为客户机远程部署多个计算机程序的请求,获取所述客户机的可用资源信息和相关的网络资源信息;部署策略确定装置902,被配置为根据所述客户机的可用资源信息和网络资源信息确定部署策略;以及远程部署装置903,被配置为根据所述部署策略远程部署所述多个计算机程序的传输和安装。
部署策略确定装置902进一步被配置为根据所述客户机的可用资源信息计算所得的所述多个计算机程序的安装时间和根据所述网络资源信息计算所得的所述多个计算机程序的传输时间计算远程部署时间,并根据远程部署时间确定多个计算机程序的部署策略。
所述远程部署计算机程序的系统进一步包括信息监测装置904,被配置为对客户机的当前可用资源信息和相关的网络资源信息进行监测。所述信息监测装置进一步包括:阈值设置装置,被配置为对可用资源信息或相关的网络资源信息预先设置阈值;判断装置,被配置为判断当前可用资源信息和相关的网络资源信息是否超过阈值。
确定部署策略的装置进一步被配置为响应于当前可用资源信息或相关的网络资源信息超过阈值,根据所述客户机的当前可用资源信息和相关的网络资源信息重新确定剩余计算机程序的部署策略;以及部署装置进一步被配置为根据所述重新确定的部署策略远程部署所述剩余多个计算机程序的传输和安装。
本发明可以硬件、软件、固件或其组合的方式实现。本发明可以集中的方式在一个计算机系统中实现,或以分布方式实现,在这种分布方式中,不同的部件分布在若干互连的计算机系统中。适于执行本文中描述的方法的任何计算机系统或其它装置都是合适的。优选地,本发明以计算机软件和通用计算机硬件的组合的方式在服务器端实现,在这种实现方式中,当该计算机程序被加载和执行时,控制该计算机系统而使其执行本发明的方法,或构成本发明的系统。也可以以插件的形式在客户端实现。
上面出于举例说明的目的,给出了本发明的优选实施例的说明。优选实施例的上述说明不是穷尽的,也不打算把本发明局限于公开的明确形式,显然鉴于上述教导,许多修改和变化是可能的。对本领域的技术人员来说显而易见的这种修改和变化包括在由附加的权利要求限定的本发明的范围内。
Claims (14)
1.一种远程部署计算机程序的方法,包括以下步骤:
响应于为客户机远程部署多个计算机程序的请求,获取所述客户机的可用资源信息和相关的网络资源信息;
根据所述客户机的可用资源信息和相关的网络资源信息确定部署策略;以及
根据所述部署策略远程部署所述多个计算机程序的传输和安装。
2.根据权利要求1所述的方法,其中确定部署策略的步骤进一步包括根据所述客户机的可用资源信息计算所得的所述多个计算机程序的安装时间和根据所述网络资源信息计算所得的所述多个计算机程序的传输时间计算远程部署时间,并根据所述远程部署时间确定部署策略。
3.根据权利要求1-2任一项所述的方法,进一步包括对客户机的可用资源信息和相关的网络资源信息进行监测以获取当前可用资源信息和相关的网络资源信息。
4.根据权利要求3所述的方法,其中对客户机的可用资源信息和相关的网络资源信息进行监测进一步包括:
对可用资源信息或相关的网络资源信息预先设置阈值;以及
判断当前可用资源信息或相关的网络资源信息是否超过阈值。
5.根据权利要求4所述的方法,其中确定部署策略的步骤进一步包括响应于当前可用资源信息或相关的网络资源信息超过阈值,根据所述客户机的当前可用资源信息和相关的网络资源信息重新确定剩余计算机程序的部署策略,以及根据所述重新确定的部署策略远程部署所述剩余多个计算机程序。
6.根据权利要求1所述的方法,其中所述客户机的可用资源信息至少包括操作系统的类型和版本、CPU的速度、CPU的平均使用率、可用内存、硬盘可用大小以及IO速度的其中之一。
7.根据权利要求1所述的方法,其中所述网络资源信息至少包括网络传输带宽,网络传输协议的其中之一。
8.一种远程部署计算机程序的系统,包括:
信息获取装置,被配置为响应于为客户机远程部署多个计算机程序的请求,获取所述客户机的可用资源信息和相关的网络资源信息;
部署策略确定装置,被配置为根据所述客户机的可用资源信息和网络资源信息确定部署策略;以及
远程部署装置,被配置为根据所述部署策略远程部署所述多个计算机程序的传输和安装。
9.根据权利要求8所述的系统,其中部署策略确定装置进一步被配置为根据所述客户机的可用资源信息计算所得的所述多个计算机程序的安装时间和根据所述网络资源信息计算所得的所述多个计算机程序的传输时间计算远程部署时间,并根据远程部署时间确定多个计算机程序的部署策略。
10.根据权利要求8-9任一项所述的系统,其中进一步包括:
信息监测装置,被配置为对客户机的可用资源信息和相关的网络资源信息进行监测以获取当前可用资源信息和相关的网络资源信息。
11.根据权利要求10所述的系统,其中信息监测装置进一步包括:
阈值设置装置,被配置为对可用资源信息或相关的网络资源信息预先设置阈值;以及
判断装置,被配置为判断当前可用资源信息或相关的网络资源信息是否超过阈值。
12.根据权利要求11所述的系统,其中
部署策略确定装置进一步被配置为:响应于当前可用资源信息或相关的网络资源信息超过阈值,根据所述客户机的当前可用资源信息和相关的网络资源信息重新确定剩余计算机程序的部署策略;以及
远程部署装置,被配置为根据所述重新确定的部署策略远程部署所述剩余多个计算机程序。
13.根据权利要求9所述的系统,其中所述客户机的可用资源信息至少包括操作系统的类型和版本、CPU的速度、CPU的平均使用率、可用内存、硬盘可用大小以及IO速度的其中之一。
14.根据权利要求9所述的系统,其中所述网络资源信息至少包括网络传输带宽,网络传输协议的其中之一。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101382727A CN101902352A (zh) | 2009-05-31 | 2009-05-31 | 远程部署计算机程序的方法和系统 |
US12/790,030 US8271630B2 (en) | 2009-05-31 | 2010-05-28 | Remotely deploying computer programs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101382727A CN101902352A (zh) | 2009-05-31 | 2009-05-31 | 远程部署计算机程序的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101902352A true CN101902352A (zh) | 2010-12-01 |
Family
ID=43221504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101382727A Pending CN101902352A (zh) | 2009-05-31 | 2009-05-31 | 远程部署计算机程序的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8271630B2 (zh) |
CN (1) | CN101902352A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064717A (zh) * | 2013-01-22 | 2013-04-24 | 浪潮(北京)电子信息产业有限公司 | 一种集群系统并行安装软件的装置和方法 |
CN103984570A (zh) * | 2014-05-07 | 2014-08-13 | 珠海全志科技股份有限公司 | 嵌入式安卓系统的固件处理的方法及装置 |
CN104298528A (zh) * | 2014-09-30 | 2015-01-21 | 小米科技有限责任公司 | 应用程序安装控制方法及装置 |
CN107168753A (zh) * | 2017-06-21 | 2017-09-15 | 山东超越数控电子有限公司 | 一种基于中标麒麟系统远程部署lamp的实现方法 |
CN108574598A (zh) * | 2017-03-14 | 2018-09-25 | 安移通网络公司 | 网络部署 |
CN108900565A (zh) * | 2018-05-16 | 2018-11-27 | 北京奇艺世纪科技有限公司 | 一种数据部署方法及装置 |
CN112764909A (zh) * | 2021-01-27 | 2021-05-07 | 联思智云(北京)科技有限公司 | 一种基于云架构工作站的共享方法及系统 |
WO2023024621A1 (en) * | 2021-08-26 | 2023-03-02 | International Business Machines Corporation | Conditionally deploying a reusable group of containers for a job based on available system resources |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9612814B2 (en) | 2012-02-02 | 2017-04-04 | Sungard Availability Services, Lp | Network topology-aware recovery automation |
US9317268B2 (en) | 2012-02-02 | 2016-04-19 | Sungard Availability Services Lp | Recovery automation in heterogeneous environments |
US9058428B1 (en) | 2012-04-12 | 2015-06-16 | Amazon Technologies, Inc. | Software testing using shadow requests |
US9268663B1 (en) * | 2012-04-12 | 2016-02-23 | Amazon Technologies, Inc. | Software testing analysis and control |
US8843935B2 (en) | 2012-05-03 | 2014-09-23 | Vmware, Inc. | Automatically changing a pre-selected datastore associated with a requested host for a virtual machine deployment based on resource availability during deployment of the virtual machine |
US9645807B2 (en) * | 2012-08-28 | 2017-05-09 | International Business Machines Corporation | Automated deployment of a configured system into a computing environment |
US9128724B2 (en) | 2012-08-28 | 2015-09-08 | International Business Machines Corporation | Configuring assembly of a system using supplied architectural artifacts |
JP6102378B2 (ja) * | 2013-03-15 | 2017-03-29 | 株式会社リコー | サーバ、情報処理システムおよびプログラム |
JP6156512B2 (ja) * | 2013-11-05 | 2017-07-05 | 株式会社リコー | 通信装置、通信システム、通信方法および通信プログラム |
JP2015103105A (ja) | 2013-11-26 | 2015-06-04 | 株式会社リコー | 通信装置、通信システム、及び通信プログラム |
US9940111B2 (en) * | 2013-12-18 | 2018-04-10 | Red Hat, Inc. | Policy-based application deployment to a target application platform system |
CN112148469B (zh) * | 2019-06-28 | 2024-02-20 | 杭州海康威视数字技术股份有限公司 | 管理资源的方法、装置及计算机存储介质 |
US11409543B2 (en) * | 2020-02-03 | 2022-08-09 | Dell Products L.P. | Method and apparatus for improving data management in an information handling system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493871B1 (en) * | 1999-09-16 | 2002-12-10 | Microsoft Corporation | Method and system for downloading updates for software installation |
US6542943B2 (en) * | 1996-06-07 | 2003-04-01 | Networks Associates Technology, Inc. | System, method, and computer program product for automatically updating software on a client computer system |
US20050210459A1 (en) * | 2004-03-12 | 2005-09-22 | Henderson Gary S | Controlling installation update behaviors on a client computer |
US20060075001A1 (en) * | 2004-09-30 | 2006-04-06 | Canning Jeffrey C | System, method and program to distribute program updates |
US20070043831A1 (en) * | 2005-08-19 | 2007-02-22 | Kessler Carl S | Distribution of software based on scheduled time to deploy software dynamic resource state of systems involved in deployment of software and based upon environmental conditions |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7778968B2 (en) * | 2005-10-31 | 2010-08-17 | Sap Ag | Systems and methods for compiling applications on a test server |
US7673023B1 (en) * | 2006-12-29 | 2010-03-02 | Unisys Corporation | Method and apparatus for service processor updates |
-
2009
- 2009-05-31 CN CN2009101382727A patent/CN101902352A/zh active Pending
-
2010
- 2010-05-28 US US12/790,030 patent/US8271630B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6542943B2 (en) * | 1996-06-07 | 2003-04-01 | Networks Associates Technology, Inc. | System, method, and computer program product for automatically updating software on a client computer system |
US6493871B1 (en) * | 1999-09-16 | 2002-12-10 | Microsoft Corporation | Method and system for downloading updates for software installation |
US20050210459A1 (en) * | 2004-03-12 | 2005-09-22 | Henderson Gary S | Controlling installation update behaviors on a client computer |
US20060075001A1 (en) * | 2004-09-30 | 2006-04-06 | Canning Jeffrey C | System, method and program to distribute program updates |
US20070043831A1 (en) * | 2005-08-19 | 2007-02-22 | Kessler Carl S | Distribution of software based on scheduled time to deploy software dynamic resource state of systems involved in deployment of software and based upon environmental conditions |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064717A (zh) * | 2013-01-22 | 2013-04-24 | 浪潮(北京)电子信息产业有限公司 | 一种集群系统并行安装软件的装置和方法 |
CN103984570A (zh) * | 2014-05-07 | 2014-08-13 | 珠海全志科技股份有限公司 | 嵌入式安卓系统的固件处理的方法及装置 |
CN103984570B (zh) * | 2014-05-07 | 2017-05-31 | 珠海全志科技股份有限公司 | 嵌入式安卓系统的固件处理的方法及装置 |
CN104298528A (zh) * | 2014-09-30 | 2015-01-21 | 小米科技有限责任公司 | 应用程序安装控制方法及装置 |
CN108574598A (zh) * | 2017-03-14 | 2018-09-25 | 安移通网络公司 | 网络部署 |
CN107168753A (zh) * | 2017-06-21 | 2017-09-15 | 山东超越数控电子有限公司 | 一种基于中标麒麟系统远程部署lamp的实现方法 |
CN108900565A (zh) * | 2018-05-16 | 2018-11-27 | 北京奇艺世纪科技有限公司 | 一种数据部署方法及装置 |
CN108900565B (zh) * | 2018-05-16 | 2020-11-13 | 北京奇艺世纪科技有限公司 | 一种数据部署方法及装置 |
CN112764909A (zh) * | 2021-01-27 | 2021-05-07 | 联思智云(北京)科技有限公司 | 一种基于云架构工作站的共享方法及系统 |
WO2023024621A1 (en) * | 2021-08-26 | 2023-03-02 | International Business Machines Corporation | Conditionally deploying a reusable group of containers for a job based on available system resources |
US11983570B2 (en) | 2021-08-26 | 2024-05-14 | International Business Machines Corporation | Conditionally deploying a reusable group of containers for a job based on available system resources |
Also Published As
Publication number | Publication date |
---|---|
US8271630B2 (en) | 2012-09-18 |
US20100306356A1 (en) | 2010-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101902352A (zh) | 远程部署计算机程序的方法和系统 | |
CN108293067B (zh) | 针对物联网设备管理通信拥塞 | |
US10057150B2 (en) | Managing communication congestion for internet of things devices | |
US10097379B2 (en) | Managing communication congestion for internet of things devices | |
US8892720B2 (en) | System and method for network optimization through predictive downloading | |
KR101231380B1 (ko) | 배경 파일 전송에 이용가능한 대역폭을 제어하고 추정하는방법 및 이를 구현하기 위한 컴퓨터 프로그램 제품 | |
US8484650B2 (en) | Resource management system, resource information providing method and program for providing resource information relating to a plurality of resources | |
CN101136911B (zh) | 一种采用p2p技术下载文件的方法和p2p下载系统 | |
US7631076B2 (en) | Apparatus, system, and method for adaptive polling of monitored systems | |
JP2022547748A (ja) | IoTシステムにおいてデータを送信するための方法および装置、並びにゲートウェイデバイスおよびそれらの記憶媒体 | |
JP6378057B2 (ja) | 接続制御装置、接続制御方法、接続制御システムおよびコンピュータプログラム | |
CN105323106B (zh) | 一种软件升级管理方法、设备及系统 | |
CN106648872A (zh) | 用于多线程处理的方法及装置、服务器 | |
CN105873022A (zh) | 移动终端下载方法及装置 | |
CN102143563A (zh) | 一种短信中心集群的控制方法、设备及系统 | |
CN108924203B (zh) | 数据副本自适应分布方法、分布式计算系统及相关设备 | |
US20230328005A1 (en) | Gateway Prioritization | |
CN111770026B (zh) | 一种网络流量控制方法和装置 | |
Balman et al. | Dynamic adaptation of parallelism level in data transfer scheduling | |
US9021109B1 (en) | Controlling requests through message headers | |
CN115695446A (zh) | 一种基于Openstack的高并发的镜像传输方法 | |
CN104581818A (zh) | 一种基于移动终端的流量交换方法和系统 | |
CN105282199A (zh) | 云服务资源优化方法、云平台及云用户客户端 | |
CN110290556B (zh) | 一种基于最优控制变分法的资源负载均衡调度方法 | |
CN112653717A (zh) | 一种多云协作分布式系统和应用分发的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20101201 |