logo资料库

jade安装指导.pdf

第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
资料共16页,剩余部分请下载后查看
导师布置的第一个任务:jade安装,跑实例。(一周时间)            jade(Java  Agent  DEvelopment  framework)是基于java语言的开发 agent的工作框架。也可以说是用java开发的一个开发agent的软件;或者 说是用于开发符合FIPA规范的多agent系统的平台。           第一步安装,到官方网站下载最新版本的jade(目前是 3.5),在安 装jade前要先安装好jsk。              1、文件结构:解压后jadeAll3.5 文件夹下有四个文件夹分别是JADE -bin-3.5(存放jade的核心部件)、JADE‐ doc-3.5(存放jade的说明文 档)、JADE‐examples-3.5(存放jade的实例源代码)、JADE‐src-3.5(存 放资源文  件,这个我还没搞清楚)              2、classpath设置:要包含在JADE‐BIN‐3.5\jade\lib\目录下有http、 iiop、jade、jadeTools和commons-codec-1.3 这五个文件。如我自己设 置的classpath为例.           D:\Program  Files\Java\jadeAll3.5\JADE‐bin‐3.5\jade\lib\http.jar;D:\Program  Files\Java\jadeAll3.5\JADE‐bin‐3.5\jade\lib\iiop.jar;D:\Program  Files\Java\jadeAll3.5\JADE‐bin‐3.5\jade\lib\jade.jar;D:\Program  Files\Java\jadeAll3.5\JADE‐bin‐3.5\jade\lib\jadeTools.jar;D:\Program  Files\Java\jadeAll3.5\JADE‐bin‐3.5\jade\lib\comons‐codec\commons‐codec ‐1.3.jar             注:classpath就是让系统自己能找到jade的程序。             这样jade就基本安装好了。 
         第二步测试,先用最简单的命令,如在命令行里输入:java jade.Boot  ‐gui (注意大小写)  如果跳出jade的图形界面说明你安装正确。           再试试看稍复杂点的实例如HelloWorld。用java编译类HelloWorld           import.jade.core.Agent;           public class Helloworld extendAgent{                protected void setup(){                     system.out.println("hello world,i am an agent.");                }           }           用命令行编译:javac HelloWorld.java                  执行:java jade.Boot ‐gui jack:HelloWorld           成功的话弹出的jade图形窗口,里面会多出一个名为jack的agent。 此实例成功运行。注:新建一个agent不需要用代码实现,只须输入命 令时候带上参数。jade-examples-3.5 文件夹里有好多实例,初学者可 以都试试看。          本 以 为 没 问 题 了 , 到 导 师 那 演 示 的 时 候 却 报 错 , error : jade.net.sockexception            整了半天没调通,后来回来一调就通。想了想,在寝室一直接着网 线,肯定是没接网的问题。  可以在jade文件夹里的某个class文件里修改。问题正在解决中。          总结:一定记住jade是java开发的,任何问题都可以在他的class文件
里找到症结。            下一步,一周时间搞清jade的所有实例,如语法、功能等。分析jade 的组成class文件,达到修改调试的问题都能解决。导师分配的mobile模 块方向,要进一步了解。          jade官方网站http://jade.tilab.com/   里面的问答机制可以好好利用    由于XX的课题是关于分布式的成员关系管理协议的实现,老大让调研JADE,在这个平台上实 现。      JADE (Java Agent Development Framework)是一个完全由Java语言开发的一个软件框架,并且 符合FIPA规范。是一个中间件,其主要作用是    It  simplifies  the  implementation  of  multi‐agent  systems  through  a  middle‐ware  that  complies  with the FIPA specifications and through a set of graphical tools that supports the debugging and  deployment  phases.  The  agent  platform  can  be  distributed  across  machines  (which  not  even  need to share the same OS) and the configuration can be controlled via a remote GUI.      1. JADE平台利用容器去容纳Agent(也叫智能体..)。一个平台可以有多个容器,并且这些容器 可以在不同的主机上(当然也可以用于移动设备上如手  机)。在一个JADE平台中,有且仅有 一个叫做主容器的容器。当其他的容器启动时,他们必须在主容器中注册。一旦一个智能体 知道网络上另一个智能体的名  字,它们便可以进行透明的通信,而不需要了解实际的位置。      2.  主容器除了可以提供其他一般容器注册功能之外,它还包含了两个特殊的智能体。 AMS(Agent Management System)提供一些智能体管理功能。例如:它给智能体提供命名服务, 并且它也可以从容器中创建和删除智能体。DF(Directory Facilitator)提供了黄页功能。当一个 智能体需要利用其他智能体提供的服务时,它便可以到DF中去查找。        JADE的安装很简单,从官网下好JADE包(我下的是V3.7),共有 4  个包,都解压完毕。再去设 置 下 环 境 变 量 , 把JADE ‐bin‐3.7\jade\lib 下 的 4 个 JAR 文 件 和JADE ‐bin‐3.7\jade\lib  \commons‐codec下的那个JAR文件的地址加到环境变量中就OK了。可在CMD上敲    java jade.Boot ‐gui    命令测试,如果出现JADE的图形管理界面就说明配置好了。        官 网( API(http://jade.tilab.com/doc/api/index.html)    文章分类:Java编程 http://jade.tilab.com/) 上 有 一 些 学 习 资 料 以 及
最近用 JADE 去模拟一个基于 gossip 的分布式系统,为了实验师兄设计的 p2p 管理协议。规模大概在 1000 个 Agent 左右,其实每台 server 跑个 2000 个也不 成问题,但花了不少开销在同步和中心管理上,最终每台 server 只跑了 500 个。 用了之后,感觉 JADE 确实比较强大,我只用了其中很少一部分东西。 下面是我的一些理解和应用: 1、每个 JADE 平台可以容纳不同的容器(我用的时候,一个容器对应了一台 server),但只准有一个主容器,容器中多个 Agent(可以根据 每个容器的 AMS 或者 DF 去查询其中的各个 Agent,但好像只有 AID 的信息).当然,对于我们来 说,各容器中的确 Agent 是透明,不用知道他们是哪 的(ip)。 2、每个 Agent 其实是个线程,JADE 把线程的方法重新封装了一下,比如建立 Agent 的方法 setup()其实对应的是 start(),doDelete()对应 destroy()等。每个 Agent 有一个 AID,用于标识不同的个体(但不能通地过 AID 取到 Agent 实 体)。 每个 Agent 建立时都会去 AMS(Agent Manage System)中去注册。 每个分布式系统(网络上的节点)继承了 Agent,添加了更多需要用到的属性(如 节点的 ID,邻居节点信息等) 3、可以对 Agent 添加不同的行为,简单行为/循环行为/定时行为等,我主要用 了后两者,循环行为用来监听接收消息(ACLMessage,用 的 blockReceive()方法, 用 receive()可能开销更大一些),定时行为用来定时更新操作(更新节点信息), 每个定时行为又重新封装成了 节点的子线程,避免与监听消息冲突。 4、JADE 消息机制比较强大,每个 Agent 有一个发送队列和接收队列,可以发送 字符串,也可以发可序列化对象(可以是比较复杂的对象,但要保 证复杂对象的 所有属性都是可序列化的)。消息体本身有发送者(AID)、接收者(AID)、语言(可 以自己设定,根据不同语言对应不同的语义)、内容、策 略等。利用 Agent 中的 send()方法进行发送,receive()或 blockReceived()方法进行接收。 由于无法根据 AID 取到 Agent 的实体,我用了比较笨的方法,在主容器中建了一 个 MAP,保存每个节点的副本,每个节点定期发送自己的副本到主 容器进行更 新(这个开销就比较大了,暂时没想到比较好的方法),某节点 A 要用到其他节点 B 时,要么直接给 B 发消息请求信息,要么向主容器请求。   第一次运行 JADE 平台 JADE 是多 agent 开发框架,遵循 fipa 规范,他提供了基本的命名服务,黄业服 务,通讯机制等,可以有效地与其它 java 开发平台和技术集成。
今天第一次运行 jade3.4,并成功执行一个最简单的 helloworld。使用步骤记录 如下:平台为 window2003。jdk 版本为 1.5。假设现在 jdk 已经安装并且配置成 功。 1。下载jade,下载站点为http://jade.tilab.com/。假设下载文件为 JADE-all-3[1].4.zip 2。将文件解压,解压后,平台必须运行的 bin 目录下的文件我们都放在在 d:\jade\下。当前目录结构为 D:\jade\lib \demo \lisence \changelog \README 设置环境变量在 CLASSPATH 中添加 D:\jade\lib\jade.jar;D:\jade\lib\iiop.jar;D: \jade\lib\commons-codec\commons-codec-1.3.jar;D:\jade\lib\javaTools.j ar;D:\jade\lib\http.jar 3.测试主容器运行是否正常,在命令行下输入命令 java jade.Boot -gui 如果设置无误,会弹出 jade rma 主容器运行界面。关掉程序 4。写一个 helloworld 程序,这个程序当然可以用任何一个文本编辑器来写,然 后用命令编译,我们为了今后开发方便,将 jade 平台与 netbeans 平台绑定起 来。运行 netbeans 平台,添加库,添加库德步骤如下运行菜单 工具--〉库管 理器,点新建库,然后输入库名,不妨设为 jade,然后点 添加 jar 文件,将 classpath 中的几个 jar 文件都添加进来。 5。在 netbeans 中新建一个常规项目,程序内容如下: import jade.core.*; public class HelloWorld extends Agent{ public void setup(){ System.out.println("Agent Started: Hello World!"); System.out.println("-----About Me:-----"); System.out.println("My local name is:"+getLocalName()); System.out.println("My globally unique name is:"+getName() ); System.out.println("-----About Here:-----"); Location l = here(); System.out.println("I am running in a location called:"+l.getName()); System.out.println("Which is identified uniquely as:"+l.getID()); System.out.println("And is contactable at:"+l.getAddress()); System.out.println("Using the protocol:"+l.getProtocol()); } } 这时有错误提示,说明 jade。core 库并未找到,需要在工程窗口中,单击库 的 右键,将我们前面加入的 jade 库添加近来。 然后设置运行命令,打开工程属性窗口,单击运行,在主类编辑框中输入
jade.Boot,在运行参数编辑框中输入 -gui hello:jadetest.HelloWorldAgent。 确定返回 这时直接点 netbeans 工具条上的运行按钮,程序运行,会弹出 jade rma 运行窗 口,并在 netbeans 下面的输出框中打印出结果信息。 如果运行到这一步,则一切 ok 了     使用 JADE 平台进行智能 体开发 级别: 初级 邓 学 (kendung@gmail.com), 软件工程师 2006 年 7 月 03 日 文档选项 未显示需要 JavaScript 的文档选项 打印 本页 作 为一名软件开发人员,我相信大家都对面向对象 技术有个比较深刻的认识。面向对象技术的确为提高 软件开发效率做出了巨大的贡献。但是在我们的开发 过程中,面 向对象也暴露了一些不足,其中最主要 的不足可以归纳为:面向对象技术并不是对现实世界 的最贴切的模拟。既然出现了不足,那么在这种特定 的背景下,必然会出 现一种软件开发理论和技术来 解决软件开发中的问题。这就是智能体 Agent。本文首先介绍一下智能体的基 本概念,然后开发了一个应用程序演示了利用智能体 开发平台 JADE 来开发多 智能体系统的过程。 将此 页作 为电 子邮 件发 送 智能体简介 所谓智能体是指驻留在某一环境下能够自主(autonomous)﹑灵活(flexible) 地执行动作以满足设计目标的行为实体。针对上述定义,下面对智能体的概念 作进一步分析: 1. 智能体驻留在环境中并需要与环境进行交互 任何智能体都不是孤立和封闭的,它驻留在一定的环境之中,需要与环境持续 不断地进行交互。图 1 给出了智能体与环境交互的抽象视图。 图 1
2. 智能体是行为实体 智能体是一个行为实体,它具有一组动作并能执行这些动作,是动作执行的决 策者和实施者。智能体的动作反应了其所具有的能力,这种能力主要体现在: 智能体动作的实施有助于实现其设计目标并对其所驻留的环境产生影响。 3. 智能体能够自主地实施行为 智能体具有属于其自身的计算资源和局部于自身的行为控制机制,能在没有人 类或其他智能体的直接干涉和指导的情况下运行,并能根据其内部状态和感知 到的环境输入决定自身的状态,控制自身的行为。 4. 智能体有其设计目标 系统中的每个智能体都有其特定的设计目标。在其生命周期和持续运行过程中 智能体根据其设计目标和感知到的环境输入自主地决定自身行为。所以智能体 的设计目标对其行为决策产生直接的影响。 , 在我们的日常现实生活中,有许多控制系统都可以视为智能体。例如,房间恒 温调控系统中的恒温调节器就是一个智能体。恒温调节器智能体的设计目标是 要 将房间的温度维持在用户设定的范围。它驻留于物理环境(房间)之中,具 有温度感应器以感知环境输入(房间的温度),并能对感知到的房间温度作出 适时反应, 从而影响所处的环境(调高或者降低房间的温度)。 初识 JADE 回页首 JADE (Java Agent Development Framework)是一个完全由 Java 语言开发的一 中间件,极大地简化了我们程序员 个软件框架,并且符合 FIPA 规范。通过这个
开发多智能体系统。JADE 主要包括以下几个组成部分: • 智能体赖以生存的一个运行时环境 • • 一系列图形工具,帮助用户管理和监控运行时智能体的状态 程序员用来开发智能体应用的一个运行时库 安装 在进行一系列的开发之前,我们需要先下载并且安装JADE环境。您可以从JADE 的官方网站http://jade.tilab.com/ 上下载JADE的最新版本,目前为 3.4 发布 版本。一旦你下载完毕,请解压缩安装包,把其中lib目录下的 4 个jar文件放 入 您的ClassPath系统环境变量中。打开命令行,输入Java jade.Boot -gui, 您将看 到如图 2 所示的图形化用户界面。 图 2 JADE 基本概念 1. JADE 平台利用容器去容纳智能体。一个平台可以有多个容器,并且这些容 器可以在不同的主机上。在一个 JADE 平台中,有且仅有一个叫做主容器的容器。 当 其他的容器启动时,他们必须在主容器中注册。图 3 显示了在网络中,存在 两个不同的 JADE 平 台。其中一个平台由 3 个容器构成,另一个平台由 1 个容器 构成。 JADE 智能体在平台上用独一无二的名字来标识。一旦一个智能体知道 网 络上另一个智能体的名字,它们便可以进行透明的通信,而不需要了解实际 的位置 。
分享到:
收藏