移动Agent

2024-08-07

移动Agent(精选9篇)

移动Agent 篇1

1 移动Agent模型与传统的分布式计算模型的比较

1.1 Client/Server模型

在模型中,用户通过客户端进行操作和控制,并且由客户端完成相关的应用逻辑处理,但一些关键的标准的操作将通过网络请求服务器完成。

对于单一的固定的应用来说,客户机/服务器模型是一种成功的结构,在各客户之间有效地实现了服务器资源的共享。在分布式客户机/服务器系统的建立及其应用系统的开发过程中,逐渐体会到分布式系统比想象的要复杂的多。随着应用程序规模的不断扩大,应用需在异构的网络环境下运行,带来了异构环境下的应用互操作问题、系统管理问题、系统安全问题等等,这些问题在集中计算模式下是不曾出现的或不突出的。传统的面向过程的技术在开发大型软件系统时已经暴露出很大的局限性。

1.2 分布对象技术

分布对象技术采用面向对象的多层客户机/服务器计算模型,将分布在网络上的全部资源都按照对象的概念来组织,每个对象都有定义明晰的访问接口。分布对象可存在于网络的任何地方,可被远程客户应用以方法调用的形式访问。至于分布对象是使用何种程序设计语言和编译器所创建,对客户对象来说则是透明的。

分布式对象技术及其构件系统在一般应用领域特别是企业计算中获得了很大的成功,其软件工程方面的优越性十分突出。与Client/Server模型相比,分布对象技术的实质性进步在于使面向对象技术能够在异构的网络计算环境中得以全面、彻底和方便的实施,从而能够有效地控制系统的开发、管理和维护的复杂性。然而,分布式对象技术的缺陷也十分严重。其中最大的问题是所有远程构件间的通信都必须经过应用前端。如果服务器A和B在计算过程中要进行多次交互协同的话,所有的消息都必须绕道前端,耗费了大量的带宽,网络资源利用很不合理。

1.3 移动Agent范型

移动Agent提供了一种全新的分布式计算范型。在这一范型中,移动Agent具有感知网络状态的能力,如网络节点是否连接、当前的网络负担等,以适应网络的配置与变化,在反应规划的控制之下正确的驱动;移动Agent也可以感知软件资源的条件,如资源是否可用、数据库中特殊的变化等,对重大的事件做出适当的反应。移动Agent具有自主的决策能力,由于信息是相关的,因此利用对所访问的网络节点的信息反馈,移动Agent可以独立的修改整体规划。传统分布式计算模型与移动Agent模型的比较见图1。

a.传统分布式计算模型 b.移动Agent模型

与传统的分布计算模式相比,基于移动Agent的分布计算模式有这样一些特点[1]。

(1)从应用的角度看,真正实现了“网络就是计算机”的理想。

(2)从系统的角度看,分布在网络各处的资源的充分共享成为可能,但管理更为困难。

(3)从服务提供和服务使用的角度看,服务是客户化、可定制的,其使用不再限于既定的方式。

(4)从通信协作的角度看,通信的主体是自主的A-gent,可以实现对等(peer to peer)的通信模式。

2 移动Agent的技术优势

在网络一体化的时代,移动Agent技术较之于传统的分布式技术有着明显的优势[2]。

(1)降低网络负载,克服网络延迟,移动Agent计算模式的特征是传输少量的运行代码和状态到远程数据方,这样做所带来的好处是减少了大量原始数据在网络中的流量。由于网络传输的次数减少,因此网络延迟相对于传统方式也降低了许多。

(2)包容不同的协议,在分布式系统中,有时出于效率和安全等方面的考虑,需要对一方的协议进行升级,这常常涉及对应用也做出大量的改动。而移动Agent通过建立专门的外部通道移动到远程主机中去,有效地克服了这一问题。

(3)异步、自主的执行能力,移动设备通常需要依赖昂贵脆弱的网络连接进行工作,而有的任务要求移动设备和固定网络之间保持持续的连接,这在实际中,既不经济,在技术上也不可能。为了解决这一问题,可以把任务嵌人到移动Agent中,而后者可以派遣到网络中去。之后,移动Agent可以独立地创建自己的进程,异步、自主地进行操作。而移动设备这时也允许断开网络,稍后如果需要,再做连接取回移动Agent。

(4)动态自适应性,移动Agent可以感知运行环境,并且对变化自主、快速地做出反应,使整个系统始终保持在最优状态。

(5)健壮性和容错性,移动Agent支持离线操作,大大降低了网络应用对网络连接可靠性的要求。移动Agent的反应性使之能及时的感知网络节点的失效,其自主性可以自主地处理并修正错误,更容易建立容错能力强的分布式系统。

3 移动Agent代表性系统

下面讨论几种有代表性的系统[3]。

3.1 Telescript

是第一个商品化的MAS。从技术角度讲,Telescript已经是一个非常完整的移动代理系统。缺点是消耗计算机资源太多,售价也高。随着基于Java的MAS出现,已没有了生命力。

3.2 Aglets

是基于Java的移动Agent系统,是迄今为止最为成功的移动Agent系统之一。其主要特点是实用性强,易于安装,界面友善,便于使用。Aglets提供了较为灵活的移动机制,并采用事件机制来增强其移动机制的能力。在通信机制方面,Aglets提供了简单但相对完整的命名和通信机制,命名机制保证了Agent的命名唯一性,通信机制提供了丰富的同步和异步通信机制,在移动Agent的安全性方面,A-glets制定了一套安全策略,并主要借助事件机制中的触发回调功能来保证其安全性。

3.3 D'Agent

是移动Agent系统。D'Agent有类似Telescript的服务器模型,支持多语言,但随着支持语言的增多,解释器的工作量很大,不易于实现。

4 结束语

随着相关技术的不断发展,移动Agent技术必将以其独特的流动特性给分布式系统带来革命性的发展,必将改变未来的生活。

参考文献

[1]冯云鹏.移动Agent系统通信机制研究[D].哈尔滨:哈尔滨工程大学,2004.

[2]Lange D B,Mitsuru Oshima.Seven good reasons for mobile agents[J].[S.l].:Communications of the ACM,1999,42(3):88-89.

[3]王曙光,韩京才,王洪锋.Java语言与软件Agent[J].成都:计算机应用,2001,21(8):77-79.

移动Agent 篇2

通信安全

服务器资源保护

Agent保护

Telescript

用RSA认证和用RC4加密Agent传输

基于能力资源的访问。限定配额,基于Agent权限授权

Aglet

静态指定访问权限,只基于两类安全分类,信任和不信任

Concordia

使用SSL认证,Agent传输被加密

Security Manager 基于Agent拥有者身份使用静态配置的存取控制列表(ACL)屏蔽访问

由资源访问机制保护Agent被其它Agent的访问

Ajanta

使用DES加密传输,认证使用ElGamal协议

Java的Security Manager控制Agent对系统级资源地访问

移动Agent 篇3

关键词: Agent; Web Services; SOAP消息; 异构中间件

中图分类号:TP311;TP391文献标志码:A

Mobile Agent interoperability based on Web Services

SHI Guizhi, SHI Xiaohong

(Information Engineering College, Shanghai Maritime Univ., Shanghai 200135, China)

Abstract:

In view of the difficulty in realizing interoperability between mobile Agent platforms, combining the Web Services interoperability merits with the mobile Agent system, a mobile Agent system based on the Web Services is proposed. According to this system, the technology of the Web Services is applied in the mobile Agent system to solve the interoperability problem between different Agent platforms. Modifying the Java-based Interoperable Mobile Agent Framework(JIMAF), substituting the cross-platform conversion by the service-driven model, the cross-platform conversion is completed by the help of the heterogeneous middlewares. The experiment deployed between Jade and Voyager mobile platform shows that thetechnologies of the Web Services and heterogeneous middleware can solve the interoperability problems of the mobile Agent’s migration and messaging.

Key words:Agent; Web Services; SOAP message; heterogeneous middleware

0 引 言

由于移动Agent可在主机之间迁移,使网络中的数据传输不再频繁,移动Agent可带着操作指令从1台主机移动到另1台主机,完成搜集数据、执行任务并带着结果返回原主机.但是,移动Agent在异构系统中的迁移不易,不同移动Agent平台的互操作性决定Agent能否被广泛应用.

基于Java的可互操作移动Agent框架(Java-based Interoperable Mobile Agent Framework,JIMAF)由意大利卡拉布里亚大学的FORTINO等[1]提出.该框架基于软件分层思想,通过事件触发实现Agent的迁移和通信.但通过基于事件响应方式实现的互操作在网络中会受到防火墙阻碍,无法达到Agent的迁移目的.

Web Services是1种可为因特网上不同应用程序提供通用互操作性的技术,并将应用程序的功能作为服务提供.Web Services及其客户端都能用任意语言编写,在任何平台上运行,通过将各种Web Services进行组合和集成,能统一封装信息、行为、数据表现以及流程等,无需考虑应用环境.

结合移动Agent(Interoperable Mobile Agent,IMA)的互操作要求和Web Services的功能特性,本文使用Web Services代替JIMAF中的事件模型,建立通过Web Services实现Agent互操作的系统结构.

1 移动Agent互操作模型

Web Services作为固定的网络节点,常被服务请求者远程调用,移动Agent则携带其状态和其他类型的数据在各主机间自主移动.每个主机都有1个Agent服务器,用于接收、运行和管理移动Agent的操作.

系统结构[2-3]见图1.使用简单对象访问协议(Simple Object Access Protocol,SOAP)实现Agent的通信和迁移;用Web Services接收、执行和派遣Agent代码,并为运行中的Agent隐藏主机资源,因此,Agent迁移到1个平台后,只需调用Web Services就能获取该主机的资源,而底层的实现对Agent完全透明.

图1 基于Web Services的移动Agent系统结构

系统主要由以下几部分组成:

(1)可互操作的移动Agent.移动Agent由代码、状态和数据组成,分为HLP(平台独立的高层)和LLP(平台相关的低层)2层,先在1个Agent环境中执行,之后可能移到其他环境中完成任务;

(2)Web Services主机.Web Services主机主要安装一系列的Web Services,用以完成接收和执行移动Agent的相关功能;

(3)SOAP消息处理器.附着在每个Web节点上的无状态实例,负责处理SOAP消息;

(4)Agent桥接器.Agent桥接器负责移动Agent迁移后的重组,根据接收到的Agent的HLP部分和平台的相关信息,创建适合平台运行的Agent;

(5)移动Agent平台MAS.安装在不同的Web Services主机上,为运行在其上的Agent提供相应泊位,使Agent顺利完成异构环境下的迁移和通信;

(6)用户接口.Agent的用户接口针对每个不同的Agent平台,创建新的Agent并在网络或Agent平台上执行,用户接口可以是1个Web网页或客户端程序等.

当Agent迁移到目的主机时,用JAX-RPC进行接收、初始化和提供其他功能.JAX-RPC是XML-RPC的Java实现方式.XML-RPC是1种允许客户端用置于HTTP之上的XML消息发送远程过程请求的技术.本文用其调用远程Web Services方法执行传送后的Agent代码.XML-RPC没有提供传送Agent文件的机制,因此,使用SOAP将Agent代码和数据与包含RPC调用的消息一起传输.JAX-RPC可在调用Web Services时,隐藏底层SOAP消息的实现细节.JAX-RPC提供静态存根的方法允许客户远程调用Web Services.

1.1 可互操作的移动Agent

用1对二元组表示1个可互操作的移动Agent

IMA = 〈HLP,LLP〉

其中:(1)LLP为平台相关的底层部分,依赖特定的移动Agent系统,当Agent在某平台上操作完毕并进行1个异构的迁移后,LLP需根据新主机上移动Agent系统的结构作相应改变;(2)HLP为独立于移动Agent平台的高层部分,在移动Agent的整个生命周期中都不改变,HLP在平台间迁移,通过1个为其提供基本服务的接口与LLP衔接.

Agent在迁移时,通过调用Web Services,将其封装成SOAP消息的附件发送到目的主机.目的主机接收到SOAP消息后,提取出相关数据,根据该Agent的HLP部分和当前平台的相关信息,构造1个适合平台的LLP.

Agent有3种状态:(1)闲置状态,等待被启动;(2)迁移状态,代码和XML数据作为附件被绑定在SOAP消息中;(3)执行状态,Agent被启动后,在Agent平台上执行任务,自主决定是否迁移.Agent执行流程见图2.

图2 Agent执行流程

执行过程如下:

(1)Agent被启动;

(2)Agent执行预定任务,如果需要检查文件,则创建1个SAX解析器对象解析XML文件,如果已对XML文件中的数据进行修改,则需将修改更新到XML文件中;

(3)如果还有其他任务需执行,转到(2),否则转到(4);

(4)解析XML文件,检查有无需要迁移到下个主机的IP地址,若没有,Agent执行结束,否则,请求描述远程Web Services的WSDL文件;

(5)等待应答,如果没有应答,表明远程服务未找到,服务不可用或当前连接被打断,转到(4),检查是否需要迁移到其他主机;如果应答到来,则转至(6);

(6)使用WSDL文件创建与远程Web Services主机通信的代理存根,使用SOAP处理器将移动Agent文件附着在SOAP消息中,执行过程结束.[4]

1.2 封装Agent行为的Web Services

每个Agent平台所在的主机都有Web Services,提供Agent创建、Agent迁移和通信等方法,供其他应用程序调用.

每个Web Services主机都有1个描述应用程序功能的WSDL文件.

(1)Agent创建时.每个Web主机都提供用于创建Agent的方法,用户通过系统提供的接口界面,给定一系列参数创建Agent,用户接口中的创建方法不提供具体创建Agent的行为,而是根据用户选择的Agent平台、主机URL等,通过服务注册处查找到某个Web Services,获取WSDL文档,得到WebServices的详细信息.用户在调用此WebServices时,会发出1个SOAP RPC请求,WebServices收到请求后,调用该主机所提供的方法创建Agent.

(2)Agent迁移时.当Agent决定迁移到1个新的主机上时,会请求描述目的主机上Web Services的WSDL文件,然后创建1个相应于该WSDL文件的动态存根(stub),并将Agent的自身代码和数据等作为附件与SOAP消息绑定在一起,发送1个XML-RPC请求,调用该Web Services.Web Services接收到请求后,将SOAP消息中的文件提取出来,创建1个适应本机平台的Agent,在新线程中调用负责Agent执行的类文件,从Agent的入口处开始执行.

因此,Web Services需提供以下一些功能:描述调用Web Services的WSDL文件;为每个Agent创建1个新线程;调用Agent执行.Web Services主机的简易功能见图3.

图3 Web Services主机的简易功能示意

1.3 异构迁移的中间件

1.3.1 SOAP消息处理器

要将Agent代码和数据作为附件传输,需要使用SOAP消息处理器[5]进行封装,SOAP处理器是附着在服务节点上的无状态实例,源主机的处理器负责将Agent代码和数据绑缚在SOAP消息上,目的主机的处理器负责提取附件中的代码和数据,然后交由Web Services,启动1个新线程初始化该Agent,见图4.

图4 客户端和服务器端的SOAP处理器

1.3.2 Agent桥接器

由于1个可互操作的Agent的LLP部分与Agent系统密切相关,因此,当Agent发生1个异构迁移时,需根据接收到的数据对Agent的LLP进行重组,创建适合本平台的运行环境.Agent桥接器的作用是响应本平台的调用,利用接收到的数据和本平台的信息对Agent进行重组.图5为可互操作的移动Agent从1个平台迁移到另1个平台上的桥接过程.设IMA=〈HLP,LLP源〉表示1个想从X类型的源移动Agent系统迁移到Y类型的目标移动Agent系统的可互操作的移动Agent,其中X≠Y,迁移过程如下:

(1)IMA联系1个MAB(MABX→Y),将HLP同目标Agent平台的标识符一起传给MAB,由MAB提供从X到Y的桥接服务;

(2)MABX→Y收到HLP后,创建1个针对Y的新LLP(LLP目标);

(3)将HLP与LLP目标衔接以获得IMA*=〈HLP,LLP目标〉;

(4)将IMA*同构迁移到目标MAS上.

图5 IMA从X平台迁移到Y平台上时的桥接过程

虽然LLP被替换,但封装移动Agent活动的HLP被保留下来,使桥接操作完全透明.

2 试验分析

在网络中2台主机上进行试验,主机1安装Voyager平台,主机2安装Jade平台.通过用户接口调用主机2上的Web Services,创建基于Jade的Agent,并将其派遣到Voyager平台上.试验证明,将Agent的迁移封装成基于XML文件的数据迁移,能很好地实现不同平台间的互操作.[6]

对系统的性能作评估.Agent 1创建好后,设离开Jade平台的时间为t1,返回的时间为t2,则在Jade平台间做同构迁移的时间t同=(t2-t1)/2,在Jade和Voyager平台之间做异构迁移的时间t开=t同+t3,其中t3为Agent桥接器的重组时间.图6为Agent 1在不同架构下迁移的时间.

(a)同构迁移(b)异构迁移图6 Agent 1在不同架构下迁移的时间

3 结束语

本文将Web Services的互操作优点和移动Agent系统结合起来,提出1种基于Web Services的移动Agent系统.该方法可使Agent在互联网内任意移动,不受防火墙的干扰;也可在不同的Agent平台之间移动,只需用Agent桥接器根据SOAP消息所携带的Agent相关数据重新组装,使其适应当前平台.

参考文献:

[1]FORTINO G, GARRO A, RUSSO W. Achieving mobile Agent systems interoperability through software layering[J]. Inform & software technol, 2008, 50(4): 322-341.

[2]ARTAIL H, KAHALE E. MAWS: A platform-independent framework for mobile Agents using Web Services[J]. J Parallel & Distributed Computing, 2006, 66(3): 428-443.

[3]张祖红.基于Mobile Agent平台的Web Services的研究与实现[D]. 南京: 东南大学, 2005.

[4]CHEN Bo, LINZ D D, CHENG H H. XML-based Agent communication migration & computation in mobile Agent system[J]. The J Systems & Software, 2008, 81(8): 1364-1376.

[5]WANG Dan, YU Ge, SONG Baoyan, et al. Study on SOAP-based mobile Agent techniques[C]//Eng & deployment of cooperative inf systems(EDCIS 2002). Berlin: Springer, 2002: 23-24.

[6]MONSON-HAEFEL R. J2EE Web Services高级编程[M]. 崔洪斌, 王爱民, 译. 北京: 清华大学出版社, 2005: 102-105.

移动Agent 篇4

随着无线通信技术和计算机硬件技术的发展,以计算机网络为中心的移动计算技术得到了广泛应用。随着移动计算技术的应用,无线技术与数据库技术相互融合,移动数据库技术产生并逐步发展起来。移动数据库是具有移动计算功能的分布式数据库[1,2],具有分布式数据库的很多特征,能够满足人们不断提高的对移动数据进行实时处理和管理的要求,有着广泛的应用前景。目前,移动数据库的应用与研究正在成为学术界的一个研究热点,而移动数据库的查询优化是其中的一个难点。由于移动通信费用较高,移动客户机与网络的连接处于频繁的断接状态,因而缩短移动数据库查询的响应时间,减少网络延迟是移动数据库查询优化[4,5]必须解决的问题。

由于移动数据库自身的特点,决定了在移动数据库查询方面必须采取与普通数据库不同的查询策略。本文主要针对基于移动Agent的移动数据库查询优化进行研究和探讨。

2 基于移动Agent的移动数据库模型分析

在设计移动数据库系统[3]时,通常客户机和数据库之间设置两个Agent(移动Agent和数据库Agent)。图1表示基于移动Agent的移动数据库系统模型框架图。

客户机通过移动Agent和数据库Agent之间的通信和协作完成数据库的访问。移动Agent位于客户机和数据库Agent之间,通过数据库Agent间接地与数据库系统进行通信。数据库Agent位于移动Agen和数据库系统之间,通过移动Agent间接地与客户机进行通信,除了能够负责数据库系统的一致性,还能对异常情况及时处理。移动Agent携带应用程序移动到提供数据服务的服务器端,通过通讯机制和协作机制与服务器端的数据库Agent进行信息交换,并把查询任务提交给数据库Agent。数据库Agent根据提交的查询任务完成对数据库系统的访问,并负责把访问结果返回给移动Agent。移动Agent携带着访问结果回送给提出请求的客户机。

基于移动Agent的移动数据库系统具有以下特点:

1)基于移动Agent的移动数据库系统不需要设置一个全局事务管理器,系统的整个计算环境具有开放性和可扩展性。

2)系统中设置的各个Agent都是统一在自己的本地数据库上下文环境中运行。

3)移动Agent既与数据库Agent相互通信和协作,又与其他Agent进行通讯和协作。

4)数据库Agent采用原语方法给应用程序提供统一的通用接口,并不是采用简单的读/写操作来完成查询任务。

5)当系统出现异常情况时,Agent既需要恢复数据库系统中的源数据,又需要恢复Agent的本地数据和运行状态。

3 基于移动Agent的移动数据库的体系结构

在传统的分布式计算系统中,各个计算节点往往涉及不同类型的数据库,它们属于不同类型的数据源、需要不同的驱动程序。在这种情况下,如果采用固定的数据库访问技术,很难适用于移动计算环境中的分布式数据库的访问。移动数据库是适用于移动计算的分布式数据库。为了克服移动计算网络环境中的移动性、断接性、、弱可靠性、网络通讯的非对称性、电源能力局限性等缺点,采用移动Agent技术来构建移动数据库系统。基于移动Agent的移动数据库的体系结构如图2所示。

MC:Mobile Client(移动客户机),具有移动性且与网络频繁断接的计算设备。

MSS:Mobile Support Station(支持移动计算的固定站点),位于固定高速网络中,它不仅可以通过无线链路与移动客户机通信,而且可通过固定网络与服务器通信。

MAD:Mobile Agent Dock(移动Agent码头),位于支持移动计算固定站点上的移动Agent管理系统。它可以根据客户机的请求创建移动Agent,并将移动Agent传送到能够提供服务的服务器端,接收服务器端返回的携带查询结果的移动Agent,将其结果传送给相应的客户机。

SVR:Server(服务器),每个服务器负责管理一个本地数据库,并保留所有发出对本地数据库请求的历史记录。

DA:Database Agent(数据库Agent),位于服务器上的静止Agent,可以直接对数据库进行访问,通过与移动Agent通信接收客户机对数据库的访问请求以及将结果反馈给客户机。

LDB:Local Database(本地数据库)。

4 移动查询处理

为了有效地提高移动数据库的移动查询效率,在固定网络中间增设一些相互连接的位置服务器,这些位置服务器通过固定网络与若干支持移动计算的固定站点连接。每个位置服务器负责管理所有与它连接的固定站点。每个客户机都必须在特定的位置服务器上作永久的登记,我们把该服务器称作该客户机的宿主服务器(Home Location Server)。

基于移动Agent的位置更新和查询是移动数据库需要解决的一个重要问题。目前,移动Agent的位置更新方法有两种:

1)MC从一个位置服务器移动到另一个位置服务器

移动客户机以访问者的身份向当地的位置服务器登记,并将位置服务器的位置通知其宿主服务器。当进行位置相关的查询时,移动Agent先从其宿主服务器查到其当前所在的位置服务器,然后在该位置服务器的范围内进行广播寻呼,查到该客户机所在的固定站点。

2)MC从某一个位置服务器的一个固定站点上移动到另一个固定站点上

当移动客户机所访问位置服务器没有改变时,不需要通知该客户机的宿主服务器,只需在两个固定站点之间建立一个指针。通过指针指示移动客户机在固定站点上的移动方向。当移动路径形成环路时,我们省略中间环节。指针只在移动客户机所访问的位置服务器没有改变时存在,当移动客户机所访问的位置服务器发生改变时,则指针自动消失。在这种情况进行位置相关查询时,移动Agent只需找到原来移动客户机驻留过的固定站点,然后按照指针所指方向找到最终移动客户机所在的固定站点。采用这种方法极大地降低了查询开销。移动Agent负责完成所有位置更新操作及查询操作。

5 基于移动Agent的移动数据库查询

基于移动Agent移动数据库查询系统把查询任务直接提交给移动Agent,移动Agent携带查询任务移动到服务器上,执行查询并存储结果,并将查询结果返回给用户。

为了实现移动数据库中的移动查询,我们可以设计两种结构的Agent(单体Agent和移动多协作Agent):

1)单体Agent技术,在移动数据库查询系统中,只设计一个专用的移动查询Agent,它可以通过网络移动到各个服务器或移动结点,执行客户提交的查询任务并收集结果信息。当Agent执行完查询任务后,将携带查询结果返回到客户机。

2)移动多协作式Agent技术,在查询系统中将一个查询任务分解为多个子查询,同时创建多个Agent,由多个不同的移动Agen来分别执行各个子查询,当各自的查询任务完成时,多个Agent都带着查询结果返回,然后再将所有的查询结果合并成为用户所需要的最终查询结果。

移动多协作式Agent技术在移动数据库中得到了广泛应用。目前来说,应用这种结构的Agent可以给移动数据库查询优化带来以下四个好处:

1)Agent采用分布式方式执行客户机提交的查询任务,这种方式非常适合移动数据库的查询,当一个服务器或结点数据库上的操作无效时,并不会影响其他服务器或节点数据库上的查询操作。

2)采用这种结构的Agent可以并发执行用户提交的查询操作,大大地提高系统的查询效率。

3)该结构Agent可以根据查询结果来进行程序的设计。

4)可以提供异步查询的功能,不需要统一的调度,系统可以与网络间断,Agent可以异步地在不同的服务器上执行查询操作,查询任务完成后将结果返回给客户机。

在多个移动客户机请求查询任务的结果存在相交或包含的情况下,按照移动多协作Agent技术大量相同的数据可以被多次发送,极大浪费了网络带宽,也使得查询响应时间明显增长。为了提高移动数据库的查询效率,可将多重查询技术和移动多协作式Agent相结合,采用多重多协作式Agent技术。采用该技术对移动数据库查询时,若不同移动客户机的查询任务的结果存在相交或包含,结果相同的查询任务就分在同一类。对同一类内的移动客户机的查询任务利用多协作式Agent技术做批量处理,最后将查询结果向同一类内的移动客户机进行广播。利用多重多协作式Agent技术方便地实现了移动数据库的查询优化,提高了移动数据库的查询效率。

6 结束语

近年来,移动数据库查询优化已经成为移动数据库的研究热点之一。目前,将移动Agent技术应用于移动数据库查询等方面得到了很好的效果。本文将移动Agent应用于移动数据库查询,大大缩短了查询的响应时间,提高了查询的效率。移动Agent对移动数据库的查询优化具有广泛的应用价值。在今后,采用Agent技术实现移动查询优化必将成为移动数据库研究的热门话题。

参考文献

[1]王珊,丁治明,张孝.移动数据库及应用[J].计算机应用,2000,20(9).

[2]俞晓鸣,党齐民.基于代理的移动数据库研究[J].微电子学与计算机机,2006(z1).

[3]廉盟.基于Agent的移动数据库事务处理的研究[D].哈尔滨:哈尔滨工程大学,2007.

[4]杨晓宇,岳丽华,柳建平.多重优化技术在移动数据库中的应用[J].小型微型计算机系统,2004,25(8).

移动Agent 篇5

关键词:移动Agent,通信安全,密码体制

0 引言

Agent来源于分布人工智能。Agent是指能模仿人类行为和关系、具有一定智能并且能够自主运行和提供相应的软件体。通常被认为是具有目标、行为和知识并在一定环境下自主运行的实体, 具有自主性、自学习、应激性和合作性等特点。

在Internet网络环境中, 计算机软件体系结构和组织结构的复杂性不断增加, 传统的软件设计方法已经无法满足实际需要, 分布式、智能化才是今后软件发展的基本方向。软件分布式的目标是要将问题进行分解, 由多个实现了知识共享的软件模块或网络节点来共同完成问题求解, 使软件Agent能够在整个网络中自由移动, 而智能化的目标是要在智能主机之间实现智能行为的协调, 两者的结合就产生了移动Agent。Agent技术的理论研究和实践目前尚存在着一定的差距。阻碍移动Agent系统广泛应用的一个重要因素就是它的安全性还不够完善。本文在分析移动Agent系统安全性的基础上, 提出了使用一种加密和数字签名的混合算法RIM (RSA+IDEA+MD5) 安全框架来保障移动Agent的通信安全。

1 移动Agent

移动Agent可以看成是软件Agent技术与分布式计算技术相结合的产物。移动Agent是一个可执行程序, 它可以在异构网络环境中的机器上移动执行。移动Agent采用的是一种新型分布式计算技术, 它与传统的Client/Server技术不同, 分布式计算技术不是将数据移动到计算上, 而是将计算移到数据上。移动Agent也不同于一般的进程迁移, 因为一般来说进程迁移系统不允许进程自己选择什么时候迁移以及迁移到哪里, 而移动Agent却可以在任意时刻进行移动, 移动到它想去的任何地方。

因此移动Agent技术具有许多新特点:

(1) 移动Agent能较大地减轻网络上的数据流量。

(2) 移动Agent能以异步的方式自主运行。

(3) 移动Agent具有较强的应变能力。

(4) 移动Agent有利于并行处理。

(5) 移动Agent具有很强的健壮性和容错能力。

(6) 移动Agent具有学习能力, 具有利用已获得的环境信息, 根据需要调整修改自己行为的能力。

2 移动Agent系统的安全性

在移动Agent系统中, Agent的运行需要分布式系统中的宿主程序为其提供执行环境。机器的所有者、宿主程序的用户、Agent所代表的用户以及软件的开发者都是不同的实体, 这样必然会存在安全隐患。因此, 安全性问题是移动Agent系统中需要解决的最重要问题之一。

2.1 移动Agent系统的安全要点

移动Agent的安全首先要求移动Agent编程语言的安全, 即编写移动Agent的程序代码即使在被错误编译的情况下也不能对主机和其他代理产生威胁, 它要求能对系统资源的存取进行严格的检查和限制。Java语言是一种安全语言, Java语言取消了指针操作, 属性和操作被封装在对象中, 程序对系统资源的存取操作受到虚拟机的严格检查和限制, Java不允许程序直接对内存进行操作并且内存是由系统自动进行管理的。目前较多版本的移动Agent平台都是采用这种语言开发的, 比如IBM的Aglets平台。移动Agent的安全主要包括两个方面:

(1) 保护主机:每个移动Agent总是运行在一定的代理平台 (Agent Platform) 下, 每台主机可以运行一个或多个这样的平台。平台要接收来自不同地点的代理, 这样平台就要承担保护本机系统, 包括文件系统、CPU、内存不受外来敌意代理的破坏。

(2) 保护代理:一般来说, 每个代理都保存了自己执行的任务的数据和中间结果, 为了保护这些信息不被窃取, 需要处理与不可信代理、敌意主机的通信。

2.2 移动Agent的安全

移动Agent在网络环境中迁移时, 其代码和数据可能会成为攻击的对象。攻击分为主动和被动两类。主动攻击是对Agent携带信息的修改、删除和伪造;被动攻击则是指在网络中从Agent的数据流窃取信息。被动攻击很难防止, 可以用加密机制来保护信息不受侵害。而防止主动攻击则需要移动Agent系统的Agent传输协议有一套完整有效的认证和保护机制。

移动Agent在宿主服务器地址空间中执行时, 其执行过程完全暴露在宿主程序的控制之下。这时恶意的宿主程序可以攻击Agent, 常见的攻击手段有:破坏Agent使其无法完成任务、从Agent中窃取信息、修改Agent携带的数据、以及修改Agent的执行代码。

为了执行移动Agent, 宿主环境必须能够访问Agent的代码和状态, 而且宿主也需要修改Agent的数据如写入执行结果等。因此无法彻底防止恶意宿主对Agent的修改, 但Agent系统必须确保Agent的创建者能检查出宿主所做的修改, 一旦发觉被恶意宿主攻击, 创建者应能采取相应的措施, 如限制Agent的执行或抛弃Agent。

2.3 宿主环境的安全

运行移动Agent的宿主在允许合法的移动Agent使用其资源的同时需要防止恶意Agent滥用资源, 因此系统必须为宿主服务器提供授权认证机制来指定移动Agent的访问权限。

由于移动Agent系统基本上都采用了解释语言 (如Java) 来实现, 因此宿主环境的部分安全问题可以由解释程序来解决, 解释程序可以检查移动Agent执行的地址是否越界、检测系统请求的参数等等。移动Agent由宿主服务器的宿主程序控制执行, 由宿主程序及相应的资源构成了移动Agent的执行环境。对服务器资源的请求和信息的访问都由执行环境来协调解决, 因此宿主环境的安全可以近似地等同于执行环境的安全。

3 应用RIM (RSA+IDEA+MD5) 密码体制保障Agent通信安全

移动Agent系统中的安全性威胁既可能来自于恶意的移动Agent, 也可能来自于恶意的目标主机。所以, 一个有效的安全保障机制应当从主机和移动Agent两个方面着手解决。为了阻止恶意移动Agent的非法执行, 在主机上常常采用如下安全检测机制:用户身份认证、代码验证、授权认证。为保证移动Agent在传送和远程执行时的安全, 可以采用加密技术、身份认证技术和数字签名技术等。

在加密技术方面, 目前大多采用RSA算法。它的安全性很高, 但所需计算量太大, 不适合对大数据量的加密。我们对需要大量传输的正文采用计算量相对较小 (与RSA相比) 的对称加密算法IDEA (international data encryption algorithm) , 而对IDEA算法的密钥则采用RSA进行加密。在数字签名方面, 我们用MD5 (Message Digest 5) 算法产生信息摘录, 并用RSA对摘录加密 (用私有密钥) , 从而得到签名。这样的链式加密方法既有RSA体系的保密性, 又有IDEA算法的快捷性, 我们将该算法称为RIM (RSA+IDEA+MD5) 。

RSA算法用到的是两个非常大的质数的乘积, 对其进行攻击的方法是使用因数分解算法。当密钥长度足够长时 (如超过128位) , 用目前的计算机进行运算基本上是很困难的。IDEA算法是一种使用128位密钥、包含17个循环的分块加密/解密的对称加密算法。目前还没有办法对IDEA进行密码学分析, 对IDEA的攻击方法只能采用密钥穷举。IDEA的密钥空间 (密钥长度) 为128位, 其密钥个数是2128, 从这些密钥中试探出一个密钥几乎是不可能的。MD5是一种单向散列算法, 已经有人证明, 找到一个与原件具有相同特征精华的信息数据段的概率小于1/265, 这已经是足够安全了。由以上分析可知, RIM算法是足够安全的。

代理移动到远程主机代理平台之前要对代理的身份进行认证, 检查请求移动的代理来自哪个平台, 是否允许此平台的代理执行该项操作。移动代理系统中引入服务中心 (Service Center) 的概念, 其是一个密钥分发中心, 提供两种服务:认证服务、会话授权服务。

为确保在正式通信以前通信双方的正确性, 通信双方首先要进行两阶段握手, 即接收方认证和发送方认证, 同时也进行双方公开密钥的交换。下面给出简单的工作过程:

(1) 代理在移动到远程平台之前, 先向Service Center发出请求, 请求获得远程平台的公钥。

(2) Service Center通过自己的私钥加密, 将远程平台的公钥发送给代理, 代理则通过Service Center的公钥解密获得远程平台公钥。

(3) 代理用远程主机的公钥加密一段明文, 并将自己的ID和公钥一并发给对方, 对方主机收到密文后, 用私钥解密, 比较明文和解密后的字段。

(4) 远程主机用代理发给它的公钥加密明文, 并将自己的ID一起发给对方, 代理收到密文后用私钥解密, 比较明文和解密后的字段, 完成二次握手。

加密方式:使用的算法为RIM, 首先使用MD5产生要传送的数据I的信息摘录D;通过RSA算法使用自己的私钥对信息摘录D进行加密得到签名S;随机产生一个IDEA的密钥K;使用IDEA算法对I+S使用K进行加密, 结果为KIS;接着使用RSA算法用对方的公开密钥对K进行加密得到PK;接着将PK+KIS发送给对方。

解密方式:对收到的信息, 使用RSA算法用自己的私钥解出K;使用K对加密信息KIS进行解密, 得到信息I和签名S, 使用公开密钥PKA对S进行解密以后得到传送过来的信息摘录D。

4 结论

本文提出用RIM密码体制来解决移动Agent系统的通信安全问题, 该方案具有如下优点:

(1) 双向认证不仅防止了假冒的Agent接入宿主程序, 而且也能防止通过宿主程序对Agent进行某些恶意操作。

(2) 攻击RIM密码体制的难度等于素因子分解的难度, 因而较好地保证了移动Agent系统的通信安全。

参考文献

[1]刘岩, 郑燕飞, 马范援.移动代理系统的安全框架.计算机工程与应用.2003.

[2]刘大有, 杨鲲, 陈建中.Agent研究现状与发展趋势.软件学报.2000.

移动Agent 篇6

整数线性规划问题的求解已广泛的应用到工程实践中。传统的求解整数线性规划方法有:枚举法、割平面法以及分枝定界法。其中分枝定界法是最为常用的方法[1]。

分枝定界法是20世纪60年代初期由Land Doid和Dakin等人提出的,是一种系统化的解法,以一般线性规划的单纯形法解得最佳解,然后将非整数值的解分割成最接近的两个整数,分列条件,加入原问题中,如此分枝成两个子问题分别求解,这样便可求得目标函数值的上界或下界,从其中寻得可行解。可见本算法能较快的求得最佳解,且平均速度快,但要存储很多叶子结点的限界和对应的耗费矩阵,花费很多内存空间,计算效率较低。本文探讨一种基于演化agent的解决方案。

2 基于移动Agent的整数线性规划

移动agent是具有移动性的智能agent,能够自行决定在网络的各个节点之间移动,代表其他实体(人或其他agent)进行工作的一种软件实体。移动Agent技术是分布式技术与Agent技术相结合的产物,它除了具有agent最基本的特性:自主性、反应性、能动性、通信性以外,还具有移动性[2]。这些特有的属性和技术优势使其在诸多领域得到了科学的应用,特别适合于解决传统方法中代价过于昂贵,或者解决不了的问题。

2.1 agent模型

定义一个agent,它是具有目标、动作、通信等行为功能的复合体,用符合T表示。agent的行为描述如下:

1)复制

一个agent T可以复制成两个子agent T1、T2,我们称T为父agent。它的两个子agent与其具有同样的目标,但所处的问题环境有所改变。

2)动作

Agent会根据其所处的问题环境不停地计算其目标,直到成功或者到达中止条件。

3)通信

设环境E中是agent T的计算环境,那么agent T会在这个环境中进行计算,直到达到其目标,如果目标不能达到,agent T会复制成agent T1、T2来继续计算其目标,此时环境E也会被分成E1、E2(E的两个子环境),它们就分别是T1、T2的计算环境。

T1、T2分别在E1、E2中计算其目标,如果它们的计算达到目标,则将计算结果发送给agent T,否则将会继续复制,继续计算下去。

2.2 求解算法

这个算法的基本思想是:将松弛问题Q作为agent T的目标和计算环境,T首先按单纯形法来求解,如果计算的结果有最佳整数值,则问题得到求解。否则,T将复制成两个子agent T1、T2分别对应与两个子问题B1、B2继续求解,如此下去,以获得问题的最优整数解。算法可描述如下:

1)首先把整数线性规划问题中得目标函数以及约束条件作为agent T的目标和环境赋给它,并且定义变量p(p首先不赋予值);

2)agent T首先求解松弛问题,如果松弛问题的最优解全为整数,那么把这些最优解赋值给p,转去执行(6),如果松弛问题没有可行解,就直接转去执行6),否则将执行下一步;

3)若在求解过程中某个变量xi的解为分数值kj,那么就分别求得小于kj下的最大整数[kj]和大于的最小整数[kj]+1,agent T将复制成两个子agent T1、T2。这两个子agent的计算目标与agent T相同,但其环境分别为原来T的计算环境加上约束条件xi<=[kj]和原来T的计算环境加上约束条件xi>=[kj]+1。

4)agent T1、T2分别在其所处的环境里计算它们的目标,如果最优整数解已求出,则若p没有值,那么将最优整数解赋值给p,否则,p min(p,最优值);

5)当T1、T2中有非整数可行解者Tj时,如果p没有值或所得的非整数可行解小于p,那么将Tj的解赋值给T,转到(3)继续执行;

6)如果p已有值,则输出p,否则就输出此整数线性规划问题没有可行解。

2.3 模型的实现

可选用日本IBM公司开发的Aglet平台,该平台是目前最为成功和全面的移动代理平台[3]。Aglet系统可以根据需要创建agen T;复制agent T1、T2,将它们分派到各自的环境中执行;也能执行暂停、清除。

2.4 算法的时间复杂度

在微机上,采用一般的单纯形法来求解整数线性规划问题,其时间复杂度为O(n);而用本文的模型进行求解,它的时间复杂度为O(log n),可见实现的时间复杂度较低。

3 结束语

通过编程实现,本文探讨的模型取得了很好的效果。Agent可以同时复制,故求解过程具有并行性;并且程序实现的时间复杂度较低,求解过程基于目标驱动,提高了计算效率。

摘要:该文探讨了一种基于移动Agent的线性规划求解方案,提高了计算效率,具有很好地实用意义。

关键词:线性规划,移动Agent

参考文献

[1]张干宗.线性规划[M].武汉:武汉大学出版社,2007.

[2]王汝传,徐小龙,黄海平.智能Agent及其在信息网络中的应用[M].北京:北京邮电大学出版社,2007.

密码学在移动Agent中的应用 篇7

分布式计算是计算机网络时代的关键技术,当前的分布式计算都是基于传统的Client/Server模式,通过远程调用(remoteprodurecall)和消息传递(messagepassing)等方式实现跨平台的操作,比较适合稳定的网络环境和应用场合。随着计算机网络的发展(特别是internet应用的急速增长)和新型网络应用(移动设备接入)的出现,Client/Server模式的缺点日益明显。譬如客户机和服务器在计算过程中必须一直维持连接,计算过程有大量的中间结果需要传输,浪费带宽,因而难以适应移动计算的低带宽、高延迟、不稳定的网络环境。Client/Server模式的可维护性和可扩充性也比较差,不利于当今快速多变的网络应用服务领域。基于这种情况,移动agent技术被提了出来,它集软件、通信、分布系统于一体,弥补了传统的Client/Server技术的不足,有着巨大的应用前景。.

基于移动agent的分布式计算技术,通过将自身代码状态传送到远程主机,并在远程主机本地执行的方式,克服了传统的分布式计算模式的不足,为分布式计算一个新的发展方向。但是移动agent在网络中移动的同时,也带来了许多安全性方面的问题,这是决定移动agent能否取得广泛应用的关键性问题之一。

密码学是以研究秘密通信为目的的。即研究对传输信息采用何种秘密的变换以防止第三者对信息的窃取。密码技术还有效地用于信息鉴别、数字签名等,用以防止电子欺骗,这对信息处理系统的安全起到极其重要的作用。

本文主要针对移动agent所面临安全性问题用相应的密码学的相关算法对其进行信息的保护,确保其所携带的信息的安全传送。

1密码学的加密算法

1.1椭圆曲线密码体制(ECC)的Diffie-Hellman密钥交换算法

(1)有两个全局公开的参数,一个素数q和一个整数a,a是q的一个原根。

(2)假设用户A和B希望交换一个密钥,用户A选择一个作为私有密钥的随机数xa>q,并计算公开密钥ya=axamodq。A对xa的值保密存放,而使ya能被B公开获得。类似地,用户B选择一个私有的随机数xb<q,并计算公开密钥yb=axbmodq。B对xb的值保密存放,而使yb能被A公开获得。

(3)用户A产生共享秘密密钥的计算方式是k=(yb)xamodq。同样,用户B产生共享秘密密钥的计算是k=(ya)xbmodq。这两个计算产生相同的结果:因此,相当于双方已经交换了一个相同的秘密密钥

(4)因为xa和xb是保密的,一个敌对方可以利用的参数只有q、a、ya和yb。因而敌对方被迫取离散对数来确定密钥。

1.2 IDEA是一种新的分组密码方案

全称为IternationalDataEncryptionAlgorithm,即国际数据加密算法,由朱学嘉与JamesMassey于1990年联合提出,1992年修改完成。

IDEA的明文块与密文块都是64bit,密钥长128bit,加密与解密相同,密钥各异,软硬件实现较易,运算速度非常快。

IDEA加密算法如图1所示。

1.3 典型的公钥密码包括RSA,MH背包

其中RSA算法是Rivest,Shamir和Adleman于1977年提出的一个比较完善的公钥密码体制,RSA的基础是数论中的欧拉定理,其安全性基于分解大整数的困难性,即到目前为止尚无法找到一个算法来分解两个大素数之积。

RSA算法的过程是

(1)取两个素数pq(保密);

(2)计算n=pq(公开),ϕ(n)=(p-1)(q-1)(保密);

(3)随即选取整数e,满足gcd(e,ϕ(n))=1(公开);

(4)计算d,满足de=1(modϕ(n))(保密)。

利用RSA加密,第一步需要将明文数字化,并取长度小于lg2n位的数字做明文块,加密过程和解密过程分别为:

加密:c=E(m)=me(mod n);

解密:D(c)=cd(mod n)。

1.4 单向散列函数

哈希(Hash)函数又称散列函数,是指对任意长度的信息m,经过哈希运算后,压缩成固定长度的数,比如64 bit,要求满足:

(1)已知哈希函数的输出,要求出它的输入是困难的,即已知c=Hash(m)求m是困难的;

(2)已知m,计算Hash(m)是容易的;

(3)已知c1=Hash(m1)是容易的;

(4)c=Hash(m),c的每一bit相关,即每改变m一bit,都对c产生明显影响;

(5)作为一种数字签名,要求除信息m自身外,应该基于发信方的秘密信息对信息m进行确认。

2 利用数据加密算法对移动agent的通信进行保护

在Internet这样的开放性网络中的信息传输总是不安全的。当移动agent穿行于网络,它的代码与数据都受到各种安全威胁。从图2中可以看出,移动agent系统的安全性涉及3个方面:移动agent的通信安全、移动agent的自身安全和移动agent服务器的安全。

本文主要用下面几种方法来最大保护移动agent的问题。

(1)用RSA完成数字签名,确保移动agent的互相认证,防止恶意的窃听,篡改和伪装。

对于移动agent服务器,作为运行移动agent的平台,容易受到恶意agent或其他主机攻击,这类攻击包括伪装、拒绝服务和未授权存取。在平台缺乏充足的访问控制机制,或身份验证与确认机制不力时,未授权访问可能发生,这使得恶意agent可以伪装成一个被平台信任的agent。一旦该恶意agent获得了访问权,驻留在平台上的信息就可能泄露或被更改。如果平台的资源约束机制没有很好的建立起来,移动agent能够通过消耗agent平台的计算资源来发动拒绝服务攻击,最终导致该主机无法为其他的agent服务。另外,agent可以通过发出毫无意义的服务请求来干扰平台的运行。

数字签名对代码或其他对象进行标识是保护agent系统的一种基本技术,数字签名可以用来验证一个对象来源的真实性和完整性,因为agent是代表一个最终用户或组织而工作的,移动agent系统通常使用该用户的签名作为其授权标识,agent在该授权下运行。用RSA完成数字签名,确保移动agent的互相认证,防止恶意的窃听,篡改和伪装。

(2)用单向散列函数SHA生成传输数据的摘要以保证agent携带数据的完整性。

完整性:必须保护agent以避免对agent代码,状态和数据的恶意修改。Agent本身不能阻止恶意的agent平台篡改它的代码、状态和数据。但是能够采取措施检测到这些篡改。对agent通信的完整性进行面向目标的恶意攻击,能给agent造成比由于间断的通信信道而引起的传输错误更大的损害。因此,需要机制验证agent代码在穿过不信任网络或访问不信任服务器未改变。如采用密封或消息摘要机制等用于检测完整性。此处可以用单向散列函数SHA生成传输数据的摘要,以保证agent携带数据的完整性。

(3)用对称密钥密码算法IDEA保证数据传输的机密性

机密性:任何存储在平台上的私有数据或者agent包含的敏感数据和状态信息部分都必须保证其机密性,agent平台必须能够确保平台内部和外部通信的机密性。加密机制能提供安全的通信,agent用它与其他agent通信,agent服务器用它安全地传送agent。此外,agent对不同的服务器信任程度不一样,需要一种机制能对每个服务器有选择性地暴露agent状态的不同部分。对agent选择性地暴露的状态信息用目标服务器的密钥加密,这样目标服务器能用自己的密钥解密,从而访问相应部分的状态。

在此处,可以选择对称密钥密码算法IDEA保证数据传输的机密性。

(4)用Diffie—Hellman密钥交换算法解决密钥传输问题,确保了移动agent在传输过程中携带私钥的危险。

另外,要采用非对称密钥算法,因为移动agent在传输移动过程中随身携带私钥,这对于移动agent来说是非常危险的。这里,我们需要用椭圆曲线密钥加密算法,就可以很好的解决这个问题,其中的Diffie—Hellman密钥交换算法解决密钥传输问题,确保了移动agent在传输过程中携带私钥的危险。同时,也能很好地保护数据的机密性等。目前椭圆曲线的研究理论已经很成熟,但是目前由于技术进口的限制,如java的安全性中就没有这种算法,需要选择第三方密码包来完成这个加密。一般常用就是bouncycastle第三方密码包,但是这里的ECC提供了190位的密钥,需要很长时间去完成去进行加密,所以以后工作中需要对该算法进行改进,以减少加密的时间。

3 结论

通过上述数据加密算法对移动agent通信中的应用可以很好的保护了移动agent在传输过程中的数据安全问题,但是这仅仅是对移动agent传输过程中安全性一个方面的保证。以上的观点只能在某一个层面很好的保护agent的安全性。移动agent的安全性问题是一个很复杂的问题,它需要考虑到很多方面,但是应用数据加密技术来确保他的安全性是一个很重要的技术手段。

参考文献

[1]冯登国.计算机通信网络安全.北京:清华大学出版社,2001

[2]卢开澄.计算机密码学.北京:清华大学出版社,2005

[3]Salomaa A.Public-Key Cryptography.New York;Spring-Verlag,1990

[4]Man Young Rhce.Cryptography and Secure Communication.McGraw-Hill Book Co.BERLIN,1994

[5]Andrew S T.Cpmputer Networks(3ed.).Pretice-Hall,1996

[6]IBMAglet.http://www.trl.ibm.com/aglets/

[7]毛新军.面向主体的软件开发.北京:清华大学出版社,2005

[8]Secure in mobile agent systems.http://mole.information.uni-stutt-gart.de/secure

[9]Project JXTA,http://www.jxta.org/

[10]刘大有等.Agent研究现状与发展趋势.软件学报,2000;11(3):315—321,

移动Agent 篇8

随着网络技术的迅速发展和普及, 电子商务也发展得越来越快, 人们对它的要求也越来越高。目前普遍存在的电子商务形式是第一代电子商务, 它有很多的缺陷, 与人们日常购买方式存在很大的差距。首先, 人们获得的各种信息仅仅是一种电子目录, 缺乏真实感, 而且对海量的信息作比较也是十分困难的;其次, 搜寻信息, 比较决定, 乃至最终的付款交易都需要人为参与, 这么多繁琐的步骤给消费者带来很多的不便。智能Agent是能为用户执行特定的任务, 具有一定程度的智能允许自主执行的部分任务, 并以一种合适的方式与环境相互作用的软件程序, 它具有响应性、自主性和主动性等特点[1]。因此, 将Agent技术与目前的电子商务相结合是一种发展趋势, 这即被称为第二代电子商务。

1 移动Agent技术特点

移动Agent可以看成是一个可以在网络上不同主机之间迁移的计算机程序, 该程序能够自主选择迁移的时机和目的地, 暂停在本主机的运行, 封装代码、数据、执行语境后迁移到另一个不同的主机上并恢复运行。

移动Agent采用的是一种新型分布式计算技术, 它与传统的Client/Server技术不同, 该计算模式不是将数据移动到计算上, 而是将计算移动到数据上。因此, 移动Agent技术具有很多自己的特点[2]:

(1) 移动性:移动Agent不依赖于操作系统和平台, 可以从一台机器移动到另一台机器上。Agent通过移动到需要处理的信息源处, 激活本地资源, 从而减少中间数据在网上传输, 节省了带宽、缩小了延迟, 即使网络连接中断, 移动Agent仍可以继续执行。

(2) 自主性:移动Agent具有局部的独立于自身的知识和知识处理方法, 对遇到的事件能自主采取行动, 具有控制自身行为的能力。

(3) 反应性:移动Agent可以对环境变化做出感知和应变, 它可以根据将要执行的任务和当前网络状态采取行动, 即发送多少Agent, 发送到哪里, 这些Agent是迁移还是保持静态, 这些都可以随着网络的变化而变化[3]。

(4) 异步操作性:移动Agent可以独立于用户和其它的Agent执行自己的操作。它可以从某一站点被发送出去, 到达另一站点后激活, 异步自主地操作。

(5) 协作性:移动Agent具有异步求解和管理通讯的能力。它可以通过一系列移动或发送子Agent到其它机器上与当地静态Agent和远程资源连接, 实现分布任务的动态并进行计算。

(6) 学习能力:移动Agent具有利用已获得的环境信息, 根据需要来调整修改自己行为的能力。

2 移动Agent关键技术的实现

在IBMAglets平台下, Agent的关键技术包括:路线迁移、分派和召回。其中, 路线迁移是一种主动迁移, Agent按照预先定义好的路线进行主机迁移;分派和召回都属于被动迁移, 前者是指Agent被分派到某一指定主机上, 后者是被分派出去Agent又被重新召回到原来的主机上[4]。

2.1 路线迁移

Aglet系统在扩展API Agletx部分定义了三个实用的路线类:Simple Itinerary, SeqPlanItinerary和slave Itinerary。本系统采用的是Simple Itinerary, 它定义了一个目的地和消息对, 当移动Agent到达某一目的地后, 自动地将封闭在消息中的任务发送自身。下面这段代码实现了商家代理根据不同消息指令来完成不同路线迁移的情况。

2.2 分派

无论是商品搜索过程, 还是协商过程, 为了提高系统的处理效率, 顾客代理都将n个顾客子代理分派到n台指定的商家服务器进行搜索和协商工作。此时, 系统采用分派方式使顾客子代理迁移到指定商家服务器。首先, 顾客代理先将子代理分派到指定的商家服务器上:

2.3 召回

某些时候 (例如:搜索商品超时时) 系统需要召回由本地服务器分派出去的Aglet, 其实现过程如下:

3 结语

移动agent技术引入电子商务领域, 可以为顾客和商家提供更加便捷的服务, 节省带宽减轻负荷, 提高电子商务的信息检索速度, 实现多Agent的协同工作和电子商务的智能化协商机制。移动Agent技术将使电子商务更好地适应网络环境的多样性和多态性, 使电子商务进入智能化时代, 在各类的电子商务模式 (B2B, B2C, C2C) 中都会发挥重要作用。

参考文献

[1]龚尚福.电子商务原理及应用[M].西安:西安交通大学出版社, 2003.

[2]张云勇.刘锦德.移动Agent技术[M].北京:清华大学出版社, 2003.

[3]李容.基于移动AGENT的电子商务平台模型研究[J].煤炭技术, 2010, (5) .

移动Agent 篇9

许多移动Agent被开发出来,但是移动Agent的通用程序接口(API)却各不一样,这种繁杂的APIs使得开发出来的移动Agen无法迁移到其他不停的移动Agent平台上运行。本文认为平台上的互操作对于移动Agent是必须的,并且以后也将成为一个通用的技术。

1 AGENT互操作

移动Agent技术研究相关的各研究机构和企业,为了加快移动Agent技术与应用的发展,形成了一些标准化组织,旨在为不同的制造商开发的Agent系统提供互操作支持,并为未来的Agent系统开发建立一个公共的规范。目前使用最广泛的两个移动标准为MASIF和FIPA,当然也还有一些其他学者所提出的Agent系统。

考虑到移动Agent标准,一个是MASIF(Mobile Agent System Interoperability Facilities)是由对象管理组织(OMG)创建,其中包括基本定义和(MAFFinder,命名通用的界面创建的文档服务,MAFAgentSystem,管理任务)一些通用接口。基于MASIF标准可以解决移动互操作性,但是这个只能解决基于MASIF标准的互操作。还有一些既不基于移动Agent标准接口和标准的移动Agent通讯机制。例如,多个AMs都是用这个标准,如Aglets,Grasshopper,SMART和SOMA等。

另一方面,是基于FIPA(IEEE Foundation for Intelligent Physical Agents)[1]标准的移动Agent标准,IEEE组织定义了Agent管理和通信的标准支持:一个基本的美联社,一个特定的Agent命名系统,特定的信息结构的Agent通信语言(ACL)的,等等。目前的标准涵盖了通信领域,并在较低的程度上,中间件领域(虽然Agent接口标准没有定义)。

2 移动Agent互操作架构

前一节中,我们讨论了几个标准,MASIF和FIPA标准都未定义完全互操作的迁移框架,KALONG[4]与AOS[5]虽然为迁模型,但是并未考虑到主要的Agent标准。

因此,我们提出一种新的模型,这种模型是基于主要Agent标准的迁移模型,这种迁移模型具有以下几个优点:1)基于FIPA标准;2)独立于Agent中间件;3)处于应用层;4)支持不同迁移策略;5)迁移类型是独立的;6)满足以后要求的可扩展性。

要实现以上标准,必须完全实现迁移模型,就不应该去考虑低等级的迁移服务。本文选用的是广泛使用的FIPA标准。可以使得与所有不同但是基于FIPA标准的Agent中间件通讯。也使得模型独立于任何Agent中间件,同时必须要提供互操作在移动Agen环境中。将来,模型必须执行在应用层上,这样可以最小的,同时避免修改已经存在的Agent和Agent接口。使得各种Agent之间可以并存。这也比较容易集成在已经存在的Agent系统中。最终,模型能灵活的提供不同的迁移策略与机制,满足将来的需要。

如图1显示了抽象移动Agent系统(AMAS),图中我们可以看到外部Agent系统和本地Agent在两个不同的环境中。典型的移动A-gent实现过程包括三层:移动Agent本身,MAS的API和网络。我们的添加的新的三层为:从外部MAS的API到ACI的转化,从ACI到本地API的转化和通用通讯(ACL)和发现服务。

2.1 抽象Agent通用接口(ACI)

抽象Agent接口包括两大部分,一部分是针对Agent本身的接口,另一部分为对应Agent平台的接口。对于Agent平台接口可以参考JIMAP[2]互操作框架。

Agent接口的基本属性与方法包括:Agent标示符(AID),Agent状态,消息发送,适配层对象等。

抽象Agent的适配层对象提交的代理接口的机制是可以使用代理访问Agent中间件接口,它提供了Agent中间件的开发实施的方法。因此,每个Agent中间件负责对这一分配使用“setContext()”方法接口的实现。并使用getAMS()获取平台对象,该中间件接口定义如下:

对应的数据包括唯一标示符(AID)和ACL,ACL主要包括,发送AID,接受AID,语言,代码,本体,传输协议等数据定义如下:

2.2 迁移模型

如图2,模型所支持的通用迁移过程,从应用层来看,迁移可以分为以下几个步骤:1)移动Agent1与本地MA联系,请求迁移;2)本地MA暂停Agent1的执行,保留状态,MA通知ACI中间件发送ACL消息给远程的MA协商是否可以迁移;3)远程AMS通过ACI接受ACL消息,并发送给本地MA;4)本地MA同意迁移实施迁移过程,返回ACL消息;5)MA选择真实需要迁移的Agent,Agent传输(Agent代码+数据+状态),选择操作;6)远程MA创建并注册新的Agent使用Agent传输过来的Agent代码+数据+状态;7)本地MA删除本地Agent,并请求远程MA开始执行Agent;8)远程MA启动新的远程Agent1’,并通知迁移过程成功。

迁移模型所对应的实现基本架构,我们使用集成迁移平台架构(IPMA)[3],主要包括三部分:服务注册,主迁移协议,子迁移协议。

服务注册:移动agent迁移中所有服务的提供均由AMM提供。在FIPA标准中,所服务都注册在目录服务中,目录服务也称为黄页服务在FIPA标准。

发布服务注册的两个原因:1)支持本地迁移的服务;2)使得本地和远程迁移的架构。

主迁移协议(MMP):主迁移协议管理整个迁移过程,包括了主要的agent合作协议,基本传输协议,子传输序列。当本地MA接收到一个Agent要迁移的ACL消息后,具体的本体约定了Agent和MA之间的交互的关系,这里每个步骤都需要子传输序列的许可。这一子传输序列可以提供安全机制,并提供几种Agent传输机制。

子迁移协议:子迁移协议包括了三个步骤:预迁移,迁移,迁移后。根据这些步骤可以定制我们需要的迁移策略,授权协议,资源协商。

3 结论

在过去几年中,大量的Agent系统被开发出来。因此考虑到目前的技术融合趋势,移动Agent互操作已经成为主要的关注问题。本文给出的互操作模型以抽象层为基础,结合了当前主要的Agent标准FIPA,使得对原有移动Agent操作平台在不需要改变原有架构的情况下,更加高效地构建分布式环境中的开放,动态的移动Agent系统。

参考文献

[1]FIPA,FIPA agent management specification[EB/OL].http://www.fipa.org/specs/fipa00023/index.html,2004.

[2]Fortino G,Garro A,Russo W.Achieving mobile agent systems interoperability through software layering.Information and Software Technology,2008,50(4):322-341.

[3]Cucurull J,Marti R,Navarro-Arribas G,et al.Computer Communications,2009,32(4):712-729.

[4]Noordende G,Overeinder B,Timmer R,et al.A common base for building secure mobile agent middleware systems,in:Proceedings of the International Multiconference on Computer Science and Information Technology,Wisla,Poland,2007.

上一篇:法学实验班下一篇:护理安全因素