EJB概念剖析

EJB
(Enterprice Java Bean)
概念(白话版)
把你编写的软件中那些需要执行制定任务的类不放到客户端软件中,而是把它打包放到一个服务器上了。

EJB就是经那些类放到一个服务器上,用C/S形式的软件客户端对服务器上的类进行调用。

EJB的实现技术:
EJB是运行在独立服务器上的组件,客户端是通过网络对EJB对象进行调用的。在Java中,能够实现远程对象调用的技术是RMI,而EJB技术基础正是RMI.通过RMI技术,J2EE将EJB组件创建为远程对象,客户端就可以通过网络调用EJB对象了。

RMI:
对象的序列化、分布式计算与RPC(Remote Procedure Call)远程过程调用
二者结合就是RMI(Remote Method Invocation)远程方法调用
就是利用java对象序列化的机制实现分布式计算,从而实现远程类对象的实例化以及调用的方法,说的更清楚些,就是利用对象序列化来实现远程调用,也就是上面两个概念的结合体
利用这个方法调用远程的类的时候,就不需要编写Socket程序了,也不需要把对象进行序列化操作,直接调用就可以了,非常方便。

优点:这种机制给分布计算的系统设计,编程都带来了极大的方便。只要按照RMI规则设计的程序,可以不必再过问在RMI之下的网络细节了。如TCP和Socket等。任意两台计算机之间的通信完全有RMI负责。调用远程计算机上的对象就像本地对象一样方便。

缺点:如果是较为简单的方法调用,其执行效率也许会比本地执行慢很多,即使和远程Socket机制的简单数据返回的应用相比,也会慢一些,原因是:其在网络间需要传递的信息不仅仅包含该函数的返回值信息,还会包含该对象序列化后的字节内容。

通过RMI技术,JAVAEE将EJB组件创建为远程对象,EJB虽然用了RMI技术,但是却只需要定义远程接口,而无需生成它们的实现类,这样就将RMI技术中的一些细节问题给屏蔽 了。




以下情况尽量不要使用EJB
1.较为简单的纯Web应用开发,不需要使用EJB
2.需要与其他服务程序配合使用的应用,但调用或返回的自定义的网络协议可以解决的应用程序不需要使用EJB.
3.较多人并发访问的C/S架构的应用程序,尽量不要使用EJB.


你可能感兴趣的:(ejb)