ktpagent1.java
来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 227 行
JAVA
227 行
/* KTPAgent1.java * $Id: KTPAgent1.java,v 2.5 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 Agent1 Sample (default port = 8010) * * @version $Revision: 2.5 $ $Date: 1997-12-07 15:05:43+09 $ * @author Osamu Furusawa * @author Hajime Tsuchitani */public class KTPAgent1 extends KTPAgent { private static final String rcsid = "$Id: KTPAgent1.java,v 2.5 1997-12-07 15:05:43+09 ht Exp $ $Name: alpha5_1-release $"; /** * Constructor * * @port port number */ public KTPAgent1(int port){ super(port); agentName = new String("KtpAgent1"); kManager = new KQMLManager(agentName, "ktp", port); 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); // white pages 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", agentName); 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 KtpAgent2 :protocol ?p)"); // yellowpages } else if ("insert_Y".equals(performative)) { kqml.setPerformative("insert"); kqml.setParameter(":sender", agentName); kqml.setParameter(":receiver", agentName); 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", agentName); 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", agentName); 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 "+ facilitator +" \n"+ " :receiver "+ agentName +" \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", 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 ) )" ); 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 = 8010; String usage = new String("Usage: KTPAgent1 [-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); } } KTPAgent1 app = new KTPAgent1(port); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?