CN104702638B - 事件的订阅分发方法和装置 - Google Patents
事件的订阅分发方法和装置 Download PDFInfo
- Publication number
- CN104702638B CN104702638B CN201310656668.7A CN201310656668A CN104702638B CN 104702638 B CN104702638 B CN 104702638B CN 201310656668 A CN201310656668 A CN 201310656668A CN 104702638 B CN104702638 B CN 104702638B
- Authority
- CN
- China
- Prior art keywords
- event
- filtering rule
- item
- subscription
- parsing
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种事件的订阅分发方法和装置。该方法包括:接收交换机上报的事件;根据事件的事件类型信息,将事件发送至对应的事件解析器;接收事件解析器解析事件后发送的事件解析信息;将本地记录的事件类型信息对应的多个订阅过滤规则逐一与事件解析信息进行匹配计算,得到与事件解析信息匹配的匹配订阅过滤规则,其中,本地记录的多个订阅过滤规则为应用自定义并下发到本地的,符合统一的过滤规则模板形式的订阅过滤规则;根据匹配订阅过滤规则对应的应用链,将事件发送到对应的应用进行处理。本发明实现了SDN控制器与事件订阅过滤规则的解耦,由应用自定义订阅过滤规则,减轻了SDN控制器的负担。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种事件的订阅分发方法和装置。
背景技术
随着互联网技术的快速发展以及互联网用户的快速增长,基于TCP/IP的现有互联网逐渐暴露出需要问题,包括可扩展性差,安全可控性低,运营成本高等。为了解决上述问题,软件定义网络(Software Defined Networking,SDN)体系架构应用而生,并成为企业网、校园网、数据中心网络的热门候选网络形式,其核心思想是数据平面与控制平面的分离,采用远程的控制器集中对网络进行统一管控。
控制器是SDN网络实现的核心,其主要任务包括将交换机收集到的事件传递给对其感兴趣的应用,以便应用做出判断和响应。这个过程通常是采用一种经典的消息范式,即订阅分发(也可称为发布订阅)方法来实现。事件的发送者(或者称为发布者),即交换机,不关心事件发送给什么接收者(或者称为订阅者);同样,事件的订阅者,即应用,也只是表达对什么样的事件感兴趣而接收。这种机制可以很好地解耦事件的发布者和订阅者。应用订阅事件和事件的分发机制,都是由SDN控制器来提供的。
现有技术方案中的SDN控制器是采用预先规定的一套过滤规则来实现事件的订阅分发,而本质上真正理解这些过滤规则项的应该是应用和事件解析器,因此现有技术在某些情况下会导致应用无法根据自己的需求准确订阅事件,而且现有技术下的SDN控制器需要面对不同设备商使用的不同的南向(用于交换机与SDN控制器交互)接口来定义并存储订阅过滤规则项,导致SDN控制器的负担大,实现成本高。。
发明内容
本发明实施例提供了一种事件的订阅分发方法,实现了SDN控制器与事件订阅过滤规则的解耦,由应用自定义订阅过滤规则项,减轻了SDN控制器的负担。
在第一方面,本发明提供了一种事件的订阅分发方法,所述方法包括:
接收交换机上报的事件,所述事件中包括事件类型信息;
根据所述事件的事件类型信息,将所述事件发送至对应的事件解析器;
接收所述事件解析器解析所述事件后发送的事件解析信息;
将本地记录的所述事件类型信息对应的多个订阅过滤规则逐一与所述事件解析信息进行匹配计算,得到与所述事件解析信息匹配的匹配订阅过滤规则,其中,所述本地记录的多个订阅过滤规则为应用自定义并下发到本地的,符合统一的过滤规则模板形式的订阅过滤规则;
根据所述订阅匹配过滤规则对应的应用链,将所述事件发送到对应的应用进行处理。
根据第一方面,在第一种可能的实现方式中,所述接收交换机上报的事件之前,还包括:与所述应用协商确定所述统一的过滤规则模板形式;存储所述应用自定义并下发到本地的所述订阅过滤规则。
根据第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述统一的过滤规则模板形式的订阅过滤规则包括至少一个过滤规则项以及所述至少一个过滤规则项对应的值/范围,所述至少一个过滤规则项为事件类型过滤规则项;所述事件解析信息包括至少一个事件解析项以及所述至少一个事件解析项对应的值,所述至少一个事件解析项为事件类型解析项。
根据第一方面的第一种可能的实现方式,在第三种可能的实现方式中,存储所述应用自定义并下发到本地的所述订阅过滤规则之后,还包括:根据所述订阅过滤规则与应用之间的映射关系,更新所述应用链。
根据第一方面或者第一方面的第一种、第二种、第三种可能的实现方式,在第四种可能的实现方式中,所述将本地记录的所述事件类型信息对应的多个订阅过滤规则逐一与所述事件解析信息进行匹配计算,得到与所述事件解析信息匹配的匹配订阅过滤规则具体包括:逐一判断所述多个订阅过滤规则中的每个订阅过滤规则中的所述过滤规则项是否都能在所述事件解析信息中找到匹配的事件解析项,如果是,则进一步判断匹配的订阅过滤规则项的值/范围与事件解析项的值是否匹配,如果匹配,则判断所述匹配的过滤规则为匹配订阅过滤规则。
根据第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述应用下发的订阅过滤规则中的过滤规则项由所述应用与所述事件解析器协商确定,以使得所述事件解析器可根据所述协商确定的过滤规则项来解析事件得到对应的事件解析项。
在第二方面,本发明实施例提供了一种事件的订阅分发装置,所述装置包括:
接收单元,用于接收交换机上报的事件,所述事件中包括事件类型信息;
发送单元,用于根据所述接收单元获取的所述事件的事件类型信息,将所述事件发送至对应的事件解析器;
所述接收单元,还用于接收所述事件解析器解析所述事件后发送的事件解析信息;
匹配单元,用于将本地记录的所述事件类型信息对应的多个订阅过滤规则逐一与所述事件解析信息进行匹配计算,得到与所述事件解析信息匹配的匹配订阅过滤规则,其中,所述本地记录的多个订阅过滤规则为应用自定义并下发到本地的,符合统一的过滤规则模板形式的订阅过滤规则;
所述发送单元,用于根据所述订阅匹配过滤规则对应的应用链,将所述事件发送到对应的应用进行处理。
根据第二方面,在第一种可能的实现方式中,所述装置还包括存储单元、协商单元;所述协商单元,用于与所述应用协商确定所述统一的过滤规则模板形式;所述存储单元,用于存储所述应用自定义并下发到本地的所述订阅过滤规则。
根据第二方面或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述统一的过滤规则模板形式的订阅过滤规则包括至少一个过滤规则项以及所述至少一个过滤规则项对应的值/范围,所述至少一个过滤规则项为事件类型过滤规则项;所述事件解析信息包括至少一个事件解析项以及所述至少一个事件解析项对应的值,所述至少一个事件解析项为事件类型解析项。
根据第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述装置还包括:更新单元,用于根据所述订阅过滤规则与应用之间的映射关系,更新所述应用链。
根据第二方面或者第二方面的第一种、第二种、第三种可能的实现方式,在第四种可能的实现方式中,所述匹配单元具体用于:逐一判断所述多个订阅过滤规则中的每个订阅过滤规则中的所述过滤规则项是否都能在所述事件解析信息中找到匹配的事件解析项,如果是,则进一步判断匹配的订阅过滤规则项的值/范围与事件解析项的值是否匹配,如果匹配,则判断所述匹配的过滤规则为匹配订阅过滤规则。
根据第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述应用下发的订阅过滤规则中的过滤规则项由所述应用与所述事件解析器协商确定,以使得所述事件解析器可根据所述协商确定的过滤规则项来解析事件得到对应的事件解析项。
因此,本发明实施例提供的事件的订阅分发方法和装置,接收到交换机上报的事件后,可根据事件的事件类型信息,将事件发送至对应的事件解析器,并接收事件解析器解析事件后发送的事件解析信息;将本地记录的事件类型信息对应的多个订阅过滤规则逐一与事件解析信息进行匹配计算,得到与事件解析信息匹配的匹配订阅过滤规则;根据订阅匹配过滤规则对应的应用链,将事件发送到对应的应用进行处理。由于本地记录的事件类型信息对应的多个订阅过滤规则是应用自定义并下发到SDN控制器的符合统一的过滤规则模板形式的订阅过滤规则,而不需要SDN控制器自己定义事件订阅过滤规则,因此本发明实施例实现了SDN控制器与事件订阅过滤规则的解耦,由应用自定义订阅过滤规则,减轻了SDN控制器的负担。
附图说明
图1为本发明实施例提供的一种事件的订阅分发方法流程图;
图2为本发明实施例提供的又一事件的订阅分发方法流程图;
图3为本发明实施例提供的一种事件的订阅分发装置示意图;
图4为本发明实施例提供的一种SDN控制器示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
首先需要说明的是,本发明申请文件中提及的“应用”包括需要从SDN控制器获取事件的所有服务形态,例如SDN控制器外部接入的应用、SDN控制器内部自带的基础服务程序、部署在SDN控制器本地的第三方应用等。
图1为本发明实施例提供的一种事件的订阅分发方法流程图,该实施例的执行主体是SDN控制器,其中详细描述了SDN控制器根据应用的订阅过滤规则对接收到的事件进行匹配计算并将事件发送至匹配的应用进行处理的过程。如图所示,该实施例包括以下步骤:
步骤101,接收交换机上报的事件,所述事件中包括事件类型信息。
本发明实施例所提供的技术方案应用于包括交换机、SDN控制器、应用(管理应用、控制应用等各种应用)的SDN网络系统中。其中,交换机可以通过SDN控制器将数据平面的信息反馈到应用,由应用做出相应的控制。
交换机收集到事件后,可向SDN控制器上报,上报的事件中携带有事件类型。
本发明实施例中,作为示例而不是限定,事件类型可以包括PACKET_IN事件、PORT_STATUS事件等,还可以包括其他的特殊类型。
步骤102,根据所述事件的事件类型信息,将所述事件发送至对应的事件解析器。
其中,事件解析器可以位于SDN控制器中,也可以是第三方提供的事件解析器。SDN控制器中可以存储事件类型与对应的事件解析器的映射关系,在接收到事件后,可根据事件类型,动态加载相应的事件解析器进行事件解析。
需要说明的是,为了实现本发明实施例的技术方案,SDN控制器中保存的订阅过滤规则中的过滤规则项是由应用与事件解析项协商确定的,这使得应用可以按照自己订阅事件的需要设置过滤规则项及该过滤。而现有技术下是由SDN控制器定义订阅过滤规则及过滤规则项,由应用从中选择其关心的过滤规项,设置对该过滤项的约束值,完成对感兴趣事件的订阅,即现有技术方案是将SDN控制器与过滤规则项绑定在一起,由此在一定程度上增加了SDN控制器的负担。
步骤103,接收所述事件解析器解析所述事件后发送的事件解析信息。
事件解析器对事件对应的报文进行解析后,可解析出对应的事件解析信息,并将该事件解析信息反馈给SDN控制器,由SDN控制器将本地存储的订阅过滤规则与事件解析信息进行匹配计算。其中,事件解析信息包括至少一个事件解析项以及至少一个事件解析项对应的值,至少一个事件解析项为事件类型解析项。
其中,事件解析器可以为位于SDN控制器中的一个功能模块,也可以为第三方为各种类型的事件提供的事件解析器,在SDN控制器接收到事件后,可以动态加载对应类型的事件解析器。由此在一定程度上简化了SDN控制器的实现,即SDN控制器无须针对各种类型的事件提供相应的事件解析器。
其中需要说明的是,应用下发的订阅过滤规则中的过滤规则项由所述应用与所述事件解析器协商确定,以使得事件解析器可以根据所述协商确定的过滤规则项来解析得到对应的事件解析项。其中,统一的过滤规则模板形式的订阅过滤规则包括至少一个过滤规则项以及所述至少一个过滤规则项对应的值/范围,所述至少一个过滤规则项为事件类型过滤规则项。
步骤104,将本地记录的所述事件类型信息对应的多个订阅过滤规则逐一与所述事件解析信息进行匹配计算,得到与所述事件解析信息匹配的匹配订阅过滤规则,其中,所述本地记录的多个订阅过滤规则为应用自定义并下发到本地的,符合统一的过滤规则模板形式的订阅过滤规则。具体地,为了实现本发明实施例提供的技术方案,SDN控制器可以与应用协商确定一个过滤规则模板,所实现的过滤规则模板具体可以如表1所示。
表1 过滤规则项模板示意
如表1所示,过滤规则项模板中只有“事件类型”项为必须的过滤规则项,项目1、2、3等都是代指,并没有具体含义,并且过滤规则项的个数是动态变化的。在应用根据自己订阅的需要向SDN控制器发送订阅过滤规则之后,SDN控制器可根据接收到的订阅过滤规则更新相应的过滤规则项。
本发明实施例中,作为示例而不是限定,SDN控制器可以将该过滤规则项模板实现成如下伪码的形式:
Rule{
Map<key,Value/scope>rule;
Event Type type;
}
其中,伪码中Map就是表示过滤规则项模板除了事件类型项之外的其他项目的表,key值是具体的过滤规则项,va lue/scope值是具体规则对应各项的内容,并且这个Map中元素的个数可以大于等于零。
根据本发明实施例提供的上述过滤规则项模板,可以兼容不同应用对应的不同的订阅过滤规则,由此,SDN控制器无须感知每个应用对应的订阅过滤规则的具体内容。
其中,将本地记录的事件类型信息对应的多个订阅过滤规则逐一与事件解析信息进行匹配计算,得到与事件解析信息匹配的匹配订阅过滤规则具体包括:逐一判断多个订阅过滤规则中的每个订阅过滤规则中的过滤规则项是否都能在事件解析信息中找到匹配的事件解析项,如果是,则进一步判断匹配的订阅过滤规则项的值/范围与事件解析项的值是否匹配,如果匹配,则判断匹配的过滤规则为匹配订阅过滤规则。
具体地,SDN控制器首先读取事件解析项中的事件类型,例如事件类型是PACKET_IN,然后在所有事件类型是PACKET_IN的规则里进行规则匹配。当匹配到应用1下发的规则1时,首先从规则1中取出第一个key值key-1,此时SDN控制器并不需要知道这个key值的具体内容。然后在事件解析信息中的所有key值中查找是否有与key-1相同的key值,如果找到与key-1相同的key值,则取出事件解析信息中与key-1相同的key值对应的(value-1)*,再取出规则1中key-1对应的value-1/范围scope-1,比较(value-1)*和value-1/scope-1是否匹配,如果不匹配,则说明事件1不匹配规则1,则继续进行下一个规则的匹配,如果匹配,则继续从规则1中取下一个key值key-2,处理方法同key-1。当规则1中的所有key值均在事件解析信息中找到相等的key值,并且对应value也匹配,则说明事件1匹配规则1。如果在事件解析信息中没有找到与key-1相同的key值,则说明规则1错误且事件1不匹配规则1。通常,应用订阅事件时下发的订阅过滤规则仅包括其关心的事件解析信息项,即订阅过滤规则项中不包括的事件解析项可以认为是通配的。
其中,如果SDN控制器中的规则项对应的是一个确切的值,则判断该值是否与事件解析信息项的值相等,如果相等则说明匹配;如果SDN控制器中的规则项对应的是一个范围,则判断该范围是否包括事件解析信息项的值,如果包括,则说明匹配。
通过上述匹配计算,便可找到与接收到的事件匹配的匹配订阅过滤规则。
步骤105,根据所述订阅匹配过滤规则对应的应用链,将所述事件发送到对应的应用进行处理。
为了实现本发明实施例提供的技术方案,在针对某个订阅过滤规则,SDN控制器保存了对应的应用链,如上述示例中,规则1与应用1相对应,则根据这个对应关系,便可将接收到的事件发送到对应的应用1进行处理。当然,符合规则1的应用也可以是一组按链/树组织的应用链,这样,匹配规则1的事件,将事件按照应用链顺序发送给各个应用,树中同一级别的应用同时发送。
因此,本发明实施例接收到交换机上报的事件后,可根据事件的事件类型信息,将事件发送至对应的事件解析器,并接收事件解析器解析事件后发送的事件解析信息;将本地记录的事件类型信息对应的多个订阅过滤规则逐一与事件解析信息进行匹配计算,得到与事件解析信息匹配的匹配订阅过滤规则;根据订阅匹配过滤规则对应的应用链,将事件发送到对应的应用进行处理。由于本地记录的事件类型信息对应的多个订阅过滤规则是应用自定义并下发到SDN控制器的符合统一的过滤规则模板形式的订阅过滤规则,而不需要SDN控制器自己定义事件订阅过滤规则,因此本发明实施例实现了SDN控制器与事件订阅过滤规则的解耦,由应用自定义订阅过滤规则,减轻了SDN控制器的负担。图2为本发明实施例提供的又一事件的订阅分发方法流程图,如图所示,该实施例的执行主体是SDN控制器,其中详细描述了SDN控制器根据应用的订阅过滤规则对接收到的事件进行匹配计算并将事件发送至匹配的应用进行处理的过程。如图所示,该实施例包括以下步骤:
步骤201,接收应用发送的订阅过滤规则。
本发明实施例中,SDN控制器与具体的事件、规则解耦,由应用和事件解析器共同协定可用的过滤规则项。在应用想要订阅事件时,可向SDN控制器发送订阅过滤规则。
步骤202,存储应用发送的订阅过滤规则。
需要说明的是,为了实现本发明实施例的技术方案,SDN控制器中保存的订阅过滤规则中的过滤规则项是由应用与事件解析项协商确定的,这使得应用可以按照自己订阅事件的需要设置过滤规则项及该过滤。而现有技术下是由SDN控制器定义订阅过滤规则及过滤规则项,由应用从中选择其关心的过滤规项,设置对该过滤项的约束值,完成对感兴趣事件的订阅,即现有技术方案是将SDN控制器与过滤规则项绑定在一起,由此在一定程度上增加了SDN控制器的负担。
具体地,为了实现本发明实施例提供的技术方案,SDN控制器可以与应用协商确定一个统一的过滤规则项模板,可参见表1。应用在想要订阅事件时,可向SDN控制器发送一系列的符合所述过滤规则模板的订阅过滤规则,SDN控制器可以统一的过滤规则模板的形式存储应用的订阅过滤规则,其中,该过滤规则模板具体是用表格形式实现还是用Map形式实现,本发明并不做限制,如应用1订阅PACKET_IN类型事件的订阅过滤规则如表2所示。
表2 订阅过滤规则示例一
在代码实现上,表2所示的订阅过滤规则可以实现成如下伪码的形式:
{
Rule appRule;
appRule.type=PACKET_IN;
appRule.rule.put(“tenant ID”,”uuidabcdefg”);
appRule.rule.put(“srcIP”,”192.168.1.*”);
appRule.rule.put(“dstIP”,”192.168.2.*”);
appRule.rule.put(“srcport”,”5000-5500”);
appRule.rule.put(“dstPort”,”80”);
appRule.rule.put(“protocal”,”TCP”);}
此时,SDN控制器提供的如表1所示的过滤规则项模板中的项目1、2、3等均被应用提供的具体的过滤规则项内容租户ID、源IP等所替代。此时,除了事件类型项外,共有6项过滤规则项。在该规则中,过滤规则项租户ID、目的端口和传输层协议对应的是具体的值,而过滤规则项源IP、目的IP和源端口对应的就是一个范围。
再如,另一个应用想要订阅PORT_STATUS类型事件,也可给出一系列过滤规则。此时存储在SDN控制器上的该应用的订阅过滤规则如表3所示。
表3 订阅过滤规则示例二
在代码实现上,表3所示的订阅过滤规则可以实现成如下伪码的形式:
{
Rule appRule;
appRule.type=PORT_STATUS;
appRule.rule.put(“tenant ID”,”uuidhi jklmn”);
appRule.rule.put(“switchID”,”uuidswitch001”);
appRule.rule.put(“port ID”,”0~60”);}
此时,SDN控制器提供的如表1所示的过滤规则项模板中的项目1、2、3等均被应用提供的具体的过滤规则项内容租户ID、交换机ID、端口ID所替代。此时,除了事件类型项外,共有3项过滤规则项。
由上可以看出,本发明仅实现一套过滤规则项表格,即过滤规则项模板,便可兼容不同应用的订阅过滤规则的差异。各个应用具体的订阅规则完全由应用基于SDN控制器提供的统一模板来填写,SDN控制器无需感知其内容。
其中,通过操作步骤202存储应用发送的订阅过滤规则后,即可执行步骤203,即根据接收到的订阅过滤规则更新应用链;另外,还可以在执行步骤207的匹配操作时使用该步骤存储的订阅过滤规则与事件的事件解析项进行匹配计算。
步骤203,根据接收到的应用的订阅过滤规则,更新应用链。
为了实现本发明实施例提供的技术方案,在针对某个订阅过滤规则,SDN控制器保存了对应的应用链,在确定与事件匹配的订阅过滤规则后,便可根据应用链将接收到的事件发送到对应的应用进行处理。当然,符合规则的应用也可以是一组按链/树组织的应用链,这样便可执行步骤208时,将事件按照操作步骤203所更新后的应用链顺序发送给各个应用,树中同一级别的应用同时发送。在SDN控制器接收到新的应用定义的规则后,可更新该应用链。
步骤204,接收事件。
交换机收集到事件后,可向SDN控制器上报,上报的事件中携带有事件类型。
步骤205,将事件发送至对应的事件解析器进行解析。
其中,事件解析器可以位于SDN控制器中,也可以是第三方提供的事件解析器。SDN控制器中可以存储事件类型与对应的事件解析器的映射关系,在接收到事件后,可根据事件类型,动态加载相应的事件解析器进行事件解析。
步骤206,接收事件解析器反馈的事件解析信息。
步骤207,进行事件解析信息与应用的订阅过滤规则的匹配计算。
其中,事件解析信息包括至少一个事件解析项以及至少一个事件解析项对应的值,至少一个事件解析项为事件类型解析项,统一的过滤规则模板形式的订阅过滤规则包括至少一个过滤规则项以及所述至少一个过滤规则项对应的值/范围,所述至少一个过滤规则项为事件类型过滤规则项。将本地记录的事件类型信息对应的多个订阅过滤规则逐一与事件解析信息进行匹配计算,得到与事件解析信息匹配的匹配订阅过滤规则具体包括:逐一判断多个订阅过滤规则中的每个订阅过滤规则中的过滤规则项是否都能在事件解析信息中找到匹配的事件解析项,如果是,则进一步判断匹配的订阅过滤规则项的值/范围与事件解析项的值是否匹配,如果匹配,则判断匹配的过滤规则为匹配订阅过滤规则。
步骤208,将事件发送至匹配的订阅过滤规则对应的应用进行处理。
因此,本发明实施例接收到交换机上报的事件后,可根据事件的事件类型信息,将事件发送至对应的事件解析器,并接收事件解析器解析事件后发送的事件解析信息;将本地记录的事件类型信息对应的多个订阅过滤规则逐一与事件解析信息进行匹配计算,得到与事件解析信息匹配的匹配订阅过滤规则;根据订阅匹配过滤规则对应的应用链,将事件发送到对应的应用进行处理。由于本地记录的事件类型信息对应的多个订阅过滤规则是应用自定义并下发到SDN控制器的符合统一的过滤规则模板形式的订阅过滤规则,而不需要SDN控制器自己定义事件订阅过滤规则,因此本发明实施例实现了SDN控制器与事件订阅过滤规则的解耦,由应用自定义订阅过滤规则,减轻了SDN控制器的负担。
相应地,本发明实施例还提供了一种事件的订阅分发装置,图3为本发明实施例提供的一种事件的订阅分发装置示意图,如图所示,该实施例包括以下功能单元:
接收单元301,用于接收交换机上报的事件,所述事件中包括事件类型信息。
交换机收集到事件后,可向SDN控制器上报,上报的事件中携带有事件类型。
发送单元302,用于根据所述接收单元获取的所述事件的事件类型信息,将所述事件发送至对应的事件解析器。
其中,事件解析器可以位于SDN控制器中,也可以是第三方提供的事件解析器。SDN控制器中可以存储事件类型与对应的事件解析器的映射关系,在接收到事件后,可根据事件类型,动态加载相应的事件解析器进行事件解析。
所述接收单元301,还用于接收所述事件解析器解析所述事件后发送的事件解析信息。
其中需要说明的是,应用下发的订阅过滤队则中的过滤规则项由所述应用与所述事件解析器协商确定,以使得事件解析器可以根据所述协商确定的过滤规则项来解析得到对应的事件解析项。
匹配单元303,用于将本地记录的所述事件类型信息对应的多个订阅过滤规则逐一与所述事件解析信息进行匹配计算,得到与所述事件解析信息匹配的匹配订阅过滤规则,其中,所述本地记录的多个订阅过滤规则为应用自定义并下发到本地的,符合统一的过滤规则模板形式的订阅过滤规则。
其中,所述统一的过滤规则模板形式的订阅过滤规则包括至少一个过滤规则项以及所述至少一个过滤规则项对应的值/范围,所述至少一个过滤规则项为事件类型过滤规则项;所述事件解析信息包括至少一个事件解析项以及所述至少一个事件解析项对应的值,所述至少一个事件解析项为事件类型解析项。匹配单元303具体用于:逐一判断所述多个订阅过滤规则中的每个订阅过滤规则中的所述过滤规则项是否都能在所述事件解析信息中找到匹配的事件解析项,如果是,则进一步判断匹配的订阅过滤规则项的值/范围与事件解析项的值是否匹配,如果匹配,则判断所述匹配的过滤规则为匹配订阅过滤规则。
所述发送单元302,用于根据所述订阅匹配过滤规则对应的应用链,将所述事件发送到对应的应用进行处理。
优选地,本发明实施例提供的装置还包括协商单元304、存储单元305;其中,协商单元304,用于与所述应用协商确定所述统一的过滤规则模板形式;所述存储单元305,用于存储所述应用自定义并下发到本地的所述订阅过滤规则。
优选地,本发明实施例提供的装置还包括:更新单元306,用于根据所述订阅过滤规则与应用之间的映射关系,更新所述应用链。
为了实现本发明实施例提供的技术方案,在针对某个订阅过滤规则,SDN控制器保存了对应的应用链,在确定与事件匹配的订阅过滤规则后,便可根据应用链将接收到的事件发送到对应的应用进行处理。当然,符合规则的应用也可以是一组按链/树组织的应用链,这样便可将事件按照应用链顺序发送给各个应用,树中同一级别的应用同时发送。在SDN控制器接收到新的应用定义的规则后,可更新该应用链。
因此,本发明实施例提供的装置接收到交换机上报的事件后,可根据事件的事件类型信息,将事件发送至对应的事件解析器,并接收事件解析器解析事件后发送的事件解析信息;将本地记录的事件类型信息对应的多个订阅过滤规则逐一与事件解析信息进行匹配计算,得到与事件解析信息匹配的匹配订阅过滤规则;根据订阅匹配过滤规则对应的应用链,将事件发送到对应的应用进行处理。由于本地记录的事件类型信息对应的多个订阅过滤规则是应用自定义并下发到SDN控制器的符合统一的过滤规则模板形式的订阅过滤规则,而不需要SDN控制器自己定义事件订阅过滤规则,因此本发明实施例实现了SDN控制器与事件订阅过滤规则的解耦,由应用自定义订阅过滤规则,减轻了SDN控制器的负担。
相应地,本发明实施例提供了一种用来实现上述技术方案的SDN控制器,图4为本发明实施例提供的一种SDN控制器示意图,如图所示,本实施例提供的SDN控制器包括网络接口401、处理器402和存储器403。系统总线404用于连接网络接口401、处理器402和存储器403。
网络接口401用于与交换机、上行应用通信,还可与第三方提供的事件解析器通信。
存储器403可以是永久存储器,例如硬盘驱动器和闪存,存储器403中具有应用程序和设备驱动程序。应用程序用来执行本发明上述技术方案;设备驱动程序可以是网络和接口驱动程序。
在启动时,应用程序被加载到存储器403中,然后被处理器402访问并执行如下指令:
接收交换机上报的事件,事件中包括事件类型信息;
根据事件的事件类型信息,将事件发送至对应的事件解析器;
接收事件解析器解析事件后发送的事件解析信息;
将本地记录的事件类型信息对应的多个订阅过滤规则逐一与事件解析信息进行匹配计算,得到与事件解析信息匹配的匹配订阅过滤规则,其中,所述本地记录的多个订阅过滤规则为应用自定义并下发到本地的,符合统一的过滤规则模板形式的订阅过滤规则;
根据匹配订阅过滤规则对应的应用链,将事件发送到对应的应用进行处理。
其中,统一的过滤规则模板形式的订阅过滤规则包括至少一个过滤规则项以及所述至少一个过滤规则项对应的值/范围,所述至少一个过滤规则项为事件类型过滤规则项;所述事件解析信息包括至少一个事件解析项以及所述至少一个事件解析项对应的值,所述至少一个事件解析项为事件类型解析项;
进一步地,处理器402将本地记录的所述事件类型信息对应的多个订阅过滤规则逐一与所述事件解析信息进行匹配计算,得到与所述事件解析信息匹配的匹配订阅过滤规则的过程具体包括:逐一判断所述多个订阅过滤规则中的每个订阅过滤规则中的所述过滤规则项是否都能在所述事件解析信息中找到匹配的事件解析项,如果是,则进一步判断匹配的订阅过滤规则项的值/范围与事件解析项的值是否匹配,如果匹配,则判断所述匹配的过滤规则为匹配订阅过滤规则。
进一步地,在SDN控制器接收交换机上报的事件之前,处理器402访问存储器403中的应用程序之后,还可与所述应用协商确定所述统一的过滤规则模板形式;存储所述应用自定义并下发到本地的所述订阅过滤规则。
进一步地,处理器402存储每个应用发送订阅过滤规则之后,还可执行指令:根据订阅过滤规则与应用之间的映射关系,更新应用链。
其中需要说明的是,应用下发的订阅过滤队则中的过滤规则项由所述应用与所述事件解析器协商确定,以使得事件解析器可以根据所述协商确定的过滤规则项来解析得到对应的事件解析项。
因此,本发明实施例提供的SDN控制器接收到交换机上报的事件后,可根据事件的事件类型信息,将事件发送至对应的事件解析器,并接收事件解析器解析事件后发送的事件解析信息;将本地记录的事件类型信息对应的多个订阅过滤规则逐一与事件解析信息进行匹配计算,得到与事件解析信息匹配的匹配订阅过滤规则;根据订阅匹配过滤规则对应的应用链,将事件发送到对应的应用进行处理。由于本地记录的事件类型信息对应的多个订阅过滤规则是应用自定义并下发到SDN控制器的符合统一的过滤规则模板形式的订阅过滤规则,而不需要SDN控制器自己定义事件订阅过滤规则,因此本发明实施例实现了SDN控制器与事件订阅过滤规则的解耦,由应用自定义订阅过滤规则,减轻了SDN控制器的负担。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种事件的订阅分发方法,其特征在于,应用于SDN控制器,所述方法包括:
与应用协商确定统一的过滤规则模板形式;
存储所述应用自定义并下发到本地的订阅过滤规则;
接收交换机上报的事件,所述事件中包括事件类型信息;
根据所述事件的事件类型信息,将所述事件发送至对应的事件解析器;
接收所述事件解析器解析所述事件后发送的事件解析信息;将本地记录的所述事件类型信息对应的多个订阅过滤规则逐一与所述事件解析信息进行匹配计算,得到与所述事件解析信息匹配的匹配订阅过滤规则,其中,所述本地记录的多个订阅过滤规则为应用自定义并下发到本地的,符合统一的过滤规则模板形式的订阅过滤规则;
根据所述匹配订阅过滤规则对应的应用链,将所述事件发送到对应的应用进行处理;
所述统一的过滤规则模板形式的订阅过滤规则包括至少一个过滤规则项以及所述至少一个过滤规则项对应的值/范围,所述至少一个过滤规则项为事件类型过滤规则项;
所述事件解析信息包括至少一个事件解析项以及所述至少一个事件解析项对应的值,所述至少一个事件解析项为事件类型解析项;所述事件解析信息由所述事件解析器根据所述过滤规则项解析得到对应的事件解析项。
2.根据权利要求1所述的事件的订阅分发方法,其特征在于,所述存储所述应用自定义并下发到本地的所述订阅过滤规则之后,还包括:根据所述订阅过滤规则与应用之间的映射关系,更新所述应用链。
3.根据权利要求1-2任一项所述的事件的订阅分发方法,其特征在于,
所述将本地记录的所述事件类型信息对应的多个订阅过滤规则逐一与所述事件解析信息进行匹配计算,得到与所述事件解析信息匹配的匹配订阅过滤规则具体包括:逐一判断所述多个订阅过滤规则中的每个订阅过滤规则中的所述过滤规则项是否都能在所述事件解析信息中找到匹配的事件解析项,如果是,则进一步判断匹配的订阅过滤规则项的值/范围与事件解析项的值是否匹配,如果匹配,则判断所述匹配的过滤规则为匹配订阅过滤规则。
4.根据权利要求3所述的事件的订阅分发方法,其特征在于,所述应用下发的订阅过滤规则中的过滤规则项由所述应用与所述事件解析器协商确定,以使得所述事件解析器可根据所述协商确定的过滤规则项来解析事件得到对应的事件解析项。
5.一种事件的订阅分发装置,其特征在于,应用于SDN控制器,所述装置包括:
协商单元,用于与应用协商确定统一的过滤规则模板形式;
存储单元,用于存储所述应用自定义并下发到本地的订阅过滤规则;
接收单元,用于接收交换机上报的事件,所述事件中包括事件类型信息;
发送单元,用于根据所述接收单元获取的所述事件的事件类型信息,将所述事件发送至对应的事件解析器;
所述接收单元,还用于接收所述事件解析器解析所述事件后发送的事件解析信息;
匹配单元,用于将本地记录的所述事件类型信息对应的多个订阅过滤规则逐一与所述事件解析信息进行匹配计算,得到与所述事件解析信息匹配的匹配订阅过滤规则,其中,所述本地记录的多个订阅过滤规则为应用自定义并下发到本地的,符合统一的过滤规则模板形式的订阅过滤规则;
所述发送单元,用于根据所述匹配订阅过滤规则对应的应用链,将所述事件发送到对应的应用进行处理;
其中,所述统一的过滤规则模板形式的订阅过滤规则包括至少一个过滤规则项以及所述至少一个过滤规则项对应的值/范围,所述至少一个过滤规则项为事件类型过滤规则项;
所述事件解析信息包括至少一个事件解析项以及所述至少一个事件解析项对应的值,所述至少一个事件解析项为事件类型解析项;所述事件解析信息由所述事件解析器根据所述过滤规则项解析得到对应的事件解析项。
6.根据权利要求5所述的事件的订阅分发装置,其特征在于,所述装置还包括:更新单元,用于根据所述订阅过滤规则与应用之间的映射关系,更新所述应用链。
7.根据权利要求5-6任一项所述的事件的订阅分发装置,其特征在于,
所述匹配单元具体用于:逐一判断所述多个订阅过滤规则中的每个订阅过滤规则中的所述过滤规则项是否都能在所述事件解析信息中找到匹配的事件解析项,如果是,则进一步判断匹配的订阅过滤规则项的值/范围与事件解析项的值是否匹配,如果匹配,则判断所述匹配的过滤规则为匹配订阅过滤规则。
8.根据权利要求7所述的事件的订阅分发装置,其特征在于,所述应用下发的订阅过滤规则中的过滤规则项由所述应用与所述事件解析器协商确定,以使得所述事件解析器可根据所述协商确定的过滤规则项来解析事件得到对应的事件解析项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310656668.7A CN104702638B (zh) | 2013-12-06 | 2013-12-06 | 事件的订阅分发方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310656668.7A CN104702638B (zh) | 2013-12-06 | 2013-12-06 | 事件的订阅分发方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104702638A CN104702638A (zh) | 2015-06-10 |
CN104702638B true CN104702638B (zh) | 2019-04-12 |
Family
ID=53349403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310656668.7A Active CN104702638B (zh) | 2013-12-06 | 2013-12-06 | 事件的订阅分发方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104702638B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107210969B (zh) * | 2015-10-31 | 2020-05-26 | 北京花旺在线商贸有限公司 | 一种基于软件定义网络的数据处理方法及相关设备 |
CN106911593B (zh) * | 2015-12-23 | 2019-09-13 | 中国科学院沈阳自动化研究所 | 一种基于sdn架构的工业控制网络队列调度方法 |
CN110351698B (zh) * | 2018-04-04 | 2022-04-05 | 华为技术有限公司 | 事件订阅的方法、装置和系统 |
CN109901992B (zh) * | 2019-01-18 | 2022-03-04 | 竞技世界(北京)网络技术有限公司 | 一种远程动态监听程序执行行为的方法 |
CN110430121A (zh) * | 2019-06-26 | 2019-11-08 | 口碑(上海)信息技术有限公司 | 消息通知方法及装置 |
CN110704049B (zh) * | 2019-10-09 | 2023-07-04 | 紫光云技术有限公司 | 一种简单易用的规则引擎条件配置方法 |
CN113992741B (zh) * | 2020-07-10 | 2023-06-20 | 华为技术有限公司 | 一种发布数据索引方法及装置 |
CN115314447B (zh) * | 2021-05-08 | 2024-03-26 | 中国科学院声学研究所 | 一种SDN环境中packet-in消息的处理方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9124447B2 (en) * | 2002-07-26 | 2015-09-01 | International Business Machines Corporation | Interactive client computer communication |
CN101251860B (zh) * | 2008-03-10 | 2011-05-04 | 北京航空航天大学 | 一种Web信息发布管理系统与方法 |
CN101295311B (zh) * | 2008-06-17 | 2011-08-31 | 浙江大学 | 一种大规模发布订阅系统的语义匹配算法 |
CN102073534B (zh) * | 2011-02-24 | 2014-07-30 | 深圳市同洲电子股份有限公司 | 数据解析方法及装置 |
CN103179202B (zh) * | 2013-03-12 | 2016-01-20 | 浙江大学 | 一种基于事件驱动的网络控制模块组合方法 |
-
2013
- 2013-12-06 CN CN201310656668.7A patent/CN104702638B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104702638A (zh) | 2015-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104702638B (zh) | 事件的订阅分发方法和装置 | |
CN112003703B (zh) | 一种跨链发送可认证消息的方法和装置 | |
Mendling et al. | From inter-organizational workflows to process execution: Generating BPEL from WS-CDL | |
CN107682397B (zh) | 客户资源获取方法、装置、终端设备及存储介质 | |
EP1960899B1 (en) | Conforming web services to an updated contract | |
AU2002322282B2 (en) | Integrating enterprise support systems | |
CN108153757A (zh) | 一种哈希表管理的方法和装置 | |
EP3824383B1 (en) | Systems and methods for facilitating clinical messaging in a network environment | |
CN102834823B (zh) | 目录数据库处的数据管理 | |
CN109076024A (zh) | 数据控制方法及终端设备 | |
CN108712491A (zh) | 区块链节点、交易信息处理方法、终端设备和介质 | |
CN108365967A (zh) | 动态配置通讯参数的方法、系统、终端及计算机可读存储介质 | |
CN105939284B (zh) | 报文控制策略的匹配方法及装置 | |
CN108958949A (zh) | 应用程序的调用方法及系统 | |
CN109815025A (zh) | 业务模型调用方法、装置及存储介质 | |
CN110266517A (zh) | 基于网关的外部服务调用方法、装置及终端设备 | |
CN105530244B (zh) | 一种实现主控设备控制智能设备的方法和服务器 | |
CN108833578A (zh) | 基于fifo命名管道进行双工通信的方法及相关设备 | |
CN109726546A (zh) | 一种权限管理方法及装置 | |
TWI380637B (en) | Method, device, system and program product for client provisioning | |
CN116112175A (zh) | 基于区块链的数字孪生网络的业务处理方法、装置及介质 | |
CN110472758A (zh) | 就医预约方法、装置、设备及可读存储介质 | |
CN109391503A (zh) | 一种网络切片管理方法及装置 | |
CN110519151A (zh) | 可控好友添加方法、装置、终端设备及存储介质 | |
CN109995775A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |