首页 理论教育 系统开发的相关技术基础介绍

系统开发的相关技术基础介绍

时间:2023-07-18 理论教育 版权反馈
【摘要】:表6-1 Multi-agent system的CASE工具和环境在上述开发平台中,由于JADE简化了相关应用的开发,并且使用的是Java语言,因而得到广泛应用,目前,国外已经有许多公司开始使用这种平台,其应用领域已经非常广泛,因此,我们也选择这种开发平台来进行系统开发。

系统开发的相关技术基础介绍

6.1.1 开发语言及工具的选择

目前,较为主流的开发语言有C语言和Java。C语言的产生已经有近40年的历史,其功能极为强大,使用也较为广泛,UNIX系统就是采用C语言开发的。但掌握C语言的难度也很大,如果掌握不熟练,很难做出比较好的商业化程序,而且C语言在安全性能方面也表现得比较差,因此,在应用软件的开发方面,采用C语言开发可能具有一定的局限性。

Java来自Sun公司的一个称为Green的项目,最初的目的是为用户控制家用消费电子产品(如冰箱洗衣机等)而开发的一种面向对象的程序设计语言,它的最大特点是平台无关性,相比C语言来说,Java语言主要具有如下一些优点:

①简单。Java摒弃了C语言中容易引发程序错误的地方,如指针和内存管理等,并且提供了丰富的类库和大量的已经开发的项目源代码供参考;

②面向对象。C语言支持的是面向过程的程序设计,这使其在分布式的计算环境下不如Java语言;

动态。允许程序动态地装入运行过程中所需要的类,如果使用C语言,每当在类中增加一个实例变量或成员函数后,都必须对所有的子类重新编译,否则会导致程序的崩溃

④可移植。Java语言可以在任何配备了Java解释器和运行环境的任何系统中运行,跟系统的体系结构无关。

上述优点比较符合Agent的基本特征,也正是Agent开发所需要的。所以,为了与Agent开发平台进行更好地配合,我们选择了Java语言来进行基于Agent间辩论的汽配交易自动谈判系统的开发。相关的开发工具有很多,如Jbuilder、JDK等,这里主要选择目前较新并且使用较为普遍的Borland公司的Jbuilder2006来进行开发。

6.1.2 Agent开发平台介绍和选择

随着Agent的逐渐兴起和发展,各种各样有关Agent的开发平台也随之产生,并得到发展,赵书良博士对此作了相关的归纳和总结[1],具体见表6-1。

表6-1 Multi-agent system的CASE工具和环境

在上述开发平台中,由于JADE简化了相关应用的开发,并且使用的是Java语言,因而得到广泛应用,目前,国外已经有许多公司开始使用这种平台,其应用领域已经非常广泛,因此,我们也选择这种开发平台来进行系统开发。关于JADE平台的介绍,大致如下:(www.xing528.com)

JADE(Java Agent Development Framework)是一种软件开发框架或平台,主要用来进行多Agent系统的应用开发,其开发标准符合根据Agent的开发需求制定的FIPA标准,主要包括如下几个部分:

①实时的运行环境。在这个环境中,Agent能够存活,如果需要在一个给定的主机上使相关的Agent活动,必须对其进行激活;

②类库。开发者能够使用这些类库来开发其所需要的Agent;

③一些图形工具。允许开发者对正在运行的Agent进行管理和控制。

在JADE开发平台中,每个Agent运行实例所处的JADE的实时开发环境称为容器(Container),每个容器能包括一个或若干个Agent,而一系列被激活的容器称为平台(Platform)。在平台中,必须有一个特定的主容器(Main container)一直处于激活状态,其余的容器一旦启动,需要在这个主容器中注册,一般来说,最先启动的容器为主容器。

在JADE中,所有的Agent都有自己的名字,并且名字都是唯一的,如果它们知道其余的Agent的名字,就可以进行通讯,而不需要知道对方在哪个容器或平台中。AMS(Agent Management System)为其中的Agent提供了命名服务,并对其进行一定的授权, DF(Directory Facilitator)则为其中的Agent提供了黄页服务,通过这种服务,任意一个Agent都能寻找到能够提供它所需要的服务的Agent,从而完成其目标。

JADE开发平台还为远程管理提供了一个图形用户界面(GUI),以从远程对Agent的状态进行管理和控制,如远程停止或重新启动一个Agent。如果相关的Agent容器已经运行,这个界面还允许从远程主机上启动和执行相关的Agent。此外,该界面还允许对其余的符合FIPA标准的远程Agent进行控制。

通过RMA(Remote Management Agent)可以装载有关DF的图形用户界面,而且用户可以利用这个图形用户界面和DF进行交互。例如,浏览或修改已经注册了的Agent的信息,为某个Agent注册或解除注册。

开发新的Agent应当继承于JADE开发平台提供的核心类jade.core.Agent(一般为默认),而如果新的Agent包括图形用户界面的话,还应当继承另外一个核心类jade.core.Gui Agent。开发后的Agent通过setup方法在容器中注册,发布相关信息,才可以开始执行相关的行为(Beheaviour),但这些行为也必须继承于JADE开发平台所提供的行为类jade.core.beheaviour.Beheaviour,在行为执行完后,开发的Agent通过take Down方法解除注册,结束运行。

[1] Yair B.Weinberger and Jeffrey S.Rosenschein,Passive threats among agents in state oriented domains,The Sixteenth European Conference on Artificial Intelligence, Valencia,Spain,2004,pp.89-93.

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈