travelbroker.java

来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 693 行 · 第 1/2 页

JAVA
693
字号
	System.exit(-1);      }    } else {      System.err.println("setInsertY() :Error Result isn't available");      System.exit(-1);    }  }      /**   * TravelBroker advertise/broker-all/ask-all    * scenario (15)   *   */  private void setAdvertiseBrokerallAskallT() {        KQML kqml = new KQML();    String rw = new String(kManager.getInitialID());    String rw2 = new String(kManager.getInitialID());        kqml.setPerformative("advertise");    kqml.setParameter(":name", agentName);    kqml.setParameter(":sender", localHost);    kqml.setParameter(":receiver", facilitator);    kqml.setParameter(":reply-with", rw);    kqml.setParameter(":language", "KQML");    kqml.setParameter(":ontology", "kqml-ontology");        KQML kqml_i = new KQML();    kqml_i.setPerformative("broker-all");    kqml_i.setParameter(":sender", facilitator);    kqml_i.setParameter(":receiver", localHost);    kqml_i.setParameter(":in-reply-to", rw);    kqml_i.setParameter(":language", "KQML");    kqml_i.setParameter(":ontology", "kqml-ontology");        KQML kqml_ii = new KQML();    kqml_ii.setPerformative("ask-all");    kqml_ii.setParameter(":sender", facilitator);    kqml_ii.setParameter(":receiver", localHost);    kqml_ii.setParameter(":reply-with", rw2);    kqml_ii.setParameter(":language", "anACL");    kqml_ii.setParameter(":ontology", "travel");    String  content = new String(				 "(:carrier"   	     +" \n"+				 " :flight"	 	     +" \n"+				 " :departure"	     +" \n"+				 " :arrival"		     +" \n"+				 " :deptTime)" );        kqml_ii.setContent(content);    kqml_i.setContent(kqml_ii);    kqml.setContent(kqml_i);        Conversation conv = null;    try {      conv =	(Conversation) kManager.sendMessage(kqml);    } catch (SendFailedException ex) {      ex.printStackTrace();    } catch (InvalidFormatException ex) {      ex.printStackTrace();    } catch (InvalidMessageSequenceException ex) {      ex.printStackTrace();    } catch (JKQMLException ex) {      ex.printStackTrace();    }     conv.getResult().waitFor(0);      }      /**   * TravelBroker advertise/rec-all/sub/ask-all   * scenario (16)   *   */  private void setAdvertiseRecruitoneSubAskallT() {        KQML kqml = new KQML();    String rw = new String(kManager.getInitialID());    String rw2 = new String(kManager.getInitialID());    String rw3 = new String(kManager.getInitialID());        kqml.setPerformative("advertise");    kqml.setParameter(":name", agentName);    kqml.setParameter(":sender", localHost);    kqml.setParameter(":receiver", facilitator);    kqml.setParameter(":reply-with", rw);    kqml.setParameter(":language", "KQML");    kqml.setParameter(":ontology", "kqml-ontology");        KQML kqml_i = new KQML();    kqml_i.setPerformative("recruit-one");    kqml_i.setParameter(":sender", facilitator);    kqml_i.setParameter(":receiver", localHost);    kqml_i.setParameter(":in-reply-to", rw);    kqml_i.setParameter(":language", "KQML");    kqml_i.setParameter(":ontology", "kqml-ontology");        KQML kqml_ii = new KQML();    kqml_ii.setPerformative("subscribe");    kqml_ii.setParameter(":sender", facilitator);    kqml_ii.setParameter(":receiver", localHost);    kqml_ii.setParameter(":reply-with", rw2);     kqml_ii.setParameter(":in-reply-to", rw);    kqml_ii.setParameter(":language", "KQML");    kqml_ii.setParameter(":ontology", "kqml-ontology");        KQML kqml_iii = new KQML();    kqml_iii.setPerformative("ask-all");    kqml_iii.setParameter(":sender", facilitator);    kqml_iii.setParameter(":receiver", localHost);    kqml_iii.setParameter(":reply-with", rw3);    kqml_iii.setParameter(":in-reply-to", rw);    kqml_iii.setParameter(":language", "anACL");    kqml_iii.setParameter(":ontology", "travel");    String  content = new String(				 "(:carrier"   	     +"\n"+				 " :flight"	 	     +"\n"+				 " :departure"	     +"\n"+				 " :arrival"		     +"\n"+				 " :deptTime)"				 );        kqml_iii.setContent(content);    kqml_ii.setContent(kqml_iii);    kqml_i.setContent(kqml_ii);    kqml.setContent(kqml_i);        Conversation conv = null;    try {      conv =	(Conversation) kManager.sendMessage(kqml);    } catch (SendFailedException ex) {      ex.printStackTrace();    } catch (InvalidFormatException ex) {      ex.printStackTrace();    } catch (InvalidMessageSequenceException ex) {      ex.printStackTrace();    } catch (JKQMLException ex) {      ex.printStackTrace();    }     conv.getResult().waitFor(0);      }        /**   * TravelBroker recommend-one (insert)    * scenario (17)   *   */  private void setRecommendoneSubAskallY() {        KQML kqml = new KQML();    String rw = new String(kManager.getInitialID());    String rw2 = new String(kManager.getInitialID());        kqml.setPerformative("recommend-one");    kqml.setParameter(":name", agentName);    kqml.setParameter(":sender", localHost);    kqml.setParameter(":receiver", facilitator);    kqml.setParameter(":reply-with", rw);    kqml.setParameter(":language", "KQML");    kqml.setParameter(":ontology", "kqml-ontology");        KQML kqml_i = new KQML();    kqml_i.setPerformative("subscribe");    kqml_i.setParameter(":sender", localHost);    kqml_i.setParameter(":reply-with", rw2);    kqml_i.setParameter(":language", "KQML");    kqml_i.setParameter(":ontology", "kqml-ontology");        KQML kqml_ii = new KQML();    kqml_ii.setPerformative("ask-all");    kqml_ii.setParameter(":sender", localHost);    kqml_ii.setParameter(":reply-with", rw2);    kqml_ii.setParameter(":language", "anACL");    kqml_ii.setParameter(":ontology", "yellowpages");    String content = new String(				"(:category travel " +"\n"+				" :subCategory airline" +"\n"+				" :class anacl_travel )"				);        kqml_ii.setContent(content);    kqml_i.setContent(kqml_ii);    kqml.setContent(kqml_i);        Conversation conv = null;    try {      conv =	(Conversation) kManager.sendMessage(kqml);    } catch (SendFailedException ex) {      ex.printStackTrace();    } catch (InvalidFormatException ex) {      ex.printStackTrace();    } catch (InvalidMessageSequenceException ex) {      ex.printStackTrace();    } catch (JKQMLException ex) {      ex.printStackTrace();    }     conv.getResult().waitFor(45000);    Result res = conv.getResult();    if (res.isAvailable()) {      ReturnValue rtn = (ReturnValue)res.getResult();      if ( rtn.isOK() ) {	print("result value : " + rtn.getReturnValue().toString());		KQML kqml_result = null;	try {	  kqml_result = new KQML(rtn.getReturnValue().toString());	} catch (NotListException ex) {	  ex.printStackTrace();	  System.exit(1);	} catch (MalformedSExpressionException ex) {		  ex.printStackTrace();	  System.exit(1);	}	// reserve address of agent that can be inserted	receiverAddr = new String(kqml_result.getParameter(":receiver"));	subscribeID  = new String(kqml_result.getParameter(":in-reply-to"));	print("subscribeID :" + subscribeID);      } else {	System.err.println("setRecommendoneSubAskallY() : recommend-one");	System.err.println("setRecommendoneSubAskallY() : " + 			   (String)rtn.getReturnValue());	System.exit(-1);      }    } else {      System.err.println("setRecommendoneSubAskallY() :Error Result isn't available");      System.exit(-1);    }      }      /**   * TravelBroker subscribe/ask-all(yellowpages)   * scenario (19)   */  void setSubAskallY(String category, String subCategory) {            KQML kqml = new KQML();    String rw = new String(kManager.getInitialID());    String rw2 = new String(kManager.getInitialID());        kqml.setPerformative("subscribe");    kqml.setParameter(":name", agentName);    kqml.setParameter(":sender", localHost);    kqml.setParameter(":receiver", receiverAddr);    kqml.setParameter(":in-reply-to", subscribeID);    kqml.setParameter(":reply-with", rw);    kqml.setParameter(":language", "KQML");    kqml.setParameter(":ontology", "kqml-ontology");        KQML kqml_i = new KQML();    kqml_i.setPerformative("ask-all");    kqml_i.setParameter(":sender", localHost);    kqml_i.setParameter(":receiver", facilitator);    //kqml_i.setParameter(":in-reply-to", subscribeID);    kqml_i.setParameter(":reply-with", rw2);    kqml_i.setParameter(":language", "anACL");    kqml_i.setParameter(":ontology", "yellowpages");    String content = new String(				"(:category " + category +"\n"+				" :subCategory " + subCategory + ")"				);        kqml_i.setContent(content);    kqml.setContent(kqml_i);        Conversation conv = null;    try {      conv =	(Conversation) kManager.sendMessage(kqml);    } catch (SendFailedException ex) {      ex.printStackTrace();    } catch (InvalidFormatException ex) {      ex.printStackTrace();    } catch (InvalidMessageSequenceException ex) {      ex.printStackTrace();    } catch (JKQMLException ex) {      ex.printStackTrace();    }     //AgentInfoSubscriber subscriber = new AgentInfoSubscriber(conv, this);    AgentInfoSubscriber subscriber = new AgentInfoSubscriber(conv, this, tFrame);    subscriber.start();  }    /**   * print for debug.   *   * @param msg print message   */  private void print(String msg) {    if (KQMLManager.debug) {      System.err.println("TravelBroker." + msg);    }  }      /**   * main routine   *   * @param args[] port number. The default number is 8100.   */  public static void main(String args[]) {        int port = 8100;    String usage =       new String("Usage: TravelBroker [-trace] [-port <port#>] [-help]");     int argc = args.length;    for (int i = 0; i < argc; i++) {      try {	if (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);      }    }        TravelBroker app = new TravelBroker(port);    app.run();  }}

⌨️ 快捷键说明

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