【摘要】无线传感器网络尽管资源有限,但预计将在很长一段时间内不需要人工干预。然而,环境可能会发展出不可预知的特性,或者某些网络功能可能需要一些更改。因此,有必要建立一种机制,允许在网络节点部署后对其进行软件重新编程。无线传感网络虽然已在很多领域拥有广泛的应用,但绝大部分情况下只能执行环境监测的作用,无法对所监测的区域实行自主调节。网络控制系统作为一种全分布、网络实时反馈系统,可以弥补无线传感网络在此方面的不足。然而,由于其各自拥有不同的特点,无线传感网络与网络控制系统的结合尚有很多问题需要解决。本文介绍了数据分发协议与操作系统支持环境的集成。分发协议负责在网络上分发数据,而Epos实时更新系统将系统组件隔离在内存位置独立的单元中,允许它们在执行时更新。我们已经评估了我们的基础设施,使用真实的传感器节点,在内存消耗、传播和重新编程时间方面。
【关键词】WSN网络;数据管理;系统设计
1引言
网络软件的重编程基础设施传感器(wirelesssensornetwork,WSN)是由一个数据分发系统构成的,能够组织数据的系统内存。通过使用嵌入式操作系统提供的应用程序,隐藏此数据组织的基础结构[1]。通常情况下,重新编程可更新模块构成。这些模块的内存位置在运行时会被替换。此外,数据库的所有新数据相关节点都能正确接收更多模块,在重新编程的过程中为了提供安全的数据传输,应运用数据分发协议与操作系统基础设施。Epos实时更新系统是操作系统的基础系统,在内存消耗、方法调用时间和重新配置时间方面具有更好的性能。这一有利的结果是,Epos实时更新系统的内存消耗仍然需要改进。此外,Epos实时更新系统没有任何用于数据传播的支持[2]。
2WSN网络数据管理软件系统设计
一般来说,网络重新编程过程分为3步进行,第1步是负责准备要传播的数据。第2步包括整个传播过程。第3步,操作系统重构机制解释了接收数据并用它来更新程序内存。数据分发协议用于在网络上分发数据,网络使用自己的节点。特别是,这些协议必须确保将所有数据准确地传递到所有节点。在设计一个分发协议时,一些属性必须考虑到:低延迟、低内存消耗、可靠性、能效、对节点的容忍度、插入/移除和均匀性、可靠性和一致性是强制性的,如它们保证了议定书的正确运作。全部属性是唯一可取的。然而,一个协议忽略它们没有什么用处。
2.1设计选择
现有的协议会做出设计选择,优先于某些协议。协议中的选择在这项工作中开发了。(1)能源效率是非强制性的,被认为是最重要的,因为所有的操作都需要在许多嵌入式系统中,只有数量有限。(2)内存消耗被认为是第二大重要属性,因为传播协议不是节点的主要用途,只是一种服务,由操作系统提供。因此,不应限制应用程序可用的内存量。(3)最后,延迟。为了优化能源和内存消耗的一些特性未使用减少延迟(例如管道)。
2.2实行方式
所开发协议的状态机通过一个街区一个街区地传播数据,使用基于发布/订阅的发送者选择机制,使用接收器进行数据包丢失检测,执行单播请求、广播重传之类的滑动窗口机制。节点定期发布其版本,所有相关方都会请求发布[3]。潜在发送方维护一个变量ReqCtr,初始化为零,每个变量递增从节点收到的新请求(针对他)尚未计算。(1)宣布新版本,并防止节点成为发件人的请求。发布消息具有版本号、节点ID及其请求。当一个节点接收包含新版本的发布消息将发送包含发件人和收件人的请求消息。它自己的ID和接收到的ReqCtr的值。作为双方的出版物和订阅消息在竞争中成为发送者也会收到它。如果节点接收到一条消息,它将有一个较低的请求。节点ID用作断开连接的工具,当一个节点成为发送方时,它发送一个“StartDownload”消息并开始逐包发送数据。(2)接收者将此节点定义为其“父节点”,并且只接受寄来的包裹。所有数据都有一个顺序唯一的标识符,并且接收器保持最后一个收到的数据包。因此,在接收到一个新的数据包时,它检查这些数字之间有差距。当损失是检测到接收器发送单播重传请求给发送者。重新传输的请求具有更优先级高于正常的数据包,那么发送方将首先响应在继续传输之前发送所有请求。
3WSN网络数据管理软件系统
3.1Epos实时更新系统概述
用于软件重新编程的Epos实时更新系统框架[4]。PROXY和AGENT元素创建来自方法调用之间的间接级别应用程序和操作系统。因此,代理是系统中唯一的知道组件的内存位置的成员。因此,代理能够定位并更新系统组件的代码和数据。此外,系统组件可以标记为可重构或者在编译时通过在其特征类。对于那些未标记为可重新配置的组件,没有增加内存和处理方面的开销最终的系统映像。适配器类负责用于应用场景提供方面的调用。
3.2内存优化
标记为可重构的每个组件生成由于ELU而导致的内存消耗编程框架。除了实际的组件方法,还包括框架的代码。此外,每个框架方法的代码可为每个可重构组件复制。例如,方法更新,负责更新代码,以及组件的数据将为每个组件复制。通过使用模板专门化技术,可克服这个限制。我们注意到,可以替换代理类和场景类中的几种方法,按接收无类型参数的模板类。通过这种简单的技术,减少了内存消耗,但不损失方法调用和重新配置时间。
3.3数据传播协议集成
Epos实时更新系统接收组件的重新编程请求通过一个传输协议,该协议定义了更新消息的格式。在系统初始化过程中创建的线程,命名的重新配置程序,创建数据分发协议实例,在接收到新数据后,启动重新编程过程。可以添加或删除方法,更新整个组件(所有方法),更新应用程序、添加属性和更新特定地址。如果更新/添加属性值,数据状态新旧组件属性之间的传递为由集合完成并获取每个属性的方法。此消息结构允许数据的轻松集成传播协议和操作系统。数据传播协议以ETP格式装载消息和通知更新的代理。相关工程未发现结构,但必须为开发人员抽象并提供一个简单的更新过程。在更新过程重新配置程序启动协议通过调用方法。此方法将一直阻止运行,直到节点接收到新版本。收到通知新数据,重新配置程序在ETP格式并将数据传递给代理。代理将新组件代码写入适当的如果需要,定位并更新所有表。
4WSN网络数据管理软件系统的开发运用
对基础设施进行了内存消耗评估,通过网络发送数据的延迟以及重新配置时间。这些测试是使用Mica2节点。系统是用GNU编译器g++4.0.2生成的,内存消耗是用GNUobjdump2.16.1工具。延迟和重新配置时间由微控制器的定时器测量。
4.1相关存储方式
所有框架元素的内存消耗对于这个测试,重新配置支持已为包含4个方法的组件启用。这个分发协议占用码区2536B,未初始化数据中有21B。创建新代码时动态创建缓冲区,大小取决于更新的大小。这个Epos实时更新系统框架消耗1648B的代码,26B的数据和68B的未初始化数据以及存储对象和方法。当一个新的组件被添加到系统中时,创建、销毁和更新方法表示,组件的构造函数、析构函数和更新方法,并且必须始终存在。每个组件也需要一个信号量来控制其独占访问和代码运行时阻止更新。最小值对添加到框架中的新组件的消耗由构造函数、析构函数、Update方法组成一种无参数无返回的方法价值观。通过空指针使用专门化,可以减少大约1.2KB(更多)的消耗50%以上。目前,系统新组件的最小内存是664KB,而不是1.6KB以前的Epos实时更新系统实现。
4.2测量延迟
为了测量延迟,我们使用了两种结构:基站可以与所有节点通信,并且那里是基站范围之外的节点。在两种拓扑中按顺序重复了20次传播过程要更新系统组件的方法,请传播10B的数据(用于更新方法)和6B的控制信息(由协议使用)。基站所用的平均时间将数据传播到其周围的节点。我们观察到标准偏差为0.0233s。这一次没有改变通过在1~3之间改变接收器的数量。这是因为丢失的数据包高度相关,所以多个接收器丢失同一组数据包。传播从基站到中间节点的数据,以及从这些到节点超出基站范围[5]。可能注意到传播数据所需的时间与正常网络节点之间的距离约为4倍,比基站花费的时间还要长。基站未执行步骤选择发件人的方法。这样就可以不用发布版本和接收请求最终成为发送方开始传播数据。中间时间节点的标准偏差为1.1288s。
4.3重新配置时间
重新配置时间包括节点的时间在接收到所有必要的数据。对更新的调用,恢复在ETP消息上传递的参数中,恢复要在哈希表中更新的对象,找到vtable,并在Flash中写入数据,获得平均重新配置时间。Mica2平台的一个特点是不可能在闪存中一次只改变一个字节。它只允许在页(256B)和之前写入重写一页就必须删除它的内容。因此,为了更新一部分内存,有必要读取页面内容,将其存储在临时缓冲区中,修改只有它想要的部分,最后写在Flash里。
5结语
本文提出了一种无线传感器网络的操作系统运行时重编程基础结构,该结构由数据分发模块组成协议和Epos实时更新系统。该基础设施在无线传感器网络中进行了测试使用实节点,并根据内存进行评估、传播和重新编程的时间。数字证实了设计选择比相关工作中的好,还通过使用C++模板专业化技术证实了这一点。
【参考文献】
[1]李鹏,闵慧.WSN网内数据存储与检索技术分析[J].软件导刊,2018,17(10):10-13.
[2]李佩玉.WSN监控系统中路由和网关系统的研究与实现[D].北京:华北电力大学,2016.
[3]郭水英.WSN数据采集与分析系统设计与实现[D].南昌:南昌航空大学,2015.
[4]陈洪新.基于WSN的水质监测系统设计与应用[D].苏州:苏州大学,2014.
[5]王金一,阎保平.基于NETCONF的WSN网络管理系统设计[J].计算机工程与科学,2011,33(8):1-7.
作者:席奇 单位:景德镇学院
返回管理论文列表