当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 如果你从事过Jini开发,你会知道Jini客户端是不需要知道服务的位置的;它们简单地通过发现机制来获得一个代理以访问它们需要的服务。
 

 

 ·java中finalize()的另类用法(1)    »显示摘要«
    摘要:做过java编程的都知道,在java中有一种垃圾收集器的机制,当它运行时(通常在系统内存低到一定限度时自动运行),会回收不再使用的对象所占用的内存,所以,在java程序中,我们通常只考虑创建对象,而从不关心对象的清除。finalize()是java为类提供的一种特殊方法。垃圾收集器的工作过程大致是这样的:一旦垃圾收集器准备好释放无用对象占用的存储空间,它首先调用那些对象的finalize()方法,......
 ·类的设计方法    »显示摘要«
    摘要:(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: thisisaclassname thisismethodorfieldname 若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母。这样便可标志出它们属于编译期的常数。 java包(package)属于一种......


为RMI实现类Jini的发现机制(1)

如果你从事过jini开发,你会知道jini客户端是不需要知道服务的位置的;它们简单地通过发现机制来获得一个代理以访问它们需要的服务.相反,在rmi(远程方法调用)中,你必须知道你想访问的服务器的url.在本文中,我们将向你展示怎样为rmi实现一个类jini的发现机制,这将使得一些客户端从必须知道rmi服务器url的麻烦中解脱出来.

本文主要是针对没有用过jini的rmi开发者.通过深入观察jini内部的运作,我们希望你能开始了解jini的机制有多么强大.我们当然不是希望你重新实现jini,但这篇文章能帮助你理解这些机制是怎样运作的.甚至可能帮助你说服你的经理或部门头头,该考虑将jini作为一项可行的分布式系统技术. 【程序编程相关:球无线局域网设备收入增长10%

你可能首先会想,为什么要这么麻烦;为什么不干脆用jini?我们也同意这样的逻辑,特别是对新的系统来说.不管怎样,已经有许多基于rmi的系统存在,并且在jini被java开发的主流接受以前,我们仍然要提供更优雅的rmi解决方案.事实上,我们在这儿描述的工作,是这样的需求的结果:开发一项jini服务使它同时可以作为一个独立的rmi服务器运行,但使用类jini的发现机制. 【推荐阅读:和记黄埔与微软合作 用户3G手机将与MS

【扩展信息:美议员针对黄色网站提案 建议统一管理域名

我们不会太深入jini的发现机制,所以如果你对此不是很熟悉,我们建议你快速浏览一下bill venners的"locate services with the jini lookup service."( http://www.javaworld.com/javaworld/jw-02-2000/jw-02-jiniology.html)

rmi基础与jini查找

在rmi中,客户端必须知道它所要连接的服务器的位置.rmi服务器的地址是uri的形式rmi://<主机>:<端口>/<服务名>,其中端口号是rmiregistry用来侦听请求的端口.例如:

translator service

=(translator)naming.lookup("rmi://thehost/spanishtranslator");

在jini中,客户端通过一个jini工具类来找到服务,比如servicediscoverymanager.在下面的例子中,我们创建了一个servicetemplate的实例,该实例包含一个类列表;在我们的例子中,是我们要匹配的类??translator.class:

class [] classes=new class[]{translator.class};

servicetemplate tmpl=new servicetemplate(null,classes,null);

servicediscoverymanager lmgr=new servicediscoverymanager(null,null);

serviceitem serviceitem =lmgr.lookup(tmpl,null);

translator service=serviceitem.service;


...   下一页
 ·在canvas类里调用textbox    »显示摘要«
    摘要:代码 /*** textbox´´s instance*/private textbox inputname = null;/*** 「cancel」command* command in textbox*/private command ccancel = new command("cancel", command.cancel, 1);/*** 「ok」command......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE