350 likes | 759 Views
随着网络技术的发展,可以让 Agent 在网络中移动并执行,完成某些功能,这就是移动 Agent 的思想。 20 世纪 90 年代初由 General Magic 公司在推出商业系统 Telescript 时提出了移动 Agent 的概念。 移动 Agent 的概念:是一个能在异构网络中自主地从一台主机迁移到另一台主机,并可与其他 Agent 或资源交互的程序。 移动 Agent 是 Agent 技术与分布式计算技术的混血儿。. 移动 Agent. 移动 Agent 的概念分析.
E N D
随着网络技术的发展,可以让Agent在网络中移动并执行,完成某些功能,这就是移动Agent的思想。 • 20世纪90年代初由General Magic 公司在推出商业系统Telescript时提出了移动Agent的概念。 • 移动Agent的概念:是一个能在异构网络中自主地从一台主机迁移到另一台主机,并可与其他Agent或资源交互的程序。 • 移动Agent是Agent技术与分布式计算技术的混血儿。 移动Agent
移动Agent的概念分析 • 不同于远程过程调用,它不要连续通信的支持,可以迁移到服务器上,与之进行本地高速通信,这种本地通信不再占用网络资源,从而避免了大量数据的网络传送,降低了系统对网络带宽的以来。 • 不同于Applet,Applet只能从服务器向客户方向移动,而移动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和移动Agent 服务器(或称服务设施)两部分组成。 • 移动Agent 服务器:基于移动Agent 传输协议实现在主机间的转移,并为其分配执行环境和服务接口。为移动Agent 提供基本服务(包括移动Agent 的创建、传输和执行)和生命周期服务、事件服务、目录服务、安全服务、应用服务等. • 生命周期服务用于实现移动Agent 的创建、移动、持久化存储和执 行环境的分配. • 事件服务用于移动Agent 间的事件传递, 包括传输协议和通信协议. • 目录服务提供定位移动Agent 的信息并形成路由的选择. • 安全服务提供安全的移动Agent 执行环境. • 应用服务是在生命周期服务的基础上提供面向特定任务的服务接口 • 移动Agent:在服务器中执行, 通过移动Agent 通信语言ACL互相通信并访问服务器提供的服务. 移动Agent 的移动和任务求解能力很大程度上决定于移动Agent 服务器所提供的服务.
移动Agent的关键技术 • 移动Agent的传输协议 • 移动Agent的路由策略 • 移动Agent的容错策略 • 移动Agent的安全策略 • 移动Agent的应用 • 移动Agent的互操作性 • 移动Agent的平台
移动Agent的传输协议 Agent传输协议定义了移动Agent传输的语法和语义, 具体实现了移动Agent在服务设施间的移动机制。IBM 提出的ATP框架结构(ATP framework) 定义了一组原语性的接口和基础消息集, 可以看做是一个Agent传输协议的最小实现。
移动Agent的路由策略 移动Agent的效率很大程度上决定于路由策略的优化。可行的路由策略有2 种, 分别为固定路由和基于规则及目录服务的动态路由。目前, 在路由策略中引入QoS (Quality of Service)是一个研究重点。
移动Agent的容错策略 移动Agent系统必须考虑到移动过程中可能存在网络故障、服务设施故障、长时间停机等情况造成的移动Agent破坏和失败。常见的容错策略有; • 创建相同任务的多个备份: 他们在网络中独立运行, 任务结束后比较结果; • 集中式容错: 特定的服务器保留移动Agent的原始备份并实施跟踪, 通过重发原始备份恢复失效的移动Agent; • 分布式容错: 将容错责任分配到网络中多个非固定的站点进行。 这些策略都离不开检查点(check point)。何时以及如何建立检查点是关键问题, 一种简单的方法是把移动Agent的挂起/继续运行点作为检查点。另外也可以利用Markov链模型来计算检查点。容错机制是移动Agent系统服务质量的重要评价标准, 也是移动Agent 优势得以体现的重要手段。
移动Agent的迁移机制 智能体的迁移可以根据迁移的内容分为两类:强迁移和弱迁移。 • 强迁移又称透明迁移,是指对智能体的数据及所有处理状态的传输,传输完成后智能体继续从传输前停止运行处开始运行,这一过程不需要程序员的干涉。 • 弱迁移可以定义为一切非强迁移。一类典型的弱迁移通常只是迁移了代码而没有进行执行状态迁移的智能体迁移。这种迁移到达目的机器后又要重新开始运行或从程序指定的方法开始运行。弱迁移还可以细分成代码迁移、数据迁移、栈迁移、计数器迁移等。
移动Agent的通信机制 对于移动Agent的消息传递机制来说,现今存在三种主流方式: • 基于HomeAgent的寻址和消息转发:是指在MA产生地特别设置一个服务Agent ,记录这个域内产生的所有仍存活的MA的当前所在地址,并接收、缓存和发送所有发送给这些MA的消息,。这种消息传递机制的优点在于寻址和消息传递速度快,但如果HomeAgent 所在的主机出现问题则消息就无法送达目标Agent 。 • DNS树状寻址追踪法:不仅用于消息传递的寻址,同时也用于MA的迁移,MA每次新迁移到一个域则在该域进行注册登录,而这些注册信息被树状管理,用DNS对地址进行解析追踪。上级域有下级域的所有MA注册登录信息,这样就可以避免HomeAgent 的单点失效问题,同时可以不需要特殊的服务器来对MA 的移动信息进行专门的管理,缺点则是越是上级域负荷越大,特别是根结点,很容易产生瓶颈。 • 按路径转发:是最容易实现也最容易理解的消息传递方式,它根据MA 在每个域内的注册登录信息形成一个追踪链,将消息按链逐个转发。
移动Agent的安全策略 安全问题一直是基于移动代理计算应用中的一个关键问题.根据移动代理的活动过程, 移动代理的安全性主要涉及到3 个方面: • 移动代理移动的安全性:是指移动代理从起始点到在目标点上开始运行这个过程中涉及到的安全问题, 主要涉及了代理迁移代码数据的完整性、身份认证等问题。 • 移动代理计算环境的安全性:是指计算环境防止外来恶意代理的攻击, 保护本地数据, 服务甚至主机。 • 移动代理自身的安全性. 是指移动代理自身的保护, 防止其它恶意代理和恶意计算环境的攻击、欺骗甚至破坏。
移动Agent的应用 • 基于移动Agent的入侵检测 • 基于移动Agent的网络管理 • 工作流应用 • 电子商务应用 • 其它
基于移动Agent的入侵检测 • 入侵检测系统IDS • 传统的入侵检测系统 • 基于移动Agent的入侵检测模型
入侵检测系统IDS 在网络应用无处不在的今天,网络安全显得至关重要。而黑客技术的广泛传播,使得新的攻击方式层出不穷,且日趋复杂精巧,仅依靠静态的防火墙已无法满足网络安全的需要,因此必须采用入侵检测系统。 入侵检测系统IDS是指能够及时、主动地发现各种危及信息安全的行为的一套软硬件资源,按照数据来源的不同可分为基于网络的和基于主机的两类:前者监听网络通信,从中寻找符合网络入侵模式的数据包并立即做出反应,如snort;后者在宿主系统提供的审计日志等数据源中寻找攻击特征,然后给出统计分析报告,如logwatch,hostsentry。
传统的入侵检测系统 • 早前,许多入侵检测系统是基于Denning的入侵检测模型,在这一模型中,将审计记录、网络包以及任何其他可观察到的活动作为检测系统中非正常操作的根据,并且使用跟踪和与已知攻击方式进行比较的方法进行检测,具体实现有: • 异常入侵检测 • 误用入侵检测 • 这些传统的模型及工具在早期是起了很大作用,但存在一些缺点 • 为此出现了分布式入侵检测系统,但是大多数分布式入侵检测系统同样存在一些局限.
中介Agent 系统信息库 Internet 监控器 跟踪Agent 跟踪Agent 监控器 ATP 信息收集Agent 信息收集Agent 信息库 信息库 …… Agent执行环境 Agent执行环境 目标1 目标n 基于移动Agent的入侵检测模型
基于移动Agent的网络管理 现有的网络管理系统主要分为两大类: • 基于简单网络管理协议(SNMP: Simple Network Management Protocol) 的管理 • 基于公用管理信息协议(CMIP: Common Management Information Protocol) 的管理。 这两种协议提供的都是基于Client/ Server 结构的集中式管理模式。在这种结构中,所有与管理有关的计算,如统计、分析等,都是由网络管理工作站(NMS Network Management Station) 完成的,所有的原始数据都要传送到NMS上处理,因此这种集中式结构在大流量网络中效率非常低,在性能、可扩展性、灵活性等方面具有很大的局限性。 针对这些不足,人们提出了几种解决方案,如基于主动网络(Active Networks) 的管理等等。 但这些方案都不能很好地适应网络及其应用的多样性和易变性。为此,人们提出了基于移动Agent 的网络管理方案。 移动代理可以移到存有数据的地方,利用预先赋与它们的智能性,选取使用者感兴趣的信息,并做相应的处理。
工作流应用 移动Agent可以在分布环境下实现工作流应用。移动Agent 携带用户的请求,在用户与系统、系统与系统之间移动,对相关的异构数据库进行查询、操作,并在关键事件发生时执行相关动作。例如, 由澳大利亚Melbourne 大学开发的Sports Finder系效,能从WWW 中收集体育信息,由用户填写查询表格, 根据用户填写的内容,Agent自动产生运行代码并进行动态地学习。
电子商务应用 电子商务涉及计算机研究和应用的许多领域,既包括顾客从不同商家收集信息的过程,也包括商家之间或商家内部之间的货物调剂、系统安全性保障,支付机制、仓储管理等过程. 在每个商务过程中,移动Agent都能扩充电子商务系统的功能. 对于商家来说, 主动行为包括移动销售、移动广告、移动咨询;对于买家来说, 可以主动地对不同商家的产品进行比较、选择。 例如,由M IT 媒体实验室开发的Kasbah电子商务系统,用户或商家首先根据自己的购买策略和意向创建移动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属性值的集合。 • Agent名字:由权限、标识符和Agent系统类型组成。 • Agent环境:Agent/Place也称Context,是Agent执行环境。 • Agent定位地址:是Agent环境参数的地址。 • Agent区域:指具有相同权限但不一定属于同一个Agent系统类型的集合。
移动Agent的互操作性(三) • MASIF规范: • OMG组织制定了MAF规范,随后改为MASIF,该规范于1998年3月正式推出,为解决不同厂商间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,并且能认证客户端、对Agent进行解码、对Agent类及状态进行反串行化、实例化Agent、恢复Agent的状态和恢复Agent的执行。 • Agent类的传输:主要用于面向对象的Agent系统,有如下四种情况: • 自动迁移所有的类; • 只自动迁移Agent类,其他的类则是按需迁移; • 迁移Agent的时候,只自动迁移Agent类,其他的类则是按需迁移;而当远程创建Agent的时候,自动迁移所有的类。 • 接收到创建Agent或者迁移请求时,迁移特定名字的类。
移动Agent的互操作性(五) Agent以及Agent系统的名称:提供产生唯一标识符(类似于COM中的GUID和CORBA中的IOR地址)的机制,让Agent间可以互相标识。 Agent系统类型及位置语法:标准化Agent系统类型主要是提供Agent系统的一些信息(如实现语言、产品名称),使目的Agent系统判定能否支持此系统。位置语法的标准化则是为了能够让不同Agent系统有效地定位对方。还需提供Agent跟踪机制的标准化,如注册与注销、查询等,当然安全机制的标准化也是必须的。
移动Agent的平台 移动Agent系统从本质上说是代码可以不需要重新编译就可以在异构环境中移动并执行。按照现有的实现技术可以将其分为两类:一是基于解释性语言的移动Agent 系统;二是基于JAVA 语言的移动Agent系统. 在JAVA 流行之前,大多数移动Agent系统是采用解释性语言编写的, 但现在产生的新系统基本上是用JAVA 来编写的,有些老系统还重新用JAVA 进行编码代替原系统,总的来说,基于JAVA 的系统具有更强的功能和更大的灵活性,相比之下,它们还能利用CORBA 更易与现有系统实现无缝集成。
移动Agent的平台实例 • D’Agent • Grasshoper • Aglet • Voyager • 此外还有几个移动A gent 系统: Concordia、Odyssey、MOA 等也值得关注。
D’Agent 是美国Dartmouth大学研究的移动Agent 系统。它从支持单一语言TCL 发展到目前支持多种语言:TCL 、JAVA 和Scheme。D’Agent 能自动捕获和恢复移动Agent 的完整状态,即意味着Agent 可以在任意点中断执行,然后移动到其它环境中继续执行。 • 通信基础:D’Agent 是多语言系统。采用RPC、RM I 等 • 不同的通信方式:D ’Agent 服务程序是多线程,每个Agent在单独的进程中执行,这种方式简化了实现,但增加了进程间的通信开销。 • 容错服务:Agent 可以存储在物理介质上, 以防止意外。 • 安全服务:D’Agent 用公钥系统来对Agent 进行身份认证, 用静态资源管理器来管理A gent 对资源的访问,不但可以授权访问某种资源, 还可以限制使用(如: CPU 使用超时)。 • 通信服务:支持异步或同步通信模式。 • 生命周期服务:支持复制、克隆和远程创建等操作。
Grasshoper 是IKV + + 公司的产品, 是目前第一个符合MASIF标准、也是目前唯一符合MASIF和FIPA标准的, Grasshoper 具有如下特点: • 通信基础:设计非常巧妙, 不但可以通过CORBA 来进行通信,而且还可以通过JAVA RM I 和Socket 连接进行通信。整个通信结构实现采用插件技术,具有很好的扩充性。 • 容错服务: Agent 在运行过程中,隐性地、周期性地自动存储在物理介质上,在系统崩溃之后,可以从介质中恢复A gent 的原来执行状态。 • 安全服务:身份认证用X. 509 证书实现,传输中的安全性由SSL 来保证,访问控制通过用户定制的安全管理器来完成,实现了数字签名。 • 通信服务:支持异步或同步的通信、动态消息机制和多点发送。 • 生命周期服务:支持复制、远程创建和克隆等操作。
Aglet概述 • 是IBM 日本研究中心开发的基于JAVA 的移动Agent 平台,Aglet 目前与MASIF 尚不兼容,但作为MASIF 的成员,Aglet的升级版本将符合MASIF 标准。 Aglet 有丰富的API 函数, 可以很方便地构造应用程序。 • 通信基础:默认的通信协议是应用层协议——ATP(基于TCP 的Agent 传输协议) ,但同时也支持JAVA RM I。相信在不久的将来,CORBA 也会被使用。 • 容错服务:只支持暂时地休息状态。 • 安全服务:用对称算法进行域内的身份认证和对移入的Agent 通过一致性检测,通过图形结界面(Tahiti管理程序) 设置安全访问策略。 • 通信服务:支持异步或同步的通信和多点发送。 • 生命周期服务:支持远程创建和克隆等操作。
Aglet Aglet Aglet Runtime层 安全、缓存、持久管理器等 Aglet Runtime层 安全、缓存、持久管理器等 ATCI层(ATP、CORBA、RMI等) ATCI层(ATP、CORBA、RMI等) Agent系统、Agent id、 内容长度等字节数组 TCP/IP TCP/IP Aglet系统框架(一) ATCI: Agent Transport and Communication Interface 首先,当一个正在执行的Aglet想要将自己送到远端时,会对Aglet Runtime层发出请求;接着Aglet Runtime层把Aglet的状态信息与代码转成序列化的字节数组;这时如果请求成功时,系统会将字节数组传送至ATCI层处理,此层提供可使用的ATP等接口,在此ATP为一个简单的应用协议。之后,系统会将字节数组附上相关的系统信息,如系统名称以及Aglet的id等,并以比特流方式通过网络传至远端机。远端机利用ATCI层提供的ATP接口接收到传来的字节数组及系统信息,然后Aglet Runtime层对字节数组反串行化,得到Agent的状态信息与代码,此时Aglet便可在远端机上执行。
复制 分派 Context A Context B 召回 暂停 唤醒 Class 创建 Class Agent Agent 信息 Aglet Aglet Aglet代理 Aglet代理 Aglet对象模型(生命周期) Aglet的对象模型 Aglet基本通信模型
移动Agent的开发步骤 • 分析系统特点,选择合适的实现技术。决定哪些采用移动Agent实现,哪些采用其他方法实现; • 进行移动Agent的功能设计。确定系统中决定用Agent技术实现部分的数据和功能,移动Agent间明确分工后,应当根据各自功能确定内部数据。移动Agent的内部数据应尽可能少,这样可以减少移动带来的网络负担; • 进行Agent的接口设计。Agent的接口设计非常关键,它往往是系统性能好坏的关键。这时既要考虑系统中的Agent之间的交互方式,又要考虑Agent与非Agent部分的交互方式; • 进行Agent的详细设计。应了解目前移动Agent平台各自的优缺点,选择合适的平台; • 选择合适的程序语言,实现Agent程序; • Agent的运行与维护。目前由于移动Agent可靠性还不高,维护工作特别重要。