一种部署应用的方法和调度器的制造方法

文档序号:7988689阅读:163来源:国知局
一种部署应用的方法和调度器的制造方法
【专利摘要】本发明实施例涉及一种部署应用的方法和调度器,所述方法包括:调度器接收第一云的云控制器发送的针对第一应用的应用部署请求;所述调度器在收到所述应用部署请求后,向第二云的云控制器发送第一查询消息和第二查询消息;所述调度器从通过所述第一查询消息和第二查询消息查询到的具有所述第一计算能力的至少一个计算单元中确定目标计算单元;所述调度器将所述第一应用部署至所述目标计算单元中。在本发明的实施例中,调度器先从第二云和第三中确定具有第一应用所需的计算能力的计算单元,然后再从确定的计算单元中确定目标计算单元,并将第一应用部署至所述目标计算单元,在包括多个云的网络中确定出一个合适的云来部署所述第一应用。
【专利说明】一种部署应用的方法和调度器
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种部署应用的方法和调度器。
【背景技术】
[0002]近年来,随着互联网的快速发展,云计算业务也随之蓬勃发展起来。但是通常来说,云计算服务器与用户终端之间的距离较远,网络时延较大,造成某些业务的体验较差。为此有人提出了分层云计算的概念,即把部分云计算推到离用户更近的边缘,减小网络时延,增加用户体验。在新的云计算网络中包括中心云和前端云。中心云与传统的云计算服务器类似,往往包括大型的数据中心,优选部署在核心城市;前端云包括中小型的数据中心,优选部署在中小型城市。
[0003]采用中心云加前端云的架构可以提升用户体验,但由于网络中出现了多个云,如何为应用选择部署该应用的合适的云就成为了一个急需解决的问题。

【发明内容】

[0004]本发明实施例的一个目的为提供一种部署应用的方法和调度器,用于在包括多个云的网络中选择一个合适的云来部署第一应用。
[0005]第一方面,一种部署应用的方法,包括:
[0006]调度器接收第一云的云控制器发送的针对第一应用的应用部署请求;
[0007]所述调度器在收到所述应用部署请求后,向第二云的云控制器发送第一查询消息,所述第一查询消息包括所述第一应用所需的计算能力的信息,所述第一查询消息用于查询第二云中具有所述计算能力的计算单元的标识信息,所述第一应用所需的计算能力为第一计算能力;
[0008]所述调度器在收到所述应用部署请求后,向第三云的云控制器发送第二查询消息,所述第二查询消息包括所述第一计算能力的信息,所述第二查询消息用于查询第三云中具有所述第一计算能力的计算单元的标识信息;
[0009]所述调度器从通过所述第一查询消息和第二查询消息查询到的具有所述第一计算能力的至少一个计算单元中确定目标计算单元;
[0010]所述调度器在确定所述目标计算单元安装有所述第一应用所需的运行库后,将所述第一应用部署至所述目标计算单元中,所述调度器用于管理所述第一云、第二云和第三云。
[0011]可选地,根据第一方面,在第一方面的第一种实施方式中,所述调度器在确定所述目标计算单元安装有所述第一应用所需的运行库后,将所述第一应用部署至所述目标计算单元中包括:
[0012]所述调度器向所述目标计算单元对应的云控制器发送运行库查询消息,查询所述目标计算单元是否安装有所述第一应用所需的运行库;
[0013]当确定所述目标计算单元没有安装有所述运行库后,通知所述目标计算单元安装所述运行库;
[0014]在所述目标计算单元完成所述运行库的安装后,所述调度器将所述第一应用部署至所述目标计算单元中。
[0015]可选地,根据第一方面,在第一方面的第二种实施方式中,所述调度器在确定所述目标计算单元安装有所述第一应用所需的运行库后,将所述第一应用部署至所述目标计算单元中包括:
[0016]所述调度器向所述目标计算单元对应的云控制器发送运行库查询消息,查询所述目标计算单元是否安装有所述第一应用所需的运行库;
[0017]当确定所述目标计算单元安装有所述运行库后,将所述第一应用部署至所述目标计算单元中。
[0018]可选地,根据第一方面、第一方面的第一种实施方式或第一方面的第二种实施方式,在第一方面的第三种实施方式中,所述第一计算能力的信息包括中央处理器CPU主频、内存容量、网络带宽信息和编程语言运行环境信息中的任意一个或多个。
[0019]可选地,根据第一方面至第一方面的第三种实施方式中的任意一个,在第一方面的第四种实施方式中,当所述至少一个计算单元为一个以上计算单元时,所述目标计算单元为:
[0020]所述具有所述第一计算能力的一个以上计算单元中到请求所述第一应用的用户终端的距离最短的计算单元。
[0021]可选地,根据第一方面的第四种实施方式,在第一方面的第五种实施方式中,所述距离包括物理距离、网络距离或权重距离。
[0022]可选地,根据第一方面至第一方面的第五种实施方式中的任意一个,在第一方面的第六种实施方式中,
[0023]所述第一云为第一中心云,所述第二云为第一前端云,所述第三云为第二前端云;
[0024]或,
[0025]所述第一云为第一前端云,所述第二云为第一中心云,所述第三云为第二中心云;
[0026]或,
[0027]所述第一云为第一前端云,所述第二云为第二前端云,所述第三云为第三前端云。
[0028]第二方面,一种调度器,用于管理第一云、第二云和第三云,所述调度器包括:
[0029]接收单元,用于接收第一云的云控制器发送的针对第一应用的应用部署请求;
[0030]第一发送单元,用于在所述接收单元收到所述应用部署请求后,向第二云的云控制器发送第一查询消息,所述第一查询消息包括所述第一应用所需的计算能力的信息,所述第一查询消息用于查询第二云中具有所述计算能力的计算单元的标识信息,所述第一应用所需的计算能力为第一计算能力;
[0031]第二发送单元,用于在所述接收单元收到所述应用部署请求后,向第三云的云控制器发送第二查询消息,所述第二查询消息包括所述第一计算能力的信息,所述第二查询消息用于查询第三云中具有所述第一计算能力的计算单元的标识信息;
[0032]确定单元,用于从通过所述第一查询消息和第二查询消息查询到的具有所述第一计算能力的至少一个计算单元中确定目标计算单元;
[0033]部署单元,用于在确定所述目标计算单元安装有所述第一应用所需的运行库后,将所述第一应用部署至所述目标计算单元中。
[0034]可选地,根据第二方面,在第二方面的第一种实施方式中,所述部署单元具体用于:
[0035]向所述目标计算单元对应的云控制器发送运行库查询消息,查询所述目标计算单元是否安装有所述第一应用所需的运行库;
[0036]当确定所述目标计算单元没有安装有所述运行库后,通知所述目标计算单元安装所述运行库;
[0037]在所述目标计算单元完成所述运行库的安装后,将所述第一应用部署至所述目标计算单元中。
[0038]可选地,根据第二方面,在第二方面的第二种实施方式中,所述部署单元具体用于:
[0039]向所述目标计算单元对应的云控制器发送运行库查询消息,查询所述目标计算单元是否安装有所述第一应用所需的运行库;
[0040]当确定所述目标计算单元安装有所述运行库后,将所述第一应用部署至所述目标计算单元中。
[0041]可选地,根据第二方面、第二方面的第一种实施方式或第二方面的第二种实施方式,在第二方面的第三种实施方式中,所述第一计算能力的信息包括中央处理器CPU主频、内存容量、网络带宽信息和编程语言运行环境信息中的任意一个或多个。
[0042]可选地,根据第二方面至第二方面的第三种实施方式中的任意一个,在第二方面的第四种实施方式中,当所述至少一个计算单元为一个以上计算单元时,所述目标计算单元为:
[0043]所述具有所述第一计算能力的一个以上计算单元中到请求所述第一应用的用户终端的距离最短的计算单元。
[0044]可选地,根据第二方面的第四种实施方式,在第二方面的第五种实施方式中,所述距离包括物理距离、网络距离或权重距离。
[0045]可选地,根据第二方面至第二方面的第五种实施方式中的任意一个,在第二方面的第六种实施方式中,
[0046]所述第一云为第一中心云,所述第二云为第一前端云,所述第三云为第二前端云;
[0047]或,
[0048]所述第一云为第一前端云,所述第二云为第一中心云,所述第三云为第二中心云;
[0049]或,
[0050]所述第一云为第一前端云,所述第二云为第二前端云,所述第三云为第三前端云。
[0051]在本发明的实施例中,调度器先从第二云和第三云中确定具有第一应用所需的计算能力的计算单元,然后再从确定的计算单元中确定目标计算单元,并在目标计算单元安装有运行库的情况下将第一应用部署至所述目标计算单元,在包括多个云的网络中确定出一个合适的云来部署所述第一应用。
【专利附图】

【附图说明】
[0052]图1为本发明实施例的网络示意图;
[0053]图2为本发明实施例的部署应用的方法的示意图;
[0054]图3a为本发明实施例的网络示意图;
[0055]图3b为本发明实施例的网络示意图;
[0056]图3c为本发明实施例的网络示意图;
[0057]图3d为本发明实施例的网络示意图;
[0058]图4为本发明实施例的部署应用的方法的示意图;
[0059]图5为本发明实施例中包括调度器与ALTO服务器的网络的示意图;
[0060]图6为本发明实施例中包括调度器与ALTO服务器的网络的示意图;
[0061]图7为本发明实施例的部署应用的方法的示意图;
[0062]图8为本发明实施例的部署应用的方法的示意图;
[0063]图9为本发明实施例的调度器的示意图;
[0064]图10为本发明实施例的调度器的示意图。
【具体实施方式】
[0065]下面结合附图和具体实施例对本发明展开详细说明。但需要注意,下面的这些实施例,仅为帮助理解技术方案所举的例子,并不用于限定本发明。
[0066]本发明的一个实施例公开了 一种部署应用的方法,这种方法应用于包括中心云和前端云的网络中。
[0067]图1为一个包括中心云和前端云的网络的示意图,图1示出了三个云,分别为第一云、第二云和第三云,每个云分别包括各自的云控制器和计算单元。如图1所示的网络中还可以包括一个或多个其他的云。
[0068]基于图1所示的网络,如图2所示,一种部署应用的方法包括以下内容。
[0069]110、调度器接收第一云的云控制器发送的针对第一应用的应用部署请求。
[0070]120、所述调度器在收到所述应用部署请求后,向第二云的云控制器发送第一查询消息,所述第一查询消息包括所述第一应用所需的计算能力的信息,所述第一查询消息用于查询第二云中具有所述计算能力的计算单元的标识信息。所述第一应用所需的计算能力为第一计算能力。
[0071]可选地,所述第一计算能力的信息包括中央处理器CPU主频、内存容量、网络带宽信息和编程语言运行环境信息中的任意一个或多个。
[0072]130、所述调度器在收到所述应用部署请求后,向第三云的云控制器发送第二查询消息,所述第二查询消息包括所述第一计算能力的信息,所述第二查询消息用于查询第三云中具有所述第一计算能力的计算单元的标识信息。
[0073]需要指出的是,120和130是相互独立的,120可以在130之前执行,也可以在130之后执行,还可以与130同时执行。
[0074]140、所述调度器从通过所述第一查询消息和第二查询消息查询到的具有所述第一计算能力的至少一个计算单元中确定目标计算单元。
[0075]所述通过所述第一查询消息和第二查询消息查询到的具有所述第一计算能力的计算单元可能仅是一个,也就是说,第二云和第三云中的一个云包括了唯一的一个具有所述第一计算能力的计算单元,另一个云不包括具有所述第一计算能力的计算单元。
[0076]当然,第二云和第三云也可能分别包括具有所述第一计算能力的计算单元,因此所述调度器查询到的具有所述第一计算能力的计算单元也可能是一个以上。
[0077]可选地,当所述查询到的具有所述第一计算能力的计算单元仅是一个时,那么这唯一的计算单元就是所述目标计算单元。
[0078]可选地,当所述查询到的具有所述第一计算能力的计算单元是一个以上时,所述目标计算单元为:所述具有所述第一计算能力的一个以上计算单元中到请求所述第一应用的用户终端的距离最短的计算单元。可选地,所述距离包括物理距离、网络距离或权重距离。
[0079]可选地,当所述查询到的具有所述第一计算能力的计算单元是一个以上时,所述目标计算单元也可以是所述调度器从所述查询到的具有所述第一计算能力的计算单元随机选取的计算单元。
[0080]物理距离是指根据两个物理设备各自的物理位置而确定的两个物理设备之间的距离。举例来说,所述物理位置可以是经纬度坐标。
[0081]网络距离是指两个物理设备之间的转发跳数或者一个报文在两个物理设备之间的传输时间。
[0082]权重距离是指物理距离与权重系数的乘积,或,网络距离与权重系数的乘积。
[0083]150、所述调度器在确定所述目标计算单元安装有所述第一应用所需的运行库后,将所述第一应用部署至所述目标计算单元中。
[0084]可选地,150具体包括:所述调度器向所述目标计算单元对应的云控制器发送运行库查询消息,查询所述目标计算单元是否安装有所述第一应用所需的运行库。
[0085]可选地,当确定所述目标计算单元没有安装有所述运行库后,通知所述目标计算单元安装所述运行库;
[0086]在所述目标计算单元完成所述运行库的安装后,所述调度器将所述第一应用部署至所述目标计算单元中。
[0087]可选地,当确定所述目标计算单元安装有所述运行库后,所述调度器将所述第一应用部署至所述目标计算单元中。
[0088]所述调度器将所述第一应用部署至所述目标计算单元中可以被理解为所述调度器本身将第一应用部署至所述目标计算单元,也可以理解为所述调度器对其他设备进行控制或管理,由以其他设备将所述第一应用部署至所述目标计算单元。
[0089]可选地,所述运行库包括rails或时间机(eventmachine)或其他运行库。
[0090]在本实施例中,所述调度器通过110-150,实现了对所述第一云、第二云和第三云的管理。另外,调度器可以不属于或独立于所述第一云、第二云和第三云,也可以集成在述第一云、第二云或第三云的云控制器中。
[0091]此外,在包括云的网络中,不同的云可以有不同的角色,例如处于网络中心的云可以被称为中心云,处于中心云和用户之间的云可以被称为前端云。本实施例中的第一云、第二云和第三云可以分别有其各自的角色。
[0092]例如,所述第一云为第一中心云,所述第二云为第一前端云,所述第三云为第二前端云;或者,所述第一云为第一前端云,所述第二云为第一中心云,所述第三云为第二中心云;或者,所述第一云为第一前端云,所述第二云为第二前端云,所述第三云为第三前端云。
[0093]当所述第一云为第一中心云,所述第二云为第一前端云,所述第三云为第二前端云,一个简要的网络不意图为图3a ;
[0094]当如图3a所示的网络中还包括第三前端云时,其网络示意图为图3b ;
[0095]当所述第一云为第一前端云,所述第二云为第一中心云,所述第三云为第二中心云,一个简要的网络不意图为图3c ;
[0096]当所述第一云为第一前端云,所述第二云为第二前端云,所述第三云为第三前端云时,一个简要的网络不意图为图3d。
[0097]由本实施例中的内容可知,调度器先从第二云和第三云中确定具有第一应用所需的计算能力的计算单元,然后再从确定的计算单元中确定目标计算单元,并在目标计算单元安装有运行库的情况下将第一云中的第一应用部署至所述目标计算单元,在包括多个云的网络中确定出一个合适的云来部署所述第一应用。
[0098]如图4所示的实施例公开了一种部署应用的方法,可应用于如图3b所示的网络中。该方法用于将前端云中的第一应用部署至前端云中,具体包括以下内容。
[0099]210、第一中心云的云控制器CCl向调度器发送第一请求,请求在前端云中部署第
一应用。
[0100]所述第一请求包括第一应用所需的计算能力的信息,在此,可以将第一应用所需的计算能力称为第一计算能力。
[0101]所述第一计算能力的信息包括:CPU主频、内存容量、网络带宽和编程语言运行环境中的任意一个或多个。在本实施例的一个第一计算能力的信息的具体示例中,第一能力的信息包括=CPU主频为1.0GHz,内存容量为512MB,网络带宽为100Mbps,编程语言运行环境为 Rubyl.9ο
[0102]220、调度器向分别向云控制器EC1、云控制器EC2和云控制器EC3发送查询消息,即向云控制器ECl发送第一查询消息,向云控制器EC2发送第二查询消息,并向云控制器EC3发送第三查询消息。云控制器ECl、云控制器EC2和云控制器EC3分别为第一前端云的云控制器、第二前端云的云控制器和第三前端云的云控制器。第一前端云包括计算单元ENl,第二前端云包括计算单元EN2,第三前端云包括计算单元EN3。220也可以被理解为无先后顺序的三个操作。
[0103]所述第一查询消息、所述第二查询消息和所述第三查询消息均包括所述第一计算能力的信息。第一查询消息用于查询所述第一前端云中具有所述第一计算能力的计算单元的标识信息。所述第二查询消息用于查询所述第二前端云中具有所述第一计算能力的计算单元的标识信息。所述第三查询消息用于查询所述第三前端云中具有所述第一计算能力的计算单元的标识信息。
[0104]230、调度器接收云控制器EC1、云控制器EC2和云控制器EC3分别发送的第一响应消息、第二响应消息和第三响应消息。
[0105]云控制器ECl发送的第一响应消息包括所述第一前端云中被所述第一前端云的云控制器ECl选定的、具有所述第一计算能力的计算单元的标识信息。在本实施例中,所述第一前端云中被第一前端云的云控制器ECl选定的、具有第一计算能力的计算单兀是EN1。可选地,所述第一响应消息还包括所述被云控制器ECl选定的计算单元的计算能力信息。
[0106]可选地,所述第一前端云中可能包括多个具有第一计算能力的计算单元,第一前端云的云控制器ECl可以将其中的部分或全部具有第一计算能力的计算单元的信息发送给调度器。因此,所述第一前端云中被第一前端云的云控制器ECl选定的、具有第一计算能力的计算单元可以是一个,也可以是一个以上。
[0107]云控制器EC2发送的第二响应消息包括所述第二前端云中被所述第二前端云的云控制器EC2选定的、具有所述第一计算能力的计算单元的标识信息。在本实施例中,所述第一前端云中被第一前端云的云控制器ECl选定的、具有第一计算能力的计算单兀是EN1。可选地,所述第一响应消息还包括所述被云控制器EC2选定的计算单元的计算能力信息。
[0108]所述云控制器EC3发送的第三响应消息包括用于表明所述第三前端云中不包括具有所述第一计算能力的计算单元的信息。可选地,云控制器EC3也可以不发送第三响应消息,当调度器在预定的时间内没有收到第三响应消息时,会确定所述第三前端云中不包括具有所述第一计算能力的计算单元的信息。
[0109]240、调度器根据所述第一响应消息、所述第二响应消息和所述第三响应消息确定所述目标计算单元。在本实施例中,请求所述第一应用的用户终端为用户终端a。在本实施例中确定出的所述目标计算单元为第一前端云中的计算单元EN1。可选地,调度器也可以根据所述第一响应消息、所述第二响应消息并且进一步根据在预定的时间内没有收到第三响应消息来确定所述目标计算单元。
[0110]可选地,所述目标计算单元为调度器查询到的具有所述计算能力的至少一个计算单元中到所述用户终端a的距离最短的计算单元。例如,当调度器查询到的具有所述计算能力的至少一个计算单元包括第一前端云中的计算单元ENl和第二前端云中的计算单元EN2,则所述目标计算单元就是计算单元ENl和计算单元EN2中到所述用户终端a的距离最短的计算单元。
[0111]所述距离包括物理距离、网络距离或权重距离。
[0112]所述物理距离可以通过以下方法确定。
[0113]分别获取计算单元EN1、计算单元EN2和用户终端a的经纬度坐标;
[0114]分别计算计算单元ENl到用户终端a的物理距离和计算单元EN2到用户终端a的物理距离;
[0115]比较上述两个物理距离,将较短的物理距离对应的计算单元确定为目标计算单
J Li ο
[0116]可选地,在计算上述两个物理距离时,可以用云控制器ECl的经纬度坐标替换计算单元ENl的经纬度坐标,用云控制器EC2的经纬度坐标替换计算单元EN2的经纬度坐标。这样得到的计算结果虽然精度略差,但是在大多数情况下还是可以接受的。
[0117]所述网络距离的可以通过应用层流量优化(英文全称为Application-LayerTraffic Optimization,英文缩写为ALTO)、通用网络协议(英文全称为General NetworkProtocol,英文缩写为GNP)或互联网距离映射服务(英文全称为Internet Distance MapService,英文缩写为IDMaps)等多种技术实现,本实施例以ALTO为例并结合图5进行说明。
[0118]如图5所示,调度器包括ALTO客户端。ALTO客户端和调度器外部的ALTO服务器通过ALTO协议进行交互。
[0119]调度器获取用户终端a的IP地址、第一前端云的IP地址和云标识以及第二前端云的IP地址和云标识。
[0120]调度器中的ALTO客户端将用户终端a的IP地址、第一前端云的IP地址和第二前端云的IP地址发送给ALTO服务器,请求ALTO服务器确定第一前端云到用户终端a的网络距离和第二前端云到用户终端a的网络距离。
[0121]ALTO服务器将确定出的第一前端云到用户终端a的网络距离和第二前端云到用户终端a的网络距离发送给ALTO客户端。
[0122]在包括多个前端云的网络中,前端云到用户终端的距离约等于前端云中的计算单元到用户终端的距离。因此,所述第一前端云到用户终端a的网络距离用于表示计算单元ENl到用户终端a的网络距离,第二前端云到用户终端a的网络距离用于表示计算单元EN2到用户终端a的网络距离。
[0123]所述权重距离是指物理距离与权重系数的乘积,或,网络距离与权重系数的乘积。
[0124]在如图6所示的网络中,策略云控制器为多个前端云分别配置了权重因子k。例如,为第一前端云配置的权重因子为kl, kl对第一前端云中的每个计算单元都有效;为第二前端云配置的权重因此为k2, k2对第二前端云中的每个计算单元都有效。
[0125]当确定权重ALTO服务器将确定出的计算单元ENl到用户终端a的网络距离和计算单元EN2到用户终端a的网络距离发送给ALTO客户端后,调度器将计算单元ENl到用户终端a的网络距离乘以kl,得到计算单元ENl到用户终端a的权重距离,调度器将计算单元EN2到用户终端a的网络距离乘以k2,得到计算单元EN2到用户终端a的权重距离。
[0126]步骤250、调度器向目标计算单元对应的前端云的云控制器,即云控制器1,发送第四查询消息,查询目标计算单元是否安装有所述第一应用所需的运行库。
[0127]步骤260、调度器接收云控制器I发送的第四响应消息,当第四响应消息表明计算单元ENl未安装有所述第一应用所需的运行库,则执行步骤270-290,当第四响应消息表明计算单元ENl安装有所述第一应用所需的运行库,则执行步骤290。
[0128]步骤270、调度器向计算单元ENl发送通知消息,通知计算单元ENl安装述第一应用所需的运行库。
[0129]步骤280、调度器接收到计算单元ENl发送的安装成功消息。
[0130]步骤290、调度器将第一应用部署至计算单元ENl。
[0131 ] 调度器可以在确定目标计算单元后,从第一中心云下载所述第一应用。此外,所述第一应用也可以不是由调度器从第一中心云下载的,而是由第一中心云主动向调度器发送的,例如,在第一中心云的云控制器向调度器发送的第一请求中携带所述第一应用。
[0132]如图7所示的实施例公开了一种部署应用的方法,可应用于如图3c所示的网络中。该方法用于将一个前端云中的第一应用部署至一个中心云中,所述网络包括第一前端云,云控制器ECl为第一前端云的云控制器,所述网络还包括第一中心云和第二中心云,云控制器CCl为第一中心云的云控制器,云控制器CC2为第二中心云的云控制器。所述方法具体包括以下内容。[0133]310、控制器ECl向调度器发送第一请求,用于将第一前端云中的第一应用部署至一个中心云中。
[0134]所述第一请求包括第一应用所需的计算能力的信息,在此,可以将第一应用所需的计算能力称为第一计算能力。
[0135]320、调度器分别向控制器CCl和控制器CC2发送第一查询消息和第二查询消息。320也可以被理解为无先后顺序的两个操作。
[0136]第一查询消息和第二查询消息均包括所述第一计算能力的信息,第一查询消息用于查询第一中心云中具有所述计算能力的计算单元的标识信息,第二查询消息用于查询第二中心云中具有所述计算能力的计算单元的标识信息。
[0137]330、调度器分别接收云控制器CCl和云控制器CC2发送的第一响应消息和第二响
应消息。
[0138]云控制器CCl发送的第一响应消息包括所述第一中心云中被云控制器CCl选定的、具有所述第一计算能力的计算单元的标识信息。可选地,所述第一响应消息还包括所述被云控制器CCl选定的计算单元的计算能力信息。
[0139]云控制器CC2发送的第二响应消息包括所述第二中心云中被云控制器CC2选定的、具有所述第一计算能力的计算单元的标识信息。可选地,所述第二响应消息还包括所述被云控制器CC2选定的计算单元的计算能力信息。
[0140]340、调度器根据第一响应消息和第二响应消息确定目标计算单元。在本实施例中,请求所述第一应用的用户终端为用户终端a。在本实施例中确定出的所述目标计算单元为第一中心云中的计算单元CNl。
[0141]可选地,所述目标计算单元为调度器查询到的具有所述计算能力的至少一个计算单元中到所述用户终端a的距离最短的计算单元。例如,当调度器查询到的具有所述计算能力的至少一个计算单元包括第一中心云中的计算单元CNl和第二中心云中的计算单元CN2,则所述目标计算单元就是计算单元CNl和计算单元CN2中到所述用户终端a的距离最短的计算单元。本实施例中计算单元CNl到所述用户终端a的距离最短。所述距离包括物理距离、网络距离或权重距离。
[0142]350、调度器向目标计算单元对应的云控制器,即云控制器CC1,发送第三查询消息,查询目标计算单元是否安装有所述第一应用所需的运行库。
[0143]360、调度器接收云控制器2发送的第三响应消息,当第三响应消息表明计算单元CNl未安装有所述第一应用所需的运行库,则执行370-390,当第三响应消息表明计算单元CNl安装有所述第一应用所需的运行库,则执行390。
[0144]370、调度器向计算单元CNl发送通知消息,通知计算单元CNl安装述第一应用所需的运行库。
[0145]步骤380、调度器接收到计算单元CNl发送的安装成功消息。
[0146]步骤390、调度器将第一应用部署至计算单元CNl。
[0147]如图8所示的实施例公开了一种部署应用的方法,可应用于如图3d所示的网络中。该方法用于将一个前端云中的第一应用部署至另一个前端云中,所述网络包括第一前端云、第二前端云和第三前端云,这三个前端云的云控制器分别为云控制器EC1、云控制器EC2和云控制器EC3。所述方法具体包括以下内容。[0148]410、控制器ECl向调度器发送第一请求,用于将第一前端云中的第一应用部署至另一个前端云中。
[0149]所述第一请求包括第一应用所需的计算能力的信息,在此,可以将第一应用所需的计算能力称为第一计算能力。
[0150]420、调度器分别向控制器EC2和控制器EC3发送第一查询消息和第二查询消息。320也可以被理解为无先后顺序的两个操作。
[0151]第一查询消息和第二查询消息均包括所述第一计算能力的信息,第一查询消息用于查询第二前端云中具有所述计算能力的计算单元的标识信息,第二查询消息用于查询第三前端云中具有所述计算能力的计算单元的标识信息。
[0152]步骤430、调度器分别接收云控制器EC2和云控制器EC3发送的第一响应消息和第二响应消息。
[0153]云控制器EC2发送的第一响应消息包括所述第二前端云中被云控制器EC2选定的、具有所述第一计算能力的计算单元的标识信息。可选地,所述第二响应消息还包括所述被云控制器EC2选定的计算单元的计算能力信息。
[0154]云控制器EC3发送的第二响应消息包括所述第三前端云中被云控制器EC3选定的、具有所述第一计算能力的计算单元的标识信息。可选地,所述第三响应消息还包括所述被云控制器EC3选定的计算单元的计算能力信息。
[0155]440、调度器根据所述第一响应消息、所述第二响应消息确定所述目标计算单元。在本实施例中,请求所述第一应用的用户终端为用户终端a。在本实施例中确定出的所述目标计算单元为第二前端云中的计算单元EN2。
[0156]可选地,所述目标计算单元为调度器查询到的具有所述计算能力的至少一个计算单元中到所述用户终端a的距离最短的计算单元。例如,当调度器查询到的具有所述计算能力的至少一个计算单元包括第二前端云中的计算单元EN2和第三前端云中的计算单元EN3,则所述目标计算单元就是计算单元EN2和计算单元EN3中到所述用户终端a的距离最短的计算单元。本实施例中计算单元EN2到所述用户终端a的距离最短。所述距离包括物理距离、网络距离或权重距离。
[0157]450、调度器向目标计算单元对应的云控制器,即云控制器EC2,发送第三查询消息,查询目标计算单元是否安装有所述第一应用所需的运行库。
[0158]460、调度器接收云控制器EC2发送的第三响应消息,当第三响应消息表明计算单元EN2未安装有所述第一应用所需的运行库,则执行470-490,当第三响应消息表明计算单元EN2安装有所述第一应用所需的运行库,则执行490。
[0159]470、调度器向计算单元EN2发送通知消息,通知计算单元EN2安装述第一应用所需的运行库。
[0160]480、调度器接收到计算单元EN2发送的安装成功消息。
[0161]490、调度器将第一应用部署至计算单元EN2。
[0162]图9所示为本发明的一个实施例中的调度器60,用于管理第一云、第二云和第三云。如图9所示,所述调度器包括接收单元61、第一发送单元62、第二发送单元63、确定单元64和部署单元65。
[0163]接收单元61用于接收第一云的云控制器发送的针对第一应用的应用部署请求。[0164]第一发送单元62在接收单元61收到所述应用部署请求后,向第二云的云控制器发送第一查询消息,所述第一查询消息包括所述第一应用所需的计算能力的信息,所述第一查询消息用于查询第二云中具有所述计算能力的计算单元的标识信息。所述第一应用所需的计算能力为第一计算能力。
[0165]可选地,所述第一计算能力的信息包括中央处理器CPU主频、内存容量、网络带宽信息和编程语言运行环境信息中的任意一个或多个。
[0166]第二发送单元63在接收单元61收到所述应用部署请求后,向第三云的云控制器发送第二查询消息,所述第二查询消息包括所述第一计算能力的信息,所述第二查询消息用于查询第三云中具有所述第一计算能力的计算单元的标识信息。
[0167]需要指出的是,第一发送单元62和第二发送单元63是相互独立的,第一发送单元62执行的操作可以在第二发送单元63执行的操作之前,也可以在在第二发送单元63执行的操作之后,还可以与在第二发送单元63执行的操作同时执行。
[0168]确定单元64用于从通过所述第一查询消息和第二查询消息查询到的具有所述第一计算能力的至少一个计算单元中确定目标计算单元。
[0169]所述通过所述第一查询消息和第二查询消息查询到的具有所述第一计算能力的计算单元可能仅是一个,也可能是一个以上。
[0170]可选地,当所述查询到的具有所述第一计算能力的计算单元仅是一个时,那么这唯一的计算单元就是所述目标计算单元。
[0171]可选地,当所述查询到的具有所述第一计算能力的计算单元是一个以上时,所述目标计算单元为:所述具有所述第一计算能力的一个以上计算单元中到请求所述第一应用的用户终端的距离最短的计算单元。可选地,所述距离包括物理距离、网络距离或权重距离。
[0172]可选地,当所述查询到的具有所述第一计算能力的计算单元是一个以上时,所述目标计算单元也可以是所述调度器从所述查询到的具有所述第一计算能力的计算单元随机选取的计算单元。
[0173]物理距离是指根据两个物理设备各自的物理位置而确定的两个物理设备之间的距离。举例来说,所述物理位置可以是经纬度坐标。
[0174]网络距离是指两个物理设备之间的转发跳数或者一个报文在两个物理设备之间的传输时间。
[0175]权重距离是指物理距离与权重系数的乘积,或,网络距离与权重系数的乘积。
[0176]部署单元65用于在确定单元64确定所述目标计算单元安装有所述第一应用所需的运行库后,将所述第一应用部署至所述目标计算单元中。
[0177]可选地,部署单元65具体用于:向所述目标计算单元对应的云控制器发送运行库查询消息,查询所述目标计算单元是否安装有所述第一应用所需的运行库。可选地,当确定所述目标计算单元没有安装有所述运行库后,通知所述目标计算单元安装所述运行库;在所述目标计算单元完成所述运行库的安装后,将所述第一应用部署至所述目标计算单元中。可选地,当确定所述目标计算单元安装有所述运行库后,所述部署单元65将所述第一应用部署至所述目标计算单元中。
[0178]所述部署单元65将所述第一应用部署至所述目标计算单元中可以被理解为所述部署单元65本身将第一应用部署至所述目标计算单元,也可以理解为所述部署单元65对其他设备进行控制或管理,由以其他设备将所述第一应用部署至所述目标计算单元。
[0179]此外,在包括云的网络中,不同的云可以有不同的角色,例如处于网络中心的云可以被称为中心云,处于中心云和用户之间的云可以被称为前端云。本实施例中的第一云、第二云和第三云可以分别有其各自的角色。
[0180]例如,所述第一云为第一中心云,所述第二云为第一前端云,所述第三云为第二前端云;或者,所述第一云为第一前端云,所述第二云为第一中心云,所述第三云为第二中心云;或者,所述第一云为第一前端云,所述第二云为第二前端云,所述第三云为第三前端云。
[0181]由本实施例中的内容可知,调度器先从第二云和第三云中确定具有第一应用所需的计算能力的计算单元,然后再从确定的计算单元中确定目标计算单元,并在目标计算单元安装有运行库的情况下将第一云中的第一应用部署至所述目标计算单元,在包括多个云的网络中确定出一个合适的云来部署所述第一应用。
[0182]图10所示为本发明的一个实施例中的调度器70,用于管理第一云、第二云和第三云。所述调度器70包括输入/输出电路(I/O circuit) 701、处理器(processor) 702和存储器(memory) 703,存储器703中存储有可被处理器702执行的程序或指令
[0183]输入/输出电路701用于接收第一云的云控制器发送的针对第一应用的应用部署请求;在收到所述应用部署请求后,输入/输出电路701还用于向第二云的云控制器发送第一查询消息和第二查询消息。所述第一查询消息包括所述第一应用所需的计算能力的信息,所述第一查询消息用于查询第二云中具有所述计算能力的计算单元的标识信息,所述第一应用所需的计算能力为第一计算能力。所述第二查询消息包括所述第一计算能力的信息,所述第二查询消息用于查询第三云中具有所述第一计算能力的计算单元的标识信息。
[0184]可选地,所述第一计算能力的信息包括中央处理器CPU主频、内存容量、网络带宽信息和编程语言运行环境信息中的任意一个或多个。
[0185]输入/输出电路701执行的上述操作可以是在处理器702的控制下完成的,也可以是由输入/输出电路701在其他的控制电路的控制下完成的,例如是在输入/输出电路701内部的控制电路下完成的。
[0186]读取了所述程序或指令的处理器702从通过所述第一查询消息和第二查询消息查询到的具有所述第一计算能力的至少一个计算单元中确定目标计算单元。
[0187]所述通过所述第一查询消息和第二查询消息查询到的具有所述第一计算能力的计算单元可能仅是一个,也可能是一个以上。
[0188]可选地,当所述查询到的具有所述第一计算能力的计算单元仅是一个时,那么这唯一的计算单元就是所述目标计算单元。
[0189]可选地,当所述查询到的具有所述第一计算能力的计算单元是一个以上时,所述目标计算单元为:所述具有所述第一计算能力的一个以上计算单元中到请求所述第一应用的用户终端的距离最短的计算单元。可选地,所述距离包括物理距离、网络距离或权重距离。
[0190]可选地,当所述查询到的具有所述第一计算能力的计算单元是一个以上时,所述目标计算单元也可以是所述调度器从所述查询到的具有所述第一计算能力的计算单元随机选取的计算单元。[0191]物理距离是指根据两个物理设备各自的物理位置而确定的两个物理设备之间的距离。举例来说,所述物理位置可以是经纬度坐标。
[0192]网络距离是指两个物理设备之间的转发跳数或者一个报文在两个物理设备之间的传输时间。
[0193]权重距离是指物理距离与权重系数的乘积,或,网络距离与权重系数的乘积。
[0194]在确定目标计算单元安装有所述第一应用所需的运行库后之后,处理器702通过输入/输出电路701,将所述第一应用部署至所述目标计算单元中。
[0195]具体地,处理器702通过输入/输出电路701向所述目标计算单元对应的云控制器发送运行库查询消息,查询所述目标计算单元是否安装有所述第一应用所需的运行库。可选地,当确定所述目标计算单元没有安装有所述运行库后,通知所述目标计算单元安装所述运行库;在所述目标计算单元完成所述运行库的安装后,将所述第一应用部署至所述目标计算单元中。可选地,当确定所述目标计算单元安装有所述运行库后,将所述第一应用部署至所述目标计算单元中。
[0196]在调度器70中,处理器702根据所述程序或指令,与输入/输出电路701相配合,执行了与图2、图4、图7、图8和图9所对应的每个实施例中的调度器的全部操作。
[0197]由本实施例中的内容可知,调度器先从第二云和第三云中确定具有第一应用所需的计算能力的计算单元,然后再从确定的计算单元中确定目标计算单元,并在目标计算单元安装有运行库的情况下将第一云中的第一应用部署至所述目标计算单元,在包括多个云的网络中确定出一个合适的云来部署所述第一应用。
[0198]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0199]以上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
【权利要求】
1.一种部署应用的方法,其特征在于,包括: 调度器接收第一云的云控制器发送的针对第一应用的应用部署请求; 所述调度器在收到所述应用部署请求后,向第二云的云控制器发送第一查询消息,所述第一查询消息包括所述第一应用所需的计算能力的信息,所述第一查询消息用于查询所述第二云中具有所述计算能力的计算单元的标识信息,所述第一应用所需的计算能力为第一计算能力; 所述调度器在收到所述应用部署请求后,向第三云的云控制器发送第二查询消息,所述第二查询消息包括所述第一计算能力的信息,所述第二查询消息用于查询所述第三云中具有所述第一计算能力的计算单元的标识信息; 所述调度器从通过所述第一查询消息和第二查询消息查询到的具有所述第一计算能力的至少一个计算单元中确定目标计算单元; 所述调度器在确定所述目标计算单元安装有所述第一应用所需的运行库后,将所述第一应用部署至所述目标计算单元中,所述调度器用于管理所述第一云、所述第二云和所述 第三云
2.根据权利要求1所述的方法,其特征在于,所述调度器在确定所述目标计算单元安装有所述第一应用所需的运行库后,将所述第一应用部署至所述目标计算单元中包括: 所述调度器向所述目标计算单元对应的云控制器发送运行库查询消息,查询所述目标计算单元是否安装有所述第一应用所需的运行库; 当确定所述目标计算单元没有安装有所述运行库后,通知所述目标计算单元安装所述运行库; 在所述目标计算单元完成所述运行库的安装后,所述调度器将所述第一应用部署至所述目标计算单元中。
3.根据权利要求1所述的方法,其特征在于,所述调度器在确定所述目标计算单元安装有所述第一应用所需的运行库后,将所述第一应用部署至所述目标计算单元中包括: 所述调度器向所述目标计算单元对应的云控制器发送运行库查询消息,查询所述目标计算单元是否安装有所述第一应用所需的运行库; 当确定所述目标计算单元安装有所述运行库后,将所述第一应用部署至所述目标计算单元中。
4.根据权利要求1、2或3所述的方法,其特征在于,所述第一计算能力的信息包括中央处理器CPU主频、内存容量、网络带宽信息和编程语言运行环境信息中的任意一个或多个。
5.根据权利要求1至4中任一项所述的方法,其特征在于,当所述至少一个计算单元为一个以上计算单元时,所述目标计算单元为: 所述具有所述第一计算能力的一个以上计算单元中到请求所述第一应用的用户终端的距离最短的计算单元。
6.根据权利要求5所述的方法,其特征在于,所述距离包括物理距离、网络距离或权重距离。
7.根据权利要求1至6中的任一项所述的方法,其特征在于, 所述第一云为第一中心云,所述第二云为第一前端云,所述第三云为第二前端云; 或,所述第一云为第一前端云,所述第二云为第一中心云,所述第三云为第二中心云; 或, 所述第一云为第一前端云,所述第二云为第二前端云,所述第三云为第三前端云。
8.一种调度器,其特征在于,用于管理第一云、第二云和第三云,所述调度器包括: 接收单元,用于接收所述第一云的云控制器发送的针对第一应用的应用部署请求; 第一发送单元,用于在所述接收单元收到所述应用部署请求后,向所述第二云的云控制器发送第一查询消息,所述第一查询消息包括所述第一应用所需的计算能力的信息,所述第一查询消息用于查询所述第二云中具有所述计算能力的计算单元的标识信息,所述第一应用所需的计算能力为第一计算能力; 第二发送单元,用于在所述接收单元收到所述应用部署请求后,向所述第三云的云控制器发送第二查询消息,所述第二查询消息包括所述第一计算能力的信息,所述第二查询消息用于查询所述第三云中具有所述第一计算能力的计算单元的标识信息; 确定单元,用于从通过所述第一查询消息和第二查询消息查询到的具有所述第一计算能力的至少一个计算单元中确定目标计算单元; 部署单元,用于在确定所述目标计算单元安装有所述第一应用所需的运行库后,将所述第一应用部署至所述目标计算单元中。
9.根据权利要求8所述的调度器,其特征在于,所述部署单元具体用于: 向所述目标计算单元对应的云控制器发送运行库查询消息,查询所述目标计算单元是否安装有所述第一应用所需的运行库; 当确定所述目标计算单元没有安装有所述运行库后,通知所述目标计算单元安装所述运行库; 在所述目标计算单元完成所述运行库的安装后,将所述第一应用部署至所述目标计算单元中。
10.根据权利要求8所述的调度器,其特征在于,所述部署单元具体用于: 向所述目标计算单元对应的云控制器发送运行库查询消息,查询所述目标计算单元是否安装有所述第一应用所需的运行库; 当确定所述目标计算单元安装有所述运行库后,将所述第一应用部署至所述目标计算单元中。
11.根据权利要求8、9或10所述的调度器,其特征在于,所述第一计算能力的信息包括中央处理器CPU主频、内存容量、网络带宽信息和编程语言运行环境信息中的任意一个或多个。
12.根据权利要求8至11中任一项所述的调度器,其特征在于,当所述至少一个计算单元为一个以上计算单元时,所述目标计算单元为: 所述具有所述第一计算能力的一个以上计算单元中到请求所述第一应用的用户终端的距离最短的计算单元。
13.根据权利要求12所述的调度器,其特征在于,所述距离包括物理距离、网络距离或权重距离。
14.根据权利要求8至13中的任一项所述的调度器,其特征在于, 所述第一云为第一中心云,所述第二云为第一前端云,所述第三云为第二前端云;或,所述第一云为第一前端云,所述第二云为第一中心云,所述第三云为第二中心云;或, 所述第一云为第一前端云,所述第二云为第二前端云,所述第三云为第三前端云。
【文档编号】H04L29/08GK103916417SQ201210592212
【公开日】2014年7月9日 申请日期:2012年12月31日 优先权日:2012年12月31日
【发明者】陈建, 魏含宇, 周洪 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1