在软件定义的网络中的优化的复杂事件处理的制作方法

文档序号:15074064发布日期:2018-08-01 00:44阅读:170来源:国知局

本实施例涉及复杂事件处理和软件定义的网络,并且具体涉及优化软件定义的网络中的复杂事件处理。



背景技术:

复杂事件处理(cep)引擎(有时称为流处理(sp)引擎)通常驻留在基于云的应用服务器上。cep系统实时分析由其他电子设备(例如作为非限制性示例的传感器)产生的数据流。cep系统通过搜索一个或多个预定标准来分析这些数据流,并且如果识别出一个或多个预定标准,则cep系统产生通知并向目的地发送通知。cep系统可以用于分析各种不同应用中的数据,作为非限制性示例所述应用包括国家安全、机器对机器(m2m)应用、物联网(iot)设备以及计费/呼叫数据记录(cdr)。

产生数据流的源设备可以连续产生数据,从而可以向cep系统提供相对大量的数据。然而,由于识别出预定标准的情形的发生可能相对不那么频繁,因此向cep系统提供的大部分数据可能最终不必要地利用资源和带宽。

图1是示出常规cep模块12的系统10的框图。cep模块12驻留在云计算环境应用服务器14中。系统10还包括软件定义的网络(sdn)16,为了16包括入口数据路径节点18-i和出口数据路径节点18-e。sdn是一种网络架构,其中转发平面(有时称为数据平面)和控制平面是分开的并在两个不同的网络节点中实现,而传统情况下转发平面和控制平面是在单个网络节点中实现的。这种不同的网络节点可以分别被称为数据路径节点和控制器节点(未示出)。sdn架构或规范的一个示例是openflow交换机规范1.3.0版。

源设备22产生分组24-1至24-n(统称为分组24)的相对连续的流,并向一个或多个目的地设备26(为了清楚起见仅示出一个)发送分组24。源设备22可以包括能够产生可能需要检查的信息分组的任何合适的电子设备。为了说明的目的,假设源设备22包括布置为捕捉一区域的图像的相机。源设备20耦合到入口数据路径节点18-i,该入口数据路径节点18-i接收分组24。入口数据路径节点18-i基于流表(未示出)中的流条目将分组24发送给出口数据路径节点18-e以递送给目的地设备26。入口数据路径节点18-i还经由网络28将每个分组24的副本发送给cep模块12以进行复杂的事件处理。在该实施例中,例如,cep模块12可以分析分组24中包含的图像以确定图像中是否描绘了特定的个体。因此,由源设备产生的每个分组24被复制并且利用网络28的带宽被传送给cep模块12。

尽管为了说明的目的仅示出了单个源设备22,但是数十或数百个源设备22可以同时产生分组24数据流,每个分组24数据流可以经由入口数据路径节点18或经由其他入口数据路径节点被提供给cep模块12。例如,数十或数百个包括相机的源设备22可协作提供数百万个相邻相应区域的图像的分组以供cep模块12分析。实际上,仅很小比例的这种分组就完全可以描绘任何个体,并且因此向cep模块12提供的大部分分组不必要地利用了网络28的带宽。



技术实现要素:

本实施例涉及用于优化软件定义的网络中的复杂事件处理的机制。在一个实施例中,计算设备接收标识源设备和事件通知条件的规则。访问标识网络中的多个节点和对应的处理能力的网络库存结构。基于源设备和特定数据路径节点的对应处理能力来识别多个节点中的特定数据路径节点。确定分组流窗口标准和分组操作。基于该规则识别多个vnf中的特定虚拟网络功能(vnf)。产生包括标识源设备的源设备标识符、分组流窗口标准、分组操作以及标识特定vnf的vnf标识符的控制器节点数据路径配置命令。控制器节点数据路径配置命令被发送给多个节点中的控制器节点。

在另一实施例中,提供了一种计算设备。该计算设备包括被配置为耦合到网络的收发器和耦合到通信接口的处理器设备。处理器设备被配置为接收标识源设备和事件通知条件的规则。处理器设备还被配置为访问标识网络中的多个节点和对应的处理能力的网络库存结构。处理器设备还被配置为基于源设备和特定数据路径节点的对应的处理能力来识别多个节点中的特定数据路径节点。处理器设备还被配置为确定分组流窗口标准和分组操作。处理器设备还被配置为基于规则识别多个vnf的特定虚拟网络功能(vnf)。处理器设备还被配置为产生包括标识源设备的源设备标识符、分组流窗口标准、分组操作和标识特定vnf的vnf标识符的控制器节点数据路径配置命令。处理器设备还被配置为将控制器节点数据路径配置命令发送给多个节点中的控制器节点。

在另一个实施例中,提供了一种用于发送事件通知的方法。数据路径节点从控制器节点接收配置命令,所述配置命令标识源设备、分组流窗口标准、分组条件和虚拟网络功能(vnf)标识符。在流表中产生流条目,该流表标识由源设备产生的流。流中的多个分组被接收。基于流条目接收缓冲区中的多个分组。确定缓冲区中的多个分组满足分组条件。向vnf标识符所标识的vnf发送指示已经满足分组条件的事件通知。

在另一实施例中,提供了一种计算设备。该计算设备包括被配置为耦合到网络的收发器,以及耦合到通信接口的处理器设备。处理器设备被配置为从控制器节点接收配置命令,所述配置命令标识源设备、分组流条件窗口标准、分组条件和虚拟网络功能(vnf)标识符。处理器设备还被配置为在流表中产生流条目,该流条目标识由源设备产生的流。处理器设备还被配置为接收流中的多个分组。处理器设备还被配置为基于流条目将多个分组缓冲在缓冲区中。处理器设备还被配置为确定缓冲区中的多个分组满足分组条件。处理器设备还被配置为基于确定所述缓冲区中的所述多个分组满足所述封装条件,向由所述vnf标识符标识的vnf发送指示已经满足所述分组条件的事件通知。

在阅读与附图相关联的实施例的以下详细描述之后,本领域技术人员将认识到本公开的范围并且实现其附加方面。

附图说明

并入本说明书中并且形成其一部分的附图示出了本公开的几个方面,并且与描述一起用于解释本公开的原理。

图1是示出常规复杂事件处理模块的系统的框图;

图2是可以实现用于优化软件定义的网络中的复杂事件处理的实施例的系统的框图;

图3是根据一个实施例的效率管理器模块50的框图;

图4是根据一个实施例的效率管理器模块的操作方法的流程图;

图5是示出根据一个实施例的在上文关于图4-6讨论的组件之间的消息的示例流的消息流示图;

图6是图2所示系统的框图,其中为了说明的目的更详细地示出了某些组件,并且省略了某些组件;

图7是根据一个实施例的数据路径节点的操作方法的流程图;

图8是示出在关于图6-7讨论的组件之间的消息的示例流的消息流示图;

图9是根据一个实施例的数据路径节点的框图;

图10是根据一个实施例的计算设备的框图。

具体实施方式

下面阐述的实施例呈现使本领域技术人员能够实践实施例的信息并且示出实践实施例的最佳模式。在根据附图阅读以下描述以后,本领域技术人员将理解本公开的构思并且将认识到本文未具体给出的这些构思的应用。应当理解的是,这些构思和应用落入本公开和所附权利要求的范围内。为了说明的目的,本文讨论的任何流程图必须以某种顺序进行讨论,但是除非另外明确指出,否则实施例不限于任何特定的步骤顺序。本文将序数与元素一起使用仅用于区分否则可能是相似或相同标签的内容,诸如“第一事件通知”和“第二事件通知”,而不暗示优先级、类型、顺序、重要性或其他属性,除非在本文另有说明。

图2是可以实现用于优化软件定义的网络中的复杂事件处理的实施例的系统30的框图。系统30包括云计算环境应用服务器32,云计算环境应用服务器32包括驻留在云计算环境应用服务器32中的复杂事件处理(cep)模块34。系统30还包括软件定义的网络(sdn)36,sdn36包括入口数据路径节点38-i和出口数据路径节点38-e(统称为数据路径节点38)。sdn是一种网络架构,其中转发平面(有时称为数据平面)和控制平面是分开的并在两个不同的网络节点中实现,而传统情况下转发平面和控制平面是在单个网络节点中实现的。这种不同的网络节点可以分别被称为数据路径节点和控制器节点。sdn架构或规范的一个示例是openflow交换机规范1.3.0版。

源设备42产生分组44-a至44-n(统称为分组44)的相对连续的流,并向目的地设备46发送分组44。源设备42可以包括能够产生可能需要检查的信息分组的任何合适的电子设备。为了说明的目的,假设源设备42包括产生标识物品或周围环境的当前温度的数据的温度传感器。源设备42耦合到接收分组44的入口数据路径节点38-i。入口数据路径节点38-i基于流表(未示出)中的流条目将分组44传送给出口数据路径节点38-e以递送给目的地设备46。应该注意,将数据路径节点38-i指定为入口数据路径节点并且将数据路径节点38-e指定为出口数据路径节点仅是在特定分组流(在该示例中,来自源设备42的分组流)的上下文中。关于来自其他设备的其他分组流,入口数据路径节点38-i可以用作出口数据路径节点,而出口数据路径节点38-e可以用作入口数据路径节点。因此,数据路径节点38可以同时为一些流的入口数据路径节点和其他流的出口数据路径节点。

系统30还包括计算设备48,计算设备48包含效率管理器模块(emm)50。如将参考图3更详细地描述的,除其他特征之外,emm50接收一个或多个高级应用规则,所述高级应用规则标识通常由cep模块34执行的复杂事件处理。emm50的目标是实现基于源设备42产生的分组的内容来减少向cep模块34提供的分组44的数量的处理。在一个实施例中,emm50分解高级应用规则,并且基于所述分解向sdn36的控制器节点52发送配置命令。控制器节点52基于配置命令向入口数据路径节点38-i发送诸如openflow命令之类的命令,所述命理包括分组流窗口标准和数据路径节点工作条款。这样的命令可以与在入口数据路径节点38-i中建立标识应该如何处理从源设备42接收的分组44的新的流相结合。尽管为了说明的目的仅示出了单个控制器节点52,但是sdn36可以具有任何数量的控制器节点52。控制器节点52和数据路径节点38在本文可以统称为节点。

控制器节点52还基于配置命令在该示例中在入口数据路径节点38-i上启动虚拟网络功能(vnf)模块54。为了说明的目的,假设分组流窗口标准指示应当缓冲从源设备42接收的五个分组44构成的组,并且数据路径节点工作条款指示应当计算五个分组中标识的温度的平均温度,并且如果平均温度超过预定阈值,则应该向vnf模块54发送消息。

入口数据路径节点38-i接收openflow命令并且在入口数据路径节点38-i的流表58中输入新的流条目(未示出),该新的流条目标识应当如何处理从源设备42接收的分组44。当入口数据路径节点38-i从源设备42接收分组44时,入口数据路径节点38-i在cep缓冲区56中缓冲五个连续分组44。入口数据路径节点38-i将五个分组44提供给出口数据路径节点38-e以递送给目的地设备46。入口数据路径节点38-i还分析cep缓冲区56中的前五个分组44并确定在所述五个分组44中标识的温度的平均温度不超过预定阈值。入口数据路径节点38-i于是清除cep缓冲区56,并且不通知vnf模块54或不将所述五个分组44提供给cep模块34。

在一些实施例中,为了合法截取的目的,可能期望存储所有分组44。这样的存储可以发生在非关键路径存储节点中,并且当网络处于轻负载状态时可以收集分组44。因此,实施例可以有助于在应当保存所有分组44的情况下减小在峰值时间的分组量,并且当不需要保存所有分组44的情况下减小网络中的分组量。

入口数据路径节点38-i接收来自源设备42的接下来的五个分组44-f至44-j,并将分组44-f至44-j缓冲在cep缓冲区56中。入口数据路径节点38-i还将五个分组44-f至44-j提供给出口数据路径节点38-e以递送给目的地设备46。入口数据路径节点38-i分析cep缓冲区56中的五个分组44-f至44-j,并确定在五个分组44-f至44-j中标识的温度的平均温度超过预定阈值。入口数据路径节点38-i产生消息并将该消息传送给vnf模块54。该消息可以包括分组44-f至44-j、从分组44-f至44-j提取的数据、或者vnf模块54可以用来访问cep缓冲区56的指向cep缓冲区56的指针或其它参考。

vnf模块54执行附加处理(其可能包括附加过滤),以确定事件通知条件。例如,vnf模块54可以被设计为仅在整个一天的特定时间计划期间向cep模块34提供分组44。vnf模块54确定当前时间在这样的特定时间计划内,产生事件通知,并且经由网络60将事件通知传送给cep模块34。事件通知可以包括附加信息,例如分组44-f至44-j。

图3示出了根据一个实施例的emm50的框图。emm50包括接收一个或多个高级应用规则64的编译/分解模块(cdm)62。高级应用规则64可以标识一个或多个特定源设备42(图2)、数据源的期望性质名称(例如,由相机识别的脸部)以及事件通知条件,诸如作为非限制性示例的“如果在时代广场中检测到的脸部匹配此图案,则产生通知。”还可以提供要匹配的图案。在一些实施例中,高级应用规则64可以与域特定语言(dsl)规范相一致。

cdm62基于高级应用规则64确定以控制器节点52理解如何执行的语言来表达的一组低级网络指令。特别地,cdm62产生控制器节点数据路径配置命令66和控制器节点vnf配置命令68,其内容将在本文中更详细地讨论。这样的高级应用规则64可以以任何期望的语法来编写,包括作为非限制性示例的frenetic或pyretic,但是实施例不限于任何特定语法或格式。在sdn的上下文中,控制器节点数据路径配置命令66可以包括用于特定openflow控制器的命令序列。控制器节点数据路径配置命令66可以包括标识要配置的特定数据路径节点的信息。在一些实施例中,控制器节点52通过有时被称为北向接口(northboundinterface)的接口接收控制器节点数据路径配置命令66,所述北向接口可以包括专有接口或公共接口。控制器节点52还可以将控制器节点数据路径配置命令66转换成openflow协议分组,进而将其发送给适当的数据路径节点。

为了产生控制器节点数据路径配置命令66和控制器节点vnf配置命令68,cdm62可以与多个数据结构接口连接,包括作为非限制性示例的分解模板结构70、网络库存结构72和数据源注册表结构74。尽管为了说明的目的,分解模板结构70、网络库存结构72和数据源注册表结构74被示为被集成到emm50中,但是在其他实施例中,这样的结构可以通信地耦合到emm50。

cdm62的第一阶段可以被称为分解阶段。分解阶段包括确定在高级应用规则64中标识的哪些处理可以在数据路径节点中实现,以及在高级应用规则64中标识的哪些处理可以在vnf进程中实现。在一个实施例中,分解模板结构70包括多个分解模板76-1至76-n(统称为分解模板76)。每个高级应用规则64对应于一个或多个这样的分解模板76。每个分解模板76包括标识高级应用规则64的哪些处理部分可以由数据路径节点38执行的数据路径节点能力字段78,以及标识高级应用规则64的哪些处理部分可以由vnf进程执行的cepvnf能力字段80。例如,在关于与感测温度的一个或多个源设备42相关联的cep的高级应用规则64的上下文中,相关分解模板76可以指示:“从温度中选择*”处理部分将由vnf模块54执行,而“窗口(5)”和“avg(温度)>25”处理部分将由数据路径节点38执行。作为另一个示例,在涉及与包括相机在内的一个或多个源设备42相关联的cep的高级应用规则64的上下文中,相关分解模板76可以指示“从相机选择*”处理部分和“facedetected==true”处理部分可以在vnf模块54中执行,而“窗口(10)”处理部分可以在数据路径节点38中执行。

网络库存结构72包含关于可用于优化cep的效率的各种元素的信息,包括例如控制器节点52和数据路径节点38(在此统称为节点)和vnf模块54。具体地,在一个实施例中,网络库存结构72包括多个记录82-1至82-n(统称为记录82)。每个记录82标识可以用来优化cep的效率的节点,诸如sdn控制器节点52、数据路径节点38或vnf模块54。记录82可以包括任何合适的信息,作为非限制性示例,其可以包括唯一标识对应控制器节点52或数据路径节点38的节点标识符、标识对应节点是控制器节点52还是数据路径节点38的节点类型、与对应节点相关联的端口以及节点能力。节点能力可标识例如节点能够进行解释的指令的类型,诸如openflow指令和/或p4指令等。网络库存结构72还可以包含标识sdn36中的控制器节点52和数据路径节点38的拓扑和互连的信息。记录82还可以标识特定数据路径节点38能够维持的缓冲区(本文中有时称为“窗口”)有多深。关于特定的vnf模块54,记录82可以标识vnf模块54的位置,唯一标识vnf模块54的cepvnf通用唯一标识符(uuid)以及由vnf模块54实现的功能。

网络库存结构72可以手动离线产生,或者通过添加到sdn36的每个新的控制器节点52和数据路径节点38的发现步骤来产生。

数据源注册表结构74标识源设备42。特别地,数据源注册表结构74包含多个源设备记录84-1至84-n(统称为源设备记录84)。每个源设备记录84对应于特定的源设备42,并且可以标识例如源设备42的类型(诸如相机、温度传感器等)、源设备42的ip地址、分组的分组格式或消息(由相应的源设备42产生)、源设备42的网络拓扑位置(例如哪个入口数据路径节点38-i接收由源设备42产生的分组)。

关于分组格式,例如,如果源设备42是相机,则分组格式可以指示图像存在于从字节128开始的分组字段“app数据”中,并且具有带有mime类型x的文本格式。emm50可以使用该信息来分解高级应用规则64。在一些实施例中,该信息可以是被emm50询问的内部或外部注册表的一部分,或者源设备42可以提供相应的分组格式。

基于高级应用规则64、分解模板结构70、网络库存结构72和数据源注册表结构74,cdm62产生控制器节点数据路径配置命令66和控制器节点vnf配置命令68。在一个实施例中,控制器节点数据路径配置命令66可以包括:流描述符86,其标识从特定源设备42接收分组流的源或入口数据路径节点38;以及,目的地或出口数据路径节点38,这些分组在sdn36中最终去往所述目的地或出口数据路径节点38以递送给耦合到出口数据路径节点38的目的地设备。控制器节点数据路径配置命令66还可以包括处理动作字段88,其包含分组流窗口标准90和工作条款92。

分组流窗口标准90标识将由cep缓冲区56中的数据路径节点38缓冲的n个分组的窗口大小。分组流窗口标准90还可以标识超时值,其标识数据路径节点38应当等待接收n个分组的最大时间段。如果在最大时间段内没有接收到n个分组,则数据路径节点38清除cep缓冲区56并且重置定时器。在一些实施例中,在确定已发生超时时,数据路径节点38可首先调用工作条款92来处理cep缓冲区56中的分组,然后清除cep缓冲区56。

例如,工作条款92包括一个或多个相对简单的分组操作,当达到窗口大小时,可以针对存储在cep缓冲区56中的分组44中的字段执行所述分组操作。例如,分组操作可以包括分组44中的一个或多个数据字段的总和或平均值。一个或多个分组条件也可以在工作条款92中标识。在一个实施例中,工作条款92中的参数可以包括分组操作参数94-1(数学运算的代码,表示为整数,例如0表示加法,1表示减法,2表示乘法等)、window_id参数94-2(其标识与特定工作条款92相关联的cep缓冲区56)、query_id参数94-3(其标识与工作条款92相关联的查询)以及cepvnfuuid参数94-4(其标识在一个或多个分组条件评估为真值的情况下消息将被发送给的特定vnf模块54)。

控制器节点vnf配置命令68可以包括唯一地标识特定vnf模块54的cep/vnfuuid参数96-1。控制器节点vnf配置命令68还可以包括query_id参数96-2,其当接收到标识可由vnf模块54执行的查询的消息时标识这种查询。

在一个实施例中,cdm62还可以产生一个或多个cep引擎部署配置命令97,其标识要在云计算环境应用服务器32中实例化的一个或多个cep模块34。

控制器节点52接收控制器节点数据路径配置命令66和控制器节点vnf配置命令68。控制器节点52可以将控制器节点数据路径配置命令66转换成合适的openflow协议命令98或其他sdn协议命令,并且将这样的命令传送给适当的数据路径节点38。控制器节点52接收控制器节点vnf配置命令68,并且可以采取合适的动作来实例化vnf模块54。

下面的表1包含云计算环境应用服务器14中的应用可以用来调用cep模块12(图1)的示例代码片段。根据一个实施例,示例代码片段包括高级应用规则64。示例代码片段以java和适用于从espertechinc.,wayne,nj07474-3129,usa可获得的espercep引擎的事件处理领域特定语言编写,但是实施例不限于任何特定的事件处理语言。在本实施例中,emm50可以分解高级应用规则64,使得在入口数据路径节点38-i和/或vnf模块54中实现在行7中执行的分析。在一个实施例中,emm50可以实现vnf模块54中的示例代码片段的行9-11,使得之前由cep模块12执行的所产生的事件现在由vnf模块54产生。

表1-示例代码片段

在openflowsdn实现中,在一个实施例中,可以用两个描述符of_pat_window和of_pat_workclause来扩展openflowofp_action_type枚举。这些动作可以定义如下:

structofp_action_window{

uint16_ttype;/*of_pat_window*/

uint16_tsize;

uint32_ttimeout;

uint32_twindow_id;

}

structofp_action_workclause{

uint16_ttype;/*of_pat_work_clause*/

uint16_tmath_type;

uint32_twindow_id;

uint32_tquery_id;

}

网络编程语言(如p4)中的一个示例如下所示:

在上面的p4示例中,“compute_average”使用已知的数学公式来计算一组值的平均值。该字段(field)计算的输出是从存储在cep缓冲区56中的分组44中取得的温度字段的平均值。当cep缓冲区56已满时,或者当cep缓冲区56发生超时时,可以调用该动作。

p4中的另一个示例如下:

在该示例中,分组44可以包括图像,并且“face_detection”是用于检测在这样的图像中存在脸部的算法(这种算法是本领域技术人员已知的)。该字段计算的输出可以是二进制值,当视频帧中不存在脸部时,该值按照惯例可以是0(假),而在图像中存在脸部时,该值按照惯例可以是1(真)。上面标识的字段列表(例如jpeg_header等)被标识在rfc2435“jpeg压缩视频的rtp有效载荷格式”中。在一些实施例中,如上所述,emm50可以以由emm50存储的或由emm50以其他方式维护的电子映射或参考结构的形式访问这样的信息。

为了说明的目的,假定只有这两个字段计算由数据路径节点38实现。工作条款动作可以用以下方式表达:

图4是根据一个实施例的emm50的操作方法的流程图。图4将结合图3进行讨论。emm50接收标识源设备42和事件通知条件的高级应用规则64(图4,框1000)。emm50访问标识sdn36中的多个节点和对应的处理能力的网络库存结构72(图4,框1002)。emm50基于源设备42和入口数据路径节点38-i的对应处理能力识别多个节点中的特定入口数据路径节点38-i(图4,框1004)。emm50确定分组流窗口标准90和分组操作参数94-1(图4,框1006)。emm50基于规则识别特定虚拟网络功能(vnf)模块54(图4,框1008)。emm50产生控制器节点数据路径配置命令,该命令包括标识源设备42的源设备标识符、分组流窗口标准90、分组操作参数94-1和标识特定vnf模块54的cepvnfuuid参数94-4(图4,框1010)。emm50将控制器节点数据路径配置命令66发送给52控制器节点(图4,框1012)。

emm50还可以产生标识特定vnf模块54的控制器节点vnf配置命令68,并将控制器节点vnf配置命令68发送给控制器节点52。

图5是示出根据一个实施例的在以上关于图4-6讨论的组件之间的消息的示例流的消息流示图。emm50从高级应用规则源100接收高级应用规则64(步骤2000)。在一个实施例中,高级应用规则源100可以包括例如开发者或负责产生高级应用规则64的其他实体。emm50产生控制器节点数据路径配置命令66,并将控制器节点数据路径配置命令66发送给控制器节点52(步骤2002-2004)。控制器节点52接收控制器节点数据路径配置命令66并基于控制器节点数据路径配置命令66产生openflow命令(步骤2006)。控制器节点52将openflow命令传送给入口数据路径节点38-i(步骤2008)。入口数据路径节点38-i接收openflow命令并产生流条目(步骤2010)。

emm50还产生控制器节点(cn)vnf配置命令68,并将控制器节点vnf配置命令68发送给控制器节点52(步骤2012-2014)。控制器节点52确定可以在入口数据路径节点38-i上执行vnf模块54,并且向入口数据路径节点38-i发送消息以实例化vnf模块54(步骤2016)。入口数据路径节点38-i接收该消息,并且实例化vnf模块54(步骤2018)。

图6是图2所示系统30的框图,其中更详细地示出了某些组件,并且为了说明的目的省略了某些组件。入口数据路径节点38-i具有多个端口102-a至102-f。源设备42经由端口102-a耦合到入口数据路径节点38-i。假定控制器节点52从emm50接收控制器节点数据路径配置命令66。控制器节点52基于控制器节点数据路径配置命令66产生openflow命令,并将openflow命令发送给入口数据路径节点38-i。入口数据路径节点38-i接收openflow命令并在流表58中产生流条目103-1。基于openflow命令,流条目103-1标识源设备42并且指示从源设备42接收到的分组44应当经由端口102-e被转发给出口数据路径节点38-e(未示出)。流条目103-1还标识22的query_id、5的分组流窗口标准和分组操作,其中入口数据路径节点38-i确定存储在cep缓冲区56中的分组中标识的温度的平均温度。流条目103-1还标识分组条件,其中如果存储在cep缓冲区56中的五个分组具有大于25度的平均温度,则将通知事件发送给vnf模块54。openflow命令还通过“3f”的vnfuuid标识vnf模块54。

控制器节点52还从emm50接收控制器节点vnf配置命令68。控制器节点vnf配置命令68标识vnf模块54。在一个实施例中,控制器节点52从vnf模块储存库104访问vnf模块54,并且将vnf模块54发送给入口数据路径节点38-i以供执行。在其他实施例中,vnf模块54可能已经驻留在入口数据路径节点38-i上,并且控制器节点52向入口数据路径节点38-i发送指令以启动vnf模块54的执行。在又一个实施例中,vnf模块54可以在与入口数据路径节点38-i分离的计算设备上执行。

入口数据路径节点38-i在分组缓冲区105中接收来自源设备42的分组44。当分组44在分组缓冲区105中被缓冲时,分组44被从分组缓冲区105复制到cep缓冲区56。最终,cep缓冲区56包含五个分组44-1至44-5。入口数据路径节点38-i对分组44-1至44-5执行分组操作以确定平均温度。入口数据路径节点38-i确定平均温度大于25度,并因此产生具有22的query_id的通知,并向vnf模块54发送具有22的query_id的通知。该通知可以包括来自分组44-1至44-5的数据,诸如温度数据或可以包括完整的分组44-1至44-5。入口数据路径节点38-i然后可以清除cep缓冲区56,准备缓冲从源设备42接收的接下来的五个分组44。

vnf模块54接收该通知并执行附加过滤,以确定是否发生了在高级应用规则64中提供的事件通知条件。如果是,则vnf模块54可以产生事件通知,并且将事件通知传送给cep模块34。尽管为了说明的目的仅示出了单个cep模块34,但应该理解,系统30可以包括任意数量的cep模块34,并且这样的cep模块34可以分层布置,使得一系列通知连续地由多个cep模块34过滤。类似地,尽管仅示出了单个vnf模块54,但应该理解,可以实现多个vnf模块54,特别是在其中使用多个源设备42的实施例中。

图7是根据一个实施例的数据路径节点的操作方法的流程图。图7将结合图6进行讨论。数据路径节点在一个实施例中接收标识源设备42的openflow命令形式的配置命令、分组流条件窗口标准、分组条件和标识vnf模块54的vnf标识符(图7,框3000)。入口数据路径节点38-i在流表58中产生标识由源设备42产生的流、分组流窗口标准、分组条件和vnf标识符的流条目103-1(图7,框3002)。入口数据路径节点38-i接收分组44-1至44-5(图7,框3004)。入口数据路径节点38-i基于流条目103-1将多个分组44-1至44-5缓冲在cep缓冲区56中(图7,框3006)。入口数据路径节点38-i对分组44-1至44-5执行分组操作以确定分组44-1至44-5的平均温度。入口数据路径节点38-i还确定平均温度满足指定的分组条件(图7,框3008)。入口数据路径节点38-i向vnf模块54发送事件通知(图7,框3010)。

图8是示出以上关于图6-7讨论的组件之间的消息的示例流的消息流示图;源设备42在正在进行的基础上向入口数据路径节点38-i发送分组44(步骤4000)。入口数据路径节点38-i对分组44进行窗口化,执行分组操作以确定平均温度,并确定平均温度满足所标识的分组条件“avg(temp)>25”(步骤4002)。入口数据路径节点38-i向vnf模块54发送事件通知(步骤4004)。vnf模块54接收事件通知,执行附加过滤,并确定事件通知条件已经发生(步骤4006)。vnf模块54向cep模块34发送事件通知条件(步骤4008)。cep模块34可以产生更高级别的事件并将更高级别的事件发送给事件消费者106(步骤4010-4012)。虽然仅示出了一个事件消费者106,但明显的是,cep模块34可以产生更高级别的事件并将其发送给任意数量的事件消费者106,并且可以为不同的事件消费者106产生不同的更高级别的事件。

尽管入口数据路径节点38-i可以以任何类型的硬件或者硬件和软件的任意组合来实现,但图9是根据一个实施例的入口数据路径节点38-i的框图。入口数据路径节点38-i例如包括收发器110和处理器设备112。收发器110通常包括被配置为促进向其他节点(诸如其他数据路径节点38和/或控制器节点52)发送数据和从其接收数据的组件。当然,收发器110和处理器设备112的详细操作将根据入口数据路径节点38-i所支持的特定实现和一种或多种标准而变化。本领域技术人员将认识到,入口数据路径节点38-i的框图必须省略对于完整理解本公开所不必要的许多特征。尽管没有示出处理器设备112的所有细节,但是处理器设备112包括一个或多个通用或专用处理器或其他微控制器,该微控制器被编程有合适的软件编程指令和/或固件,以执行一些或全部本文描述的入口数据路径节点38-i的功能。附加地或备选地,处理器设备112包括被配置为执行本文所述的入口数据路径节点38-i的功能中的一些或全部的各种数字硬件块(例如,一个或多个专用集成电路(asic)、一个或多个现成的数字或模拟硬件组件或其组合)。

入口数据路径节点38-i还可以包括一个或多个存储介质114和存储器116,用于存储必要和/或适合于实现本文描述的功能的数据,以及用于存储在处理器设备112上执行时可以实现本文描述的全部或部分功能的复杂编程指令。本公开的一个实施例可以被实现为存储在计算机可读存储介质上的计算机程序产品,该计算机程序产品包括被配置为使得处理器设备112执行本文描述的步骤的复杂编程指令。在一个实施例中,提供了一种包含计算机程序产品的载体,其中载体是电子信号、光信号、无线电信号或计算机可读存储介质(即,非暂时性计算机可读介质)中的一种。控制器节点52可以包括与本文关于图9讨论的那些相似的组件。

虽然计算设备48可以以任何类型的硬件或硬件和软件的任何组合来实现,但图10是根据一个实施例的计算设备48的框图。计算设备48包括例如收发器120和处理器设备122。收发器120通常包括被配置为便于向其他设备(诸如控制器节点52)发送数据和从其他设备接收数据的组件。当然,收发器120和处理器设备122的详细操作将取决于计算设备48所支持的特定实施方式和一种或多种标准两者而变化。本领域技术人员将理解,计算设备48的框图必须省略对于完整理解本公开所不必要的许多特征。尽管未示出处理器设备122的所有细节,但处理器设备122包括一个或多个通用或专用处理器或其他微控制器,该微控制器被编程有合适的软件编程指令和/或固件以执行本文描述的计算设备48的功能中的一些或全部。附加地或备选地,处理器设备112包括被配置为执行本文所述的计算设备48的功能中的一些或全部的各种数字硬件块(即,一个或多个asic、一个或多个现成的数字或模拟硬件组件或其组合)。

计算设备48还可以包括一个或多个存储介质124和存储器126,用于存储必要和/或适合于实现本文描述的功能的数据,以及用于存储复杂的编程指令,其当在处理器设备122上执行时可以实现本文描述的全部或部分功能。本公开的一个实施例可以被实现为存储在计算机可读存储介质上的计算机程序产品,该计算机程序产品包括被配置为使得处理器设备122执行本文描述的步骤的复杂编程指令。在一个实施例中,提供了一种包含计算机程序产品的载体,其中载体是电子信号、光信号、无线电信号或计算机可读存储介质(即,非暂时性计算机可读介质)中的一种。

贯穿本公开使用以下缩写词。

·asic专用集成电路

·cdm编译/分解模块

·cn控制器节点

·cep复杂事件处理

·dsl域特定语言

·emm效率管理器模块

·iot物联网

·m2m机器到机器

·sdn软件定义的网络

·sp流处理

·uuid通用唯一标识符

·vnf虚拟网络功能

·cdr计费/呼叫数据记录

本领域技术人员将认识到对本公开的实施例的改进和修改。所有这些改进和修改被认为落入本文公开的构思和所附权利要求的范围内。

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