4 无线传感器网络行政管理
4.1 引言
无线传感器网络(WSN)技术的普及对管理实践提出了挑战,因为当前的管理实践往往缺乏标准解决方案或成熟的管理方法。尽管远程、可扩展或生产性设备的管理具有潜在价值,但目前支持WSN基础设施的集成管理系统非常少,除了标准工作站和智能设备之外几乎没有。传统的网络管理优先级,如故障、配置、安全、性能、计费管理等,在无线传感器网络中需要补充额外的优先级,例如节能监管、代码分发、软件更新以及拓扑感知。大多数商业基础设施管理系统(IM系统)使用远程客户端或代理模块来实现网络管理(NM)和系统管理(SM)功能。代理在操作、功能或呈现方式上可能有所不同;它们可以作为用户或系统进程运行,支持灵活的安装类型,并能够处理复杂配置,向用户提供广泛或简化的图形界面。IM代理通常利用桌面管理任务组(DMTF)和互联网工程任务组(IETF)定义的一系列管理协议,包括WBEM(Thompson,1998)、CIM(Tosic和Dordevic‐Kajan,1999)、WMI(微软 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),并为所需抽象提供相应的应用程序编程接口,即数据包通信、路由、感知、执行和存储。它是一种单片式操作系统,因为在编译时使用组件模型,运行时采用静态镜像。它完全是非阻塞的,并支持单栈。所有持续时间超过几百微秒的输入/输出操作都是异步的,并配有回调。为了支持编译器优化,设计了网络嵌入式系统C语言(NESC),用于静态链接回调(根据TinyOS的设计理念,称为事件)。NESC基于C语言,因此其语法与C语言相似,同时使用与基本C类型对应的数据类型。例如,在MICA和TELOS节点上,整数为16位,而在IntelMote2上则为32位。非阻塞性质使系统能够在单栈下保持高并发,但迫使程序员通过实现大量小型事件处理程序来编写复杂逻辑。TinyOS能够以较低的内存需求支持复杂程序;许多应用程序可在16KB内存内运行,而核心操作系统仅占400字节。为了支持更大的计算任务,TinyOS提供了类似于Windows延迟过程调用和中断处理程序底半部的任务机制。因此,组件可以提交任务,操作系统将在之后进行调度执行。任务是非抢占式的,按先进先出顺序运行。这种简单的并发模型足以满足以输入/输出为中心的应用程序,但在需要高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/916 MHz的多通道收发器,而后者则使用可在2.4至2.48 GHz频段运行的收发器,该频段即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微控制器和868 MHz无线收发器,配备8KB RAM、92KB程序存储器和512MB闪存,使用YE1205集成电路和锂电池。TinyNode开发板支持光传感器、温度传感器和湿度传感器,并带有小型面包板区域,由Shockfish设计制造。EyesIFX设备是在欧盟“节能传感器网络”(EYES)研究项目期间由英飞凌开发的,采用TDA5250集成电路进行工作。它们配备16位SI MSP430微控制器和无线FSK与ASK收发器,数据速率可达64kbps。其电源来自AA电池,同时具备10KB RAM、48KB程序存储器和512MB闪存,并支持高精度温度和光照传感器。IntelMote2(即Imote2)是一种先进的无线传感器网络平台,采用英特尔强大的PXA271微处理器,使用CC2420集成电路和IEEE 802.15.4收发器,支持256KB SRAM、32KB SDRAM和32MB闪存。该节点支持多种电源接口,如USB或Imote2开发板电池。采用IntelMote2的Crossbow板卡ITS400系列支持光传感器、温度传感器、三轴加速度计和四通道A/D转换器。同样来自Crossbow的IMB400开发板具备多媒体功能,支持摄像头、麦克风、声音编解码以及被动红外传感器辐射(PIR)。IRIS设备配备ATMEGA1281 ATMEL 8位微控制器、IEEE 802.15.4收发器,以及8KB RAM、4KB EEPROM、128KB程序存储器和512MB闪存。此类设备由两节AA电池供电,并可通过MTS300、MTS310、MTS400、MTS420、MDA100、MDA300和MDA320进行扩展。
目前有多种用于无线传感器网络的管理工具、平台和架构,每种都依赖于不同的信息管理方法。传感器系统桥接器(BOSS)(宋等人,2005年)实现了一个基于标准服务发现协议UPnP的管理平台。由于UPnP协议难以在每个传感器上运行,BOSS采用桥接方式,使用指定节点作为管理中间节点,并利用可扩展标记语言来描述服务和进行数据通信。该系统能够获取有关网络状态、传感器节点特性、网络中节点数量以及拓扑结构的基本信息。管理员可以与节点交互并进行配置诸如传输功率或节点状态等参数。MANNA架构(Ruiz等,2003)旨在通过利用反映WSN系统共性功能的特定操作模型来管理任何WSN应用。该架构考虑了三个管理维度,即功能区域、管理层级和WSN功能。功能区域包括配置、故障、性能、安全和计费管理。WSN功能涵盖配置、维护、感知、处理和通信,而管理可应用于业务、服务、网络和网元管理层面。MANA具有灵活性,独立于所采用的WSN技术,并允许对被管实体进行所有可能的配置。BOSS和MANA管理架构均遵循成熟的NM原则。中间件解决方案在节点固件中引入额外的逻辑层,以实现基本的基础设施管理服务。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年)和MoteView(Touron,2005年)。TinyDB使用类SQL语法从节点收集数据,并提供对节点的基本配置。管理员可以利用其多功能的低级接口恢复网络拓扑结构或创建数据图表,但由于自动化程度较低,管理员需要手动管理网络操作,并了解如何利用其表示形式和操作。MoteView是一种用于商业工作站的无线传感器网络管理和控制工具;它将测量数据存储在信息系统中,并提供图形用户界面,显示网络拓扑结构或测量值。MoteView还可以控制节点参数,如传输功率、采样频率和节点识别号。此外,还有许多工具专注于电池或发射功率管理,即采样频率和传输速率的配置。基于代理的电源管理(ABPM)在节点达到临界电池电量时,利用智能移动代理实现节能。其他类似工具如SenOS和AppSleep则强制无线传感器网络节点在不执行数据测量时自动进入睡眠状态。Siphon、DSN资源管理(DSNRM)和WinMS等系统能够高效地管理网络流量;Siphon利用多方向传输的节点以避免拥塞和高共享链路。DSN资源管理(DSNRM)评估进出链路的流量,并对传输进行时间调度,以优化网络使用。
4.2 通用网管
OpenRSM是一种用于远程管理任何IT基础设施的工具。它通过扩展和集成高价值的自由开源软件项目,提供一个集成的管理平台。其目标是构建一个能够简化日常任务的远程系统和网络管理(NM)平台。该系统设计上功能全面yet简单,与大多数商业管理系统不同。它旨在提供关于已安装资产的信息检索、已安装软件的管理、向站点发送可执行命令、远程桌面控制、无线接入点管理,以及与EGEE网格技术的集成。OpenRSM通过集成、增强、配置和定制自由开源软件工具开发而成,以实现通用信息管理(IM)。OpenRSM支持的基本服务包括资产管理(AM)、软件分发(SD)、远程桌面控制(RDC)和网络管理(NM)。在系统开发时,尚无任何自由开源软件系统能够实现与商业企业管理系统(EMS)类似的功能。该系统的功能可扩展至通过标准IP连接性安全访问的任何站点。OpenRSM依赖于能够传递和执行管理操作的本地代理、图形化管理控制台用户界面,以及一个用于处理用户请求和代理连接的集成服务器。OpenRSM基于一个管理框架,该框架用于建模信息管理所需的所有相关实体和服务单元,以及它们之间基本的抽象交互。该设计采用分层方法;主要的管理实体是用户可以创建的任务发送到任何受管工作站以及任务被分发的工作站。服务对应于上述子系统,即资产管理、远程桌面控制、软件分发、纳米、主机发现、远程过程调用、服务器任务、接入点管理、任务调度、局域网唤醒、路由器配置、报告、静态和动态实体分组、可定制报告等。管理实体的层级结构是一个由类构成的面向对象树,形成了OpenRSM IM层级结构。该设计支持模块化和可扩展性,因此可以轻松扩展功能以包含专用任务和复杂流程。顶层任务对象包含其标识、助记名称以及执行参数,例如优先级、执行方法、任务依赖参数等。类似地,抽象受管主机也由一个对象建模。该框架基于提供实体模板的抽象类,这些模板可在用户控制台界面中可视化实例化。例如,用户可以扩展任意任务模板,填入自定义参数,并创建符合其需求的任务。例如,为了构建一个关闭远程工作站的任务,用户需要使用远程过程调用任务类来实例化一个新的任务对象。他们将其配置为为目标平台封装“关机”命令,并将其与一个管理站点关联。管理框架负责处理通信和执行细节。然后,用户可以使用同一模板为不同的操作系统构建第二个“关机”任务。这两个任务都将继承自相同的框架任务,并继承任务管理框架中实现的核心功能。
任务处理引擎位于IM框架的核心,负责协调底层机制。其他层级包括通信、任务编码/解码、任务/站点验证以及安全。所有上述层级均根据代理、管理器和服务器的功能进行设计。例如,服务器与管理器之间的通信不同于服务器与代理之间的通信;在后者情况下,服务器需要异步唤醒代理,然后启动状态验证握手、控制,并执行实际的通信。管理器‐服务器通信是面向连接的;然而,两种情况均在通信层下实现。API层级结构通过相应的接口向系统的所有组件提供支持。OpenRSM已通过压力和可扩展性测试,并已在实际环境中部署。
OpenRSM系统的设计考虑了多种实现策略和开发方案(Hochstein等,2005),范围从基于Web的技术(Wren和Gutierrez,1999)、对等网络技术以及分层的服务器端中间件(Carey和Reilly,2012)到更传统的客户端‐服务器方法(Lee等,2012)。原则上,OpenRSM需要简单轻量,以便不熟悉管理和资产报告工具的最终用户也能使用。OpenRSM还被设计用于快速自动部署,以满足管理员在管理高度动态环境时的需求。因此,该系统采用了自由开源软件开发模型,以利用开放IM项目的发展活力,并通过集成获得价值。如上所述,即使目前尚无完整集成的自由开源软件能源管理系统,但可以看出相关技术已经成熟到自由开源软件社区能够提供所有必要的组件(SourceForge托管门户, 2012)。为了找到最适合OpenRSM用途的自由开源软件管理工具,已对多个FOSS项目进行了研究。在本项目开发和本文撰写过程中,作者尚不知晓存在任何其他集成的自由开源软件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功能的子系统来实现:集成逻辑、与服务器的通信、系统相关的执行逻辑以及代理类型实现。
基本代理模块实现了通信逻辑。如后续章节所述,代理的这一部分通过握手协议和唤醒/睡眠机制确保了通信的一致性和安全性。构成OpenRSM代理的其余模块是实现任务执行逻辑的子系统,即AM、NM、RDC、RPC和代理发现。在可能的情况下,这些子系统利用现有的软件或其他自由开源软件代理模块(例如,AM子系统使用OpenAudit代理进行资产检索,如前所述)。任务执行子系统与通信逻辑集成,以便集成服务器能够监控所有任务执行阶段。
OpenRSM系统能够通过考虑各平台特性的相应代理分发来管理Windows和*NIX系统。每种分发包含对应不同使用类型的多种代理类型;代理可以作为后台进程以静默方式运行,作为图形应用程序用户以详细交互方式运行,作为服务运行,或作为控制台应用程序运行。
OpenRSM能够在所有组件安装在单个服务器上时支持集中式架构,或在每个组件安装在自治系统上时支持分布式架构。分布式服务器拓扑结构的优势主要体现在定制化、性能、可用性和效率方面。由于整体性能取决于系统负载,因此使用更频繁或给系统带来更大负载的子系统可以安装在独立的服务器节点上。在这种情况下,服务可用性也会提高,因为如果某个服务器节点发生故障,则仅系统的部分服务会受到影响。网络管理系统(NMS)通常会给整个系统带来较大负载,因此将其设置在独立的服务器上可能是更优选择。如果服务器无法承受负载,数据库服务器也可以安装在单独的机器上。软件分发服务(SD service)的软件仓库也可以与Web服务器分离。它可以被配置为仅为一部分受管终端提供服务,以平衡软件分发子系统(SD subsystem)的整体负载。未来的工作包括将两个Web应用程序资产管理(AM)和网络管理(NM)解耦,以便前者可以安装在不同的服务器上。多种不同拓扑结构也是可行的。系统可以配置多个OpenRSM集成服务器,以避免单点故障。这些服务器模块各自协调子系统的集成,构成OpenRSM系统的核心,并且每个安装中可包含多个此类模块,从而提供增强的服务可用性。其他有价值的拓扑结构可用于网络流量规划,这些拓扑利用了之前介绍的OpenRSM代理服务器模块。
OpenRSM提供了一个控制接口,如图4.1和4.2所示,管理员可通过该接口控制所有子系统及其交互。该设计着重以全面而有效的方式整合各子系统提供的独立功能,并提供额外的监管功能。OpenRSM管理控制台提供一个多语言控制环境。该控制台可发送受管站点操作系统支持的任何系统命令。命令接受与CPU优先级、类型和用户可见性相关的参数。OpenRSM管理控制台管理功能用于发现运行OpenRSM代理因此是可管理的。OpenRSM代理的发现可以指向互联网地址空间的任何部分。只有配置为与发起发现数据包的特定OpenRSM服务器通信的代理才会响应代理发现。发现过程的结果是创建表示相应受管站点的活动界面元素。这些元素与核心任务(AM、RDC、SD、RPC类型)一起构成基本的界面组件。机器和任务是可以组合的实体,从而形成分配给特定配备代理的机器的任务。它们均在管理树中呈现,以便于监控。任务和机器都可以被分组。机器组和任务组,或任务组和机器组,也可以进一步组合,以创建可提交的机器‐任务映射。组是通用的:任务组可以包含任意类型的任务,且不实施任何依赖关系。管理员有责任为任务组的执行创建合理的执行顺序。OpenRSM允许用户创建自定义任务。在干净安装后,仅存在核心任务。核心任务包括预定义的资产管理(AM)、软件分发(SD)、远程桌面控制(RDC)和远程过程调用(RPC)任务。如上一段所述,任务必须在视觉上与一个或多个代理结合。因此,任务可被视为已提交管理任务的模板。每种类型的任务都使用专为此目的设计的界面组件创建。例如,分发任务必须“知道”其需要安装/卸载等的软件。OpenRSM提供用于创建自定义任务的界面。所创建的任务将被存储并通过界面提供,以便重复使用。用户还可以使用机器组和任务组表单分别定义机器组和任务组。管理控制台还提供任务执行的功能。
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所示。左侧窗口是通过远程桌面连接由LINUX窗口管理器显示的代理终端窗口,该连接也是通过OpenRSM RDC连接任务打开的。右侧是已发送“TinyOS安装”SD任务的管理控制台。图4.3还展示了安装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 提供了应用程序工具箱,这些工具箱提供了无线传感器网络信息管理功能的各个部分。串行端口与无线传感器网络之间网关的基本实现是基站应用。当从串行端口接收数据包时,该应用程序将数据发送到网络;反之,当从网络接收数据包时,它将数据传输到串行端口。为了将来自串行端口的流量转发到网络中的 TCP 套接字,TinyOS 平台提供了串行转发器。此功能使得任何工具(如信息管理、资产管理或数据分析)都能够访问无线传感器网络的测量数据。数据的可视化由示波器应用提供。基站应用可以部署在指定节点上,以便从无线传感器网络中收集数据。示波器应用也可以部署在其余的节点上,以进行测量并将测量结果转发到基站。此类命令可以如下所示:
make -C apps/BaseStation -f apps/BaseStation/Makefile telosb install.0
java net.tiny os.sf.SerialForwarder -comm serial@/dev/tty USB0:telosb
java -cp support/sdk/java/tiny os.jar:apps/Oscilloscope/java/oscilloscope.jar Oscilloscope
串行转发器应用程序通常在管理站点上执行,以从运行基站应用的节点所连接的串行端口读取数据,并通过网络连接转发这些数据。如果在管理主机上需要远程桌面功能,还可以执行示波器图形应用程序,以图形化方式显示接收到的数据。图4.4展示了在OpenRSM控制台上远程安装基站应用的远程过程调用命令的配置。获取电池电压、温度、光照度或湿度的测量值需要部署相应的测量应用程序——即VoltageOscil、TempOscil、LightOscil或HumidOscil,并在OpenRSM代理上执行相应的客户端应用程序。上述应用程序是TinyOS提供的Oscilloscope的变体,使用适当的NESC组件进行数据检索。对于光照度的测量,配置了滨松S1087ParC驱动程序;对于温度和湿度的测量,使用盛思锐Sht11C。对于每个部署感知应用程序的任务,都有一个示波器任务在管理站点上显示测量结果。诸如:
make -C apps/温度示波器 -f apps/温度示波器/Makefile telosb install
java -cp support/sdk/java/tiny os.jar:apps/温度示波器/java/Oscilloscope.jar 温度示波器
可用于实现此类任务。为了将上述功能集中在一个选项卡中,已为OpenRSM开发了一个通用的TinyOS管理任务实例化面板。该面板提供图形化WSN任务创建功能,包括TinyOS安装、卸载、节点发现以及应用程序部署等任务。图4.5 展示此面板;用户定义任务的名称、执行时间和类型。然后通过保存任务并将其与受管的TinyOS主机相关联来实例化。如果任务包含应用程序部署,用户可以选择要部署的可用应用程序以及目标节点。此过程可用于实现底层技术所支持的任何远程感知场景。
4.3.3 集中测量
OpenRSM已集成一个用于TinyOS的应用程序DBWriter,该应用程序与受管主机上的串行转发器应用程序交互,以接收节点发送的测量数据,并将其写入OpenRSM数据库。该应用程序可进行配置,并支持相应的转换功能,以便将数据转换为适当的计量系统。图4.6展示了管理控制台中呈现的测量数据。数据库视图的左侧面板显示了OpenRSM系统的导航树,右侧面板展示了测量数据呈现的功能。用户可以从每个节点选择对应的感知数据集,这些数据集对应于OpenRSM数据库中的表。系统会向用户展示数据及元信息,包括节点ID、数据包计数器、采样频率、日期等,用户还可以查看系统的日志。
如前文所述,节点利用传感器电路通过应用程序(如温度测量、湿度测量、光合有效辐射测量和光照度测量)对节点的物理量进行采样。环境综合测量应用程序用于从网络中获取数据,包括每个节点接收到的数据包总数、采样频率和电池电量。该应用程序的代码如表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 的输出可通过以下公式转换为亮度单位,勒克斯:
光电二极管的勒克斯值 $ = 0.625 \times 1.6 \times 1000 \times I_{1087} $
光电二极管的勒克斯值 $ = 0.769 \times 1.6 \times 1000 \times I_{1087-01} $
其中 I 定义为:
$$ I = \frac{AD_{output}}{4096} \times \frac{1.5}{10,000} $$
微控制器MPS30具有设备类别TELOS描述中提到的温度和电压等内部传感器。传感器电压的模拟测量值被转换为12位长度的数字字,并通过以下公式转换为物理单位:
$$ VCC = \frac{AD_{output}}{4096} \times 2 \times V_{ref} $$
其中 $ V_{ref} = 1.5 V $。
4.3.4 结论与未来趋势
前面的章节阐述了如何使用OpenRSM为基于TinyOS平台的无线传感器网络提供远程IM。OpenRSM可用于为任何提供高级工具或工具的WSN类型创建类似的任务,并且由于其强调可扩展操作,因此能够支持高效的远程管理场景。当前的工作重点是远程无线传感器网络基础设施的生产性安装、更多WSN系统的功能集成以及OpenRSM所提供功能的功能增强。需要最小化IM成本的组织必须能够根据自身需求使用OpenRSM来测试上述解决方案。他们可以自主安装该系统,或使用为此目的专用的服务。该系统也不应局限于依赖TinyOS的无线传感器网络;由于OpenRSM是通用的,因此必须扩展以包括针对最知名无线传感器网络的任务创建表单,以及无线传感器网络平台的自动安装、应用程序部署和测量数据集中等功能。该系统还可以补充一些增加自动化程度的有趣功能,例如支持在测量响应时进行任务执行。用户将能够定义警报或操作,当测量值达到用户定义的阈值时,这些警报或操作将以标准任务的形式执行。此外,当底层无线传感器网络平台提供基于活动节点及其类型的识别应用程序或数据时,为无线传感器节点的AM也将变得有趣且具有挑战性。最后但同样重要的是,该系统将必须扩展到基于Web的技术,如HTML5、AJAX和中间件。
431

被折叠的 条评论
为什么被折叠?



