智能IoT系统框架理论

来源:互联网 发布:centos 文件夹扩容 编辑:程序博客网 时间:2024/05/16 02:15
目前IoT的问题:
1、一个IoT架构应该独立于不同的协议标准,应该提供协议的集成和不同协议的转换。
2、大部分的IoT应用程序都局限于单个领域,使得大多数情况下部分的传感器都是重复而不需要的。怎样让传感器设备应用程序到多个领域,实现设备的可重用性。
3、IoT系统应该提供给人们更高层次的实体信息,而不是传感器本身的原始数据。
4、像大多数底层的协议,设备没有用通俗的术语来描述IoT数据,传统的服务模型只提供了未加工的数据,这些数据不包含任何聚合的描述,在实际应用程序中需要将这些数据包装以及专业化。

智能IoT系统分为三层:
一、物理层
      负责将物理设备转换成应用程序可以交互的设备。其中网关使用具体设备的协议去检索底层提供的数据,并且对数据添加语义,进而利用语义web(例如:RDF,OWL)去整合数据。大多数情况下,设备是需要通过API直接和应用程序联系,但是这就要求设备能够支持HTTP或者TCP/IP协议,而这些协议对于设备来说是很复杂的,所以需要提供一个网关节点来实现设备与应用程序的互通。

这种网关就为资源约束的设备和IoT应用程序提供了一个桥梁,应用程序就可以通过多个网关节点来收集数据。上图系统被称为Semantic Gateway as Service(SGS)系统,能够充当设备与IoT应用程序服务的桥梁。主要有三个功能:
1、它可以连接基于不同协议的设备到网关组件,比如MQTT,XMPP或者CoAP协议。
2、网关能够为外部的云服务或者其他基于REST或者Pub/Sub 协议的SGS系统提供接口。
3、能够捕获来自W3C SSN信宿节点的数据,以及在转发数据到网关接口服务之前特定区域化本体。
      这样做的好处在于可以利用标准机制和词汇将传感器数据语义标注,以便提供IoT系统垂直竖井之间的互操作性。通过整合这些标签数据,并提供具有语义web的消息传递接口。这样第三方服务就可以将传感器的观测值抽象为更高级的数据。网关设备分离了物理层的设备和IoT应用程序服务。它提供了一个IoT应用程序服务使用rest和pub/sub的接口端点。

二、虚拟化层
      负责管理框架数据和推导出新的知识,可用化底层提供的数据,通过使用推导引擎和在线的web知识推导出高级数据,利用这些丰富的数据帮助网络层去建立智能系统,应用程序和服务。
      大多数时候,未处理的数据仅仅是个数字,人们只知道这个数据来自哪个单元,哪个传感器。智能IoT系统就需要将多个传感器的数据整合,理解数据的含义,以便提供决策或建议。处理异构数据的互操作性,就需要建立更聪明的IoT系统。数据被存储在不同的文件(例如:CSV,Excel),以及不同的存储格式(例如:ontology,schemas)。在处理异构数据时,使用语义web技术能够带来好处:1、统一数据,2、连接IoT数据到外部的知识库,3、显示的添加原始数据,4、推导出新的知识。语义web技术使得知识谱之间能够相互连接。让IoT数据与这些知识谱相连能够使IoT系统更加智能化。一个目前广泛使用的知识谱是Linked Open Data(LOD)。像Facebook和Google都在基于schema.org构建自己的知识谱,被广泛应用到搜索引擎,另外有LOD组件,例如维基百科,DBpedia等。这样的知识谱使得获取信息能够更加方便和自动化,是原始数据抽象为更高级数据的基础。将统一的,语义丰富的IoT数据和通过网络连接这些知识库来建立智能系统具有巨大的潜能。比如,将健康测量值连接到医疗知识库,能够自动解释原始数据。
       目前开放的本体和数据集不相互连接,新的系统需要将两者连接起来,同时在结构化的数据中推导出新的知识。结合来自异构数据源的数据和构建创新可互操作的应用程序程序需要不同的过程和步骤。图4介绍了SEG3.0方法论旨在满足这些需求包括以下步骤:(1)组成(2)建模(3)连接(4)推理(5)查询(6)服务(7)服务合成。SEG3.0鼓励增强数据到应用程序的语义互操作性,这种灵感来自于基于图4描述的“共享与重用”的方法。SEG3.0包含:
Linked Open Data(LOD):它是共享和重用数据的一种途径,LOD不提供任何可视化或浏览IoT数据的工具,因此,我们预想设计Linked Open Data  Cloud(LODC) for IoT,为了共享,浏览和重用传感器提供的数据。
Linked Open Vocabularies (LOV):是一种共享和重用模型、词汇、本体的方法。它包含了LODC里面被数据集使用过的RDFS词汇的描述或者定义过的OWL本体。为了保证高质量,可重用性的本体,LOV不引用任何不符合最佳实践的本体。这意味着由于IoT社区还不知道最佳的实践,几乎所有的IoT本体和相关领域的本体不会被LOV引用。为了突破这个限制,我们提出了LOV for IoT,大约有300个基于本体的IoT项目引用的数据集,分类如下:(1)IoT应用程序领域(2)使用过的传感器(3)本体状态(比如:网络共享,是否是最佳实践过的)(4)用来推导高级知识的推导过程(5)相关项目的研究文章。这个数据集包含了一个需要的知识背景,去增加设备提供的数据的价值。
Linked Open Reasoning(LOR)是一种共享和重用解释数据推导出新信息的方法(例如:使用过的机器学习理论,已经被专家设计过的重用规则等)的路径。 Sensorbased Linked Open Rules (SLOR)是一个用来解释原始数据的可互操作规则的数据集。
 Linked Open Services (LOS):是一种提供共享和可重用的服务或者应用程序程序的方法。构建复杂的应用程序需要多个服务合成。服务可以根据REST原则或者语义web技术的帮助来提高互操作性,这种方法也可以扩展为一套可互操作的服务设计。
       仅仅共享和重用数据是不够的,从LOD到LOS整个链都应该被共享和重用,以此来提高互操作性以及从数据中获取有意义的知识。SEG3.0理论已经在M3框架中实现,被FIESTA-IoT欧盟平台扩展。M3实现了利用语义web技术语义标注化传感器数据的IoT应用程序的快速原型设计。

三、网络服务层:
使得开发者能够更加容易的在虚拟化层的IoT数据上建立大规模的,更有意义的IoT应用程序和服务。该层主要目的是为了彻底的减少IoT应用程序开发,从而使能快速原型设计和激励众多服务的互通性。该层离终端使用更近,能够在智能设备上创建智能应用程序。下面描述了应用程序程序开发的方法来构建IoT应用程序:
1、通用编程:目前,IoT的开发是处于节点级的,开发人员直接关心每个设备的操作。比如开发者使用通用编程语言(java,c等),专注一个特定的中间件API或者节点级的服务去实现数据通信。这种方式的优点是有效系统的开发建立在单个设备的完整控制上。由于系统的异构性使得对于IoT应用程序来说很笨重。
2、宏编程:比如NodeRED,但是程序缺乏重用性和设计平台。
3、基础云平台:为了改善开发的努力,基础云平台提供APIs ,提供实现IoT应用程序的共同功能(例如:为了数据可视化,需要发送和存储数据到云端)。而且平台还提供通过文本和可视化编程写一个自定义的应用程序程序逻辑。他们提供高级协作行为的抽象,同时隐藏底层细节,例如消息传递。一个基础云平台的例子就是IBM-IoT基础平台。这是一个充分的管理和云托管服务,使得从物理设备获取价值变得简单。利用抽象,开发人员可以将设备连接到互联网,将传感数据通过MQTT协议安全的传送到云平台。开发人员则可以开发各种基于云平台的服务,例如:可视化和洞悉数据的仪表板服务,存储历史数据的存储服务。
       相对于通用编程语言,相对来说云平台是一个可行的方法。它通过提供基于云平台的API来实现共同的功能,减少了开发力度。第二个优点是,因为应用程序程序逻辑位于中心位置,这种方法易于部署和演化。但是这种方法牺牲了点对点的直接通信。这点限制了开发人员实现某些功能。例如:点对点的局部通信。第三点,应用程序程序逻辑很大程度运行在一个中心云上,因此,应用程序程序依赖于云提供商的可用性。因此,它可能不适合一些关键的应用程序。
4、模型驱动开发:提出MDD是为了解决应用程序程序对平台的依赖性。应用程序在垂直和水平上分离关注点。垂直分离原则通过从PSM模型(例如编程语言)中分离出规范平台无关模型(PIM)来减小应用程序程序开发的复杂度,水平分离原则是利用不同的系统视图来描述一个系统,每个视图描述系统的某一个方面来减少开发的复杂度。
      一个MDD的例子就是IoTSuite,它旨在让开发者开发IoT应用程序变得容易。它提供了一组指定IoT应用程序的高级语言。它提供了自动化技术去解析这些高级语言编写的规范,生成特定平台的代码。IoTSuite 集成了三种高级语言:(1)域语言来描述一个IoT应用程序程序的领域特征。(2)结构语言来描述一个IoT应用程序程序的特定功能。(3)部署语言来描述部署特定功能的有关设备的物理环境信息。IoTSuite被自动化技术支撑,如代码生成器,通过解析规范使用支持高级编程语言生成特定于平台的代码支持(即关注垂直分离)。

注:该文章来源IEEE Xplore,初次翻译,有错误请指正。