搜档网
当前位置:搜档网 › 翻译 SYSTEM ARCHITECTURE FOR INTERNET OF THINGS WITH THE EXTENSIVE USE OF EMBEDDED VIRTUALIZATION

翻译 SYSTEM ARCHITECTURE FOR INTERNET OF THINGS WITH THE EXTENSIVE USE OF EMBEDDED VIRTUALIZATION

翻译 SYSTEM ARCHITECTURE FOR INTERNET OF THINGS WITH THE EXTENSIVE USE OF EMBEDDED VIRTUALIZATION
翻译 SYSTEM ARCHITECTURE FOR INTERNET OF THINGS WITH THE EXTENSIVE USE OF EMBEDDED VIRTUALIZATION

随着嵌入式虚拟化的广泛应用的物联网系统架构

目录

1摘要 (1)

2引言 (1)

3目的 (2)

4嵌入式虚拟化 (3)

4.1A编译语言中的可移植本机代码 (3)

4.2B基于语言的虚拟机器 (3)

4.3C多程式化操作系统。 (4)

4.4D平台虚拟化 (4)

4.5E云计算 (4)

4.6F虚拟网络 (4)

4.7G传感器虚拟化 (4)

5应用虚拟化物联网 (5)

6四、原型实现 (6)

7五、平台虚拟化的基准测试结果 (8)

7.1 A.QEMU仿真器 (8)

7.2 B.基准QEMU仿真 (8)

7.3C基准的计算性能 (8)

7.4D基准测试的输入输出性能 (9)

8结论 (9)

1摘要

物联网的应用(物联网)是相当丰富的(智能建筑,智能城市,智能基础设施,车辆,车辆,道路通信,智能实用程序,可穿戴计算等)。然而,建设和运营这种大规模分布式嵌入式系统的操作并不简单。商业上可行的部署物联网解决方案被我们构建和操作这样的复杂和异构系统的能力所限制了。在本文中,我们提出了一个系统的架构,它选择不同类型的嵌入式虚拟化,实现对施工和可操的控制。我们评估所提出的系统架构使用从市售单板建造的原型计算机,传感器和执行器。该系统的软件组成来自开放源码,免费软件,例如,我们使用Linux,QEMU,Python等。本文还探讨了如何使用各种虚拟化解决方案影响性能和资源需求。

关键词:物联网,嵌入式虚拟化,可施工性,可操作性,性能,Linux,QEMU,physical系统,CPS

2引言

物联网应用非常广泛,跟物联网相关的基本构建也需要大范围得安装;然而,相关技术的使用也会开始成熟起来。物联网的运用包括有:智能建筑,智能城市,智能基础设施和公用事业,智能交通,可穿戴设备等,有人说[1],这些新技术甚至可能带来第四次工业革命,从而彻底改变我们如何处理世界的方式,是我们的生活更加优化。在这个新世界里,我们几乎在一个巨大的互联的超级系统,或超级系统中所有可预见的信息都是被获取、收集、存储、分析使用的。典型物联网层状体系结构方案如图1所示。在最低层传感器和执行器接触嵌入式物理环境。数据采集层控制传感器和执行器的操作或提供指定时间的大部分病例的信息。数据集中层负责数据存储和是数据在整个系统里面具有可用性。分析,介绍,解释决策层利用系统中现有数据的来实现先进的功能。管理层使用垂直控制台影响系统的操作(即个人管理层)。

3目的

如果我们考虑到这些系统的稳定性和可靠性建设和经营这样的复杂系统是需要巨大的人力物力财力,我们目前的能力是相当有限,所以我们还没有准备好建设和经营这样的一个复杂系统。商业上可行的物联网的部署解决方案也受到了被我们建设和运营这样的系统能力的限制。我们可以说,物联网通过硬件或低级别的软件是没有限制的,在一个可以接受的价格我们可以建立传感器,执行器,网络,计算机等组成的物联网系统;

但是所以的部件一起运行和维护起来就会有所限制。本质上,这意味着,我国的目前物联网的解决方案建设和运营能力是非常低的。多数情况物联网的施工和运营很大程度上取决于层次化设计处理,抽象,和通用接口的使用。因此,我们需要一个物联网的层次化设计与抽象层次设计的的解决方案,并提供通用模式的互操作(通用接口)收集和使用尽可能多的信息。

可操作性(或可维护性)是一个描述系统在安全和在其寿命期间的功能状态的一个重要特性。在一个物联网系统建立起俩之后,我们希望他的寿命能达到10—20年,甚至更长。从电子零部件的使用寿命这个角度来说,这个时间已经是一个很长的时间段了。

此外,软件更新换代也变得很快。实际上,物联网系统的主要成本来自施工和操作,这要求物联网大部分的运用程序的成本尽可能低一点,因为投资回报率是有限的。如果需要对系统进行优化,只有利用更高水平协同效应才能带来更低的费用。

图1物联网解决方案层次结构

4嵌入式虚拟化

一个软件解决方案的可实施性和可操作性与其可移植性密切相关。也就是说,如果一个软件是具有比较好的移植性,通过使用它作为一个组成部分更容易构建复杂系统。嵌入式系统软件(固件)的目的是建立了一个精确指定的硬件。换言之,固件的设计是不可移植的,它是特定的硬件,所使用的也是特定的编程语言(通常是C或C++),以及特定的软件开发环境。在编写代码的时候,限制数据类型以可移植的方式使用语言结构,但它主要是为了靠性,而不是为了便于携带。例如,MISRA C是这样的可靠性为中心的解决方案。此外,分布式嵌入式系统也根据这些设计原则来保证了可靠性,但限制灵活性和移植使用。

然而,在信息技术领域,软件是可移植的,即花费比较少的成本,就可以在不同的硬件和操作系统上使用。这是免费的,比如:开放源码的软件。操作系统(有一个大量的硬件架构,它支持),和几个同样被授权的应用程序(例如LibreOffice,GIP,Inkscape),不仅运行在Linux,但其他几个操作系统为Windows和OSX。这类无缝的可移植性将使我们能够构建和操作复杂的嵌入式系统,这些可移植的属性在物联网的运用上市相当有利的。大量的虚拟化技术的运用在现代信息技术实现虚拟化[2],这些技术也正在慢慢地出现在嵌入式世界。可行的虚拟化嵌入式系统技术使用到了如下几个虚拟网络技术[2]:

●编译语言下的可移植代码(c++特定于平台的编译器gcc),

●基于语言的虚拟机器(Java语言?,Python,Perl,Lua,bash,等),

●多编程操作系统运用在过程虚拟化(基本架构现代操作系统的特性世界),

●平台虚拟化(虚拟机,KVM,VirtualBox,QEMU)(虚拟的基础设施),

●虚拟网络VLAN(虚拟局域网,虚拟专用网络,VPN),传感器虚拟化。

根本的问题是如何将这些虚拟化技术可以利用在物联网,以方便实施和可操作。

4.1A编译语言中的可移植本机代码

可以用汇编语言编写这样的代码,这些代码可以在编译器作用下在不同的硬件和软件上运行。这样的基本建筑要求代码是代码本身必须独立于平台。此外,平台具体测试也是一个要求。编写便携式代码很具挑战性,系统的最佳运行性能由本地的中央处理器特定的机器码实现了。

4.2B基于语言的虚拟机器

虚拟机基地语言的发展是为了提供“写一次”的原则。虚拟机的主要任务是隐藏平台的具体方面硬件和底层平台的具体软件。根据一片论文了运用程序是运行在耨一个操作系统上的,而操作系统是建立在一定的硬件基础上的,而虚拟化

技术就是利用软件俩构造运用程序和操作系统的运行环境。基于中间字节代码(Java)。由于这个运行时间翻译这些解决方案提供低层的性能

通常,因此他们几乎不用资源有限的嵌入式系统而采用低成本的微型控制器。

4.3C多程式化操作系统。

嵌入式系统软件通常是不可扩展的.但整个固件必须更新,系统必须被重新启动以允许新的软件组件被执行。多程序操作系统,但是,能够开始执行新的程序或停止运行的程序需求的抽象化的过程。过程允许运行程序的虚拟化环境。硬件并行运行多个程序干扰和共享资源以受控的方式。支持进程有一些硬件需求,即处理器需要有保护级别和内存管理单元(MMU)运行的操作系统过程;因此,这种操作系统只能现在获得更强大的嵌入式广泛接受平台出现由于芯片制造的进步技术[3]。

4.4D平台虚拟化

虚拟化平台允许在虚拟机监控器(VMM)上单一硬件(主机)运行多个操作系统(客人)。结合它与仿真,操作系统和软件都可以编译为不同的硬件架构,但可以执行的主机就显示出了最大限度的灵活性。但平台虚拟化;如果主机上没有支持硬件虚拟化的硬件基础,甚至在硬件虚拟化支持的情况下在主机上,性能可能大幅下降。今天最嵌入式微控制器和嵌入式处理器没有硬件支持来实现平台虚拟化。然而,不久的将来,将会出现有硬件支持实现平台虚拟化。

4.5E云计算

“云计算”这个术语指的是几种技术,这些技术通过一种虚拟化,按需求,可扩展性和可靠的方式来利用分布式计算资源。物联网解决方案可以在云这个平台上实现,来部署他们的数据收集,分析,决策和演示。

4.6F虚拟网络

虚拟网络,主要是虚拟局域网(VLAN)和虚拟专用网络(VPN)允许创建一个以应用为中心的虚拟网络基础设施和物理网络基础设施,以实现更好的网络分离和安全。本文仅提到虚拟网络作为一个额外的虚拟化技术,实现虚拟化的广泛使用,我们的主要目的是解决物联网解决方案的开发与维护计算节点上的各种虚拟化的相关问题。

4.7G传感器虚拟化

传感器虚拟化是一种技术,允许访问一个或多个或多个物理性质的测量系统。利用软件来实现物理传感器的功能,大多数情况下,传感器虚拟化是一个软件层

之间物理传感器及其应用。例如,安卓移动操作系统采用基于简单的移动设备应用程序物理传感器虚拟化技术来提供访问的位置,方向等特性,如全球定位系统,加速度计,数字罗盘,陀螺仪。

5应用虚拟化物联网

应用虚拟化是将应用程序与操作系统解耦合,为应用程序提供了一个虚拟的运行环境。在这个环境中,不仅包括应用程序的可执行文件,还包括它所需要的运行时环境。从本质上说,应用虚拟化是把应用对低层的系统和硬件的依赖抽象出来,可以解决版本不兼容的问题。

在物联网解决方案虚拟化可通过可配置的方式实现。使我们能够分离执行功能和执行在动态。变更的要求,可用的执行单位和传感器和/或执行器,新的应用程序的实施需要用到用相同的硬件和软件架构来检测的变化和重新配置(延伸)的软件和功能运行时。

为了实现这些功能,系统存储可移植编译代码语言来实现,比如基于虚拟机的语言代码,并在平台上在实现的存储库中的特定本机代码。一个功能可能有多种实现方式,例如,它可以在本机代码,或在多个本地使用代码和便携式汇编语言代码(因为它已经已经编译通过一个特定于平台的编译器平台),或以虚拟机为基础的语言形式上来实施。该系统的存储还依赖其他相关因素,如测试平台组件在一个被检测到的变化系统中,一个新的配置开发正在开发。主要是,本优先级为基础规则可以应用于映射功能来执行资源。

●如果在特定的平台中提供了一个功能性的话原生的形式,可以有效地执行在

本地执行资源,它映射到这样的资源和执行。

●如果在便携式语言代码编译中提供了一个功能,可以映射到一个执行一个编

译器存在的资源,然后代码是专门用来资源编译,并映射到这样的资源,并执行。

●如果虚拟机的某一个功能是有效的该功能能映射到这样一个资源,然后在那

里运行。

●如果该功能以原生形式仅存在于特定的平台,没有可用的用来运行该平台的

资源,平台虚拟化作为最后选择。该功能映射到一种具有仿真功能的执行资源来实现相关的功能。

功能映射到相关资源资源和在那里执行有进程。今天的价格和硬件的性能,能够运行这样的操作系统使得此选项与用单片机基础系统运行非多道程序(仅支持线程)的操作系统相比,新的方法是可行的。

6原型实现

我们已经开发了一个原型在一个真实的应用中实现评估虚拟化解决方案。选定的问题可以被分类为一个有关智能建筑的应用,物联网解决方案在其中的作用是监测和监督环境。在房间里我们有各种各样的传感器和执行器。

●服务器计算机与内置的操作和x86上的Linux运行环境传感器。操作传感器,

如处理器的负载,内存,磁盘和网络使用的传感器,可以使用SNMP协议。

内部环境传感器(温度主要)通过发此项目的自定义接口。他们测量内部元件的温度冷却风扇转速。

●有能源监测系统[5]测量机房服务器的功耗。这些设备通信采用ZigBee。

●有温度和湿度传感器节点安装在服务器房间,使用自定义内置硬件测量环境

环境的软件在房间的特定位置的属性。这些设备利用以太网和TCP/IP协议通信。

●这里有额外的温湿度传感器来观察,这些特性如何影响中心温度和运行状况。

这些设备使用的是以太网和TCP/IP协议通信。

●有摄像机观察该业务状态和服务器机房占用。基于实时图像图像处理软件中

运行的云检测服务器房间中的各种状态变化对影响房间的环境状况。这样的事件被人占用,运行托管设备(例如,基于状态的发光二极管可在设备上使用。这种传感器类型包括在用于评估流式传感器的原型使用比较大的带宽。)

各种各样的物联网功能可以运用单个搭载有linux的计算板上,或者运用在服务器上。为展示在异构计算环境下的计算能力,我们使用如下可移植性硬件:?标准x86PC上运行Ubuntu12.04LTS或Ubuntu Linux13.04。?Raspberry Pi的ARM11架构模型BCPU(700MHz)和适当的Raspbian Linux。?BeagleBoard-xM与ARM Cortex-A8架构CPU(700MHz)和适当的Ubuntu Linux13.04。

?Xilinx Spartan-6FPGA开发套件?Atlys MicroBlaze软核CPU(75MHz)

软核CPU包括在原型展示如用何传统的软件开发的低性能(大概是过时的)平台,这些可以通过一个较新的平台上进行仿真(或是一个新的平台BeagleBoard-xM)来实现。我们使用USB和串行基于端口的温湿度传感器。基于USB的传感器有一个用户空间驱动程序利用libusb-1.0API编写的USB访问用户空间(不可在仿真MicroBlaze平台)。系列

基于端口的温湿度传感器使用bash脚本交流。可视化软件使用bash和gnuplo 系统来收集的数据。一个例如图2。

图2一天内的温度变化

照相机是由mjpg-streamer视频软件和静止图像流软件访问。我们使用USB 摄像头,

悬钩子相机模型。除了MicroBlaze软件为所有硬件平台编译,因为那个平台智能提供有限的资源。

A云计算模型的运用

数据集中、分析和表示层模型是建造在一个平台上即服务(PaaS)云计算环境。我们通过传感器实现数据收集。下面介绍2种传感器:

●标量传感器:它们测量一个标量物理性质环境,例如处理器的利用,

温度,能源消耗等。这些传感器的数据被存储在SOS上。其他的部分可以从SOS 上访问这些历史的测量信息。

●流式传感器:它们测量一个大数组环境周期性的特性,如视频流。SOS是不

能够存储的这些测量值,主要就是由于容量的限制,由于有限的存储和这种传感器的值

处理能力。因此,SOS只存储可访问性和可用性信息。基于此信息,上层组件可以直接(感测)传感器的值。

图像处理是在基于PaaS完成的。它的主要目的是检测设备的变化,确定设备的状态。所检测到的环境的变化被存储在SOS,但流数据不是存储在SOS上,但结果的流数据的分析却存储在sos上,方便未来的使用。

B.检查性

用户空间的USB温度,湿度传感器USB驱动程序的和mjpg-streamer是用C语言写的,和为使用平台编译。由于类似的操作系统,内核(各种版本),内核组件(视频)Linux用户空间,USB,等),编译程序的代码是可移植的。基于这些测试,在各种硬件平台中可移植的代码和软件环境确保系统可移植性的有效性,如用户空间的USB驱动程序或视频流。

Bash脚本基于温度和湿度传感器在串口通信(使用也是一个USB串口在Raspberry Pi和BeagleBoard-xM由于转换器真正的串行端口的情况下)是完全可移植的,除了设备文件的串口需要在所有设备上指定手动外。本试验演示基于虚拟机的语言可以提供特殊的可移植性。

平台虚拟化解决方案的可移植性和性能将会在接下来详细介绍。

7平台虚拟化的基准测试结果

7.1 A.QEMU仿真器

通过QEMU仿真器可以实现处理器虚拟化。一个QEMU的好处是主机的比较多的数量和客人的架构支持通过TCG(微小的核心发电机)二进制翻译机制。其中一个QUEM在嵌入式系统最大的优势是Linux用户模型的仿真模拟。它允许用户使用备用计算功率和存储空间。

在Linux用户模式仿真,QEMU只执行的用户程序在客户的架构上,每一个系统调用和输入输出控制被传递给主机内核,从而允许更大的计算速度和更好的相互作用。一个可以使用QEMU访问主机的硬件输入空间,而不必创建适当的QEMU虚拟硬件。

7.2 B.基准QEMU仿真

衡量一个qemuemulated嵌入式平台的计算性能,两种不同的方法:

第一是QEMU用户空间基准衡量的计算性能,第二简单的基准措施的输出性能。

7.3C基准的计算性能

可以通过三个测量量来估计基准的计算性能。第一项措施本机的处理器性能,二是措施

仿真的MicroBlaze处理器的性能,第三措施75MHz的MicroBlaze原生的性能。既然这个基准的目标是揭露理论计算系统的上限,而不是测量一个特定任务的性能(例如视频流压缩)。虽然nbench测试是足够简单和便携式,但它足够复杂。同时,nbench设计为可伸缩性:它包括一个动态的工作量调整,允许测试调整系统的功能,同时提供一致的结果。nbench不测试系统的多任务功能。

自一个嵌入式系统很少依赖于重的多任务。

结果表明,使用QEMU后大约有95%的性能下降,但相比MicroBlaze在75MHz运行本机的性能时钟的测量是可比的。在这里,我们必须注意的是初始机器的结果都在raspberryfig产生。环境温度和PI具有浮点运算单元湿度一天测量,而是一个基于传感器的USB测量配线柜。

而MicroBlaze只能进行固定点计算,而只能进行浮点计算的模拟。接下来的表格就是基准结果

表1基准结果

7.4D基准测试的输入输出性能

由于QEMU Linux用户模式仿真需要通过系统调用主机内核,软件依赖于系统调用和宿主内核函数(例如嵌入式软件做输入比一个计算软件。测量简单地测试最大可实现GPIO信号频率(方波)的不断的切换点的BCM2835芯片的GPIO)。该测量方法存在的问题是:TCGZ在QEMU的使用,所以我们测量可以称为“最好的情况”情景。但是,因为最常见的任务是建立从小循环,测量反映的是共有的使用情况。测量的结果如下:

●在处理器上运行的本地软件15-16MHz频率可以实现,

●另一方面,模拟的MicroBlaze可生成一个5MHz的方波。

需要提及的是由虚拟化系统生成的相对不准确的方波的频率是远远大于由本机代码生成的方波频率,主要是因为对动态重新编译运行时间不准确造成的。在某些应用中,这种不准确性是不能接受的。

8结论

在本文中,我们提出了虚拟化为基础的物联网解决方案和施工方法。在这样的系统中存在的可操作性问题。由原型实现体现出各种虚拟化技术,如便携式代码,虚拟机为基础语言,平台虚拟化,多编程操作系统。然而,在今天的系统中,平台虚拟化将会把性能考虑进去。

我们研究了虚拟化平台与QEMU。详细介绍了嵌入式系统中的仿真器。两使用QEMU作为一个Linux用户模式发现了两个缺点。第一个问题是与本地实

现相比性能低得多,第二个是与最近的内核相比QEMU Linux用户模式有点落后,例如,我们由于缺少一些内核接口实现不能使用我们的用户空间的USB解决方案。然而,对于简单的任务,在那里便携性和直接硬件访问是很重要的,那样可以即使在物联网解决方案的虚拟化是一个选项;此外,硬件虚拟化支持,性能问题可能会减少[6]。

QEMU仿真器

基准QEMU的仿真

基准的计算性能

基准测试的输入输出性能测试

相关主题