(计算机软件与理论专业论文)移动agent及其在web上应用的研究.pdf_第1页
(计算机软件与理论专业论文)移动agent及其在web上应用的研究.pdf_第2页
(计算机软件与理论专业论文)移动agent及其在web上应用的研究.pdf_第3页
(计算机软件与理论专业论文)移动agent及其在web上应用的研究.pdf_第4页
(计算机软件与理论专业论文)移动agent及其在web上应用的研究.pdf_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 以移动a g e n t 系统为中心的传统方法使得移动a g e n t 技术在应用方面受到了 阻碍。为了能将移动a g e n t 的特性用于w e b 应用系统,本文基于以应用为中心的 方法,对移动a g e n t 在w e b 上的应用技术进行了研究。设计和实现了一个面向 w e b 的移动a g e n t 系统w o m a s ,重点研究了基于j a v a 平台的移动a g e n t 迁移机 制,利用对象序列化和动态类载入技术,设计和实现了一个移动a g e n t 迁移组件。 在分析a p a c h ew e b 服务器的结构和扩展机制的基础上,将移动a g e n t 迁移组件 集成入w 曲服务器中。最后结合网络中文平台,提出并实现了一种基于w o m a s 的分布式协作机制。 关键字:移动a g e n t ” w e b应用系统。j a v a 迁移a p a c h e a b s t r a c t t r a d i t i o n a l a p p r o a c ht o m o b i l ea g e n tt e c h n o l o g y , b a s e do nt h ec o n c e p to ft h e m o b i l ea g e n ts y s t e mc e n t r i c ,p r o v i d e s p o o rs u p p o r tf o rt h ed e v e l o p m e n to fa p p l i c a t i o n s t oa p p l yt h ef e a t u r e so fm o b i l ea g e n t st ow e b a p p l i c a t i o ns y s t e m s ,t h et e c h n o l o g yo f a p p l y i n gm o b i l ea g e n tt ow e ba p p l i c a t i o ni ss t u d i e di nt h i sp a p e rb a s e do nt h ea p p r o a c h o f a p p l i c a t i o n c e n t r i c aw e b o r i e n t e dm o b i l ea g e n ts y s t e m ( w o m a s ) i s d e s i g n e da n d i m p l e m e n t e d i ti sc o n c e r n e dw i t ht h em i g r a t i o nm e c h a n i s mo fm o b i l ea g e n to nj a v a p l a t f o r m ac o m p o n e n tf o rm i g r a t i o no fm o b i l ea g e n ti sd e s i g n e da n di m p l e m e n t e d b a s e do no b j e c ts e r i a l i z a t i o nt e c h n o l o g ya n dd y n a m i cc l a s s l o a d i n gt e c h n o l o g y t h e a r c h i t e c t u r ea n de x t e n d i n gm e c h a n i s mo fa p a c h ew e bs e r v e ra r e s t u d i e d ,a n dt h e c o m p o n e n t f o r m i g r a t i o n o fm o b i l e a g e n t i s i n t e g r a t e d i n t o a p a c h e w e bs e r v e r w o m a si sa p p l i e dt ot h ec h i n e s en e t w o r kp l a t f o r m ,a n dam e c h a n i s mf o rd i s t r i b u t e d c o l l a b o r a t i o nb a s e do nw o m a si sd e s i g n e da n di m p l e m e n t e d k e y w o r d s :m o b i l ea g e n t w e b a p p l i c a t i o ns y s t e m j a v a m i g r a t i o n a p a c h e l i i 一一 第一章绪论 第一章绪论 1 1 引言 i n t e r n e t i n t r a n e t 的出现是本世纪内计算机通信领域最重要的一次革命,人 们借助这种新的媒体建立了一个虚拟的电子世界,各种行业以不同的形式或者将 原有的企业信息系统搬上i n t e r n e t 。或者通过i n t e r n e t 提供信息增值服务,电子 商务的概念也随之而来,借助于i n t e r n e t 上动态的交互式信息发布,诸如网上购 物、网上银行、网上书店等一系列在线电子商务服务系统也得以盛行。1 9 9 8 年圣 诞节期间,有近一半的美国网民通过i n t e r n e t 购买了价值2 0 、3 0 亿美元的商品, 而美国1 9 9 8 年全年在线购物的总额为1 3 0 亿美元。一句话i n t e r n e t 正在改变着 人们的生活方式。 w e b 技术以其结构简单、容易实现等特点超越了i n t e r n e t 上其它用于信息交流 的技术如t e l n e t 、u s e n e t 、e m a i l 、g o p h e r 、f t p 等。成为最为流行的互联网技术, 并逐渐成为i n t e m e t 的代名词。早期的w e b 主要面向静态的信息共享,随着w e b 应 用的丰富和进化,w e b 已经成为生活中不可或缺的信息高速公路,也是即将到来的 “网络计算”时代计算机应用的统一开发和运行平台。而今的w e b 应用系统包括 各种企业信息管理系统上网、行业上网、网上教学系统和电子商务应用等,这些 应用系统以网站作为系统的前端和用户进行交互,借助后端应用程序和数据库管 理系统的处理能力完成复杂的应用逻辑。 分布计算技术在i n t e r n e t 的大背景下越来越受到人们的重视并得到了快速的 发展,逐步形成了基于过程和基于对象的主流技术,移动a g e n t 技术逐步成为分 布式人工智能和分布式计算领域的研究热点之一。移动a g e n t 是代码、数据以及 执行语境的软件包,它可以在执行过程中,有目的地、自治地在网络中移动,利 用与分布资源的局部交互而完成分布任务的软件实体1 1 1 。移动a g e n t 具有感知网络 状态的能力,如网络节点是否连接,当前的网络负荷等,以适应网络的配置与变 化,在反应规划的控制之下驱动。移动a g e m 可以感知软件资源的条件,如资源 是否可用,数据库中特殊的变化等对重大的事件作出适当的反应。移动a g e n t 具有自治的决策能力,由于信息是相关的,利用对所访问的网络结点的信息反馈, 移动a g e n t 可以独立地修改整体规划使事务处理步骤更符合现实的情况。 基于移动a g e n t 的分布式计算模式是传统分布式计算模式的扩展,这种模式 不仅结合了a g e n t 的自治、智能等特性,而且引入了移动性的概念,在解决如何 充分利用网络资源,如何给移动用户提供高效的服务,如何提供更自然的电子商 移动a g e n t 及其在w e b 上应用的研究 务模式等诸多问题上提供了灵活的解决办法,在电子商务、个人软件助理、分布 式信息检索、电信网络服务、监视和通告、信息发布、移动设备计算、网络管理、 并行任务求解、工作流管理和协作、动态网络等方面具有重大的应用价值。将移 动a g e n t 技术应用于w e b ,对于当今提供快速多变的网络服务和简化目益复杂的 w e b 应用,对于处理飞速增长的w e b 数据量和满足用户智能化个性化的要求,都有 重要意义。 1 2 研究现状 经过将近十年的研究,移动a g e n t 技术已经取得了相当多的理论研究成果, 同时许多移动a g e n t 系统也被开发出来。第一个移动a g e n t 系统t e l e s c r i p t 由 g e n e r a lm a g i c 公司在9 0 年代初推出,此后移动a g e n t 系统的研究就吸引了众多 的注意力。参与其中的学术界有d a r t m o u t h ,m i t ,o t t a w a ,c o r n e l l ,u m b c 和 s t u t t a g a r t 等名牌大学的研究机构;工业界则有i b m m i t s u b i s h i ,b r i t i s h t e l e c o m 等著名公司吼目前互联网上可以使用的移动a g e n t 系统达到6 0 多种n 在这些系统中,有一些是大学用于实验的原型系统,如d a r t m o u t h 的d a g e n t ( 以 前称为a g e n tt c l ) 、明尼苏达大学的a j a n t a 等;也有一些商业产品,如i b m 公司 的a g e t s 、o b j e c ts p a c e 公司的v o y a g e r 、i k v + + 公司的g r a s s h o p e r 、g e n e r a lm a g i c 公司的o d y s s e y ( t e l e s c r i p t 的j a v a 版本) 和m e i t c a 的c o n c o r d i a 等。 移动a g e n t 系统为移动a g e n t 提供了执行环境,并且为移动a g e n t 应用的开 发和管理提供了一个框架【4 】。移动a g e n t 系统的实现技术已经渐渐成熟,正向着标 准化和更高可靠性的方向发展,但是移动a g e n t 技术在应用方面的研究还处于起 步阶段。目前,移动a g e n t 技术的应用主要是基于移动a g e n t 系统,将某一特定 的移动a g e n t 系统与已有的软件系统集成,或是在移动a g e n t 系统的基础上重新 构造新的软件系统睁】。许多研究人员尝试将移动a g e n t 系统应用于一些领域,试图 借助移动a g e n t 的特一胜为领域内问题提供更有效的解决办法。例如将移动a g e n t 应用于电信网络管理,并提出了一个基于c o r b a 和移动a g e n t 的分布式网管集成框 架i “,将移动a g e n t 应用于网络监抖7 】、工作流管理f 8 1 等。 由于移动a g e n t 技术的优越性 9 1 ,采用它构造的软件系统的性能比采用传统的 软件系统性能优良【1 0 。1 ”。但是移动a g e n t 技术却没有成为构造分布式应用的主流 技术,没有像人们所期待的那样流行起来。主要原因在于设计移动a g e n t 系统时, 始终把它作为操作系统的一种通用扩展,太着重于移动a g e n t 系统本身的实现细 节的研究,如迁移支撑、生命周期管理、安全管理等,而对基于移动a g e n t 系统 的应用开发研究不够。因此,移动a g e n t 技术的广泛应用受到了很大的阻碍。 第一章鳐论 鉴于这种情况,p a u l om a r q u e s 等人提出了以应用为中心的移动a g e n t 系统 a c m a s ( a p p l i c a t i o n c e n t r i cm o b i l ea g e n ts y s t e m s ) 这一概念0 2 - 1 3 】。他们对j a m e s 项目进行了总结,提出应该舍弃原来以平台为中心的方法,将移动a g e n t 技术作 为传统分布式计算技术的补充,以应用为中心,以组件的形式针对特定应用提供 移动a g e n t 的特性。 a g e n t 技术在w e b 上的应用研究很早就开始了,已经取得了丰硕的成果【1 4 i 。如 浏览助理a g e n t 在客户端记录用户浏览信息,智能地辅助用户进行网上浏览。但 是这些a g e n t 都是静止的a g e n t 。而移动a g e n t 技术在w e b 上的应用研究尚处于探 索阶段文献【1 副提出了将移动a g e n t 和w e b 结合的概念框架,文献l i6 】集中探讨了 移动a g e n c 系统和w e b 平台的互操作问题,s t e f a n 提出了将移动a g e n t 和w e b 服 务器集成的思想【l ”。总的来说,研究方法仍然是以移动a g e n t 系统为核心,着眼 于移动a g e n t 系统和w e b 应用系统之间的互操作技术和集成技术。 1 3 论文工作 为了能将移动a g e n t 的特性用于w e b 应用系统,论文基于a c m a s ,对移动a g e n t 在w e b 上的应用技术进行了研究。具体做了以下研究工作: 1 研究了已有的移动a g e n t 系统结构。分析了移动a g e n t 系统实现的关键技 术,在此基础上,研究了基于j a v a 平台的移动a g e n t 迁移机制,设计并实现了一 个移动a g e n t 迁移组件。 2 选择w e b 应用系统中的w e b 服务器作为突破点,分析了a p a c h ew e b 服务 器的结构,并借助它的扩展机制将移动a g e n t 迁移组件集成入w e b 服务器中,从 而构造了一个面向w e b 应用的移动a g e n t 系统w o m a s 。 3 结合网络中文平台,研究了w o m a s 在实际系统中的应用方法提出并实现 了一种分布式协作机制。 本文各章节的基本内容组织如下: 第二章首先介绍移动a g e n t 系统( 包括移动a g e n t 和移动a g e n t 平台) 的概念 框架,然后介绍基于a c m a s 的研究内容和方法。在分析了、v e b 应用系统的体系 结构之后,提出了用移动a g e n t 迁移组件和w e b 服务器集成的办法构造w o m a s , 最后给出w o m a s 的体系结构及其运行方式: 第三章从分析移动性概念入手,在研究与a g e n t 迁移相关的j a v a 平台技术的 基础上,设计和实现了一个基于j a v a 平台的移动a l e m 迁移组件: 第四章介绍a p a c h ew e b 服务器的结构和扩展机制,分别给出了客户端和服务 器端的扩展模块的设计和实现,介绍了将移动a g e n t 迁移组件和a p a c h ew e b 服务 4 移动a g e n t 及其在w e b 上应用的研究 器集成方法。 第五章首先介绍网络中文平台的体系结构和运行方式,提出并实现了一种基 于w o m a s 的分布式协作机制。 在结束语中对本文的研究工作进行总结,并指出系统的不足之处,提出了进 一步研究的展望。 第二章面向w e b 应用的移动a g e n t 系统 第二章面向w e b 应用的移动a g e n t 系统 2 1 移动a g e n t 系统及其应用 移动a g e n t 系统在实现技术上存在很大的差异,但在体系结构上有些共同 特性。我们使用了一些典型的移动a g e n t 系统,并主要对a g l e t s 和g r a s s h o p e r 进行了分析,得出了移动a g e n t 系统的一般体系结构。移动a g e n t 系统一般由移 动a g e n t 和移动a g e n t 平台组成,下面对它们的体系结构分别进行介绍。 2 i 1 移动a g e n t 移动a g e n t 是在网络上可迁移的软件a g e n t ,具有自治性、移动性、智能性。 移动a g e n t 首先是一个软件a g e n t ,满足a g e n t 的目标驱动特征,具有智能性和自 治性。其次移动a g e n t 可以在网络节点中移动,可以自主的转移到不同的地址空 间中执行,在转移过程中它的执行状态被保持,转移到目标后的执行是持续的。 它的结构如图2 1 所示。 移动a g e n t 平台或其它移动a g e n t 图2 1 移动a g e n t 体系结构 移动a g e n t 的结构包括以下七个相互关联的模块:安全服务模块、环境交互 模块、任务求解模块、知识库、内部状态集、约束条件和路由策略( 图4 ) 。移动a g e n t 6 移动a g e n t 及其在w e b 上应用的研究 通过环境交互模块与外界环境通信,在感知周围环境并与环境交互的时候需要安 全服务模块提供支持,执行安全策略,阻止外界环境对a g e n t 内部数据的非法访 问。移动a g e n t 携带的任务是由任务求解模块最终执行的,任务求解模块要根据 知识库中存储的相关知识和移动中得到的中间结果,以及内部状态集中存储的当 前状态进行求解,在求解过程中还要满足移动a g e n t 创建者为移动a g e n t 指定的 约束条件。如果任务在本地不能完成,则根据路由策略通过环境交互模块向移动 a g e n t 平台发出迁移请求。 2 1 2 移动a g e n t 平台 移动a g e n t 平台( 或称为移动a g e n t 服务器) 为移动a g e n t 提供基础服务设施 使得移动a g e n t 能够在网络上迁移,在目标机器上运行并完成相应功能。它的结 构如图2 2 所示。 远 程 管 理 a g e n t a g e n t 辱蓬 絮! 竺1 接 执行环境 事件管理模块口 7 环境接口模块定制服务接口划管理员 絮。kb 南 面i 习 l 平台 i 【。_ j 图2 2 移动a g e n t 平台体系结构 移动a g e n t 平台至少应提供以下主要的服务: ( 1 ) 生命周期管理服务:为移动a g e n t 的创建、发送、传输、接受和执行等 一一 。ii_卜 第二章面向w e b 应用的移动a e , t 系统 7 提供子服务。其中包括执行环境的分配、持久化存储等: ( 2 ) 目录服务:提供统一的命名服务,使得移动a g e n t 可以找到所需服务, 并形成路由信息; ( 3 ) 事件服务:为移动a g e n t 和移动a g e n t 平台之间的交互提供通信机制: ( 4 ) 安全保障服务:对移动a g e n t 进行身份验证和完整性检查,并提供安全 的运行时环境。 为了提供这些服务,移动a g e n t 平台的结构包括以下六个模块:事件管理模 块、环境接口模块、执行环境、基础服务模块、定制服务接口、远程管理接口。 事件管理模块是整个移动a g e n t 平台的核心,它负责管理和调度其它模块。环境 接口模块包括传输控制子模块和通信控制子模块,传输控制子模块采用a t p ( a g e n t t r a n s f e rp r o t o c 0 1 ) 实现a g e n t 的迁移,通信控制子模块负责移动a g e n t 平台与移 动a g e n t 的通信。执行环境负责激活和执行移动a g e n t ,提供本地资源并实施安 全策略保护本机不受攻击。基础服务模块提供生命周期管理服务、目录服务和安 全保障服务。定制服务接口使得移动a g e n t 平台可以访问本地的应用程序和资源。 远程管理接口为远程管理提供支持。 2 1 3 移动a g e n t 系统的应用 目前应用移动a g e n t 技术的方法是在每一个移动a g e n t 可能访问的机器上安装 移动a g e n t 平台,用移动a g e n t 平台来管理移动a g e n t 的迁移和生命周期。如图 2 3 所示。 s 2 q h s 图2 3 移动a g e n t 系统应用方式 平台 移动a g e n t 及其在w e b 上应用的研究 这种应用方式为基于移动a g e n t 技术构造应用系统带来了困难。当前的移动a g e n t 系统要求开发人员基于a g e n t 的观念开发应用系统【1 8 】,将使用移动a g e n t 的应用 系统本身作为一种特殊的a g e n t :固定a g e n t ,通过移动a g e n t 和固定a g e n t 之间 的交互完成移动a g e n t 和应用系统之间的交互。或者在应用程序和移动a 譬e n t 之间 建立接口a g e n t 。由接口a g e n t 专门负责应用程序和移动a g e n t 之间的交互。这样 增加了系统开发人员的负担,相比于客户n 务器模式下的传统方法却并未带来很 大的性能优势。另外,对于应用系统的使用者来说,在每一台机器上安装移动a g e n t 平台并对安全管理和通信管理模块进行设置,是一个不小的负担。 2 1 4 以应用为中心的移动a g e n t 系统 如上所述,移动a g e n t 系统在应用中出现很多问题难以解决,其根本原因在 于:移动a g e n t 系统的设计目标是让移动a g e n t 系统成为一个通用的、和应用无关 的平台,并把这个平台作为操作系统的扩展,在此基础上为应用提供服务。这是 一种以移动a g e n t 平台为中心的方法。 与这种方法相对应的,a c m a s 是一种以应用为中心的方法,如图2 4 所示。 在a c m a s 中,移动a g e n t 作为应用系统的一部分,在应用系统中迁移,而非在 移动a g e n t 平台上迁移。应用系统可以使用定义好接口的软件组件,由这些组件 提供移动a g e n t 的发送、接受、运行和交互的能力。这种方法带来的好处是: 1 通过使用集成了移动a g e n t 支撑功能的组件,开发应用系统可以使用传统 的方法,而不必以a g e n t 的方式构造应用系统。 2 安全管理策略可以在整个应用系统中定义,而不必基于移动a g e n t 平台定 义通用的安全策略。 3 a g e n t 和应用系统在内部直接交互,不必建立接口a g e n t 。 4 不需要建立和维护移动a g e n t 平台。 5 应用系统的用户可以基于传统方式使用系统,而不必管理移动a g e n t 和移 动a g e n t 平台。 a c m a s 中用于构建应用系统的组件分为三类:移动a g e n t 支撑组件、第三方 组件和面向特定应用领域的组件。移动a g e n t 支撑组件提供移动a g e n t 的基础设施, 主要提供在移动a g e n t 系统中对应的基本功能:移动性支撑、目录服务、安全保 障等。第三方组件实现了应用系统中最常用的功能,如数据库存取和图形用户界 面等。面向特定应用领域的组件针对某一应用领域的特定要求,实现第三方组件 所不提供的功能,如从特殊格式的文件中提取信息、监视硬件的运行信息等。 r 第二章面向w e b 应用的移动a 霉e n t 系统 囹舢一t蝴一t 甩p 谥d玖瘟用为中心豹移动a g e n t 系统 图2 4 两种方法的比较 2 2w e b 应用系统体系结构分析 最初的w e b 应用是简单的文档浏览,主要以网站的形式出现,w e b 站点主要为 来访的用户提供所需的信息和资料,信息流基本是单向的,即从网站流向用户。 w e b 页面大多是静态的h t m l 页面,富有大量的图片和动画。而今的w e b 应用系统 1 0 移动a g e n t 及其在w e b 上应用的研究 包括各种企业信息管理系统上网、行业上网、网上教学系统和电子商务应用等, 这些应用系统主要是用来完成某种特定的功能,不以提供信息为唯一目标,一般 与数据库相联,信息流是双向的,w e b 页面的访问顺序是确定的,页面大多是动态 生成的。这些w e b 应用系统和网站有很大的区别:网站主要用于信息的发布,很 少涉及系统的应用逻辑,而w e b 应用系统在此基础上,更强调系统应用逻辑的执 行。可以说,网站是w e b 应用系统的前端。网站成为w e b 应用中用户和应用系统 交互的手段。 相应地,w 曲应用系统的体系结构也从开始的b s 两层结构,经历“浏览器一 w e b 服务器一数据库”的三层结构【l ,发展为“浏览器- - w e b 服务器一应用服务 器一数据库”的四层结构【,如图2 5 所示。 l 网页 i 。 j 浏 u r l i 请求分派程序 i 览 【 ) ( ) h t t p 器 l 结果处理程序 h t m l w e b 服务器应用服务器 图2 5w e b 应用的四层结构 w e b 服务器主要负责接受请求,转换请求格式,将转换后的请求分发给应用服 务器,接受应用服务器发送来的处理结果,并将其转换为h t m l ( 或x m l ) 文件。 应用服务器层主要为具体应用提供必要的系统支持( 在程序运行过程中应用服务 器通常要访问数据库) ,应用服务器上的程序可以由可重用构件或软件功能包搭建 而成,实现业务规则的处理。采用这种结构,浏览器作为客户端用户界面,用户 输入数据,查看反馈回来的请求结果,w e b 服务器作为h t t p 请求的转发网关,封 装了业务逻辑的组件构成应用服务器,提供系统服务,应用服务器通过业务逻辑 组件模拟日常的业务任务对请求进行处理并将处理结果返回给w e b 服务器,w e b 服 务器再将执行结果转换成h t m l ( 或x m l ) 文件传送给浏览器在整个过程中,系 统的应用逻辑是在应用服务器层被执行。 2 3 用移动a g e n t 组件增强w e b 服务器的功能 在w e b 应用系统中,w e b 服务器完成很多任务:验证输入数据的有效性,这些 第二章面向w e b 应用的移动a g e n t 系统 输入数据包括客户端的请求数据和服务器端的内部请求数据:和应用服务器上包 含业务逻辑处理方法的组件进行交互,为这些组件提供输入数据,并得到最终的 输出数据;负责输出内容的组织和显示样式,并输出到客户端的浏览器上;作为 业务处理流程的控制器,控制和用户的会话过程。 可以说w e b 服务器是整个w e b 应用系统的枢纽。如果采用设计模式1 2 1 】中的 m o d e 卜v i e w c o n t r o l l e r ( m v c ) 模型,w e b 应用系统的结构如图2 6 所示。 图2 6m v c 模型中的w e b 服务器层 v i e w :主管w e b 系统应用程序与用户之间的接口。一方面它为用户提供了输 入手段,并触发应用逻辑运行:另一方面,它又将逻辑运行的结果以某种形式显 示给用户。 c o n t r o l l e r :用户界面与m o d e l 的接口。一方面解释来自于v i e w 的输入,将 其解释成为系统能够理解的对象,同时它也识别用户动作,并将其解释对m o d e l 特定方法的调用;另一方面处理来自于m o d e l 的事件和m o d e l 逻辑执行的结果, 调用适当v i e w 为用户提供反馈。 m o d e l :表示应用领域真正的逻辑。它采用面向对象的方法,将问题领域中的 对象抽象为应用程序对象。在这些抽象的对象中封装了对象的属性和这些对象所 隐含的逻辑。 v i e w 和c o n t r o ll e r 的功能都要在w e b 服务器层实现。 目前的w e b 应用系统只支持数据和代码从w e b 服务器端流动到客户端,需要 扩展w e b 服务器端的功能,使之能够支持移动a g e n t 代表客户流动到w e b 服务器 端执行任务。同时,很多应用系统在使用移动a g e n t 时,并不需要移动a g e n t 系 移动a s e t 及其在w e b 上应用的研究 统提供的全部功能,只需要其中的某些功能如移动a g e n t 异步执行和移动a g e n t 迁移等。 基于以上的分析,我们设计和实现了个在j a v a 平台下支持移动a g e n t 迁移 功能的组件,用这个组件将w e b 服务器扩展成为一个能够接受和发送移动a g e n t , 并能为移动a g e n t 的运行提供支撑机制的服务器。并用超文本传输协议传输移动 a g e n t ,构建了一个面向w e b 应用的移动a g e n t 系统。以下介绍这个面向w e b 应用 的移动a g e n t 系统( w o m a s ) 的结构。 2 4 w o m a s 总体结构 为了使w o k 4 s 能和已有的w e b 应用系统无缝结合,我们选择a p a c h ew e b 服务 器加以扩展。a p a c h ew e b 服务器是目前使用得最多的w e b 服务器,具备功能强大、 高灵活性、高可扩展性等优点,另外它还是一个开放源代码的w e b 服务器。a p a c h e w e b 服务器本身通过灵活的配置可以实现诸多强大的功能,同时它的开放结构使 得它很容易与扩展模块相结合,定制成适合自己需要的系统。 图2 7w o m a s 整体结构 w o m a s 的整体结构如图2 7 所示。在w 0 m a s 中,移动a g e n t 在客户端的形式是 j a v aa p p l e t ,通过浏览器下载在服务器端的形式是实现了r u n n a b l e 和s e r i a l i z a b l e 接口的j a v a 对象。客户端应用程序将移动a g e n t 序列化,将a g e n t 的所有信息包 装在一个h t t p 请求中,发送给服务器端。扩展后的a p a c h ew e b 服务器接受到请 1 - 一 第二章面向w e b 应用的移动a g t n t 系统 求后,通过扩展模块识别出是包含了移动a g e n t 的h t t p 请求,对于这种请求, 通过服务器端应用程序中的移动a g e n t 迁移组件,恢复移动a g e n t 。实现移动a g e n t 的迁移和继续运行。重复这个过程,可以实现移动a g e n t 向其它w e b 服务器的迁 移。移动a g e n t 完成任务或需要和用户交互时,通过e m a i l 将包含自己状态的a p p l e t 发送回用户的浏览器,实现从服务器到客户端的迁移,这一过程将在第四章中详 细介绍。 w o m a s 中的关键技术是构造基于j a v a 平台的移动a g e n t 迁移组件和对 a p a c h ew e b 服务器的扩展。 2 4 1 基于j a v a 平台的移动a g e n t 迁移组件 移动a g e n t 迁移组件的目标是为j a v a 编写的移动a g e n t 提供迁移支持,恢复 迁移后的a g e n t 的状态,然后运行a g e n t 执行任务。同时应该具备规定的接口, 使得服务器端应用程序可以方便重用。 在实现过程中,对j a v a 平台提供的动态类载入技术和对象序列化技术进行扩 展,解决移动a g e n t 的独立运行问题和代码标识问题。具体细节将在第三章介绍。 2 4 2 a p a c h e w e b 服务器扩展模块 a p a c h ew e b 服务器扩展模块的任务是过滤含有移动a g e n t 的h t t p 请求,实现 w e b 服务器端的安全策略,从h t t p 请求中提取移动a g e n t 的各个部分,然后传递 给服务器端应用程序,由应用程序调用移动a g e n t 迁移组件实现a g e n t 的恢复和 运行。 第三章移动a g e n t 迁移部件的设计与实现 第三章移动a g e n t 迁移部件的设计与实现 3 1 移动性概念分析 移动a g e n t 中移动性的概念来源于代码的可移动性( c o d em o b i l i t y ) 2 2 1 ,随着 分布式计算技术的发展,移动性从早期的数据移动发展为控制( c o n t r 0 1 ) 、代码 ( c o d e ) 和运行环境( e x e c u t i o ne n v j r o n m e n t ) 的移动。早期的数据移动的典型 代表是利用文件传输协议( f t pp r o t o c 0 1 ) 在网络节点之间传送文件,随后出现 的远程过程调用( r p c ) 扩展了本地过程调用,把控制流作为数据在网上传输,使 得一台机器可以调用其它机器的方法或过程,扩展了单机的计算能力。无论是数 据传输还是r p c ,实质都是数据移向代码【2 ,如图3 1 所示。 图3 1 传统分布式系统中的数据移动 按照代码移向数据的思路,代码移动的概念出现了。代码的可移动性是可以动 态改变代码和其执行环境之间绑定的能力。根据移动程度不同,代码的可移动性 分为几种,如图3 2 所示。 a g e n t 移动性 代码 移动性 i 垂互工二堕 广而函汨 i兰! 兰竺 f 传递 代码+ 数据 迁移 代码+ 数据+ 数据状态 迁移 代码+ 数据+ 数据状态+ 执行状态 图3 2 代码移动性分类 移动性 1 6 移动衄t 及其在w e b 上应用的研究 个在主机上可运行的单元可以抽象为代码段、数据段和执行状态的组合, 这个可运行单元需要一定的资源才能完成计算任务。 远程求值( r e m o t ee v a l u a t i o n ) 指的是拥有计算方法而缺少计算资源的本地 主机将代码段和数据段发送到资源所在的远端主机,最后计算结果被传回本地主 机。代码按需传递( c o d eo nd e m a n d ) 恰好相反,它指的是本地主机拥有计算资 源而不知道处理的方法,请求拥有计算方法的远端主机将代码段和数据段传送到 本地主机以完成计算。 这两种方式有一个共同的特点,即代码的传递发生在开始执行之前,代码一 旦在某一台主机上开始运行就要到运行结束后才能继续传递到其它主机因此是 代码传递( t r a n s p o r t ) 而非代码迁移( m j g r a t i o n ) ,一次传递对应一次运行,典 型的代表是j a v aa p p l e t 。 移动a g e n t 则不同,它是控制逻辑和数据一同迁移,如图3 3 所示。移动a g e n t 和j a v aa p p l e t 的移动的区别在于:1 、移动a g e n t 是多阶移动,在网络中的主机 之间移动,并能积累每次到达的状态,主动决定移动的时间及目的地。而a p p l e t 是单阶移动,只有当c l i e n t 向s e r v e r 发出请求时才从s e r v e r 传送到到c l i e n t 。 2 、移动a g e n t 主动控制自己的移动,a p p l e t 被动传送。3 、移动a g e n t 有状态( 代 码行为、数据、执行、旅行计划) ,a p p l e t 无状态。 由于a p p l e t 的执行状态不被传递,可运行单元的运行状态不是持续的,故属 于代码移动( c o d em o b i l i t y ) 而非个体迁移( a g e n tm o b i l j t y ) 。 图3 3 移动a g e n t 系统中数据和逻辑移动 移动a g e n t 的迁移可以分为强迁移( s t r o n gm i g r a t i o n ) 和弱迁移( w e a k m i g r a t i o n ) ,由于它们包含了迁移实体的状态迁移,因此可以在运行中暂停,移 动到其它主机继续执行,属于个体迁移。迁移实体的状态包括数据状态( d a t a s t a t e ) 和执行状态( e x e e u t i o ns t a t e ) 。 强迁移将个体的整个执行状态( 包括数据状态和执行状态) 一起传送,这使 得系统实现的难度很大,也会增加系统的负担】。同时,a g e n t 的传输过程对编程 人员透明,但移动a g e n t 平台必须提供捕获a g e n t 执行状态的函数,增加了系统 实现的难度。弱迁移只将个体的数据状态传送,这样虽然克服了上面的缺点,却 增加了编程的负担,程序员必须显式地在代码中恢复个体的执行状态。需要编程 人员熟悉整个传输过程,封装a g e n t 的状态,指定移动后的执行装入点。 第三章移动沁e a t 迁移部件的设计与实现 1 7 3 2 移动a g e n t 迁移部件的设计和实现 j a v a 平台下的移动a g e n t 迁移的实现方式是把移动a g e n t 作为一种可以自主 迁移的j a v a 对象。与其它普通的j a v a 对象相比,该对象内部具有能被序列化的属 性,用来保存移动a g e n t 的规则集和知识库:该对象的方法体现了移动a g e n t 的行 为特性。 移动a g e n t 迁移的路线是不可预定的,因此不可能在网络中预先安装移动 a g e n t 所属的类来支持移动a g e n t 的行为;迁移支撑环境对对象和类的管理范围不 但包括本地系统还要包括异地系统。j a v a 语言是适合网络环境的程序设计语言, 它所固有的平台无关性、并发性、安全性、动态类载入及对象序列化等特性使得 它在实现a g e n t 迁移方面有天然的优势。但是,作为传统程序设计语言的延续,j a v a 语言并不能完全满足移动a g e n t 迁移的需要。这主要体现在以下两个方面: ( 1 ) 代码标识问题:在一般应用中,j a v a 对象的代码在本地编译执行,只需 使用文件系统来标识代码即可。在移动a g e n t 范型中,a g e n t 对象的运行范围是整 个网络,所以代码的标识应在整个网络范围内具有唯一性,使用文件系统来标识 代i - 马i 艮容易引起重名和版本问题。因此,需要引入一种新的标识方法。 ( 2 ) 独立运行能力:移动a g e n t 的特点之一就是移动a g e n t 在迁移到目的机 后,可蚪在与原宿主机断连的情况下独立正确的运行。是否具备独立运行机制与 代码迁移机制有关。己有的代码迁移机制主要有两种传送方式:全传送和按需传 送。全传送方式是将对象恢复和运行所需的所有代码一次性全部传送到目的地: 按需传送方式则是根据对象创建、恢复或运行时的需要传送代码。j a v a 使用的是 按需传送机制在对象运行期间可能会从网络中传入所需的类,因此不具备独立 运行能力。 显然,完全利用j a v a 语言现有的机制难以实现a g e n t 迁移系统。需要对j a v a 平台进行改造,但不应修改j a v a 语言本身,如j a v a 编译器或j a v a 虚拟机。可以利 用j a v a 语言已有的机制和技术,对类库进行扩充。我们将对象序列化以及反序列 化、类装入机制进行了扩充,实现了移动a g e n t 的弱迁移。 3 2 1 与迁移相关的j a v a 平台技术 与移动a g e n t 迁移相关的j a v a 技术包括:对象序列化技术( 可以解决a g e n t 状态的传递问题) :动态类载入技术( 可以解决a g e n t 代码传送问题) 2 5 1 。 3 2 1 1对象序列化技术 j a v a 的对象序列化技术( s e d a l i z a t i o n ) 实现了对象与字节流形式的相互转化。 1 8 移动u g e a t 及其在w e b 上应用的研究 对象序列化包括两个互相反向的过程:序列化和反序列化。序列化过程将对象转 化为字节流,它根据对象所属类的结构在字节流中记录对象的状态值( 即成员变 量的值) 、对象所属类的名称、对象的成员变量所属类的名称以及其它相关信息。 反序列化过程则是序列化的逆过程,它根据字节流中的信息恢复对象并还原其状 态。实现序列化机制的类如下。 j a v ai oo b j e c t o u t p u t s t r e a m 对象序列化类,它的w r i t e o b j e c t 方法可咀将对象写入某个字节流中。 j a v a i oo b j e c t l n p u t s t r e a m 对象反序列化类,它的r e a d o b j e c t 方法从某个字节流中恢复对象。 j a v a i oo b j e c t s t r e a m c i a s s 提供字节流中各个对象所属类的信息,包含类的名字和s e r i a l v e r s i o n u i d 。 可以把这个类看作是某种具有特殊信息的c l a s s 对象。这些特殊信息只应用 于从序列化数据流加载类。 3 2 1 2 动态类载入技术 j a v a 通过动态类载入技术( d y n a m i c c l a s sl o a d i n g ) 载入运行期需要的类。载 八类过程的细节随j a v a 虚拟机实现方式的不同而有差异但是大部分使用“类路 径”机制搜索被程序引用的而尚未载入运行期的类代码。j a v a 虚拟机通过类装入 器将类代码装入虚拟机。类装入器按一定的搜索策略查找虚机所需的类代码,进 行正确性和安全性检查,合格后装入虚拟机内部运行。每一个j a v a 虚拟机都有一 个缺省的系统类装入器,它只从本地装载j a v a 核心类和c l a s s p a t h 环境变量所指 定的路径下的类。一个虚拟机上可以有多个类装入器。应用程序可以创建自己的 类装入器,实现自定义的类装入策略。例如浏览器中的j a v a 虚拟机使用的是j a v a a p p l e t 的类装入器,它不但负责装入j a v a 的核心类,也从相连的w e b 服务器上下 载类代码。 类装入器由i a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论