ktpagent3.java

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

JAVA
232
字号
/* KTPAgent3.java * $Id: KTPAgent3.java,v 1.2 1997-12-07 15:05:43+09 ht Exp $ * $Name: alpha5_1-release $ * COPYRIGHT NOTICE goes here */package com.ibm.acl.kqmlsample;import com.ibm.acl.kqml.*;import java.net.*;import java.util.*;/** * KTP Agent3 Sample (default port = 10000) * supports OTP and jis encoding * * @version     $Revision: 1.2 $ $Date: 1997-12-07 15:05:43+09 $ * @author      Osamu Furusawa * @author      Hajime Tsuchitani */public class KTPAgent3 extends KTPAgent {  private static final String rcsid = "$Id: KTPAgent3.java,v 1.2 1997-12-07 15:05:43+09 ht Exp $ $Name: alpha5_1-release $";  private final int OTP_PORT = 10000;  /**   * Constructor   *   * @port port number   */  public  KTPAgent3(int port){    super(port);    agentName = new String("$BF|K\(B");        kManager = new KQMLManager(agentName, "ktp", port);    kManager.addProtocol("otp", OTP_PORT);    kManager.setJISEncoding(true);    frame = new KTPFrame(this, agentName);    frame.show();  }      /**   * set KQML message. called by KTPFrame(KTPFrame) 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);        // whitepages    if ("register_W".equals(performative)) {      kqml.setPerformative("register");      kqml.setParameter(":sender", localHost);      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", localHost);      kqml.setParameter(":receiver", facilitator);      kqml.setParameter(":language", "anACL");      kqml.setParameter(":ontology", "whitepages");      kqml.setContent("(:name KtpAgent1 :protocol ?p)");          // yellowpages    } else if ("insert_Y".equals(performative)) {      kqml.setPerformative("insert");      kqml.setParameter(":sender", localHost);      kqml.setParameter(":receiver", localHost);      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", localHost);      kqml.setParameter(":receiver", localHost);      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", localHost);      kqml.setParameter(":receiver", localHost);      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", localHost);      kqml.setParameter(":receiver", facilitator);      kqml.setParameter(":language", "KQML");      kqml.setParameter(":ontology", "kqml-ontology");      String content = new String(				  "(ask-all "                +" \n"+ 				  " :sender "+ facilitator   +" \n"+				  " :receiver "+ localHost   +" \n"+				  " :in-reply-to " + rw      +" \n"+				  " :language anACL "        +" \n"+				  " :ontology yellowpages "   +" \n"+				  " :content " +				  "(:category petShop "   +"\n"+				  ":subCategory dog "    +"\n"+				  ":class PetShopAgent ) )");      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-one");      kqml.setParameter(":sender", localHost);      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 "   + localHost   	+"\n"+				  " :reply-with " + rw_i	+"\n"+				  " :language anACL " 		+"\n"+				  " :ontology yellowpages" 	+"\n"+				  " :content " +				  "(:category petShop "  	+"\n"+				  " :subCategory dog "    	+"\n"+				  " :class PetShopAgent ) )"				  );      kqml.setContent(content);            kqml.setPerformative("broker-all");    } 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;  }      /**   * main routine   *   * @param args[] port number. The default number is 8010.   */  public static void main(String args[]) {    int port = 8012;    String usage =       new String("Usage: KTPAgent3 [-trace] [-port <port#>] [-help]");     int argc = args.length;    for (int i = 0; i < argc; i++) {      try {	if (args[i].equals("-trace") || args[i].equals("trace")) {	  KQMLManager.debug = true;	} else if (args[i].equals("-port")) {	  port = Integer.parseInt(args[++i]);	} else if (args[i].equals("-help")) {	  System.err.println(usage);	  System.exit(0);	} else {	  System.err.println(usage);	  System.exit(1);	}      } catch (ArrayIndexOutOfBoundsException e) {	System.err.println(usage);	System.exit(1);      } catch (NumberFormatException nfe) {	System.err.println(usage);	System.exit(1);      }    }    KTPAgent3 app = new KTPAgent3(port);  }}

⌨️ 快捷键说明

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