atpagent2.java

来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 267 行

JAVA
267
字号
/* ATPAgent2.java * $Id: ATPAgent2.java,v 2.10 1998-06-16 11:18:46+09 ht Exp $ * $Name: alpha5_1-release $ * COPYRIGHT NOTICE goes here */package com.ibm.acl.kqmlsample;import com.ibm.acl.kqml.*;import com.ibm.acl.facilitator.*;import com.ibm.acl.protocol.atp.*;import com.ibm.aglet.*;import com.ibm.aglet.event.*;import com.ibm.aglets.util.*;import java.lang.*;import java.net.URL;import java.util.*;/** * ATPAgent2 * * @version     $Name: alpha5_1-release $ $Revision: 2.10 $ $Date: 1998-06-16 11:18:46+09 $ * @author      Osamu Furusawa * @author      Hajime Tsuchitani */public class ATPAgent2 extends ATPAgent implements MobilityListener {  private static final String rcsid = "$Id: ATPAgent2.java,v 2.10 1998-06-16 11:18:46+09 ht Exp $ $Name: alpha5_1-release $";  static final long serialVersionUID = -6742199136948766355L;  private boolean debug = false;  /**   * ATP default constructor   */  public ATPAgent2() {    agentName = new String("AtpAgent2");  }  /**   * onCreation   *   * @param o   */  public void onCreation(Object o) {    super.onCreation(o);    try {      URL home = getAgletContext().getHostingURL();      String homeString = home.toString();            String tahitiPort0 = homeString.substring(homeString.lastIndexOf(":") + 1);      String tahitiPort = tahitiPort0.substring(0, tahitiPort0.indexOf("/"));      tahitiPort = tahitiPort.trim();      int tPort = new Integer(tahitiPort).intValue();//      kManager = new KQMLManager(agentName, this, tPort);      kManager = new KQMLManager(agentName, "atp", tPort, this);      debugTrace(debug);      frame = new ATPFrame(this, agentName);      frame.show();      addMobilityListener(this);    } catch (Exception ex) {      ex.printStackTrace();    }  }  public void onDispatching(MobilityEvent ev) {    onDispatching(ev.getLocation());  }  public void onReverting(MobilityEvent ev) {  }  public void onArrival(MobilityEvent ev) {    onArrival();  }  public void onArrival() {    super.onArrival();    try {      URL home = getAgletContext().getHostingURL();      String homeString = home.toString();      String tahitiPort0 = homeString.substring(homeString.lastIndexOf(":") + 1);      String tahitiPort = tahitiPort0.substring(0, tahitiPort0.indexOf("/"));      tahitiPort = tahitiPort.trim();      int tPort = new Integer(tahitiPort).intValue();      kManager.addProtocol(this, tPort);      debugTrace(debug);      kManager.restart();            frame = new ATPFrame(this, agentName);      frame.show();    } catch (Exception ex) {      ex.printStackTrace();    }  }    public void onDispatching(URL url) {    frame.dispose();    kManager.stop();  }     /**   * set KQML message. called by ATPFrame class   *   * @param performative performative's string   */  public KQML requestKQML(String performative) {        KQML kqml = new KQML();        String rw = new String(kManager.getInitialID());    kqml.setParameter(":reply-with", rw);        // lifecycle    if ("register_W".equals(performative)) {      kqml.setPerformative("register");      kqml.setParameter(":sender", agentName);      kqml.setParameter(":receiver", facilitator);      kqml.setParameter(":language", "anACL");      kqml.setParameter(":ontology", "whitepages");      kqml.setContent("(:name " + agentName + "\n" +		        " :url " + localHost + ")");    } else if ("unregister_W".equals(performative)) {      kqml.setPerformative("unregister");      kqml.setParameter(":sender", localHost);      kqml.setParameter(":receiver", facilitator);      kqml.setParameter(":language", "anACL");      kqml.setParameter(":ontology", "whitepages");      kqml.setContent("(:name " + agentName + 		      "\n:registration_number " +  whitepagesID + ")");    } else if ("ask-one_W".equals(performative)) {      kqml.setPerformative("ask-one");      kqml.setParameter(":sender", agentName);      kqml.setParameter(":receiver", facilitator);      kqml.setParameter(":language", "anACL");      kqml.setParameter(":ontology", "whitepages");      kqml.setContent("(:name AtpAgent1 :protocol ?p)");            // yellowpages    } else if ("insert_Y".equals(performative)) {      kqml.setPerformative("insert");      kqml.setParameter(":sender", agentName);      kqml.setParameter(":receiver", facilitator);      kqml.setParameter(":language", "anACL");      kqml.setParameter(":ontology", "yellowpages");      String content = new String(				  "(:providerName \"" + agentName +				  "'s pet shop\""              +"\n"+				  ":category petShop "         +"\n"+				  ":subCategory dog "          +"\n"+				  ":class PetShopAgent "       +"\n"+				  ":name " + agentName         +"\n"+				  ":description \"dog only\" " +"\n"+				  ":ontology shop)");      kqml.setContent(content);    } else if ("delete-one_Y".equals(performative)) {      kqml.setPerformative("delete-one");      kqml.setParameter(":sender", agentName);      kqml.setParameter(":receiver", facilitator);      kqml.setParameter(":language", "anACL");      kqml.setParameter(":ontology", "yellowpages");      String content = new String(				  "(:category petShop "   +"\n"+				  ":subCategory dog "     +"\n"+				  ":class PetShopAgent "  +"\n"+				  ":name " + agentName    +"\n"+				  ":registeredID " + yellowpagesID + ")");      kqml.setContent(content);    } else if ("ask-all_Y".equals(performative)) {      kqml.setPerformative("ask-all");      kqml.setParameter(":sender", agentName);      kqml.setParameter(":receiver", facilitator);      kqml.setParameter(":language", "anACL");      kqml.setParameter(":ontology", "yellowpages");      String content = new String(				  "(:category petShop "  +"\n"+				  ":subCategory dog "    +"\n"+				  ":class PetShopAgent " +" )\n");      kqml.setContent(content);            //KQML ontology    } else if ("advertise_K".equals(performative)) {      kqml.setPerformative("advertise");      kqml.setParameter(":sender", agentName);      kqml.setParameter(":receiver", facilitator);      kqml.setParameter(":language", "KQML");      kqml.setParameter(":ontology", "kqml-ontology");      String content = new String(				  "(ask-all \n" + 				  " :sender " + agentName    + " \n"+ 				  " :receiver "+ facilitator + " \n"+ 				  " :in-reply-to " + rw         +"\n"+				  " :language anACL \n" + 				  " :ontology yellowpages \n" + 				  " :content " +				  "(:providerName \"" + agentName +				  "'s pet shop\""              +"\n"+				  " :category petShop "         +"\n"+				  " :subCategory dog "          +"\n"+				  " :class PetShopAgent "       +"\n"+				  " :name " + agentName         +"\n"+				  " :description \"dog only\" " +"\n"+				  " :language anACL "           +"\n"+				  " :ontology shop))");      kqml.setContent(content);    } else if ("unadvertise_K".equals(performative)) {      kqml.setPerformative("unadvertise");    } else if ("recommend-one_K".equals(performative)) {      kqml.setPerformative("recommend-one");    } else if ("recommend-all_K".equals(performative)) {      kqml.setPerformative("recommend-all");    } else if ("recruit-one_K".equals(performative)) {      kqml.setPerformative("recruit-one");    } else if ("recruit-all_K".equals(performative)) {      kqml.setPerformative("recruit-all");    } else if ("broker-one_K".equals(performative)) {      kqml.setPerformative("broker-one");    } else if ("broker-all_K".equals(performative)) {      kqml.setPerformative("broker-all");      kqml.setParameter(":sender", agentName);      kqml.setParameter(":receiver", facilitator);      kqml.setParameter(":language", "KQML");      kqml.setParameter(":ontology", "kqml-ontology");      String rw_i = new String(kManager.getInitialID());      String content = new String(				  "(ask-all "                 	+"\n"+				  " :sender "   + agentName   	+"\n"+				  " :reply-with " + rw_i        +"\n"+				  " :language anACL " 		+"\n"+				  " :ontology yellowpages" 	+"\n"+				  " :content " +				  "(:category petShop "  	+"\n"+				  " :subCategory dog "    	+"\n"+				  " :class PetShopAgent ) )" 	+"\n");      kqml.setContent(content);    } else if ("forward_K".equals(performative)) {      kqml.setPerformative("forward");    } else if ("subscribe_K".equals(performative)) {      kqml.setPerformative("subscribe");    } else if ("transport-address_K".equals(performative)) {      kqml.setPerformative("transport-address");    } else if ("tell_K".equals(performative)) {      kqml.setPerformative("tell");    } else if ("uninsert_K".equals(performative)) {      kqml.setPerformative("uninsert");    } else if ("discard_K".equals(performative)) {      kqml.setPerformative("discard");    } else if ("undelete_K".equals(performative)) {      kqml.setPerformative("undelete");    }    return kqml;  }  }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?