美文网首页
第二章 JADE学习 - 了解一些主要包

第二章 JADE学习 - 了解一些主要包

作者: 2010jing | 来源:发表于2020-05-10 00:28 被阅读0次

jade.core

提供了一个简单的消息传递系统,该系统具有多种传输协议(同一Java虚拟机中的Java事件,属于同一JADE平台的Java虚拟机之间的RMI,以及用于与不同代理平台进行通信的标准IIOP协议)和多线程执行软件代理的环境,具有抢先的代理间调度和协作的代理内调度。

其包含JADE系统的微内核。该软件包中包含三个主要内容:

  • Agent class : 具有基本的消息传递和行为调度功能
  • Distributed objects: 运行时环境以支持代理平台
  • pre-built behaviours:基本任务构造需求

jade.core.behaviours

jade.core的子软件包,其中包含用于实现基本代理行为的类。 JADE代理使用协作的非抢先式调度在单个Java线程中调度其行为。

jade.lang.acl

含对FIPA代理通信语言(ACL)的支持,包括ACLMessage类,解析器,编码器和用于表示ACL消息模板的帮助类。

jade.content

支持用户根据给定的内容语言和本体创建和处理复杂的内容表达的类。

当代理A与另一个代理B通信时,一定数量的信息 I 会通过ACL消息从A传输到B。 在ACL消息中,I 表示为与适当的内容语言(例如SL)一致并以适当的格式(例如字符串)编码的内容表达式。 A和B都有自己的内部表示方式(可能不同)。考虑到代理程序内部表示一条信息的方式必须允许轻松处理该条信息,因此很显然, ACL内容表达式不适用于代理内部。

jade.domain

含FIPA特定的代理和本体。此软件包中包含标准的FIPA系统代理实施:

  • AMS : 代理程序来管理平台代理程序的代理程序平台生命周期,并保存有关它们的白页信息。
  • DF : 代理以保留有关代理的黄页信息,从而允许通过DF联合的多域应用程序。

jade.gui

包含了一套通用的创建图形用户界面(GUIs)以显示和编辑AgentID,Agent描述,ACL消息(ACLMessages)的类。

jade.proto

包含FIPA标准协议的角色行为。对于FIPA规范规定的每个交互协议,代理可以扮演两个角色:

  • Initiator :代理根据一个特定的交互协议与一个或多个其他代理联系以开始新的对话。
  • Responder : 响应从其他代理收到的消息,该代理遵循特定的交互协议进行新的对话。

jade.wrapper

该包与jade.core.Profile和jade.core.Runtime类一起提供对JADE进程内接口的支持,该接口允许外部Java应用程序将JADE用作一种库并从应用程序内部启动JADE Runtime。 该软件包的类包装了JADE平台的主要参与者,并允许与他们互动,尤其是控制他们的生命周期。

Agent类

第一章, 我们已经先创建了一个Agent, 现在我们来进一步了解一下这个类。

package cn.bcrab.agent;

import jade.core.Agent;

public class HelloWorldAgent extends Agent {
    protected void setup() {
        System.out.println("Hello world! I'm an agent!");
        System.out.println("My local name is " + getAID().getLocalName());
        System.out.println("My GUID is " + getAID().getName());
        System.out.println("My addresses are " + String.join(",", getAID().getAddressesArray()));
        this.takeDown();
    }

    public void takeDown(){
        System.out.println("Agent takedown!");
    }
}

一个新agent的产生过程:

1 执行了agent的构造器,赋予agent一个ID(见jade.core.AID类)
2 注册到AMS上,处于激活状态
3 最终执行setup()方法。

  • 通过getAID()得到agent的标识。
  • 任何行为都可以调用Agent.doDelete()方法来停止agent执行。
  • 当agent准备转到删除状态,即它将要被销毁,就要执行Agent.takeDown()方法。
  • 程序员可以通过重载takeDown()方法来实现任何必须的清除行动。当调用这个方法时,agent仍然是注册到AMS上的,因此可以发送消息到其他的agent,但是只要在takeDown()方法完成之后,agent就会被注销,它的线程也会被销毁。

相关代码

https://gitee.com/2010jing/JADE-tutorial/tree/tutorial02/


reference

相关文章

  • 第二章 JADE学习 - 了解一些主要包

    jade.core 提供了一个简单的消息传递系统,该系统具有多种传输协议(同一Java虚拟机中的Java事件,属于...

  • jade模板引擎的单独使用方法

    主要学习jade文件的单独使用方法。 安装jade模块 创建jade文件 jade中数据填充 编译 例子:创建一个...

  • Jade的安装教程

    安装Jade前 , 请先装好JDK 1. 下载包Jade包 1.1 打开官网:http://jade.tilab....

  • Day6 学习R包

    学习心得 今天主要学习的是R包,R包对于生信而言是非常重要的,主要包括安装和加载R包,同时了解了dplyr这个包中...

  • Nodejs中的模板引擎之jade2

    上节中我们讲了一些jade的基本用法,这一节,我们继续补充jade的一些用法。 jade可以自动识别单双标签,看如...

  • Express框架 学习日记

    这个是page包的依赖;里面主要是生成的各个中间件 修改jade为ejs 先npm install 安装这个ejs...

  • Node端 模板尤物——swig

    前端日益繁荣,模板也如雨后春笋多了起来 个人了解的模板有,ejs swig jade...(主要我知道的就这几个^...

  • Jade

    Jade ware, even if it is made of natural jade. Jade ware ...

  • node知识点

    如何在jade中解析变量 在jade中做运算 jade解析style class 在jade中解析js 在jade...

  • jade操作HTML中的js

    如何在jade中解析变量 js部分 jade部分 在jade中做运算 js部分 jade部分 jade解析styl...

网友评论

      本文标题:第二章 JADE学习 - 了解一些主要包

      本文链接:https://www.haomeiwen.com/subject/ogotnhtx.html