英语原文共 15 页,剩余内容已隐藏,支付完成后下载完整资料
物联网数据采集的通用架构
Diego Acosta-Ortiz(B), Raacute;ul Ramos-Pollacute;an, and Gabriel Pedraza
Universidad Industrial Santander, Bucaramanga, Colombia
dacosta@radiogis.uis.edu.co, {rramosp,gpedraza}@uis.edu.co
摘要:本文介绍了一种数据采集物联网平台的体系结构,该体系结构在服务器和设备两个层次上提供了两种可扩展的机制。从设备的角度来看,我们支持两种数据采集模式的实现:接近实时和批处理。从服务器端,我们允许数据分析过程无缝配置并在所获取的数据上启动。我们的方法旨在降低新硬件设备集成的效率和成本。除了体系结构描述,我们还提供了API定义、平台参考实现及其性能评估。我们的主要目的是保证集成、模块化、灵活性和可扩展性,以涵盖广泛的应用程序和用例。
关键词:物联网、软件架构、API、数据采集、嵌入式系统
1引言
传统的研究是建立在观察和实验的基础上的,几十年前这个过程已经被技术本身所改进。在现代研究中,技术以不同的方式驱动和影响几乎所有的领域,从模拟到建模,到大规模数据分析,到数据采集等等。在许多情况下,科学和工业以不同的方式利用技术进步,而在其他情况下,动机和需求是相似的,因此,合作和协同作用自然而然地出现。物联网(InternetofThings,IoT)概念下的物理系统就是这样一种情况,从一般的角度来看,物理系统具有计算能力和普适连接性,以整合数据采集网络、大规模控制系统等。这包括车辆、建筑物、设备、可穿戴设备等,并且跨越了各种各样的工业和研究领域(自动化、智能城市、医药、体育、气候、制造业等)【1-3】。
特别是,单板计算机(SBC)【4】在物联网设备的开发和扩散中发挥了关键作用,促进了嵌入式系统和设备的设计、编程和组装。SBC降低了设计、组装和测试物联网设备所需的成本,提供了一个可编程性类似于大量工程师的平台,并且能够集成各种各样的传感器、连接协议和小部件。在这个意义上,RaspberryPI、英特尔的Edison或者ODROID只是可用的平台中的几个。事实上,许多制造商的社区已经出现聚集兴趣并传播这些技术的知识。参见英特尔制造商的例子[5]。
尽管如此,凭借这个潜在的大型分布式数据采集设备,我们不断面临着为工业和学术界参与的每个不同项目定义数据收集,传输和存储架构的需求。这包括开发在设备本身上运行的模块或驱动程序、收集数据的中央存储器和适当的通信协议。虽然有一些平台可以部分满足这些需求(见下面的第2节),但我们总是发现自己在每个特定场景中面临着同样的任务:实现接近实时和批量的数据传输场景,为特定的传感器组装设备驱动程序以在SBC上运行,配置服务器端平台以收集和存储数据等等。
因此,这项工作描述了我们设计的体系结构,以合理化和简化SBC物联网数据采集网络的开发,以满足实时和批量的数据传输。该体系结构包括:(1)一组针对SBC的组件,以便于设备驱动程序(用于传感器等)的集成;(2)一组用于轻量级SBC与服务器通信的API;(3)基于NoSQL的用于大规模数据存储的服务器体系结构。
本文的其余部分组织如下。第二节描述了相关的工作。第3节解释了所提出的体系结构以及它所依赖的概念。第4节描述了用于数据传输的通信API设备,第5节描述了执行的概念验证评估。最后,第6节得出了我们的结论。
2相关工作
物联网领域已经提出了几种架构,而且数量还在不断增长。每一种架构都是基于物联网的不同视角,从而产生了不同侧重点和设计的架构解决方案。缺乏一个标准[6]或参考体系结构[7]使有关平台体系结构的决策复杂化。然而,由于应用程序和用例的需求和侧重点不同,因此一个独特的参考架构是一个难以移动的目标。
物联网架构定义采用了两种方法。首先,有针对特定应用领域(健康、交通、智能家居)的垂直解决方案的物联网架构。然后,对于一系列的应用领域有通用的解决方案。此外,架构基于两个不同的视角:服务或以用户为中心。前者侧重于服务如何交互并从架构中受益,后者允许用户与系统和数据交互。
在健康领域,家庭健康——物联网平台[8]提供了一种实施方案,允许收集家中老人有关健康和药物摄入量的数据。然后,这些数据被转移到中心,医生被分配给一组患者以提供医疗服务。这种方法以服务为中心。在智能城市领域,CityHub平台[9]提供了在城市中整合不同类型的感兴趣的数据的可能性。然后将数据分为实时数据(即交通流量)和静态数据(即桥梁列表)。该平台专注于如何构建和扩展基于云的物联网中间件,该中间件可用于各种智能城市枢纽。这也是一种以服务为中心的方法。此外,[10]中的工作涉及到基于数据处理的几个数据源和提议的增值服务的集成。除此之外,物联网还为智能城市提供了物联网架构,但它以专用网络的形式向用户提供资源,用户可以在专用网络上管理、消费和共享数据。这是一种以用户为中心的方法。
对于一般的解决方案,在[12]中提出的方法是基于上下文感知的GNS(全球传感器网络)元素。另一方面,[13]将安全作为其体系结构的核心。此外,[14]关注的是可缩性而不是其他性质。它使用SCADA作为参考体系结构来提高可扩展性。所有这三个解决方案都采用了以服务为中心的方法,但是每个解决方案都侧重于不同的属性。
对[15]的评论描述了目前市场上存在的26个流行的平台。这些平台被分类在不同的应用领域,我们的建议属于'云服务'的范畴。它还总结了与当前物联网平台技术水平相关的不同技术挑战。相比之下,我们的建议旨在解决对下列问题普遍缺乏支持的问题:
-集成设备: 向平台添加新设备主要通过与API交互来处理,但没有任何关于设备嵌入式软件架构的说法。更受限制的方法仅支持预定的一组设备类型。
-组合数据类型: 数据可以随时生成。有时需要接近实时(NRT)模式,因此需要进行传输。在其他情况下,数据可以批量使用,传输延迟较大。大多数平台都专注于一种类型的数据,其中很少都支持这两种数据。
-开放扩展: 服务中心平台的扩展是基于平台的新服务。另一方面,以用户为中心的平台主要通过向平台添加设备的网络来扩展。
3建筑
这里介绍的体系结构方案建立了一组使用它们之间的接口的可互操作的软件组件。为了提供更加正式的描述,在下面的小节中,我们将介绍关键概念,然后介绍下一节中描述的API。
3.1关键概念
平台 平台可以理解为整个组件集,它分为两个主要组件:设备和服务器。设备网络获取数据并将其发送到一系列服务器。
设备 设备是一种硬件组件,可以看作是具有处理和网络功能的嵌入式系统。在设备顶部驻留软件,该软件管理与其连接的每个传感器并从中收集数据。 该组件提供了一种通过网络将收集的数据发送到远程服务器的方法。
传感器 传感器可以是一小块硬件,可以随意提供通信能力。它的主要特点是从现实世界中测量一个数量级,并将其作为数据返回。关键的挑战之一是在任何设备上添加新的传感器以增强其功能。
伺服器 一种具有大型存储和处理能力的远程计算机。从设备传入的所有数据都通过网络接口接收,以便以后进行处理和存储
简介 为了提供一种检查传入数据完整性的方法,设备遵循预定义的配置文件,确定强制和可选值(传感器)设备在向平台提供采集数据时必须遵循的标签和数据完整性条件。
操作模式 该平台针对其管理的设备考虑了两种操作模式。
-NRT,接近实时 在这种模式下,设备从传感器获取测量数据,并立即将这些数据发送到正在监听新数据流的远程服务器,对于需要可视化数据并在数据可用时作出决策的问题,这种操作模式是可取的。我们对传输时间和可用性时间没有任何承诺,因此这个术语几乎是实时的。通信中断时获取的数据将被丢弃。
-批处理 这种模式允许设备在将数据发送到远程平台之前收集和合并数据,这是根据传感器定义的条件(定期,当数据达到固定大小等)完成的。这种模式允许对设备进行更多的独立操作,并且不需要连续连接。
3.2架构设计
平台分为两个主要部分,图1总结了与设备相对应的一侧,图2显示了服务器端。双方通过一种通信协议进行交流。
图一 设备组件
图二 服务器组件
设备组件
-文件系统 当传感器以批处理模式运行时,数据在发送到远程服务器之前暂时存储在文件系统中。除此之外,它还可以为存储操作系统、软件组件、传感器驱动程序等的设备提供持久性
-收集器客户端 此软件组件是一个收集来自每个传感器的所有数据流,并通过通信协议将其发送到远程服务器的组件。另外,在发送之前,它还包括组件名称、标签和元数据。
-传感器层 该软件层为物理连接到设备的每个传感器提供一组逻辑驱动程序。API调节新驱动程序如何向收集器客户端提供获取的数据,从而允许带有新传感器的设备的可扩展性
服务器组件
-收集伺服器 收集服务器充当数据层和数据从设备到达的网络接口之间的中介。这个网络接口被设计为支持不同的协议,例如HTTP上的REST、CoAP等。当从NRT设备接收数据时,收集器输入一个NoSQL数据库,相应地标记每个应用程序和传感器类型的数据批处理数据作为存储在文件系统中的文件接收,并将其上的元数据添加到NoSQL数据库
-数据层 这一层对应于存储数据和元数据的NoSQL数据库,以及存储批处理数据的文件系统
-预处理/后处理层 数据分析通常是通过查询NoSQL数据库和访问批处理文件来完成的。对于数据的清除和简单聚合,可能有几个级别的处理。此预处理的结果也存储在数据层中,可供进一步应用。
-应用 该平台可以容纳数据层的应用程序。这将是典型的可视化和更详细的分析。这些应用程序组件通常部署在容器上,以分配处理资源的需求。
3.3架构可扩展性
与大多数现有的物联网平台类似,该架构的扩展是基于一系列api之后的新设备。然而,在我们的方法中,平台架构被设计为在服务器和设备级别提供多种可扩展性机制。
服务器级架构扩展 目标物联网平台的主要目标是数据采集,以便对其进行进一步分析。从这个意义上讲,可以通过在服务器组件的前处理层和后处理层中添加数据分析脚本来保证可扩展性。分析脚本和采集器之间的交互是通过NRT传感器原始数据的数据层、批量采集数据的原始文件以及最终用于存储所采集数据描述的元数据进行的。元数据存储库发挥着核心作用,使开发人员能够了解数据的结构、数据的获取位置及其对特定产品的遵从性。为了在服务器端保持清晰的关注点分离,我们区分了三个开发者角色:
-服务器基础开发人员负责基础组件的开发,API规范和执行
-负责向平台添加新处理脚本的数据处理开发人员。这些开发人员是服务器级扩展机制的用户。
-负责向平台添加新服务或应用程序的服务和应用程序开发人员。虽然不是平台表单的主要目的,但在收集的数据之上进行服务和应用程序开发是可能的,与平台其余部分的交互也是通过数据存储库进行的。
设备级架构扩展 我们的设备级扩展机制不仅仅是简单地向平台添加新设备,考虑设备黑盒,并强制它们遵循定义的API。我们的方法深入到设备中,以指定内部软件架构,并提供了一种扩展机制,允许开发人员轻松地创建新的随时可用的设备以添加到平台中。这种设备级机制的设计考虑到了与设备相关的传感器在硬件、软件和通信技术方面的高度异构性。从这个角度来看,平台提供了从传感器请求数据、将数据发送到服务器端或将数据存储到设备(用于批处理模式)的基本组件。扩展器必须提供逻辑传感器驱动程序,并将它们部署在设备内部架构的相应层中。在这里,我们将这些组件称为逻辑驱动程序,而不是提供给操作系统级别的物理驱动程序。为了确保新的逻辑驱动程序和收集器组件之间的集成,驱动程序必须符合所有传感器驱动程序的平台接口。这个接口的API将在下一节中描述。最后,我们还可以区分两种开发者角色:
-设备开发人员负责开发平台基础组件,确保从传感器收集数据,发送到服务器,并将其存储在设备中
-逻辑驱动程序开发人员负责根据所提议的API实现逻辑驱动程序,并隐藏设备操作系统对平台的复杂性。
4空气污染指数描述
API追求在软件组件中提供灵活性和模块化,以保持通用性和平台可扩展性,从而更容易向平台添加新设备和向设备添加新传感器。这种描述包括一些子例程的定义,例如传感器驱动程序和它们必须提供的函数或方法,以及一些架构元素。
4.1设备端
逻辑传感器驱动程序 全文共12010字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[2402]
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。