一、使用EJB我们可以开发出分布式的企业应用,那么这里的“分布式”是什么含义?
这里的分布式指的是能使处于不同JVM、物理设备中的内存对象间能够实现相互通信的技术。
二、谈一下对EJB的认识
我们知道,EJB是基于RMI-IIOP实现的,没有了RMI-IIOP,EJB就是空谈。什么是RMI-IIOP呢?他是在RMI技术和CORBA协议基础上产生的,RMI为分布式应用提供了方便、易用的 API,CORBA又为跨平台操作提供了保证,在这两种技术的基础上,诞生了RMI-IIOP,他吸收了两者的优点,成为EJB分布式跨平台的核心。
三、EJB为什么要引入CORBA,而不是单纯应用RMI?
在EJB技术的早期,EJB容器是基于RMI本身的JRMP来实现远程方法调用的,这对于通信的两端都是JAVA实现时,是没问题的;但通信端使用了不同的编程平台时,EJB却无能为力。而CORBA为跨平台操作提供了保证,吸收了RMI和CORBA优点的RMI-IIOP也就应运而生。
四、EJB调用原理分析
至于EJB的调用原理,其实就是两次RMI调用循环(什么是RMI呢?一定要懂得),那么这种远程调用中参数的传递又是如何进行的呢?这就又涉及到Java 参数序列化。不懂的话再去翻资料查查吧。Javaeye上有个关于“EJB工作原理”的帖子,分析的非常透彻!地址是:
http://www.iteye.com/topic/3832,强烈建议看下!
EJB的调用过程是两次RMI循环,但学习EJB的过程恐怕就不是两层技术的循环了,学习EJB时,你不得不去了解什么是RMI,什么是CORBA,什么是JNDI,什么是JTA,什么是JMS以及JAVA序列化等等等等。这,也就是EJB的深邃所在吧!
附:学习EJB前必须要懂得的技术
RMI :Remote Method Invocation
CORBA:Common Object Request Broker Architecture 公共对象请求代理结构
JRMP:Java Remote Method Invocation
IIOP: Internte Inter – ORB Protocol