CN108093070A - 一种物联网数据服务中间件*** - Google Patents
一种物联网数据服务中间件*** Download PDFInfo
- Publication number
- CN108093070A CN108093070A CN201711446046.6A CN201711446046A CN108093070A CN 108093070 A CN108093070 A CN 108093070A CN 201711446046 A CN201711446046 A CN 201711446046A CN 108093070 A CN108093070 A CN 108093070A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- interface
- protocol
- service
- 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
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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- 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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- 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/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- 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/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明属于物联网技术领域,具体为一种物联网数据服务中间件***。该***主要包括:设备管理模块,协议解析模块,数据交互模块以及数据库存取接口,数据推送订阅接口,外部***服务包装接口。外部传感器设备通过网关向中间件***发送数据,设备管理模块根据其数据包判断其所用协议是否在协议解析模块中的配置文件中配置,若已配置,则为该传感器建立对应虚拟实体,并将数据包传送到协议解析模块中,根据对应协议封装类进行拆包,拆包之后的数据进入数据交互模块进行统一格式转换,并进入数据队列中等待处理;三种数据接口分别用于:提供数据库存取操作,为推送服务***将数据推送到订阅的用户***中去,将数据传到外部服务***作为其源数据使用。
Description
技术领域
本发明属于物联网技术领域,具体涉及一种提供数据服务的物联网中间件***。
背景技术
物联网的核心是互联网,也就是信息和数据的获取、处理与交互。与互联网不同的是,物联网缺少如HTTP、TCP/IP等被广泛采纳的规范与标准,不同的设备生产厂家会根据自己的需求定义一套自己的数据通讯和解析标准。然而,物联网是一个相对开放的生态环境,设备和数据异构性造成了严重的兼容问题,为应用服务的复用和统一造成了巨大困难。
为了屏蔽设备、数据和协议上的异构性,需要提供一套统一的描述、获取、操作模型与方案,为上层应用提供统一的服务调用接口。同时,为了满足应用服务的高复用性,需要将整体***进行分层和解耦。物联网生态***是物理设备、智能网关和各类***及云服务构成的复杂网络,为这些实体间的数据交互提供统一的平台是一项重要的工作。
发明内容
本发明的目的是为互联网企业提供了一种数据服务中间件***,该***可兼容多种物联网设备传输协议,同时具有多种常用数据库存取接口,数据推送订阅接口以及外部***服务包装接口。
本发明提供的数据服务中间件***,包括:设备管理模块,协议解析模块,数据交互模块,以及对外的三个数据处理接口,分别是:数据库存取接口,数据推送订阅接口,外部***服务包装接口。如图1所示。
该中间件***工作的基本流程为:外部传感器设备通过网关向中间件***发送数据,中间件的设备管理模块根据数据包判断其所用协议是否在协议解析模块中的配置文件中配置,若已配置,则为该传感器建立对应虚拟实体,并将数据包传送到协议解析模块中,并根据对应协议封装类进行拆包,拆包之后的数据进入数据交互模块进行统一的格式转换,并进入数据队列中等待处理;三个数据处理接口中,数据库存取接口用于提供数据库存取的操作,用户通过调用该接口的对应实现函数进行对应数据库的数据存取操作;数据推送订阅接口是利用第三方推送服务***将数据推送到订阅的用户***中去;外部***服务包装接口是将对应的数据传到外部服务***,作为其源数据使用。
本发明中,所述设备管理模块,如图2所示,包括协议判断子模块和虚拟实体的构建子模块;协议判断子模块主要用于判断外部设备所用协议是否在中间件***中配置,若已配置,则由虚拟实体构建子模块将其抽象成对应的虚拟实体类。
关于协议判断子模块,原理在于来自物理设备的数据包,由两部分组成:包头和数据域;包头含有数据包的标识性信息,相当于数据包的元数据,一般含有协议标识符、数据包长度和设备信息等;数据域则包含最终传输的有效数据,如传感器类实体发送的感应数据,同时该子模块具有到协议解析模块的配置文件的映射,即可实现根据包头信息判断所用协议并查询配置文件判断是否能够解析。
关于虚拟实体构建子模块,该虚拟实体包含四项基本属性,分别是唯一标识、在线状态、标签、协议解析。其中,唯一标识由序号+协议编号的组合编码方式实现;在线状态用于表明设备的上下线状态,即是否连入该中间件***;标签用于服务的发现与搜索,一般以描述设备服务的关键词作为标签,通过关键词匹配来实现服务搜索的功能;协议解析是对应下个模块--协议解析模块的拆包功能。同时,不同类型的虚拟实体根据其具体功能可以加上对应的属性,例如,感应器类虚拟实体则需要加上数据域这一属性来筛选数据;如虚拟实体对应的网络地址,用于以后的设备控制和数据交互;如虚拟实体对应的协议解析的引用,用于之后的数据包拆包。同时,该模块维护了一张虚拟实体表,即虚拟实体与网络地址的映射表,可以根据该映射表找到物理实体所在的网络地址,从而可以完成相应的交互功能。
本发明中,所述协议解析模块,如图3所示,包括:协议JSON配置文件,协议匹配器,协议封装三个部分。其中,协议封装用于将该***需要用到的协议进行封装,实现对应的协议封装类;协议JSON配置文件是将已经实现封装的协议的相关标识信息写入该JSON格式的文件中;协议匹配器是根据协议JSON配置文件来判断是否可以解析,若配置文件中存在则调用对应协议封装类进行解析。该协议解析模块用于数据包的拆包,封装了现阶段物联网厂商常用的一些数据传输协议,如http协议,当所接外部设备使用的是JSON配置文件不包含的协议时,只需要封装新的协议类,并写入配置文件即可,数据包经解析后传入数据交互模块。
数据包的拆包即协议解析;现阶段,物联网设备厂商采用的获取或发送数据的方式基本可分为两类:第一类提供明确的通讯协议、数据传输格式与数据包具体字段含义,我们直接根据字段含义实现对应的数据提取函数即可。第二类则是将所有数据交互的相关逻辑封装为SDK,提供对应的接口供使用者调用,此时我们只需要在该SDK外层再包装一层调用接口即可实现数据的解析。所以,该模块的协议封装类只需要实现数据提取函数(第一类)或调用SDK方法(第二类),并将其打包为顶层统一的接口即可。
关于协议JSON配置文件,包含了以下字段:协议名称、协议类型、数据包长度、数据包前缀、类名。协议类型即上文提到的现阶段的两种数据发送方式,数据包前缀用于判断协议类型、类名用于映射对应协议封装类,而协议封装类则是有对应的数据包分割方式,用于将连续的数据流按协议规定进行分割。
本发明中,所述数据交互模块,将协议解析模块传来的数据进行格式转换,转换成统一的数据类型,便于上层接口对数据的处理交互,同时也提供该统一类型向多种各类型数据的转换,便于上层接口对底层设备的控制,即该模块屏蔽了数据的异构性。转换后的数据进入数据队列等待处理。
本发明中,所述数据库存取接口,提供多种常用数据库的数据存取接口,例如MYSQL,SQLServer,Oracle。用户只需要根据对应的配置文件调用相应的接口函数即可完成数据的存储与简单查询提取。如需将数据存如外部的MYSQL数据库,只需要写入配置文件,包括数据库名称,对应的包含用户名密码的URL地址,再调用对应的save函数即可完成数据在外部数据库的存储。
本发明中,所述数据推送订阅接口,提供多种常用的数据推送订阅***的接口,例如阿里推送,小米推送,用户只需要根据配置文件调用对应接口的函数即可实现消息的推送。
对于数据推送,每条进入推送***的数据都会被包装成有一个全局唯一的Token参数的消息类,标识了该条数据的“身份信息”,说明各数据需要被推送到哪个设备中,即该消息类包含了token参数和对应的数据参数,再调用对应的Push()方法即可完成数据推送。
本发明中,所述外部***服务包装接口,提供中间件与外部***服务交互的接口,外部***服务如需要对应设备的数据,不需要针对该设备再开发一套数据接收***,只需要将该设备连入中间件,然后调用该接口即可。这就实现了外部***服务的包装。如果遇到复杂的外部***服务,如包含了一系列顺序操作的交互,即包含了依赖关系,则我们需要将这一特定的按顺序的交互打包成一个”事务”交由中间件处理,故当外部***服务保护一组打包的请求时,先检测是否有依赖关系,如果有则按照依赖的顺序依次进行交互,然后将最终结果返回至调用***。该模块包含JSON格式的依赖配置文件,每个外部***服务对应一个,同时在进行按照依赖顺序进行交互之前,会使用Tarjan算法检测其是否存在循环依赖。
对于所述的Tarjan算法,是封装的用来检测有向图的强连接分量,即是否存在环的算法,在本中间件***中,每个外部实体,不论是物理设备还是服务,在该中间件中都存在对应虚拟实体并都有对应的唯一标识,当外部***需要与某些虚拟对象进行交互时,则将这些虚拟实体抽象成有向图中的节点并根据依赖关系形成一张有向图,然后使用该算法进行检测即可。
Tarjan算法的流程如下:
1.首先就是按照深度优先搜索算法搜索的次序对图中所有的节点进行搜索;
2.在搜索过程中,对于任意节点u和与其相连的节点v,根据节点v是否在栈,进行不同的操作:
若节点v不在栈中,即节点v还没有被访问过,则继续对v进行深度搜索;
若节点v已经在栈中,即已经被访问过,则判断节点v的DFN值和节点u的low值的大小来更新节点u的low值。如果节点v的 DFN值要小于节点u的low值,根据low值的定义(能够回溯到的最早的已经在栈中的节点),用DFN值来更新u 的low值;
3.在回溯过程中,对于任意节点u与其子节点v的low值来更新节点u的low值;
4.对于一个连通图,有且仅有一个节点u的DFN值和low值相等。该节点一定是在深度遍历的过程中,该连通图中第一个被访问过的节点,通过判断节点的low值和DFN值是否相等来判断是否已经找到一个子连通图;如果DFN值和low值相等的节点是该连通图中第一个被访问到的节点,则证明该图不是连通图。
Tarjan算法的伪代码见附录1。
本发明的优点在于:
1.将所有连到该中间件***的物理实体抽象为虚拟实体,同时维护了一张映射表从而可以通过虚拟实体来找到对应的物理实体,即实现了两者的互相转换。
2.基本实现了外部实体的即插即用。因为该中间件***已经封装了物联网硬件厂商常用的数据传输协议。
3.给用户提供了较为方便的数据访问接口。上文提到的数据存取,数据推送订阅,外部***服务三个接口都是比较常用的,其中外部***服务接口允许用户在中间件***之上再提供对外的服务,大大提升了中间件***的可扩展性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为该物联网数据服务中间件的结构图。
图2为设备管理模块的结构图。
图3为协议解析模块的结构图。
图4为实施实例的结构图。
具体实施方式
下面结合基于该数据服务中间件平台的节能控制解决方案实施实例对本发明做进一步详细阐述。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图4所示,本实施例的主要工作机制为:实时获取房间内的温度数据与用户的当前位置,外部预测***根据历史轨迹数据预测用户的到家时间,并结合历史升温曲线判断是否需要打开或关闭温控设备,同时推送消息给安卓APP。
1.设备管理模块。该实施实例中涉及到的安卓App,南京物联的智能开关,连接在IntelEdison开发板上的DFRobot温湿度传感器以及由Python编写的预测时间,发出控制信号的外部服务***都在中间件平台中建立了对应的虚拟实体。
感应器类虚拟实体的JSON配置文件如附录2所示。
JSON配置文件包含了实体类型,全局唯一的ID号,所用协议,标签以及数据敏感度等5个字段。即是传感器实体类型,使用的Intel Edison厂商的协议,是放在房间的感应温度的传感器,对温度变化的敏感程度是0.5,即数据变化范围超过0.5才会被接收。
其中sensorId为设备的物理唯一表示码,是由生产厂商的英文名称与设备的序列号组成。虽然生产厂商对序列号的编码标准各不相同,但同一厂商的产品序列号不会重复,因此该表示码能够唯一确定一个物理设备。
2.协议解析模块。南京物联公司,Intel Edison开发板的数据传输协议以及安卓APP的http传输协议都已经在该模块中建立了相应的封装类,并写入了配置文件,从而可以进行对应的数据交互。
协议JSON配置文件格式如附录3所示。
南京物联公司的协议,协议类型是SDK类型,数据包长度是19字节,数据包包头是27dd4a,对应的协议封装类类名是ProtocolNanjinWulian。
即将两种协议的协议名称,协议类型,数据包长度,数据包包头以及对应的封装类都进行了定义,如果还需要再加入新的协议,则只需要在该配置文件中继续添加并封装对应的协议类即可。
3.数据交互模块。在该实例中,所有数据,控制信号都经由该模块进行统一转换,然后进行对应的处理,如推送到安卓APP中,对数据库进行存取操作,与外部***进行数据交互。
该实例实现了一个通用的数据解析器。该数据解析器可以根据元数据正确地选择解析协议,并根据解析协议正确分割数据包。数据解析器类的基本属性有两个:协议编号和协议规定的数据包分割方式。协议编号是一个全局唯一的协议标识,数据包分割方式则用于将连续数据流按协议规定进行分割。
协议规定的数据包分割方式JSON定义,参见附录4。
其中,divideArray标记了数据流的分割长度和分割后每段数据的数据类型。
4.数据库存取接口。该接口用来存储安卓APP传送的GPS位置数据和对应的时间数据,还有传感器的温度数据,同时也给外部***提供了数据的查询提取操作。数据库***在中间件平台的外部,使用MySQL实现。所有虚拟实体都不会与真正的数据库***直接交互,而是通过数据存取接口进行数据库IO的操作。在传感器虚拟实体的当前状态被刷新后,数据交互模块开始根据JSON配置文件的定义调用对应接口将数据存入MySQL中。
5.推送与订阅接口。该接口使用阿里云推送完成了对安卓APP 的提醒消息推送。APP经在阿里云推送平台注册后,可以得到token参数,然后根据token参数以及对应的数据封装成消息类,调用阿里云推送提供的SDK方法即可完成消息的推送。
6.外部***服务接口。预测***通过该接口与底层设备进行交互,该预测***需要的两类数据,温度数据和GPS数据没有先后顺序,顾不存在依赖,即不需要配置对应的依赖文件,否则就需要编写对应的依赖配置文件进行依赖解析。
上述说明示出并描述了本发明的优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
附录1,Tarjan算法的伪代码:
tarjan(u)
DFN[u]=Low[u]=++Index// 为节点u设定次序编号和Low初值
Stack.push(u)// 将节点u压入栈中
for each (u, v) in E// 枚举每一条边
if (v is not visited)// 如果节点v未被访问过
tarjan(v)// 递归
Low[u] = min(Low[u], Low[v])
else if (v in S)// 如果节点v还在栈内
Low[u] = min(Low[u], DFN[v])
if (DFN[u] == Low[u])// 如果节点u是强连通分量的根
repeat
v = S.pop// 将v退栈,为该强连通分量中一个顶点
print v
until (u== v)。
附录2,感应器类虚拟实体的JSON配置文件格式:
[
{
"entityType": "sensor",
"sensorId": "inteledison.XXX",
"protocol": "IntelEdison",
"tags": ["temperature", "room"],
"sensitivity": 0.5
},
{
"entityType": "sensor",
"sensorId": "inteledison.XXX",
"protocol": "IntelEdison",
"tags": ["humidity", "room"],
"sensitivity": 1
}
]。
附录3,协议JSON配置文件格式:
[
{
"protocolName": "NanjinWulian",
"protocolType": "sdk",
"streamLength": "19",
"streamPrefix": "27dd4a",
"className": "ProtocolNanjinWulian"
}
]。
附录4,协议规定的数据包分割方式JSON定义:
[
{
"protocolName": "NanjinWulian",
"divideArray": [
{
"length": 1,
"type": "boolean"
}
]
},
{
"protocolName": "IntelEdison",
"divideArray": [
{
"length": 2,
"type": "double"
},
{
"length": 2,
"type": "double"
}
]
}
]。
Claims (7)
1.一种数据服务中间件***,其特征在于,包括:设备管理模块,协议解析模块,数据交互模块,以及对外的三个数据处理接口:数据库存取接口,数据推送订阅接口,外部***服务包装接口;该中间件***工作的基本流程为:外部传感器设备通过网关向中间件***发送数据,中间件的设备管理模块根据数据包判断其所用协议是否在协议解析模块中的配置文件中配置,若已配置,则为该传感器建立对应虚拟实体,并将数据包传送到协议解析模块中,并根据对应协议封装类进行拆包,拆包之后的数据进入数据交互模块进行统一的格式转换,并进入数据队列中等待处理;三个数据处理接口中,数据库存取接口用于提供数据库存取的操作,用户通过调用该接口的对应实现函数进行对应数据库的数据存取操作;数据推送订阅接口是利用第三方推送服务***将数据推送到订阅的用户***中去;外部***服务包装接口是将对应的数据传到外部服务***,作为其源数据使用。
2.根据权利要求1所述的数据服务中间件***,其特征在于,所述设备管理模块包括协议判断子模块和虚拟实体的构建子模块;协议判断子模块主要用于判断外部设备所用协议是否在中间件***中配置,若已配置,则由虚拟实体构建子模块将其抽象成对应的虚拟实体类;
所述协议解析模块,包括:协议JSON配置文件,协议匹配器,协议封装三个部分;其中,协议封装用于将该***需要用到的协议进行封装,实现对应的协议封装类;协议JSON配置文件是将已经实现封装的协议的相关标识信息写入该JSON格式的文件中;协议匹配器是根据协议JSON配置文件来判断是否可以解析,若配置文件中存在则调用对应协议封装类进行解析;该协议解析模块用于数据包的拆包,数据包经解析后传入数据交互模块;
所述数据交互模块,将协议解析模块传来的数据进行格式转换,转换成统一的数据类型,便于上层接口对数据的处理交互,同时也提供该统一类型向多种各类型数据的转换,便于上层接口对底层设备的控制,即该模块屏蔽了数据的异构性;转换后的数据进入数据队列等待处理;
所述数据库存取接口,用于提供多种常用数据库的数据存取接口,用户只需要根据对应的配置文件调用相应的接口函数即可完成数据的存储与简单查询提取;
所述数据推送订阅接口,用于提供多种常用的数据推送订阅***的接口,用户只需要根据配置文件调用对应接口的函数即可实现消息的推送;
所述外部***服务包装接口,用于提供中间件与外部***服务交互的接口,即外部***服务如需要对应设备的数据,只需要将该设备连入中间件,然后调用该接口即可,从而实现外部***服务的包装。
3.根据权利要求2所述的所述的数据服务中间件***,其特征在于,在设备管理模块中,所述协议判断子模块由两部分组成:包头和数据域;包头含有数据包的标识性信息,含有协议标识符、数据包长度和设备信息;数据域包含最终传输的有效数据;同时该子模块具有到协议解析模块的配置文件的映射,即实现根据包头信息判断所用协议并查询配置文件判断是否能够解析;
所述虚拟实体构建子模块中,虚拟实体包含四项基本属性,分别是唯一标识、在线状态、标签、协议解析;其中,唯一标识由序号+协议编号的组合编码方式实现;在线状态用于表明设备的上下线状态,即是否连入该中间件***;标签用于服务的发现与搜索,以描述设备服务的关键词作为标签,通过关键词匹配来实现服务搜索的功能;协议解析是对应下个模块--协议解析模块的拆包功能;同时,虚拟实体构建子模块维护了一张虚拟实体表,即虚拟实体与网络地址的映射表,根据该映射表可找到物理实体所在的网络地址,从而完成相应的交互功能。
4.根据权利要求3所述的所述的数据服务中间件***,其特征在于,在协议解析模块中,所述数据包的拆包即协议解析,具体做法为;现阶段,物联网设备厂商采用的获取或发送数据的方式基本分为两类:第一类提供明确的通讯协议、数据传输格式与数据包具体字段含义,第二类是将所有数据交互的相关逻辑封装为SDK,提供对应的接口供使用者调用;对于第一类,直接根据字段含义实现对应的数据提取函数即可;对于第二类,只需要在该SDK外层再包装一层调用接口即可实现数据的解析;所以,该模块的协议封装类只需要实现数据提取函数或调用SDK方法,并将其打包为顶层统一的接口即可;
所述协议JSON配置文件,包含以下字段:协议名称、协议类型、数据包长度、数据包前缀、类名。
5.根据权利要求4所述的所述的数据服务中间件***,其特征在于,在数据推送订阅接口中,所述数据推送,每条进入推送***的数据都会被包装成有一个全局唯一的Token参数的消息类,标识该条数据的“身份信息”,说明各数据需要被推送到哪个设备中,即该消息类包含了token参数和对应的数据参数,再调用对应的Push()方法即可完成数据推送。
6.根据权利要求5所述的所述的数据服务中间件***,其特征在于,在外部***服务包装接口中,如果遇到复杂的外部***服务---包含一系列顺序操作的交互,即包含了依赖关系,则将这一特定的按顺序的交互打包成一个”事务”交由中间件处理;当外部***服务保护一组打包的请求时,先检测是否有依赖关系,如果有则按照依赖的顺序依次进行交互,然后将最终结果返回至调用***;该模块包含JSON格式的依赖配置文件,每个外部***服务对应一个,同时在进行按照依赖顺序进行交互之前,使用Tarjan算法检测其是否存在循环依赖:
由于在本中间件***中,每个外部实体,不论是物理设备还是服务,在该中间件中都存在对应虚拟实体并都有对应的唯一标识,即当外部***需要与某些虚拟对象进行交互时,则将这些虚拟实体抽象成有向图中的节点并根据依赖关系形成一张有向图,然后使用Tarjan算法进行检测即可。
7.根据权利要求6所述的所述的数据服务中间件***,其特征在于,所述的Tarjan算法的流程如下:
(1)首先就是按照深度优先搜索算法搜索的次序对图中所有的节点进行搜索;
(2)在搜索过程中,对于任意节点u和与其相连的节点v,根据节点v是否在栈,进行不同的操作:
若节点v不在栈中,即节点v还没有被访问过,则继续对v进行深度搜索;
若节点v已经在栈中,即已经被访问过,则判断节点v的DFN值和节点u的low值的大小来更新节点u的low值;如果节点v的 DFN值要小于节点u的low值,根据low值的定义(能够回溯到的最早的已经在栈中的节点),用DFN值来更新u 的low值;
(3)在回溯过程中,对于任意节点u与其子节点v的low值来更新节点u的low值;
(4)对于一个连通图,有且仅有一个节点u的DFN值和low值相等;该节点一定是在深度遍历的过程中,该连通图中第一个被访问过的节点,通过判断节点的low值和DFN值是否相等来判断是否已经找到一个子连通图;如果DFN值和low值相等的节点是该连通图中第一个被访问到的节点,则证明该图不是连通图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711446046.6A CN108093070B (zh) | 2017-12-27 | 2017-12-27 | 一种物联网数据服务中间件*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711446046.6A CN108093070B (zh) | 2017-12-27 | 2017-12-27 | 一种物联网数据服务中间件*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108093070A true CN108093070A (zh) | 2018-05-29 |
CN108093070B CN108093070B (zh) | 2020-12-18 |
Family
ID=62179752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711446046.6A Active CN108093070B (zh) | 2017-12-27 | 2017-12-27 | 一种物联网数据服务中间件*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108093070B (zh) |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109167809A (zh) * | 2018-07-18 | 2019-01-08 | 浙江苍南仪表集团股份有限公司 | 一种物联网平台对接数据传输格式处理方法 |
CN109249836A (zh) * | 2018-11-08 | 2019-01-22 | 国久大数据有限公司 | 新能源汽车充电桩数据传输方法及*** |
CN109828972A (zh) * | 2019-01-18 | 2019-05-31 | 四川长虹电器股份有限公司 | 一种基于有向图结构的数据集成方法 |
CN109922139A (zh) * | 2019-01-31 | 2019-06-21 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 异构网络的动态服务发现与发布方法 |
CN110166291A (zh) * | 2019-05-17 | 2019-08-23 | 贵州航天智慧农业有限公司 | 一种基于单端口的多协议设备管理方法 |
CN110262903A (zh) * | 2019-05-17 | 2019-09-20 | 北京恒赢智航科技有限公司 | 一种基于航空订座***的中间件架构及方法 |
CN110380913A (zh) * | 2019-08-19 | 2019-10-25 | 贵州航天智慧农业有限公司 | 一种基于单端口的多协议设备管理方法及*** |
CN110636136A (zh) * | 2019-10-11 | 2019-12-31 | 山东有人信息技术有限公司 | 一种对接物联网云平台的信息交互方法以及中间件*** |
CN110868336A (zh) * | 2019-11-11 | 2020-03-06 | 北京明略软件***有限公司 | 数据管理方法、装置和计算机可读存储介质 |
CN111212120A (zh) * | 2019-12-24 | 2020-05-29 | 武汉理工光科股份有限公司 | 基于消防物联网数据采集与传输的物联中间件 |
CN111352741A (zh) * | 2018-12-21 | 2020-06-30 | 马上消费金融股份有限公司 | 接口调用的方法、装置、智能终端及存储装置 |
CN111431900A (zh) * | 2020-03-23 | 2020-07-17 | 厦门立林科技有限公司 | 一种可动态扩展的智能家居协议对接***及方法 |
CN111585958A (zh) * | 2020-04-01 | 2020-08-25 | 西安电子科技大学 | 物联网平台异构设备自适应接入方法、*** |
CN111586137A (zh) * | 2020-04-30 | 2020-08-25 | 湖南苏科智能科技有限公司 | 一种基于智能港的物联网中间件***及物联网*** |
CN111614507A (zh) * | 2020-04-01 | 2020-09-01 | 西安电子科技大学 | 一种网络协议特征识别方法 |
CN111885170A (zh) * | 2020-07-23 | 2020-11-03 | 平安科技(深圳)有限公司 | 物联网控制***的处理方法、***、云端服务器及介质 |
CN111897843A (zh) * | 2020-06-19 | 2020-11-06 | 深圳奇迹智慧网络有限公司 | 物联网数据流转策略的配置方法、装置和计算机设备 |
CN112134792A (zh) * | 2020-09-24 | 2020-12-25 | 山东交通学院 | 一种远程列车网络通信接口测试网关设备及*** |
CN112181688A (zh) * | 2020-09-29 | 2021-01-05 | 银盛支付服务股份有限公司 | 一种基于rocketmq中间件的大批量数据处理方法及*** |
CN112217697A (zh) * | 2020-09-24 | 2021-01-12 | 复旦大学 | 一种物联网设备智能控制*** |
CN112311796A (zh) * | 2020-10-30 | 2021-02-02 | 广州朗国电子科技有限公司 | 一种基于安卓主板的多接口统一通信处理方法及*** |
CN112637198A (zh) * | 2020-12-22 | 2021-04-09 | 辽宁大学 | 一种基于OPC UA PubSub的多协议自适配模块设计方法 |
CN113064359A (zh) * | 2021-06-02 | 2021-07-02 | 北京奇岱松科技有限公司 | 模型建立方法和实体控制方法、装置、设备和介质 |
WO2021197327A1 (zh) * | 2020-03-31 | 2021-10-07 | 华为技术有限公司 | 信号处理方法及相关设备 |
CN113726762A (zh) * | 2021-08-27 | 2021-11-30 | 四川长虹网络科技有限责任公司 | 基于配置文件的物联网设备协议解析方法 |
CN113923266A (zh) * | 2021-10-27 | 2022-01-11 | 上海海洋工程装备制造业创新中心有限公司 | 一种海洋工程装备标识解析方法及*** |
CN113938529A (zh) * | 2021-08-30 | 2022-01-14 | 上海威派格智慧水务股份有限公司 | 一种多协议转换接入***及方法 |
CN114143585A (zh) * | 2021-11-02 | 2022-03-04 | 深圳Tcl新技术有限公司 | 一种数据处理方法、装置及存储介质和终端设备 |
CN114244915A (zh) * | 2022-02-23 | 2022-03-25 | 四川鸿创电子科技有限公司 | 一种支持多种协议的数据传输方法、装置及存储介质 |
CN114710517A (zh) * | 2022-02-21 | 2022-07-05 | 交控科技股份有限公司 | 物联数据模型管理*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106453482A (zh) * | 2016-08-05 | 2017-02-22 | 成都卡德智能科技有限公司 | 一种物联网中间件***及物联网*** |
US20170255314A1 (en) * | 2016-03-02 | 2017-09-07 | Samsung Electronics Co., Ltd | Electronic device and operating method thereof |
CN107358388A (zh) * | 2016-11-03 | 2017-11-17 | 厦门嵘拓物联科技有限公司 | 一种基于物联网的仓储管理***及基于该***的仓储质量风险评估方法 |
-
2017
- 2017-12-27 CN CN201711446046.6A patent/CN108093070B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170255314A1 (en) * | 2016-03-02 | 2017-09-07 | Samsung Electronics Co., Ltd | Electronic device and operating method thereof |
CN106453482A (zh) * | 2016-08-05 | 2017-02-22 | 成都卡德智能科技有限公司 | 一种物联网中间件***及物联网*** |
CN107358388A (zh) * | 2016-11-03 | 2017-11-17 | 厦门嵘拓物联科技有限公司 | 一种基于物联网的仓储管理***及基于该***的仓储质量风险评估方法 |
Non-Patent Citations (3)
Title |
---|
XIAOBIN XU等: ""A Middleware for Environmental Monitoring and Control"", 《2016 IEEE INTERNATIONAL CONFERENCE ON SERVICES COMPUTING》 * |
方明星: ""物联网复杂事件处理与中间件技术研究"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
赫枫龄等: ""用有向图法解决公式循环依赖问题"", 《计算机工程与设计》 * |
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109167809A (zh) * | 2018-07-18 | 2019-01-08 | 浙江苍南仪表集团股份有限公司 | 一种物联网平台对接数据传输格式处理方法 |
CN109249836A (zh) * | 2018-11-08 | 2019-01-22 | 国久大数据有限公司 | 新能源汽车充电桩数据传输方法及*** |
CN111352741A (zh) * | 2018-12-21 | 2020-06-30 | 马上消费金融股份有限公司 | 接口调用的方法、装置、智能终端及存储装置 |
CN109828972A (zh) * | 2019-01-18 | 2019-05-31 | 四川长虹电器股份有限公司 | 一种基于有向图结构的数据集成方法 |
CN109828972B (zh) * | 2019-01-18 | 2022-03-22 | 深圳易嘉恩科技有限公司 | 一种基于有向图结构的数据集成方法 |
CN109922139A (zh) * | 2019-01-31 | 2019-06-21 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 异构网络的动态服务发现与发布方法 |
CN109922139B (zh) * | 2019-01-31 | 2021-09-03 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 异构网络的动态服务发现与发布方法 |
CN110166291A (zh) * | 2019-05-17 | 2019-08-23 | 贵州航天智慧农业有限公司 | 一种基于单端口的多协议设备管理方法 |
CN110262903B (zh) * | 2019-05-17 | 2021-09-03 | 北京恒赢智航科技有限公司 | 一种基于航空订座***的中间件架构及方法 |
CN110262903A (zh) * | 2019-05-17 | 2019-09-20 | 北京恒赢智航科技有限公司 | 一种基于航空订座***的中间件架构及方法 |
CN110380913A (zh) * | 2019-08-19 | 2019-10-25 | 贵州航天智慧农业有限公司 | 一种基于单端口的多协议设备管理方法及*** |
CN110636136A (zh) * | 2019-10-11 | 2019-12-31 | 山东有人信息技术有限公司 | 一种对接物联网云平台的信息交互方法以及中间件*** |
CN110868336A (zh) * | 2019-11-11 | 2020-03-06 | 北京明略软件***有限公司 | 数据管理方法、装置和计算机可读存储介质 |
CN110868336B (zh) * | 2019-11-11 | 2021-11-02 | 北京明略软件***有限公司 | 数据管理方法、装置和计算机可读存储介质 |
CN111212120A (zh) * | 2019-12-24 | 2020-05-29 | 武汉理工光科股份有限公司 | 基于消防物联网数据采集与传输的物联中间件 |
CN111431900A (zh) * | 2020-03-23 | 2020-07-17 | 厦门立林科技有限公司 | 一种可动态扩展的智能家居协议对接***及方法 |
CN111431900B (zh) * | 2020-03-23 | 2022-06-14 | 厦门立林科技有限公司 | 一种可动态扩展的智能家居协议对接***及方法 |
WO2021197327A1 (zh) * | 2020-03-31 | 2021-10-07 | 华为技术有限公司 | 信号处理方法及相关设备 |
CN111614507A (zh) * | 2020-04-01 | 2020-09-01 | 西安电子科技大学 | 一种网络协议特征识别方法 |
CN111585958B (zh) * | 2020-04-01 | 2021-10-29 | 西安电子科技大学 | 物联网平台异构设备自适应接入方法、*** |
CN111614507B (zh) * | 2020-04-01 | 2021-11-05 | 西安电子科技大学 | 一种网络协议特征识别方法 |
CN111585958A (zh) * | 2020-04-01 | 2020-08-25 | 西安电子科技大学 | 物联网平台异构设备自适应接入方法、*** |
CN111586137A (zh) * | 2020-04-30 | 2020-08-25 | 湖南苏科智能科技有限公司 | 一种基于智能港的物联网中间件***及物联网*** |
CN111897843B (zh) * | 2020-06-19 | 2023-10-31 | 深圳奇迹智慧网络有限公司 | 物联网数据流转策略的配置方法、装置和计算机设备 |
CN111897843A (zh) * | 2020-06-19 | 2020-11-06 | 深圳奇迹智慧网络有限公司 | 物联网数据流转策略的配置方法、装置和计算机设备 |
CN111885170A (zh) * | 2020-07-23 | 2020-11-03 | 平安科技(深圳)有限公司 | 物联网控制***的处理方法、***、云端服务器及介质 |
CN111885170B (zh) * | 2020-07-23 | 2022-03-11 | 平安科技(深圳)有限公司 | 物联网控制***的处理方法、***、云端服务器及介质 |
CN112217697A (zh) * | 2020-09-24 | 2021-01-12 | 复旦大学 | 一种物联网设备智能控制*** |
CN112134792A (zh) * | 2020-09-24 | 2020-12-25 | 山东交通学院 | 一种远程列车网络通信接口测试网关设备及*** |
CN112181688A (zh) * | 2020-09-29 | 2021-01-05 | 银盛支付服务股份有限公司 | 一种基于rocketmq中间件的大批量数据处理方法及*** |
CN112311796A (zh) * | 2020-10-30 | 2021-02-02 | 广州朗国电子科技有限公司 | 一种基于安卓主板的多接口统一通信处理方法及*** |
CN112637198B (zh) * | 2020-12-22 | 2023-04-18 | 辽宁大学 | 一种基于OPC UA PubSub的多协议自适配模块设计方法 |
CN112637198A (zh) * | 2020-12-22 | 2021-04-09 | 辽宁大学 | 一种基于OPC UA PubSub的多协议自适配模块设计方法 |
CN113064359A (zh) * | 2021-06-02 | 2021-07-02 | 北京奇岱松科技有限公司 | 模型建立方法和实体控制方法、装置、设备和介质 |
CN113726762A (zh) * | 2021-08-27 | 2021-11-30 | 四川长虹网络科技有限责任公司 | 基于配置文件的物联网设备协议解析方法 |
CN113938529A (zh) * | 2021-08-30 | 2022-01-14 | 上海威派格智慧水务股份有限公司 | 一种多协议转换接入***及方法 |
CN113923266A (zh) * | 2021-10-27 | 2022-01-11 | 上海海洋工程装备制造业创新中心有限公司 | 一种海洋工程装备标识解析方法及*** |
CN114143585A (zh) * | 2021-11-02 | 2022-03-04 | 深圳Tcl新技术有限公司 | 一种数据处理方法、装置及存储介质和终端设备 |
CN114710517A (zh) * | 2022-02-21 | 2022-07-05 | 交控科技股份有限公司 | 物联数据模型管理*** |
CN114244915A (zh) * | 2022-02-23 | 2022-03-25 | 四川鸿创电子科技有限公司 | 一种支持多种协议的数据传输方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108093070B (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108093070A (zh) | 一种物联网数据服务中间件*** | |
US11368522B2 (en) | Lightweight IoT information model | |
US10887394B2 (en) | Mechanism and service for device naming | |
Ruta et al. | Enabling the Semantic Web of Things: framework and architecture | |
CN107197001B (zh) | 一种工业互联网组件信息方法 | |
JP4415789B2 (ja) | 無線通信システム | |
WO2021017634A1 (zh) | 一种Wi-Fi接入点的SSID获取方法、装置、设备和*** | |
US11940778B2 (en) | Method of commissioning a field device in an industrial system network | |
WO2015119901A1 (en) | Enabling resource semantics | |
EP2997499A2 (en) | Semantic naming model | |
WO2012152133A1 (zh) | 一种实现传感器适配的方法和*** | |
WO2012152132A1 (zh) | 一种实现应用平台适配的方法和*** | |
CN108366356B (zh) | M2m***与标识解析***的互通方法及装置 | |
CN103117881A (zh) | 一种物联网资源管理*** | |
KR102094041B1 (ko) | IoT 단말 간 실시간으로 자율적인 상호작용을 위한 RDF 그래프 기반의 Semantic 엔진을 구비한 시스템 | |
CN104205729A (zh) | 网络中的设备配置方法、设备和*** | |
EP2139193B1 (en) | A method of performing data mediation, and an associated computer program product, data mediation device and information system | |
Pfrommer et al. | A common core for information modeling in the Industrial Internet of Things | |
CN115150207B (zh) | 工业网络设备识别方法、装置、终端设备及存储介质 | |
CN114793191A (zh) | 一种基于领域模型的物联网集成***及方法 | |
CN203086518U (zh) | 一种自适应智能dns服务器 | |
Wang et al. | Display Design Model Based on the Internet of Things Prototype System | |
CN104391882A (zh) | 一种大数据转换方法和装置 | |
CN113886481A (zh) | 一种数据库访问方法和*** | |
Lu | A New Industrial Protocol–EIP and Its Application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |