DisWare中间件
发布时间:2012/4/7 19:07:49 访问次数:1487
如图7-31所示,基于Agent的无线传感器网络 MP1430DN-LF-Z 中间件DisWare系统实现方案是在TinyOS与MantisOS等基础上,分别实现DisWare工作引擎和Agent管理组件、Agent错误处理组件、Agent指令管理组件、Agent指令底层实现组件、Agent环境管理组件、Agent邻居信息管理组件、Agent元组空间管理组件、Agent网络通信组件等,具体实现过程是不一样的,但其设计目的都是为了屏蔽原有操作系统,并在原有操作系统之上进行扩展,构建基于Agent的框架接口,提供相同的指令集。应用程序层开发者不需要在TinyOS平台下使用nesC语言进行编程,也不需要在MantisOS平台下采用C语言进行编程,可以使用统一的Agent指令编写无线传感器网络应用程序,也可以使用面向Agent的编程模型来编写基于Agent的无线传感器网络应用程序代码,再通过Agent代码编译系统转换为Agent程序指令代码。
在DisWare系统中,Agent包含状态、代码和堆栈等共有的特性,状态控制着Agent的整个生命周期;代码部分与状态紧密相连,状态影响代码部分的运行,代码也可以修改Agent的状态;堆栈用于模拟虚拟存储器,负责存放代码执行时所产生的临时数据。Agent所在节点具有一些基本的参数信息,如位置属性、邻居信息等,同时支持多个Agent的运行,并维护一个邻居信息列表。Agent可以在节点之间进行迁移,迁移时Agent的状态和代码,以及部分Agent拭行资源都随着Agent移动到目的节点。但是节点的基本属性(如位置及邻居信息列表等)不会随着Agent迁移而迁移。另外,Agent与Agent之间可以实现交流和协作,主要是通过申请共享的元组空间来完成的,对TinyOS和MantisOS,该元组空间大小均是事先预分配的。
在基于Agent的无线传感器网络中间件DisWare系统实现方案中,DisWare面向Agent的编程模型及其JAL编程框架有关实现体现在Agent代码编译系统。该系统与JAL编译器功能相似,但它并不是将JAL源代码编译为Java源程序,而是将基于Agent的应用程序代码源文件编译为Agent程序指令代码。在具体实现中,DisWare基于Agent的应用程序代码源文件与JAL源程序编写方法相同,所包括的文件有X.event、X.plan、X.bel、X.cap、X.agent(X为文件名)等,其中X.event为事件类源文件,X.plan为规划类源文件,X.bel为信念类源文件,X.cap为能力类源文件、X.agent为Agent类源文件,经过Agent代码编译系统编译后生成的程序指令代码文件与Agilla的Agent源程序格式相同,因为DisWare基于Agent的框架接口采用了Agilla基本指令集,所产生的文件为X.ma。
如图7-31所示,基于Agent的无线传感器网络 MP1430DN-LF-Z 中间件DisWare系统实现方案是在TinyOS与MantisOS等基础上,分别实现DisWare工作引擎和Agent管理组件、Agent错误处理组件、Agent指令管理组件、Agent指令底层实现组件、Agent环境管理组件、Agent邻居信息管理组件、Agent元组空间管理组件、Agent网络通信组件等,具体实现过程是不一样的,但其设计目的都是为了屏蔽原有操作系统,并在原有操作系统之上进行扩展,构建基于Agent的框架接口,提供相同的指令集。应用程序层开发者不需要在TinyOS平台下使用nesC语言进行编程,也不需要在MantisOS平台下采用C语言进行编程,可以使用统一的Agent指令编写无线传感器网络应用程序,也可以使用面向Agent的编程模型来编写基于Agent的无线传感器网络应用程序代码,再通过Agent代码编译系统转换为Agent程序指令代码。
在DisWare系统中,Agent包含状态、代码和堆栈等共有的特性,状态控制着Agent的整个生命周期;代码部分与状态紧密相连,状态影响代码部分的运行,代码也可以修改Agent的状态;堆栈用于模拟虚拟存储器,负责存放代码执行时所产生的临时数据。Agent所在节点具有一些基本的参数信息,如位置属性、邻居信息等,同时支持多个Agent的运行,并维护一个邻居信息列表。Agent可以在节点之间进行迁移,迁移时Agent的状态和代码,以及部分Agent拭行资源都随着Agent移动到目的节点。但是节点的基本属性(如位置及邻居信息列表等)不会随着Agent迁移而迁移。另外,Agent与Agent之间可以实现交流和协作,主要是通过申请共享的元组空间来完成的,对TinyOS和MantisOS,该元组空间大小均是事先预分配的。
在基于Agent的无线传感器网络中间件DisWare系统实现方案中,DisWare面向Agent的编程模型及其JAL编程框架有关实现体现在Agent代码编译系统。该系统与JAL编译器功能相似,但它并不是将JAL源代码编译为Java源程序,而是将基于Agent的应用程序代码源文件编译为Agent程序指令代码。在具体实现中,DisWare基于Agent的应用程序代码源文件与JAL源程序编写方法相同,所包括的文件有X.event、X.plan、X.bel、X.cap、X.agent(X为文件名)等,其中X.event为事件类源文件,X.plan为规划类源文件,X.bel为信念类源文件,X.cap为能力类源文件、X.agent为Agent类源文件,经过Agent代码编译系统编译后生成的程序指令代码文件与Agilla的Agent源程序格式相同,因为DisWare基于Agent的框架接口采用了Agilla基本指令集,所产生的文件为X.ma。
上一篇:网络通信接口模块的设计