基于OpenRSM的无线传感器网络管理

4 无线传感器网络行政管理

M. Kalochristianakis*, E. Varvarigos†
*克里特技术教育学院,克里特, 希腊,
†帕特雷大学,阿哈伊亚,希腊

4.1 引言

无线传感器网络(WSN)技术的普及对管理实践提出了挑战,因为现有管理方法往往缺乏标准解决方案或成熟的管理实践。尽管远程、可扩展或生产性安装的管理具有潜在价值,但目前支持WSN基础设施的集成管理系统非常少,除了标准工作站和智能设备之外几乎没有。

传统的网络管理重点,如故障、配置、安全性、性能、计费管理等,在无线传感器网络中需要补充额外的重点,例如节能监管、代码传输、软件更新以及拓扑感知。大多数商业基础设施管理(IM)系统使用远程客户端或代理模块来提供网络管理(NM)和系统管理(SM)功能。代理在操作、功能或界面展示方面可能有所不同;它们可以作为用户或系统进程运行,支持灵活的安装类型,并能够处理复杂配置,向用户提供广泛或简洁的图形界面。

IM代理通常利用桌面管理任务组(DMTF)和互联网工程任务组(IETF)定义的一系列管理协议,包括WBEM(Thompson,1998)、CIM(Tosic 和 Dordevic‐Kajan, 1999)、WMI(Microsoft technet, n.d.)、SNMP(Chaparadza, 2005)等。此类技术带来的整体复杂性和数据量通常超出了无线传感器网络终端节点的能力范围,除非为WSN建立明确的管理标准,否则大多数IM解决方案在近期可能仍不会包含这些网络。

少数现有的自由开源(FOSS)IM系统通过定制化和扩展来实现对无线网络的集成管理。本章其余部分将描述如何通过扩展开源IM平台(如OpenRSM(Karalis 等,2009))来管理无线传感器网络,即管理员如何为无线传感器网络实现可用的、定制化的高级IM用例。本章选择TinyOS作为无线传感器网络平台,但目标是阐述一种通用的方法论,适用于任何类型的无线传感器网络技术。

TinyOS(Levis,2006)是一种开源的、基于组件的操作系统,用于构建近年来日益流行的无线传感器网络。它依赖于具备通信、计算和传感能力的片上系统。其他类似的无线传感器网络操作系统包括MagnetOS(MagnetOS操作系统,2012)、MantisOS(Bhatii 等人,2004)、Contiki(Dunkels 等人,2004)、SOS(Han 等人,2005)、PUSPIN(Lifton 等人,2002)以及 CORMOS(Yannakopoulos 和 Bilas,2005)。关于网络化传感器技术的近期调查可参见 Dwivedi 等人 (2009) 和 Chatzigiannakis 等人 (2007)。

TinyOS 最初由加州大学伯克利分校与英特尔研究实验室及 Crossbow 技术公司合作开发(Crossbow 技术,2012),现已发展为一个国际联盟——TinyOS 联盟 (2012)。该系统为所有主流嵌入式处理器系列提供库和工具链,因此能够为各种类型的开发板构建和部署应用程序。

与其他操作系统一样,它隐藏了无线传感器网络的底层细节(Levis 等人,2005),并为所需抽象层提供相应的 API 接口,即数据包通信、路由、感知、执行和存储。它是一个单片式操作系统,因为在编译时使用组件模型,在运行时采用静态镜像。它完全是非阻塞的,并支持单栈结构。所有持续时间超过几百微秒的 I/O 操作都是异步的,并配有回调函数。

为了实现编译器优化,专门设计了网络嵌入式系统C语言(NESC),用于根据 TinyOS 的设计理念静态链接回调函数(在 TinyOS 中称为事件)。NESC 基于 C 语言,因此其语法类似于 C 语言,并使用与基本C语言类型相对应的数据类型。例如,在 MICA 和 TELOS 节点上,整数为 16位,而在 IntelMote2 上则为 32位。

非阻塞性质使系统能够在单栈结构下保持高并发性,但迫使程序员通过实现大量小型事件处理程序来编写复杂逻辑。TinyOS 能够以低内存需求支持复杂程序;许多应用程序可在 16KB内存内运行,而核心操作系统仅占用 400字节。为支持更大规模的计算任务,TinyOS 提供了类似于 Windows 延迟过程调用和中断处理程序底半部的任务机制。因此,组件可以提交任务,由操作系统稍后调度执行。任务是非抢占式的,并按先进先出顺序运行。这种简单的并发模型足以满足以 I/O 为重点的应用程序,但在支持高CPU利用率需求的应用方面存在困难。为此,已有多个将线程引入 TinyOS 的提案。

TinyOS支持依赖特定硬件的无线传感器网络节点,并遵循其开放许可协议。许多节点架构都受到支持,包括EPIC、Imote、Shimmer、Kmote和MICA等。MICAS以及TELOS节点由加州大学伯克利分校开发,并由Crossbow实现商业化产品。无线传感器网络节点也可基于第三代MICA硬件,例如MICAZ、MICA2或 MICA2DOT,这些硬件通常支持4KB及以上数据RAM、128KB及以上程序内存以及512KB及以上闪存,依赖CHIPCON公司集成的CC1000电路。此类设备采用 ATMEL 8位ATmega 128L微控制器。

前者通常依赖工作在868/916MHz的多通道收发器,而后者则使用可在2.4至2.48GHz频段运行的收发器,即IEEE 802.15.4(ZigBee)频谱。这两种设备均可采用电池供电,通常使用两节AA型号电池。用于承载配备传感电路的MICA2或MICAZ节点的开发板包括MTS100、MTS101、MTS300、MTS310、MTS400、MTS420和MDA300。大多数节点还支持扩展插槽以连接附加传感器。

MICA2DOT设备依赖于使用315、433、868或916 MHz频段的多通道收发器。其电源通常为锂3V纽扣电池,可安装在MTS510或MDA500开发板上。

TELOS是另一类用于Tiny OS的节点,包括TELOSA、TELOSB和TMOTE型号。该系列节点采用16位 SI MSP430微控制器封装,具有较低的能耗效率。这些节点使用2.4–2.48 GHz IEEE 802.15.4频段(ZigBee)。节点通常集成光、温度、湿度和电压传感器。该系列产品在内存等资源方面有所区别:TELOSA支持2KB RAM、128KB程序内存和512MB闪存;TELOSB支持10KB RAM、48KB程序内存和1MB闪存。它们依靠两节AA电池供电或通过USB端口供电。

其他可运行 TinyOS的节点还包括TinyNode、EyesIFX和IntelMote2等。

  • TinyNode 设备采用16位SI MSP430微控制器和868MHz无线收发器,配备8KB RAM、92KB程序内存和512MB闪存,使用YE1205集成电路和锂电池。TinyNode开发板支持光、温度和湿度传感器,并带有小型面包板区域,由Shockfish设计制造并提供。
  • EyesIFX 设备由英飞凌在欧盟“高效能传感器网络”(EYES)研究项目期间开发,采用TDA5250集成电路实现操作。其配备16位SI MSP430微控制器,以及速率可达64kbps的无线FSK和ASK收发器。电源来自 AA电池,同时具备10KB RAM、48KB程序内存和512MB闪存,支持高精度温度和光传感器。
  • IntelMote2 (即Imote2)是一种先进的无线传感器网络平台,采用英特尔功能强大的PXA271微处理器。它使用CC2420集成电路和IEEE 802.15.4收发器,支持256KB静态随机存取存储器、32KB动态随机存取存储器和32MB闪存。该节点支持多种电源接口,如USB或Imote2开发板电池。

Crossbow生产的采用IntelMote2的ITS400系列开发板支持光传感器、温度传感器、三轴加速度计和四通道模数转换器。同样来自Crossbow的IMB400开发板具备多媒体功能,因其支持摄像头、麦克风、声音编解码以及被动红外传感 器辐射(PIR)。

IRIS设备配备ATMEGA1281 ATMEL 8位微控制器、IEEE 802.15.4收发器,以及8KB RAM、4KB电可擦可编程只读存储器、128KB程序内存和512MB闪存。此类设备由两节AA电池供电,并可通过MTS300、MTS310、MTS400、MTS420、MDA100、MDA300和MDA320进行扩展,就像 MICA2 和 MICAS 节点一样。

目前有多种用于无线传感器网络的管理工具、平台和架构,每种都依赖于不同的基础设施管理(IM)方法。

  • BOSS (传感器系统的桥接器)(宋等人,2005年)实现了一个基于标准服务发现协议UPnP的管理平台。由于UPnP协议难以在每个传感器上运行,BOSS采用桥接方式,使用指定节点作为管理中间节点,并利用可扩展标记语言(XML)描述服务和传输数据。该系统能够获取有关网络状态、传感器节点特性、网络中节点数量以及拓扑结构的基本信息。管理员可以与节点交互并配置诸如发射功率或节点状态等参数。
  • MANNA架构 (Ruiz 等,2003)旨在通过利用反映无线传感器网络系统通用功能的特定操作模型来管理任意无线传感器网络应用。它考虑了三个管理维度,即功能区域、管理层级和无线传感器网络功能。功能区域包括配置、故障、性能、安全性和计费管理。无线传感器网络功能涵盖配置、维护、感知、处理和通信,而管理可应用于业务、服务、网络和网元管理层面。MANA具有灵活性,独立于所采用的无线传感器网络技术,并允许对被管实体进行所有可能的配置。

BOSS和MANA这两种管理架构均遵循成熟的网络管理(NM)原则。

中间件解决方案在节点固件中引入额外的逻辑层,以实现基本的基础设施管理(IM)服务。

  • MATE (Levis 和 Culler,2002)中间件引入了轻量级虚拟化,旨在克服开发板的多样性,从而简化管理不同类型传感器的任务。MATE的目标是通过减小程序大小来降低复杂性,使其能够在MICA、RENE及其他节点上运行。源代码被分解为24个指令胶囊,通过自组织路由和数据聚合算法在网络中自我复制。
  • AGILLA (Fok 和 Roman,2005)是一种移动代理中间件,有助于在无线传感器网络中快速部署自适应应用。它允许用户创建并注入称为移动代理的程序,这些程序可通过本地元组空间进行协调。移动代理可在无线传感器网络中迁移,并能执行特定应用程序任务。
  • COUGAR (Cougar项目,2011)是另一种用于无线传感器网络的中间件,它使用数据库实现可扩展且灵活的无线传感器网络监控。COUGAR提供跨层优化,例如针对常规通信模式优化的查询层专用路由算法。
  • MIRES (Eduardo 等,2004)中间件采用异步发布/订阅模型与无线传感器网络节点进行通信。
  • NEST (实时协调服务网络虚拟机,2012)是一种实时网络协调与控制中间件,能够抽象、控制并最终保证大规模不可靠网络的期望行为。它基于操作系统任务(称为微单元),支持迁移、复制和分组功能。

较早的中间件系统包括SCADDS和Smart Messages项目(深度分布式系统的可扩展协调架构)。

其他无线传感器网络管理系统包括各种类型的实现。

  • SNMS (Gellersen 等,2002)是一种用于无线传感器网络的应用协同管理系统,利用最少资源提供查询系统,支持快速的用户发起的网络状态和性能数据获取,同时还提供事件注册系统。SNMS基于一个与应用协议栈并行运行的网络协议栈。
  • LEACH (Heinzelman 等,2000)和 GAF (Xu,2001)也属于基于协议的无线传感器网络管理平台类别。GAF利用节点冗余并支持重叠节点的睡眠模式,而LEACH则采用动态高效聚类来管理传感器网络。

另一类无线传感器网络工具专注于无线传感器网络的监控控制台。

  • WSNView (Chen 等,2007)是一种能够自动搜索和显示网络设施、收集和分析网络利用率,并自动生成通知的系统。
  • TinyDB (Madden 等人,2003年)使用类SQL语法从节点收集数据,并提供对节点的基本配置。管理员可以通过其功能丰富的底层界面恢复网络拓扑结构或创建数据图表,但由于自动化程度较低,管理员需手动管理网络操作,并了解如何利用其表示方式和操作方法。
  • MoteView (Touron,2005年)是一种用于无线传感器网络的网络管理与控制工具,可在商业工作站上运行;它将测量数据存储在信息系统中,并提供图形用户界面,用于展示网络拓扑结构或测量值。MoteView还可控制节点参数,如发射功率、采样频率和节点识别号。

此外,还有许多专注于电池管理或发射功率管理的工具,即采样频率和传输速率配置。

  • 基于代理的电源管理(ABPM) 在节点进入低电量状态时,利用智能移动代理实现节能。
  • SenOS AppSleep 则强制无线传感器网络节点在未进行数据测量时自动进入睡眠状态。
  • Siphon DSN RM WinMS 等系统能够高效地管理网络流量;Siphon利用多方向传输的节点来避免拥塞和高共享链路。DSN资源管理(DSNRM)评估进出链路的流量,并通过时间调度传输来优化网络使用。

4.2 通用基础设施管理

OpenRSM 是一种用于远程管理任何 IT 基础设施的工具。它通过扩展和集成高价值的自由开源软件项目,提供一个集成的管理平台。其目标是构建一个能够简化日常任务的远程系统和网络管理(NM)平台。该系统设计功能全面 yet 简单,与大多数商业管理系统不同。

它旨在提供关于已安装资产的信息检索、已安装软件的管理、向站点发送可执行命令、远程桌面控制、无线接入点管理,以及与 EGEE Grid 技术的集成。OpenRSM 通过集成、增强、配置和定制自由开源软件工具开发而成,以实现通用基础设施管理(IM)。

OpenRSM 支持的基本服务包括资产管理(AM)、软件分发(SD)、远程桌面控制(RDC)和网络管理(NM)。在系统创建时,尚无任何自由开源软件系统能够实现与商业企业管理系统(EMS)相似的功能。该系统的能力可扩展至通过标准 IP 连接安全访问的任何站点。

OpenRSM 依赖于能够传递和执行管理动作的本地代理、图形化管理控制台用户界面,以及处理用户请求和代理连接的集成服务器。OpenRSM 基于一个管理框架,该框架用于建模基础设施管理所需的所有相关实体和服务单元,以及它们之间基本的抽象交互。

系统设计采用分层方法;主要的管理实体是用户可以创建的任务,发送到任何受管工作站以及任务被分派的工作站。服务对应于上述子系统,即资产管理、远程桌面控制、软件分发、网络管理,以及主机发现、远程过程调用、服务器任务、接入点管理、任务调度、局域网唤醒、路由器配置、报告、静态和动态实体分组、可定制报告等。

管理实体的层次结构被组织为一个面向对象的类树,构成OpenRSM IM层次结构。该设计支持模块化和可扩展性,因此可以轻松扩展功能以包含专用任务和复杂流程。

顶层任务对象包含其标识、助记名称以及执行参数,例如优先级、执行方法、任务依赖参数等。类似地,抽象受管主机也由一个对象建模。该框架基于抽象类提供实体模板,这些模板可在用户控制台界面中可视化地实例化。

例如,用户可以扩展任意任务模板,填入自定义参数,并创建符合其需求的任务。例如,为了构建一个关闭远程工作站的任务,用户需要使用远程过程调用任务类来实例化一个新的任务对象。他们将其配置为为目标平台封装“关机”命令,并将其与一个管理站点关联。管理框架负责处理通信和执行细节。然后,用户可以使用同一模板为不同的操作系统构建第二个“关机”任务。这两个任务都将继承自相同的框架任务,并继承任务管理框架中实现的核心功能。

任务处理引擎位于信息管理框架的核心,负责协调底层机制。其他层次包括通信、任务编码/解码、任务/站点验证和安全性。所有上述层次均基于代理、管理器和服务器的功能进行设计。

例如,服务器与管理器之间的通信不同于服务器与代理之间的通信;在后一种情况下,服务器需要异步唤醒代理,然后开始状态验证握手、控制,并执行实际的通信。管理器与服务器之间的通信是面向连接的;然而,这两种情况都在通信层中实现。API 层次结构通过相应的接口向系统的所有组件提供支持。

OpenRSM系统的设计考虑了多种实现策略和开发方案(霍赫施泰因等人,2005),范围涵盖基于Web的技术(雷恩和古铁雷斯,1999)、点对点技术以及分层服务器端中间件(凯里和赖利,2012),到更传统的客户端‐服务器方法(李等人,2012)。

原则上,OpenRSM需要简单轻量,以便非专业使用管理或资产报告工具的最终用户也能使用。同时,OpenRSM还被设计用于快速自动部署,以满足管理员在管理高度动态环境时的需求。因此,该系统采用了自由开源软件开发模型,以利用开放的信息管理项目的活力,并从集成中获益。

如上所述,即使目前尚无完整集成的自由开源能源管理系统,但可以看出相关技术已经成熟到一定程度,自由开源软件社区能够提供所有必要的组件(SourceForge 托管门户,2012)。为了找到最适合 OpenRSM用途的自由开源软件管理工具,已对多个自由开源软件项目进行了考察。

在项目开发和本文撰写过程中,作者尚未知悉存在任何其他集成的自由开源软件EMS系统。该架构设计为模块化的,以遵循所涉及实体的逻辑分类,并促进与其他基础设施管理工具的集成。

因此,系统基于客户端‐服务器模型,其中客户端即代理,用于建模可管理的抽象实体,并传递来自OpenRSM服务器的管理操作。代理被设计为支持任何操作系统,以便执行来自管理控制台的管理操作,该控制台是面向最终用户和服务管理员的工具。

用户通过管理命令来描述管理任务,这些命令被传送到OpenRSM服务器,然后调度到代理上执行。系统的组件架构如图4.1所示。

任务是使用面向对象模型进行抽象和设计的实体。系统的设计基于任务在可用性、设计效率和系统可扩展性方面起核心作用的原则。因此,任务被设计为标准抽象系统命令(例如AM、RDC、PRC),或作为可重用的用户创建——即已实例化——的对象。

由于任务的创建和执行阶段是解耦的,因此可以在 OpenRSM中对其进行管理。管理员在管理控制台创建任务,然后将其提交给服务器,服务器检查其语法和依赖关系,根据用户指令调度执行,准备(唤醒)代理,并向其发送任务信息,协调与后端服务的交互,并在必要时与代理模块进行交互。

OpenRSM监控任务执行周期,保留日志并生成报告,同时确保安全性。OpenRSM服务器的后端服务由运行不同IM服务器端组件的信息系统组成。

当任务进入执行阶段时,将由OpenRSM系统中集成的某个子系统提供服务。对于AM查询,代理会注册其所在站点的AM信息,并将该信息提交至由 OpenRSM系统的Web服务器托管的AM Web应用程序。本节相应段落将详细描述每个服务器子系统。

OpenRSM项目托管于SourceForge(OpenRSM项目,2012)。开发团队由三到五名开发者组成。该项目的代码仓库可供下载和贡献。

OpenRSM代理是驻留在最终用户工作站中的客户端模块。其功能仅限于执行服务器发送的命令,并且除非绝对必要,否则不会与OpenRSM服务器系统的任何模块进行交互。统一逻辑设计和安全性需求共同促成了这一实现;每项任务的执行都会触发与集成服务器的通信,并由此连接到相应的服务器子系统。

服务器子系统控制通信,并执行所有互补的动作和数据库事务。代理通过集成对应于不同OpenRSM功能的子系统来实现:集成逻辑、与服务器的通信、系统相关的执行逻辑以及代理类型实现。

示意图0

基本代理模块实现了通信逻辑。如以下章节所述,该部分代理通过握手协议和唤醒/睡眠机制确保一致且安全的通信。构成OpenRSM代理的其余模块是实现任务执行逻辑的子系统,即AM、NM、RDC、RPC和代理发现。

在可能的情况下,这些子系统会利用现有软件或其他自由开源软件代理模块(例如,资产管理子系统使用OpenAudit代理进行资产检索,如前所述)。任务执行子系统与通信逻辑集成,以便集成服务器可以监控所有任务执行阶段。

OpenRSM系统能够通过考虑各平台特性的相应代理分发来管理Windows和*NIX系统。每种分发包含对应不同使用类型的多种代理版本;代理可作为后台进程运行以实现静默操作,作为图形应用程序用户运行以实现详细交互,或作为服务或控制台应用程序运行。

OpenRSM能够在所有组件安装在同一服务器上时支持集中式架构,或在每个组件安装在自治系统上时支持分布式架构。

分布式服务器拓扑结构所带来的优势主要与定制化、性能、可用性和效率相关。由于整体性能取决于系统负载,因此使用更频繁或给系统带来更大负载的子系统可以安装在独立的服务器节点上。在这种情况下,服务可用性也会提高,因为如果单个服务器节点发生故障,则只有部分系统服务会受到影响。

网络管理系统(NMS)通常对整个系统造成较大负载,因此将其部署在独立的自治服务器上可能更为合适。如果服务器无法承受负载,数据库服务器也可以安装在单独的机器上。

软件分发服务(SD服务)的软件仓库也可以与Web服务器分离。它可以被配置为仅向受管终端的一个子集提供服务,从而平衡软件分发子系统(SD subsystem)的整体负载。

未来的工作包括将资产管理(AM)和网络管理(NM)这两个 Web应用程序解耦,以便前者可以安装在不同的服务器上。多种不同的拓扑结构也是可行的。系统可以配置多个OpenRSM集成服务器,以避免单点故障。

这些服务器模块各自协调子系统的集成,构成OpenRSM系统的核心,并且每个安装中可以包含多个此类模块,以提供更高的服务可用性。其他一些对网络流量规划有用的拓扑结构则可利用前文所述的OpenRSM代理服务器模块。

OpenRSM提供了一个控制接口,如图4.1和4.2所示,管理员可通过该接口控制所有子系统及其交互。设计重点在于以全面且有效的方式整合各子系统提供的独立功能,并提供额外的监管功能。

OpenRSM管理控制台提供一个多语言控制环境。该控制台可发送受管站点操作系统所支持的任何系统命令。命令接受与CPU优先级、类型和用户可见性相关的参数。

OpenRSM管理控制台管理是发现运行OpenRSM代理因此是可管理的。对OpenRSM代理的发现可以指向互联网地址空间的任何部分。只有配置为与发起发现数据包的特定OpenRSM服务器通信的代理才会响应代理发现。

发现过程的结果是创建表示相应受管站点的活动界面元素。这些元素与核心任务(AM、RDC、SD、RPC类型)一起构成基本的界面组件。机器和任务是可以组合的实体,从而形成分配给特定配备代理的机器的任务。它们均在管理树中显示,便于监控。

任务和机器都可以分组。机器组和任务组,或任务组和机器组,也可以进一步组合,以创建可提交的机器‐任务映射。组是通用的:一组任务可以包含任意类型的任务,且不实现任何依赖关系。管理员有责任为任务组的执行创建合理的执行顺序。

OpenRSM允许用户创建自定义任务。在干净安装后,仅存在核心任务。核心任务包括预定义的AM、SD、RDC和RPC任务。如前文所述,任务必须在视觉上与一个或多个代理进行组合。因此,任务可被视为已提交管理任务的模板。

每种类型的任务都使用专为此目的设计的界面组件创建。例如,交付任务必须“知道”其需要安装/卸载等的软件。OpenRSM提供用于创建自定义任务的界面。所创建的任务将被存储并通过界面提供,以便重复使用。

用户还可以使用机器和任务组表单分别定义机器组和任务组。管理控制台还提供了任务执行的功能。

示意图1

4.3 管理无线传感器网络

考虑到相关IT系统的多样性,很难设想一个信息系统能够原生支持任意类型的无线传感器网络。然而,像OpenRSM这样的通用远程管理系统可以通过定制来利用任何无线传感器网络平台所提供的管理服务。

我们的目标是利用OpenRSM的通用特性,通过构建有限数量的任务,为基于TinyOS的无线传感器网络提供完整的远程管理支持:当其被安装在自由开源软件或商业平台上时,可确保环境被正确检查和配置,感知应用程序被安装到节点上,读数和测量值被存储,无线传感器网络运行状态被监控,并实现对节点的实时配置。

上述任务已被定义为OpenRSM框架实体,并在管理控制台中提供。在接下来的段落中,我们将描述如何构建自定义任务以远程创建任意感知和配置场景,以及如何将测量数据检索并存入OpenRSM数据库。在本案例研究中,我们使用了 CrossBow TELOSB节点,这些节点通常配备有用于测量电池电压、湿度、光照度和温度的传感器。该无线传感器网络使用一个指定节点作为管理站点与感知节点之间的中间节点。

4.3.1 安装无线传感器网络

远程安装TinyOS 2.1平台需要预先安装多个组件,例如JAVA编程平台、原生编译器(如Atmel AVR工具(Atmel AVR8 微控制器, 2012)或IT MSP430工具(MSP430 16位超低功耗单片机, 2012)、TinyOS工具链、TinyOS源代码以及GraphVIZ工具。然后可以通过运行相应的shell脚本并设置环境变量来配置环境。

该安装过程可通过SD任务或调用原生包管理器(如APT、YUM、zypper或下载并执行必要的二进制文件。在可能的情况下,可以使用底层操作系统提供的功能,例如包管理软件。

对于工具和工具链的安装,可以使用诸如
zypper --non-interactive --no-gpg-checks in -f --auto-agree-with-licenses java-1_6_0-openjdk
apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk openjdk-6-jre -y –force-yes
可以封装在RPC任务中,然后发送到受管主机。此类命令大部分可由管理控制台发送。

另一种方法是创建SD任务,包括提供指向JAVA的URL,在管理控制台为其创建软件包,然后将其关联到适当的任务。这是图形化创建SD任务的典型流程,此类任务可封装二进制文件、归档文件或二进制镜像,并可配置为支持软件安装程序提供的任何无人值守安装或卸载方法。

管理员将知晓其所使用的软件,因为软件会向系统注册,并在管理控制台的实体树中显示出来。另一种替代方法是向代理发送一个WGET任务,随后发送一条执行命令,以使用WGET下载的软件或包含上述命令的shell脚本。

用于安装TinyOS、NESC、deputy、TinyOS工具和TinyOS源码树的类似任务如图4.3所示。左侧窗口是通过远程桌面连接(同样通过OpenRSM RDC连接任务打开)由LINUX窗口管理器呈现的代理终端窗口。右侧是管理控制台,已发送了一个“TinyOS安装”SD任务。

示意图2

安装JAVA平台和Atmel AVR工具的任务——即avr-binutils、avr-gcc、avr-libc、avarice、avr-gdb、avrdude。TI MSP430工具以类似方式安装,即基本工具集、Python工具、binutils、GCC、LIBC、JTAG、MSP430的 GDB。由SD任务使用的已注册软件包显示在树的底部分支中。

TinyOS安装的最后一步是安装GraphVIZ工具和make。请注意,任务可以进行分组,以便通过单次点击发送,并可配置为在同一线程中顺序执行,利用任务配置属性实现。因此,软件执行在下载完成后进行,而不是与其并行执行,因为这两个任务均由主管理控制台线程执行,而非由派生线程执行。

管理员可通过OpenRSM的管理界面中的日志控制台监控执行日志,该日志控制台会传回代理在管理控制台上的输出信息。

4.3.2 运行应用程序

安装完成后,需要对WSN环境进行配置,以便能够编译和部署应用程序。环境的配置通过设置适当的环境变量来实现;这可以通过执行设置TinyOS根目录和主目录、JAVA和NESC的CLASAPTH、显示变量、指向MAKE规则的路径以及任何其他附加参数的任务或脚本来完成。

可以使用其他任务运行检查并返回环境状态的系统工具,例如tos-check-env和tos-install-jni。一组示例 RPC命令(可作为RPC任务或SD脚本发送)可能包括配置MAKE规则所在目录,即“export MAKERULES=$TOSROOT/support/make/Makerules”。

在完成TinyOS配置后,可通过RPC或SD任务封装标准部署命令,以将应用程序部署到节点上。

TinyOS提供了提供无线传感器网络IM功能组件的应用程序工具箱。串行端口与无线传感器网络之间网关的基本实现是基站应用程序。当从串行端口接收数据包时,该应用程序将数据发送到网络;反之,当从网络接收数据包时,它将数据传输到串行端口。

为了将来自串行端口的流量转发到网络TCP套接字,TinyOS平台提供了SerialForwarder。此功能使任何工具(如IM、NM或数据分析工具)都能够访问无线传感器网络的测量数据。数据的可视化由 Oscilloscope应用程序提供。

基站应用程序可以部署在指定节点上,以便从无线传感器网络中收集数据。Oscilloscope应用程序也可以部署在其余节点上,以进行测量并将测量结果转发到基站。此类命令可能如下所示:

make -C apps/BaseStation -f apps/BaseStation/Makefile telosb install.0 
java net.tinyos.sf.SerialForwarder -comm serial@/dev/ttyUSB0:telosb 
java -cp support/sdk/java/tinyos.jar:apps/Oscilloscope/java/oscilloscope.jar Oscilloscope

SerialForwarder 应用程序通常在管理站点上执行,以从连接运行基站应用程序的节点的串行端口读取数据,并通过网络连接转发这些数据。如果在管理主机上需要远程桌面功能,还可以执行示波器图形应用程序,以图形化方式显示接收到的数据。

示意图3

获取电池电压、温度、光照度或湿度的测量值需要部署相应的测量应用程序——即 VoltageOscil、TempOscil、LightOscil 或 HumidOscil,并在 OpenRSM 代理上执行相应的客户端应用程序。上述应用程序是 TinyOS 提供的 Oscilloscope 的变体,并使用适当的 NESC 组件进行数据检索。

对于光照度的测量,配置了滨松S1087ParC驱动程序,而对于温度和湿度则使用盛思锐SHT11C。

对于每个部署感知应用程序的任务,都会在管理站点上通过示波器任务显示测量结果。诸如以下命令:

make -C apps/TempOscil -f apps/TempOscil/Makefile telosb install 
java -cp support/sdk/java/tinyos.jar:apps/TempOscil/java/oscilloscope.jar 温度示波器

可用于实现此类任务。

为了将上述功能集中在一个选项卡中,已为 OpenRSM开发了一个通用的TinyOS管理任务实例化面板。该面板提供图形化 WSN任务创建功能,包括TinyOS安装、卸载、节点发现以及应用程序部署等任务。

示意图4

此面板;用户定义任务名称、执行时间及类型。然后通过保存任务并将其与受管的TinyOS主机相关联来实例化。如果任务包含应用程序部署,用户可选择要部署的可用应用程序及目标节点。该过程可用于实现底层技术所支持的任何远程感知场景。

4.3.3 集中测量

OpenRSM已集成一个用于TinyOS的应用程序DBWriter,该应用程序与受管主机上的SerialForwarder应用程序交互,以接收节点发送的测量数据,并将其写入OpenRSM数据库。该应用程序可进行配置,并支持相应的转换功能,以便将数据转换为合适的计量系统。

示意图5

如前几段所述,节点利用传感器电路通过TempMeasurement、HumidMeasurement、LuminParMeasurement和LuminTsrMeasurement 等应用程序对节点的物理量进行采样。EnvAllMeasurement应用程序用于从网络中获取数据,包括每个节点接收到的数据包总数、采样频率和电池电量。该应用程序的代码如表4.1所示。

每个传感器都使用模数转换组件,可产生能够直接转换为公制单位的数字输出。SHT11 传感器属于 Sensirion SHT1x的AG系列温湿度表面贴装。SHT11集成了模拟测量设备和信号处理逻辑,以提供校准输出。湿度通过电容式传感器测量,温度通过与绝对温度成比例的带隙传感器测量。

测量值随后被转换为14位数字字,并通过串行接口传输给TinyOS。将数字值转换为相对湿度(RH)单位的方法如下公式所示:
$$ RH = c_1 + c_2 \times SORH + c_3 \times SORH^2 $$
其中SORH 表示12位测量数据(Sensirion输出),$ c_1 = -4 $,$ c_2 = 0.0405 $,$ c_3 = -2.8 \times 10^{-6} $。

温度测量的相应转换公式如下:
$$ Temp = c_1 + c_2 \times SO $$

TinyOS节点的光传感器通常使用公司制造的光电二极管。滨松S1087光电二极管检测光合有效辐射(PAR),而S1087-01光电二极管检测包括红外(TSR)在内的整个可见光谱。光合有效辐射可定义为可见光范围内的电磁波谱,即波长在400至700纳米之间,可通过光合作用促进植物生长。

模拟传感器 TSR和PAR均通过1.5伏信号脉冲将测量值转换为12位数字字。LED沿100 kΩ 电阻产生电流I。S1087或S1087-01的输出可通过以下公式转换为亮度单位,勒克斯:
$$ \text{勒克斯} {e} = 0.625 \times 1.6 \times 1000 \times I {1087} $$
$$ \text{勒克斯} {e} = 0.769 \times 1.6 \times 1000 \times I {1087-01} $$
其中I定义为:
$$ I = \frac{AD_{output}}{1.5} \times \frac{4096}{10000} $$

微控制器MPS30具有设备类别TELOS描述中提到的温度和电压等内部传感器。传感器电压的模拟测量被转换为长度为12位的数字字,且通过以下公式转换为物理单位:
$$ VCC = \frac{AD_{output}}{4096} \times 2 \times V_{ref} $$
其中 $ V_{ref} = 1.5\,\text{V} $。

4.3.4 结论与未来趋势

前面的章节阐述了如何使用OpenRSM为基于TinyOS平台的无线传感器网络提供远程IM。OpenRSM可用于为任何提供高级工具或工具的无线传感器网络类型创建类似任务,并且由于其强调可扩展操作,因此能够支持高效的远程管理场景。

当前的工作重点是远程无线传感器网络基础设施的生产性安装、更多无线传感器网络系统的功能集成以及OpenRSM所提供功能的功能增强。需要最小化IM成本的组织必须能够根据自身需求使用OpenRSM来测试上述解决方案。

他们可以自主安装该系统,或使用专用服务。该系统也不应局限于依赖 TinyOS的无线传感器网络;由于OpenRSM是通用的,必须将其扩展以包含针对最知名无线传感器网络的任务创建表单,以及无线传感器网络平台的自动安装、应用程序部署和测量数据集中等功能。

该系统还可以补充一些提高自动化程度的有趣功能,例如支持响应测量值的任务执行。用户将能够定义警报或动作,在测量值达到用户定义的阈值时作为标准任务执行。

此外,当底层无线传感器网络平台提供基于活动节点及其类型的识别应用或数据时,为无线传感器网络节点引入资产管理(AM)也将非常有意义且具有挑战性。

最后但同样重要的是,该系统必须扩展至基于Web的技术,如HTML5、AJAX和中间件。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值