一种应用程序亲和性判断方法及相关应用程序与流程

文档序号:14911026发布日期:2018-07-10 23:25阅读:274来源:国知局

本发明涉及互联网领域,具体涉及一种应用程序亲和性判断方法及相关应用程序。



背景技术:

网络功能虚拟化(Network Function Virtualization,NFV)系统通过软硬件解耦及功能抽象,使网络设备功能不再依赖于专用硬件,资源可以充分灵活共享,实现新业务的快速开发和部署,并基于实际业务需求进行自动部署、弹性伸缩、故障隔离和自愈等。NFV的主要思想是通过基于行业标准的服务器、存储器和网络设备,来取代私有专用的网元设备,该种思想架构下的各网元设备将共享同一物理服务器。

反亲和性是指当利用NFV系统处理业务时,为了提高业务可靠性,处理同一业务的虚拟机需要分配在不同的物理服务器上以避免虚拟机故障引起业务损失。目前,在NFV系统中可通过反亲和性配置来保证多台虚拟机分别部署在不同的服务器上,该反亲和性配置可以通过管理和编排系统(Management and Orchestration,MANO)根据虚拟网络功能描述符(Virtualised Network Function Descriptor,VNFD)文件来实现,该VNFD文件主要通过人工编写来实现。也即通过人为判断不同应用程序之间是否具有反亲和性,以完成对VNFD文件的编写,从而导致应用程序的反亲和性判断存在较大主观因素。当VNFD编写人员对业务不熟悉时,应用程序间的反亲和性判断失误,导致编写的VNFD文件不正确,从而使得该NFV系统存在可靠性隐患。



技术实现要素:

本发明实施例提供了一种应用程序亲和性判断方法及相关应用程序,以期可以准确地判断应用程序的反亲和性应用程序,提高应用程序可靠性。

第一方面,本发明实施例提供了一种应用程序亲和性判断方法,该方法应用于网络功能虚拟化系统,该网络功能虚拟化系统包括第一应用程序和第二应用程序,该方法包括:当第一应用程序启动时,第一应用程序获取第一应用程序的反亲和性信息,该反亲和性信息包括第一应用程序的硬件服务器标识信息以及第一应用程序的业务类型标识信息,该硬件服务器标识信息用于标识第一应用程序所部署的硬件服务器,该业务类型标识信息用于标识第一应用程序所承载业务的业务类型;然后第一应用程序再向第一应用程序所在网元中的第二应用程序发送反亲和性探测消息,该反亲和性探测消息用于探测第二应用程序是否为第一应用程序的反亲和性应用程序,该反亲和性探测消息包括反亲和性信息,该第一应用程序的反亲和性应用程序所承载业务的业务类型与第一应用程序所承载业务的业务类型相同,且第一应用程序的反亲和性应用程序所部署的硬件服务器与第一应用程序所部署的硬件服务器相同;最后第一应用程序接收第二应用程序返回的反亲和性探测反馈消息并退出启动,其中,该反亲和性探测反馈消息指示第二应用程序为第一应用程序的反亲和性应用程序。

本发明实施例提供的方案中,在第一应用程序启动时,第一应用程序通过向第一应用程序所在网元内的其它应用程序发送反亲和性探测消息来确定该网元内是否存在第一应用程序的反亲和性应用程序,然后在第一应用程序所在网元内存在第一应用程序的反亲和性应用程序时退出启动,以提高应用程序可靠性。

在一个可能的设计中,所述反亲和性探测消息还包括反亲和性标识,所述反亲和性标识用于指示所述第二应用程序判断所述第二应用程序是否为所述第一应用程序的反亲和性应用程序。从而当该反亲和性标识指示该第一应用程序需要进行反亲和性判断时,第一应用程序再判断硬件服务器上是否部署有第一应用程序的反亲和性应用,使应用程序部署更为灵活。

在一个可能的设计中,该网络功能虚拟化系统还包括硬件层、管理程序层以及操作系统层,该管理程序层部署有硬件监控模块,该操作系统层部署有统一硬件接口模块,该第一应用程序与操作系统层通信,该操作系统层与管理程序层通信,该管理程序层与硬件层通信,该硬件层包括硬件服务器;此时,第一应用程序获取第一应用程序的硬件服务器标识信息,具体为:第一应用程序通过统一硬件接口模块以及硬件监控模块,获取第一应用程序的硬件服务器标识信息。从而可以实现在应用程序层获取硬件服务器的硬件服务器标识信息。

在一个示例中,该硬件服务器标识信息包括以下至少一种:硬件监控模块和统一硬件接口模块之间通过套接字连接,在该套接字连接中,统一硬件接口模块是服务端,同时统一硬件接口模块作为服务端为应用程序提供连接和接口来连接和调用获取硬件服务器的硬件服务器硬件信息。通过上述标识信息中的一种或多种,可以准确地对硬件服务器进行唯一标识。

第二方面,本发明实施例提供一种应用程序亲和性判断方法,该方法应用于网络功能虚拟化系统,该网络功能虚拟化系统包括第一应用程序和第二应用程序,该方法包括:第二应用程序接收第一应用程序发送的反亲和性探测消息,该反亲和性探测消息用于探测第一应用程序所在网元中的第二应用程序是否为第一应用程序的反亲和性应用程序,该反亲和性探测消息包括第一应用程序的硬件服务器标识信息以及第一应用程序的业务类型标识信息,该硬件服务器标识信息用于标识第一应用程序所部署的硬件服务器,该业务类型标识信息用于标识第一应用程序所承载业务的业务类型;然后第二应用程序再根据所述反亲和性探测消息判断第二应用程序是否为第一应用程序的反亲和性应用程序,该第一应用程序的反亲和性应用程序所承载业务的业务类型与第一应用程序所承载业务的业务类型相同,且第一应用程序的反亲和性应用程序所部署的硬件服务器与第一应用程序所部署的硬件服务器相同;在第二应用程序确定第二应用程序为第一应用程序的反亲和性应用程序时,第二应用程序再向第一应用程序发送反亲和性探测消息反馈消息,该反亲和性探测消息反馈消息指示第二应用程序为第一应用程序的反亲和性应用程序。

本发明实施例提供的方案中,在第二应用程序在接收到第一应用程序的反亲和性探测消息时,通过判断第二应用程序是否为第一应用程序的反亲和性应用,以在第二应用程序为第一应用程序的反亲和性应用时指示第一应用程序退出启动,以提高应用程序可靠性。

在一个可能的设计中,第二应用程序根据反亲和性探测消息判断第二应用程序是否为第一应用程序的反亲和性应用程序,具体为:第二应用程序判断第一应用程序的业务类型标识信息与第二应用程序的业务类型标识信息是否具有唯一映射关系;然后在第一应用程序的业务类型标识信息与第二应用程序的业务类型标识信息具有唯一映射关系时,第二应用程序判断第二应用程序的硬件服务器标识信息与第一应用程序的硬件服务器标识信息是否具有唯一映射关系,以在第二应用程序的硬件服务器标识信息与第一应用程序的硬件服务器标识信息具有唯一映射关系时,确定第二应用程序为第一应用程序的反亲和性应用程序。通过确定第一应用程序的业务类型标识信息与第二应用程序的业务类型标识信息具有唯一映射关系后,再判断第一应用程序的硬件服务器标识信息与第二应用程序的硬件服务器标识信息是否具有唯一映射关系,提高反亲和性的判断效率。

在一个可能的设计中,该反亲和性探测消息还包括反亲和性标识,该反亲和性标识用于指示第二应用程序判断第二应用程序是否为第一应用程序的反亲和性应用程序;第二应用程序根据反亲和性探测消息判断第二应用程序是否为第一应用程序的反亲和性应用程序,具体为:在反亲和性探测消息包括反亲和性标识时,第二应用程序根据反亲和性探测消息判断第二应用程序是否为第一应用程序的反亲和性应用程序。使应用程序部署更为灵活

第三方面,本发明实施例提供第一应用程序,该第一应用程序应用于网络功能虚拟化系统,所述网络功能虚拟化系统包括第一应用程序和第二应用程序,该第一应用程序具有实现上述第一方面的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

第四方面,本发明实施例提供一种第一应用程序,该第一应用程序包括处理器、接收器和发射器,所述处理器被配置为支持第一应用程序执行上述方法中相应的功能。所述接收器和发射器用于支持第一应用程序与第二应用程序之间的通信。进一步的,第一应用程序还可以包括存储器,所述存储器用于与处理器耦合,其保存第一应用程序必要的程序指令和数据。

第五方面,本发明实施例提供一种计算机存储介质,用于储存为上述用于第三方面所述的第一应用程序所用的计算机软件指令,其包含用于执行上述方面所设计的程序。

第六方面,本发明实施例提供第二应用程序,该第二应用程序应用于网络功能虚拟化系统,所述网络功能虚拟化系统包括第一应用程序和第二应用程序,该第二应用程序具有实现上述第二方面的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

第七方面,本发明实施例提供一种第二应用程序,该第二应用程序包括处理器、接收器和发射器,所述处理器被配置为支持第二应用程序执行上述方法中相应的功能。所述接收器和发射器用于支持第二应用程序与第一应用程序之间的通信。进一步的,第二应用程序还可以包括存储器,所述存储器用于与处理器耦合,其保存第二应用程序必要的程序指令和数据。

第八方面,本发明实施例提供一种计算机存储介质,用于储存为上述用于第六方面所述的第二应用程序所用的计算机软件指令,其包含用于执行上述方面所设计的程序。

相较于现有技术,本发明实施例的方案中,在第一应用程序启动时,第一应用程序通过向第一应用程序所在网元内的其它应用程序发送反亲和性探测消息来确定该网元内是否存在第一应用程序的反亲和性应用程序,然后在第一应用程序所在网元内存在第一应用程序的反亲和性应用程序时退出启动,以提高应用程序可靠性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种网络功能虚拟化系统的架构示意图;

图2是本发明实施例提供的另一种网络功能虚拟化系统的架构示意图;

图3是本发明实施例提供的又一种网络功能虚拟化系统的架构示意图;

图4是本发明实施例提供的一种应用程序亲和性判断方法的流程示意图;

图5是本发明装置实施例提供的一种第一应用程序的功能单元框图;

图6是本发明实施例提供的另一种第一应用程序的结构示意图;

图7是本发明装置实施例提供的一种第二应用程序的功能单元框图;

图8是本发明实施例提供的另一种第二应用程序的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

为了更好的理解本发明技术方案,下面先对网络功能虚拟化系统的架构进行简要描述。

首先参见图1和图2,图1是本发明实施例提供的一种网络功能虚拟化系统100的架构示意图,图2是本发明实施例提供的另一种网络功能虚拟化系统200的架构示意图。图1和图2是本发明实施例提供的两种主要的NFV架构,其中,图1为裸机型架构,图2为主机型架构。如图1所示,该网络功能虚拟化系统包括硬件层110,管理程序(Hyperviser)层120,操作系统(OperSystem,OS)层130、应用程序(application)层140,硬件监控(Hardware Monitor,HDM)模块150以及统一硬件接口(Uniform hardware interface,UHI)模块160,其中,操作系统层130和各个应用程序构成虚拟机(Virtual Machine,VM)。

其中,硬件层110为虚拟化环境运行的硬件平台,该硬件层110可以由一台或多台服务器组成;管理程序120直接安装在硬件计算资源上,用于管理和调用硬件资源,不需要底层操作系统,也即可以理解管理程序为一个很薄的操作系统;操作系统层130包括一个或多个操作系统,是运行在管理程序上的访问操作系统(Guest OS);应用层140包括一个或多个应用程序模块,是运行在访问操作系统上的应用,为客户提供服务,硬件监控模块150是部署在管理程序层的硬件管理模块,用于获取硬件层中的服务器的硬件信息,例如服务器中物理网卡的物理(Medium Access Control,MAC)地址,中央处理器(Central Processing Unit,CPU)型号等;统一硬件接口模块160是部署在访问操作系统的统一硬件接口模块,用于同部署在管理程序层上的硬件监控模块进行通信,获取硬件层中服务器的硬件信息,同时对上层的应用程序应用提供接口,以便应用程序模块获取硬件信息。

如图2所示,该网络功能虚拟化系统包括硬件层210,宿主机(host)层220,管理程序230,访问操作系统240、应用程序层250、硬件监控模块260以及统一硬件接口模块270。其中,图2所示的网络功能虚拟化系统架构与图1所示的网络功能虚拟化系统架构不同之处在于,在图2所示的网络功能虚拟化系统架构中,通过增加宿主机层220,使管理程序运行在基础操作系统上,构建出一整套虚拟硬件平台,使用者根据需要安装新的操作系统和应用软件,底层和上层的操作系统可以完全无关。

在本发明实施例中,不管是基于图1还是基于图2的架构,运行在操作系统之上的应用程序实际为基于硬件服务器运行的,不同的应用程序可能运行在不同的硬件服务器上,也可能运行在同一硬件服务器之上。而对于应用程序来说,在网络功能虚拟化系统中,将根据应用程序的亲和性进行配置在相同或者不同的硬件服务器上。分配到同一个宿主机上的虚拟机称之为具有亲和性而分配到不同宿主机上的虚拟机则称之为反亲和性,不同的宿主机和硬件服务器具有唯一对应关系。反亲和性主要是为了提高可靠性,处理同一种业务的虚拟机需要分配在不同的宿主机上避免虚拟机故障引起业务损失。另外虚拟机备份时,当一个虚拟机故障时,备份虚拟机接手原来故障虚拟机的业务,为了避免宿主机故障导致的主备虚拟机均不可用,主备虚拟机需要分配在不同的宿主机。

为了说明现有技术中对应用程序的部署方案,首先参见图3,图3是本发明实施例提供的又一种网络功能虚拟化系统300的架构示意图。在图3所示的网络功能虚拟化系统中,包括网络功能虚拟化基础设施层(NFV Infrastructure,简称NFVI)310、虚拟网络功能(Virtual Network Functions,VNFS)320、操作/业务支持系统(Operation Support System/Business Support System,OSS/BSS)330以及网络功能虚拟化管理和编排系统(NFV Management and Orchestration,NFV MANO)340。

其中,虚拟化基础设施层310包括硬件资源层,虚拟化层以及虚拟资源层,VNFS320包括多个VNF以及多个网元管理器(Element Manager,EM),可以为用户提供不同的虚拟网络功能。相对于图1或图2所示的架构,可以认为图1或图2中的应用程序用于承载图3中的VNF。

其中,NFV MANO包括网络功能虚拟化编排器(NFV Orchestrator,NFVO)、一个或多个虚拟化网络功能管理器(VNF Manager,VNFM)和虚拟化基础设施管理器(Virtualized Infrastructure Manager,VIM),网络服务目录(Network Service Catalogue,NS Catalogue),用于负责对整个NFVI资源的管理和编排,负责业务网络和NFVI资源的映射和关联,负责OSS业务资源流程的实施等,MANO通过解析产品提供的虚拟网络功能描述符(VNF Descriptor,VNFD)文件实现虚拟机的创建、网元的安装、亲和及反亲和的配置、系统扩缩容等操作。

从而现有技术中,为了实现对应用程序的反亲和性的配置,可以基于图3所示的网络功能虚拟化系统,通过人工编写VNFD文件来实现,而人工编写VNFD文件的可靠性由于与VNFD编写人员相关联,所以存在较大主观因素,当VNFD编写人员对业务不熟悉时,可能导致编写的VNFD文件不正确,从而使得该网络功能虚拟化系统存在可靠性隐患。针对上述问题,本发明实施例提供了一种虚拟化应用配置方法,以通过应用程序自身来确定应用的反亲和性,提高应用反亲和性的配置准确性。以下进行详细说明。

参见图4,图4是本发明实施例提供的一种应用程序亲和性判断方法的流程示意图,详述如下:

步骤S401、当所述第一应用程序启动时,所述第一应用程序获取所述第一应用程序的反亲和性信息,所述反亲和性信息包括所述第一应用程序的硬件服务器标识信息以及所述第一应用程序的业务类型标识信息,所述硬件服务器标识信息用于标识所述第一应用程序所部署的硬件服务器,所述业务类型标识信息用于标识所述第一应用程序所承载业务的业务类型。

在本发明实施例中,在第一应用程序启动时,由虚拟机调度机制确定启动的硬件服务器。

可选地,在本发明的一个实施例中,第一应用程序部署在虚拟机上的时候会和操作系统上的统一硬件接口建立连接,当第一应用程序启动时,第一应用程序通过统一硬件接口模块以及所述硬件监控模块,获取所述第一应用程序的硬件服务器标识信息。

具体地,硬件监控模块通过操作系统提供的接口来获取硬件层对应的硬件服务器标识信息,然后硬件监控模块再将该硬件服务器标识信息发送给统一硬件接口模块,然后第一应用程序通过统一硬件接口模块获取硬件服务器标识信息。

其中,硬件监控模块和统一硬件接口模块之间通过套接字连接,在该套接字连接中,统一硬件接口模块是服务端,同时统一硬件接口模块作为服务端为应用程序提供连接和接口来连接和调用获取硬件服务器的硬件服务器硬件信息。

可选地,在本发明的一个实施例中,该硬件服务器标识信息包括以下至少一种:

硬件服务器的物理网卡的物理地址,硬件服务器的CPU型号,硬件服务器的基本输入输出系统(basic input output system,BISO)、硬件服务器的主板标识(identification,ID),硬件服务器的的处理器标识,硬件服务器的内存标识,硬件服务器的缓存标识以及硬件服务器的系统标识。

在本发明实施例中,由于对于第一应用程序来说,可以用反亲和性来配置相同业务类型的应用程序部署在不同的硬件服务器上,所以通过业务类型标识以及硬件服务器标识信息则选择出来第一应用程序的反亲和应用。

可选地,在本发明的一些实施例中,该反亲和性信息还可以根据实际应用部署需求选择包括其它标识信息。

具体地,在本发明的一个实施例中,第一应用程序在启动阶段可以从数据库中获取该反亲和性信息,例如该第一应用程序的业务类型标识。

步骤S402、所述第一应用程序向所述第一应用程序所在网元中的第二应用程序发送反亲和性探测消息。所述第二应用程序接收第一应用程序发送的反亲和性探测消息。

其中,所述反亲和性探测消息用于探测所述第二应用程序是否为所述第一应用程序的反亲和性应用程序,所述反亲和性探测消息包括所述反亲和性信息。

可以理解,在本发明实施例中,为了使同一业务类型的应用程序部署在不同的硬件服务器上,所以可以确定第一应用程序的反亲和性应用程序的所承载业务的业务类型以及所部署的硬件服务器,与第二应用程序均相同。从而当同一网元中已经启动了第一应用程序的反亲和性应用程序时,则第一应用程序不再部署在该硬件服务器上。例如,若第一应用程序与第二应用程序为主备部署的两个应用程序,则该主备部署的应用程序需要分别部署在不同的物理服务器上,所以通过该方法可以确定该主备部署的应用程序部署在不同的物理硬件服务器上,提高应用的可靠性。

可选地,在本发明的一个实施例中,所述反亲和性探测消息还包括反亲和性标识,所述反亲和性标识用于指示所述第二应用程序判断所述第二应用程序是否为所述第一应用程序的反亲和性应用程序。

可以理解,通过在反亲和性探测消息中携带反亲和性标识,从而当该反亲和性标识指示该第一应用程序需要进行反亲和性判断时,第一应用程序再判断硬件服务器上是否部署有第一应用程序的反亲和性应用。

可选地,在本发明的另一个实施例中,若该反亲和性标识指示第一应用程序不需要进行反亲和性部署时,该第一应用程序不再进行反亲和性判断,也即不再判断该硬件服务器标识信息对应的硬件服务器上是否部署有第一应用程序的反亲和性第二应用程序。

可以理解,通过在反亲和性信息中携带反亲和性标识来指示第一应用程序进行反亲和性判断或不进行反亲和性判断,使应用程序部署更为灵活。

可选地,在本发明的一个实施例中,第一应用程序可以向第一应用程序所在网元内的所有应用程序进行广播,该广播消息即为反亲和性探测消息。此时,该第一应用程序所在网元内的应用程序中的任意一个即可以认为是第二应用程序。

步骤S403、所述第二应用程序根据所述反亲和性探测消息判断所述第二应用程序是否为所述第一应用程序的反亲和性应用程序。

其中,所述第一应用程序的反亲和性应用程序所承载业务的业务类型与所述第一应用程序所承载业务的业务类型相同,且所述第一应用程序的反亲和性应用程序所部署的硬件服务器与所述第一应用程序所部署的硬件服务器相同。

具体地,在本发明的一个实施例中,第二应用程序的业务类型标识信息指示第二应用程序所承载业务的业务类型,与第一应用程序的业务类型标识信息指示第一应用程序所承载的业务类型相同时,且第二应用程序的硬件服务器标识信息指示第二应用程序所部署的硬件服务器,与第一应用程序的硬件服务器标识信息指示第一应用程序所部署的硬件服务器相同时,第二应用程序即为第一应用程序的反亲和性应用程序。

可选地,在本发明的一个实施例中,所述反亲和性探测消息还包括反亲和性标识,所述反亲和性标识用于指示所述第二应用程序判断所述第二应用程序是否为所述第一应用程序的反亲和性应用程序;

所述第二应用程序根据所述反亲和性探测消息判断所述第二应用程序是否为所述第一应用程序的反亲和性应用程序,具体为:

在所述反亲和性探测消息包括所述反亲和性标识时,所述第二应用程序根据所述反亲和性探测消息判断所述第二应用程序是否为所述第一应用程序的反亲和性应用程序。

可以理解,当需要通过一个反亲和性标识来指示第二应用程序是否进行反亲和性判断时,则此时只有在反亲和性探测消息中包括该反亲和性标识时,第二应用程序才判断第二应用程序是否为第一应用程序的反亲和性应用程序,使得反亲和性的判断更为灵活。

可选地,在本发明的一个实施例中,所述第二应用程序根据所述反亲和性探测消息判断所述第二应用程序是否为所述第一应用程序的反亲和性应用程序,具体为:

所述第二应用程序判断所述第一应用程序的业务类型标识与所述第二应用程序的业务类型标识信息是否具有唯一映射关系;

在所述第一应用程序的业务类型标识信息与所述第二应用程序的业务类型标识信息具有唯一映射关系时,所述第二应用程序判断所述第二应用程序的硬件服务器标识信息与所述第一应用程序的硬件服务器标识信息是否具有唯一映射关系,以在所述第二应用程序的硬件服务器标识信息与所述第一应用程序的硬件服务器标识信息具有唯一映射关系时,确定所述第二应用程序为所述第一应用程序的反亲和性应用程序。

其中,第一应用程序的业务类型标识信息与所述第二应用程序的业务类型标识信息具有唯一映射关系,是指第一应用程序的业务类型标识信息与第二应用程序的业务类型标识信息均能映射至同一业务类型,也即用于指示同一业务类型;第二应用程序的硬件服务器标识信息与所述第一应用程序的硬件服务器标识信息具有唯一映射关系,是指第二应用程序的硬件服务器标识信息与第一应用程序的硬件服务器标识信息均能映射至同一硬件服务器,也即均用于指示同一硬件服务器。

需要说明,在本发明的一个实施例中,对于同一类型业务来说,可以用相同的业务类型标识信息来进行标识,也可以用不同的业务类型标识信息来进行标识,此时该不同的业务类型标识信息均能唯一映射至同一业务类型上。

可选地,在本发明的另一个实施例中,在所述第一应用程序的业务类型标识和第二应用程序的业务类型标识不具有唯一映射关系时,或者第一应用程序的硬件服务器标识信息和第二应用程序的硬件标识信息不具有唯一映射关系时,或者第一应用程序的业务类型标识以及硬件标识信息,与第二应用程序的业务类型标识以及硬件服务器标识信息均不具有唯一映射关系时,确定第二应用程序不是第一应用程序的反亲和性应用程序。

可以理解,由于对于不同的应用程序来说,只有同一业务类型的应用程序才需要进行反亲和性的部署,所以首先需要判断第二应用程序的业务类型标识信息与第一应用程序的业务类型标识信息是否能映射至同一业务类型,只有当第一应用程序与第二应用程序所承载业务业务类型相同时,再进一步确定第一应用程序的硬件服务器标识信息与第二应用程序的硬件服务器标识信息是否能映射至同一硬件服务器。而如果第二应用程序的业务类型与第一应用程序的业务类型不相同,则说明该第二应用程序肯定不为第一应用程序的反亲和性应用程序,所以不需要再做进一步的判断即可以正常启动该第一应用程序。可提高反亲和性的判断效率。

需要说明,当第一应用程序向部署在第一应用程序所在网元内的所有应用程序发送反亲和性探测消息时,该第二应用程序可以认为是该第一应用程序所在网元内的应用程序中的任一应用程序,也即所有接收到该亲和性探测消息的应用程序均执行上述第二应用程序的动作。

步骤S404、在所述第二应用程序确定所述第二应用程序为所述第一应用程序的反亲和性应用程序时,所述第二应用程序向所述第一应用程序发送反亲和性探测消息反馈消息。

可选地,当所述反亲和性探测消息反馈消息指示所述第二应用程序为所述第一应用程序的反亲和性应用程序,执行步骤S405、第一应用程序接收所述第二应用程序返回的反亲和性探测消息反馈消息并退出启动。

举例说明,在本发明的一个示例中,若第一应用程序和第二应用程序为处理同一业务类型的主备应用程序,此时若第一应用程序和第二应用程序部署均部署在同一硬件服务器上,由在第一应用程序启动时,第二应用程序指示第一应用程序退出启动,以保障主备应用程序的运行可靠性。

具体地,此时第一应用程序在接收到该反亲和性探测消息反馈消息指示存在第一应用程序的反亲和性应用程序时,第一应用程序向用户上报告警信息并退出启动。

可选地,在本发明的另一个实施例中,当第二应用程序确定第二应用程序不是第一应用程序的反亲和性应用程序时,此时该反亲和性探测消息反馈消息将指示第二应用程序不为第一应用程序的反亲和性应用程序。

可选地,在本发明的一个实施例中,当第一应用程序接收到第一应用程序所在网元内的所有应用程序的反亲和性探测消息反馈消息,并且所有应用程序返回的反亲和性探测消息反馈消息均指示该应用程序不为第一应用程序的反亲和性应用程序时,也即第一应用程序所在网元内不存在第一应用程序的反亲和性应用程序,故此时执行步骤S406、该第一应用程序正常启动。

可选地,在本发明的一个实施例中,第一应用程序在向第二应用程序发送反亲和性探测消息时启动一个定时器,例如为3秒,则第一应用程序在该定时器确定的时间内接收到第二应用程序的反亲和性探测消息反馈消息时,则根据反亲和性探测消息反馈消息来确定是否正常启动第一应用程序;而第一应用程序在定时器确定的时间内未接收到全部应用程序的反亲和性探测消息反馈消息时,则忽略未接收到的应用程序发送的反亲和性探测消息反馈消息,只针对已接收到的应用程序返回的反亲和性探测消息反馈消息进行处理。

可以看出,本实施例的方案中,在第一应用程序启动时,第一应用程序通过向第一应用程序所在网元内的其它应用程序发送反亲和性探测消息来确定该网元内是否存在第一应用程序的反亲和性应用程序,然后在第一应用程序所在网元内存在第一应用程序的反亲和性应用程序时退出启动,以提高应用程序可靠性。

请参阅图5,图5是本发明装置实施例提供的一种第一应用程序500的功能单元框图,应用于网络功能虚拟化系统,所述网络功能虚拟化系统包括第一应用程序和第二应用程序。如图5所示,所述第一应用程序500包括获取模块510、发送模块520以及接收模块530。其中:

获取模块510,用于当所述第一应用程序500启动时,获取所述第一应用程序500的反亲和性信息,所述反亲和性信息包括所述第一应用程序500的硬件服务器标识信息以及所述第一应用程序500的业务类型标识信息,所述硬件服务器标识信息用于标识所述第一应用程序500所部署的硬件服务器,所述业务类型标识信息用于标识所述第一应用程序500所承载业务的业务类型;

发送模块520,用于向所述第一应用程序500所在网元中的第二应用程序发送反亲和性探测消息,所述反亲和性探测消息用于探测所述第二应用程序是否为所述第一应用程序500的反亲和性应用程序,所述反亲和性探测消息包括所述反亲和性信息,所述第一应用程序500的反亲和性应用程序所承载业务的业务类型与所述第一应用程序500所承载业务的业务类型相同,且所述第一应用程序500的反亲和性应用程序所部署的硬件服务器与所述第一应用程序500所部署的硬件服务器相同;

接收模块530,用于所述第一应用程序500接收所述第二应用程序返回的反亲和性探测反馈消息并退出启动,所述反亲和性探测反馈消息指示所述第二应用程序为所述第一应用程序500的反亲和性应用程序。

可选地,在本发明的一个实施例中,所述反亲和性探测消息还包括反亲和性标识,所述反亲和性标识用于指示所述第二应用程序判断所述第二应用程序是否为所述第一应用程序500的反亲和性应用程序。

可选地,在本发明的一个实施例中,所述网络功能虚拟化系统还包括硬件层、管理程序(Hypervisor)层以及操作系统(OS)层,所述管理程序层部署有硬件监控(HDM)模块,所述操作系统层部署有统一硬件接口(UHI)模块,所述第一应用程序500与所述操作系统层通信,所述操作系统层与所述管理程序层通信,所述管理程序层与所述硬件层通信,所述硬件层包括所述硬件服务器;

所述获取模块510具体用于:

通过所述统一硬件接口模块以及所述硬件监控模块,获取所述第一应用程序500的硬件服务器标识信息。

可以看出,本实施例的方案中,在第一应用程序500启动时,第一应用程序500通过向第一应用程序500所在网元内的其它应用程序发送反亲和性探测消息来确定该网元内是否存在第一应用程序500的反亲和性应用程序,然后在第一应用程序500所在网元内存在第一应用程序500的反亲和性应用程序时退出启动,以提高应用程序可靠性。

需要注意的是,本发明装置实施例所描述的虚拟网络功能处理装置是以功能单元的形式呈现。这里所使用的术语“单元”应当理解为尽可能最宽的含义,用于实现各个“单元”所描述功能的对象例如可以是集成电路ASIC,单个电路,用于执行一个或多个软件或固件程序的处理器(共享的、专用的或芯片组)和存储器,组合逻辑电路,和/或提供实现上述功能的其他合适的组件。

举例来说,本领域技术人员可以认为该第一应用程序500具体可以是图6所示的第一应用程序实体装置。

请参阅图6,图6是本发明实施例提供的另一种第一应用程序600的结构示意图,应用于网络功能虚拟化系统,所述网络功能虚拟化系统包括第一应用程序和第二应用程序。如图所示,本发明实施例提供的第一应用程序600包括处理器601和存储器602、接收器603、发送器604和总线605,该处理器601、存储器602、接收器603和发送器604通过总线604连接并完成相互间的通信。

所述处理器601用于调用所述存储器602中的可执行程序代码,执行以下操作:

当所述第一应用程序600启动时,获取所述第一应用程序600的反亲和性信息,所述反亲和性信息包括所述第一应用程序600的硬件服务器标识信息以及所述第一应用程序600的业务类型标识信息,所述硬件服务器标识信息用于标识所述第一应用程序600所部署的硬件服务器,所述业务类型标识信息用于标识所述第一应用程序600所承载业务的业务类型;

通过发送器604向所述第一应用程序600所在网元中的第二应用程序发送反亲和性探测消息,所述反亲和性探测消息用于探测所述第二应用程序是否为所述第一应用程序600的反亲和性应用程序,所述反亲和性探测消息包括所述反亲和性信息,所述第一应用程序600的反亲和性应用程序所承载业务的业务类型与所述第一应用程序600所承载业务的业务类型相同,且所述第一应用程序600的反亲和性应用程序所部署的硬件服务器与所述第一应用程序600所部署的硬件服务器相同;

通过接收器603接收所述第二应用程序返回的反亲和性探测反馈消息并退出启动,所述反亲和性探测反馈消息指示所述第二应用程序为所述第一应用程序600的反亲和性应用程序。

可选地,在本发明的一个实施例中,所述反亲和性探测消息还包括反亲和性标识,所述反亲和性标识用于指示所述第二应用程序判断所述第二应用程序是否为所述第一应用程序600的反亲和性应用程序。

可选地,在本发明的一个实施例中,所述网络功能虚拟化系统还包括硬件层、管理程序(Hypervisor)层以及操作系统(OS)层,所述管理程序层部署有硬件监控(HDM)模块,所述操作系统层部署有统一硬件接口(UHI)模块,所述第一应用程序600与所述操作系统层通信,所述操作系统层与所述管理程序层通信,所述管理程序层与所述硬件层通信,所述硬件层包括所述硬件服务器;

所述处理器601获取所述第一应用程序600的硬件服务器标识信息,具体为:

通过所述统一硬件接口模块以及所述硬件监控模块,获取所述第一应用程序600的硬件服务器标识信息。

可以看出,本实施例的方案中,在第一应用程序600启动时,第一应用程序600通过向第一应用程序600所在网元内的其它应用程序发送反亲和性探测消息来确定该网元内是否存在第一应用程序600的反亲和性应用程序,然后在第一应用程序600所在网元内存在第一应用程序600的反亲和性应用程序时退出启动,以提高应用程序可靠性。

需要说明的是,这里的处理器601可以是一个处理器,也可以是多个处理元件的统称。例如,该处理器可以是中央处理器(Central Processing Unit,CPU),也可以是特定集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)。

存储器602可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码或接入网管理设备运行所需要参数、数据等。且存储器502可以包括随机存储器(RAM),也可以包括非易失性存储器(non-volatile memory),例如磁盘存储器,闪存(Flash)等。

总线605可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该总线505可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

前述图5所示的实施例中,各单元功能可以基于图6所示的第一应用程序的结构实现。前述图4所示的实施例中,各步骤方法流程可以基于图6所示的第一应用程序实现。

请参阅图7,图7是本发明装置实施例提供的一种第二应用程序700的功能单元框图,应用于网络功能虚拟化系统,所述网络功能虚拟化系统包括第一应用程序和第二应用程序。如图7所示,所述第二应用程序700包括接收模块710、判断模块720以及发送模块730。其中:

接收模块710,用于接收所述第一应用程序发送的反亲和性探测消息,所述反亲和性探测消息用于探测所述第一应用程序所在网元中的第二应用程序700是否为所述第一应用程序的反亲和性应用程序,所述反亲和性探测消息包括所述第一应用程序的硬件服务器标识信息以及所述第一应用程序的业务类型标识信息,所述硬件服务器标识信息用于标识所述第一应用程序所部署的硬件服务器,所述业务类型标识信息用于标识所述第一应用程序所承载业务的业务类型;

判断模块720,用于根据所述反亲和性探测消息判断所述第二应用程序700是否为所述第一应用程序的反亲和性应用程序,所述第一应用程序的反亲和性应用程序所承载业务的业务类型与所述第一应用程序所承载业务的业务类型相同,且所述第一应用程序的反亲和性应用程序所部署的硬件服务器与所述第一应用程序所部署的硬件服务器相同;

发送模块730,用于在所述第二应用程序700确定所述第二应用程序700为所述第一应用程序的反亲和性应用程序时,向所述第一应用程序发送反亲和性探测消息反馈消息,所述反亲和性探测消息反馈消息指示所述第二应用程序700为所述第一应用程序的反亲和性应用程序。

可选地,在本发明的一个实施例中,所述判断模块720具体用于:

所述第二应用程序700判断所述第一应用程序的业务类型标识信息与所述第二应用程序700的业务类型标识信息是否具有唯一映射关系;

在所述第一应用程序的业务类型标识信息与所述第二应用程序700的业务类型标识信息具有唯一映射关系时,判断所述第二应用程序700的硬件服务器标识信息与所述第一应用程序的硬件服务器标识信息是否具有唯一映射关系,以在所述第二应用程序700的硬件服务器标识信息与所述第一应用程序的硬件服务器标识信息具有唯一映射关系时,确定所述第二应用程序700为所述第一应用程序的反亲和性应用程序。

可选地,在本发明的一个实施例中,所述反亲和性探测消息还包括反亲和性标识,所述反亲和性标识用于指示所述第二应用程序700判断所述第二应用程序700是否为所述第一应用程序的反亲和性应用程序;

所述判断模块720具体用于在所述反亲和性探测消息包括所述反亲和性标识时,根据所述反亲和性探测消息判断所述第二应用程序700是否为所述第一应用程序的反亲和性应用程序。

可以看出,本实施例的方案中,在第二应用程序700在接收到第一应用程序的反亲和性探测消息时,判断第二应用程序700是否为第一应用程序的反亲和性应用,以在第二应用程序700为第一应用程序的反亲和性应用时指示第一应用程序退出启动,以提高应用程序可靠性。

需要注意的是,本发明装置实施例所描述的虚拟网络功能处理装置是以功能单元的形式呈现。这里所使用的术语“单元”应当理解为尽可能最宽的含义,用于实现各个“单元”所描述功能的对象例如可以是集成电路ASIC,单个电路,用于执行一个或多个软件或固件程序的处理器(共享的、专用的或芯片组)和存储器,组合逻辑电路,和/或提供实现上述功能的其他合适的组件。

举例来说,本领域技术人员可以认为该第二应用程序具体可以是图8所示的第一应用程序实体装置。

请参阅图8,图8是本发明实施例提供的另一种第二应用程序800的结构示意图,应用于网络功能虚拟化系统,所述网络功能虚拟化系统包括第一应用程序和第二应用程序。如图所示,本发明实施例提供的第二应用程序800包括处理器801和存储器802、接收器803、发送器804和总线805,该处理器801、存储器802、接收器803和发送器804通过总线804连接并完成相互间的通信。

所述处理器801用于调用所述存储器802中的可执行程序代码,执行以下操作:

通过接收器803接收所述第一应用程序发送的反亲和性探测消息,所述反亲和性探测消息用于探测所述第一应用程序所在网元中的第二应用程序是否为所述第一应用程序的反亲和性应用程序,所述反亲和性探测消息包括所述第一应用程序的硬件服务器标识信息以及所述第一应用程序的业务类型标识信息,所述硬件服务器标识信息用于标识所述第一应用程序所部署的硬件服务器,所述业务类型标识信息用于标识所述第一应用程序所承载业务的业务类型;

根据所述反亲和性探测消息判断所述第二应用程序是否为所述第一应用程序的反亲和性应用程序,所述第一应用程序的反亲和性应用程序所承载业务的业务类型与所述第一应用程序所承载业务的业务类型相同,且所述第一应用程序的反亲和性应用程序所部署的硬件服务器与所述第一应用程序所部署的硬件服务器相同;

在所述第二应用程序确定所述第二应用程序为所述第一应用程序的反亲和性应用程序时,通过发送器804向所述第一应用程序发送反亲和性探测消息反馈消息,所述反亲和性探测消息反馈消息指示所述第二应用程序为所述第一应用程序的反亲和性应用程序。

可选地,在本发明的一个实施例中,所述处理器801根据所述反亲和性探测消息判断所述第二应用程序是否为所述第一应用程序的反亲和性应用程序,具体为:

判断所述第一应用程序的业务类型标识信息与所述第二应用程序的业务类型标识信息是否具有唯一映射关系;

在所述第一应用程序的业务类型标识信息与所述第二应用程序的业务类型标识信息具有唯一映射关系时,判断所述第二应用程序的硬件服务器标识信息与所述第一应用程序的硬件服务器标识信息是否具有唯一映射关系,以在所述第二应用程序的硬件服务器标识信息与所述第一应用程序的硬件服务器标识信息具有唯一映射关系时,确定所述第二应用程序为所述第一应用程序的反亲和性应用程序。

可选地,在本发明的一个实施例中,所述反亲和性探测消息还包括反亲和性标识,所述反亲和性标识用于指示所述第二应用程序判断所述第二应用程序是否为所述第一应用程序的反亲和性应用程序;

所述处理器801根据所述反亲和性探测消息判断所述第二应用程序是否为所述第一应用程序的反亲和性应用程序,具体为:

在所述反亲和性探测消息包括所述反亲和性标识时,根据所述反亲和性探测消息判断所述第二应用程序是否为所述第一应用程序的反亲和性应用程序。

可以看出,本实施例的方案中,在第二应用程序800在接收到第一应用程序的反亲和性探测消息时,判断第二应用程序800是否为第一应用程序的反亲和性应用,以在第二应用程序800为第一应用程序的反亲和性应用时指示第一应用程序退出启动,以提高应用程序可靠性。

需要说明的是,这里的处理器801可以是一个处理器,也可以是多个处理元件的统称。例如,该处理器可以是中央处理器(Central Processing Unit,CPU),也可以是特定集成电路(Application Specific Integrated Circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)。

存储器802可以是一个存储装置,也可以是多个存储元件的统称,且用于存储可执行程序代码或接入网管理设备运行所需要参数、数据等。且存储器502可以包括随机存储器(RAM),也可以包括非易失性存储器(non-volatile memory),例如磁盘存储器,闪存(Flash)等。

总线805可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该总线505可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

前述图7所示的实施例中,各单元功能可以基于图8所示的第二应用程序的结构实现。前述图4所示的实施例中,各步骤方法流程可以基于图8所示的第二应用程序实现。

本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何应用程序亲和性判断方法的部分或全部步骤。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明的各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1