`
strongant
  • 浏览: 66650 次
  • 性别: Icon_minigender_1
  • 来自: IT
社区版块
存档分类
最新评论

图解EJB的体系结构

 
阅读更多

本文对EJB的体系结构作一个全面介绍:

  • EJB在J2EE体系结构中的位置
  • EJB的环境构成
  • EJB的资源配置
  • EJB的种类
  • EJB组件的构造
  • EJB的调用过程
  • EJB组件的生命周期

EJB是Enterprise JavaBeans的简称。本文对EJB技术的体系结构作一个全面深入地介绍。

EJB在J2EE体系结构中的位置

视图层或表现层:提供用户界面;接收用户输入;数据输出。WEB应用的情况,JSP以及SERVLET属于视图层组件。

业务逻辑层:实际的业务逻辑处理。根据视图层传送过来的数据,进行实际的业务逻辑处理(包括数据库的查询,更新等),再把处理后的结果返回给视图层。EJB,以及不使用EJB的情况下担当业务逻辑处理部分的JavaBean等归属于业务逻辑层组件。

数据库层或数据持久化层:多指用于保存业务数据的数据库,也可以是文件等等。

EJB属于J2EE体系结构中的业务逻辑层部分。

EJB的环境构成

1,EJB组件运行在EJB容器之中,EJB容器是一个EJB引擎,它提供了EJB组件运行的环境,并对EJB组件进行管理。EJB容器一般包含在EJB服务器(或应用服务器)中,EJB服务器可以拥有一到多个EJB容器。比较有名的支持EJB的服务器有Sun One,Interstage,Websphere,Weblogic,JBoss,JRun等。

2,调用EJB组件的一方被称为EJB客户端。EJB客户端可以为运行在WEB容器中的JSP,SERVLET;或者一般的Java Application,Applet;或者Web Service;也可以是别的EJB组件。

3,EJB客户端与EJB服务器可处于同一JVM环境中,也可处于不同计算机的不同JVM环境。

EJB的资源配置

当一个EJB组件被开发完成之后,它需要以JAR文件的形式配置到EJB容器中以备其他客户程序 使用;反过来,一个客户程序需要使用某EJB组件,该客户程序需要引用该EJB组件的接口,也就是说,EJB的jar文件需要同时配置到EJB容器和使用 该EJB组件的客户端环境中。

如图:

EJB-JAR文件的构成

sample-ejb.jar

EJB-JAR文件是一个后缀名为.jar的zip格式文件。它至少需要包含META-INF目录以及其下的ejb-jar.xml文件以及MANIFEST.MF文件。对于不同类型的EJB组件,还需包含它们的Home接口,组件接口,以及组件的实现类。

EJB组件的种类

EJB组件有SessionBean(会话Bean),EntityBean(实体Bean),MDB(消息驱动Bean)三种。

SessionBean

主要负责业务逻辑的处理。根据处理时的状态保持与否,SessionBean又被分为:

Stateful SessionBean(有状态SessionBean)

Stateless Bean(无状态SessionBean)

对象的“状态”是指对象的属性值,也就是对象所携带的数据。Stateful SessionBean能维持会话的状态,就是说能为同一客户端保持上一回被调用时的状态,类似于HttpSession;而Stateless SessionBean则不能维持会话状态,也就是说,对Stateless SessionBean来说,每个方法都是独立的,因为对特定客户端不保持会话状态,所以一般也不在Stateless SessionBean里定义成员变量。

EntityBean

负责数据库的访问。通常由SessionBean调用。EntityBean的一个实例所表示的数据通常代表了关系数据库中特定表的特定的一行数据。EJB3开始,EntityBean部分的功能可以通过JPA来实现。

EntityBean的作用:

1,对数据库的操作:查询,数据的更新,删除等

2,数据库表数据的携带

根据对数据库操作(持久化)的不同,EntityBean分为以下2种类型:

1,BMP (Bean-managed persistence:bean管理持久化):持久化操作(数据库的访问,数据的创建,更新,删除等)由EntityBean的实现(javax.ejb.EntityBean的实现类)自身完成。

2,CMP (Container-managed persistence:容器管理持久化):持久化操作由容器根据deploy时的配置信息(ejb-jar.xml)自动完成。

MDB (message-driven bean:消息驱动bean)

MDB主要用来处理异步消息。客户端调用SessionBean,EntityBean的方法时,会一直处于等待状态,直到被调用的方法处理完毕。但使用 MDB,客户端向容器发送一个JMS消息之后,不必等待MDB处理完毕便可直接返回。JMS被发送给由容器管理的JMS消息队列,容器在适当的时候通知 MDB的callback方法onMessage加以处理。一个MDB需要实现javax.jms.MessageListener接口与 javax.ejb.MessageDrivenBean接口。

EJB组件的构造

构造图:

SessionBean的UML-CLASS图

EntityBean的UML-CLASS图

MDB的UML-CLASS图

EJB的调用过程

①客户端程序使用lookup方法查找JNDI

②EJB服务器的JDNI服务根据事先登录的信息匹配lookup查询内容,生成Home实例

③客户端得到对Home实例的引用

④客户端调用Home.create方法

⑤创建相对应的Bean实例,调用Bean的ejbCreate方法

⑥生成相对应的Remote Ojbect实例

⑦客户端得到对Remote Ojbect实例的引用

⑧客户端掉用业务逻辑方法

客户端与服务器端的通信使用RMI-IIOP通信协议。

客户端在调用EJB组件时,需要知道EJB组件的位置(包括IP,端口,名称),才能得到对EJB组件对象的引用。JNDI是J2EE提供的一套Java API,是Java Naming and Directory Interface的略称,提供根据名称查找对象的服务。EJB利用JNDI来解决名称问题。JNDI有Service Provider的概念,Provider可以选择LDAP或者RMI。

要使用JNDI,需要先进行登录,然后使用lookup进行查找。

EJB的JNDI的使用,也需要通过配置文件进行登录,不同的EJB服务器有不同的设置方法。具体可参考相关EJB服务器的操作手册。

EJB组件的生命周期(Lifecycle)

Stateful SessionBean的生命周期

顺序图(sequence图)

Stateless SessionBean的生命周期

顺序图(sequence图)

分享到:
评论

相关推荐

    EJB体系结构的改进及应用

    EJB体系结构自1999年首次引入以来,历经多个版本的迭代,从早期的EJB 1.x到现在的EJB 3.x,其设计理念和实现方式有了显著的变化。 **EJB体系结构的演进** 1. **EJB 1.x**: EJB 1.x时期,EJB主要分为三种类型:会话...

    EJB技术的体系结构

    EJB技术的核心是EJB容器,它是EJB体系结构的基石。容器负责管理和运行Enterprise Beans,确保它们能在分布式环境中正确地工作。Inprise公司的EJB容器遵循EJB 1.1版本的规范,提供了对组件的托管环境。容器提供了四个...

    J2EE体系结构图或三层结构图

    J2EE 体系结构图或三层结构图 J2EE 体系结构图是 Java 企业版(Java Enterprise Edition)的架构设计图,它描述了 J2EE 应用程序的逻辑结构和物理结构。J2EE 体系结构图可以分为三层结构图,即Presentation Layer、...

    图解eclipse+myelcipse开发EJB

    【图解Eclipse+MyEclipse开发EJB】是一篇介绍如何使用Eclipse和MyEclipse集成开发环境来创建和管理Enterprise JavaBeans (EJB)的教程。在开始EJB的开发工作之前,首要任务是配置合适的服务器环境,文中提到了使用...

    实战EJB 实战EJB 实战EJB

    EJB体系结构主要包括三个主要组成部分: 1. **客户端**:负责与最终用户交互,并调用EJB组件提供的业务逻辑。 2. **容器**:管理和执行EJB组件,提供诸如事务管理、安全性、持久化和生命周期管理等服务。 3. **EJB...

    EJB搭建

    EJB体系结构主要由以下几个关键组件构成: 1. **EJB组件**:这是业务逻辑的核心,包含三种类型: - **会话bean(Session Beans)**:处理单个客户端请求,可以是无状态或有状态的。 - **实体bean(Entity Beans)...

    软件体系结构(设计模式、各种组件)课件·

    【软件体系结构】是软件开发中的关键概念,它定义了软件系统的组织结构和交互方式,是软件系统的基础蓝图。在本课件中,你将深入理解软件体系结构的方方面面,包括其基本元素、架构风格、架构决策以及评估方法。体系...

    深入浅出EJB

    你会深入地了解EJB体系结构、会话、实体和消息驱动bean的生命周期、CMP、EJBQL、事务、安全、模式等等内容,还会知道基于组件的开发究竟是什么意思。你理解得越多,需要记的就越少,所以不要指望一点都不懂,通过死...

    EJB教程(技术规范)

    EJB体系结构包括客户端、服务器端和组件三个部分: 1. 客户端:通过EJB接口与服务器端通信,调用EJB方法执行业务逻辑。 2. 服务器端:提供运行环境,包括EJB容器,负责部署、管理、调度和生命周期控制。 3. 组件:...

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

    EJB体系结构的典型架构如图1所示,展示了EJB组件如何在EJB容器中运行以及客户端如何通过远程接口访问这些组件。 #### 3. EJB组件的类型及其特点 EJB组件根据其特性和提供的功能可以分为以下三类: - **会话Bean**...

    Eclipse配置ejb详细图解(一看就会配的)

    EJB(Enterprise JavaBeans)是Java企业版中的核心组件,用于构建分布式、事务处理和安全的服务器端应用程序。本文将详细讲解如何在...通过本文的详细步骤和提供的图解,相信ejb新手能轻松上手并快速掌握EJB开发。

    B-S结构与C-S结构的EJB编写实例代码

    总结,B/S结构和C/S结构在EJB应用中的区别主要体现在客户端的交互方式、部署维护的便捷性和性能上。理解和掌握这两种架构有助于我们设计出更加适应业务需求的系统。在实际项目中,开发者应根据应用场景,权衡各种...

    EJB教程,EJB参考书

    #### EJB体系结构概览 EJB架构基于组件模型,其中每个角色都有明确职责,确保组件间解耦合,易于维护和升级。EJB容器作为核心组件,负责管理EJB的生命周期,提供透明的事务管理、持久化、并发控制和安全服务,使得...

    EJB.rar_java 部署

    企业JavaBeans(EJB)的组件结构是以作为可重复使用的服务器端组件而设计的,它使 ...n EJB 体系结构 n EJB 开发人员的角色分配 n 编写第一个EJB 程序 n 部署到应用服务器 n 开发和部署测试程序 n 运行测试程序

    实战EJB.pdf

    EJB体系结构包括三个主要部分:客户端、EJB容器和EJB组件。 1. **客户端**:负责与最终用户交互并调用EJB组件提供的服务。 2. **EJB容器**:管理EJB组件的生命周期,处理事务、安全性和持久化等非功能性需求。 3. *...

Global site tag (gtag.js) - Google Analytics