CN105339899A - 用于在软件定义网络中使应用程序集群的方法和控制器 - Google Patents

用于在软件定义网络中使应用程序集群的方法和控制器 Download PDF

Info

Publication number
CN105339899A
CN105339899A CN201380077826.1A CN201380077826A CN105339899A CN 105339899 A CN105339899 A CN 105339899A CN 201380077826 A CN201380077826 A CN 201380077826A CN 105339899 A CN105339899 A CN 105339899A
Authority
CN
China
Prior art keywords
application
controller
sdn
cluster
sdn controller
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.)
Granted
Application number
CN201380077826.1A
Other languages
English (en)
Other versions
CN105339899B (zh
Inventor
哈依姆·珀拉特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105339899A publication Critical patent/CN105339899A/zh
Application granted granted Critical
Publication of CN105339899B publication Critical patent/CN105339899B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2895Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Abstract

本发明涉及一种用于在软件定义网络SDN中使应用程序4集群的方法。所述方法包括在SDN控制器1中创建集群基础设施2。所述集群基础设施2是用于在所述SDN控制器1的不同控制器实例1a与1b之间共享和同步信息的模块。所述方法进一步包括在至少一个应用程序4与所述SDN控制器1之间创建至少一个集群应用编程接口,即集群API?5。通过使用所述至少一个应用程序API?5,可以用所述不同控制器实例1a和1b来注册所述至少一个应用程序4的不同应用程序实例4a和4b。最后,可以使用所述集群基础设施2来同步所有应用程序实例4a和4b。本发明进一步涉及一种用于在所述SDN中使应用程序4集群的SDN控制器1以及一种用于在所述SDN中集群的SDN应用程序4。

Description

用于在软件定义网络中使应用程序集群的方法和控制器
技术领域
本发明涉及用于在软件定义网络(software-definednetwork,SDN)中使应用程序集群的一种方法和一种控制器。所述控制器具体来说是SDN控制器。本发明进一步涉及一种用于集群的SDN应用程序。具体来说,本发明提供一种用于连接和协调SDN控制器和至少一个应用程序的集群机制的方法。
背景技术
在现有技术水平中,SDN是新兴的网络技术,所述技术能够通过将数据面从控制面解耦来简化通信网络。由此,通常通过SDN控制器提供控制面功能。SDN应用程序可以用SDN控制器进行注册,并且可以在SDN控制器上运行。SDN控制器可以进一步提供多个SDN应用程序的服务链,所述服务链接着依次在网络流量上,即,在至少一个数据流上运作。在基本SDN实施方案中,存在仅单个SDN控制器,所述SDN控制器具有注册到其上并且在其上运行的一个或多个SDN应用程序。SDN控制器使用北向接口(northboundinterface,NBI)连接到一个或多个SDN应用程序。
然而,基本SDN实施方案在其需要扩展时造成问题。举例来说,SDN控制器可能需要被分布为多个控制器实例的集群。或者,计算上密集的SDN应用程序需要被分布为多个应用程序实例的集群。当前,现有技术水平提供SDN控制器和SDN应用程序的分布机制,所述机制从彼此断开连接,并且不以任何方式进行协调。
图1a示出在现有技术水平中使用的第一典型方案,其中SDN控制器集群成多个控制器实例。然而,SDN应用程序不与所述SDN控制器集群。因此,多个SDN应用程序中的每一个最多可以在不同控制器实例上运行。此方案尤其使多个应用程序的服务链接极其复杂。
图1b示出在现有技术水平中使用的第二典型方案,其中SDN应用程序集群成多个应用程序实例。然而,SDN应用程序必须仍使用专用的方法,并且必须仍连接到SDN控制器的单个控制器实例。
在现有技术水平中使用的上述方案的问题是控制器不针对应用程序高可用性提供基础设施。高可用性是***设计方法和相关联的服务实施方案,所述高可用性意图确保特定水平的操作性能。具体来说,术语“可用性”是指用户通过通过网络获得服务或者接入网络的能力。如果网络是不可接入的或者不可获得服务,那么应用程序对于用户是不可用的。对于高可用性,网络,并且具体地说网络的应用程序,需要始终可用。
发明内容
鉴于以上缺点和问题,本发明旨在改进现有技术水平。具体来说,本发明的目的是为在SDN中的SDN控制器上运行的应用程序提供分布和高可用性基础设施。具体来说,本发明旨在提高SDN中的应用程序的可用性以及这些应用程序的操作性能。本发明还具有提高SDN控制器的性能的目标。同时,本发明意图将SDN的复杂度保持在最小。
本发明的上述目的通过所附独立权利要求中提供的方案得以实现。本发明的核心理念是提供一种方案以连接SDN控制器和至少一个SDN应用程序的分布(集群)机制并且将SDN控制器的分布(集群)机制协调成不同控制器实例且将至少一个SDN应用程序的的分布(集群)机制协调成不同应用程序实例。在相应从属权利要求中进一步定义本发明的有利的实施方案。根据所要求的方法、所要求的SDN控制器以及所要求的SDN应用程序,可以大幅度改进SDN的作为整体的性能和可用性以及在SDN上提供的服务。
本发明的第一方面提供一种用于在软件定义网络SDN中使应用程序集群的方法,所述方法包括在SDN控制器中创建集群基础设施,其中所述集群基础设施是用于在SDN控制器的不同控制器实例之间共享和同步信息的模块;在至少一个应用程序与SDN控制器之间创建至少一个集群应用编程接口,即集群API;使用至少一个应用程序API用不同控制器实例来注册至少一个应用程序的不同应用程序实例;使用集群基础设施来同步所有应用程序实例。
通过本发明的方法,SDN控制器的和至少一个应用程序的分布机制得以连接并协调。具体来说使用SDN控制器的集群基础设施使得所述至少一个应用程序能够集群和分布。换句话说,应用程序和SDN控制器两者可以同时集群,并且集群后的应用程序实例不得全部连接到同一控制器实例,但是可以分布在不同控制器实例上以用于其到SDN控制器的注册。因此,明显降低服务链接的复杂度。
SDN控制器和至少一个应用程序两者可以举例来说用任何界定的M:N的比率彼此独立地向内扩展和/或向外扩展,其中M和N是1或更大的自然数。向内扩展或向外扩展对应地可以包括在不同控制器实例上运行的不同应用程序实例的自动负载均衡。借助于本发明的方法,提供用于应用程序高可用性的基础设施。
用本发明的方法进一步可能的是多个应用程序各自用不同控制器实例来注册其不同应用程序实例。在此情况下,每个应用程序可以用不同的方式跨不同控制器实例分布。SDN控制器可以自动地均衡在其不同控制器实例上的每个应用程序的负载和/或可以自动地均衡跨其不同控制器实例的多个应用程序的整体负载。
在根据第一方面的方法的第一实施形式中,所述方法进一步包括在SDN控制器中创建状态表,其中使用集群基础设施跨所有控制器实例共享所述状态表;通过至少一个应用程序将其应用程序状态存储于状态表中;使用存储于状态表中的应用程序状态来同步所有应用程序实例。
应用程序状态可以具有不同结构和型式,并且可以包含但不限于例如以下信息:状态机信息、流程表信息、缓冲区内容等。应用程序实例可以共享在共享状态表中的所有应用程序状态并且因此其自身是完全无状态的,或可以通过共享状态表共享状态的仅一部分并且因此是部分无状态的。
在本发明中,至少一个应用程序的状态因此从至少一个应用程序移动到SDN控制器,由此使得SDN控制器能够以简单且高效的方式在其控制器实例上分布多个应用程序实例,并且能够优化多个应用程序实例在其控制器实例上的分布,例如,关于负载均衡。状态表还使得SDN控制器能够执行个别应用程序实例的高效同步,因此保证相应的应用程序的最优性能。状态表还可以允许不同应用程序彼此共享举例来说关于它们的状态的信息,以便避免在不同应用程序之间的干扰和/或支持使用协同作用。当多个应用程序由SDN控制器以服务链形式链接在一起时,在不同应用程序之间的信息共享是特别有利的。在服务链中,应用程序可以在数据流上依次或并行运作。
在根据第一方面的第一实施形式的方法的第二实施形式中,状态表是高速数据存储区和/或非结构化数据存储区。
具体来说,数据存储区优选地是不仅是结构化查询语言(NotonlyStructuredQueryLanguage,NoSQL)数据存储区,例如,键值存储区。
在根据第一方面的第一实施形式的方法的第三实施形式中,状态表是通过至少一个应用程序构造的数据存储区。
在根据由此第一方面或根据第一方面的前述实施形式中的任一个的方法的第四实施形式中,状态表通过至少一个集群API显露给至少一个应用程序。
至少一个集群API为各种应用程序提供标准化接口。因此大幅度简化应用程序开发。至少一个集群API进一步使得至少一个应用程序和SDN控制器能够对应地发现彼此的分布的实例,接入和显露状态表,以简单的方式用不同控制器实例注册不同应用程序实例,并且通过至少一个应用程序使用控制器基础设施,尤其是其到例如云管理***的连接性。通过至少一个集群API,至少一个应用程序可以进一步与SDN控制器协商多实例高可用性。
在根据由此第一方面或根据第一方面的前述实施形式中的任一个的方法的第五实施形式中,创建至少一个集群API的步骤包括向每个应用程序实例并且向每个控制器实例提供集群API。
因此,至少一个应用程序的每个不同应用程序实例可以与不同控制器实例个别地协商其注册,由此尤其简化通过SDN控制器进行的负载均衡。
在根据由此第一方面或根据第一方面的前述实施形式中的任一个的方法的第六实施形式中,所述方法进一步包括使用至少一个集群API通过至少一个应用程序以及通过SDN控制器对应地发现彼此的不同控制器实例和应用程序实例。
在根据第一方面的第六实施形式的方法的第七实施形式中,所述方法进一步包括用控制器实例自动地注册至少一个应用程序的最新发现的应用程序实例,其中在不同控制器实例之间自动地均衡所有应用程序实例的负载。
本发明的方法的上述第六和第七实施形式对应地实现在至少一个应用程序的不同应用程序实例与SDN控制器的不同控制器实例之间的自动发现和自动注册。具体来说,当通过SDN控制器实施另外服务链接时,即,当多个应用程序链接时,可以提高SDN性能。
在根据第一方面的第五实施形式的方法的第八实施形式中,使用至少一个API将应用程序实例的负载传递到SDN控制器。
基于所传递的负载,例如,通过重新分布针对每个应用程序实例的用户或网络调用,或通过重新分布在应用程序实例之间的应用程序共享状态,SDN控制器可以快速且精确地均衡在其不同控制器实例上的不同应用程序实例的负载。
在根据由此第一方面或根据第一方面的前述实施形式中的任一个的方法的第九实施形式中,为了向外扩展至少一个应用程序,所述方法包括通过至少一个应用程序使用至少一个集群API请求SDN控制器创建至少一个新应用程序实例、通过SDN控制器启用新应用程序实例、通过SDN控制器将新应用程序实例注册到至少一个应用程序的现存应用程序实例。
因此,为了视需要向外扩展,例如按计算需求向外扩展,至少一个应用程序仅需要相应地请求SDN控制器启用并且注册所述至少一个应用程序的另一个实例,接着SDN控制器负责应用程序实例整合。因此,应用程序开发者不得对应地对向外扩展进行任何整合考量。可以用相同方式实施应用程序的向内扩展。
在根据第一方面的第九实施形式的方法的第十实施形式中,所述方法进一步包括通过集群基础设施与SDN控制器的或云***的管理***通信以用于动态地添加至少一个新应用程序实例。
至少一个应用程序可以通过至少一个集群API接入SDN控制器的集群基础设施,以便使用到SDN控制器的或云***的管理***的SDN控制器的接口执行和/或请求其自动扩展。
在根据第一方面的第九或第十实施形式的方法的第十一实施形式中,所述方法进一步包括通过SDN控制器将状态表显露给新应用程序实例,使用集群基础设施和存储于状态表中的应用程序状态使所有现存应用程序实例与至少一个应用程序的新应用程序实例同步。
因此可以使新应用程序实例了解现存应用程序实例的所有应用程序状态,并且所述新应用程序实例可以相应地调适这些应用程序状态,以便更简单且高效地整合到***中,即整合到现存应用程序实例组中,并且与现存应用程序实例同步。
在根据第一方面的第十或第十一实施形式的方法的第十二实施形式中,至少一个应用程序使用与管理***通信的SDN控制器的集群基础设施以按需要自动地向内扩展或向外扩展。
至少一个应用程序优选地例如在其计算需求变得太密集时自动地向外扩展,并且例如在需要较少计算资源时为了降低***的复杂度而自动地向内扩展。至少一个应用程序可以独立于SDN控制器的向内扩展或向外扩展而自动地向内扩展或向外扩展。
在根据由此第一方面或根据第一方面的前述实施形式中的任一个的方法的第十三实施形式中,为了向内扩展或向外扩展SDN控制器,所述方法包括创建或删除SDN控制器的新控制器实例,使用集群API用至少一个应用程序的至少一个应用程序实例注册新控制器实例,其中在不同控制器实例之间自动地均衡应用程序实例的负载。
归因于自动负载均衡,在SDN控制器上运行的至少一个应用程序的性能得以提高,而同时***复杂度,即,具体来说控制器实例的数目,可以保持在最小。
本发明的第二方面提供一种用于在软件定义网络SDN中使应用程序集群的SDN控制器,所述SDN控制器包括集群基础设施,所述集群基础设施是用于在SDN控制器的不同控制器实例之间共享和同步信息的模块;至少一个集群应用编程接口,即集群API,用于连接到至少一个应用程序,其中SDN控制器用于使用至少一个应用程序API用不同控制器实例来注册至少一个应用程序的不同应用程序实例,使用集群基础设施来同步所有应用程序实例。
本发明的SDN控制器提供与本发明的上述方法相同的优点。具体来说,通过允许一个或多个应用程序集群成不同应用程序实例,连同其自身集群成不同控制器实例,SDN控制器可以向SDN提供应用程序高可用性。SDN控制器可以在多个其控制器实例上分布不同应用程序实例。
在根据第二方面的SDN控制器的第一实施形式中,SDN控制器进一步包括用于存储至少一个应用程序的应用程序状态的状态表,其中通过集群基础设施跨所有控制器实例共享所述状态表,其中SDN控制器用于使用存储于状态表中的应用程序状态来同步所有应用程序实例。
在根据由此第二方面或根据第二方面的第一实施形式的SDN控制器的第二实施形式中,状态表是高速数据存储区和/或非结构化数据存储区。
在第三方面中,本发明提供一种用于在软件定义网络SDN中集群的SDN应用程序,包括用于连接到SDN控制器的至少一个集群应用编程接口,即集群API,其中SDN应用程序用于使用至少一个应用程序API与SDN控制器协商,以便用SDN控制器的不同控制器实例来注册不同应用程序实例。
根据本发明的SDN应用程序连同本发明的SDN控制器一起作用,以便获得本发明的方法的上述优点。
附图说明
本发明的上述方面和实施形式将在以下关于附图的对具体实施例的描述中得到说明,其中
图1在(a)中示出被分布为多个控制器实例的现有技术水平的SDN控制器,其中在每个控制器实例上运行SDN应用程序。图1在(b)中示出在单个SDN控制器实例上的现有技术水平的应用程序,分布为多个应用程序实例的SDN应用程序在所述单个SDN控制器实例上运行。
图2示出SDN环境,其中根据本发明的实施例的SDN应用程序在根据本发明的另一个实施例的SDN控制器上运行。
图3示出SDN环境,其中根据本发明的实施例的SDN应用程序集群成多个应用程序实例,所述应用程序实例在本发明的另一个实施例的SDN控制器的多个控制器实例上运行。
具体实施方式
图2示出在SDN环境中的本发明的实施例的SDN控制器1和SDN应用程序4。SDN应用程序4使用北向接口(northboundinterface,NBI)注册到SDN控制器1,并且在SDN控制器1上运行。超过一个应用程序4可以被注册并且以相同方式在SDN控制器1上运行。如将在下文相对于图3更详细地说明,可以用SDN控制器1的不同控制器实例注册至少一个应用程序4的多个不同应用程序实例。由此,可以连接并且协调SDN控制器1和至少一个应用程序4的分布机制。
图1中示出的SDN控制器1包括NBI,并且还包括南向接口(southboundinterface,SBI)。此外,在SDN控制器1中创建集群基础设施2。集群基础设施2是负责在SDN控制器1内,具体来说,在SDN控制器1的不同控制器实例之间共享和同步信息的模块。任选地,集群基础设施2也可以与SDN控制器1的管理器通信,或与SDN控制器1整合到其中的云***的管理器通信。
在SDN控制器1中,进一步创建状态表3。状态表3可以是集群基础设施2的一部分,或可以是独立的并且连接到集群基础设施2。状态表3通过集群基础设施2在SDN控制器1的所有控制器实例上分布,并因此可以被视为共享状态表3。状态表3优选地是高速数据存储区,所述高速数据存储区可用于至少一个应用程序4,尤其用于存储其应用程序状态。优选地,状态表3是非结构化数据存储区,即,是NoSQL数据存储区,所述非结构化数据存储区实现灵活且可扩展的应用程序状态计划。状态表3可以例如是存储器芯片,所述存储器芯片优选地以数据库实施。通过在SDN控制器1中采用状态表3,至少一个应用程序4的应用程序状态可以从至少一个应用程序4移动到SDN控制器1。由此,关于应用程序状态的信息集中在SDN控制器1中,这允许具体来说在SDN控制器1运行多个应用程序4时SDN控制器1的更好的性能。具体来说,明显改进了在不同控制器实例上的不同应用程序4和/或不同应用程序实例的负载均衡,或多个应用程序4的服务链接。
在SDN控制器1中进一步创建集群API5。此外,还在至少一个SDN应用程序4中创建集群API5。因此在控制器侧和应用程序侧均提供至少一个集群API5。因此在至少一个应用程序4与SDN控制器1之间创建至少一个集群API5。至少一个集群API5使得SDN控制器1能够发现至少一个SDN应用程序4的分布的应用程序实例。同样地,集群API5使得至少一个SDN应用程序4能够发现SDN控制器1的分布的控制器实例。此外,可以通过集群API5将状态表3显露给至少一个SDN应用程序4,尤其显露给至少一个SDN应用程序4的每个应用程序实例。应用程序侧和控制器侧的集群API5对应地进一步用以将至少一个应用程序4注册到SDN控制器1,具体来说,将至少一个应用程序4的不同应用程序实例注册到SDN控制器1不同控制器实例。最后,至少一个SDN应用程序4与SDN控制器1之间的集群API5还适用于允许至少一个SDN应用程序4使用SDN控制器1基础设施以及其到云管理***的连接性,例如,以自动地向外扩展或向内扩展。
图3图示通过SDN应用程序4和SDN控制器1实施的根据本发明实施例的方法的操作原理。超过一个SDN应用程序4可以遵循相同的操作原理。图3具体地示出SDN应用程序4,所述SDN应用程序4初始地分布为至少一个应用程序实例4a,所述至少一个应用程序实例4a在图3中示出为一个应用程序实例4a,但可以是多个应用程序实例4a。至少一个应用程序实例4a包含至少一个集群API5。图3进一步示出SDN控制器1,所述SDN控制器1分布为至少一个控制器实例1a的集群,所述至少一个控制器实例1a在图3中示出为一个控制器实例1a,但可以是多个控制器实例1a。至少一个控制器实例1a包含NBI、SBI、至少一个集群API5、至少一个集群基础设施2以及至少一个状态表3。状态表3可以通过集群基础设施2在多个控制器实例1a上共享。
标签A到E指示为实施本发明的实施例的方法而执行的不同操作步骤。
首先,在步骤A中,SDN控制器1实施状态表3和集群基础设施2,其中使用集群基础设施2跨至少一个控制器实例1a分布状态表3。
在步骤B中,在SDN应用程序4中,具体来说,在SDN应用程序4的至少一个应用程序实例4a中实施至少一个集群API5。在多个应用程序实例4a的情况下,在每个应用程序实例4a中实施至少一个集群API5。
在步骤C中,SDN应用程序4中的集群API5通过SDN控制器1的至少一个集群API5与SDN控制器1的至少一个控制器实例1a协商至少一个应用程序实例4a的注册。换句话说,应用程序4使用至少一个集群API5与SDN控制器1协商多实例高可用性。由此,可以使用至少一个应用程序API5用不同控制器实例1a注册不同应用程序实例4a。SDN控制器1使用集群基础设施2以及优选地状态表3,以便同步在不同控制器实例1a上的所有应用程序实例4a。应用程序4可以在状态表3中存储其应用程序状态,并且SDN控制器1可以使用存储于状态表中的应用程序状态同步所有应用程序实例4a。
在步骤D中,当存在向外扩展SDN应用程序4的需要时,SDN应用程序4请求使用至少一个集群API5从SDN控制器1添加新节点。SDN控制器1接着优选地连接到其管理并产生新应用程序实例4b,并且将新应用程序实例4b注册到至少一个现存应用程序实例4a,所述应用程序实例4a已经用SDN控制器1进行注册。状态表3以及因此现存应用程序实例4a的所有应用程序状态优选地显露给新应用程序实例4b,因此可以快速地同步新应用程序实例4b。具体来说,可以根据所显露的现存应用程序实例4a的应用程序状态来配置新应用程序实例4b,以便高效地使新应用程序实例4b与这些应用程序实例4a同步。以类似方式进行至少一个应用程序4的向内扩展,即,减少应用程序实例4a和4b的数目。
在步骤E中,SDN控制器1需要向外扩展(或向内扩展)。为此目的,可以创建新控制器实例1b(或可以删除控制器实例1b)。新控制器实例1b接着与优选地所有应用程序实例4a和4b重新协商并且使用其集群API5,以便均衡所有应用程序实例4a和4b在新控制器实例1b自身与现存控制器实例1a之间的负载。
如通过图2和3描述的本发明使得SDN控制器1和在SDN控制器1上运行的至少一个应用程序4能够彼此独立地向内扩展或向外扩展,以便建立任何所需M:N的比率,所述比率描述应用程序实例4a和4b:控制器实例1a和1b的比率。SDN控制器1优选地用于自动地均衡在其不同控制器实例1a和1b上运行的不同应用程序实例4a和4b的负载。具体来说,SDN控制器1优选地用于通过集群基础设施2交换关于至少一个应用程序4、所有不同应用程序实例4a和4b、以及存储于状态表3中的所有应用程序状态的信息。
综上所述,本发明成功为SDN控制器1提供集群的且高可用性基础设施。此基础设施使得至少一个应用程序4能够使用SDN控制器1的集群基础设施2集群且分布为多个应用程序实例4a和4b。应用程序4可以由此使用SDN控制器1的集群机制按需要自动地向外扩展和向内扩展。本发明尤其对应地实现在至少一个应用程序4的不同应用程序实例4a和4b与SDN控制器1的不同控制器实例1a和1b之间的自动发现和自动注册。因此,通过本发明的方法并且对应地通过本发明的SDN控制器1和至少一个SDN应用程序4一起作用提供应用程序4的高可用性的基础设施。
已经结合作为实例的不同实施例以及实施方案描述了本发明。然而,所属领域的技术人员和实践所要求的发明的人员可以从对图式、本发明以及独立权利要求的学习中理解并且实现其它变化。在权利要求书和说明书中,词语“包括”不排除其它元素或步骤,不定冠词“一”不排除多个。单个元素或其他单元可以完成权利要求中描述的几个实体或器件的功能。在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的结合不能被有效地使用。计算机程序可存储或分发到合适的介质上,例如与其它硬件一起或者作为其它硬件的部分提供的光存储介质或者固态介质,还可以以其它形式例如通过因特网或者其它有线或无线电信***分发。

Claims (15)

1.一种用于在软件定义网络SDN中使应用程序(4)集群的方法,其特征在于,所述方法包括
在SDN控制器(1)中创建集群基础设施(2),其中所述集群基础设施(2)是用于在所述SDN控制器(1)的不同控制器实例(1a、1b)之间共享和同步信息的模块,
在至少一个应用程序(4)与所述SDN控制器(1)之间创建至少一个集群应用编程接口,即集群API(5),
使用所述至少一个应用程序API(5),用不同控制器实例(1a、1b)来注册所述至少一个应用程序(4)的不同应用程序实例(4a、4b),
使用所述集群基础设施(2)来同步所有应用程序实例(4a、4b)。
2.根据权利要求1所述的方法,其特征在于,进一步包括
在所述SDN控制器(1)中创建状态表(3),其中使用所述集群基础设施(2)跨所有控制器实例(1a、1b)共享所述状态表(3),
通过所述至少一个应用程序(4)将其应用程序状态存储在所述状态表(3)中,
使用存储于所述状态表(3)中的所述应用程序状态来同步所有应用程序实例(4a、4b)。
3.根据权利要求1或2中的一项所述的方法,其特征在于,创建所述至少一个集群API(5)的步骤包括
向每个应用程序实例(4a、4b)并且向每个控制器实例(1a、1b)提供集群API(5)。
4.根据权利要求1到3中的一项所述的方法,其特征在于,进一步包括
使用所述至少一个集群API(5)通过所述至少一个应用程序(4)以及通过所述SDN控制器(1)对应地发现彼此的不同控制器实例(1a、1b)和应用程序实例(4a、4b)。
5.根据权利要求4所述的方法,其特征在于,进一步包括
用控制器实例(1a、1b)自动地注册所述至少一个应用程序(4)的最新发现的应用程序实例(4a、4b),其中在所述不同控制器实例(1a、1b)之间自动地均衡所有应用程序实例(4a、4b)的负载。
6.根据权利要求3所述的方法,其特征在于,使用所述至少一个API(5)将所述应用程序实例(4a、4b)的所述负载传递到所述SDN控制器(1)。
7.根据权利要求1到6中的一项所述的方法,其特征在于,为了向外扩展所述至少一个应用程序(4),所述方法包括
通过所述至少一个应用程序(4)使用所述至少一个集群API(5)请求所述SDN控制器(1)创建至少一个新应用程序实例(4b),
通过所述SDN控制器(1)启用新应用程序实例(4b),
通过所述SDN控制器(1)将所述新应用程序实例(4b)注册到所述至少一个应用程序(4)的现存应用程序实例(4a)。
8.根据权利要求7所述的方法,其特征在于,进一步包括
通过所述集群基础设施(2)与所述SDN控制器(4)的或云***的管理***通信以用于动态地添加所述至少一个新应用程序实例(4b)。
9.根据权利要求7或8所述的方法,其特征在于,进一步包括
通过所述SDN控制器(1)将所述状态表(3)显露给所述新应用程序实例(4b),
使用所述集群基础设施(2)和存储于所述状态表(3)中的所述应用程序状态使所有现存应用程序实例(4a)与所述至少一个应用程序(4)的所述新应用程序实例(4b)同步。
10.根据权利要求1到9中的一项所述的方法,其特征在于,为了向内扩展或向外扩展所述SDN控制器(1),所述方法包括
创建或删除所述SDN控制器(1)的新控制器实例(1b),
使用所述集群API(5)用所述至少一个应用程序(4)的至少一个所述应用程序实例(4a、4b)注册所述新控制器实例(1),其中在所述不同控制器实例(1a、1b)之间自动地均衡所述应用程序实例(4a、4b)的负载。
11.一种用于在软件定义网络SDN中使应用程序(4)集群的SDN控制器(1),其特征在于,包括
集群基础设施(2),所述集群基础设施是用于在所述SDN控制器(1)的不同控制器实例(1a、1b)之间共享和同步信息的模块,
至少一个集群应用编程接口,即集群API(5),用于连接到至少一个应用程序(4),其中
所述SDN控制器(1)用于
使用所述至少一个应用程序API(5)用不同控制器实例(1a、1b)来注册所述至少一个应用程序(4)的不同应用程序实例(4a、4b),
使用所述集群基础设施(2)来同步所有应用程序实例(4a、4b)。
12.根据权利要求11所述的SDN控制器(1),其特征在于,进一步包括
用于存储所述至少一个应用程序(4)的应用程序状态的状态表(3),其中通过所述集群基础设施(2)跨所有控制器实例(1a、1b)共享所述状态表(3),
其中所述SDN控制器用于使用存储于所述状态表(3)中的所述应用程序状态来同步所有应用程序实例(4a、4b)。
13.根据权利要求11或12所述的SDN控制器(1),其特征在于,所述状态表(3)是高速数据存储区和/或非结构化数据存储区。
14.一种用于在软件定义网络SDN中集群的SDN应用程序(4),其特征在于,包括
用于连接到SDN控制器(1)的至少一个集群应用编程接口,即集群API(5),其中
所述SDN应用程序(4)用于使用所述至少一个应用程序API(5)与所述SDN控制器(1)协商,以便用所述SDN控制器(1)的不同控制器实例(1a、1b)来注册不同应用程序实例(4a、4b)。
15.一种具有程序代码的计算机程序,所述程序代码用于在所述计算机程序在计算机上运行时执行根据权利要求1到10中任一项所述的方法。
CN201380077826.1A 2013-11-27 2013-11-27 用于在软件定义网络中使应用程序集群的方法和控制器 Active CN105339899B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2013/074887 WO2015078497A1 (en) 2013-11-27 2013-11-27 Method and controller for clustering applications in a software-defined network

Publications (2)

Publication Number Publication Date
CN105339899A true CN105339899A (zh) 2016-02-17
CN105339899B CN105339899B (zh) 2019-11-29

Family

ID=49674309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380077826.1A Active CN105339899B (zh) 2013-11-27 2013-11-27 用于在软件定义网络中使应用程序集群的方法和控制器

Country Status (4)

Country Link
US (1) US10498854B2 (zh)
EP (1) EP3011449A1 (zh)
CN (1) CN105339899B (zh)
WO (1) WO2015078497A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160285957A1 (en) * 2015-03-26 2016-09-29 Avaya Inc. Server cluster profile definition in a distributed processing network
CN108370325B (zh) * 2015-12-09 2021-05-07 华为技术有限公司 一种通过连接跟踪对网络的管理
CN106656846B (zh) * 2017-01-17 2019-07-16 大连理工大学 一种sdn体系架构中协调层的构建方法
US20190036779A1 (en) * 2017-07-31 2019-01-31 Cisco Technology, Inc. Virtualized software-defined network
US20190036780A1 (en) * 2017-07-31 2019-01-31 Cisco Technology, Inc. Generating a data model for a virtualized software-defined network
US10931517B2 (en) * 2017-07-31 2021-02-23 Vmware, Inc. Methods and systems that synchronize configuration of a clustered application
US11095753B2 (en) * 2019-09-10 2021-08-17 International Business Machines Corporation Dynamic initiation of services
CN114327666B (zh) * 2020-09-30 2024-04-09 华为技术有限公司 应用启动方法、装置和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050050106A1 (en) * 2003-08-29 2005-03-03 Tobias Wenner System and method for synchronizing distributed buffers when committing data to a database
CN103095565A (zh) * 2012-10-18 2013-05-08 中兴通讯股份有限公司 一种软件定义网络操作***及其实现方法
WO2013093858A1 (en) * 2011-12-22 2013-06-27 Telefonaktiebolaget L M Ericsson (Publ) Forwarding element for flexible and extensible flow processing in software-defined networks
CN103338163A (zh) * 2013-07-16 2013-10-02 清华大学 支持动态弹性资源调度的软件定义网络控制器
US20130283374A1 (en) * 2012-04-18 2013-10-24 Radware, Ltd. Techniques for separating the processing of clients' traffic to different zones in software defined networks

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003219835A1 (en) * 2002-02-22 2003-09-09 Mission Critical Linux, Inc. Clustering infrastructure system and method
US20030187991A1 (en) * 2002-03-08 2003-10-02 Agile Software Corporation System and method for facilitating communication between network browsers and process instances
US8584136B2 (en) * 2011-08-15 2013-11-12 Sap Ag Context-aware request dispatching in clustered environments
JP2015534769A (ja) * 2012-09-25 2015-12-03 エイ10 ネットワークス インコーポレイテッドA10 Networks, Inc. データネットワークにおける負荷分散
US9137165B2 (en) * 2013-06-17 2015-09-15 Telefonaktiebolaget L M Ericsson (Publ) Methods of load balancing using primary and stand-by addresses and related load balancers and servers
US9860325B2 (en) * 2014-03-18 2018-01-02 Axis Ab Tunnel broker in a service oriented architecture

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050050106A1 (en) * 2003-08-29 2005-03-03 Tobias Wenner System and method for synchronizing distributed buffers when committing data to a database
WO2013093858A1 (en) * 2011-12-22 2013-06-27 Telefonaktiebolaget L M Ericsson (Publ) Forwarding element for flexible and extensible flow processing in software-defined networks
US20130283374A1 (en) * 2012-04-18 2013-10-24 Radware, Ltd. Techniques for separating the processing of clients' traffic to different zones in software defined networks
CN103095565A (zh) * 2012-10-18 2013-05-08 中兴通讯股份有限公司 一种软件定义网络操作***及其实现方法
CN103338163A (zh) * 2013-07-16 2013-10-02 清华大学 支持动态弹性资源调度的软件定义网络控制器

Also Published As

Publication number Publication date
EP3011449A1 (en) 2016-04-27
WO2015078497A1 (en) 2015-06-04
US20160277525A1 (en) 2016-09-22
CN105339899B (zh) 2019-11-29
US10498854B2 (en) 2019-12-03

Similar Documents

Publication Publication Date Title
CN105339899A (zh) 用于在软件定义网络中使应用程序集群的方法和控制器
Tran et al. Task placement on fog computing made efficient for IoT application provision
CN109492040B (zh) 一种适用于数据中心海量短报文数据处理的***
CN109240821B (zh) 一种基于边缘计算的分布式跨域协同计算与服务***及方法
US10394611B2 (en) Scaling computing clusters in a distributed computing system
CN105554123B (zh) 大容量感知云计算平台***
Zou et al. Design and implementation of hybrid cloud computing architecture based on cloud bus
CN110262902A (zh) 信息处理方法及***、介质和计算设备
Mahbub et al. Multi-access edge computing-aware internet of things: MEC-IoT
CN104754008A (zh) 网络存储节点、网络存储***以及用于网络存储节点的装置和方法
Jin et al. A distributed fog computing architecture supporting multiple migrating mode
CN101014044A (zh) 一种网络gis***及其数据传输方法
CN107302849A (zh) 一种光路径的分配方法及装置
Silva et al. Opportunistic fog computing: Feasibility assessment and architectural proposal
CN105847428A (zh) 一种移动云平台
ElSheikh et al. SODIM: service oriented data integration based on MapReduce
CN107122362A (zh) 云数据库资源扩展和服务扩展的方法和***
Guerrero-Contreras et al. Dynamic replication and deployment of services in mobile environments
Abdoos et al. A proposed computation, which benefits from the cooperation of dew, edge, and cloud computations
Zhu A survey on mobile edge platform with blockchain
TW201709091A (zh) 分散式系統及其資料庫管理方法及管理系統
Baresi et al. Short paper: Harmonizing heterogeneous components in sesame
Huang et al. Enterprise service bus based on OSGi
Qin et al. Design and application of fog computing model based on big data
Yang Hierarchical computing: A high performance computing architecture for data-processing in IoT era

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220301

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters building, Longgang District, Shenzhen City, Guangdong Province, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right