动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息



本月文章推荐
.Java核心代码例程之:ClientSock.
.Tomcat的RemoteAddrValve的使用.
.JDBC3.0有什么新特性.
.通过继承扩展接口.
.Hello Unicode —系统语言环境设.
.开放源码-SMTP发信客户端 for Ja.
.《Java编程思想》(第二版)第4章:.
.Java中的Big/Little问题.
.小小调查通.
.慎防恶意的Java Applet.
.EJB3.0开发指南之多对多和一对一.
.理解Java应用服务器的七种武器.
.Webwork 和 spring 的整合.
.Compass 0.5, Java 搜索引擎框架.
.Java程序编码规范!不仅仅是规范,.
.使用档案文件提高applet的加载速.
.java-汉字问题深入谈.
.JBPM源码分析(二)---accept.
.J2EE1.4中的Servlet部署应用.
.用OSCache提升J2EE系统运行性能.

Candle点亮你的Web应用(CandleRMI)

发表日期:2008-1-5 |



  IntrodUCtion
  CandleRMI是Java远程方法调用(Remote Method Invocation)的实现,与Sun RMI的实现方式不同,CandleRMI利用Java本身的特性并结合HTTP实现了简单高效的RMI功能。CandleRMI Service 作为Candle Services的一部分,与Candle Server整合在一起。
  
  CandleRMI Facilities
  
  •  不需要生成Stub和Skel文件
  •  通过文本的方式注册RMI,不需要单独的注册服务和在程序中实现绑定
  •  远程接口和实现不需要继续非凡的类或接口
  •  最小资源利用,开发和部署方便
  
  CandleRMI Architecture
  CandleRMI体系结构图中最核心的是中间Remote与Service如何通讯。通讯内容通过HTTP协议以时间顺序分别为:名字查询(Lookup),返回远程对象(Remote Object),方法调用(Method Invoke)和方法返回(Return)。上述四个通讯内容按照HTTP通讯协议的标准封装在两个客户端请求中。
  
  RMI Remote
  远程接口封装和定义远程方法。接口是公开的,隐藏了具体的实现部分。Client只能使用接口,接口的设计必须符合规范,并且需要封装必须的远程方法。对于实际的应用来说,远程接口可能按照系统功能模块来分有许多个。一个简单的接口如下:
  
  package cn.candle.demo;
  
  import java.rmi.RemoteException;
  
  /**
   * @author zhouj
   *
   */
  interface Compute {
    public String calculate(Double d, String[] args) throws RemoteException;
  }
  
  远程接口看上去和一般的接口定义没有任何不同,但是远程方法需要抛出一个远程异常,并且方法参数和返回参数必须是可序列化的对象类。目前版本的CandleRMI并不能把prototype映射为相应的对象类,比如例子中的参数"Double d",不能定义成"double d"。
  
  远程接口实现在Server端利用Server VM的资源为Remote提供资源服务和运算。CandleRMI 体系结构图中,远程接口实现类对象需要传递,因此远程接口实现必须是可序列化的对象类。这些规则约束与Sun RMI并没有多大不同,只不过是一个更简单的版本。理解规则以后,编码和运行才能避免常见错误。远程接口具体实现例子如下:
  
  package cn.candle.demo;
  
  import java.io.Serializable;
  
  /**
   * @author zhouj
   * 
   */
  public class ComputeImpl implements Compute, Serializable {
  
    /*
     *
     * @see cn.candle.demo.Compute#calculate
     */
    public String calculate(Double d, String[] args) {
      double _d = Math.sqrt(d.doubleValue());
      return "Square root of " + d.doubleValue() + " is " + _d + " at "
          + args[1];
    }
  }
  
  Invoke Remote Method
  远程接口和实现是开发的重点和核心部分,接下来如何使用远程接口并调用其中的远程方法呢?在Sun RMI规范中有JNDI Naming来帮助查找远程服务;CandleRMI使用类似的规则查询远程接口对应的名称,不过远程接口实现都是在固定的Server上,因此并不需要JNDI命名规则。使用CandleRMI部署你的远程方法调用,开发包是candle0.76版本中的candle-rmi.jar。例子代码如下:
  
  package cn.candle.demo;
  
  import java.rmi.NotBoundException;
  import java.rmi.RemoteException;
  
  import cn.candle.rmi.Naming;
  
  /**
   * @author zhouj
   * 
   */
  public class TestRMI {
  
    public static void main(String[] args) {
      Compute compute = null;
      try {
        compute = (Compute) Naming.lookup("Compute");
      } catch (RemoteException e) {
        // TODO 自动生成 catch 块
        e.printStackTrace();
      } catch (NotBoundException e) {
        // TODO 自动生成 catch 块
        e.printStackTrace();
      }
      try {
        System.out.println(compute.calculate(new Double(3), new String[] {
            "", "Test" }));
      } catch (RemoteException e1) {
        // TODO 自动生成 catch 块
        e1.printStackTrace();
      }
    }
  }
  
  RMI Registry
  RMI注册是把远程接口和实现与自定义的名称关联起来。上述例子中远程接口cn.candle.demo.Compute对应的名称是"Compute",可以定义成任意不重复的名字。注重CandleRMI规则中远程服务名称是英文不区分大小写。CandleRMI注册是使用文本文件的方式,固定的文件名称和相对路径为WEB-APP/rmi.registry。文件为普通的Java 资源文本文件,格式如下:
  
  #CandleRMI Registry
  compute=cn.candle.demo.ComputeImpl
  
  Run CandleRMI Example

上一篇:JDOM / XPATH 编程入门引导攻略 人气:358
下一篇:细说Web应用开发的一致框架Tapestry 人气:188
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-5 360安全卫士 V4.2.0.1004
2008-7-5 PHPDug v2.0 多国语言版
2008-7-5 乘风电影程序 v3.69 (SQL)
2008-7-5 乘风电影程序 v3.69
2008-7-5 wfTextImage文字图像组件 v1.5
2008-7-5 ZY music! v1.1.0705
2008-7-5 FavShop网店系统 v1.0
2008-7-4 天空网络电影系统SKYUC v2.5.1 B
2008-7-4 Drupal v7.x-dev Build 080704
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 GoodCalculator2.0版固件计算器
2008-7-5 RepoName源地址搜索工具 v1.21b
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 TouchCopy多媒体管理软件 v3.13完
2008-7-5 VideosTone视频铃声 v1.1汉化破解
2008-7-5 TouchPad触摸板 v4.44破解版
2008-7-5 VideosTone破解补丁 v1.0
2008-7-5 Feeds GoogleReader客户端 v0.4.3


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報