1.EJB和JavaBean的关系

  很多人往往把JavaBean和EJB混淆起来,JavaBean提供了基于构件的开发机制,一般JavaBeans是可视化的构件,也有一些JavaBeans是非可视化的,JavaBeans可以在多个应用系统中重用,一个标准的JavaBeans是一个客户端构件,在运行时不能被其他客户机程序存取或操作,但客户端的JavaBeans容器可以根据JavaBeans的属性、方法、事件的定义在设计或运行时对JavaBeans进行操作,JavaBeans不一定要用于Client/Server结构的系统。

  EJB没有用户界面,完全位于服务器端,EJB可以多个JavaBean组成,规范说明详细说明了EJB容器需要满足的需求以及如何和EJB构件相互协作。EJB可以和远程客户端程序通信,并提供一定的功能,根据规范说明,EJB是Client/Server系统的一部分,如果不和客户端程序交互,EJB一般不执行具体的功能。EJB和JavaBean的一个重要区别是EJB提供了网路功能。

 2.EJB和RMI的关系

  EJB是分布式的组件,它支持远程调用。而EJB的这些网络特性是建立在RMI之上的,可以说,RMI是EJB网络特性的基石。

  因为EJB是分布式的,所以如何定位一个EJB也是需要解决的问题,而这个问题和RMI里如何定位一个对象是一样的,EJB也用了RMI registry的思想,EJB里的JNDI(Java Naming and Directory Interface)也提供了注册一个对象的服务,已经注册了的对象可以很容易的被找到。这和RMI的registry的想法和功能上是一样的。
 
  越深入EJB,你就会看到越多的RMI的影子。

 3. EJB和网络计算的关系

  由Beans构造的应用程序可以根据用户的需求分解成不同的构件,根据用户当前所需要的功能提供相关的构件,并随着用户新的需求随时下载新的构件,而用户没有用到其功能的构件可以驻留在服务器上,这就是网络计算所倡导的概念。

  很多人并没有完全理解Java的概念,他们认为为了在一个客户端上运行Java程序,需要把一个庞大的、可能达几兆字节的Java应用程序一次性通过网络传输到客户端,事实上,这也是一些开发人员计划用Java改写旧的应用系统时易犯的错误。

  在网络计算环境中利用Java的最好途径是由EJB提供服务端的构件,而由JavaBeans提供客户端的构件,两者结合在一起,将会使应用系统的搭建更为简单和快速。

  只有把Java应用于服务器端的应用系统才能真正体现Java的威力,EJB是Java的服务器端构件模型,该模型保证开发出来的构件可以被部署在任何支持EJB规范说明的系统中,既使该系统是由不同的开发商提供的。采用EJB可以提高开发人员的生产率,构件开发人员和应用开发人员不需要实现系统中的一些复杂的逻辑结构,因为构件的容器已提供对这些服务的自动管理和控制,采用EJB开发的应用系统不用修改就可以从一个服务器迁移到另一个功能更强的服务器上。

  总之,EJB技术将使得Java在企业计算中的地位得到加强,为基于Java的应用系统提供了一个框架,和目前的许多系统和模型相比,EJB具有许多优越性,种种迹象表明,EJB有可能成为分布式应用系统的服务器端构件模型的首要选择。