CN101008893A - 基于曼迪斯的无线传感器网络移动代理平台的开发方法 - Google Patents

基于曼迪斯的无线传感器网络移动代理平台的开发方法 Download PDF

Info

Publication number
CN101008893A
CN101008893A CN 200710019497 CN200710019497A CN101008893A CN 101008893 A CN101008893 A CN 101008893A CN 200710019497 CN200710019497 CN 200710019497 CN 200710019497 A CN200710019497 A CN 200710019497A CN 101008893 A CN101008893 A CN 101008893A
Authority
CN
China
Prior art keywords
module
node
platform
behalf
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200710019497
Other languages
English (en)
Other versions
CN100428154C (zh
Inventor
王汝传
段飞霞
孙力娟
黄海平
陈志�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Post and Telecommunication University
Nanjing University of Posts and Telecommunications
Original Assignee
Nanjing Post and Telecommunication University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Post and Telecommunication University filed Critical Nanjing Post and Telecommunication University
Priority to CNB2007100194971A priority Critical patent/CN100428154C/zh
Publication of CN101008893A publication Critical patent/CN101008893A/zh
Application granted granted Critical
Publication of CN100428154C publication Critical patent/CN100428154C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

基于曼迪斯的移动代理平台开发方法是一种基于无线传感器网络技术和分布式计算的解决方案。主要解决无线传感器网络中动态重新编程的问题,实现移动代理开发平台,本发明中移动代理执行平台架构在曼迪斯之上,并管理节点上运行的所有代理。整个移动代理平台的开发模型分为三层,最上层为移动代理部分,由用户通过无线网络或者串口插入到节点之上,中间层是移动代理执行平台,是整个发明的核心部分。最下层是无线传感器网络操作系统平台曼迪斯,主要负责提供移动代理执行平台的运行环境。节点上应用程序具备动态可更改性以适应不同的应用需求,节点间采用移动代理技术进行交互协作完成指定的任务,整个应用程序的开发屏蔽底层操作系统。

Description

基于曼迪斯的无线传感器网络移动代理平台的开发方法
技术领域
本发明是一种分布式计算和无线传感器网络技术的解决方法。主要用于解决基于曼迪斯(一种传感器节点的操作系统)上开发移动代理平台的问题,属于分布式计算和无线传感器网络的技术领域。
背景技术
无线传感器网络(Wireless Sensor Networks)是由具有感知、处理和无线通信能力的微型传感器通过自组织方式形成的网络,同时也是一种可协同工作的分布式计算系统。在现实中具有很强的应用相关性,它可以应用在军事、环境监测、医疗监护、空间探索、文物保护以及农业等诸多方面。为了促进无线传感器网络的更广泛应用,必须采取一定的措施能够让它更廉价,具备更好的易用性和可扩展性。
然而,随着无线传感器网络技术的不断成熟和发展,针对越来越多的应用,目前的一些应用软件根本满足不了当前的需要。在节点配置到实际环境之中,应用程序已经固定在节点上,当需求突然改变时,需要对不同位置上的节点进行重新编程,这样会耗费更多的人力和财力。例如,布置在森林中的节点具备采集数据并对数据进行处理的功能,一旦检测到火灾险情,节点需要将数据传输到远程控制端或者传输到邻近节点让其报警处理。当然,这些功能可以集成在一起,但应用程序的尺度变得庞大起来,可维护性将会削弱。
目前有两种技术可以解决这个问题,一种是Mate,另外一种是SensorWare,二者都是采用无线传感器网络对节点进行重新编程,都含有优点和缺点。Mate技术是将应用程序分割成小单元功能块,这些功能块可以通过网络路由到每个节点,而节点只存储该功能块的最新版本,并解释运行这些功能块所携带的指令就可以实现相应的任务。然而Mate技术中,用户不能对节点上的功能块进行控制,每个节点上的功能块都是不确定的,单个节点所需要完成的特定功能无法精确满足。而SensorWare采用动态插入代理脚本的技术,允许节点上运行多个应用程序。但是,这种脚本在迁移性上表现不是很好,并且包含固定的入口点,对系统平台上资源要求很高。
针对无线传感器网络的上述问题,一般采用中间件技术进行解决。而目前的无线传感器网络系统中间件主要是提供访问传感器的便捷接口,并为无线传感器网络应用的实现、运行和维护提供支持。迄今这方面的研究主要集中在支持数据管理、软件更新等的中间件上。
为了解决无线传感器网络的网络动态重新编程问题,华盛顿大学计算机学院提出了Agilla中间件模型并在TinyOS上设计实现了Agilla。针对以往节点应用程序的不可扩展性,Agilla将应用程序看成是可以在节点间相互迁移的移动代理,这些移动代理具有可定位性、智能性以及动态性等特点。实际上,每一个移动代理都是一个含有相关指令以及虚拟内存的虚拟机,当指令得到解析执行时,代理就与平台进行交互,并且能够在节点间相互迁移。当然,在单个物理节点上,可以容纳多个可以相互协作的代理。然而,Agilla目前只是应用在TinyOS操作系统之上,针对现有的其它操作系统,例如曼迪斯、SOS等,并没有相应的具体设计与实现。
曼迪斯是由Colorado(科罗拉多)大学计算机研究学院开发的一种基于多线程机制的无线传感器网络操作系统。在曼迪斯上开发应用程序,同样具有上述缺点。基于曼迪斯的应用程序一旦下载到节点上,可扩展性非常差,因此,必须采取一定的措施让基于曼迪斯的应用程序具备良好的扩展性能,当应用需求改变时,可以动态修改节点具备的功能。
发明内容
技术问题:本发明的目的是提供一种基于曼迪斯的无线传感器网络移动代理平台的开发方法,用于解决曼迪斯应用范围狭窄、网络重新编程困难等问题,降低了曼迪斯上应用程序的开发成本。
技术方案:本发明适用于无线传感器网络系统平台曼迪斯,也可根据本发明开发全新的移动代理中间件平台。本发明通过将移动代理机制引入到基于该移动代理平台的应用开发中,其目标是实现无线传感器网络节点的远程动态重新编程,动态地修改节点的功能,降低在曼迪斯上应用开发的成本和难度。
实现基于移动代理的无线传感器网络应用程序,它应具备以下特征:整个应用程序的功能应该由移动代理来完成,可以在现有的移动代理平台上实现。而移动代理的功能可以在网络上动态的改变,节点上可以动态的插入或者删除移动代理,改变自身的功能,达到网络重新编程的目的,代理与代理之间可以进行协作,互相通信。
本发明中移动代理执行平台架构在曼迪斯之上,并管理节点上运行的所有代理。图1给出了整个移动代理平台的开发模型,该模型分为三层,最上层为移动代理部分,由用户通过无线网络或者串口插入到节点之上,中间层是移动代理执行平台,是整个发明的核心部分。最下层是无线传感器网络操作系统平台曼迪斯,主要负责提供移动代理执行平台的运行环境。
移动代理携带着节点的相关信息以及可执行指令,这些可执行指令经中间件平台解释执行,完成相应的任务,代理在执行的过程中,与代理平台进行交互,传递数据或者获取平台上由底层操作系统(曼迪斯)的参数。移动代理与移动代理之间可以通过远程消息控制来实现协作。并且,代理在网络上的功能具备动态更改性,一旦用户的需求改变,只需要修改代理的基本参数就可以达到目的。
代理在移动的过程中采用消息响应机制以及超时控制机制来保证迁移质量以及消除无线传感器网络拥塞。
方法流程
基于曼迪斯的无线传感器网络移动代理平台的开发方法所包含的步骤为:
步骤1).将移动代理平台分为平台信息管理模块、代理管理模块、指令系统模块以及二者之间交互的指令中转模块,
步骤2).对步骤1)中得到的平台信息管理模块分成节点信息管理模块和平台网络管理模块,将代理管理模块分成代理运行管理模块、代理迁移管理模块,将指令系统模块按照汇编语言规则进行分类,可划分为基本运算指令模块,代理操作指令模块,程序控制指令模块,设备控制指令模块,栈操作指令,
步骤3).由步骤2)所得到的结果,将节点信息管理模块划分为节点位置信息管理模块、节点邻居信息管理模块、网格信息管理模块,将平台网络管理模块分为平台网络消息发送管理模块以及平台网络信息接收模块,将代理运行管理模块划分为代理运行队列管理模块以及代理运行状态管理模块,将代理迁移管理模块进一步划分为代理接收模块和代理迁移模块,
步骤4).将步骤3)产生的平台网络信息接收模块以及节点位置信息管理模块结合曼迪斯多线程的特点采用线程的方式实现,同时采用曼迪斯提供的网络消息发送接口实现平台网络消息发送管理模块,
步骤5).将步骤4)所实现的模块编译并加载到节点上进行测试,测试时,节点位置信息管理模块利用平台网络消息发送管理模块提供的接口广播节点的位置消息,规定节点的位置消息包为四字节大小,前两个字节保存节点横坐标,后两个字节保存节点纵坐标,平台网络信息接收模块负责接收网络中的节点消息,如果接收到的数据包格式以及内容一致进行下一步,否则回到步骤4)进行流程分析,
步骤6).将步骤3)中产生的网络消息发送管理模块编译并加载到平台中,回到步骤5),如果网格信息模块能够根据节点的号码采用线性算法产生节点的横纵坐标,并且平台网络信息接收模块所接收的内容与网格信息管理模块所产生的坐标一致,进行下一步,否则回到步骤3)重新设计网格信息发送管理模块以及节点邻居信息管理模块,
步骤7).在步骤3)中产生的节点邻居信息管理模块中添加节点邻居信息的添加、删除、检查、搜索、更新功能,加载到平台中,在平台网络信息接收模块中添加接口实现根据网络中收到的节点位置信息动态的修改节点邻居信息管理模块中的节点邻居信息,修改成功,进行下一步,否则回到步骤7),
步骤8).将步骤3)中的代理运行队列管理模块采用队列的方式实现代理的插入、删除功能,在代理运行状态管理模块中结合代理运行队列管理模块中提供的功能实现代理的状态管理,包括停止,迁移,挂起,运行,睡眠状态,代理运行状态如果能够成功切换,进行下一步,否则回到步骤8),
步骤9).根据步骤8)的代理运行状态管理模块提供的代理运行接口,通过指令预取的方式实现步骤1)中的指令中转模块,测试时,固定代理的指令码为0x17,如果能够读取指令,并能够运行代理,进行下一步,否则回到步骤9),
步骤10).根据步骤8)的代理运行状态管理模块提供的代理迁移接口,鉴于无线网络传输可靠性比较差以及传输带宽限制的特点,采用多次发送、代理分片以及数据包应答机制实现步骤3)中的代理接收模块以及代理迁移模块,如果包含迁移指令的代理迁移成功,进行下一步,否则回到步骤10),
步骤11).采用四则运算以及与或非运算来实现步骤2)中的基本运算指令模块;采用压栈出栈操作来实现步骤2)中的栈操作模块;采用跳转指令来实现步骤2)中的程序控制指令模块;由曼迪斯提供的设备驱动接口实现步骤2)中的设备控制指令模块,包括读写节点设备操作,然后测试这些指令的输入与经过指令运算以后的结果是否相匹配来判断每个指令模块的实现是否成功,是,则进行下一步,否则回到步骤11),
步骤12).结合指令中转模块以及指令模块,测试步骤11)实现的每条指令,观察指令的运行结果,如果运行正确,进行下一步,否则回到步骤11),
步骤13).将不同的指令组合在一起进行系统测试,包括运算指令、程序控制指令、代理迁移指令、栈操作指令、设备控制指令,并在网络中部署节点,利用曼迪斯提供的二进制代码装载程序将平台导入传感器节点进行测试,测试内容为代理指令运算是否正常,代理能否在网络中进行迁移,如果失败,回到步骤12)。
体系结构
图3给出了基于曼迪斯的移动代理开发平台的体系结构,该体系结构分为三层,最上层是移动代理层,针对不同的应用,移动代理在代理执行平台执行相应的任务,而且具有智能迁移指令,代理可以从一个节点移动到另外一个节点上执行任务,中间层是整个代理平台的核心层,整合了所有的功能模块,提供移动代理运行的基础设施,并和曼迪斯进行交互。最底层是曼迪斯系统,提供移动代理平台运行的环境,并控制节点上所有的资源,是代理平台与节点交互的媒介。
中间层主要根据平台应具有的功能进行划分,网络接口模块与其它模块紧密相连,调用曼迪斯的通信层接口,并提供其它模块访问的接口,邻居信息管理模块从网络接口模块所提供的接口处获得邻居信息,并实时调用代理环境管理模块检查邻居信息的有效性,同时提供代理管理模块访问的接口。在代理管理模块中,运行代理与引擎模块相互调用,引擎模块启动指令解析模块,并进一步调用指令中转模块所提供的接口对代理所包含的指令进行解析,针对代理迁移以及接收,该模块分别调用邻居信息模块提供的接口以及代理迁移接收协调处理模块,同时调用有关代理体系结构操作的模块对迁移代理进行处理,包括有代理状态管理模块、代理代码管理模块、代理堆栈管理模块以及代理可扩展模块等。
而最下层属于曼迪斯,它提供代理平台所需要的基本环境,并向上层提供访问接口,包括网络通信接口以及节点设备控制接口,另外,在中间件平台中,对设备的访问集成在指令系统中,属于节点操作指令模块,包括节点上各种传感器设备的控制以及其它可用资源的控制。
最上层移动代理部分的功能由用户自己定义,将伪汇编指令组合起来添加到代理的代码块中,并通过网络接口插入到节点上的移动代理平台之上,平台随即启动代理管理模块启动引擎模块执行代理指定的任务。当然,移动代理可以从一个节点迁移到另外一个节点,同样具备四种操作模式,即强迁移、弱迁移以及强克隆和弱克隆四种。
有益效果:本发明提出了基于曼迪斯的应用程序新型开发方法,以及使用该方法开发出的基于移动代理的体系结构。本发明使用虚拟机思想以及移动代理技术,具有以下几个优点,显然是其它基于曼迪斯的无线传感器网络中间件所不具备的:
(1)实现功能的细分和降低开发难度:使用移动代理的方法,将复杂的应用程序功能分解为简单的移动代理颗粒,功能的细分增加了任务执行和分派的合理性,减小了传统应用程序的开发难度,提高了开发的效率。同时,开发出来的移动代理可以很方便的被复用于每个节点上的代理平台,极大的提升了代码的可复用性。
(2)提高应用开发的抽象性:应用程序的开发无需了解底层操作系统的细节,可以根据代理具备的指令系统定制应用,屏蔽了复杂的低层代码实现;另一方面,可以通过将标准的指令代码映射成不同平台相应的低层系统调用,降低多平台移动代理应用开发的工作量。
(3)动态形成和改变节点的功能:可以通过指令的不同组合动态的生成不同能力的移动代理,通过网络路由到目标节点,去完成各种各样的任务。移动代理还可以通过更新代码来动态的增加或删减自身的功能,极大的增强移动代理对网络环境和任务需求的适应能力。
(4)提高移动代理的可扩展性:针对指令系统模块,提供了指令的添加、删除接口,当应用需求发生改变,需要新的指令,通过该接口可以动态的修改指令系统。另外,在系统所有的模块启动中,均留有空间以备扩展,并且分配了一块动态共享内存区域用于扩展平台的数据管理功能。
(5)提供移动代理之间的交互能力:在指令系统中,为代理平台提供了代理远程注册以及本地和远程交互接口,实现了代理之间的任务协作机制。
(6)提供节点动态重新编程能力:在基于曼迪斯的应用程序开发中,目前还没有一种机制实现节点的网络重新编程,本发明采用虚拟机思想,将应用程序的功能模拟成一序列的二进制指令,通过网络插入到指定节点,让移动代理平台解释执行,完成相应的功能,达到节点重新编程的目的,节省了人力和财力资源。
附图说明
图1是基于曼迪斯的中间件开发模型,自左至右表示两个节点之间代理的迁移。
图2是中间件的网络部署,表示使用本发明方法的硬件物理平台以及网络拓扑结构图。
图3是整个整个中间件的体系结构,表示中间件应具备的功能模块以及模块之间相互调用的关系。
具体实施方式
基于曼迪斯的移动代理开发平台的开发过程具体如下:
步骤一:建立网络接口模块,移动代理平台具有从网络接收消息的功能,因此,网络接口模块主要负责接收来自网络中的数据。针对曼迪斯基于线程的开发模式,在网络接口模块中创建一个独立的线程监听网络中的消息,一旦有消息到来,网络接口将处理数据包的权利交给消息映射模块,等待进一步处理。另外针对曼迪斯操作系统,通信模块在同时发送数据时会产生冲突,因此,所有关于通信的数据均采用队列完成,因此,网络接口模块拥有一个消息队列以及处理该消息队列的线程,该线程每隔一定时间检查对列中是否有需要通过网络接口发送的数据,如果有,从消息队列中取出数据发送到网络中。否则,该线程进入睡眠状态。
步骤二:建立邻居列表模块,每个节点具备可定位性,而且移动代理在迁移的过程中采用单跳路由算法,因此,移动代理平台必须维护一个邻居信息列表,在该模块的设计中,主要负责向网络中广播自己的位置信息,在广播的过程中,采用一个独立的线程,每隔一定时间发送消息。当节点接收到邻居的消息,开始进行邻居消息处理并修改自己邻居信息列表。当然,移动代理平台启动另一个独立的线程进行失效邻居检查,每隔一定的时间刷新一次邻居列表,一旦邻居列表中邻居信息在失效检查的时间间隔内没有被更新过,那么,移动代理平台执行删除邻居信息功能。
步骤三:建立代理管理模块,移动代理平台提供代理基本的服务设施,包括移动中间件的执行环境、迁移支持、安全保护支持等。代理在平台上执行的同时二者相互交互,平台具备控制代理的功能,包括启动代理运行,删除代理,重置代理运行环境以及代理迁移和接收等主要功能,启动代理运行的主要工作是启动代理引擎,执行代理的代码部分,删除代理的作用是释放代理占用的空间。在代理管理模块中,对代理的操作又划分为代理的发送以及代理接收模块,根据代理的体系结构又可将这两个模块分别划分为6大模块。在代理迁移中,由代理迁移协调模块控制整个代理迁移的流程,在发送协调模块中,首先进行代理的状态迁移,该过程调用代理的状态迁移模块,并采用消息响应机制,在状态迁移的过程中,节点等待目标节点的状态成功接受的回应后,由迁移协调模块转入代理代码发送模块,在代理代码迁移的过程中,对代理的代码块数进行分析,根据代码量的大小,结合无线传感器网络的最大带宽,代码块进行分割发送,这些均由代码发送模块处理完成,针对代理的每一个代码块,均采用多次发送机制,每次发送完代码线程睡眠一定时间,并在该时间间隔中,由网络接口线程监听是否有目标节点的成功回应到来,如果是,则进入下一个代码块发送状态,直至代理所有的代码都成功迁移到目标节点,当然,只要其中一个代码块未完整迁移,那么代理迁移协调器重新进入状态迁移模块,如此反复进行4次,以保证代理的顺利迁移,否则,代理执行平台将重新启动代理运行。当代理代码成功迁移后,迁移协调器将进入代理操作栈迁移模块,依此类推,直至代理所有的参数均迁移到目标节点。目标节点具备代理接收协调模块,该模块负责接收代理的协调处理,当平台接收到代理的状态消息,就启动状态消息处理模块,填充平台上代理执行环境等参数,并启动计时器等待代理下一个状态的到来,在规定时间间隔内如果下一个状态未到达,接收协调器进行代理接收失败处理,包括清空已经分配的空间、启动网络接口模块线程等,如果在规定的时间内,所有接收模块均成功完成,平台将回到代理管理模块处理新的代理,包括启动新代理、执行代理指令等功能。
另外,在代理管理模块中,同时扩展了错误处理机制,一旦节点上分配空间不足或者模块调用间出错,将调用该错误处理模块进行错误处理。在错误处理中,一般将错误的起因或者错误的时间等信息返回到基站平台上等待进一步处理。
步骤四:建立代理环境管理模块,该模块负责扩充代理平台上的网格环境,每个节点具备可定位性,因此,针对每个节点的位置参数进行管理是必须的,而且,采用单跳路由算法,由邻居节点传递过来的消息同样需要调用该模块进行位置分析才能确定进一步的操作,包括节点号码与位置转换等功能,并对整个网格大小以及网格上其它节点进行控制,当网格大小需要发生改变时,对应整个网格上的其它节点位置产生相应的变化,用于统一整个网格节点的基本参数信息。
步骤五:建立指令系统,该模块的设计与代理的功能紧密相关,指令系统一旦确定就意味着代理具备了确定的功能,在本发明中,采用伪汇编指令作为代理的指令系统,移动代理平台提供代理运行环境,并具备对代理所有指令进行解释的功能。在指令系统中,按指令所携带的参数个数分类,可以分为3大基本类型,它们分别是无参数类型、单操作数类型以及双操作数类型,按指令功能划分可分为6大基本类型,即基本的运算指令、节点操作指令、跳转指令、代理控制指令、远程控制指令以及代理安全控制指令。并在代理控制指令中设计了代理的状态控制指令以及代理的迁移指令,而远程控制指令用于网络中代理之间的协作。
步骤六:建立代理引擎模块,该模块的作用在于运行代理时,对代理代码进行解释执行,并调用代理的操作栈以及参数堆控制模块对当前代理的堆栈空间进行控制,同时,引擎模块创建代理运行队列来管理平台上的所有代理的运行。当启动一个新的代理时,引擎模块从代理运行队列中取出等待运行的代理,并从代理的程序计数器指向的代码处开始执行指令,在执行指令的过程中,引擎调用指令中转模块,进一步对指令进行解析。
步骤七:建立指令中转模块,该模块负责将代理的指令系统与代理执行平台耦合起来,主要完成代理的指令解析以及代理指令系统初始化的工作,指令系统初始化的目的在于加载指令系统的所有操作指令模块,包括基本操作指令、节点操作、跳转指令、代理控制指令等模块,当相应指令被解析时,指令中转模块将相关操作映射到指定的指令空间中进行具体的指令操作。
步骤八:建立消息映射模块,该模块的作用处理网络接口模块中的所有消息,并根据消息类型调用相应的消息处理模块进行更进一步的消息处理。包括待发送消息处理以及接收消息处理,二者均采用消息队列模式。在该模块中,维护着两种消息队列,分别对发送消息以及接收消息进行管理。一旦其它模块需要发送消息时,发送消息队列便会调用针对该消息的处理模块。
为了方便描述,我们假定有如下应用实例:开发一个基于曼迪斯的移动代理开发平台以及基于该平台的具体应用,应用的基本需求是在基站节点创建移动代理,在基站执行完任务后,将它派遣到网络中的其它节点,并在其它节点本地执行闪烁节点指示灯任务。
具体实施方案为:
步骤1).移动代理平台主体上可分为平台的管理模块以及代理所包含的指令系统模块,首先对平台的管理模块进行分析;
步骤2).对步骤1)中得到的平台管理模块进行详细的分析和归纳,得到代理管理模块、网络接口模块、引擎模块、指令中转模块、动态空间管理模块、邻居信息管理模块、环境管理模块、消息映射模块等,另外维护一个队列模块,用于各个模块之中的队列缓冲区管理;
步骤3).依赖于步骤2)所得到的结果,将这些小粒度的模块进行分类,网络接口模块、代理管理模块、引擎模块、消息映射模块、指令中转模块是必须的模块,而动态空间管理模块、邻居信息管理模块、环境管理模块、队列模块等是非必须的,在代理管理模块中分为启动代理模块、代理迁移模块、代理接收模块等;
步骤4).针对步骤3)中的网络接口模块、代理管理模块、引擎模块、消息映射模块、指令中转模块进行流程分析,结合曼迪斯提供的系统调用,实现每个模块的具体功能;
步骤5).针对步骤4)中网络接口模块和消息映射模块结合起来,将网络中的消息传递给消息映射模块,代理管理模块中的运行代理功能与引擎模块结合,并联系指令中转模块进行相应的测试,消息传递以及指令中转失败,回到步骤4)继续进行流程分析;
步骤6).将步骤3)中的动态空间管理模块、邻居信息管理模块、环境管理模块、队列模块加载到平台中,同时在引擎模块启动代理运行队列管理模块,网络接口模块映射消息模块将邻居消息传递给邻居信息管理模块,代理管理模块中的迁移接收模块结合邻居信息管理模块实现代理的迁移以及接收,分别对这些功能模块进行测试,如果通过,进行步骤7),否则回到步骤6);
步骤7).根据移动代理的特点,将指令系统划分为基本运算指令(例如加减乘除等指令),代理管理指令(例如代理启动、睡眠、终止、迁移等),动态空间管理指令(例如空间申请、空间释放、远程访问等指令),传感器设备控制指令(例如读数、取数、打开设备、关闭设备等);
步骤8).针对步骤7)所分析的指令模块,对每一条指令进行编码实现,并将这些指令的处理入口地址映射到指令中转模块中,供引擎模块调用,并在平台上针对每条指令进行测试;如果通过,进行步骤9);否则回到步骤8);
步骤9).在网络中部署传感器节点,如图2,将移动代理执行平台导入节点,启动节点,平台开始运行,对平台上所有的模块进行初始化,节点接着启动所有的模块,并通过串口获得测试信息;
步骤10).将用于测试的移动代理代码插入到节点代理平台上运行,测试步骤8)中指令系统中每个指令模块,如果成功,继续进行下一步,否则回到步骤8)继续测试;
步骤11).结合步骤9)以及步骤10),在代理平台上测试代理的迁移指令。如果代理迁移成功,继续执行步骤12),否则回到步骤4)中进行网络接口模块测试;
步骤12).移动代理在目标节点上执行完任务,对插入的代理的指令启动指令中转模块与曼迪斯之间进行交互,当代理执行完毕,平台根据代理所包含的代码中的停止运行指令终止代理运行。

Claims (1)

1.一种基于曼迪斯的无线传感器网络移动代理平台的开发方法,其特征在于移动代理执行平台的开发方法所包含的步骤为:
步骤1).将移动代理平台分为平台信息管理模块、代理管理模块、指令系统模块以及二者之间交互的指令中转模块,
步骤2).对步骤1)中得到的平台信息管理模块分成节点信息管理模块和平台网络管理模块,将代理管理模块分成代理运行管理模块、代理迁移管理模块,将指令系统模块按照汇编语言规则进行分类,可划分为基本运算指令模块,代理操作指令模块,程序控制指令模块,设备控制指令模块,栈操作指令,
步骤3).由步骤2)所得到的结果,将节点信息管理模块划分为节点位置信息管理模块、节点邻居信息管理模块、网格信息管理模块,将平台网络管理模块分为平台网络消息发送管理模块以及平台网络信息接收模块,将代理运行管理模块划分为代理运行队列管理模块以及代理运行状态管理模块,将代理迁移管理模块进一步划分为代理接收模块和代理迁移模块,
步骤4).将步骤3)产生的平台网络信息接收模块以及节点位置信息管理模块结合曼迪斯多线程的特点采用线程的方式实现,同时采用曼迪斯提供的网络消息发送接口实现平台网络消息发送管理模块,
步骤5).将步骤4)所实现的模块编译并加载到节点上进行测试,测试时,节点位置信息管理模块利用平台网络消息发送管理模块提供的接口广播节点的位置消息,规定节点的位置消息包为四字节大小,前两个字节保存节点横坐标,后两个字节保存节点纵坐标,平台网络信息接收模块负责接收网络中的节点消息,如果接收到的数据包格式以及内容一致进行下一步,否则回到步骤4)进行流程分析,
步骤6).将步骤3)中产生的网络消息发送管理模块编译并加载到平台中,回到步骤5),如果网格信息模块能够根据节点的号码采用线性算法产生节点的横纵坐标,并且平台网络信息接收模块所接收的内容与网格信息管理模块所产生的坐标一致,进行下一步,否则回到步骤3)重新设计网格信息发送管理模块以及节点邻居信息管理模块,
步骤7).在步骤3)中产生的节点邻居信息管理模块中添加节点邻居信息的添加、删除、检查、搜索、更新功能,加载到平台中,在平台网络信息接收模块中添加接口实现根据网络中收到的节点位置信息动态的修改节点邻居信息管理模块中的节点邻居信息,修改成功,进行下一步,否则回到步骤7),
步骤8).将步骤3)中的代理运行队列管理模块采用队列的方式实现代理的插入、删除功能,在代理运行状态管理模块中结合代理运行队列管理模块中提供的功能实现代理的状态管理,包括停止,迁移,挂起,运行,睡眠状态,代理运行状态如果能够成功切换,进行下一步,否则回到步骤8),
步骤9).根据步骤8)的代理运行状态管理模块提供的代理运行接口,通过指令预取的方式实现步骤1)中的指令中转模块,测试时,固定代理的指令码为0x17,如果能够读取指令,并能够运行代理,进行下一步,否则回到步骤9),
步骤10).根据步骤8)的代理运行状态管理模块提供的代理迁移接口,鉴于无线网络传输可靠性比较差以及传输带宽限制的特点,采用多次发送、代理分片以及数据包应答机制实现步骤3)中的代理接收模块以及代理迁移模块,如果包含迁移指令的代理迁移成功,进行下一步,否则回到步骤10),
步骤11).采用四则运算以及与或非运算来实现步骤2)中的基本运算指令模块;采用压栈出栈操作来实现步骤2)中的栈操作模块;采用跳转指令来实现步骤2)中的程序控制指令模块;由曼迪斯提供的设备驱动接口实现步骤2)中的设备控制指令模块,包括读写节点设备操作,然后测试这些指令的输入与经过指令运算以后的结果是否相匹配来判断每个指令模块的实现是否成功,是,则进行下一步,否则回到步骤11),
步骤12).结合指令中转模块以及指令模块,测试步骤11)实现的每条指令,观察指令的运行结果,如果运行正确,进行下一步,否则回到步骤11),
步骤13).将不同的指令组合在一起进行系统测试,包括运算指令、程序控制指令、代理迁移指令、栈操作指令、设备控制指令,并在网络中部署节点,利用曼迪斯提供的二进制代码装载程序将平台导入传感器节点进行测试,测试内容为代理指令运算是否正常,代理能否在网络中进行迁移,如果失败,回到步骤12)。
CNB2007100194971A 2007-01-29 2007-01-29 基于曼迪斯的无线传感器网络移动代理平台的开发方法 Expired - Fee Related CN100428154C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100194971A CN100428154C (zh) 2007-01-29 2007-01-29 基于曼迪斯的无线传感器网络移动代理平台的开发方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100194971A CN100428154C (zh) 2007-01-29 2007-01-29 基于曼迪斯的无线传感器网络移动代理平台的开发方法

Publications (2)

Publication Number Publication Date
CN101008893A true CN101008893A (zh) 2007-08-01
CN100428154C CN100428154C (zh) 2008-10-22

Family

ID=38697337

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100194971A Expired - Fee Related CN100428154C (zh) 2007-01-29 2007-01-29 基于曼迪斯的无线传感器网络移动代理平台的开发方法

Country Status (1)

Country Link
CN (1) CN100428154C (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286911B (zh) * 2008-03-05 2011-05-18 中国科学院嘉兴无线传感网工程中心 基于网格和分簇相结合的无线传感器网络组网方法
CN101710281B (zh) * 2009-12-11 2013-01-23 西安电子科技大学 基于Agent的动态集成开发平台系统和方法
CN103888954A (zh) * 2012-12-20 2014-06-25 中国人民解放军总参谋部第六十一研究所 一种面向服务的无线电架构sora
CN102104612B (zh) * 2009-12-21 2015-04-15 深圳先进技术研究院 基于移动智能代理的远程监护系统及方法
CN105446872A (zh) * 2014-08-29 2016-03-30 国际商业机器公司 测试移动应用的管理器、测试代理器及方法
CN105912345A (zh) * 2016-05-09 2016-08-31 浪潮电子信息产业股份有限公司 一种控制节点、刷新外插卡驱动的系统和方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050256876A1 (en) * 2004-05-10 2005-11-17 Eidson John C Distributed applications using mobile agents
CN100350383C (zh) * 2005-12-06 2007-11-21 南京邮电大学 一种策略驱动的移动中间件开发方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286911B (zh) * 2008-03-05 2011-05-18 中国科学院嘉兴无线传感网工程中心 基于网格和分簇相结合的无线传感器网络组网方法
CN101710281B (zh) * 2009-12-11 2013-01-23 西安电子科技大学 基于Agent的动态集成开发平台系统和方法
CN102104612B (zh) * 2009-12-21 2015-04-15 深圳先进技术研究院 基于移动智能代理的远程监护系统及方法
CN103888954A (zh) * 2012-12-20 2014-06-25 中国人民解放军总参谋部第六十一研究所 一种面向服务的无线电架构sora
CN105446872A (zh) * 2014-08-29 2016-03-30 国际商业机器公司 测试移动应用的管理器、测试代理器及方法
CN105446872B (zh) * 2014-08-29 2018-04-10 国际商业机器公司 测试移动应用的管理器、测试代理器及方法
CN105912345A (zh) * 2016-05-09 2016-08-31 浪潮电子信息产业股份有限公司 一种控制节点、刷新外插卡驱动的系统和方法

Also Published As

Publication number Publication date
CN100428154C (zh) 2008-10-22

Similar Documents

Publication Publication Date Title
Liu et al. A survey on edge computing systems and tools
Weyns Architecture-based design of multi-agent systems
Dustdar et al. Smart cities
Mottola et al. Programming wireless sensor networks: Fundamental concepts and state of the art
CN102158554B (zh) 基于移动代理的物联网中间件开发方法
Cao et al. Edge computing: a primer
Kushwaha et al. Oasis: A programming framework for service-oriented sensor networks
CN100428154C (zh) 基于曼迪斯的无线传感器网络移动代理平台的开发方法
CN109743893A (zh) 用于网络切片的方法和设备
EP2455859B1 (en) Model-based programming, configuration, and integration of networked embedded devices for use in wireless sensor networks
Agirre et al. QoS aware middleware support for dynamically reconfigurable component based IoT applications
CN105847332A (zh) 桌面虚拟化方法、客户端设备和服务端设备
Natale et al. The iCub software architecture: evolution and lessons learned
Chaterji et al. Resilient cyberphysical systems and their application drivers: A technology roadmap
Cicirelli et al. Seamless development in Java of distributed real-time systems using actors
Schlatte et al. Modeling and analyzing resource-sensitive actors: a tutorial introduction
Pantoja et al. Exposing iot objects in the internet using the resource management architecture
CN115543577B (zh) 基于协变量的Kubernetes资源调度优化方法、存储介质及设备
Mercadal et al. Improving the dynamism of mobile agent applications in wireless sensor networks through separate itineraries
Spiess et al. Integrating sensor networks with business processes
CN107302562B (zh) 一种物联网终端设备的自适应命令处理系统与方法
Wang et al. A new mobile agent-based middleware system design for Wireless Sensor Network
Greulich et al. Cyber-physical multiagent-simulation in production logistics
da Silva Orchestration for Automatic Decentralization in Visually-defined IoT
Mordinyi Managing complex and dynamic software systems with space-based computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20070801

Assignee: Jiangsu Nanyou IOT Technology Park Ltd.

Assignor: Nanjing Post & Telecommunication Univ.

Contract record no.: 2016320000219

Denomination of invention: Development method of wireless sensor networks mobile agent platform based on Mandis

Granted publication date: 20081022

License type: Common License

Record date: 20161121

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
EC01 Cancellation of recordation of patent licensing contract
EC01 Cancellation of recordation of patent licensing contract

Assignee: Jiangsu Nanyou IOT Technology Park Ltd.

Assignor: Nanjing Post & Telecommunication Univ.

Contract record no.: 2016320000219

Date of cancellation: 20180116

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081022

Termination date: 20180129