当前位置:  技术问答>java相关

请高手告诉我EJB的长处及为什么要用EJB,最好能具体一点,有分送哦

    来源: 互联网  发布时间:2015-04-19

    本文导语:  最近要用EJB编程,想请教一下大家,谢谢! | 1998年3月在SanFrancisco召开的JavaOne98开发者大会上,Sun公司正式发布了业界期待已久的EJB1.0版(EnterpriseJavaBeans1.0)规范说明,在众多的大公司和开发...

最近要用EJB编程,想请教一下大家,谢谢!

|
1998年3月在SanFrancisco召开的JavaOne98开发者大会上,Sun公司正式发布了业界期待已久的EJB1.0版(EnterpriseJavaBeans1.0)规范说明,在众多的大公司和开发人员中引起了巨大的反应,这标志着用Java开发企业级应用系统将变得非常简单。这次JavaOne大会也被称之为"EJB展览会",许多公司纷纷表示要推出有关EJB的产品,已经推出或正准备推出EJB产品的公司有:IBM、Inprise、Gemstone、Informix、NCR、NetDynamics、Netscape、Novell、Oracle、PersistenceSoftware、Progress、Secant、Sybase、Symantec、Weblogic等。目前,EJB已经成为Java技术研究中的重点。

一、EJB概要
  EJB规范说明定义了Java的服务器端构件模型。目前,已有很多可供使用的、由第三方供应商提供的、用于客户端的构件,但用于服务器端的构件还不多。由于服务器端构件缺乏或很难构造,因此基本上每一个开发人员不得不从头开始构造服务器体系结构。EJB方法扩充了Java的客户端构件模型JavaBeans,以支持服务器端应用系统的开发。在EJB规范说明中,服务器中的很多功能由EJB容器提供,开发人员可以集中精力开发应用系统的核心功能。采用EJB技术可以大大减轻开发服务器端应用系统的工作量。因此,EJB规范说明一经发布,立即引起许多开发人员的极大兴趣。
  Sun公司发布的文档中对EJB的定义是:EJB是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构。采用EJB可以使开发商业应用系统变得容易,应用系统可以在一个支持EJB的环境中开发,开发完之后部署在其他的环境中,随着需求的改变,应用系统可以不加修改地迁移到其他功能更强、更复杂的服务器上。
  EJB简化了多层体系结构应用系统的开发过程。在分布式应用系统的开发中,采用多层体系结构的方法有很多优点,如增加了应用系统的可伸缩性的、可靠性、灵活性等。因为服务器端构件可以根据应用需求迅速地加以修改,且构件在网络中的位置和应用无关,因此系统管理员可以很容易地重新配置系统的负载。多层体系结构非常适合于大数据量的商业事务系统,特别是在基于Web的应用中,需要多层体系结构支持瘦客户机及浏览器的快速Applet下载。目前,越来越多的系统开始采用多层体系结构的方法。
  EJB把Java的"Writeonce,runanywhere"思想提到一个新的高度,服务器端构件在构件执行系统内运行,规范说明定义了构件执行系统所需要的服务。遵从EJB规范说明开发的构件可以在任何一个支持EJB的系统中运行。
  通过使用RMI,EJB支持远程的客户端存取。RMI是一个高级程序设计接口,它使得服务器的位置对于客户机来说是透明的,RMI产生一个对象,这个对象被安装在客户机系统中,作为存取服务器对象的代理对象,EJB开发人员为每一个可存取的接口定义一个Java远程接口。
  通过使用IIOP协议(InternetInterORBProtocol),EJB也可以和其他的非Java客户机进行通信。IIOP允许EJB系统和CORBA的集成,EJB可以存取CORBA服务器,CORBA客户机也可以存取EJB服务器。
  一个开发商可以开发一个新的支持EJB的执行系统,但通常的做法是供应商对已有的系统进行改进以支持EJB。可以进行改进以支持EJB的系统包括:
· 数据库管理系统,如Oracle、Sybase、DB2等;
· Web应用服务器,如JavaWebServer、NetscapeEnterpriseServer、OracleApplicationServer等;
· CORBA平台,如IonaOrbix/OTM、BorlandVisiBroker/ITS等;
· 事务处理监控器,如IBMTXSeries(CICSandEncina)、BEA公司的Tuxedo等;
· 构件事务服务器,如SybaseJaguarCTS或MicrosoftTransactionServer等。

二、软构件模型
  软构件模型的思想是创建可重用的构件并将其组合到容器中,以得到新的应用系统。构件模型定义了构件的基本体系结构、构件界面的结构、与其他构件及容器相互作用的机制等。利用构件模型规范说明,构件开发人员开发那些实现了应用系统逻辑的构件,而应用系统开发人员则把这些预先开发好的构件组合成应用系统,这些应用系统也可以作为新的构件。软构件模型思想已经在软件开发界迅速流行,因为它可以达到以下这些目的:重用、高层开发、通过工具进行自动化开发,简化开发过程等。JavaBeans、EJB、COM/DCOM等都是软构件模型的例子。
  有两种类型的软构件模型:客户端构件模型和服务器端构件模型。客户端构件模型如JavaBeans是专门用于处理程序的表示及用户界面问题的;服务器端构件模型如EJB则向面向事务的中间件提供基础设施。
  服务器端构件模型把构件模型的开发和中间件联系在一起。企业级应用的中间件以其复杂性著称,它不仅涉及到应用逻辑、并发性和伸缩性问题,而且涉及到如何把不兼容的系统组合在一起的问题。服务器端构件模型解决了中间件开发的复杂性问题,它使中间件开发人员集中于应用系统的逻辑部分,而不用处理同步、可伸缩性、事务集成、网络、分布式对象框架等一些分布式应用系统中存在的复杂的细节问题。EJB构件模型如图1所示:
  EJB构件模型给开发者提供了以下的一些支持:
· 构件包含应用系统逻辑
· 可重用的构件
· 可伸缩性
· 资源管理
· 事务支持
· 并发性管理。

三、EJB构件模型的目标
  在EJB1.0规范说明中,列出了设计EJB构件模型的目标,其中的一些如下:
  (1)EJB将成为用Java语言开发分布式的、面向对象的商业应用系统的标准构件体系结构,EJB使得通过组合构件得到分布式应用系统成为可能。
  (2)EJB使得应用系统开发更容易,应用系统开发人员不需要理解底层的事务处理细节、状态管理、多线程、资源共享管理以及其他复杂的底层API细节。
  (3)EJB遵循Java的"Writeonce,runanywhere"的原则,一旦一个EJB开发完成之后,那么就可以部署在任何支持EJB的平台上,而不需要重新编译或对源代码进行修改。
  (4)EJB定义了一个协议,使得用不同供应商提供的工具开发和部署的构件能在运行时互操作。
  (5)EJB体系结构和已有的服务器平台、其他的JavaAPI、CORBA等兼容。
  (6)EJB将支持EnterpriseBeans和其他的非Java应用系统的互操作性。 

  采用EJB开发应用系统有很多优点,如标准的Java技术使得应用系统可以在许多不同的服务器平台上运行;修改应用系统变得容易,对单个构件进行增加、修改、删除等操作,对应用系统体系结构的影响很小;应用系统经过划分之后,使得构件之间相互独立,又可以相互协作,提供给用户的是该用户所需要的构件;应用系统的开发变得容易,基本上是即插即用的方式;应用系统从本质上说是可伸缩的,可以运行在多线程、多处理机的环境中;EJB可以在新的应用系统中得到重用,减少了开发时间。
  当然,和其他的新技术一样,EJB也存在一些缺点,主要有:EJB的数量可能非常多,以至在软件开发库中很难对这些EJB进行跟踪和管理;如果应用开发人员不能正确地使用EJB,可能导致不恰当的应用系统设计,结果使得应用系统的总体性能下降;除非JVM及编译器的性能得到提高,否则EJB应用系统的性能仍将是一个问题;由于EJB技术出现时间不长,因此目前可用的EJB还不多,要想得到大量的商业性EJB还需要一段时间。

四、EJB和其他技术的关系
  1.EJB和JavaBeans的关系
  很多人往往把JavaBeans和EJB混淆,JavaBeans提供了基于构件的开发机制,一般JavaBeans是可视化的构件,也有一些JavaBeans是非可视化的,JavaBeans可以在多个应用系统中重用。一个标准的JavaBean是一个客户端构件,在运行时不能被其他客户机程序存取或操作。但客户端的JavaBeans容器可以根据JavaBeans的属性、方法、事件的定义在设计时或运行时对JavaBeans进行操作,JavaBeans不一定要用于Client/Server系统。
  EJB没有用户界面,并完全位于服务器端,EJB可以由多个JavaBean组成,规范详细说明了EJB容器需要满足的需求以及如何与EJB构件相互协作。EJB可以和远程的客户端程序通信,并提供一定的功能。根据规范说明,EJB是Client/Server系统的一部分,如果不和客户端程序交互,EJB一般不执行具体的功能,EJB和JavaBeans的一个重要区别是EJB提供了网络功能。
  2.EJB和CORBA的关系
  根据规范说明中的需求,以下的一些功能是需要的:
· 一个CORBA客户机(用CORBA支持的语言写的程序)可以存取基于CORBA的EJB服务器上的构件。
· 一个客户机在一个事务过程中可以同时调用CORBA和EJB对象。
· 一个事务可以同时利用多个由不同开发商提供的基于CORBA的EJB服务器。
  为了保证多个开发商之间的基于CORBA的EJB产品之间的互操作性,规范说明定义了EJB到CORBA的映射,分为四个部分:
  (1)分布映射:定义了EJB和CORBA对象之间的关系,以及EJB规范说明中定义的JavaRMI远程接口到OMGIDL的映射。
  (2)命名映射:说明了如何利用COS命名服务来确定EJBHome对象。
  (3)事务映射:定义了EJB的事务支持到OMGObjectTransactionService(OTS)v1.1的映射。
  (4)安全性映射:定义了EJB中的安全性特征到CORBA安全性的映射。
  映射确保了不管哪一种类型的客户机,通过生成相同的字节流,可以和基于CORBA的EJB服务器进行互操作,如图2所示。

  从以上的论述中可以知道,对于EJB服务器来说,有两种类型的客户机可以使用EJB:
  (1)EJB/CORBA客户机:一个使用EJBAPI的Java客户机。客户机利用JNDI确定对象,利用IIOP协议上的JavaRMI来调用远程方法,其中CORBAIDL的使用是隐含的,也就是说,开发人员只使用Java代码,开发客户机程序时可以不用了解CORBA及其IDL知识。
  (2)纯CORBA客户机:用CORBAIDL支持的任何语言写的客户机。客户机用COS命名服务来确定对象,用CORBAIDL来调用远程方法,用对象事务服务OTS来执行事务,其中程序设计人员要创建一个IDL文件,即CORBAIDL的使用是显式的。
  3.EJB和网络计算由JavaBeans构造的应用系统可以根据用户的需求分解成不同的构件,根据用户当前所需要的功能提供相关的构件,并随着用户新的需求随时下载新的构件,而用户没有用到其功能的构件可以驻

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问EJB高手,EJB主要用在b/s方式还是c/s,还是两这都可?有用过jBoss的吗?有配置文档吗?一定给分!!
  • EJB的问题,希望用EJB做过开发的高手回答。
  • 问EJB高手一个问题
  • 我做ejb方面的毕业设计,哪位高手给点建议!
  • 关于ejb的配置和使用(你是真正的高手吗?)
  • JBUILDER 5高手请进,EJB的使用问题。
  • 高手:jbuilder6里怎么测试EJB2.0
  • weblogic或EJB高手有没有啊?
  • 请问高手们,哪里有EJB的学习资料或是源程序?
  • 高手指点ejb中的实体bean问题!
  • 我的EJB在JBUILDER中总是调试不成功,高分请高手
  • 请教高手关于ejb2.0的BMP问题
  • EJB问题,请教高手(非高手莫进)
  • 请高手指点如何用visual age for java 3.x开发和调试ejb? 急急急!!!!
  • 求教高手ejb的事务问题!
  • 帮帮忙 ejb 高手请进 -------------------------- 赠送100分
  • 急问高手!EJB,送分问题!
  • 请问各位高手,rmi和ejb有什么关系。开发客户端为javaapplet的多层结构系统怎样用到他们???
  • 一个ejb问题, 高手请进!!!
  • 高手请进,关于Ejb部署的问题
  • 高手,高手,高高手请进!
  • 有熟悉EXIM的高手高手么??
  • to 高手:学java应该怎样一步步学习,从菜鸟到高手.
  • 高分请高手,高手定能解决
  • 请问高手在linux中用什么命令可以做linux的启动盘???在等待高手??
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点
  • 难道高手区里的人就是高手?
  • 在dos下用bc31挑战高手******开发mssql程序,连接时报link err:undefined symbol GETNOTE in module DBEXTERN?(挑战高手)
  • 真正的linux高手,请看过来,看你符合高手标准不?
  • 难道这没有高手吗?难道这没有乐于助人的高手?(高分酬谢62+50+50)
  • 关于我对linux高手用yum,非高手用源码的理由


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3