发布一篇JADE:远程呆板的Agent通讯应注重的成绩
学习JAVA的目的更多的是培养自身的工作能力,我觉得工作能力的一个核心就是:独立思考能力,因为只有独立思考后,才会有自己的见解要完成局域网内分歧呆板上的Agent举行通讯,必要注重如许两个成绩:
1。防火墙内关于文件与打印机共享的协定必需翻开,包管呆板名的剖析。
2。通讯时ACLMessage增加Receiver的时分指定正当的AID,这个AID一要有完全的称号,二要有正当的Addresses。
好比上面的例子
importjade.core.AID;
importjade.domain.AMSService;
importjade.domain.FIPAAgentManagement.*;
publicclassSender2extendsAgent{
protectedvoidsetup()
{
AMSAgentDescription[]agents=null;
AIDRams=newAID("ams@gjpc:1099/JADE");//猎取gjpc呆板上的ams
Rams.addAddresses("http://gjpc:7778/acc");
try{
SearchConstraintsc=newSearchConstraints();
c.setMaxResults(newLong(-1));
//agents=AMSService.search(this,newAMSAgentDescription(),c);
//上面查找rams内里的agents
agents=AMSService.search(this,Rams,newAMSAgentDescription(),c);
}
catch(Exceptione){
System.out.println("ProblemsearchingAMS:"+e);
e.printStackTrace();
}
ACLMessagemsg=newACLMessage(ACLMessage.INFORM);
msg.setContent("thisisfromguojiesPing");//当地呆板名为guojie
//逐一向他们发送动静
for(inti=0;i<agents.length;i++){
if(agents.getName().equals(getAID())){
continue;
}
System.out.println(agents.getName().toString());
agents.getName().addAddresses("http://gjpc:7778/acc");
//这一句必需要有
msg.addReceiver(agents.getName());
}
System.out.println("waitfroaminute...");
send(msg);
}
}
专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。 是一种将安全性(Security)列为第一优先考虑的语言 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 是一种将安全性(Security)列为第一优先考虑的语言
页:
[1]