什么是EJB[转帖]_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4072 | 回复: 0   主题: 什么是EJB[转帖]        下一篇 
luqunfang
注册用户
等级:少校
经验:1219
发帖:74
精华:0
注册:2012-6-25
状态:离线
发送短消息息给luqunfang 加好友    发送短消息息给luqunfang 发消息
发表于: IP:您无权察看 2012-7-25 9:56:32 | [全部帖] [楼主帖] 楼主

一、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构造的应用系统可以根据用户的需求分解成不同的构件,根据用户当前所需要的功能提供相关的构件,并随着用户新的需求随时下载新的构件。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论