物联网云:架构和实施外文翻译资料

 2022-08-22 10:39:12

英语原文共 19 页,剩余内容已隐藏,支付完成后下载完整资料


物联网云:架构和实施

一、 导言

随着无线通信技术的发展,普及对象可以交互并连接到互联网上。这些具有内置计算、通信和传感能力的相互连接的对象构成了物联网(IoT)。据估计,特别是到2020年,物联网设备数量将接近500亿台,而人口将达到76亿。这些设备可以生成大量的数据,这些数据通常有不同的格式和含义。然而,物联网设备通常由于其较小的物理尺寸和能量而具有非常有限的消费能力。因此,物联网云必须支持数以百万计的物联网设备的需求,并为最终用户提供各种新的、令人兴奋的物联网应用。

最近,有很多关于物联网云的新颖想法被提出。实现物联网设备间直接通信的机器对机器(M2M)通信或机器类型通信(MTC)引起了广泛关注。已经建立并开发了一个标准的M2M服务层平台,称为oneM2M,用于物联网服务部署的标准化。对订阅控制、拥塞控制和过载控制进行了详细的描述,并提出了一种新的解决方案。至于物联网本身,作者提供了一个全面的调查,并讨论了物联网云的可行性以及使能技术。同时,受物联网云的启发,对相关应用进行了一定的研究。此外,为了有效地管理物联网工作负载,人们提出了几种物联网云平台。例如,有人提出了一个称为servIoTicy的平台,该平台具有物联网云的数据流处理能力,并对所提出的平台进行了性能评估。然而,迄今为止,有关物联网云架构设计和实现细节的相关文献很少。一个能够支持数百万个并发物联网设备以及各种物联网应用的架构是非常理想的。

在此背景下,本文提出了一种基于超文本传输协议(HTTP)和消息队列遥测传输协议(MQTT)的物联网云体系结构,以及其他相关技术以保证高性能。首先,介绍了物联网云的具体应用场景和需求。然后提出了一个通用的物联网系统,并讨论了支持物联网的基础设施。此外,还讨论了所提出的物联网云架构的实现细节,然后介绍了物联网系统的构建方式以及如何通过使用Redis集群数据库来构建MQTT服务器的消息代理。最后,我们进行了大量实验来评估物联网云的性能,包括平均响应时间/平均传输延迟、吞吐量和CPU利用率。

论文的其余部分安排如下。第二节提供了物联网云的一些典型应用场景和相应的性能要求。第三节描述了提议的物联网云架构。第四节详细讨论了提议的物联网云架构的总体实现物联网云,而第五节报告了我们的实验结果。最后,第六节对本文进行了总结,并提出了未来的展望。

二、 典型的物联网云应用

物联网云的使用对受支持的物联网应用程序的性能有重大影响。因此,本节将讨论物联网云的几种典型应用场景,包括:

1) 智能建筑:智能建筑可以在不受人为干预的情况下适应内部和外部环境的变化,以便为居住者提供舒适感,同时考虑到财务和能源需求。无处不在的设备可以随时监控整个建筑,生成大量数据,然后在对收集到的数据进行适当分析后,在发生紧急事件或危急情况时提供通知服务。

2) 智能家庭/办公室:智能家庭建立了未来的家庭环境,其中嵌入式传感器和智能设备是自配置的,可以通过互联网进行远程控制。它支持各种监控和智能控制应用程序,这些应用程序负责家庭资源的控制和管理。更智能的是,物联网设备可以由物联网云控制来调整其运行。因此,可以为每个人创造一个舒适的生活环境。另一方面,智能办公室的主要目标是减轻工作负荷,提高员工的工作效率。有了适当的物联网云,不同组织或地区的员工都可以方便高效地访问与办公相关的服务。

3) 智能交通:智能交通为人们在城市或农村地区的旅行带来舒适。如果车辆配备了大量的传感器来监测周围环境的状态,那么车辆就可以变得智能。所有感应到的数据都可以收集并上传到物联网云。通过实时数据处理,物联网云可以为驾驶员提供有用的帮助,例如提供紧急警告或最佳路径规划,以及道路/交通状况或交通事故通知的知识。物联网云还通过分析从车辆、基础设施甚至行人收集的数据,在潜在的生命或伤害威胁下为行人提供警告。

4) 智能医疗:智能医疗应用通过有效使用医疗设备和传感器,减少患者对护理人员的依赖,降低医疗成本。患者可以通过智能手机自行测量脉搏和血压等各种生物信息,这些智能手机包含特殊的体内和近体传感器。然后将所有测量数据传输到物联网云,在物联网云中,通过持续监测和分析从被监测患者接收到的数据,可以早期发现危及生命的紧急情况。为了更好的说明,我们在表一中总结了使用物联网云的几个典型应用场景的特点。

三、 建筑物联网系统

为了支持数以百万计的物联网设备,我们提出了一种基于物联网基础设施硬件支持的物联网云架构。通过使用虚拟化,可以很好地利用硬件资源。因此,HTTP和MQTT服务器都被引入作为物联网云的应用服务器。HTTP服务器可以为终端用户和设备提供服务,而MQTT服务器可以确保设备之间的大量连接和实时通信。此外,为了提高系统的功能性、可用性和性能,文中还介绍了支持数据库等关键组件。

A、 物联网基础设施

物联网基础设施是整个物联网系统的一个基本组成部分,因为它可以感知和执行从/到环境的操作以及向物联网云发送信息。物联网基础设施包括所有物联网设备和支持的接入网络。前者部署在应用环境中,后者提供物联网设备与云之间的通信。物联网设备主要包括传感器、执行器、智能家电等,可能产生大量数据,通过可靠高效的接入网络传输到物联网云。此外,控制消息可以通过相同的接入网络从物联网云传输到物联网设备。

B、 物联网云

如图1所示,物联网云由几个关键组件组成,每个组件由执行不同任务的多个服务器组成。服务器被建立为使用虚拟化技术的虚拟机(vm)。它们彼此独立,即使它们运行在同一台物理机器上。使用这些vm,可以配置负载平衡器/反向代理服务器、数据库和应用程序服务器。每个组件的功能描述如下:

1) 虚拟资源池:由于物理机的硬件资源(如CPU、内存、网络连接等)不能充分利用,存在资源浪费严重,服务器可扩展性低的问题。为了解决这些问题,虚拟化技术被用来提供可行的解决方案,旨在提高物联网云的资源利用率。通过虚拟化,hypervisor软件作为一个抽象层在物理机上运行,以管理所有资源,并为支持动态资源分配的各种独立的客户操作系统(OSs)(称为vm)提供一个操作环境。此外,物联网云服务可以部署在虚拟机上,而不是直接部署在物理机上,这有助于减少物理机的使用,从而可以以低成本提供高性能。

特别是,通过采用虚拟化技术,可以在包含所有硬件资源的多台物理机上建立虚拟资源池,并根据需要将它们分配给不同的vm。这样,所有其他服务器都可以根据自己的需求获得适当数量的资源。

2) 应用服务器:应用服务器通常被认为是物联网云最重要的组成部分,因为它们负责向客户提供业务服务。他们需要提供设施和适当的环境来运行基于某些应用程序协议的多个应用程序。传统云计算中的应用服务器通常基于HTTP。HTTP服务器通过与客户端的传输控制协议(TCP)连接以请求-响应方式工作。当建立连接时,HTTP服务器可以监听来自客户端的请求的某些端口,并对接收到的请求发送适当的响应。

然而,由于物联网设备受其自身的限制,HTTP不太适合物联网云计算、通信和能源资源。因此,另一种类型的应用协议对于物联网云更具吸引力,即MQTT协议。MQTT是为资源受限的物联网设备设计的,是一种轻量级消息传输协议,通过基于主题的发布-订阅模式运行。这意味着,当客户端发布有关特定主题的消息时,已订阅同一主题的所有客户端都可以接收此消息。完成传输过程的关键组件被视为代理,通过它可以启用一对多连接。

3) 数据库:根据数据存储的各种应用需求,关系型和非关系型数据库,也称为结构化查询语言(SQL)和NoSQL数据库,在物联网云中是可选的。SQL是为关系数据库设计的一种编程语言,它可以以二维表的形式存储数据。然而,SQL数据库的性能是实时物联网应用部署的主要瓶颈。因此,NoSQL数据库被用来为数据存储提供实时、高效的服务。这些数据库允许数据直接存储在内存或硬盘中,因此,输入/输出(I/O)速度显著提高。

4) 反向代理和负载平衡:由于物联网设备和用户数量庞大,应用服务器需要处理数百万个并发请求或传输大量消息。如果不强制执行负载平衡,则这些请求或消息将在不进行调度的情况下处理。结果,一些服务器可能由于负担过重而严重拥塞,并且发送到拥塞服务器的新请求或消息可能被拒绝或丢弃。同时,其他服务器可能处于空闲状态,尽管空闲资源实际上可能足以处理这些请求,从而导致资源的大量浪费。因此,负载平衡对于在多个后端服务器上均匀分配工作负载和实现所有可用资源的充分利用至关重要。

四、 实施物联网云服务

以连接数百万设备和最终用户为目标,提出的物联网云将在本节详细阐述。还讨论了物联网云可以提供的服务。

A、 实施

虚拟化操作系统(如VMWare vSphere1)可用于与多个vm建立资源池,并可直接处理物理机的CPU和内存资源。物联网云中的服务器可以实现为一个虚拟机。不同类型服务器的实现详细描述如下:

1) 应用服务器:物联网云包括HTTP和MQTT服务器,两者都可以使用Node.js节点,它通常用于开发服务器应用程序,因为它具有高并发性。它以异步事件循环的形式运行,异步事件循环使用单个线程执行所有I/O操作。因此,应用服务器能够处理大量并发连接。

a) HTTP服务器:它们应用一个灵活的web应用程序框架,即Express,以便工作。这样,web和移动应用程序就可以轻松地部署在HTTP服务器上,该服务器通过请求-响应周期与客户机交互。HTTP服务器提供三种不同的方法,即GET、POST和DELETE,供客户端进行请求。客户端可以通过GET请求从HTTP服务器获取资源。客户端还可以通过POST请求向HTTP服务器发送信息。此外,DELETE请求允许客户端删除HTTP服务器中的某些资源。接收到请求后,HTTP服务器将尝试处理该请求并将响应发送回客户端。

b) MQTT服务器:通过使用MQTT协议(基于代理的发布/订阅消息传输协议)来部署它们,以便在物联网设备和最终用户之间进行即时通信。它的发布和订阅是基于“topic”的概念组织的,所有的包都是通过代理发布的。对于发布,主题应该是唯一定义的,而对于订阅,MQTT客户机可以同时订阅多个主题。MQTT服务器是基于Node.js节点,即MQTT连接。为了提高MQTT服务器的实时性能,它们必须与客户机或设备保持长期的TCP连接。此外,MQTT服务器使用三个服务质量(QoS)级别来确保可靠性。QoS级别0表示收件人不向发布服务器发送任何确认,并且消息只发布一次。相比之下,QoS级别1需要确认。对于QoS级别2,握手机制用于确保消息能够成功地传递到所有订阅者。根据不同的业务需求,可以配置相应的QoS级别。

多个应用服务器可以构成一个集群,允许同时跨多个并行处理器扩展服务器程序。并行多线程机器(PM2)帮助形成多个HTTP服务器的集群。另一方面,MQTT服务器必须通过在主从模式下操作来充当集群。在此模式下,MQTT服务器在主节点上运行,主节点可以启动其他服务器作为从节点。每个MQTT服务器(主服务器或从服务器)运行在一个单独的CPU核心上。

2) 数据库集群和代理:物联网云使用Redis2(NoSQL数据库)来存储数据。通过在内存中存储所有的键值数据,Redis可以显著提高I/O速度。为了提高数据库的可靠性,可以在物联网云中配置多个Redis节点的Redis集群。因此,即使一个或多个Redis节点出现故障,用户也可以享受连续的数据服务。Redis集群是完全连接的,因此每个Redis节点都通过TCP连接到所有其他节点。形成Redis集群后,需要配置slot share才能使集群正常工作。首先对Redis集群中存储的数据进行哈希处理,例如以数据的16384模的CRC16作为哈希槽。如图2所示,通过检查散列槽所在的间隔,数据随后被存储在相应的Redis节点中。由于传入数据的哈希时隙是均匀分布的,因此每个Redis节点的负载本质上是平衡的。从用户的角度来看,无论是单个Redis节点还是集群,访问数据库都没有区别。

另一方面,Redis可以很好地与MQTT服务器一起工作,因为它可以作为消息代理工作。然后,MQTT服务器的负载可以很大程度上转移到Redis集群,以便实现更高的并发性。客户机可以首先将某些主题的消息发布到MQTT服务器,然后MQTT服务器将消息的有效负载直接传输到Redis集群。这些有效载荷只能由一个Redis节点接收。但是,此节点可能未连接到订阅这些话题。因此,这个Redis节点必须与所有其他节点共享有效负载。与正确的订阅者连接的其他节点可以向这些订阅者发送有效负载。通过这种方式,可以确保消息代理的性能令人满意。为了进一步保证数据库的可靠性,Redis集群需要热备和事务日志等先进技术。每个Redis节点都有自己的备份,在出现故障时在备用服务器中运行。此外,事务日志可以记录数据库的历史,包括恶意攻击,以便于恢复。

3) 负载均衡器:为了支持来自大量物联网设备和用户的大量请求和消息,物联网云需要一个负载均衡器。HAProxy3是一个合适的选择。作为一个开源的轻量级负载均衡器,HAProxy可以为物联网云提供高效的基于TCP和基于HTTP的负载均衡,并在支持高并发性的事件驱动的单线程模型中运行。通过适当的配置,为具有HAProxy的物联网云部署了两种类型的负载平衡,即:

a) HTTP负载平衡器:在HAProxy中配置默认的负载平衡方法,即加权循环,以分发对HTTP服务器的请求。HAProxy可以在绑定端口上检查请求的统一资源定位器(URL),然后根据URL或一些预定义的规则将请求分发到对象HTTP服务器。这样,可以有效地平衡HTTP服务器的工作负载。

b) MQTT负载平衡器:HAProxy中没有MQTT服务器的负载平衡功能。因此,部署了TCP负载平衡来为多个MQTT服务器分配负载。TCP负载平衡可以根据一组预定义的规则将TCP包传输到匹配的后端服务器。这是通过一种称为网络地址转换(NAT)的协议和一些负载平衡方法来实现的。根据NAT协

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[409579],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。