JADE平台入门 相关介绍: 智能体简介 环境配置 Eclipse下开发:

JADE(Java Agent Development Framework,Java智能体开发框架)
用途:
Java智能体开发框架

开发者:
TILAB

主要功能:
AMS、DF、ACC
使用效果:
实现特定的功能模块

简介:
JADE是基于Java 语言的Agent开发框架,是由TILAB 开发的开放源代码的自由软件。JADE是多Agent开发框架,遵循FIPA规范,它提供了基本的命名服务,黄业服务,通讯机制等,可以有效地与其它Java开发平台和技术集成。 JADE架构适应性很强,不仅可以在受限资源环境中运行,而且与其他复杂架构集成到一起,比如:Net和Java EE。它包括一个Agent赖以生存的运行环境,开发Agent应用的类库和用来调试和配置的一套图形化的工具,简化了一个多Agent系统的开发过程。 JADE主要包括以下几个组成部分:
智能体赖以生存的一个运行时环境
程序员用来开发智能体应用的一个运行时库
一系列图形工具,帮助用户管理和监控运行时智能体的状态
功能:
JADE为多Agent系统提供了以下功能:
(l)Agent管理系统(Agent Management System,简称AMS),负责控制平台内Agent的活动、 生存周期及外部应用程序与平台的交互,规范Agent在平台上用独一无二的名字来标识;
(2)目录服务器(Dilectoly Facilitatol,简称DF),负责对平台内的Agent提供黄页服务,注册服务类型以供查找;
(3)消息传送系统,也称为Agent交流通道(Agent Communication Channel,简称ACC),控制平台内或不同平台之间的消息传输、消息编码、消息解析等。
JADE定义了Agentclass作为其他Agent的父类,其他Agent均继承自Agentclass。Agentclass中定义了setup方法,用于初始化Agent;定义了takeDown方法,用于结束Agent的运行;定义了doDelete方法,用于终止Agent;定义了Behaviour类以及addBehaviour方法用于添加Agent任务。为了保证Agent的分布式计算和协作机制,JADE构建行为池(Behaviour Pool)来存储所有添加的Behaviour,这些Behaviour呈队列排列,按照进入行为池的顺序依次被调用。Behaviour方法被调用时,首先执行Action方法,然后判断Done函数返回的布尔值,如果为真则将Behaviour移出行为池,继续下一个Behaviour的执行。JADE提供了这样一个基类,其他Agent所需要做的是重载setup,action,done,takeDown 这几个方法来实现特定的功能模块

JADE架构模型:

JADE平台入门
相关介绍:
智能体简介
环境配置
Eclipse下开发:

JADE平台入门
相关介绍:
智能体简介
环境配置
Eclipse下开发:

JADE功能模型:
JADE提供了在固定和移动环境中实施分布式点对点应用的基本服务。
允许Agent动态的发现其他Agent以及与其他Agent通讯。Agent通过异步消息进行通讯,这种通讯机制可以在分布和松散耦合的环境中是通用的。Agents可以在异构环境中通信,通过名字来区分(以后的版本中发送方和接收方没有暂时的依赖关系)。
通过认证和为Agents分配权限实现安全机制。
消息结构使用ACL语言。为了适应复杂对话,JADE提供了一系列执行特定人物的交互性为的典型框架,比如协商,拍卖,任务代理等(用Java抽象类来实现)。消息内容可以在xml和rdf格式间互相转换。
灵活性强,用Java线程实现多任务。
提供命名服务和黄页服务。
支持图形化调试和管理/监控工具。 

运行示例:

以C:jadeJADE-examples-4.4.0jadesrcexampleshello文件夹中的HelloWorldAgent.java为例
cd C:jadeJADE-examples-4.4.0jadesrcexampleshello //进入文件夹
javac -d . HelloWorldAgent.java //编译
java jade.Boot -gui myAgent:examples.hello.HelloWorldAgent //运行
//注意:myAgent是这个Agent对象的名字,可以自由指定。examples.hello表示包名,HelloWorldAgent表示类名
而那个窗口的左边的树结构下的叶节点上没有显示我们的myAgent,因为这个HelloWorldAgent.java的代码中含有doDelete();因此创建的Agent对象会自行销毁自己。如果想要在GUI管理器中看到自己所建的Agent对象,可以改HelloWorldAgent.java文件, 将doDelete();注释掉,前面加//,保存重新编译。再次使用上面的命令运行就可以在JADE Remote Agent Management GUI中看到找到叶节点上多了一个名字类似于myAgent@.../JADE的Agent,如下图:

JADE平台入门
相关介绍:
智能体简介
环境配置
Eclipse下开发:

Eclipse下开发:

Window->Preferences->Java->Build Path->User Libraries新建库,命名为jade,添加jade.jar进这个jade库里
新建工程,命名为jade,右击工程,Build Path->Configure Build Path->Libraries->Add Library->User Library,然后将jade库添加进去
在src目录下新建文件夹jadetest,然后建立类,HelloWorldAgent.java,内容如下:

package jadetest;

/**
 * ***************************************************************
 * JADE - Java Agent DEvelopment Framework is a framework to develop
 * multi-agent systems in compliance with the FIPA specifications.
 * Copyright (C) 2000 CSELT S.p.A.
 * 
 * GNU Lesser General Public License
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation,
 * version 2.1 of the License.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA  02111-1307, USA.
 * **************************************************************
 */

import jade.core.Agent;

/**
 * This example shows a minimal agent that just prints "Hallo World!" and then terminates.
 * 
 * @author Giovanni Caire - TILAB
 */
public class HelloWorldAgent extends Agent {

    protected void setup() {
        System.out.println("Hello World! My name is " + getLocalName());

        // Make this agent terminate
        // doDelete();
    }
}

右击HelloWorldAgent.java,选择Run As,选择Run Configurations,选择Java Application,点击添加,Name起名为:Run In JADE(可任意),Project名不变,Main Class起名为:jade.Boot(固定,不可改变),Argument中Program arguments起名为:-gui hello:jadetest.HelloWorldAgent(如果只想打开GUI管理器而不运行程序,则只要-gui即可),其中,hello为智能体的名字,jadetest为包名,HelloWorldAgent为类名。其他默认即可,配置完成,点击Run,运行如下:

JADE平台入门
相关介绍:
智能体简介
环境配置
Eclipse下开发:

JADE平台入门
相关介绍:
智能体简介
环境配置
Eclipse下开发:JADE平台入门
相关介绍:
智能体简介
环境配置
Eclipse下开发:

JADE平台入门
相关介绍:
智能体简介
环境配置
Eclipse下开发:

GUI管理器显示如下:

JADE平台入门
相关介绍:
智能体简介
环境配置
Eclipse下开发:

备注:其实在项目中不一定非要完全运行,而且我们一般要创建的是多个Agent。一般我们也可以把它编译为类之后,在GUI管理器这个界面的Main-Container右击选择Start New aAgent添加Agent即可。

其他类开发类似,我会不断更新...