专利名称:主动无线传感器网络中间件系统与实现方法
技术领域:
本发明通常涉及无线传感器网络领域,具体是指采用移动Agent技术实现 的支持主动传感器网络的中间件系统及其实现方法。
背景技术:
无线传感器网络是由大量低功耗、多功能的微型无线传感器协同组织起来 的一种特殊的AdHoc网络,它具有自组织、多跳路由、动态拓扑、硬件资源和 电源容量有限、节点数目众多而分布密集、以数据为中心等特点,可应用于军 事、环境、健康、家庭、商业等领域。相比于传统网络,传感器网络具有以下 特点1)资源极端受限;2)无"纯粹的"路由器和交换机等中间节点,网络 中每一个节点同时承担路由和"终端"系统的功能;3)网络节点具有"计算" 功能,采用"存储一计算一转发"模式,更类似于主动网络。当前,传感器网 络存在多方面的应用难点缺乏统一的网络标准,不确定的系统软件和应用软 件边界,各类应用系统或中间件系统都是针对某类特定应用和特定环境的;因 此,开发传感器网络应用程序需要花费很长的周期。
中间件是一类软件,将应用软件所面临的共性问题进行提炼、抽象,在操 作系统之上形成一个可复用的部分。目前传感器网络涉及中间件系统有Mate、 Magnet0s、 TinyDB、 Cougar、 Sina、 Agilla、 Impala 、 MIRES等。这些中间 件系统仅提供某项服务,而不是通用目的的传感器网络中间件系统。
发明内容
本发明要解决的技术问题是,提供一种主动无线传感器网络中间件系统与
实现方法,该中间件系统能运行在资源受限的传感器网络节点上,系统以模块 化形式提供网络服务管理,数据管理和任务管理功能,通过主动包提供用户定 制网络节点服务功能,能应用在不同的传感器网络环境中,达到代码共享、减 少传感器网络应用程序开发周期、增加传感器网络软件健壮性的要求。
本发明所采用的技术方案之一是,所述主动无线传感器网络中间件系统的 组成为
1) 两层移动Agent应用模型,应用层及位于应用层下系统服务提供层,明 确的系统与应用软件边界;
2) 应用层由多个用户定制动态Agent构成;
3) 系统服务提供层包括多个系统agent,系统agent以静态Agent形式提供 多个系统服务;系统通用目的功能大都在这层提供;
4) 一个位于网络层上的移动Agent执行环境;
5) —个位于网络层上的主动分组管理器;
6) 系统支持主动传感器网络。 以下对本发明做出进一步说明。
本发明根据传感器网络的"主动"本性,设计了一种支持主动传感器网络 的中间件系统MobCor,系统采用Mobile Agent技术实现。MobCor通过在应用 程序和操作系统(Operate System OS)之间增加执行环境(Execution Environment, EE)层,即通用目的的中间件层,更合理的包装节点操作系统所 提供的服务并为传感器网络应用提供更一般化服务和执行环境,减少传感器网 络应用程序的开发周期,同时也更有效的利用了传感器网络中有限的系统资源。
系统所有系统和应用服务模块皆以移动Agent形式出现,可动态装/卸载,
由移动Agent执行环境统一调度运行。网络中存在两种类型的包传统包和主 动包。传统包类似普通的IP包,主动包采用移动Agent形式封装。网络包经节 点驱动模块后首先被主动分组管理器处理,对传统包,主动分组管理器实行"存 储-转发"模式;而主动包,主动分组管理器将其交给移动Agent执行环境。移 动Agent执行环境由代理管理器、代理引擎和元组空间构成构成。当分组到达 移动Agent执行环境后,执行环境的代理管理器首先检查此主动分组所携带的 移动Agent是否被其代理仓库所包含,如果未被包含,将其载入到代理仓库中, 否则根据代理中的路径规划数据转发出去。
在本发明的系统中,所述移动Agent由行为、事件、条件、数据组成;所 述行为描述用户定制的任务;所述事件和条件描述任务运行前提和环境;所述 数据描述任务运行的结果及中将数据。
所述两层应用移动Agent模型分为应用层的用户定制动态Agent和系统服务 提供层的静态Agent;即在本发明的描述中,为区分移动Agent是否会自由迁移, 将移动Agent分为两类静态Agent和动态Agent。静态Agent为不具备移动功 能的移动Agent,而动态Agent为允许自由迁移的移动Agent。由所述用户定制 动态Agent实现传感器各类应用,可动态装载与卸载,完成特定任务。
所述多个位于应用层下的系统agent提供网络服务管理、数据管理、分布式 任务管理在内的三大功能;所述网络服务管理提供一系列网络服务,如服务发 现、时钟同步等等;数据管理提供数据保存、数据获取、数据融合等服务;任 务管理层负责任务分配、任务协同、任务迁移、任务调度、执行环境等功能。 所有功能模块都为动态可装/卸载模块,为系统预定义静态Agent;由Agent执行 环境统一调度运行。
所述静态Agent为只存在宿主机上的提供一个或多个特定功能的Agent,不 可以迁移到其它主机上。
所述移动Agent执行环境由代理管理器、代理引擎和元组空间构成;代理 管理器负责代理管理,代理引擎负责代理运行调度,元组空间是代理协作的场 所,它们共同构成了移动Agent无差别的运行环境。
所述主动分组管理器负责识别网络包,并针对网络包类型做出处理。
所述系统支持主动传感器网络位于主动网络的执行环境层,运行在节点操 作系统之上,提供一种标准的执行环境,既转发传统包,也让符合条件的主动 包无差别的运行;用户或应用程序可以通过注入计算包来完成指定任务。
本发明的技术方案之二是,所述主动无线传感器网络中间件系统实现方法 的步骤为
1) 首先编译中间件系统,并针对具体应用预定义相关系统Agent和特定 Agent,将整个系统烧到传感器节点上;
2) 布置与网络连接的网关,打开后台Agent管理软件SenorView;
3) 开始工作时,传感器节点间通过自组织成无线多跳网络,并把网络拓扑 信息传回给网关。检査SenorView的拓扑显示图,了解网络运行情况;
4) 用户单击SenorView上相关的移动Agent封装模板的链接,启动相应的 移动Agent管理器,并通过移动Agent管理器,启动相关的封装模板;
5) 用户定义和定制已选择出的移动Agent封装模板,定义和定制内容包括 移动Agent的行为、事件、条件和运行参数、目标节点列表;
6) 用户单击发送按钮,移动Agent将通过网关节点派送出去;
7) 系统路由Agent负责封装了移动Agent包的路由,并根据移动Agent的
目标节点列表标识网络包中相关的Flag位;主动分组管理器根据Flag位决定转 发包或调入代理执行环境中运行;
8)当移动Agent完成其定制的所有任务后,驻扎在源端的系统控制Agent 通过回收机制将结果返回给网关,最终由SensorView负责评估并将评估结果返 回给用户,用户再分配新的任务。
由以上可知,本发明为主动无线传感器网络中间件系统与实现方法,该中 间件系统能运行在资源受限的传感器网络节点上,系统以模块化形式提供网络 服务管理,数据管理和任务管理功能,通过主动包提供用户定制网络节点服务 功能,能应用在不同的传感器网络环境中,达到代码共享、减少传感器网络应 用程序开发周期、增加传感器网络软件健壮性的要求。
图1是本发明主动无线传感器网络协议栈和功能模块图; 图2是本发明的两层移动Agent应用模型图; 图3是本发明的移动Agent执行环境内部结构示意图; 图4是本发明中移动Agent结构示意图; 图5是本发明中网络包结构图; 图6是本发明中系统实施流程图。
具体实施例方式
本发明系统组成是
1)两层移动Agent应用模型,应用层及位于应用层下系统服务提供层,明 确的系统与应用软件边界;
2) 应用层由多个用户定制动态Agent构成;
3) 系统服务提供层包括多个系统agent,系统agent以静态Agent形式提供 多个系统服务;系统通用目的功能大都在这层提供;
4) 一个位于网络层上的移动Agent执行环境;
5) —个位于网络层上的主动分组管理器;
6) 系统支持主动传感器网络。
图1为主动传感器网络协议栈和功能模块映射图,共分为三层,节点操作 系统,执行环境和主动应用层。节点操作系统提供物理设备的抽象和高协调性 的通用函数实现;执行环境层即中间件层,由主动分组管理器、移动Agent执 行环境、系统服务提供层构成。系统服务提供层位于中间件层的顶部,采用静 态Agent形式提供网络服务管理、数据管理和任务管理等功能;移动Agent执 行环境为移动Agent提供统一的运行环境;主动分组管理器用于管理网络包, 分辨主动包或者数据包。主动应用层及应用层,利用执行环境层提供的服务构 建主动传感器网络应用。
图2为本发明的两层移动Agent应用模型图,由多个用户定制的动态Agent 组成应用层通过调用中间件系统服务层的静态Agent所提供的服务来构成各类 传感器网络应用。网络包经节点驱动模块后首先被主动分组管理器处理,对数 据包主动分组管理器实行"存储-转发"模式;而主动包,主动分组管理器将其 交给移动Agent执行环境。移动Agent执行环境将执行结果返回给系统服务层 或者直接返回给应用层。
图3是移动Agent执行环境内部结构示意图,由代理管理器、代理引擎和 元组空间构成。代理管理器由代理仓库、代理上下文、代理操作集组成。代理
仓库保存了节点当前所有的移动Agent,包括系统预定义静态Agent和接收的动 态Agent;代理上下文保存了节点上各个移动Agent的执行环境、状态及其所需 的数据;代理操作集是代理管理器与代理引擎之间的接口。代理引擎是MobCor 的核心,控制节点上所有移动Agent的执行过程,解释其所有指令。当前绝大 部分传感器网络操作系统,如Tinyos,不支持动态内存分配机制;而移动Agent 又需求动态内存分配机制,因此它提供内存动态分配功能。另外,代理引擎还 运行一个简单的时间片轮转(round-robin)调度器,控制每个移动Agent最多可 以运行的指令,将移动Agent置于不同的状态,阻塞或就绪或运行态.代理引擎 也负责代理的发送和接收工作。元组空间是共享的内存池,如同装满了元组的 容器,供节点上所有代理访问。元组空间通常被用来实现代理间的通信和异步 操作,提供store, withdraw, find等原语。代理管理器、代理引擎和元组空 间构成了 Agent的执行环境,应用程序只需封装其移动Agent来执行任务。
图4为本发明中移动Agent结构示意图,由行为、事件、条件、数据组成。 行为描述了移动Agent所需执行的任务,分成两部分, 一部分用来保存代码, 另一部分用来保存运行所需参数。事件定义了代理被触发的事件,允许为空。 条件定义了代理执行需满足的条件。数据段也分为两部分, 一部分为代理本身 的属性,如代理ID、代理的移动路径,另一部分用于保存代理执行所需的数据。
图5是本发明中网络包示意图,resultID是接收移动Agent处理结果的节点 ID; Flag为8bit的标志域,目前8比特的Flag域中只有两位有效, 一位用以指示 主动节点在不认识handlerID域中的信息时是转发分组还是丢弃分组还是转发 分组,另一位用于标明包类型,数据包或者主动包;handlerID是消息类型域, 仅对主动包有用;mobile Agent header域包含移动Agent的相关信息;Mobile
Agent为实际移动Agent段。
图6是本发明中系统实施流程图,其具体步骤包括
1) 首先编译中间件系统,并针对具体应用预定义相关系统Agent和特定 Agent,将整个系统下载到传感器节点上;
2) 布置好与网络连接好的网关,打开后台移动Agent管理软件SenorView;
3) 开始工作时,传感器节点传感器节点间通过自组织成无线多跳网络,并把网络 拓扑信息传回给网关。检查SenorView的拓扑显示图,了解网络运行情况。
4) 用户单击SenorView上相关的移动Agent封装模板的链接,启动相应的 移动Agent管理器,并通过移动Agent管理器,启动相关的封装模板。
5) 用户定义和定制己选择出的移动Agent封装模板,定义和定制内容包括 移动Agent的行为、事件、条件和运行参数、目标节点列表。
6) 用户单击发送按钮,移动Agent将通过网关节点派送出去。
7) 系统路由Agent负责封装了移动Agent包的路由,并根据移动Agent的 目标节点列表标识网络包中相关的Flag位;主动分组管理器根据Flag位决定转 发包或调入代理执行环境中运行。
8) 当移动Agent完成其定制的所有任务后,驻扎在源端的系统控制Agent 通过回收机制将结果返回给网关,最终由SensorView负责评估并将评估结果返 回给用户,用户再分配新的任务。
权利要求
1.一种支持主动无线传感器网络的通用目的中间件系统,其特征在于系统包括1)两层移动Agent应用模型,应用层及位于应用层下系统服务提供层,明确的系统与应用软件边界;2)应用层由多个用户定制动态Agent构成;3)系统服务提供层包括多个系统agent,系统agent以静态Agent形式提供多个系统服务;系统通用目的功能大都在这层提供;4)一个位于网络层上的移动Agent执行环境;5)一个位于网络层上的主动分组管理器;6)系统支持主动传感器网络。
2. 根据权利l所述的支持主动无线传感器网络的通用目的中间件系统,其 特征是,所述移动Agent由行为、事件、条件、数据组成;所述行为描述用户 定制的任务;所述事件和条件描述任务运行前提和环境;所述数据描述任务运 行的结果及中将数据。
3. 根据权利l所述的支持主动无线传感器网络的通用目的中间件系统,其 特征是,所述两层应用移动Agent模型分为应用层的用户定制动态Agent和系统 服务提供层的静态Agent。
4. 根据权利l所述的支持主动无线传感器网络的通用目的中间件系统,其 特征是,由所述用户定制动态Agent实现传感器各类应用,可动态装载与卸载, 完成特定任务;所述用户定制动态Agent为可以自由迁移的移动Agent。
5. 根据权利1所述的支持主动无线传感器网络的通用目的中间件系统,其特征是,所述多个位于应用层下的系统agent提供网络服务管理、数据管理、分 布式任务管理在内的三大功能;所述网络服务管理提供包括服务发现、时钟同 步在内的系列网络服务,所述数据管理提供数据保存和数据获取、数据融合服 务;所述任务管理层负责任务分配和任务协同、任务迁移、任务调度、执行环 境功能;所有功能模块都为动态可装载与卸载模块,为系统预定义静态Agent; 由Agent执行环境统一调度运行。
6. 根据权利1所述的支持主动无线传感器网络的通用目的中间件系统,其 特征是,所述静态Agent为只存在宿主机上的提供一个或多个特定功能的Agent, 不可以迁移到其它主机上。
7. 根据权利l所述的支持主动无线传感器网络的通用目的中间件系统,其 特征是,所述移动Agent执行环境由代理管理器、代理引擎和元组空间构成; 代理管理器负责代理管理,代理引擎负责代理运行调度,元组空间是代理协作 的场所,它们共同构成了移动Agent无差别的运行环境。
8. 根据权利l所述的支持主动无线传感器网络的通用目的中间件系统,其 特征是,所述主动分组管理器负责识别网络包,并针对网络包类型做出处理。
9. 根据权利l所述的支持主动无线传感器网络的通用目的中间件系统,其 特征是,所述系统支持主动传感器网络位于主动网络的执行环境层,运行在节 点操作系统之上,提供一种标准的执行环境,既转发传统包,也让符合条件的 主动包无差别的运行;用户或应用程序可以通过注入计算包来完成指定任务。
10. —种支持主动无线传感器网络的通用目的中间件系统实现方法,其特征 在于,它的步骤为l)首先编译中间件系统,并针对具体应用预定义相关系统Agent和特定Agent,将整个系统烧到传感器节点上;2) 布置与网络连接的网关,打开后台Agent管理软件SenorView;3) 开始工作时,传感器节点间通过自组织成无线多跳网络,并把网络拓扑 信息传回给网关。检查SenorView的拓扑显示图,了解网络运行情况;4) 用户单击SenorView上相关的移动Agent封装模板的链接,启动相应的 移动Agent管理器,并通过移动Agent管理器,启动相关的封装模板;5) 用户定义和定制已选择出的移动Agent封装模板,定义和定制内容包括 移动Agent的行为、事件、条件和运行参数、目标节点列表;6) 用户单击发送按钮,移动Agent将通过网关节点派送出去;7) 系统路由Agent负责封装了移动Agent包的路由,并根据移动Agent的 目标节点列表标识网络包中相关的Flag位;主动分组管理器根据Flag位决定转 发包或调入代理执行环境中运行;8) 当移动Agent完成其定制的所有任务后,驻扎在源端的系统控制Agent 通过回收机制将结果返回给网关,最终由SensorView负责评估并将评估结果返 回给用户,用户再分配新的任务。
全文摘要
本发明公开了一种基于中间件的主动无线传感器平台的设计。本发明设计一种支持主动无线传感器网络的通用目的中间件系统,该中间件系统能运行在资源受限的传感器网络节点上,系统提供网络服务管理,数据管理和任务管理功能,提供允许用户定制网络节点服务功能,允许其应用在不同的传感器网络环境中,达到代码共享、减少传感器网络应用程序开发周期、增加传感器网络软件健壮性的要求。本发明所采用的技术方案是基于移动Agent技术的主动无线传感器网络的通用目的中间件系统,系统包括由多个动态Agent构成的应用层、多个位于应用层下的系统服务模块、一个位于网络层上的移动Agent执行环境、以及一个位于网络层上的主动分组管理器。
文档编号H04L29/08GK101170573SQ20071003617
公开日2008年4月30日 申请日期2007年11月21日 优先权日2007年11月21日
发明者磊 吕, 曾凡仔, 李仁发, 娟 罗 申请人:湖南大学