帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > JAVA编程
EJB-Java服务器端构件模型---模型介绍
作者:未知 发布时间:2005-03-12 来源:JSP天空网
作者:piex

  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构造的应用系统可以根据用户的需求分解成不同的构件,根据用户当前所需要的功能提供相关的构件,并随着用户新的需求随时下载新的构件,而用户没有用到其功能的构件可以驻留在服务器上,这就是网络计算所倡导的概念。
  很多人并没有完全理解Java的概念,他们认为为了在一个客户端上运行Java程序,需要把一个庞大的、可能达几兆字节的Java应用程序一次性通过网络传输到客户端。事实上,这也是一些开发人员计划用Java改写旧的应用系统时易犯的错误。
  在网络计算环境中利用Java的最好途径是由EJB提供服务器端的构件,而由JavaBeans提供客户端的构件,两者结合在一起,将向"网络就是计算机"之路迈出一大步。

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

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·谈谈JDBC
·JDBC专题介绍
·JDBC接口技术
·利用weblogic的POOL(连接池)连接
·Jsp中调用Oracle存储过程的小例子
·JSP数据库操作例程
·JSP数据库连接大全
·用连接池提高Servlet访问数据库的效
·一种简单JDBC连接池的实现
·数据库连接池Java实现小结
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统