买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种事件管理方法、系统及主控设备_瑞斯康达科技发展股份有限公司_201711391178.3 

申请/专利权人:瑞斯康达科技发展股份有限公司

申请日:2017-12-20

公开(公告)日:2020-10-23

公开(公告)号:CN108319509B

主分类号:G06F9/54(20060101)

分类号:G06F9/54(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.10.23#授权;2018.08.17#实质审查的生效;2018.07.24#公开

摘要:本发明公开了一种事件管理方法、系统及主控设备,该事件管理方法包括:事件管理中心接收消息并识别消息,在消息为事件监测点发送的事件通知时,根据事件通知中的事件ID,搜索事件与事件接收者对应关系数据结构,获取关注该事件的所有事件接收者的信息,事件管理中心基于所获取的信息将事件通知发送给关注该事件的所有事件接收者。本发明公开的事件管理方法、系统及主控设备仅将事件定向通知给对应的接收者进行处理,避免了不必要的通信资源耗费,从而解决了事件以广播方式通知耗费大量不必要的通信资源的问题。

主权项:1.一种事件管理方法,其特征在于,包括:事件管理中心接收消息并识别所述消息,在所述消息为事件监测点发送的事件通知时,根据所述事件通知中的事件标识ID,搜索事件与事件接收者对应关系数据结构,获取关注该事件的所有事件接收者的信息,所述事件管理中心基于所获取的信息将所述事件通知发送给关注该事件的所有事件接收者;所述事件与事件接收者对应关系数据结构包括:事件控制结构、接收者控制结构和事件与事件接收者对应关系控制结构;每个事件对应一事件控制结构,每个接收者控制结构对应一个接收者;所述事件与事件接收者对应关系控制结构将事件控制结构与接收者控制结构联系在一起,建立起二者之间的对应关系,其中:所述事件控制结构包括:事件标识,以及用于指向事件与事件接收者对应关系控制结构的第一节点组成的第一链表,其中,一个所述第一节点用于指向一个事件与事件接收者对应关系控制结构;所述接收者控制结构包括:接收者标识,以及用于指向一个事件与事件接收者对应关系控制结构的第二节点组成的第二链表,其中,一个所述第二节点用于指向一个事件与事件接收者对应关系控制结构;所述事件与事件接收者对应关系控制结构包括:第一链表节点、第二链表节点、事件控制结构指针和接收者控制结构指针;所述事件控制结构指针用于指向事件控制结构,所述接收者控制结构指针用于指向接收者控制结构,所述第一链表节点用于挂载所述事件控制结构指针指向的事件控制结构中的第一链表,所述第二链表节点用于挂载所述接收者控制结构指针指向的接收者控制结构中的第二链表。

全文数据:一种事件管理方法、系统及主控设备技术领域[0001]本发明涉及计算机技术,尤指一种事件管理方法、系统及主控设备。背景技术[0002]在软件设计开发中,尤其在涉及进程或线程之间并发操作时,经常出现需要跨进程通知事件的情况。比如分布式设备系统软件设计过程中,板卡的创建删除就是一个典型的事件,用户通过交互界面触发板卡创建删除动作后,许多业务模块需要关注该事件并对该事件做出自己的相应,如创建删除该业务板卡上的端口实例,亦或需要分配释放对应该板卡的内存资源等等。[0003]现有技术中,一进程在监测到某事件发生后,通常是将该事件广播通知给其它所有进程,其它进程只处理自己所关注的事件通知,对于未关注的丢弃掉。然而,该事件通知方式会存在如下问题:由于事件是以广播方式进行通知,因此会耗费大量不必要的通信资源。发明内容[0004]为了解决上述技术问题,本发明提供了一种事件管理方法、系统及主控设备,避免了不必要的通信资源耗费。[0005]为了达到本发明目的,第一方面,本发明提供了一种事件管理方法,包括:事件管理中心接收消息并识别所述消息,在所述消息为事件监测点发送的事件通知时,根据所述事件通知中的事件ID,搜索事件与事件接收者对应关系数据结构,获取关注该事件的所有事件接收者的信息,所述事件管理中心基于所获取的信息将所述事件通知发送给关注该事件的所有事件接收者。[0006]第二方面,本发明提供了一种事件管理系统,包括:接收模块,用于接收消息;识别模块,用于识别所述消息;搜索模块,用于在所述消息为事件监测点发送的事件通知时,根据所述事件通知中的事件ID,搜索事件与事件接收者对应关系数据结构,获取关注该事件的所有事件接收者的信息;发送模块,用于基于所获取的信息将所述事件通知发送给关注该事件的所有事件接收者。[0007]第三方面,本发明提供了一种主控设备,包括:存储器和处理器,存储器用于存储执行指令;处理器调用所述执行指令,用于执行如第一方面实施例所述的事件管理方法。[0008]本发明实施例提供的事件管理方法、系统及主控设备,在消息为事件监测点发送的事件通知时,事件管理中心根据事件通知中的事件标识,搜索事件与事件接收者对应关系数据结构,获取关注该事件的所有事件接收者的信息,基于所获取的信息将事件通知发送给关注该事件的所有事件接收者。事件管理中心仅将事件定向通知给对应的接收者进行处理,能够高效的实现对事件通知的定向分发,避免了不必要的通信资源耗费,从而解决了事件以广播方式通知耗费大量不必要的通信资源的问题。[0009]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明[0010]附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。[0011]图1为本发明实施例提供的事件管理方法的流程图;[0012]图2为本发明实施例一提供的事件管理机制的结构示意图;[0013]图3为本发明实施例二提供的事件管理机制的结构示意图;[00M]图4为本发明实施例提供的事件与事件接收者对应关系数据结构的结构示意图;[0015]图5为本发明实施例提供的接收者注册的流程示意图;[0016]图6为本发明实施例提供的接收者增加关注事件的流程示意图;[0017]图7为本发明实施例提供的接收者删除关注事件的流程示意图;[0018]图8为本发明实施例提供的事件管理系统的结构示意图;[0019]图9为本发明实施例提供的主控设备的结构示意图。具体实施方式[0020]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。[0021]在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。[0022]为解决事件是广播方式进行通知耗费大量不必要的通信资源的问题,本发明实施例提出了一种事件管理机制,集中管理事件与事件接收者之间的对应关系,一旦监测到事件发生后,可以遍历到关注该事件的所有接收者,仅将该事件定向通知给对应的接收者进行处理。并且,若事件通知一旦出现问题,可以方便地查询事件和事件接收者之间是否能够一一对应,以及事件在传送过程中是否有丢弃,能够很好的定位故障点,从而有助于保障系统的可靠性。[0023]需要说明的是,本发明实施例提出的事件管理机制具有如下特性:[0024]1所有事件由事件管理中心统一集中管理,典型的,事件可以按照严重性统一排列;[0025]2同一事件只允许有一个监测点;[0026]3同一事件允许有多个接收者并支持动态增删;[0027]⑷提供一种模块间接耦合的通用方案;[0028]5可用于跨进程间的通知;[0029]⑹仅提供一种异步通知机制,不提供同步通知机制。[0030]图1为本发明实施例提供的事件管理方法的流程图,如图1所示,本发明实施例提供的事件管理方法,包括:[0031]SlOl:事件管理中心接收消息并识别消息。[0032]具体的,所述消息可以是事件监测点发送的事件通知,也可以是事件接收者发送的操作消息,也可以是其他事件消息。[0033]S102:在消息为事件监测点发送的事件通知时,根据事件通知中的事件标识,搜索事件与事件接收者对应关系数据结构,获取关注该事件的所有事件接收者的信息。[0034]具体的,一旦监测到事件发生,事件通知将被事件监测点发送至事件管理中心进程,事件管理中心进程将搜索事件与事件接收者对应关系数据结构,以获取该事件通知中的事件标识(Identity,简称ID所对应的所有接收者的信息。本发明实施例采用数据结构方式建立事件与接收者之间的对应关系,可以实现事件对应接收者的快速查找,以及对应关系的快速更新,从而可以方便地查询事件和事件接收者之间是否能够一一对应,确保了事件管理的效率;以及事件在传送过程中是否有丢弃,能够很好的定位故障点,从而有助于保障系统的可靠性。[0035]其中,同一事件只允许有一个事件监测点监测,事件监测点在监测到事件发生后,生成事件通知。需要说明的是,本发明实施例的实现主要针对Linux操作系统,事件监测点可以位于除事件管理中心进程之外的任何进程内,具体的将哪个事件监测点设置在哪个进程,可以由本领域技术人员根据进程所实现的业务和事件内容确定得到。例如,对于接口LinkUpDown事件,负责实现监测此事件业务的进程就是此事件监测点所处位置。[0036]S103:事件管理中心基于所获取的信息将事件通知发送给关注该事件的所有事件接收者。[0037]具体的,事件管理中心根据获取的接收者信息,可获知所有关注事件的接收者,事件管理中心基于获取的接收者信息将该事件通知遍历发送给搜索到的所有接收者,仅将该事件定向通知给对应的接收者进行处理,能够高效的实现对事件通知的定向分发,避免了不必要的通信资源耗费,从而解决了事件以广播方式通知耗费大量不必要的通信资源的问题。[0038]举例来说,图2为本发明实施例一提供的事件管理机制的结构示意图,如图2所示,事件管理中心在事件管理机制中处于核心地位,需要统筹所有事件的相关信息,具体的包括:事件管理中心管理所有事件的信息、所有接收者的信息以及事件与事件接收者对应关系数据结构,通过搜索事件与事件接收者对应关系数据结构,将事件遍历发送给对应的接收者。对于事件C监测点设置在进程P中,事件管理中心通过搜索本地存储的事件与事件接收者对应关系数据结构,获取到关注该事件C的所有接收者有:位于进程X的事件C接收者1和位于进程Y的事件C接收者2,并将该事件C的事件通知发送给位于进程X的事件C接收者1和位于进程Y的事件C接收者2。[0039]本发明实施例提供的事件管理方法,在消息为事件监测点发送的事件通知时,事件管理中心根据事件通知中的事件标识,搜索事件与事件接收者对应关系数据结构,获取关注该事件的所有事件接收者的信息,基于所获取的信息将事件通知发送给关注该事件的所有事件接收者。事件管理中心仅将事件定向通知给对应的接收者进行处理,能够高效的实现对事件通知的定向分发,避免了不必要的通信资源耗费,从而解决了事件以广播方式通知耗费大量不必要的通信资源的问题。同时,采用数据结构方式建立事件与事件接收者之间的对应关系,可以实现事件对应接收者的快速查找,以及对应关系的快速更新,从而可以方便地查询事件与事件接收者之间是否能够—对应,确保了事件管理的效率;以及事件在传送过程中是否有丢弃,能够很好的定位故障点,从而有助于保障系统的可靠性。[0040]进一步地,在图2所示实施例中,事件管理中心接收消息包括:事件管理中心通过预先建立的事件通知通道接收消息。具体的,事件管理中心接收、识别事件监测点基于事件对应的事件通知通道发送过来的信息。[0041]事件管理中心将事件通知发送给关注该事件的所有事件接收者包括:事件管理中心通过预先建立的事件接收通道将事件通知发送给关注该事件的所有事件接收者。具体的,每一个事件接收通道唯一对应业务进程内的一个事件接收者,事件管理中心将事件通知基于事件接收者唯一对应的事件接收通道发送过给关注该事件的所有事件接收者。其中,本发明实施例中各事件监测点和事件接收者所在的进程,统称为业务进程。[0042]本发明实施例中预先建立事件管理中心进程与业务进程之间的各级事件通知通道和各个事件接收通道,事件管理中心基于预先建立的事件通知通道接收消息,以及基于预先建立的事件接收通道将事件通知发送给关注该事件的所有事件接收者。需要说明是,对于事件管理中心进程与业务进程之间的各级事件通知通道和各个事件接收通道的建立,可以由事件管理中心进程向业务进程主动发起,也可以由业务进程向事件管理中心进程发起,本发明实施例对此不作限定。对于通道的具体建立可详见基于UNIX域套接字技术实现事件通知通道和事件接收通道的建立实施例的描述。[0043]进一步地,在上述实施例中,每个事件对应一事件优先级,每条事件通知通道对应一通道优先级,其中,事件通知通道按照事件优先级划分优先等级,一事件优先级唯一对应一事件通知通道优先等级;一优先级事件的事件通知仅在对应优先等级的事件通知通道上传送。[0044]具体的,事件监测点监测的事件有优先级,事件通知通道有优先级,每一优先等级的事件通知通道对应传送一个事件优先等级的消息。图3为本发明实施例二提供的事件管理机制的结构示意图,如图3所示,事件以及事件通知通道均具有优先级,每一优先等级事件通知通道唯一对应一个事件优先等级,用于传送该优先等级事件的相关消息。本发明实施例将事件进行优先等级划分,采用不同优先等级的事件通知通道传送事件通知,事件管理中心依据优先级处理事件通知,事件管理中心接收、识别事件监测点基于事件对应的优先级事件通知通道发送过来的信息。[0045]在本发明实施例中,为区别对待事件,可以将事件划分为三个等级:INF0通知级另|J、WARN警告级别和CRITICAL严重级别。其中,严重级别优先级最高,警告级别次之,通知级别最低。需要说明的是,在本发明实施例中,可在编码事件ID时将优先级彳目息内嵌在事件ID中,可选的,将优先级置于ID的最高三位。也即,通过读取事件ID本身,就可获知事件的优先级。[0046]示例性的,对于系统上的除事件管理中心进程之外的任意一个业务进程而言,其内所有事件监测点监测的事件有多少个等级,就与事件管理中心进程建立有多少级事件通知通道。此时,事件优先级与事件接收通道优先级的个数相同。比如,所有事件监测点监测的事件有通知级别和警告级别两个等级,就与事件管理中心建立通知级别和警告级别两个等级的事件通知通道,其中,通知级别的事件通知通道用于传送通知级别的事件,警告级别的事件通知通道用于传送警告级别的事件。或者,也可以不关心业务进程内所有事件监测点监测的事件有多少个等级,直接建立有与预先划分的各个事件等级对应的各级事件通知通道。此时,事件优先级与事件接收通道优先级的个数不同。比如,事件划分只有通知级别、警告级别和严重级别三个级别,此时,不管事件监测点监测的事件有多少个等级,直接建立通知级别、警告级别和严重级别三个等级的事件通知通道,监测的事件是哪个等级,就采用哪个等级的事件通知通道传送即可。[0047]本发明实施例中事件管理中心按照预先设定的调度方式,处理从各事件通知通道上侦听到的事件通知。其中,事件管理中心识别消息,包括:事件管理中心将来自不同通道优先级的事件通知通道的消息存储在对应等级的消息队列中,按照优先级或者加权轮询的调度方式识别不同等级消息队列中的消息。[0048]具体的,来自不同等级事件通知通道的消息被存储在不同的队列,事件管理中心可以按照优先级或者加权轮询调度方式周期性处理各队列中的消息。可选的,采用严格优先级调度方式,该方式下在一个处理周期内,事件管理中心优先处理最高事件等级对应的事件通知通道上的消息所在队列,直到该队列为空时,才去处理低一级事件等级对应的事件通知通道上的消息所在队列。这样做的好处在于:可以保障事件处理上的实时性,确保优先级最高的事件能够及时得到响应,从而保证系统运转的实时性。[0049]进一步地,在图2所示实施例中,基于UNIX域套接字技术实现事件通知通道和事件接收通道的建立。具体的,本发明实施例可基于UNIX域套接字技术实现事件通知通道和事件接收通道的创建,事件管理中心进程与业务进程采用UNIX域套接字进行通信。本发明实施例采用将事件等级标识和业务进程号组合在一起,生成一个事件通知通道的UNIX域套接字路径;由于事件接收通道唯一对应一个事件的接收者,所以可采用接收者标识直接作为事件接收通道标识,采用接收者标识,生成一个事件接收通道的UNIX域套接字路径。[0050]需要说明的是,Unix域套接字是通过套接字应用程序编程接口(ApplicationProgrammingInterface,简称API实现的简单的协议族。实际上它并不代表一个网络协议,其只能连接到同一台机器上的其他UniX域套接字。UniX域套接字提供了灵活的进程间通信(Inter-ProcessCommunication,简称IPC机制,其地址是Unix域套接字所在的文件系统的路径名,创建之后套接字就和路径名绑定在一起。Unix域套接字可以是面向连接或者面向无连接,每个套接字的连接都建立了一个新的通信信道。事件管理中心可能同时处理许多连接,但对于每个连接都有不同的文件描述符,这个属性使Unix域套接字能够比命名管道更好的适应IPC任务。[0051]进一步地,在图2所示实施例中,事件与事件接收者对应关系数据结构包括:事件控制结构、接收者控制结构和事件与事件接收者对应关系控制结构;每个事件对应一事件控制结构,每个接收者控制结构对应一个接收者;事件与事件接收者对应关系控制结构将事件控制结构与接收者控制结构联系在一起,建立起二者之间的对应关系,其中:[0052]事件控制结构包括:事件标识,以及用于指向事件与事件接收者对应关系控制结构的第一节点组成的第一链表,其中,一个第一节点用于指向一个事件与事件接收者对应关系控制结构,通过第一节点指向的一个事件与事件接收者对应关系控制结构可获得关注该事件的所有接收者。其中,事件控制结构可以如表1所示,具体见表1。[0053]表1[0055]接收者控制结构包括:接收者标识和用于指向一个事件与事件接收者对应关系控制结构的第二节点组成第二链表,其中,一个第二节点用于指向一个事件与事件接收者对应关系控制结构,通过第二节点指向的一个事件与事件接收者对应关系控制结构可获得该接收者关注的所有事件。其中,接收者控制结构可以如表2所示,具体见表2。[0056]表2[0058]事件与事件接收者对应关系控制结构包括:第一链表节点、第二链表节点、事件控制结构指针和接收者控制结构指针;所述事件控制结构指针用于指向事件控制结构,所述接收者控制结构指针用于指向接收者控制结构,所述第一链表节点用于挂载所述事件控制结构指针指向的事件控制结构中的第一链表,所述第二链表节点用于挂载所述接收者控制结构指针指向的接收者控制结构中的第二链表。其中,事件与事件接收者对应关系控制结构可以如表3所示,具体见表3。[0059]表3[0061]具体的,事件与事件接收者对应关系控制结构作为中间结构体,将事件控制结构与接收者控制结构联系在一起,建立起二者之间的对应关系。事件与事件接收者对应关系数据结构可以表述为:事件与事件接收者对应关系控制结构中的PEvent指向对应的事件控制结构,pRecipient指向对应的接收者控制结构,而nodeEvent作为一个节点添加到事件控制结构的链表ListEventRecipientRecords中,nodeRecipient作为一个节点添加到接收者控制结构的链表LiStRecipientEventRecords中。事件与事件接收者对应关系控制结构作为事件和接收者之间的控制媒介在事件和接收者之间建立了一种稀疏的对应关系,通过该对应关系可以以事件为主键方便地搜索到关注该事件的所有接收者,同样可以以接收者为主键方便地搜索到该接收者关注的所有事件。前者可以最大限度减少事件通知时查找接收者耗费的时间,后者可以最大限度减少增加删除接收者所关注事件时耗费的时间。[0062]可选的,事件控制结构采用红黑二叉树实现,红黑二叉树的一个节点对应存储一个事件控制结构。具体的,考虑到系统中可能存在大量的事件,并且可能存在动态增加或删除事件的可能性,本发明实施例中以事件ID为索引采用红黑二叉树管理事件,红黑二叉树的一个节点即为一个事件控制结构。[0063]红黑树是一种特定类型的二叉树,它是在计算机科学中用来组织数据比如数字的块的一种结构。所有数据块都存储在节点中。这些节点中的某一个节点总是担当起始位置的功能,它不是任何节点的儿子,我们称之为根节点或根。它有最多两个〃儿子〃,都是它连接到的其他节点。所有这些儿子都可以有自己的儿子,以此类推。这样根节点就有了把它连接到在树中任何其他节点的路径。如果一个节点没有儿子,我们称之为叶子节点,因为在直觉上它是在树的边缘上。子树是从特定节点可以延伸到的树的某一部分,其自身被当作一个树。在红黑树中,叶子被假定为nul1或空。由于红黑树也是二叉查找树,它们当中每一个节点的比较值都必须大于或等于在它的左子树中的所有节点,并且小于或等于在它的右子树中的所有节点。这样确保红黑树运作时能够快速的在树中查找给定的值。[0064]图4为本发明实施例提供的事件与事件接收者对应关系数据结构的结构示意图,为更清楚的阐述本发明实施例提出的用于描述事件与事件接收者对应关系数据结构形式,现结合图4举例说明。如图4所示,现以事件B与接收者3之间存有一对应关系为例,加以说明。事件B控制结构包括:事件B标识,链表1。链表1包括:节点rl、节点r2.......m。其中的每个节点指向一个事件与事件接收者对应关系控制结构,该事件与事件接收者对应关系控制结构指向事件B对应的一个接收者控制结构。例如,链表1中的第3个节点r3为事件B与接收者3对应关系控制结构中的链表节点1,指向事件B与接收者3对应关系控制结构。[0065]接收者3控制结构包括:接收者3标识,链表2。链表2包括:节点S1、节点S2、......Sm。其中的每个节点指向一个事件与事件接收者对应关系控制结构,该事件与事件接收者对应关系控制结构指向接收者3对应的一个事件控制结构。例如,链表2中的第2个节点S3为事件B与接收者3对应关系控制结构中的链表节点2,指向事件B与接收者3对应关系控制结构。[0066]通过事件B控制结构中的链表节点r3能够找到事件B与接收者3对应关系控制结构,进而通过读取该事件B与接收者3对应关系控制结构中的接收者3控制结构指针,就可找到与事件B具有对应关系的接收者3控制结构。反之,通过接收者3控制结构中的链表节点S2能够找到事件B与接收者3对应关系控制结构,进而通过读取该事件B与接收者3对应关系控制结构中的事件B控制结构指针,就可找到与接收者3具有对应关系的事件B控制结构。[0067]需要说明的是,本发明实施例中事件管理中心也采用数据结构,该数据结构主要用来统筹事件管理中心的所有数据,包括事件、接收者以及记录事件与事件接收者对应关系等数据结构的内存。将内存统一管理,可以有效防止系统运行过程中产生的碎片,但同时由于需要在初始化时即分配所有内存,因此在某种程度上会带来内存的浪费。本发明实施例采取其优点,统一集中管理内存,防止系统运行过程中产生的碎片。其中,事件管理中心数据结构可以如表4所示,具体见表4。[0068]表4[0070]进一步地,在图2所示实施例中,事件管理中心搜索本地存储的事件与事件接收者对应关系数据结构,以获取该事件通知中的事件标识所对应的所有接收者的信息,该接收者信息包括:接收者标识或者接收者标识对应的事件接收通道标识。[0071]具体的,基于获取到的接收者标识或事件接收通道标识对应的事件接收通道,将事件通知发送给相应的事件接收者进行处理。由于事件接收通道唯一对应一个事件的接收者,所以可采用接收者标识直接作为事件接收通道标识,或者,事件管理中心预先存储接收者标识与接收通道标识的对应关系,可通过接收者标识获取接收通道标识。[0072]其中,基于事件管理中心搜索事件与事件接收者对应关系数据结构,接收者标识可以通过如下方法获得:遍历红黑二叉树的节点,搜索与事件ID对应的事件控制结构;遍历搜索到的事件控制结构中的链表节点,搜索事件ID对应的事件与事件接收者对应关系控制结构;读取搜索到的事件与事件接收者对应关系控制结构中的接收者控制结构指针,获取与该事件具有对应关系的所有接收者控制结构;依次读取与该事件具有对应关系的所有接收者控制结构,获取关注该事件的所有接收者标识。[0073]进一步地,在图2所示实施例中,本发明实施例提供的事件管理方法还包括:消息为事件接收者发送的操作消息,事件管理中心根据操作消息对事件与事件接收者对应关系数据结构进行修改。[0074]具体的,在发明实施例中,操作消息可以由接收者复用所在的业务进程与事件管理中心进程之间的任何一个事件通知通道发送给事件管理中心,示例性的,可设置操作消息的ID为预设标识值,具体的可设置为0,事件发送通知这一消息的ID为事件ID。相应的,本发明实施例还包括如下步骤:[0075]通过判断消息的ID值是否为预设标识值,识别侦听到的消息是否为操作消息;如果不是,则确定该消息为事件通知。[0076]可选的,每条事件通知通道对应通道优先级,事件接收者用优先级最高的事件通知通道发送操作消息,事件管理中心用优先级最高的事件通知通道接收该操作消息。具体的,本发明实施例中将操作消息选用最高事件级别对应的事件通知通道发送给事件管理中心,好处是保证操作消息能够被及时处理,提升事件与事件接收者对应关系更新速度,使得事件发送成功的准确率高。[0077]本发明实施例中,事件管理中心根据各业务进程内的接收者发送的操作消息,动态维护事件与接收者之间的对应关系。其中,操作消息包括:接收者注册、接收者增加关注事件或者接收者删除关注事件。[0078]具体的,接收者注册包括:获取业务进程内的接收者发送的接收者注册消息中的接收者标识、接收者关注的所有事件标识;从接收者空闲链表中获取一个接收者控制结构并初始化,该结构中的接收者标识为本次获取的接收者标识;遍历各事件标识,执行图5所示的流程。其中,图5为本发明实施例提供的接收者注册的流程示意图,其包括以下步骤:[0079]S501:根据事件标识从二叉树中查找对应的事件控制结构。[0080]S502:是否找到对应事件控制结构。若是,则执行S504;否则,执行S503。[0081]S503:从事件空闲链表中获取一个事件控制结构并初始化,并添加至二叉树。[0082]S504:从事件与接收者对应关系空闲链表中获取一个事件与事件接收者对应关系控制结构。[0083]S505:将事件与事件接收者对应关系控制结构中的第一指针指向事件标识对应的事件控制结构,第二指针指向接收者标识对应的接收者控制结构。[0084]S506:将事件与事件接收者对应关系控制结构中的第一链表节点添加到事件控制结构的链表中,第二链表节点添加到接收者控制结构的链表中。[0085]接收者增加关注事件包括:获取业务进程内的接收者发送的接收者增加事件消息中的接收者标识、要增加关注的事件标识,执行图6所示的流程。其中,图6为本发明实施例提供的接收者增加关注事件的流程示意图,其包括以下步骤:[0086]S601:遍历整个事件与事件接收者对应关系数据结构,搜索接收者标识对应的接收者控制结构。[0087]S602:是否找到对应接收者控制结构。若是,则执行S603;否则,结束。[0088]S603:根据事件标识到二叉树中搜索对应的事件控制结构。[0089]S604:是否找到对应事件控制结构。若是,执行S606;若否,执行S605。[0090]S605:从事件空闲链表中获取一个事件控制结构并初始化,并添加至二叉树。[0091]S606:从事件与接收者对应关系空闲链表中获取一个事件与事件接收者对应关系控制结构。[0092]S607:将事件与事件接收者对应关系控制结构中的第一指针指向事件标识对应的事件控制结构,第二指针指向接收者标识对应的接收者控制结构。[0093]S608:将事件与事件接收者对应关系控制结构中的第一链表节点添加到事件控制结构的链表中,第二链表节点添加到接收者控制结构的链表中。[0094]需要说明的是,图6中遍历整个事件与事件接收者对应关系数据结构步骤中的遍历操作包含两层遍历:第一层是遍历红黑二叉树存储的各事件控制结构节点,第二层是遍历每个二叉树节点中的关注该事件的接收者链表。[0095]接收者删除关注事件包括:获取业务进程内的接收者发送的接收者删除事件消息中的接收者标识、所要取消关注的事件标识,执行图7所示的流程。其中,图7为本发明实施例提供的接收者删除关注事件的流程示意图,其包括以下步骤:[0096]S701:遍历整个事件与事件接收者对应关系数据结构,搜索接收者标识对应的接收者控制结构。[0097]S702:是否找到对应接收者控制结构。若是,则执行S703;否则,结束。[0098]S703:遍历所要取消关注的事件标识对应的事件控制结构中关注该事件的接收者链表,查找接收者标识对应的链表节点以及事件与事件接收者对应关系控制结构。[0099]S704:是否找到对应事件与事件接收者对应关系控制结构。若是,则执行S705;否贝IJ,结束。[0100]S705:遍历事件与事件接收者对应关系控制结构成员所指向的接收者控制结构中关注该接收者的事件链表,查找所要取消关注的事件标识对应的链表节点。[0101]S706:分别在事件控制结构和接收者控制结构中删除查找到的链表节点。[0102]S706:回收事件与事件接收者对应关系控制结构的内存。[0103]图8为本发明实施例提供的事件管理系统的结构示意图,如图8所示,本发明实施例提供的事件管理系统包括:接收模块81、识别模块82、搜索模块83和发送模块84。[0104]接收模块81,用于接收消息;[0105]识别模块82,用于识别所述消息;[0106]搜索模块83,用于在所述消息为事件监测点发送的事件通知时,根据所述事件通知中的事件标识ID,搜索事件与事件接收者对应关系数据结构,获取关注该事件的所有事件接收者的信息;[0107]发送模块84,用于基于所获取的信息将所述事件通知发送给关注该事件的所有事件接收者。[0108]本实施例中提供的事件管理系统用于执行图1所示方法实施例的技术方案,其实现原理和实现效果类似,此处不再赘述。[0109]进一步地,接收模块81接收消息包括:通过与事件监测点预先建立的事件通知通道接收消息;[0110]发送模块84将所述事件通知发送给关注该事件的所有事件接收者包括:通过与事件接收者预先建立的事件接收通道将所述事件通知发送给关注该事件的所有事件接收者。[0111]进一步地,每个事件对应一事件优先级,每条事件通知通道对应一通道优先级,其中,事件通知通道按照事件优先级划分优先等级,一事件优先级唯一对应一事件通知通道优先等级;一优先级事件的事件通知仅在对应优先等级的事件通知通道上传送;[0112]识别模块82识别消息包括:所述事件管理中心将来自不同通道优先级的事件通知通道的消息存储在对应等级的消息队列中,按照优先级或者加权轮询的调度方式识别不同等级消息队列中的消息。[0113]进一步地,基于UNIX域套接字技术实现事件通知通道和事件接收通道的建立。[01M]进一步地,所述事件管理系统还包括:更新模块;所述更新模块用于所述消息为事件接收者发送的操作消息时,根据所述操作消息对所述事件与事件接收者对应关系数据结构进行修改;[0115]其中,所述操作消息包括:事件接收者注册、事件接收者增加关注事件或者事件接收者删除关注事件。[0116]进一步地,所述事件与事件接收者对应关系数据结构包括:事件控制结构、接收者控制结构和事件与事件接收者对应关系控制结构;每个事件对应一事件控制结构,每个接收者控制结构对应一个接收者;所述事件与事件接收者对应关系控制结构将事件控制结构与接收者控制结构联系在一起,建立起二者之间的对应关系,其中:[0117]所述事件控制结构包括:事件标识,以及包含关注所述事件的所有接收者的第一链表;所述接收者控制结构包括:接收者标识,以及包含所述接收者关注的所有事件的第二链表;所述事件与事件接收者对应关系控制结构包括:第一链表节点、第二链表节点、事件控制结构指针和接收者控制结构指针;所述事件控制结构指针用于指向事件控制结构,所述接收者控制结构指针用于指向接收者控制结构,所述第一链表节点用于挂载所述事件控制结构指针指向的事件控制结构中的第一链表,所述第二链表节点用于挂载所述接收者控制结构指针指向的接收者控制结构中的第二链表。[0118]进一步地,所述接收者信息包括接收者标识或者接收者标识对应的事件接收通道标识。[0119]进一步地,所述事件控制结构采用红黑二叉树实现,所述红黑二叉树的一个节点对应存储一个事件控制结构。[0120]进一步地,每条事件通知通道对应通道优先级,用优先级最高的事件通知通道接收所述操作消息。[0121]图9为本发明实施例提供的主控设备的结构示意图,如图9所示,本发明实施例提供的主控设备包括:存储器91和处理器92。[0122]存储器91用于存储执行指令,处理器92可以是一个中央处理器(CentralProcessingUnit,简称CPU,或者是特定集成电路ApplicationSpecificIntegratedCircuit,简称ASIC,或者完成实施本发明实施例的一个或多个集成电路。当主控设备运行时,处理器92与存储器91之间通信,处理器92调用执行指令,用于执行以下操作:[0123]接收消息并识别所述消息,在所述消息为事件监测点发送的事件通知时,根据所述事件通知中的事件ID,搜索事件与事件接收者对应关系数据结构,获取关注该事件的所有事件接收者的信息,所述事件管理中心基于所获取的信息将所述事件通知发送给关注该事件的所有事件接收者。[0124]进一步地,处理器92接收消息,包括:通过预先建立的事件通知通道接收消息;处理器92将所述事件通知发送给关注该事件的所有事件接收者,包括:通过预先建立的事件接收通道将所述事件通知发送给关注该事件的所有事件接收者。[0125]进一步地,每个事件对应一事件优先级,每条事件通知通道对应一通道优先级,其中,事件通知通道按照事件优先级划分优先等级,一事件优先级唯一对应一事件通知通道优先等级;一优先级事件的事件通知仅在对应优先等级的事件通知通道上传送;[0126]处理器92中心识别消息,包括:所述事件管理中心将来自不同通道优先级的事件通知通道的消息存储在对应等级的消息队列中,按照优先级或者加权轮询的调度方式识别不同等级消息队列中的消息。[0127]进一步地,基于UNIX域套接字技术实现事件通知通道和事件接收通道的建立。[0128]进一步地,处理器92还用于:识别所述消息的消息ID;在所述消息ID为预设标识值时,所述消息为事件接收者发送的操作消息,所述事件管理中心根据所述操作消息对所述事件与事件接收者对应关系数据结构进行修改;其中,所述操作消息包括:接收者注册、接收者增加关注事件或者接收者删除关注事件。[0129]进一步地,所述事件与事件接收者对应关系数据结构包括:事件控制结构、接收者控制结构和事件与事件接收者对应关系控制结构;每个事件对应一事件控制结构,每个接收者控制结构对应一个接收者;所述事件与事件接收者对应关系控制结构将事件控制结构与接收者控制结构联系在一起,建立起二者之间的对应关系,其中:[0130]所述事件控制结构包括:事件标识,以及用于指向事件与事件接收者对应关系控制结构的第一节点组成的第一链表,其中,一个所述第一节点用于指向一个事件与事件接收者对应关系控制结构;所述接收者控制结构包括:接收者标识,以及用于指向一个事件与事件接收者对应关系控制结构的第二节点组成的第二链表,其中,一个所述第二节点用于指向一个事件与事件接收者对应关系控制结构;所述事件与事件接收者对应关系控制结构包括:第一链表节点、第二链表节点、事件控制结构指针和接收者控制结构指针;所述事件控制结构指针用于指向事件控制结构,所述接收者控制结构指针用于指向接收者控制结构,所述第一链表节点用于挂载所述事件控制结构指针指向的事件控制结构中的第一链表,所述第二链表节点用于挂载所述接收者控制结构指针指向的接收者控制结构中的第二链表。[0131]进一步地,所述接收者信息包括接收者标识或者接收者标识对应的事件接收通道标识。[0132]进一步地,所述事件控制结构采用红黑二叉树实现,所述红黑二叉树的一个节点对应存储一个事件控制结构。[0133]进一步地,每条事件通知通道对应通道优先级,用优先级最高的事件通知通道接收所述操作消息。[0134]虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

权利要求:CN108319509A权利要求书13页1.一种事件管理方法,其特征在于,包括:事件管理中心接收消息并识别所述消息,在所述消息为事件监测点发送的事件通知时,根据所述事件通知中的事件标识ID,搜索事件与事件接收者对应关系数据结构,获取关注该事件的所有事件接收者的信息,所述事件管理中心基于所获取的信息将所述事件通知发送给关注该事件的所有事件接收者。2.根据权利要求1所述的事件管理方法,其特征在于,所述事件管理中心接收消息,包括:所述事件管理中心通过预先建立的事件通知通道接收消息;所述事件管理中心将所述事件通知发送给关注该事件的所有事件接收者,包括:所述事件管理中心通过预先建立的事件接收通道将所述事件通知发送给关注该事件的所有事件接收者。3.根据权利要求2所述的事件管理方法,其特征在于,每个事件对应一事件优先级,每条事件通知通道对应一通道优先级,其中,事件通知通道按照事件优先级划分优先等级,一事件优先级唯一对应一事件通知通道优先等级;一优先级事件的事件通知仅在对应优先等级的事件通知通道上传送;所述事件管理中心识别消息,包括:所述事件管理中心将来自不同通道优先级的事件通知通道的消息存储在对应等级的消息队列中,按照优先级或者加权轮询的调度方式识别不同等级消息队列中的消息。4.根据权利要求2所述的事件管理方法,其特征在于,基于UNIX域套接字技术实现事件通知通道和事件接收通道的建立。5.根据权利要求1所述的事件管理方法,其特征在于,所述方法还包括:在所述消息为事件接收者发送的操作消息时,所述事件管理中心根据所述操作消息对所述事件与事件接收者对应关系数据结构进行修改;其中,所述操作消息包括:接收者注册、接收者增加关注事件或者接收者删除关注事件。6.根据权利要求1或5所述的事件管理方法,其特征在于,所述事件与事件接收者对应关系数据结构包括:事件控制结构、接收者控制结构和事件与事件接收者对应关系控制结构;每个事件对应一事件控制结构,每个接收者控制结构对应一个接收者;所述事件与事件接收者对应关系控制结构将事件控制结构与接收者控制结构联系在一起,建立起二者之间的对应关系,其中:所述事件控制结构包括:事件标识,以及用于指向事件与事件接收者对应关系控制结构的第一节点组成的第一链表,其中,一个所述第一节点用于指向一个事件与事件接收者对应关系控制结构;所述接收者控制结构包括:接收者标识,以及用于指向一个事件与事件接收者对应关系控制结构的第二节点组成的第二链表,其中,一个所述第二节点用于指向一个事件与事件接收者对应关系控制结构;所述事件与事件接收者对应关系控制结构包括:第一链表节点、第二链表节点、事件控制结构指针和接收者控制结构指针;所述事件控制结构指针用于指向事件控制结构,所述接收者控制结构指针用于指向接收者控制结构,所述第一链表节点用于挂载所述事件控制结构指针指向的事件控制结构中的第一链表,所述第二链表节点用于挂载所述接收者控制结构指针指向的接收者控制结构中的第二链表。2CN108319509A权利要求书23页7.根据权利要求6所述的事件管理方法,其特征在于,所述接收者信息包括接收者标识或者接收者标识对应的事件接收通道标识。8.根据权利要求6所述的事件管理方法,其特征在于,所述事件控制结构采用红黑二叉树实现,所述红黑二叉树的一个节点对应存储一个事件控制结构。9.根据权利要求5所述的事件管理方法,其特征在于,所述事件管理中心接收消息,包括:所述事件管理中心通过预先建立的事件通知通道接收消息;每条事件通知通道对应一通道优先级,用优先级最高的事件通知通道接收所述操作消息。i〇.—种事件管理系统,其特征在于,包括:接收模块,用于接收消息;识别模块,用于识别所述消息;搜索模块,用于在所述消息为事件监测点发送的事件通知时,根据所述事件通知中的事件标识ID,搜索事件与事件接收者对应关系数据结构,获取关注该事件的所有事件接收者的信息;发送模块,用于基于所获取的信息将所述事件通知发送给关注该事件的所有事件接收者。11.根据权利要求10所述的事件管理系统,其特征在于,所述接收模块接收消息包括:通过预先建立的事件通知通道接收消息;所述发送模块将所述事件通知发送给关注该事件的所有事件接收者包括:通过预先建立的事件接收通道将所述事件通知发送给关注该事件的所有事件接收者。12.根据权利要求11所述的事件管理系统,其特征在于,每个事件对应一事件优先级,每条事件通知通道对应一通道优先级,其中,事件通知通道按照事件优先级划分优先等级,一事件优先级唯一对应一事件通知通道优先等级;一优先级事件的事件通知仅在对应优先等级的事件通知通道上传送;所述识别模块识别消息包括:所述事件管理中心将来自不同通道优先级的事件通知通道的消息存储在对应等级的消息队列中,按照优先级或者加权轮询的调度方式识别不同等级消息队列中的消息。13.根据权利要求10所述的事件管理系统,其特征在于,所述事件管理系统还包括:更新模块,用于所述消息为事件接收者发送的操作消息时,根据所述操作消息对所述事件与事件接收者对应关系数据结构进行修改;其中,所述操作消息包括:事件接收者注册、事件接收者增加关注事件或者事件接收者删除关注事件。14·根据权利要求10或13所述的事件管理系统,其特征在于,所述事件与事件接收者对应关系数据结构包括:事件控制结构、接收者控制结构和事件与事件接收者对应关系控制结构;每个事件对应一事件控制结构,每个接收者控制结构对应一个接收者;所述事件与事件接收者对应关系控制结构将事件控制结构与接收者控制结构联系在一起,建立起二者之间的对应关系,其中:所述事件控制结构包括:事件标识,以及用于指向事件与事件接收者对应关系控制结构的第一节点组成的第一链表,其中,一个所述第一节点用于指向一个事件与事件接收者对应关系控制结构;所述接收者控制结构包括:接收者标识,以及用于指向一个事件与事件3CN108319509A权利要求书33页接收者对应关系控制结构的第二节点组成的第二链表,其中,一个所述第二节点用于指向一个事件与事件接收者对应关系控制结构;所述事件与事件接收者对应关系控制结构包括:第一链表节点、第二链表节点、事件控制结构指针和接收者控制结构指针;所述事件控制结构指针用于指向事件控制结构,所述接收者控制结构指针用于指向接收者控制结构,所述第一链表节点用于挂载所述事件控制结构指针指向的事件控制结构中的第一链表,所述第二链表节点用于挂载所述接收者控制结构指针指向的接收者控制结构中的第二链表。15.根据权利要求14所述的事件管理系统,其特征在于,所述事件控制结构采用红黑二叉树实现,所述红黑二叉树的一个节点对应存储一个事件控制结构。16·—种主控设备,其特征在于,包括:存储器和处理器,存储器用于存储执行指令;处理器调用所述执行指令,用于执行如权利要求1-9任一项所述的事件管理方法。4

百度查询: 瑞斯康达科技发展股份有限公司 一种事件管理方法、系统及主控设备

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。