一种事件响应系统、方法、设备以及存储介质与流程

文档序号:16312585发布日期:2018-12-19 05:20阅读:152来源:国知局
一种事件响应系统、方法、设备以及存储介质与流程

本发明涉及物联网通信领域,尤其涉及一种事件响应系统、方法、设备以及存储介质。

背景技术

目前在智慧城市应用解决方案中,广泛地存在着各类传感器,比如光照/水侵/微波感应等,也同时具备不同功能的可控制操作的执行控制器,比如可调光灯具、报警开关等。在实际应用上经常需要按照一定的场景去设计传感器与执行控制器的联动方案。

现有的解决方案存在的主要问题是各类联动方案都是独立设计,并不具备通用性、扩展性与兼容性,无法在智慧城市平台中进行复用以达到有效合理的监控需求。



技术实现要素:

针对上述问题,本发明的目的在于提供一种事件响应系统、方法、设备以及存储介质,能够使得传感器与执行控制器的联动具备通用性、扩展性与兼容性。

本发明实施例提供了一种事件响应系统,包括:

报文转换模块,用于接收物联网设备发送的初始数据,并对所述初始数据进行报文处理生成报文数据;所述初始数据包括事件信息以及数据信息;

设备层驱动模块,用于接收所述报文转换模块发送的报文数据,并对所述报文数据进行转换生成事件名称和事件参数信息;

触发事件引擎模块,用于接收所述事件名称和事件参数信息,并根据所述事件名称判断是否触发事件规则;

所述触发事件引擎模块,还用于当确定所述事件名称触发预定的事件规则后,获取与触发的事件规则对应的规则脚本,将所述事件参数信息传入所述规则脚本以执行生成相应的动作执行参数,并根据所述动作执行参数以及所述事件参数信息生成执行指令;

执行动作驱动模块,用于根据所述执行指令生成相应的执行报文,并将所述执行报文通过所述报文转换模块发送给所述物联网设备,以完成响应。

优选地,所述报文转换模块包括:

实现与所述设备层驱动模块进行数据通信的http客户端;

实现与所述执行动作驱动模块进行数据通信的http服务端;

实现与所述物联网设备进行通信的设备接入服务端;

消息管理器,用于接收和转发来自所述http服务端和所述设备接入服务端的消息;

协议管理控制器,用于接收从所述消息管理器转发来的消息,并对接收到的消息进行协议转换后转发至所述http客户端或所述设备接入服务端。

优选地,

所述设备接入服务端包括tcp服务模块和udp服务模块,所述udp服务模块包括会话控制模块和端口列表;其中,

所述会话控制模块,用于接收由物联网设备上报携带的ip地址和端口号,并与端口列表存储的ip地址和端口号进行比较;其中,如果比较结果一致,则不需要修改;如果比较结果不一致,将新的ip地址和端口号组合更新修改到端口列表中,以达到对端口号进行对应改变。

优选地,所述事件响应系统包括事件引擎数据库,所述事件引擎数据库包括事件规则数据库,所述事件规则数据库用于存储触发事件名称以及对应的事件规则;

则所述触发事件引擎模块具体用于,在事件规则数据库中查询是否与当前的事件名称对应的触发事件名称,以判断是否触发相应的事件规则。

优选地,所述事件引擎数据库还包括规则脚本数据库以及外部接口数据库;

则所述触发事件引擎模块还具体用于,

当确定所述事件规则数据库注册有与所述事件名称对应的事件规则时,从规则脚本数据库中获取与所述事件规则对应的规则脚本;

将所述事件参数信息传入所述规则脚本;

判断执行所述规则脚本是否需要调用外部接口;

若是,则在所述外部接口数据库中查找已经注册的外部接口并同步调用,以返回动作参数;

若否,则执行所述规则脚本以返回动作执行参数;

根据所述动作执行参数以及所述事件参数信息生成执行指令。

优选地,还包括:

数据库接口模块,用于获取json格式的注册报文,并对所述注册报文进行解析,并将生成的解析数据发送到对应的数据库进行注册;其中,所述json格式的注册报文通过用户在上位机管理界面编写相应规则脚本、外部接口数据以及事件规则生成。

优选地,所述初始数据为二进制数据;所述数据信息包括所述物联网设备的设备id。

本发明实施例还提供了一种事件响应方法,包括如下步骤:

接收物联网设备发送的初始数据,并对所述初始数据进行报文处理生成报文数据;所述初始数据包括事件信息以及数据信息;

对所述报文数据进行转换生成事件名称和事件参数信息;

根据所述事件名称判断是否触发事件规则;

当确定所述事件名称触发预定的事件规则后,获取与触发的事件规则对应的规则脚本,将所述事件参数信息传入所述规则脚本以执行生成相应的动作执行参数,并根据所述动作执行参数以及所述事件参数信息生成执行指令;

根据所述执行指令生成相应的执行报文,并将所述执行报文发送给所述物联网设备,以完成响应。

本发明实施例还提供了一种事件响应设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述的事件响应方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述的事件响应方法。

上述一个实施例中,通过触发事件引擎模块实现对事件名称的判断并提供相应的事件规则,从而解决多传感器信号融合问题以及解耦场景中的复杂逻辑关系,并能够实现根据多场景调动传感器与执行器的联动方案,解决不同场景设计方案中的通用性、扩展性与兼容性。

附图说明

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

图1是本发明第一实施例提供的事件响应系统与物联网设备及上位机的一种交互示意图。

图2是本发明优选实施例提供的事件响应系统与物联网设备及上位机的一种交互示意图。

图3是本发明第二实施例提供的事件响应方法的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,本发明第一实施例提供了一种事件响应系统100,包括:

报文转换模块11,用于接收物联网设备发送的初始数据,并对所述初始数据进行报文处理生成报文数据;所述初始数据包括事件信息以及数据信息;

设备层驱动模块10,用于接收所述报文转换模块发送的报文数据,并对所述报文数据进行转换生成事件名称和事件参数信息。

在本实施例中,所述物联网设备例如可为智能摄像头、智能路灯、智能报警开关等,本发明不做具体限定。其中,所述物联网设备与所述事件响应系统100可通过局域网、城域网、广域网等方式进行数据的传输,本发明不做具体限定。

在本实施例中,在建立连接后,所述物联网设备可向所述报文转换模块11发送初始数据,其中,所述初始数据为二进制数据,并包括事件信息以及数据信息;所述数据信息至少包括所述物联网设备的设备id。

在本实施例中,所述设备层驱动模块10在接收到所述报文数据后,根据预先设置的报文规则对报文进行解析,以生成与事件信息相应的事件名称和与数据信息相应的事件参数信息。

触发事件引擎模块20,用于接收所述事件名称和事件参数信息,并根据所述事件名称判断是否触发事件规则;

具体地,在本实施例中,所述事件响应系统100包括事件引擎数据库,所述事件引擎数据库包括事件规则数据库,所述事件规则数据库用于存储触发事件名称以及对应的事件规则;

则所述触发事件引擎模块20具体用于,在事件规则数据库中查询是否与当前的事件名称相一致的触发事件名称,以判断是否触发事件规则。

所述触发事件引擎模块20,还用于当确定所述事件名称触发预定的事件规则后,获取与触发的事件规则对应的规则脚本,将所述事件参数信息传入所述规则脚本以执行生成相应的动作执行参数,并根据所述动作执行参数以及所述事件参数信息生成执行指令。

具体地,所述事件引擎数据库还包括脚本规则数据库以及外部接口数据库;

则所述触发事件引擎模块20还具体用于,

当确定所述事件规则数据库注册有与所述事件名称对应的事件规则时,从规则脚本数据库中获取与所述事件规则对应的规则脚本;

将所述事件参数信息传入所述规则脚本并判断执行所述规则脚本是否需要调用外部接口;

若是,则在所述外部接口数据库中查找已经注册的外部接口并同步调用,以返回动作参数;

若否,则执行所述规则脚本以返回动作执行参数;

根据所述动作执行参数以及所述事件参数信息生成执行指令。

执行动作驱动模块30,用于根据所述执行指令生成相应的执行报文,并将所述执行报文通过所述协议数据转换器210发送给所述物联网设备,以完成响应。

为便于对本实施例的理解,下面以一个实际的例子对本实施例做更进一步的描述。

假设所述物联网设备为智慧路灯系统的集中器(concentrator),并且在事件规则数据库内注册了所述集中器在每次登录时需要执行“校时”的事件规则。

则在集中器首次登录或者在登录后因意外导致掉线后,当集中器与所述事件响应系统建立连接时,会向所述报文转换模块11发送初始数据,初始数据包括登录请求以及集中器id。

所述报文转换模块11对初始数据进行报文处理,生成json格式的报文数据,并通过设备层驱动模块10将所述报文数据转换成相应的事件名称(cculogin)和事件参数信息(ccuid)。

接着,所述触发事件引擎模块20在所述事件规则数据库中查找是否有与所述事件名称(例如为:cculogin)对应的触发事件名称。由于在事件规则数据库内注册了集中器在每次登录时需要执行“校时”的事件规则,因此,所述触发事件引擎模块20查找到了与事件名称“cculogin”对应的事件规则“校时”。

然后,所述触发事件引擎模块20将所述事件参数信息传入相应的规则脚本,并通过执行规则脚本来进行“校时”。规则脚本获取传入的事件参数信息(ccuid)并通过已经注册好的外部接口getccutimezone和事件参数信息ccuid从外部系统获取到时区信息timezone,并且对照系统时区和当前时间来算出一个time。接着,规则脚本返回执行结果为成功及time和ccuid,所述触发事件引擎模块20以返回值time和ccuid作为参数调用生成执行指令。最后,所述执行动作驱动模块30根据所述执行指令组合成相应的执行报文并发送至对应的集中器,使得所述集中器根据事件执行指令进行校时。

需要说明的是,上述例子中,在执行规则脚本时需要调用外部接口,但在一些情况下,执行规则脚本也可能只需要做一个简单的“是”或者“否”的判断,而不需要调用外部接口。

综上所述,本实施例提供的事件响应系统100,实现根据多场景调动传感器与执行器的联动方案,解决不同场景设计方案中的通用性、扩展性与兼容性。触发事件引擎模块20是本系统的核心结构,它主要实现对事件名称的判断并提供相应的事件规则。事件引擎数据库包含外部接口数据库和规则脚本数据库,从而解决多传感器信号融合问题以及解耦场景中的复杂逻辑关系。此外,本系统采用多线程技术和多线程组的线程管理机制,可以应对多设备以及大数据量并发处理问题,提升系统的鲁棒性和稳定性。

请参阅图2,在第一实施例的基础上,优选地,所述报文转换模块11包括:

实现与所述设备层驱动模块进行数据通信的http客户端;

实现与所述执行动作驱动模块30进行数据通信的http服务端;

实现与所述物联网设备200进行通信的设备接入服务端;

消息管理器,用于接收和转发来自所述http服务端和所述设备接入服务端的消息;

协议管理控制器,用于接收从所述消息管理器转发来的消息,并对接收到的消息进行协议转换后转发至所述http客户端或所述设备接入服务端。

在本实施例中,所述协议管理控制器一方面能用于接收从消息管理器转发来的消息,另一方面能用于将接收后的消息转发至所述http客户端或所述设备接入服务端,因此,协议管理控制器与消息管理器、设备接入服务端和所述http客户端、http服务端分别通信连接。

在本实施例中,设备接入服务端用于接收来自于物联网设备200的设备协议报文(设备协议报文即符合设备协议的报文)。同时,设备接入服务端也可以用于向物联网设备200发送符合设备协议的报文。

在本实施例中,由于所述http客户端、http服务端与上位机之间交换的是应用层协议报文,而设备接入服务端与物联网设备200之间交换的是设备协议报文,因此,在http客户端、http服务端与设备接入服务端之间,需要实现对应用层协议报文和设备协议报文之间的转换。本实施例中,采用消息管理器和协议管理控制器两个结构配合工作的方式,高效地实现这一功能。

具体地,无论是http服务端产生的消息,还是设备接入服务端产生的消息,均转发至消息管理器,由所述消息管理器实现消息的存储、接收和转发,再发送给协议管理控制器。协议管理控制器内设置或者存储有各个协议之间的转换规则,因此,其可以独立实现不同协议之间的转换,从而使得整个事件响应系统可以兼容不同厂商不同设备的不同协议,实现数据转换的高效性,提高物联网设备200与上位机通信的响应速度,解决上位机处理报文(报文转换)的负担,使得上位机高效处理信息。

此外,本实施例中,所述设备接入服务端包括tcp服务模块和udp服务模块,并且,udp服务模块包括会话控制模块和端口列表。通过在udp服务模块设置会话控制模块和端口列表,本实施例形成一种udp服务端链路预处理机制,使得报文转换模块在处理udp协议时,减轻整个系统因链路经常更改而对系统造成的负荷。

具体的,会话控制模块和端口列表实现udp服务端链路预处理的机制过程如下:

当物联网设备200将登录包(报文)提供给报文转换模块11后,物联网设备200的uid号码会与登录的ip地址和端口号进行绑定,并将消息保存到udp服务模块;此后,此物联网设备200发送报文给报文转换模块11,报文转换模块11会生成一个包括uid消息的指针捆绑在报文主体里;从此,此物联网设备200的地址变换与更改不会在协议管理控制器进行管理,每次上报携带的ip地址和端口号被会话控制模块接收后,都会在udp服务模块中与端口列表进行比较和修改等相应处理(如果比较结果一致,则不需要修改;如果比较结果不一致,将新的ip地址和端口号组合更新修改到列表中,以达到对端口号改变的应对);报文在后续的协议管理控制里,只会进行内容修改(不会对地址做处理),对应的地址为uid指针,当报文消息处理好,传输回此物联网设备200时,根据这个uid指针映射相应的ip地址和端口号。通过这种工作机制,本实施例能够减少协议管理控制器的内存损耗,提高系统的稳定性。

也就是说,本实施例中,由于在udp服务模块设置了会话控制模块和端口列表,能够实现对udp服务模块中添加端口对比修正机制,将原本容易造成堵塞的端口修正,设置在消息进入协议管理控制器之前进行,减少协议管理控制器处理udp端口号(变化)的工作线程,提升报文转换模块11的工作效率和稳定性。因此,通过协议管理控制器以及udp服务模块的配合,能够解决现有上位机与物联网设备的报文转换问题,解决多设备、大数据量并发处理问题,提高数据转换的效率。

在第一实施例的基础上,优选地,所述事件响应系统100,还包括:

数据库接口模块40,用于获取json格式的注册报文,并对所述注册报文进行解析,并将生成的解析数据发送到对应的数据库进行注册;其中,所述json格式的注册报文通过用户在上位机的管理界面编写相应规则脚本、外部接口数据以及事件规则生成。

本实施例中,用户可以通过上位机的管理界面编写规则脚本、外部接口数据以及事件规则,这些规则命令将通过json报文的格式发送到数据库接口模块40,由所述数据库接口模块40进行解包并进行注册,从而所述数据库接口模块40可以方便的注册规则脚本、外部接口以及事件规则,增加了本系统的扩展性,方便后续的维护工作。

请参阅图3,本发明第二实施例提供了一种事件响应方法,包括如下步骤:

s101,接收物联网设备发送的初始数据,并对所述初始数据进行报文处理生成报文数据;所述初始数据包括事件信息以及数据信息;

s102,对所述报文数据进行转换生成事件名称和事件参数信息;

s103,根据所述事件名称判断是否触发事件规则;

s104,当确定所述事件名称触发预定的事件规则后,获取与触发的事件规则对应的规则脚本,将所述事件参数信息传入所述规则脚本以执行生成相应的动作执行参数,并根据所述动作执行参数以及所述事件参数信息生成执行指令;

s105,根据所述执行指令生成相应的执行报文,并将所述执行报文发送给所述物联网设备,以完成响应。

优选地,还包括事件引擎数据库,所述事件引擎数据库包括事件规则数据库,所述事件规则数据库用于存储触发事件名称以及对应的事件规则;

则所述根据所述事件名称判断是否触发事件规则具体为:

在事件规则数据库中查询是否与当前的事件名称对应的触发事件名称,以判断是否触发相应的事件规则。

优选地,所述事件引擎数据库还包括规则脚本数据库以及外部接口数据库;

则所述当确定所述事件名称触发预定的事件规则后,获取与触发的事件规则对应的规则脚本,将所述事件参数信息传入所述规则脚本以执行生成相应的动作执行参数,并根据所述动作执行参数以及所述事件参数信息生成执行指令具体包括:

当确定所述事件规则数据库注册有与所述事件名称对应的事件规则时,从规则脚本数据库中获取与所述事件规则对应的规则脚本;

将所述事件参数信息传入所述规则脚本并判断执行所述规则脚本是否需要调用外部接口;

若是,则在所述外部接口数据库中查找已经注册的外部接口并同步调用,以返回动作参数;

若否,则执行所述规则脚本以返回动作执行参数;

根据所述动作执行参数以及所述事件参数信息生成执行指令。

优选地,还包括:

获取json格式的注册报文,并对所述注册报文进行解析,并将生成的解析数据发送到对应的数据库进行注册;其中,所述json格式的注册报文通过用户在上位机管理界面编写相应规则脚本、外部接口数据以及事件规则生成。

优选地,所述初始数据为二进制数据;所述数据信息包括所述物联网设备的设备id。

本实施例中,通过对事件名称进行判断并提供相应的事件规则,从而解决多传感器信号融合问题以及解耦场景中的复杂逻辑关系,并能够实现根据多场景调动传感器与执行器的联动方案,解决不同场景设计方案中的通用性、扩展性与兼容性。

本发明第三实施例还提供了一种事件响应设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序。所述处理器执行所述计算机程序时实现上述各个步骤。

示例性的,所述计算机程序可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在事件响应设备中的执行过程。

所述事件响应设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述事件响应设备可包括但不仅限于处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是事件响应设备的示例,并不构成对事件响应设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述事件响应设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述事件响应设备的控制中心,利用各种接口和线路连接整个事件响应设备的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述事件响应设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述事件响应设备集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

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