【J2EE浅析】——EJB

一、EJB概述

EJB(EnterpriseJava Bean)--java企业Bean,是J2EE十三种规范的一部分,为服务器端组件模型,设计目标与核心应用是部署分布式应用程序。EJB是java的核心代码,包括三种Bean类型:会话Bean(Session Bean),实体Bean(EntityBean)和消息驱动Bean(MessageDriven
Bean)。

通俗的说,EJB就是一个运行在独立的服务器上,封装了业务逻辑的组件。在一个商务软件中,核心部分就是其业务逻辑,它抽象了整个商务过程的流程。J2EE对于这个问题的处理方法是将业务逻辑从客户端抽取出来,封装在EJB组件中。它运行在一个独立的服务器上,客户端软件通过网络调用组件提供的服务以实现业务逻辑,而客户端软件的功能单纯到只负责调用请求和显示处理结果。

二、EJB在java三层中的角色

在J2EE经典三层的图中,各个规范的位置关系如下:

从上图来看,JSP,Servlet是表示层,EJB是业务逻辑层,负责处理业务逻辑。EJB可以从客户端接收数据,对它进行处理,并将其发送到企业信息系统层以作存储;同时也可以从存储器获取数据,处理后将其发送到客户端应用程序。

三、EJB中的Bean

EJB作为业务逻辑层,是如何与表示层和数据库进行数据交换和保存呢?主要依靠会话Bean,实体Bean和消息驱动Bean。

1、Session Bean:用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个SessionBean来为客户端服务。SessionBean可以直接访问数据库,但更多时候,它会通过Entity
Bean实现数据访问。

2、Entity Bean:是域模型对象,用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个EntityBean对象相当于新建一条记录,删除一个Entity Bean会同时从数据库中删除对应记录,修改一个Entity
Bean时,容器会自动将EntityBean的状态和数据库同步。

3、MessageDriven Bean:是EJB2.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。MDB实际上是一个异步的无状态SessionBean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果。

四、何时使用EJB

1、分布式对象

当使用企业级的JavaBean,分布式对象用于建立企业级别的系统。这意味着你的系统可以部署于不同的物理机器,由此可产生许多彼此独立的进程,以达到性能、可扩展性、可用性的系统目标。

2、对象持久化

对象持久化表示其状态可以被保存,大多数情况下,持久化对象保存在关系型数据库中,而对象和关系型数据库相互差异太大。和JAVA相比,关系型数据库拥有有限的模型化能力,诸如对象继承和封装。此外,最主要的转换问题是SQL数据类型和Java的数据类型并不完全匹配。所有的这些问题在使用CMP实体Bean时都得到了解决。

3、事务管理

对数据的并发访问是令开发者最头痛的问题之一。所有相关需要考虑的问题诸如数据库锁定,数据完整性丢失事件可以导致创建高度复杂的框架以管理数据库级别的共享数据的访问。EJB自动处理这些复杂的线程和并发的共享数据问题。正如前面提到的,EJB容器提供了所有必须的事务服务给企业Bean去管理后台的数据。



时间: 2024-08-05 15:02:27

【J2EE浅析】——EJB的相关文章

J2EE之EJB

 EJB是sun的JavaEE服务器端组件模型,最大的用处是部署分布式应用程序.EJB把使用java开发的服务器组件的部署和开发进行标准化.凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台. EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准.其特点包括网络服务支持和核心开发工具(SDK). 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心

j2ee规范——EJB

1.EJB是什么 商务软件的核心部分是它的业务逻辑.业务逻辑抽象了整个商务过程的流程,并使用计算机语言将他们实现. -- J2EE 对于这个问题的处理方法是将业务逻辑从客户端软件中抽取出来,封装在一个组件中.这个组件运行在一个独立的服务器上,客户端软件通过网络调用组件提供的服务以实现业务逻辑,而客户端软件的功能单纯到只负责发送调用请求和显示处理结果.在J2EE 中,这个运行在一个独立的服务器上,并封装了业务逻辑的组件就是EJB(Enterprise JavaBean)组件. 2.通俗一点对于EJ

【J2EE浅析】——JNDI

一.JNDI概述 JNDI(JavaNaming Directory Interface)--java命名和目录接口,是一组在Java应用中访问命名和目录服务的API.为开发人员提供了查找和访问各种命名和目录服务的通用.统一的接口,类似JDBC,都是构建在抽象层上.是J2EE的标准之一,所有的J2EE容器都必须提供一个JNDI的服务. JNDI的命称可能会让人产生混淆,一开始接触到这一规范觉得这是一个用来操作目录的,事实上,可以把这个目录理解成为JNDI存放对象时使用的格式,也就是说,JNDI以

【J2EE浅析】——RMI

一.RMI概述 RMI(Remote Method Invoke)-远程调用方法,是java的一组用户开发分布式应用程序的API.通过该RMI机制,可以实现程序组件在不同操作系统之间的通信.它是一种被EJB使用的更底层的协议,比如:一个EJB可以通过RMI调用Web上另一台机器上的EJB远程方法. RMI使用了序列化方式在客户端和服务器端传递数据, 这样,我们就可以在远程方式下编写和使用对象,而不必知道它们实际上是远程的对象. 目标: *无缝地支持在不同的Java虚拟机上的远程对象的使用. *支

【J2EE浅析】——JDBC

 J2EE平台由一整套服务(Services).应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,核心内容是对13种技术规范(API和组件)的学习和使用.接下来介绍一下Java数据库链接. 一.JDBC简介 JDBC(Java Data BaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由由一组用Java语言编写的类和接口组成.JDBC为工具/数据库开发人员提供了一个标准的API,

[J2EE]struts+ejb笔记

DispatchAtion: - org.apache.struts.actions.DispatchAction 这个类是个抽象类,但实现父类Action的execute方法,在项目中重写这个类可以专注于执行方法面不必自己实现execute方法 直接给一个例子: 1.继承DispatchAtion类,其包括一些方法,如checkUser().logon().logout()等,这些方法有一个共同的模板: public ActionForward XXXmethod( ActionMapping

【J2EE浅析】——表示层:Servlet & JSP

 一.简介 JSP(Java Server Pages):JSP页面由HTML代码和嵌入其中的Java代码所组成.服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器. Java Servlet:Servlet是一种小型的Java程序,它扩展了Web服务器的功能.作为一种服务器端的应用,当被请求时开始执行,这和CGIPerl脚本很相似.Servlet提供的功能大多与JSP类似,不过实现的方式不同.JSP通常是大多数HTML代码中嵌入少量的Ja

EJB究竟是什么,真的那么神奇吗??

1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"? 既然说了EJB 是为了"服务集群"和"企业级开发",那么,总得说说什么是所谓的"服务集群"和"企业级开发"吧!这个问题事实上挺关键的,由于J2EE 中并没有说明确,也没有详细的指标或者事例告诉广大程序猿什么时候用EJB 什么时候不用.于是大家都产生一些联想,觉得EJB"分布式运算"指得是"负载均

菜鸟的EJB(一)什么是EJB?

什么是ejb? sun微公司对于ejb的定义大体是这样的,ejb是一套用于开发和部署分布式组件的的架构.采用ejb的架构应用可以是扩展伸缩的,是可以被事务来管理的.可以是一次编写,能够运行在不同的符合ejb规范的应用服务器平台上的. java企业级bean.从大面上j2ee来讲,作为企业级开发的一个解决方案之一.从javabean这样一个颗粒的角度来讲,ejb就是一个简单的javabean类.通过打包成jar放到不同的服务器上,以及结合RMI来调用服务器上的ejb对象. 为什么要ejb? 企业级