2. 大规模流数据集成与分析技术北京市重点实验室, 北京 100144
2. Beijing Key Laboratory on Integration and Analysis of Large-scale Stream Data, Beijing 100144, China
物联网的发展使得现实世界和信息世界的连接越来越紧密, 其提供了广泛物理实体的连接能力, 使得海量流式感知数据的实时汇聚成为可能, 进而可通过不同层次的数据处理分析提供新型智能服务和应用[1]. 然而, 在当前的物联网应用系统建设中存在着严重的碎片化、重复化情况, 系统开发代价高周期长; 同时独立建设的物联网应用系统又形成众多具有异构性的新“信息孤岛”, 难以灵活集成[2, 3]. 为此, 大量研究工作将面向服务架构 (service oriented architecture, SOA) 应用到物联网系统中, 通过引入物联网服务 (IoT services) 的概念来解决物联网应用系统涉及的异构性、互操作性和动态性等问题[3-6].
服务模型是SOA和服务计算的核心内容, 有效的服务模型可以提供丰富、全面的服务信息乃至语义, 支持有效的自动分析和推理, 是服务发现、服务选择、服务组合和服务管理等一系列服务计算工作的重要基础. 基于此, 物联网服务模型也成为面向服务的物联网系统研究的重点之一. 然而, 由于传统服务计算理论和技术的设计初衷主要是为了解决网络环境下企业级应用集成问题, 物联网作为“物理、信息和社会的三元融合空间”的诸多新特征使得传统服务计算理论和技术在解决当前物联网系统面临上述问题时尚存在诸多不足和新的挑战; 已有服务模型也大都不能适应物联网环境带来的海量性、分布性、动态性等新特点, 缺乏对物联网服务所关联的物理实体和反映其状态的感知数据乃至支持新抽象的虚拟实体等内容的建模支持[7-9]. 因此, 如何结合物联网系统的新特点和新要求建立合适的物联网服务模型, 就对确保面向服务的物联网系统的可行性和有效性具有重要的研究意义.
物联网系统一般分为3个层次, 即感知层、网络层和应用层[5, 10]. 感知层由分布在现实世界的具有不同感知和执行能力的智能物品、设备、网关等环境实体构成; 网络层实现物端众多环境实体间的互联互通和数据传递; 应用层通过数据的汇聚和不同层次的信息处理形成智能决策进而反馈到物端对现实世界进行改变. 按照上述3个层次, 物联网系统建设的核心主要就是在对现实世界实时感知和信息融合的基础上, 通过一系列数据处理分析流程得到决策信息和知识来为现实世界提供智慧的服务. 这样, 物联网服务将分布于物联网系统的这3个层次中, 以物理实体服务、虚拟实体服务、云端软件服务等不同形式表现, 涉及感知设备的类型、实时数据传输的形式和数据分析处理的功能等多方面的内容, 与传统服务有极大的不同[11, 12]. 具体的, 物联网服务表现出以下几方面新特性.
(1)现实感知. 物联网服务是融合现实世界和信息世界的有效融合手段, 因此基础的物联网服务一般附着于物理实体, 而信息世界的不同层次抽象服务也往往被看作是物理实体的“数字孪生”, 与物理实体的性质密切相关. 在物联网服务中, 其所关联的物理实体除了可以通过传感设备提供基础的数据采集、处理和传输服务外, 还可以通过反馈装置支持的控制动作与物理世界进行交互, 体现了对现实世界的感知和控制.
(2)数据驱动. 在整个物联网系统中, 实体无时无刻不在产生着数据, 各种服务无时无刻不在接送或者处理着数据, 而用户也在分析着数据, 数据在各个环节中不停地产生、处理, 物联网服务的目标正是期望通过一系列的数据采集、接入、融合、分析等处理操作为驱动, 以对现实世界提供智能服务. 另外, 一旦数据消失, 整个物联网系统也会陷入崩溃, 而各种服务也失去了其存在的价值, 物联网系统中的数据支撑着各种服务实现其功能, 物联网服务与数据是密不可分的, 因此物联网服务是以数据为核心的, 由数据驱动的.
(3)异构分布. 在物联网系统中, 随着智能物品的数量不断增加, 导致各种异构的智能物品出现在物联网系统中, 而这些智能物品是提供物联网服务的实体, 这也导致物联网服务具有异构分布性, 这将给服务命名、查找与管理带来新的挑战, 而且大规模服务之间的交互也将极大地增加每个智能物品的计算时间、存储容量和能量消耗.
(4)时空相关. 由于物联网服务与现实世界密切相关, 其所依附的物理实体及其自身提供的功能都与时间和空间具有很强的相关性. 此外, 服务间的关联关系同时间和空间也具有明显的相关性, 服务相关的数据也具有一定的时空属性.
由于这些特性, 物联网服务的建模面临着较大的挑战. 如何使物联网服务模型能满足物联网服务的现实感知、数据驱动、异构分布、时空相关等新特点, 这些都是我们需要仔细考虑的. 尤其是数据驱动与时空相关这两个新特性, 给现有的一些物联网服务建模方法带来了较大的冲击, 现有的一些物联网服务建模方法大都没有对数据驱动进行详细的描述, 往往围绕着实体与服务二者进行讨论, 也同时较多的只考虑了实体的空间属性, 而忽略了服务、实体、数据的时空相关性. 因此我们提出了一种对服务、实体以及数据三元空间融合建模的物联网服务模型, 我们分别描述了物联网服务中的实体、数据与服务, 通过对数据的描述使得我们的物联网服务建模方法能更好地满足物联网服务以数据驱动的新特性, 另外, 我们刻画了实体、服务与数据三者之间的一体化关系以及它们的时空相关性, 借此, 来应对当前物联网服务建模所遇到的问题与挑战.
2 相关工作经典物联网系统组成架构分为3层: 物端、网端和云端. 物端由一些具有感知能力的设备构成; 云端负责数据的存储、分析以及计算, 并控制实际的应用; 网端保障了物端与云端的数据通信. 但是其存在异构设备与云端计算存储平台水平互联问题, 为此, 面向服务架构被引入物联网系统中, 基于此将物端的设备感知功能与云端的数据存储、计算、分析等功能抽象成一个个的服务, 借此对现实物理世界与虚拟数字世界进行无缝的整合[5,9,12].
物联网服务建模是一个物联网研究领域的分支, 与传统的服务相比较, 物联网服务具有现实感知、数据驱动、异构分布、时空相关等特性. 在物联网服务建模研究中, 国内外学者从物理实体语义、服务功能行为、物联网本体等角度开展了大量的相关研究工作. 李力行等人通过时间自动机理论对物联网服务以及物理环境进行建模, 并把用户期望的服务特性用时序逻辑公式描述出来, 借此验证物联网服务在特定环境下执行时能够满足用户期望的性质[13]; 文献[14]提出了一种语义物联网服务验证方法, 该方法基于时态描述逻辑ALC-µ, 可用于语义物联网服务的正确性验证问题; 文献[15]扩展了现有的OWL-S描述服务能力, 使其能够实现对物联网服务描述, 突出了物联网服务的时空属性, 同时根据物联网服务的时空属性建立时空相关的服务网络, 缩小了服务发现时的搜索空间. 边寒等人将环境实体引入到物联网服务建模当中, 借此刻画物理世界中各种实体的属性和行为, 同时可以更好地刻画服务与环境间的交互[16-18], 马莉等人利用进程代数CSP (通信顺序进程) 的方法对物联网服务系统进行建模, 提出了一种面向资源的物联网系统形式化建模与验证的方法, 并利用模型检测工具PAT验证该服务模型的正确性[19], 莫同等人提出了一种基于情境感知的物联网服务开发方法, 通过情景和场景来建立物联网服务和数据的关系, 借助情境感知服务模型对物联网服务进行建模[20]. 文献[21]提出了借用π-演算理论定义了物联网服务与环境实体, 并引入λ-演算刻画物联网服务能力, 借此对物联网服务与环境实体的动态交互进行建模. 文献[22]提出了一种面向领域知识的大数据价值服务建模方法, 通过给出元模型的语义基本矢量与语义单位矢量, 构建了语义矢量本体模型, 更加精确地描述了大数据价值服务. 这些学者分别从不同的角度阐述物联网服务形式化建模与验证的机制, 为本文提供了参考.
综上所述, 现有的物联网服务模型研究工作已经普遍意识到对物联网服务相关的物理实体及服务动态行为建模的重要性, 产生了诸多研究成果, 但已有工作还是过多的集中于围绕物理实体的服务建模, 较少涉及物联网服务核心基础—数据的内容. 此外, 现有工作在针对服务个体与现实世界的交互行为进行建模时, 对物理世界和物联网服务的时空相关特性缺乏考虑, 尚不能对随物理世界时空变化而动态变化的服务行为建模提供支持.
3 基于实体-数据的物联网服务模型 (EDIoTS) 3.1 模型概述如前所述, 物联网服务涉及实体、数据和服务3个相对独立又相互关联的概念空间. 实体空间代表或构成需要感知和控制的现实世界, 包括物理实体和虚拟实体; 数据空间通过实体感知或服务加工产生, 可以反映实体状态及情景变化; 服务空间包含一系列支持数据处理的功能, 可以得到施加于实体的控制策略. 从这三元空间出发, 将实体、数据和服务都作为顶层概念看待, 定义一个有机联系的物联网服务概念体系. 具体的, 如图1所示, 在本文的基于实体-数据的物联网服务模型中, 将实体看作是现实世界的构成要素和数据产生的来源, 并区分物理实体和虚拟实体两类概念; 数据作为反映实体和现实世界状态的核心内容, 其包括原始数据 (传感器采集的观察数据) 、中间数据 (融合形成的综合度量数据, 即信息) 和加工数据 (通过分析处理得到的决策数据, 即知识) ; 服务则通过数据处理全链条形成操作策略以施加于实体. 三者之间的关系为服务依托实体提供, 并支持数据共享和实体控制, 是实体和数据对外表现的操作接口; 实体产生数据, 数据体现实体状态. 另外, 作为现实世界构成要素的实体, 本身具备强烈时空属性, 由实体支撑的服务也从而获得了时空属性, 他们产生的数据具备强烈的时间属性, 因此我们在EDIoTS中着重描述了其时空属性.
EDIoTS物联网三元模型借鉴了面向服务架构相关思想, 将经典物联网系统组成架构中设备的感知功能以及云端的数据存储与数据分析功能抽象成相应的服务. 物理实体对应着物端具有感知功能的设备, 它是物理世界的构成要素, 同时也是数据产生的来源; 数据对象对应着在经典物联网系统组成架构中流转的数据, 物理实体会产生原始数据, 原始数据的汇总整合会产生中间数据, 对中间数据进行处理分析会产生加工数据从而辅助决策. 这种数据流转体现了物端感知的数据经过网端数据通信存储到云端的数据存储层, 并在云端进行数据分析然后将分析结果提供给实际应用.
3.2 模型定义基于上述认识, 下面给出基于实体-数据的物联网服务模型相关定义.
定义1. 物理实体
根据实体的空间信息以及实体间的关系, 我们将实体划分为空间实体与关系实体.
对于空间实体, 有如下3类.
(1)点实体
对于给定的空间点
$ P{P_i} = \{ {P_i}|{x_i} = x\; \& \;{y_i} = y\; \& \;{{\textit{z}}_i} = {\textit{z}}\; \& \;{P_i} \in P\} $ |
(2)线实体
对于给定的空间曲线
$ L{P_i} = \{ {P_i}|F\left( {{x_i}, {y_i}, {{\textit{z}}_i}} \right) = 0\; \&\; G\left( {{x_i}, {y_i}, {{\textit{z}}_i}} \right) = 0\; \& \;{P_i} \in P\} $ |
(3)区域实体
对于给定的空间区域
$ \begin{split} A{P_i} = &\{ {P_i}|{x_{\min}} \leqslant {x_i} \leqslant {x_{\max}}\; \&\; {y_{\min}} \leqslant {y_i} \leqslant {y_{\max}} \& \\ & {{\textit{z}}_{\min}} \leqslant {{\textit{z}}_i} \leqslant {{\textit{z}}_{\max}}\;\& \;{P_i} \in P\} \\ \end{split} $ |
对于关系实体我们有如下3类.
(1)协作实体(为了完成某些功能协同工作的实体), 协作实体分为两种, 一种是硬协作实体
给定所有实体集合P:
$\left\{ \begin{split} &H{P_i} = \{ {P_1} \cap {P_2} \cap {P_3} \cap \cdots \cap {P_n}, {P_j} \in P, 1 \leqslant j \leqslant n, n \in {N^*}\}\\ &{\textit{SCP}}_i = \{ {P_1} \cup {P_2} \cup {P_3} \cup \cdots \cup {P_n}, {P_j} \in P, 1 \leqslant j \leqslant n, n \in {N^*}\} \end{split}\right.$ |
(2)依赖实体
给定所有实体集合
$ D{P_i} = \{ {P_1} \Rightarrow {P_2} \Rightarrow {P_3} \Rightarrow \cdots \Rightarrow {P_n}, {P_j} \in P, 1 \leqslant j \leqslant n, n \in {N^*}\} $ |
(3)从属实体
给定所有实体集合P,
定义2. 数据对象
针对数据的实时属性, 我们提出了同类数据的时序关系
$ {\textit{TD}}_i = \{ {D_1}, {D_2}, \cdots, {D_n}, tem{p_1} \lt tem{p_2} \lt \cdots \lt tem{p_n}, n \in {N^*}\} $ |
针对某些功能的实现需要多类数据融合, 我们提出了多类数据融合关系
$ C{D_i} = \left\{ {{D_1} \cup {D_2} \cup \cdots \cup {D_n}, n \in {N^*}} \right\} $ |
定义3. 物联网服务
根据物联网服务的时空属性我们提出了时间服务
$ {\textit{TS}}_i = ({S_i}|{t_1} \leqslant {t_s} \leqslant {t_e} \leqslant {t_2}\; \&\; {S_i} \in S) $ |
$ \begin{gathered} A{S_i} = \{ {S_i}|{x_{\min}} \leqslant {x_i} \leqslant {x_{\max}}\;\&\; {y_{\min}} \leqslant {y_i} \leqslant {y_{\max}} \;\& \\ {{\textit{z}}_{\min}} \leqslant {{\textit{z}}_i} \leqslant {{\textit{z}}_{\max}}\;\& \;{S_i} \in S\} \\ \end{gathered} $ |
另外, 一些服务之间有着先后执行的顺序,
$\begin{split} D{S_i} = &\left\{ {{S_1} \Rightarrow {S_2} \Rightarrow {S_3} \Rightarrow \cdots \Rightarrow {S_n},\; {S_j} \in S}, \right.\\ &\left. { 1 \leqslant j \leqslant n, \;n \in {N^*}} \right\} \end{split} $ |
定义4. 物联网服务与实体的支撑关系
$\left\{ \begin{split} &{\textit{SP}}_i = \{ {S_j}|\exists {P_i}\left( {{S_j}{R_{\textit{SP}}}{P_i}} \right), \; i, j \in {N^*}\}\\ & P{S_i} = \{ {P_j}|\exists {S_i}\left( {{S_j}{R_{\textit{SP}}}{P_i}} \right),\; i, j \in {N^*}\} \end{split}\right.$ |
定义5. 物联网服务与数据具有输入输出关系, 输入关系
$\left\{\begin{split} & {D_I}{S_i} = \{ {D_j}|\exists {S_i}\left( {{S_j}{R_{{\textit{SD}}_I}}{D_j}} \right),\; i, j \in {N^*}\} \\ &{D_O}{S_i} = \{ {D_j}|\exists {S_i}\left( {{S_j}{R_{{\textit{SD}}_O}}{D_j}} \right),\; i, j \in {N^*}\} \end{split}\right.$ |
定义6. 实体与数据也具有输入输出关系, 输入关系
$\left\{ \begin{split} &{D_I}{P_i} = \{ {D_j}|\exists {P_i}\left( {{P_j}{R_{P{D_I}}}{D_j}} \right), i, j \in {N^*}\} \\ &{D_O}{P_i} = \{ {D_j}|\exists {P_i}\left( {{P_j}{R_{P{D_O}}}{D_j}} \right), i, j \in {N^*}\} \end{split}\right.$ |
定义7. 基于实体-数据的服务时空依赖关系, 我们用
$ {{AP}}{{{S}}_i}\left\{ \begin{gathered} {x_{\min}} \leqslant {x_i} \leqslant {x_{\max}}, ({x_{\min}} \in P{S_i}\;\& \;\forall x \in P{S_i}, \\ {x_{\min}} \leqslant x, {x_{\max}} \in P{S_i}\;\& \;\forall x \in P{S_i}, {x_{\max}} \geqslant x) \\ {y_{\min}} \leqslant {y_i} \leqslant {y_{\max}}, ({y_{\min}} \in P{S_i}\;\& \;\forall y \in P{S_i}, \\ {y_{\min}} \leqslant y, {y_{\max}} \in P{S_i}\;\&\; \forall y \in P{S_i}, {y_{\max}} \geqslant y) \\ {{\textit{z}}_{\min}} \leqslant {{\textit{z}}_i} \leqslant {{\textit{z}}_{\max}}, ({{\textit{z}}_{\min}} \in P{S_i}\;\&\; \forall {\textit{z}} \in P{S_i}, \\ {{\textit{z}}_{\min}} \leqslant {\textit{z}}, {{\textit{z}}_{\max}} \in P{S_i}\;\& \;\forall {\textit{z}} \in P{S_i}, {{\textit{z}}_{\max}} \geqslant {\textit{z}}) \\ \end{gathered} \right. $ |
$ \begin{gathered} {\textit{TDS}}_i = \left( {tam{p_{\min}}, tam{p_{\max}}} \right) \\ \left( {tam{p_{\min}} \in {D_I}{P_i}\;\& \;\forall tamp \in {D_I}{P_i}, } \right.tam{p_{\min}} \leqslant tamp, \\ tam{p_{\max}} \in {D_O}{P_i}\;\&\; \left. {\forall tamp \in {D_O}{P_i}, tam{p_{\max}} \geqslant tamp} \right) \\ \end{gathered} $ |
为了对上述基于实体-数据的物联网服务模型下的相关内容进行描述, 我们在经典语义服务描述语言OWL-S基础上, 通过扩展其对实体、数据及时空属性等的表示语法, 来支持其对本文物联网服务模型的描述支持, 下面对实体、数据和服务的描述进行分别说明.
(1)对于实体, 首先采用本体树的方式对实体进行组织, 树的叶节点表示实体的具体特征或功能, 中间节点表示特征或功能的归纳和分类, 同时我们引入SSN (semantic sensor network)[23]实现对实体基础信息的描述. 举一个简单例子, 一个实体往往具有感知功能或控制功能以及自身的属性, 比如空间信息, 它们可以作为树的中间节点, 当具体感知环境某一元素或控制某一实体时, 比如收费站监控车流量与控制闸机, 这属于树的叶节点.
如算法1所示, 用SSN本体描述了一个收费站实体, 收费站实体station可以作为根节点, 它具有空间属性space, 描述了station的经纬度, 他有感知传感器sensingSensors与控制传感器controlSensors, 他们是实体功能的分类, 属于中间节点, 而车流量监控traffic和闸机开关turnstiles是具体实例, 是叶子节点. 根据上述的定义, 车流量监控实体与闸机控制实体属于收费站实体, 他们具有归属关系.
(2)对于数据的具体表示, 采用JSON来表示物联网服务中的数据, 具体的JSON schema如算法2所示.
(3)对于服务, 在OWL-S的profile基础上, 主要通过拓展服务的时空属性来表示. 如算法3所示, 在原有的profile基础上, 我们添加了服务空间坐标, 包括经度、纬度与海拔, 同时添加了服务的执行时间, 包括服务执行的开始时间与结束时间.
算法1. 物理实体描述示例
@prefix qudt: < http://qudt.org/schema/qudt#> .
@prefix
geo: < http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix sosa: < http://www.w3.org/ns/sosa/> .
@prefix ssn: < http://www.w3.org/ns/ssn/> .
<station> a sosa:FeatureOfInterest ;
rdfs:comment "Station."@en .
<sensingSensors>
a sosa:ObservableProperty, qudt:QuantityKind ;
qudt:generalization <station> .
<controlSensors>
a sosa:ObservableProperty, qudt:QuantityKind ;
qudt:generalization <station> .
<traffic>
a sosa:ObservableProperty, qudt:QuantityKind ;
qudt:generalization <Sensing Sensors> .
<turnstiles>
a sosa:ObservableProperty, qudt:QuantityKind ;
qudt:generalization <controlSensors> .
<space> a sosa:ObservableProperty,
qudt:QuantityKind ;
geo:lat -37.9076 ;
geo:long 145.0294 ;
qudt:generalization <station>
算法2. 数据JSON schema描述示例
{ "type": "object",
"required": ["dataId", "temp", "information"],
"properties": {
"dataId":
{ "type": "number"},
"temp":
{"type": "string"},
"information":
{"type": "string"},
"type": {
"type": "object",
"required": ["unit", "range"],
"properties": {
"unit":
{"type": "string"},
"range":
{"type": "string"},
"storageType":
{ "type": "string" }}},
"resourceRequirements": {
"type": "object",
"required": ["storageRequirements"],
"properties": {
"storageRequirements":
{"type": "string"},
"communicationRequirements":
{"type": "string"}}}}}
算法3. 服务时空属性描述示例
<owl:ObjectProperty rdf:ID="space">
<rdfs:domain rdf:resource="#Profile"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="space"/>
<owl:DatatypeProperty rdf:ID="Longitude">
<rdfs:domain rdf:resource="#space"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="Latitude">
<rdfs:domain rdf:resource="#space"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="Elevation">
<rdfs:domain rdf:resource="#space"/>
</owl:DatatypeProperty>
<owl:ObjectProperty rdf:ID="time">
<rdfs:domain rdf:resource="#Profile"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="time"/>
<owl:DatatypeProperty rdf:ID="startTime">
<rdfs:domain rdf:resource="#time"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="endTime">
<rdfs:domain rdf:resource="#time"/>
</owl:DatatypeProperty>
5 基于EDIoTS的物联网服务发现基于前文提出的EDIoTS物联网服务模型中的时空属性以及实体服务关系可以帮助实现物联网环境下的服务动态发现, 提高服务发现的效率. 本节基于EDIoTS给出了一个借助实体时空属性进行物联网服务发现的算法.
对于给定的空间点
基本思路: 根据上面我们定义的区域实体
$ dist\left( {q, p} \right) = \sqrt {{{({x_p} - x)}^2} + {{\left( {({y_p} - y} \right)}^2}} $ | (1) |
空间点q到空间区域
$ \begin{split} & dist\left( {q, aP} \right) = \\ & \left\{ \begin{gathered} \min\left( {\left| {{x_{\min}} - x\left| , \right|{x_{\max}} - x} \right|} \right) , {x_{\min}} \lt x \lt {x_{\max}} \\ \min\left( {\left| {{y_{\min}} - y\left| , \right|{y_{\max}} - y} \right|} \right) , {y_{\min}} \lt y \lt {y_{\max}} \\ \min(dist\left( {q, {p_{lu}}} \right), dist\left( {q, {p_{ld}}} \right), dist\left( {q, {p_{ru}}} \right), dist\left( {q, {p_{rd}}} \right) ) , {\rm{other}} \\ \end{gathered} \right. \end{split} $ | (2) |
算法4. 基于EDIoTS的物联网服务发现算法
输入: 空间基准点q, 查询时间范围
输出: 满足查询条件的实体集合RP与物联网服务集合RS
1. PQ←CreatePriorityQueue();
2. Set←CreateHashSet();
3. aP←GetAP(q);
4. Set.add(aP);
5. PQ.enqueue(aP, dist(q, aP));
6. while PQ≠
7. e←PQ.dequeue();
8. if e is typeof AP
9. APSet←GetNeighborAPs(e);
10. Temp←CreatePriorityQueue();
11. for each aP in APSet do
12. if !Set.contains(aP)then
13. PQ.enqueue(aP, dist(q, aP));
14. Set.add(aP);
15. end if
16. end for
17. for each p in aPSet do
18. Temp.enqueue(p, dist(q, p));
19. end for
20. size←Temp.size();
21. while Temp≠
22. p←Temp.dequeue();
23. if !Set.contains(p)then
24. if !(p.
25. PQ.enqueue(p,dist(q, p));
26. Set.add(p);
27. end if
28. end if
29. ifsize–k==Temp.size() then
30. break;
31. end if
32. if e is typeofP then
33. RP.add(e);
34. for each sin SPSet do
35. if !(s.
36. RS.add(s);
37. end if
38. end for
39. ifRP.size()==k then
40. break;
41. end if
42. end if
我们先将q所在的aP存入PQ与Set中, 然后不断返回PQ第1个元素(只要不为空), 如果是区域实体, 则将其未存过的邻居区域实体存入PQ与Set, 然后求出q与该区域实体内的所有实体的距离, 取前k个满足时间的实体存入PQ与Set中; 如果是实体, 则将其存入结果集RP中, 并将该实体支撑的满足时间的服务存入结果集RS中, 直到RP中有k个实体, 则结束整个算法.
由于服务是由实体支撑的, 一个实体往往支撑着许多服务, 我们借助实体的时空属性查找服务可以大大减少搜索空间, 提高查找效率.
6 案例研究本节结合一个高速公路应用案例对基于实体-数据的物联网服务模型的使用和效果进行说明. 在该应用案例中, 为了支撑高速公路对车辆通行、路况保障、运营收费等业务的有效管理, 部署了大量诸如ETC/MTC收费识别器、带识别功能摄像头、气象及边坡监测、流量监测及车速检测等物联网感知系统, 并通过这些系统面向上述业务提供各类服务支撑.
该场景中涉及的实体以及服务如表1所示.
此外, 在高速路网中这些物理实体其可能的空间位置如图2所示.
(1)对于实体, 根据上述定义, 我们以收费站1为例:
$ {{{P}}_1} = ({{station}}1, (\left( {116, 39, 79} \right), \left( {1949, 2022} \right), {{url}}), {{{I}}_{{p}}}, 50) $ |
其中,
由于高速公路上收费站有出口入口, 因此收费站实体具有依赖关系, 则我们有
(2)对于数据, 根据上述定义, 我们以收费站1车流量统计数据为例:
$ {{D}}_{1}=\left({{d}}_{1}, 1654751341, {{I}}_{{d}}, \left({``}辆", \geqslant 0, {{\rm{int}}}\right), \left(0.01, 0.01\right)\right) $ |
其中,
(3)对于服务, 根据上述定义, 我们以收费站1车流量统计服务为例:
$ {{{S}}_1} = ({{{s}}_1}, 1, {{{I}}_{{s}}}, \left( {80, 1} \right), (\left( {116, 39, 79} \right), \left( {1949, 2022} \right), {{url}})) $ |
其中,
从车流量统计服务和车流量预测服务来说, 只有执行完车流量统计服务才能执行车流量预测服务, 因此这两个服务间具有顺序关系, 则有
(4)如果在收费站1附近出现事故, 我们要查找该事故附近的服务时, 我们可以借助上述基于EDIoTS的物联网服务发现算法, 假设要查找的在时间
传统的服务模型中很少涉及对数据的描述, 也没有考虑到服务、实体、数据三者之间的时空依赖关系, 基于实体-数据的物联网服务模型增加了对数据的描述, 梳理了服务、实体、数据三者之间的时空依赖关系, 另外可以梳理出一些其他关系, 比如案例中提到的实体间的归属关系、数据的时序关系等, 他们可以帮助我们更快地实现某些功能, 借助其时空属性可以使离散的服务、实体、数据形成网络, 便于之后的服务发现、服务组合以及服务卸载等需求.
7 总结与展望物联网服务作为信息世界软件服务通过物联网向现实世界的延伸, 其具有现实感知、数据驱动、异构分布、时空相关等新特性. 现有的物联网服务模型主要在传统Web服务模型之上引入物理实体而建立, 较少涉及数据方面的内容, 并缺乏对物联网系统重要的时空属性的支持. 对此, 我们提出了一个基于实体-数据的物联网服务三元融合建模框架. 该框架定义了物联网服务模型中的实体、数据、服务3个顶层概念, 并特别围绕时空属性对三者关系进行的关联, 建立了物联网服务的时空依赖关系, 有助于全面、清晰地对物联网服务进行刻画, 并对物联网、边缘计算等背景下服务发现、服务卸载、服务组合等其他研究工作奠定基础. 下一步的工作包括根据物联网服务的时空依赖关系, 探索构建物联网服务时空网络, 以及研究物联网服务的时空索引机制和查询算法, 解决物联网背景下海量服务发现问题.
[1] |
Laroui M, Nour B, Moungla H, et al. Edge and fog computing for IoT: A survey on current research activities & future directions. Computer Communications, 2021, 180: 210-231. DOI:10.1016/j.comcom.2021.09.003 |
[2] |
Raj A, Shetty SD. IoT eco-system, layered architectures, security and advancing technologies: A comprehensive survey. Wireless Personal Communications, 2022, 122(2): 1481-1517. DOI:10.1007/s11277-021-08958-3 |
[3] |
Zhang JB, Ma M, Wang P, et al. Middleware for the Internet of Things: A survey on requirements, enabling technologies, and solutions. Journal of Systems Architecture, 2021, 117: 102098. DOI:10.1016/j.sysarc.2021.102098 |
[4] |
Machorro-Cano I, Olmedo-Aguirre JO, Alor-Hernández G, et al. SCM-IoT: An aproach for Internet of Things services integration and coordination. Applied Sciences, 2022, 12(6): 3133. DOI:10.3390/app12063133 |
[5] |
陈海明, 崔莉. 面向服务的物联网软件体系结构设计与模型检测. 计算机学报, 2016, 39(5): 853-871. DOI:10.11897/SP.J.1016.2016.00853 |
[6] |
Yang WJ, Chen YQ, Chen YC, et al. Intelligent agent-based predict system with cloud computing for enterprise service platform in IoT environment. IEEE Access, 2021, 9: 11843-11871. DOI:10.1109/ACCESS.2021.3049256 |
[7] |
Issarny V, Bouloukakis G, Georgantas N, et al. Revisiting service-oriented architecture for the IoT: A middleware perspective. Proceedings of the 14th International Conference on Service-oriented Computing. Banff: Springer, 2016. 3–17.
|
[8] |
苏森, 陈俊亮, 程渤, 等. 物联网服务提供机理和方法研究. 科技创新导报, 2016(9): 164. DOI:10.3969/j.issn.1674-098X.2016.09.093 |
[9] |
魏强, 金芝, 李戈, 等. 物联网服务发现初探: 传统SOA的可行性和局限性. 计算机科学与探索, 2013, 7(2): 97-113. |
[10] |
Rayes A, Salam S. IoT services platform: Functions and requirements. Internet of Things from Hype to Reality. Cham: Springer. 2019. 181–209.
|
[11] |
Georgakopoulos D, Jayaraman PP, Zhang M, et al. Discovery-driven service oriented IoT architecture. Proceedings of the 2015 IEEE Conference on Collaboration and Internet Computing. Hangzhou: IEEE, 2015. 142–149.
|
[12] |
陈海明, 石海龙, 李勐, 等. 物联网服务中间件: 挑战与研究进展. 计算机学报, 2017, 40(8): 1725-1749. DOI:10.11897/SP.J.1016.2017.01725 |
[13] |
李力行, 金芝, 李戈. 基于时间自动机的物联网服务建模和验证. 计算机学报, 2011, 34(8): 1365-1377. |
[14] |
韩乔, 常亮. 基于时态描述逻辑ALC-μ的语义物联网服务验证
. 桂林电子科技大学学报, 2017, 37(6): 498-502. DOI:10.3969/j.issn.1673-808X.2017.06.014 |
[15] |
杨冬菊, 赵卓峰. 分布式时空相关服务网络构建及其在IoT服务发现中的应用. 重庆大学学报, 2020, 43(7): 6-18. |
[16] |
边寒, 陈小红, 金芝, 等. 基于环境建模的物联网系统TAP规则生成方法. 软件学报, 2021, 32(4): 934-952. DOI:10.13328/j.cnki.jos.006224 |
[17] |
李戈, 魏强, 李力行, 等. 物联网服务建模: 一种基于环境建模的方法. 中国科学: 信息科学, 2013, 43(10): 1198-1218. |
[18] |
蒋逸, 张伟, 赵海燕, 等. 互联网环境中基于环境激发效应的协同式概念建模. 计算机科学, 2015, 42(11): 228-234. |
[19] |
马莉, 李维康, 梁晨, 等. 面向资源的物联网系统形式化建模与验证. 小型微型计算机系统, 2018, 39(1): 140-145. DOI:10.3969/j.issn.1000-1220.2018.01.028 |
[20] |
莫同, 李伟平, 褚伟杰, 等. 物联网环境下的情境感知服务开发方法. 中国科技论文, 2015, 10(20): 2362-2368. DOI:10.3969/j.issn.2095-2783.2015.20.005 |
[21] |
李文翔. 物联网服务的π-演算建模与验证. 山东理工大学学报(自然科学版), 2021, 35(4): 24–28, 35.
|
[22] |
黄贻望, 何克清, 彭长根. 一种面向领域知识的大数据价值服务建模方法. 武汉大学学报(理学版), 2020, 66(5): 462-472. DOI:10.14188/j.1671-8836.2018.0065 |
[23] |
Gilani K, Kim J, Song JS, et al. Semantic enablement in IoT service layers—Standard progress and challenges. IEEE Inter-net Computing, 2018, 22(4): 56-63. DOI:10.1109/MIC.2018.043051465 |