介绍一下EJB的分类及其各自的功能及应用
EJB
EJB Object
9. Return result to client 8. Return result
Enterprise Beans
JNDI
Namingo
EJB的基本原理
• 要想构建一个自己的EJBean,提供给别人 使用,开发者必须做以下几件事情:
EJB的方法进行事务处理
EJB---SessionBean
为了给 EJB 提供以上需求,需要创建远程接口、本地接口和 Bean 业务逻辑类
package .csuinfosoft.ejb.statefullsession; import javax.ejb.EJBHome; import javax.ejb.CreateException; import java.rmi.RemoteException; public interface HelloSessionHome extends EJBHome { public HelloSession create() throws CreateException, RemoteException; }
EJB的基本原理
• Enterprise JavaBeans的两种类型:
– Entity Beans
• 代表数据 • 在服务器重启后仍然存在 • 可以通过EJB container (Container Managed Persistence, CMP) 或者程序 (Bean Managed Persistence, BMP) 持续化到 数据库
有状态会话Bean
EJB不存在 setSessionContext()方法 ejbCreate()方法 ejbRemove()方法 ejbPassivate()方法 EJB存在J2EE服务器 内准备接受访问 EJB处在 不激活状态
EJB技术及应用第1章概述
第1章 概述
1.2 J2EE体系
Servlets API、JSP(JavaServer Pages) 以及XML技术的全面支持。其最终目的就 是成为一个能够使企业开发者大幅缩短投放 市场时间的体系结构。
在两层客户机/服务器环境中,程序 员编写与供应商特定软件紧密结合的应用程 序。通常,两层应用程序直接从客户机访问 数据库服务或事务服务。在两层系统中,业 务逻辑的任何改变仍要求对应的应用程序代 码进行相应的改变。
第1章 概述
1.1 什么是EJB
同时,由于数据库和业务逻辑嵌入到服 务器上的应用程序中,如果应用程序从一个 数据库迁移到另一个数据库,则需要修改服 务器代码。
第1章 概述
1.2 J2EE体系
而且两层模式经常基于某种专有的协 议――通常是某种数据库协议。它使得重用 业务逻辑和界面逻辑非常困难。现在J2EE 的多层企业级应用模型将两层化模型中的不 同层面切分成许多层。一个多层化应用能够 为不同的每种服务提供一个独立的层,如图 所示,以下是 J2EE 规范的四个层次及相应 的组件:
第1章 概述
1.2 J2EE体系
J2EE(Java 2 Platform Enterprise Edition):适用于创建服务器应用程序和 服务的Java 2平台企业版。
其中最重要的就是J2EE平台。 J2EE 技术的基础就是核心Java平台或Java 2平 台的标准版。
J2EE平台规范是一个由SUN 公司定义 的用于简化分布式企业级应用开发与部署的 基于组件的模式。
3、EJB简介1
17
EJB类型(老生常谈)
Session Bean会话bean,动词. 处理动作:计算价格,计算罚款等 Entity Bean实体bean.名词.是数据库 数据的java对象表示 MessageBean 也代表动作,只不过只 有发消息才能驱动它们.
18
分布式对象(非常重要)
client 远程机器 i 被调用的对象
28
EJB组成2 EJB对象
还记得拦截器么? Ejb放在远程机器上,而客户在本地机器 上. 客户不可以直接调用远程ejb,要通过网 络 客户不希望自己控制安全,事务等 拦截器在j2ee里实现为一个EJB对象
29
EJB对象
client
Ejb container
事务 安全 数据库 EJB对象 ejb object 这给用户看见 拦截器
网络连接 胖客户 (Applet /application) 瘦客户 Servlet/jsp SOAP,WSDL 企业客户 Web service EJBS
14
EJBS
EJBS
回顾:EJB的角色
工具提供者 系统集成者 部署者 Bean提供者
管理维护者
Ejb容器提供者
15
j2ee中间件必须支持的API
在用户看来,EJB是 若干.java程序 一个xml格式的部署文件 一个j2ee容器的专门部署文件 EJB程序经过部署,在weblogic等容器上 运行,自动实现中间件的特性(看前面 的特性一页)
11
部署文件说明ejb的组成的位置
说明ejb功能的接口(哪些方法) 说明如何创建ejb的接口
4
大型企业系统需要考虑的问题
J2EE EJB入门
J2EE EJB入门一、状态(Session)EJB的应用1、状态EJB的分类状态EJB分为非会话状态EJB和会话状态两种(1)非会话状态EJB,不保存用户状态,不为用户建立独立的线程.(2)会话状态EJB,保存用户状态,为用户建立独立的线程.会话状态EJB与非会话状态EJB的互相转换很简单,在Jbuilder的EJB设计器中将Session Type设为Stateless或者Stateful便可.2、状态EJB的生命周期(1)非会话状态EJB的生命周期当客户端访问非会话状态EJB时,非会话状态EJB的setSessionContext()方法和ejbCreate()方法被激活,然后非会话状态EJB保留在EJB容器内,等待用户的访问。
EJB一但被用户创建便保留在服务器内,它的生命周期一直到服务器发出关闭指令才结束。
(2)会话状态EJB生命周期当一个客户端的程序EJB时,EJB的生命开始,SetSessionContex方法和ejbjCreate方法被激活,会话状态EJB的方法可以被事务处理方法和非事务处理方法访问,当客户端结束运行时,该EJB也结束运行。
会话状态EJB比非会话状态EJB多了一个状态,EJB可以处在不激活状态,并且会话状态EJB使用ejbPassivate方法和ejbActivate方法3、两种状态EJB的比较非会话状态EJB不会为客户创建独立的进程,它一旦创建便保留在服务器内,每个客户都是使用一个EJB对象;会话状态EJB为客户创建独立的进程,每个客户使用不同的EJB对象,需要使用remove方法删除服务器上的EJB对象.在实际项目中利用不同状态EJB实现不同的效果,如电子商城的公布板的信息对每个用户都是相同的,可以使用非会话状态EJB;如电子商城的购物车对每个用户是不同的,可以使用会话状态EJB。
我们也可以将一些耗时的处理过程放入非会话状态EJB共享。
二、全局(Entity)EJB的应用1、全居EJB的作用(1)可以和数据库的数据结合操作,全局EJB提供各种数据操作的方法。
ejb
一基本知识1.背景Java由于其良好的跨平台行而成为服务器端的理想语言,为了利用Java实现服务器端的计算,SUN推出了一个完整的开发平台J2EE,其目的是为基于Java的服务器端配置提供一个独立于平台的可携带的多用户企业级的安全平台,而J2EE的基石就是Enterprise JavaBeans(EJB),EJB是建立基于JAVA的服务器端组件的标准,它定义了如何编写服务器端组件,提供了组件与管理组件的应用服务器之间的标准约定,EJB是一种组件架构,使得开发人员能够快速开发出具有伸缩性的企业级应用。
2. EJB简介1)JavaBeans和Enterprise JavaBeansJavaBeans是Java的组件模型。
在JavaBeans规范中定义了事件和属性等特征。
Enterprise JavaBeans也定义了一个Java组件模型,但是Enterprise JavaBeans 组件模型和JavaBeans组件模型是不同的。
JavaBeans重点是允许开发者在开发工具中可视化的操纵组件。
JavaBeans规范详细地解释了组件间事件登记、传递、识别和属性使用、定制和持久化的应用编程接口和语意。
Enterprise JavaBeans的侧重点是详细地定义了一个可以portably地部署Java组件的服务框架模型。
因此,其中并没提及事件,因为enterprise bean通常不发送和接受事件。
同样也没有提及属性------属性定制并不是在开发时进行,而是在运行时(实际上在部署时)通过一个部署描述符来描述。
不要寻找JavaBeans和Enterprise JavaBeans之间的相似性。
他们都是组件模型规范,但是前者说明了开发工具中应用程序组装的问题,而后者则侧重于部署组件的服务框架的细节。
不要错误地认为JavaBeans是用于客户端的开发,Enterpris e JavaBeans是用于服务器端的开发。
第6章 EJB 3.0简介(理论)
JBoss版本为:jboss-4.2.2.GA,下载地址: 下载解压即可完成安装,在使用前需要配置环境变量
4.1 JBOSS下载、安装和配置 下载、 下载
运行JBoss安装目录bin下的run.bat启动服务
JBOSS下载、安装和配置 下载、 下载
第6章 EJB 3.0简介 章 简介
回顾
Hibernate实体对象的3种状态及相互转换 VO(值对象)和PO(持久化对象) Hibernate缓存 Hibernate类级别检索和关联级别检索策略
本章内容
J2EE分布式多层应用程序 EJB简介 EJB3.0新特性 JBoss服务器 Weblogic服务器
描述
4.3 JBOSS的配置 的配置
修改web 服务的端口号
将端口号从 8080改为8989
<Connector port="8989" address="${jboss.bind.address}" maxThreads="250" maxHttpHeaderSize="8192" emptySessionPath="true" protocol="HTTP/1.1" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
1.2 J2EE容器 容器
容器(Container)是组件和支持组件功能的底层特定平台(如数据库) 之间的接口 J2EE容器的分类
EJB是什么Java使用EJB容器的详细概述
EJB是什么Java使⽤EJB容器的详细概述博客分类:1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"?既然说了EJB 是为了"服务集群"和"企业级开发",那么,总得说说什么是所谓的"服务集群"和"企业级开发"吧!这个问题其实挺关键的,因为J2EE 中并没有说明⽩,也没有具体的指标或者事例告诉⼴⼤程序员什么时候⽤EJB 什么时候不⽤。
于是⼤家都产⽣⼀些联想,认为EJB"分布式运算"指得是"负载均衡"提⾼系统的运⾏效率。
然⽽,估计很多⼈都搞错了,这个"服务群集"和"分布式运算"并没有根本解决运⾏负载的问题,尤其是针对的应⽤系统。
为什么?我们先把EJB 打回原形给⼤家来慢慢分析。
2. 把EJB 掰开了揉碎了我们把EJB 的概念好好的分析⼀下,看看能发现些什么蛛丝马迹。
3.1 EJB 概念的剖析我们先看⼀下,EJB 的官⽅解释:商务软件的核⼼部分是它的业务逻辑。
业务逻辑抽象了整个商务过程的流程,并使⽤计算机语⾔将他们实现。
……J2EE 对于这个问题的处理⽅法是将业务逻辑从客户端软件中抽取出来,封装在⼀个组件中。
这个组件运⾏在⼀个独⽴的服务器上,客户端软件通过⽹络调⽤组件提供的服务以实现业务逻辑,⽽客户端软件的功能单纯到只负责发送调⽤请求和显⽰处理结果。
在J2EE 中,这个运⾏在⼀个独⽴的服务器上,并封装了业务逻辑的组件就是EJB(Enterprise Bean)组件。
这其中我们主要关注这么⼏点,我们来逐条剖析:剖析1:所谓:"业务逻辑"我们注意到在EJB 的概念中主要提到的就是"业务逻辑"的封装,⽽这个业务逻辑到底是什么?说的那么悬乎,其实这个所谓的"业务逻辑"我们完全可以理解成执⾏特定任务的"类"。
EJB 框架在企业级应用系统中的应用研究
EJB 框架在企业级应用系统中的应用研究EJB(Enterprise Java Beans)框架是Java EE(Enterprise Edition)技术中的一个核心组件。
它为开发人员提供了一种标准化的方式来开发企业级应用程序。
EJB 框架在企业级应用系统中的应用非常广泛,特别是在需要数据持久化、事务处理和分布式应用程序方面。
在这篇文章中,我们将介绍EJB框架的主要特点和应用,并详细探讨如何使用EJB框架来开发企业级应用程序。
1. EJB框架的主要特点EJB框架的主要特点是:- 具有分布式特性:EJB框架提供了可以在不同计算机或服务器之间共享的组件和对象。
这使得在不同位置运行的计算机都可以使用同样的组件来访问和处理同样的数据。
这是企业应用系统中非常有用的属性。
- 事务处理:在EJB中,事务是管理在分布式环境中的全部数据操作的机制。
这使得在多个数据源之间进行的操作更加安全。
例如,如果一个操作失败,整个事务就会回滚,以确保所有修改都被撤销。
- 持久性:EJB支持将对象的状态保持在数据库中,并且在需要时将其重新读取。
这使得在分布式应用程序中,更容易访问和处理共享数据。
- 安全性:EJB在安全性方面提供了几种选项,包括基于角色的访问控制、用户身份验证和授权,以及安全的对象序列化等。
2. EJB框架的应用EJB框架可以用于各种企业级应用程序。
下面是一些可能的用例:- 财务或会计系统:EJB框架可以用作处理和存储交易记录、帐户信息和其他会计信息的中心组件。
- 电子商务应用程序:EJB框架可以用于处理商店的订单和库存信息。
它可以处理交易和付款,以及处理多个货源和商店的数据。
- 保险行业应用程序:EJB框架可以用于处理消息、处理索赔和政策信息,以及支持与客户沟通。
- 数据仓库和商业智能应用程序:EJB框架可以用于存储和访问信息,以及处理大量的数据分析任务。
总的来说,任何需要处理数据持久性、分布式系统操作或事务处理的应用程序都可以使用EJB框架。
EJB
1、EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别?
答:规范内容包括Bean提供者,应用程序装配者,EJB容器,EJB配置工具,EJB服务提供者,系统管理员。这里面,EJB容器是EJB之所以能够运行的核心。EJB容器管理着EJB的创建,撤消,激活,去活,与数据库的连接等等重要的核心工作。JSP,Servlet,EJB,JNDI,JDBC, JMS.....
三个对象是Remote(Local)接口、Home(LocalHome)接口,Bean类
2、EJB的几种类型
会话(Session)Bean ,实体(Entity)Bean 消息驱动的(Message Driven)Bean
会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种
EJB通过以下技术管理实务:对象管理组织(OMG)的对象实务服务(OTS),Sun Microsystems的Transaction Service(JTS)、Java Transaction API(JTA),开发组(X/Open)的XA接口。
、EJB规范规定EJB中禁止的操作有哪些?
EJB
**1、EJB容器提供的服务
主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务。
2、EJB的角色和三个对象
EJB角色主要包括Bean开发者 应用组装者 部署者 系统管理员 EJB容器提供者 EJB服务器提供者
4、激活机制
以Statefull Session Bean 为例:其Cache大小决定了内存中可以同时存在的Bean实例的数量,根据MRU或NRU算法,实例在激活和去激活状态之间迁移,激活机制是当客户端调用某个EJB实例业务方法时,如果对应EJB Object发现自己没有绑定对应的Bean实例则从其去激活Bean存储中(通过序列化机制存储实例)回复(激活)此实例。状态变迁前会调用对应的 ejbActive和ejbPassivate方法。
浅谈EJB及其应用
维普资讯
组 装应 用 程序 :包 括将 E tr rs e s 装到 S re n ep ie ba 安 n evr 服 务 器 中 , 测 试 各 层 的 连 接 情 况 。 程 序 组 装 器 将 若 T 个
bo enile tc l(J Ojc O h osjv n iRm tEc p in: o la sd nia EB be tp )t w aa n.e ex eto r o
成 ,这 六 个 角 色 可 以 由 不 同 的 开 发 商提 供 , 每 个 角色 所 作
的工作必须遵循 S n公司提供 的 E B规范,以保证彼此之间 u J
的兼 容 性 。 这六 个角 色分别是 : 1 J 组 件 开发 者 (n e p e B a rv r 、E B E t r rs e n Po e) i i d
维普资讯
浅谈 E J B及其应用
:
l j l
。 ≤ 0 萋 。l § 遣毒 鼍 √
l }。
0
e J e vr负责 与操 作 系统 有关 的底 层细 节 ,诸 如和 其
EB J 简介
・
・
EB J 开发
1 .类:
开 发 E B的 主 要 步 骤 一 般 来 说 , 整 个 的 开 发 步骤 ( J 开
发,配置,组装 )包括如 下几个方面 。
开发 :首先要定义三个类 :B a e n类本身,B a e n的本
地 和远 程接 口类 。
配 置 :配置 包 括 产 生配 置 描述 器 一 这 是 一个 XL文 件 、 M
,
E tr r s e n n ep ie Ba s与其它的组件结合起来 。组合成一个完整 的应用程序。或者将若干个 E trr s en 组合成一个复 n ep ie ba s
精通ejb
精通ejb【一】总揽一、Server方组件结构EJB是一种Server方的组件结构,它可以非常简单的开发基于java的企业级的分布式对象应用。
使用EJB 可以开发出易升级的、可靠的、安全的应用程序,而不用独立开发复杂的分布式对象框架;EJB可以迅速开发服务方应用程序,快速建立基于java的服务方组件。
EJB被设计用来实现企业中间件服务的可移植和可重用性。
如果你对企业计算很陌生,这些概念对你很有用,EJB是个很复杂的主题,应该被充分的解释。
在这一章我们讨论有关EJB的主要概念。
首先,我们先讨论开发企业级软件是为了干什么?为什么说像EJB的预包装的分布式对象体系可以简化你的生活?在讨论中,你将会对服务端的组件结构有宏观的了解。
服务端组件结构的需要我们必须首先了解开发者在建立和配置服务端环境下的组件时通常需要什么?同时,我们将解决围绕服务端开发所出现的问题,将看到建立一套像EJB标准体系结构的必要性。
软件组件——一个软件组件是一段代码,它用来实现一系列定义好的接口。
组件不是完整的应用程序——它们不能被独立运行。
更贴切的说,它们是看作是许多大型问题分割成的小问题。
软件组件的思想非常有用。
公司可以买来定义好的可用来解决某一问题的模块,将它和其他组件一起编译用以解决大型问题。
组件结构——为了使组件开发过程更加容易,需要为建立、管理、维持组件建立规范。
开发组件的开发工具——建立组件时,应该允许开发者集中精力在组件的背后开发核心逻辑,使开发者不需要考虑太多的标准细节问题,从而快速开发应用程序。
例如IDE:Symantec的Visual Cafe,IBM的VisualAge for Java,Inprise的Jbuilder 2,这些工具可以帮助你快速的建立和调试组件。
管理配置好的组件容器——组件容器为你的组件运行提供了一个运行时环境。
同时也提供了一套供大多数组件使用的通用服务。
配置和维持组件工具——从组件提供商购买了组件后,还需要有一套工具来帮助配置和维持这些组件。
EJB的使用
EJB是什么呢?EJB是一个J2EE体系中的组件.再简单的说它是一个能够远程调用的javaBean.它同普通的javaBean有两点不同.第一点,就是远程调用.第二点,就是事务的功能,我们在EJB中声明的事务会通过容器帮助我们来处理.回过来我们继续说这个EJB的原理.它是分布式的.这个的意思其实很简单不需要想太复杂.就是我们把事情不是交给一个人去处理.而是把事情划分一下交给多个人处理,而多个人处理之后我们让这个分配的人来把最后得到的结合处理.EJB我们首先要明确它是放在服务器端的组件.一共有三种EJB1,SessionBean 复杂处理业务逻辑的.2,EntityBean 处理数据3,MessageBean 消息Bean异步,耦合的处理.那么谁能调用EJB呢?也或者说EJB被谁调用呢?我们说它就是放在server的一个能够远程调用的javaBean.所以它可以被Java的语言调用servlet,jsp等都ok的说.而且它还可以被C++语言调用.很强大吧.EJB的最基本的出发点就是推动Java在服务器端的编程能力.所以呢它的功能就我个人来看太强悍了..= =这个远程调用是通过什么呢.Java是通过RMI-JRMP(java远程方法调用)协议来调用.EJB就是通过这个来实现的.C++是通过Corba-iiop协议来调用的.这个协议支持两端不同语言的调用.Corba是公共对象请求代理服务iiop是网络内部对象协议.下面我们来简单说一下这个分布式的调用。
客户端发送一个请求给服务器首先是传给stub代理类它发送参数给skeleton委托类然后这个类调用我们的实现类取得结果再远路返回。
这样一个分布处理就结束了。
后面会具体的结合代码分析。
先记住这个大致的结构就好。
我们写一个EJB需要做那些工作呢?1,写一个接口继承EJBObject 这个类作为远程接口2,写一个接口继承EJBHome 这个类里有一个方法是create()它返回接口类型。
EJB的分类及其各自的功能和应用
EJB的分类及其各自的功能和应用在EJB2.0中对定义了三种不同类别的EJB分类:Session Bean (会话Bean)、Entity Bean(实体Bean)和Message-Driven Bean (消息驱动Bean)。
1 EJB分类之会话Bean会话Bean是商务过程对象,执行商务逻辑、规则和工作流程。
会话Bean之所以被称为会话Bean,是因为它代表的是一个动作、是一个过程,它的生存期就是调用它的客户端与它进行会话的过程。
会话Bean根据其是否保存客户的状态,又分为状态会话Bean和无状态会话Bean。
状态会话Bean是一种保持会话状态的服务,每个实例都与特定的客户机相关联,在与客户机的方法调用之间维持对话状态。
与之相反,无状态会话Bean不保存与特定客户的对话状态。
因此状态会话Bean比无状态会话 Bean具有更多的功能,而无状态会话Bean实例可以通过 EJB容器自由地在客户机之间交换,从而少量的会话Bean就可以服务于大量的客户机。
2 EJB分类之实体Bean实体Bean代表商务上的实体,比如商务数据,应该包含与数据相关的逻辑。
实体Bean是对应到数据库中的一个视图,一个实体Bean 实例和底层数据库完全是一回事。
因此,一个简单的实体bean实例代表一个特殊的记录。
更复杂的实体bean可以代表数据库表间关联视图。
实体Bean有两种操作类型:BMP(Bean管理持久性)和CMP (容器管理持久性)。
BMP是指由Bean自己来实现实体Bean的持久性,即在Bean中实现数据库操作。
而CMP则是由容器实现Bean 的持久性,使我们不需要在Bean内再编写数据库操作的代码。
3 EJB分类之消息驱动Bean消息驱动Bean是EJB2.0新引入的一种Bean类型。
它的主要目的是,通过允许容器去聚合并且管理消息驱动Bean实例,以此来提供传入JMS消息的并发处理。
4 会话Bean与实体Bean的区别和联系会话Bean执行应用逻辑,它们隐含地使用实体Bean作为它们操作的数据。
EJB(EnterpriseJavaBean)
EJB(EnterpriseJavaBean)EJB百科名片EJB是sun的服务器端组件模型,设计目标与核心应用是部署分布式应用程序。
凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。
EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。
其特点包括网络服务支持和核心开发工具(SDK)。
在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。
编辑本段EJB简介1.SessionBean用于实现业务逻辑,它可以是有状态的,也可以是无状态的。
每当客户端请求时,容器就会选择一个SessionEJBBean来为客户端服务。
Session Bean可以直接访问数据库,但更多时候,它会通过Entity Bean实现数据访问。
2.Entity Bean是域模[1]型对象,用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步。
3.MessageDriven Bean是EJB2.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。
MDB实际上是一个异步的无状态Session Bean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。
这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果。
EJB实际上是SUN的J2EE中的一套规范,并且规定了一系列的API 用来实现把EJB概念转换成EJB产品。
EJB整理
1.EJB是用于辅助解决业务问题的。
通常,企业Bean能够完成如下一类操作:(1)完成业务逻辑:比如,EJB能够计算出客户为购买商品应付的税款等。
(2)访问数据库:比如,提交图书订单到数据库中等。
(3)访问其它系统2.EJB规范定义了如下3种EJB组件类型会话Bean:会话Bean用于建模业务过程。
类似于语言中的动词,即为完成某些任务而存在。
任务的类型可以有多种,如增加记录,访问RDBMS,访问遗留系统,调用其他EJB组件等。
会话Bean实例也存在很多,如查价引擎,工作流引擎,产品分类引擎等。
实体Bean:实体Bean用于建模业务数据。
类似于语言中的名字,即它们是数据对象。
也就是说,实体Bean是用于缓存数据库信息的Java对象,如产品,订单,雇员等这方面的实例。
通常情况下,会话Bean需要借助于实体Bean实现业务操作。
消息驱动Bean:类似于会话Bean,为完成任务而存在。
隐式发送消息,不存在直接客户。
坚挺JMS服务的消息,客户不直接调用,客户向消息服务发消息。
.3.分布式对象–EJB的支撑:EJB组件是基于分布式对象构建的,远程系统能够调用分布式对象。
开发者可以使用许多技术实现分布式对象,如CORBA(OMG),DCOM4.企业Bean的Bean类企业Bean的业务逻辑需要在Bean类中实现。
它只是遵循EJB规范定义的简单Bean类,如需要实现特定的接口以及遵守特定的规则,为了使EJB组件能够在EJB容器中运行,就必须遵守这些规则:Bean类中含有EJB组件的实现细节。
EJB规范并没有给出必须要遵守的规则,但是各种EJB类型都有各自适用的场合,而且它们之间存在着很大的差别。
对于会话Bean而言:通常,相应的企业Bean类含有业务流程相关的逻辑,如计价,转账和订单登记。
对于实体bean而言:通常,相应的企业Bean类含有数据相关的逻辑,如变更客户名,减少银行账户余额和修改订单。
对于消息驱动bean而言:通常,相应的企业Bean类含有消息相关的逻辑,如接受股票交易消息于调用会话Bean,以处理股票交易细节。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
介绍一下EJB的分类及其各自的功能及应
用
在EJB2.0中定义了三种不同类别的EJB:Session Bean(会话Bean)、Entity Bean(实体Bean)和Message-Driven Bean(消息驱动Bean)[2]。
1 会话Bean会话Bean是商务过程对象,执行商务逻辑、规则和工作流程。
会话Bean之所以被称为会话Bean,是因为它代表的是一个动作、是一个过程,它的生存期就是调用它的客户端与它进行会话的过程。
会话Bean根据其是否保存客户的状态,又分为状态会话Bean和无状态会话Bean。
状态会话Bean是一种保持会话状态的服务,每个实例都与特定的客户机相关联,在与客户机的方法调用之间维持对话状态。
与之相反,无状态会话Bean不保存与特定客户的对话状态。
因此状态会话Bean比无状态会话Bean 具有更多的功能,而无状态会话Bean实例可以通过EJB容器自由地在客户机之间交换,从而少量的会话Bean就可以服务于大量的客户机。
2 实体Bean实体Bean代表商务上的实体,比如商务数据,应该包含与数据相关的逻辑。
实体Bean是对应到数据库中的一个视图,一个实体Bean实例和底层数据库完全是一回事[2]。
因此,一个简单的实体bean实例代表一个特殊的记录。
更复杂的实体bean可以代表数据库表间关联视图[3]。
实体Bean有两种操作类型:BMP (Bean管理持久性)和CMP(容器管理持久性)。
BMP是指由Bean
自己来实现实体Bean的持久性,即在Bean中实现数据库操作。
而CMP则是由容器实现Bean的持久性,使我们不需要在Bean内再编写数据库操作的代码。
3 消息驱动Bean消息驱动Bean是EJB2.0新引入的一种Bean类型。
它的主要目的是,通过允许容器去聚合并且管理消息驱动Bean实例,以此来提供传入JMS消息的并发处理[4]。
4 会话Bean与实体Bean的区别和联系会话Bean执行应用逻辑,它们隐含地使用实体Bean作为它们操作的数据。
在EJB分布式对象体系结构中,会话Bean被用做代表实际商务过程的高层接口来屏蔽底层实体Bean子系统。
实体Bean是实际恒定商务实体的模型,因此它通常比会话Bean具有更高层次的重复使用。
5 EJB的应用接下来,通过分析电子购物环节的业务逻辑层的对象模型来说明各种EJB在业务逻辑层中的不同应用。
业务逻辑层包含了一系列EJB组件。
首先我们将其抽象成若干个对象模型,如图所示:图:对象模型图本图首先反映了电子商务中各EJB组件之间的静态关系。
由多个购物篮条目(Cart Line Item)组成的一个购物篮(Cart)为一个顾客(Customer)存储产品的临时选择;由多个订单条目(Order line Item)组成的一个订单(Order)为一个顾客存储产品的永久选择。
购物篮能将自身转换为订单。
一个购物篮条目代表一个产品(Product)的临时选择,一个订单条目代表一个产品的永久选择。
估价器(Pricer)在顾客查看购物篮时计算购物篮的价格,并且在顾客最终生成订单时计算订单的价格。
订单处理器(Order Processor)为订单验证信用卡,发送E-mail确认,并标识为永久。
同时从本图
中也可以了解一个电子购物的过程:首先,在购物时顾客把自己感兴趣的产品放入购物篮中,同时由估价器对购物篮进行及时估价。
然后,顾客在确认购买后,购物篮能自动生成订单。
再由估价器计算出订单的价格。
接着,由订单处理器验证顾客信用卡的合法性,在交易完成后为顾客发送E-mail确认交易成功,并将本交易标识为永久。
顾客、订单、产品、订单条目这几个对象是永久性、持续性对象,例如,顾客信息、产品信息都需要存入数据库,并且在适当的时候从数据库中读取。
所以,这几项都需要用实体Bean来实现。
购物篮和购物篮条目只在顾客购物的过程中起作用,所以不是永久性的,而且每一个购物篮都对应于一个特定的顾客,对应于若干条特定的购物车条目,因此购物篮和购物篮条目用状态会话Bean来充当最合适不过。
估价器的作用是计算出购物篮和订单的价格,它并没有和特定的顾客绑定,可以作用于任意的购物篮,而且也不是永久对象,因此估价器可以用一个无状态会话Bean来充当。
订单处理器是一个特殊的对象,它通过顾客所要求的不同的付款方式产生不同的订单,也就是说,它是由不同的付款方式来驱动的。
所以在这里用消息驱动Bean是最恰当的。
通过上面的分析,我们清楚的了解到不同类型的EJB在实际应用中如何发挥自己的作用。