`
happmaoo
  • 浏览: 4472861 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

EJB概述:分布式多层体系结构

阅读更多
互联网以及电子商务技术的普及和发展,推动着企业信息系统的构建和更新进程。为了缩短企业信息系统的设计和开发周期、降低构建企业信息系统的成本、在已有系统中对变化的商务规则迅速地做出反映,Sun公司制订了Java2 SDK Enterprise Edition(J2EE)规范,定义基于组件的方式设计、开发、组装和部署企业应用系统的各个组成部分。

J2EE规范定义了分布式多层应用系统模型、组件重用策略、一致化的安全模型以及灵活的事务控制策略等,使得独立软件提供商(ISV)能够以比以前更快的速度向市场推出具有用户适应性的客户解决方案。另外,平台独立、基于组件技术的J2EE解决方案不受软件产品类型和不同应用环境的制约。

分布式多层应用模型

在实际构建的企业信息系统中,需要根据J2EE规范定义的分布式多层应用模型将不同性质和用途的组件部署到不同类型的应用服务器中。J2EE规范根据企业信息系统各个组成部分在功能上的区别,将整个应用系统划分为客户层、中间层(其中可包括WEB层、业务层)和企业信息系统层三层结构,如下图所示。各个应用层分别配置在不同类型的应用服务器中。



图1 基于J2EE规范划分的企业应用系统逻辑层

客户层

客户层用于与企业信息系统的用户进行交互以及显示根据特定商务规则进行计算后的结果。基于J2EE规范的客户端可以是基于WEB的,也可以是不基于WEB的独立(Stand Alone)应用程序。

在基于WEB的J2EE客户端应用中,用户在客户端启动浏览器后,从WEB服务器中下载WEB层中的静态HTML页面或由JSP或Servlets动态生成的HTML页面。

在不基于WEB的J2EE客户端应用中,独立的客户端应用程序可以运行在一些基于网络的系统中,比如手持设备或汽车电话等。同样,这些独立的应用也可以运行在客户端的Java Applet中。这种类型的客户端应用程序可以在不经过WEB层的情况下直接访问部署在EJB容器(EJB Container)中的EJB组件。

与数据库记录在数据库表中的存在方式类似,在实体组件中定义了用于标识实体组件的主键(Primary Key)对象。该主键与标识数据库表记录的主键相对应,代表同一数据库记录的实体组件的主键值是相同的。客户端应用程序能够利用主键来定位EJB容器中的实体组件,进而定位实体组件表示的数据库记录。

按照实体组件的生命期管理方式,EJB规范将实体组件划分为组件管理持久性(Bean-Managed Persistence,BMP)和容器管理持久性(Container-Managed Persistence,CMP)两种类型。在组件部署过程中,由部署工具为容器管理持久性类型EJB组件的生命期方法编写组件状态转换代码,EJB容器调用这些方法实现组件的状态转换。相对而言,组件程序设计人员必须为组件管理持久性类型EJB组件编写控制组件的创建、删除、激活、关闭等生命期测量的SQL代码。

◇消息驱动组件

消息驱动组件(Message Driven Bean)是EJB2.0规范中引入的新型组件,用于在EJB容器中提供一种响应外部事件消息的组件类型机制。

在引入消息驱动类型EJB组件之前,基于J2EE的分布式应用对于事件消息的处理方式是利用独立的Java事件处理程序来监听来自于客户端应用程序、EJB组件、JSP组件甚至是J2EE平台之外事件源发出的符合Java消息服务(Java Message Service,JMS)规范事件消息。引入消息驱动类型EJB组件后,部署在EJB容器中的消息驱动类型EJB组件利用组件中定义的OnMessage方法监听来自事件源的消息并做出反映,进而能够调用其它类型的组件来对消息进行响应。消息驱动类型EJB组件作为EJB容器中的事件监听器(Listener),可以在接收到来自JMS消息队列中的事件消息后由EJB容器来激活消息驱动组件对象实例。

消息驱动组件是服务器端的无状态类型组件。该类型的组件只有组件类定义,没有类似于会话组件和实体组件的Home接口和Remote接口。

EJB规范定义的开发者角色

EJB组件体系结构是基于J2EE规范构建的应用软件系统的主要部分。完整J2EE应用的核心内容是封装了商务逻辑的EJB组件。

按照EJB2.0规范的定义,基于EJB规范的分布式计算体系结构由六个角色组成,这六个角色可以是软件开发团队、系统软件供应商、应用软件集成商等,每个角色所完成的工作必须遵循EJB规范,以保证彼此之间的兼容性。这六个角色分别是:

◇EJB组件开发者

EJB组件开发者(Enterprise Bean Provider)负责开发封装有商务规则的EJB组件。EJB组件开发者定义EJB组件的Home接口和Remote接口、编写组件类并且提供部署EJB组件的部署描述文件(Deployment Descriptor)。EJB组件开发者是商务应用开发领域的专家,不需要精通系统级编程方法以及系统级的组件事务管理、同步、安全性、分布式计算等细节。

◇部署者

部署者(Deployer)负责将打包后的EJB组件部署到EJB服务器等应用环境中。部署者应根据EJB组件的部署描述文件中声明的对各种类型的资源,如数据库、安全性管理等的需求来配置EJB服务器来为组件提供服务。部署者是EJB应用环境方面的专家。

◇应用组装者

应用组装者(Application Assembler)负责将各种类型的EJB组件组合成一个完整的应用系统,因此应用组装者必须明确待组装EJB组件的Home接口和Remote接口定义的详细内容。

◇EJB服务器提供者

EJB服务器通常由操作系统开发商、中间件开发商或数据库开发商来提供。因此,EJB 服务器提供者(EJB Server Provider)是应用软件系统领域的专家,精通分布式系统管理、分布式对象管理及其它系统服务。

◇EJB容器提供者

EJB 容器提供者(EJB Container Provider)是系统级的编程专家,其工作主要集中于开发可伸缩的,具有事务、交易和安全管理功能的集成在EJB服务器中的EJB容器。EJB容器提供者为EJB组件开发者提供了一组标准的API来访问EJB容器,使EJB组件开发者不需要了解EJB服务器中的各种技术细节就能够开发出部署在EJB容器中的EJB组件。

在实际应用中,通常假定EJB服务器提供者和EJB容器提供者来自同一软件开发商,因而没有定义EJB服务器提供者和EJB容器提供者之间的接口标准。

◇系统管理员

系统管理员(System Administrator)负责为EJB服务器和EJB容器提供一个企业级的计算环境并利用EJB服务器和EJB容器提供的监测管理工具监测EJB组件的运行情况。

EJB容器

企业信息系统业务层中的EJB组件通常部署在被称为EJB容器的应用服务器中,由EJB容器提供EJB组件的状态管理、事务管理、线程管理、远程数据资源访问、连接管理和安全性管理等系统级服务。所有的EJB组件实例都运行在EJB容器中,由EJB容器控制着EJB组件的生命期。EJB组件可以被定制为提供安全和事务处理等各种系统级服务,但这些服务特性在本质上不属于EJB组件类,而是由部署EJB组件的容器来提供和实现的。

按照EJB规范编写的任何EJB组件均可以部署到任何一个与规范兼容的EJB容器中,可以根据应用系统的需要配置EJB容器来对组件的事务或安全性进行管理。在EJB组件部署过程中将业务逻辑的处理功能与底层的应用系统服务逻辑分开,使得EJB容器可以在运行时(Runtime)创建和管理EJB组件。

在11月28日的EJB系列讲座的第二讲中,我们将详细介绍EJB组件的基本结构。


WEB层

J2EE规范定义的WEB层由JSP页面、基于WEB的Java Applets以及用于动态生成HTML页面的Servlets构成。这些基本元素在组装过程中通过打包来创建WEB组件。运行在WEB层中的WEB组件依赖WEB容器来支持诸如响应客户请求以及查询EJB组件等功能。

业务层

在基于J2EE规范构建的企业信息系统中,将解决或满足特定业务领域商务规则的代码构建成为业务层中的Enterprise JavaBean(EJB)组件。EJB组件可以完成从客户端应用程序中接收数据、按照商务规则对数据进行处理、将处理结果发送到企业信息系统层进行存储、从存储系统中检索数据以及将数据发送回客户端等功能。

部署和运行在业务层中的EJB组件依赖于EJB容器来管理诸如事务、生命期、状态转换、多线程及资源存储等。这样,由业务层和WEB层构成了多层分布式应用体系中的中间层。

企业信息系统层

在企业应用系统的逻辑层划分中,企业信息系统层通常包括企业资源规划(ERP)系统、大型机事务处理(Mainframe Transaction Processing)系统、关系数据库系统(RDMS)及其它在构建J2EE分布式应用系统时已有的企业信息管理软件。

J2EE平台应用编程环境

按照对基于J2EE规范的企业应用系统逻辑层的划分,通常将分布式应用系统的编程环境划分为如下四种类型:

◇EJB容器

EJB容器用于提供EJB组件的开发、部署和运行环境。

◇WEB容器

WEB组件用于提供应用系统的显示逻辑,而WEB容器则提供适合于Servlet和JSP开发、部署和运行的环境。

◇客户应用容器

客户应用容器用于提供分布式应用系统的客户端运行环境,其本质上是J2SE。

◇Applet容器

提供适合于Java Applet运行的浏览器运行环境。

Enterprise JavaBean规范的基本特征

在J2EE规范将企业应用系统划分的各逻辑层中,将封装商务规则的EJB组件部署在业务层中,用于根据客户端的服务请求进行业务数据的处理。EJB组件是基于分布式事务处理的企业级应用程序组件,其中包含处理业务数据的应用逻辑以及客户端调用EJB组件的商务方法获取服务的客户端接口。当一个遵循EJB规范开发的第三方EJB组件被集成到一个应用系统中时,不需要更改其实现代码或者重新编译。

EJB组件类型

在EJB2.0规范中定义了三种类型的组件:会话组件(Session Bean)、实体组件(Entity Bean)和消息驱动组件(Message-Driven Bean)。

会话组件和实体组件的定义由Home接口、Remote接口和组件类构成。在EJB组件的Home接口中定义了创建、删除和定位EJB组件的方法;EJB组件的Remote接口用于定义组件能够提供的商务方法;EJB组件类则用于实现Home接口中定义的组件生命期方法以及Remote接口中定义的商务方法。

◇会话组件

会话组件代表EJB组件与客户程序的一个短暂交互过程,其完成的功能可能是执行数据库读写操作或者是进行简单的数学计算等。

会话组件可以看成是瞬态的,其生命周期相对短暂,只有在客户程序与会话组件保持联系的过程中会话组件才具有生命力。如果客户程序结束会话过程,EJB容器将会话组件对象实例移出EJB容器中的组件实例池,该会话组件实例将失去生命力。另外,如果在客户程序与会话组件交互过程中EJB容器崩溃,那么用户必须重新创建一个新的会话组件对象实例来继续会话过程。

按照EJB2.0规范的定义,会话组件分为有状态(Stateful)和无状态(Stateless)两种类型。有状态会话组件中包含表示客户程序访问和更新数据的会话状态参数。会话状态参数用于记录会话组件引用的对象状态而不是在关系数据库中存储的数据资源。相对而言,在无状态会话组件中没有用于记录与特定客户程序相关联的状态参数,因此不能够记录客户程序的状态和保持客户程序在服务器端行为。

◇实体组件

实体组件用于提供数据库中数据记录在EJB服务器中的对象类型视图。一个实体组件代表数据库表中一行数据记录。客户端应用程序对实体组件的访问等价于对EIS层中数据库的访问过程。在多客户应用的情况下,通过EJB容器的事务管理功能能够使多个客户进程以共享的方式访问同一个实体组件,进而保持组件对应数据库记录的一致性和完整性。实体组件的状态是持续的,只要数据库中的数据记录存在,实体组件创建后就一直存在于EJB容器中,即使EJB服务器崩溃,实体组件同样具有生命力。
分享到:
评论

相关推荐

    J2EE分布式多层体系结构

    总的来说,J2EE分布式多层体系结构为构建大规模、高性能的企业应用提供了坚实的基础,通过标准化的组件模型和严格的层次划分,降低了复杂性,提高了开发效率,同时保证了系统的稳定性和可维护性。

    基于EJB组件的分布式应用开发

    EJB体系结构概述 EJB是J2EE服务器端的一种软件组件,适用于开发和部署多层次、分布式的、面向对象的Java应用系统。EJB的体系结构主要包括以下几个部分: - **EJB服务器**:管理EJB容器的高端进程或应用程序,提供...

    北邮 分布式计算课件 教师:邹华 第四章:ejb-1

    本章节主要关注Enterprise Java Beans(EJB),它是Java平台上的一种服务器端服务框架,为开发分布式、面向对象的企业应用提供了标准构件体系结构。 【EJB的主要内容】 1. **概述**:EJB是Java在服务器端的服务...

    ejb持久化基于J2EE的分布式数据库

    **分布式多层体系结构** J2EE架构通常采用三层模型:表现层、业务逻辑层和数据逻辑层。表现层由客户端或瘦客户端组成,它们向中间层发送请求。业务逻辑层主要由Java Servlets、JSP和EJB(Enterprise JavaBeans)...

    基于Java的多层分布式应用模型研究.pdf

    在探讨基于Java的多层分布式应用模型研究前,有必要了解多层分布式系统的发展背景及其体系结构的特点。传统的集中模式和两层模式已不能满足大型信息系统对可扩展性、可维护性和高性能的需求。因此,多层模式,特别是...

    EJB简介Enterprise Java Bean 下载

    【EJB在J2EE应用体系结构中的角色】 J2EE(Java 2 Platform, Enterprise Edition)是一个多层、分布式软件架构,旨在提供一套标准的框架来开发和部署企业级应用。EJB在J2EE体系结构中位于业务层,负责执行核心的业务...

    J2EE在分布式联合数字参考咨询平台中的应用.pdf

    通过利用J2EE提供的多层体系结构、组件重用和事务管理等功能,开发者能够设计并实现一个开放、灵活、实时的分布式系统,从而满足数字图书馆快速发展的需要,并提供更加丰富和及时的服务给最终用户。

    WebLogic Server J2EE 体系结构简介 .rar_J2EE_weblogic

    **J2EE体系结构概述** J2EE体系结构主要分为三层:表现层、业务逻辑层和数据访问层,也称为客户端层、应用服务器层和数据库层。 1. **表现层**:这是用户与应用交互的地方,通常包括Web浏览器或瘦客户端应用程序。...

    EJB3.1讲解

    EJB体系结构主要由以下几个部分组成: 1. **EJB服务器容器**:作为EJB容器与底层平台之间的桥梁,提供访问系统服务的能力。 2. **EJB容器**:提供系统级别的服务并控制EJB的生命周期。 3. **EJB组件**:实现企业级...

    EJB.rar_ejb

    EJB体系结构还包括了以下关键组件: - **容器**:提供EJB组件运行所需的环境,负责管理Bean的生命周期、事务、安全性和并发控制。 - **部署描述符**:XML文件,定义了EJB的配置信息,如接口、方法、事务属性等。 - ...

    J2EE体系结构及其主要设计模式

    ### J2EE体系结构及其主要设计模式 #### J2EE体系结构 **1.1 J2EE产生前提** 随着企业应用系统的不断复杂化以及分布式应用程序的需求增加,传统的开发方式已经无法满足新的需求。例如,当应用程序需要跨越多个...

    基于J2EE的多层服务体系架构.doc

    基于 J2EE 的多层服务体系架构是指使用 Java 2 Platform, Enterprise Edition (J2EE) 设计和开发面向服务的体系结构(SOA)框架的多层服务体系架构。SOA 是一种分布式的软件模型,主要组件包括服务、动态发现和消息...

    EJB概念

    EJB的体系结构是基于对象组件模型的,其上层是分布式应用程序,下层则依赖API技术来处理事务服务。EJB技术简化了Java企业应用的开发、配置和执行过程。开发者编写好代码后,组件会被组合到特定文件中,每个文件包含...

    J2EE体系结构设计

    **J2EE体系结构设计**,作为一门深度探讨企业级应用开发的技术,是Java开发者必须掌握的核心知识之一。J2EE(Java 2 Platform, Enterprise Edition)为构建分布式、多层的企业级应用程序提供了全面的框架。它允许...

    web应用程序概论,J2EE的N层体系结构

    软件体系结构的演变经历了单层、两层、三层到多层(N层)的过程。单层结构将所有功能混杂在一起,导致维护困难和重用性低;两层结构(C/S架构)将表示逻辑与部分业务逻辑分离,但仍存在混淆问题;三层结构进一步分离...

    论文研究-基于J2EE体系结构的研究及应用 .pdf

    J2EE体系结构是一种基于组件的、以应用服务器为核心的多层应用体系结构。它简化了开发、配置和维护企业级应用的过程,通过将企业的业务逻辑与显示逻辑相分离,从而提高了开发效率和系统的可维护性。J2EE平台由一套...

    j2ee 平台下的分布式项目管理模型及实现

    J2EE是由Sun Microsystems提出的一种企业级应用平台,旨在为开发和部署多层体系结构的企业应用提供标准框架。它包含了多个技术组件和服务,例如Servlet、JSP(Java Server Pages)和EJB(Enterprise JavaBeans)。...

Global site tag (gtag.js) - Google Analytics