一个阶段的ejb结束了,也开始了,让我对ejb有了一个重新认识的机会,下面先说一下ejb,是产品还是标准?
ejb是j2ee规范之一,它的设计目标与核心应用是部署分布式应用程序,因此可以看出,它是应用分布式程序的一个标准、规范,而非产品。
因为ejb是j2ee体系中的一员,先用一张图来表示一下j2ee的体系结构以及ejb所充当的角色:
J2EE体系结构:
由上图可以看出ejb主要用于业务逻辑层,其实就是负责执行特定任务的类,那Ejb是怎么实现分布式的呢?
EJB体系结构:
EJB?
大白话:
就是将那些负责执行特定任务的类从客户端给拿出来,形成组件,ejb通过RMI技术进行远程调用,将客户端需要的类从组件中调用出来。(突然想到了webservice/WCF~~~)
RMI技术?
用两个词概括:对象序列化、RPC
对象序列化:大家一定都知道:java.io.serializable这样一个接口,它就是用来将对象进行序列化,因为远程数据的传输如果体积较大,类型复杂会使消息的传输效率降低,而且转换效率降低,而通过将对象进行序列化,即将对象转换为字节流的形式,这样的话传输效率提高,非常适用于远程方法的调用。
RPC:它是Remote Procedure Call的缩写,即“远程过程调用”,这个词很早之前就有,在EJB远程调用中,它是个顶梁柱,主要是一个用户本地与远程之间调用的一个函数。
EJB服务集群:
大白话:大家一起干一件事情就是集群。
RMI 是将各种任务与功能的类放到不同的服务器上,然后通过各个服务器间建立的调用规则实现分布式的运算,这样提高了运行效率,而且降低了CPU的资源耗用。
牛刀小结:
服务器集群:就是通过RMI的通信,连接不同功能模块的服务器,以实现一个完整的功能。
EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。但这里值得注意的是,EJB并不是实现J2EE的唯一途径。