`
xihongshi414
  • 浏览: 35752 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java EJB技术研究

阅读更多

王少锋 王克宏

[摘 要] Java的EJB技术代表的是一种前沿技术,它使得复杂的多层结构应用系统的开发变得容易,本文分析了EJB构件模型的体系结构、技术特点及应用前景,以及和其它相关技术的比较。
[关键词] Java,EJB,可重用构件

    一、EJB{Ent
ERP
rise JavaBeans}技术

  98年3月在San Francisco召开的JavaOne98开发者大会上,Sun公司正式 发布了
业界期待已久的EJB1.0版规范说明,在众多的大公司和开发人员中引起了巨大的反应,这标志着用Java开发企业级应用系统将变得简单。这次Ja- vaOne大会也被称之为"EJB展览会",许多公司纷纷表示要推出有关EJB的 产品,已经推出或正准备推出EJB产品的公司有:Sun、IBM、Inprise、BEA、 Gemstone、Informix、NCR、Netscape、Novell、Oracle、Persistence Progress、Secant、Sybase
、Symantec等。目前,EJB已成为Java企业计算平台的核心技术,今年5月10日Sun公司发布了EJB1.1版本规范说明草案,对1.0版本中的一些特征作补充说明和改进。
   Java平台包含许多用于开发企业级的、多层体系结构的、分布式应用系统的关键技术,如Java RMI
JDBC
、JNDI、Java管理API(JMAPI)、Java消息服务(JMS)、Java事务服务(JTS)、EJB等,每种技术都有各自不同的特点,本文主要讨论在企业级应用系统中极为重要的EJB技术。
   Sun公司发布的EJB规范说明中对EJB的定义是:EJB是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构。采用EJB可以使得开发商业应用系统变得、容易,应用系统可以在一个支持EJB的环境中开发,开发完之后部署在其它的环境中,随着需求的改变,应用系统可以不加修改地迁移到其它功能更强、更复杂的
服务器
上。
   在分布式应用系统的开发中,采用多层体系结构的方法有很多优点,如增加了应用系统的可伸缩性、可靠性、灵活性等。因为服务器端构件可以根据应用需求迅速地加以修改,且构件在
网络中的位置和 应用无关,因此系统管理员可以很容易重新配置系统的负载。多层体系结构非常适合于大数据量的商业事务系统,特别是在基于Web的应用中,需要多层体系结构支持瘦客户机及浏览器的快速Applet下载

   通常一个多层体系结构的企业级应用系统的开发非常复杂,因为涉及到很多事务处理,姿态管理,多
线程,资源调度,安全性操作以及其它许多底层的细节。EJB简化了多层体系结构应用系统的开发过程,使企业计算的开发人员专注于应用系统的解决方案
,而不需将过多的精力放在底层的计算细节,而且开发的组件能够运行于所有支持四B的环境之中,具有可复用性。
   一个开发商可以开发一个新的支持EJB的执行系统,但通常的做法是供应商对已有的系统进行政进以支持EJB,可以进行改进以支持EJB的系统包括:
   ·
数据库数理系统,如Oracle,Sybase,DB2
等;
   · web
应用服务器
,如Java Web Server, Netscape enterprise Server,Oracle Application Server等;
   · CORBA平台,如Iona Orbix/OTM,Borland VisiBroker/IT3等;
   · 事务处理监控器,如IBM TXSeries(CICS and Encina),BEA公司的Tuxedo等;
   · 构件事务服务器,如Sybase Jaguar CTS 或 Microsoft Transaction Server等。

二、软构件模型

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

   EJB Server负责与操作系统有关的底层细节,诸如和其它组件或系统的通讯协议、多线程、负载平衡等,EJB Container提供EJB的生存环境和各种服务(如Transaction Server),EJB Container和Server共同组成了EJB运行环境。
   通过使用RMI(Remote Method Invocation),,EJB支持远程的客户端存取。RMI产生一个对象,这个对象被安装在客户机系统中,作为存取服务器对象的代理对象,它使得服务器的位置对于客户机来说是透明的,EJB开发人员为每一个可存取的接口定义一个Java远程接口。
   通过使用IIOP协议(Interne InterORB Protocol ),EJB也可以和其他的非Java客户机进行通讯,IIOP允许EJB系统和CORBA的集成,EJB可以存取CORBA服务器,CORBA客户机也可以存取EJB服务器。 EJB构件模型给开发者提供的支持包括以下一些特征:
   · 可重用的构件
   · 可伸缩性
   · 资源管理
   · 事务支持
   · 并发性管理
   · 安全性管理
   EJB构件与Container之间有统一的界面,每一个EJB构件都可以运行在所有的运行环境中。在EJB构件模中有两种类型的EJB��session bean和entity bean,这两种类型的EJB代表了两种不同类型的事务逻辑的抽象。Session bean是短暂的对象,运行在服务器端,并执行一些应用逻辑处理,它由客户端应用程序建立,并仅被该应用程序所使用,其数据需要自己来管理,当系统停机后,session bean 不会再被恢复。Entity bean 是持久的对象,可以被其他对象调用,entity bean必须在建立时确定一个唯一的标识,并提供相应的机制允许客户应用程序根据entity bean标识来定位bean实例,多个用户可以并发访问entity bean,当系统停机时,entity bean可以被恢复。Entity bean在EJB1.0规范中可选的特征,但EJB技术发展非常快,在EJB规范说明1.I版本的草案中,已经规定entity bean是必须实现的特征,而不再是可选的特征。
   需要注意的是,对于不同的EJB服务器来说,其对客户机的格式的要求是不同的,例如,客户机和服务器建立连接的方式随服务器的不同而不同,但客户机的这些差异并不影响EJB的跨平台性。

三、EJB构件模型的特点

   在EJB1.O规范说明中,列出了设计EJB构件模型的目标,其中的一些如下:
   · EJB将成为用Java语言开发分布式的、面向对象的企业级应用系统的标准构件体系结构,EJB使得通过组合构件得到分布式应用系统成为可能。
   · EJB使得应用系统开发变得容易,应用系统开发人员不需要理解底层的事务处理细节、状态管理、多线程、资源共享管理、以及其它复杂的底层API细节。
   · EJB遵循Java的"write once,run anywhere"的思想,一旦一个EJB开发完成之后,就可以部署在任何支持EJB的平台上,而不需要重新编译或对源代码进行修改。
   · EJB定义了一个协议,使得用不同供应商提供的工具开发和部署的构件能在运行时互操作。
   · EJB体系结构和已有的服务器平台、其它的Java APL、CORBA等兼容。
   · EJB将支持enterprise Beans和其它的非Java应用系统的互操作性。
   采用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的映射。
   2、命名映射--说明了如何利用COS命名服务来确定EJBHome对象。
   3、事务映射--定义了EJB的事务支持到OMG Object Transaction Service(OTS)v1.1的映射。
   4、安全性映射��定义了EJB中的安全性特征到CORBA安全性的映射。
   映射确保了不管哪一种类型的客户机,通过生成相同的字节流,可以和基于CORBA的EJB服务器进行互操作。
   从以上的论述中可以知道,对于EJB服务器来说,有两种类型的客户机可以使用EJB:
   1.EJB/CORBA客户机��一个使用EJB API的Java客户机。客户机利用JNDI定位对象,利用HOP协议上的JavaRMI来调用远程方法,其中CORBA IDL的使用是隐含的,也就是说,开发人员只使用Java代码,开发客户机程序时可以不必了解CORBA及IDL知识。
   2.纯CORBA客户机��用CORBA IDL支持的任何语言写的客户机。客户机用COS命名服务来定位对象,用CORBA IDL来调用远程方法,用对象事务服务OTS来执行事务,其中开发人员要创建一个IDL文件,即CORBA IDL的使用是显式的。

   4.3 EJB和网络计算

   由Beans构造的应用系统可以根据用户的需求分解成不同的构件,根据用户当前所需要的功能提供相关的构件,并随着用户新的需求随时下载新的构件,而用户没有用到其功能的构件可以驻留在服务器上,这就是网络计算所倡导的概念。
   很多人并没有完全理解Java的概念,他们认为为了在一个客户端上运行Java程序,需要把一个庞大的、可能达几兆字节的Java应用程序一次性通过网络传输到客户端,事实上,这也是一些开发人员计划用Java开发应用系统时易犯的错误。
   把Java应用于服务器端的应用系统可以真正体现Java的威力,EJB是Java的服务器端构件模型,该模型保证开发出来的构件可以被部署在任何支持EJB规范说明的系统中,即使该系统是由不同的开发商提供的。在网络计算环境中利用Java的最好途径是由EJB提供服务器端的构件,而由JavaBean提供客户端的构件,两者结合在一起,将向"网络就是计算机"之路迈出一大步。

   五、总结

   对象技术、构件技术、快速应用开发等是计算机界的热门话题,Java的EJB技术的主要思想就是让"恰当的专家做恰当的事情",应用领域的开发人员将开发精力放在应用逻辑方面,而不用考虑底层的计算技术;而计算机专业开发人员去处理底层的计算技术细节,而不用考虑应用领域的专业知识。
   EJB计算技术代表的是一种前沿技术,它使得复杂的多层结构应用系统开发变得容易。EJB技术建立在已取得极大成功的Java语言之上,采用EJB技术能有效地进行软件复用,提高开发人员的效率,降低软件的开发和维护成本,提高软件的质量,控制所构建系统的复杂性。EJB技术将使得Java在企业计算中的地位得到加强,为基于Java的应用系统提供了一个框架,和目前的许多系统和模型相比,EJB具有许多优越性,种种迹象表明,EJB有可能成为多层结构分布式应用系统的服务器端构件模型的首要选择。

分享到:
评论
1 楼 xihongshi414 2009-01-13  
这是2005的文章,不知能用上什么内容,
但至少有将EJB与其他技术的比较。

相关推荐

    Java EJB方面的实例集.rar

    综上所述,"Java EJB方面的实例集.rar"为Java初学者提供了一条学习和掌握EJB技术的捷径。通过这些精心挑选的实例,学习者不仅能够快速了解EJB的基本概念和架构,还能亲身体验在实际项目中如何运用这些知识。在实际...

    基于Java开发的EJB技术应用探究.pdf

    "基于Java开发的EJB技术应用探究" 一、程序语言的概述 程序语言是一种编程语言,是用来定义计算机程序的形式语言。它采用标准的交流技巧,用来发送指令给计算机,计算机程序员能够精确定义计算机需要使用的数据,...

    Java EJB模型模拟完整代码.rar

    Java企业版(Enterprise JavaBeans,简称EJB)是Java平台上用于构建可扩展、安全和事务处理的服务器端应用程序的一种技术。这个"Java EJB模型模拟完整代码.rar"压缩包提供了一个学习EJB模型的实例,它包含了一系列...

    EJB技术代码样例

    EJB技术主要用于实现企业级的业务逻辑,它提供了多种类型的bean来处理不同类型的任务,如状态ful和状态less的bean,以及用于简单交互的会话bean。 1. **状态ful EJB(Stateful Session Bean)** 状态ful EJB维护了...

    EJB全实例教程

    **企业级JavaBeans(Enterprise JavaBeans,简称EJB)**是一种在Java平台上开发分布式企业级应用的核心技术。EJB规范定义了服务器端组件模型,它允许开发者创建可部署的、可复用的业务逻辑组件,这些组件可以在Java ...

    Beginning EJB in Java EE8-2018

    总而言之,《 Beginning EJB in Java EE 8 - Building Applications with Enterprise JavaBeans》是一本全面介绍Java EE8中EJB技术的权威指南,通过深入学习,读者可以掌握构建现代企业级应用所需的关键知识和技巧。

    基于EJB中间件技术的研究

    【基于EJB中间件技术的研究】 中间件技术是信息技术领域中的关键组成部分,它扮演着连接操作系统、网络、数据库和上层应用软件的角色。EJB(Enterprise JavaBeans)是基于Java平台的企业级中间件技术,主要用于构建...

    EJB技术的深入研究

    总之,EJB技术为Java EE应用提供了强大的后端支持,虽然在微服务时代面临挑战,但在大型企业级应用中仍然有着不可替代的作用。深入理解和熟练运用EJB,对于提升企业级应用的开发效率和质量具有重要意义。

    EJB 模拟银行ATM流程及操作源代码

    在本项目中,“EJB 模拟银行ATM流程及操作源代码”为我们提供了一个基于EJB技术实现的自动取款机(ATM)系统的实例,这有助于我们深入理解EJB的工作原理以及在实际业务场景中的应用。 首先,我们要了解EJB的基本...

    基于java的EJB的真实世界模型(源代码).zip

    Java企业版(Java EE,以前称为J2EE)是一个用于构建企业级应用程序的框架,它包含了一系列组件和服务,如JavaBeans...通过研究源代码,我们可以学习到如何设计、实现和部署EJB组件,进一步提升我们的Java EE开发技能。

    基于ejb的在线订票系统

    EJB技术主要包括三种类型的组件:Session Beans(会话bean)、Message-driven Beans(消息驱动bean)和Entity Beans(实体bean)。在在线订票系统中,可能会使用到以下EJB组件: 1. **Session Beans** - 通常用于...

    基于java的EJB 模拟银行ATM流程及操作源代码.zip

    【Java EJB技术详解】 Java Enterprise Edition (Java EE) 是一个用于开发企业级应用程序的平台,它提供了一系列标准和API,使得开发者可以构建分布式、多层的、可扩展的、安全的、健壮的Web应用。在Java EE中,...

    APress Pro EJB 3 Java Persistence API

    《APress Pro EJB 3 Java Persistence API》一书由Mike Keith和Merrick Schincariol共同编写,出版于2006年,是关于Java Persistence API(JPA)与Enterprise JavaBeans(EJB)3的深入研究。本书旨在为读者提供关于...

    ejb spring

    **ejb与Spring框架整合详解** ejb(Enterprise JavaBeans)是Java EE平台中的核心组件,主要用于构建可扩展的企业级...通过深入研究这个项目,可以进一步掌握ejb和Spring的集成技巧,提升在Java EE环境下的开发能力。

    java面试题包括ejb等

    Java面试题涵盖了许多核心概念和技术,对于准备Java开发者面试至关重要。EJB(Enterprise JavaBeans)是其中的一个关键领域,尤其在企业级应用开发中扮演着重要角色。让我们深入探讨一下这些知识点。 首先,Java...

    基于Java的中的EJB编程实例代码.zip

    【描述】本压缩包包含了使用Java企业版(Java Enterprise Edition,简称Java EE)中的企业级JavaBeans(Enterprise JavaBeans,EJB)技术进行编程的一些实例代码。EJB是Java平台企业级应用的核心组件,用于构建可...

    Mastering EJB 2nd edition

    这本书是第二版,旨在为读者提供EJB技术的全面理解和实践指导,适合想要深入了解和掌握EJB的开发者和架构师阅读。 EJB,全称Enterprise JavaBeans,是Java平台企业版(Java EE,原名为J2EE)的核心组件之一,用于...

    IBM 经典JAVA书籍 轻松愉快地构建 EJB

    IBM作为全球知名的IT巨头,其在Java技术领域的研究与贡献举足轻重,此书无疑是IBM在Java开发领域知识的结晶,旨在帮助开发者更高效、更轻松地掌握EJB的使用。 EJB是Java EE(Java Platform, Enterprise Edition)...

Global site tag (gtag.js) - Google Analytics