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