采用
EJB开发应用系统有很多优点,如:(1)标准的
Java技术便利应用系统可以在许多不同的
服务器平台上运行;(2)修改应用系统变得容易,对单个构件进行增加、修改、删除等操作不会对应用系统体系结构产生很大影响;(3)应用系统经过划分之后,使得构件之间相互拙立,又可以相互协作,提供给用户的是该用户所需要的构件:(4)应用系统的开发变得容易,基本上是即插即用的方式;(5)应用系统从本质上说是可伸缩的,可以运行在多线程、多处理机的环境中;(6)UB可以在新的应用系统中得到重用,减少了新系统的开发时间。
当然,和其它的新技术一样,EJB也存在一些缺点,主要有:(1)EJB的数量可能非常多,以致在
软件开发库中很难对这些EJB进行跟踪和管理;(2)如果应用开发人员不能正确地使用EJB,可能导致不恰当的应用系统
设计,结果使得应用系统的总体性能下降;(3)除非WM及编译器的性能得到提高,否则EJB应用系统的性能仍将是个问题;(4)由于EJB技术出现时间不长,目前可用的EJB还不多,要想得到大量的商业性EJB还需要一段时间。
四、EJB和其它技术的比较
4.1 EJB和JavaBeans的比较
很多人往往把JavaBeans和EJB混淆起来,JavaBeans提供了基于构件的开发机制,JavaBeans可以在多个应用系统中重用,开发者可以通过属性表或通过定制的方法来定制JavaBean。多个JavaBean可以组合在一起构成Java applet或Java应用程序,或建立新的JavaBean,JavaBean容器可以根据JavaBean的属性、方法、事件的定义在设计时或运行时对JavaBean进行操作。
在JavaBean构件模型中,重点是允许开发人员可以在开发工具中可视化地操作构件,为此,JavaBean详细地描述了API的细节,以及构件之间事件注册和发送,属性的识别和利用,定制,永久性等细节。
EJB是一种非可视化的构件,完全位于服务器端,规范说明详细说明了EJB容器需要满足的需求以及如何和EJB构件相互协作。EJB可以和远程的客户端程序通讯,并提供一定的功能,根据规范说明,EJB是client/Server系统的一部分,如果不和客户端程序交互,EJB一般不执行具体的功能,EJB和JavaBean的一个重要区别是EJB必须在网络计算环境下使用才有意义。
EJB的重点是给出服务框架模型,以保证Java构件可以进行可移植性的部署,因此,在EJB规格说明中,并没有提到事件,因为典型的EJB构件不发送和接收事件,EJB规范说明中也没有提到属性。和一般的JavaBean一样,EJB是高度可定制的,对EJB进行定制不需要存取源代码,但对EJB可以进行定制不是在开发阶段,而是在部署阶段用部署描述符进行定制。
需要说明的是,JavaBean不仅可用于客户端应用程序的开发,也可以用于服务器端应用程序的开发,但和EJB的区别是,如果用JavaBean创建服务器端应用程序,还必须同时实现服务框架,在多层结构分布式应用系统中,服务框架的实现是非常繁琐的,对于EJB来说,服务框架已经提供,因此大大简化了系统的开发过程。
4.2 EJB和CORBA
CORBA是目前分布式对象处理的事实工业标准,大部分厂商都宣布支持CORBA标准,同样,在EJB规范中,也考虑到对CORBA的支持。规范主要规定如下:
· 一个CORBA客户机(用CORBA支持的语言写的程序)可以存取基于CORBA的EJB服务器上的构件。
· 一个客户机在一个事务过程中可以同时调用CORBA和EJB对象。
· 一个事务可以同时利用多个由不同开发商提供的,基于CORBA的EJB服务器。
为了保证多个开发商之间的基于CORBA的EJB产品之间的互操作性,规范说明定义了EJB到CORBA的映射,分为四个部分:
1、分布映射--定义了EJB和COR-BA对象之间的关系,以及EJB规范说明中定义的Java RMI到OMG IDL的映射。
上一页 下一页