移动agent学习 zt

                                      


做为一个中间件,它应该具有以下两个部分:
1.执行环境(Execution Environment)
  如果一个网络的各个节点上安装了EE软件,各个节点上的应用软件之间
 就可以实现互相合作。
2.应用开发(Application Development)工具
  应用软件要能透明地动用远方合作者的资源,该软件中应有做出此种透明
 动用的相应指示。为此,必定需要一组工具来方便用户。
 

中间件对于应用之间的协同工作的真正贡献有以下两点:
1.提供了合作对象透明设施。 
2.提供了下层设备透明设施。 
 实现上述第1点的难度要大的多,需要引入智能型措施。


传统上的中间件分为三类:
1.事务处理中间件
 事务必须具有ACID(Atomicity,Consistency,Isolation,Durability)属性
2.消息中间件
 消息中间件有两种基本的工作模型:消息队列、发布-预定。
3.分布式面向对象中间件 
 实现了真正的通用软件总线,具有优良的互操作性和应用程序集成能力。
 

开放系统环境的特点
  在开放系统环境中,往往存在着许多不同的节点、资源和应用,地理上分布着
 的节点可互联、互通、互操作,以实现应用的合作处理和信息的共享互用。因为
 将信息处理系统互连的需求不断增长,分布式系统也就显得十分重要。为了管理
 和利用系统分布,一个组织必须能够处理好系统分布所面临的若干特有问题:
 远程性、并发性、无全局状态、部分失败、异步性、异质性、自主性、联合性、
 伸缩性、发展性、移动性。
  构建上述系统并不容易,它需要一个开放系统要具备4个特征:
 可移植性、可互操作性、可伸缩性和易获得性
 

典型的移动agent平台
1.IBM的Aglet
  Aglet Workbench是100%的纯Java的移动agent技术。Aglet是可以在不同的主机
 之间移动Java对象。
2.Mitsubishi的Concordia 
  Concordia是一个功能完备的开发和管理移动agent应用的框架。Concordia由多
 个部件组成,它们全部由Java编写。
3.General Magic的Odyssey 
  Odyssey是以Java类库的形式实现的移动agent系统。对于agent传送,Odyssey
 使用RMI,但也支持CORBA和DCOM。
4.Objectspace的Voyager
  Voyager是一个纯Java的用于支持移动对象和自主的软件agent的分布式应用开发
 和管理平台。
 

常见名词
OMG: Object Management Group(对象管理小组)
FIPA: Foundation of Physical Intelligent Agent(物理智能agent基金)  
ACL: Agent Communication Language(agent通信语言)
KQML: Knowledge Query and Manipuliation Language(知识查询与操纵语言)
KSE: Knowledge Share Effort(知识共享工程)
MASIF: Mobile Agent System Interoperability Facility(移动agent系统互操作公共设施)
CORBA: Common Object Request Broker Architecture(公共对象请求代理体系结构)
KRIL: KQML Router Interface Library(KQML路由接口库)
ATP: Agent Transfer Protocol(agent迁移协议)
KTP: KQML Transfer Protocol(知识迁移协议)
OTP: Object Transfer Protocol(对象迁移协议)
CLDC: Connected Limited Device(有限连接设备)
CDC: Connected Device(连接设备)
MIDP: Mobile Information Device Profile(移动信息设备轮廓)


J2ME
Sun把J2ME分为两个部分:configuration和profile。
  configuration包括虚拟机、核心类库与API,提供了一个最基础、最核心
 的Java平台。CDC使用CVM,而CLDC使用KVM。 
  profile在特定的configuration层上实现,程序员负责在特定的profile
 上编写应用程序。对于手机、PDA等CLDC,它们的profile层称为MIDP。
  MIDP和CLDC合在一起构成了一个完整的J2ME架构。
  对于MIDP上的应用程序,Sun称为MIDlet。
  

J2ME的架构

---------------------------------------- 
  MIDlet   应用程序
----------------------------------------
  MIDP    profile层
----------------------------------------
  J2ME核心API
       configuration,CLDC
  KVM     
---------------------------------------- 
 特定硬件
----------------------------------------


移动agent的关键技术
1.移动agent理论模型
  目前一般基于BDI系统(意识系统),把agent看做理性主体,通过Belief、
 Desire、Intention属性来预测agent的行为。
2.agent通信语言ACL
  常用的ACL有KQML和FIPA ACL。
  KQML被分为三层:内容层、消息层和通信层。消息层是核心,它的主要作用
 是识别传输消息所采用的网络协议,给出发送者对内容的态度/意图,即行为原语。
3.agent传输协议
  IBM提出的ATP framework定义了一组原语性的接口和基础消息集。可以看做是
 一个agent传输协议的最小实现。
4.路由策略
  移动agent的效率很大程度上取决于路由策略的优化。可行的路由策略有两种:
 固定路由和基于规则及目录服务的动态路由。目前,在路由策略中引入QoS是一个
 研究重点。
5.系统性能影响及其测试工具
  移动agent虽然可以减少网络负载和克服网络延迟,但增加了服务方主机的负载。
 移动agent基于可移值性和安全性通常采用解释语言,并且到达目的地后必须置入
 相应的运行环境中才能执行。所以移动agent执行速度低于普通程序。
  测试工具目前并不成熟。
6.容错策略
  :创建相同任务的多个备份,它们在网络中独立运行,任务结束后比较结果。
  :集中式容错,特定服务器保留原始备份并实施跟踪,重发。
  :分布式容错,将容错责任分配到网络中多个非固定站点进行。
7.互操作性
  随着移动agent在智能领域中的应用,有必要在MASIF规范中体现智能性,实现
 与符合FIPA规范的智能agent系统的互操作。
8.控制策略
  必须对移动实施有效的控制,避免移动agent失控。
9.强移动性
  目前JDK并不支持移动agent强移动,为了到达强移动,一种方案是彻底改造JDK,
 另一种是在JDK之上扩展接口并利用JDK异常处理功能,在异常中截获各种移动agent
 运行变量及其状态,然后到达目的地时继续执行。        
   

一个开放系统可以用其“轮廓profile”来勾画
  profile由7个成分组成:系统管理(A)、用户界面(U)、安全性(S)、
 编程服务(P)、互操作服务(I)、通信服务(C)和信息实体(E)

posted on 2005-05-09 20:56 路人甲2 阅读(...) 评论(...) 编辑 收藏

导航