漫谈EJB (2)
EJB技术的基础是另外两种技术:RMI-IIOP和JNDI。要想了解EJB,一定要先了解RMI-IIOP和JNDI。因此,我们在介绍EJB细节之前,先了解这两项技术。我们的介绍比较基本,因此大多数组织只要了解这些就已经够了。Java RMI-IIOP
Java RMI-IIOP(Java Remote Method Invocation over the Internet Inter-ORB Protocol)是J2EE的网络机制。Java RMI-IIOP允许你编写分布式对象,使得对象的通信范围能够在内存中,跨Java虚拟机,跨物理设备。
Remote Method Invocation
RPC(remote procedure call)是一台机器的进程调用另一台机器的进程的过程。而remote method invocation则比RPC的概念更进一步,允许分布式对象间的通信。RMI-IIOP允许调用远程对象的方法,而不仅仅是过程。这有利于面向对象编程。Java RMI (Remote Method Invocation 远程方法调用)是用Java在JDK1.1中实现的,它大大增强了Java开发分布式应用的能力。Java作为一种风靡一时的网络开发语言,其巨大的威力就体现在它强大的开发分布式网络应用的能力上,而RMI就是开发百分之百纯Java的网络分布式应用系统的核心解决方案之一。其实它可以被看作是RPC的Java版本。但是传统RPC并不能很好地应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。
remote method invocation决不简单,需要考虑几个问题:
marshalling和unmarshalling.在不同机器间通过网络传递变量(包括Java基本类型和对象),如果目标机器表示数据的方式和原机器不同该怎么办?例如二进制库不同。因此marshalling和unmarshalling就是传递变量的过程。
变量传递方法.变量有两种传递方法:pass-by-value和pass-by-reference。对于前者,你的目标方法只需使用一份copy,但对于后者,远程方法对变量的任何修改都会影响到源数据。
网络和机器的不稳定.需要有一种机制保证一个JVM崩溃之后,不会影响系统的正常运作。
在 Java 分布式对象模型中,remote object 是这样一种对象:它的方法可以从其它 Java 虚拟机(可能在不同的主机上)中调用。该类型的对象由一种或多种 remote inte易做图ces(它是声明远程对象方法的 Java 接口)描述。远程方法调用 (RMI) 就是调用远程对象上远程接口的方法的动作。更为重要的是,远程对象的方法调用与本地对象的方法调用语法相同。
Remote Inte易做图ce
补充:Jsp教程,J2EE/EJB/服务器