选择显示字体大小

rmi原理及实现


  简介

  rmi是远程方法调用的简称,象其名称暗示的那样,它能够帮助我们查找并执行远程对象的方法。通俗地说,远程调用就象将一个class放在a机器上,然后在b机器中调用这个class的方法。

  我个人认为,尽管rmi不是唯一的企业级远程对象访问方案,但它却是最容易实现的。与能够使不同编程语言开发的corba不同的是,rmi是一种纯java解决方案。在rmi中,程序的所有部分都由java编写。

  在看本篇文章时,我假定读者都已经具备了较扎实的java基础知识,在这方面有欠缺的读者请自行阅读有关资料。

  概念

  我在前面已经提到,rmi是一种远程方法调用机制,其过程对于最终用户是透明的:在进行现场演示时,如果我不说它使用了rni,其他人不可能知道调用的方法存储在其他机器上。当然了,二台机器上必须都安装有java虚拟机(jvm)。

  其他机器需要调用的对象必须被导出到远程注册服务器,这样才能被其他机器调用。因此,如果机器a要调用机器b上的方法,则机器b必须将该对象导出到其远程注册服务器。注册服务器服务器上运行的一种服务,它帮助客户端远程地查找和访问服务器上的对象。一个对象只有导出来后,然后才能实现rmi包中的远程接口。例如,如果想使机器a中的xyz对象能够被远程调用,它就必须实现远程接口。

  rmi需要使用占位程序和框架,占位程序在客户端,框架服务器端。在调用远程方法时,我们无需直接面对存储有该方法的机器。

  在进行数据通讯前,还必须做一些准备工作。占位程序就象客户端机器上的一个本机对象,它就象服务器上的对象的代理,向客户端提供能够被服务器调用的方法。然后,stub就会向服务器端的skeleton发送方法调用,skeleton就会在服务器端执行接收到的方法。

  stub和skeleton之间通过远程调用层进行相互通讯,远程调用层遵循tcp/ip协议收发数据。下面我们来大致了解一种称为为“绑定”的技术。

  客户端无论何时要调用服务器端的对象,你可曾想过他是如何告诉服务器他想创建什么样的对象吗?这正是“绑定”的的用武之地。在服务器端,我们将一个字符串变量与一个对象联系在一起(可以通过方法来实现),客户端通过将那个字符串传递给服务器来告诉服务器它要创建的对象,这样服务器就可以准确地知道客户端需要使用哪一个对象了。所有这些字符串和对象都存储在的远程注册服务器中。

  在编程中需要解决的问题

  在研究代码之前,我们来看看必须编写哪些代码:

  ·远程对象:这个接口只定义了一个方法。我们应当明白的是,这个接口并非总是不包括方法的代码而只包括方法的定义。远程对象包含要导出的每个方法的定义,它还实现java.rmi中的远程接口。

  ·远程对象实现:这是一个实现远程对象的类。如果实现了远程对象,就能够覆盖该对象中的所有方法,因此,远程对象的实现类将真正包含我们希望导出的方法的代码。

  ·远程服务器这是一个作为服务器使用的类,它是相对于要访问远程方法的客户端而言的。它存储着绑定的字符串和对象。

  ·远程客户端:这是一个帮助我们访问远程方法提供帮助的类,它也是最终用户。我们将使用查找和调用远程方法的方法在该类中调用远程方法。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons