当前位置: 首页 > 学习 > 电脑学习 > 程序设计 > JAVA > EJB > 正文

EJB的分类及其各自的功能及应用

http://www.zk168.com.cn  招考学习网 2006-4-11 3:04:55
-----------------------------------------------------------[交流]-[打印]-[发送]-[收藏]--
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在实际应用中如何发挥自己的作用。
-----------------------------------------------------------[交流]-[打印]-[发送]-[收藏]--
最新入库:
 
·实质、过程及意义——阿多尔诺“否定的辩证法”探微
·从Ontology的译名之争看哲学术语的翻译原则
·论马克思主义哲学经典的解释——解释学方法及其在马克
·中国哲学当前的核心与周边问题
·和合学与21世纪文化价值和科技
·中国文化的和合精神与21世纪
·宗教之间理当相互宽容
·上半个世纪的自由主义
·殷周至春秋时期神人关系之演进
·大学之道:构建以“三纲八目”为核心的道德修养体系
相关内容:
 
·BOG压缩机在液化石油气基地的应用
·LFCB-102型微波分相差动保护的应用
·基于PB6和ORACLE8开发“劳动信息管理系统”
·利用TDC组件实现对WEB页面的交互操作
·关于SBS改性沥青配合比设计及施工技术的探讨
·PowerBuilder的分布式计算技术及其应用
·PowerBuilder和MapInfo的集成开发技术
·基于Visual Basic快速开发现场电视监控系统
·PBX濒临被取代的危机—论程控交换机的生存与发展
·ASP技术访问WEB数据库 2
网友点评:
 
会员名称:
密码:匿名 ·注册·忘记密码?
评论内容:
(最多300个字符)
  查看评论
友情提醒:
 1.库中的资料大都来自互联网、网友上传、各类书籍,在录入的过程中难免会出现错误,恳请网
 友来信指正!
 2.如果网友在本库中未能找到所需要的材料,请登陆到我们的论坛《招考学习网》版块!
 3.考友想加入招考学习网的编辑部,请发信到XueXiWang#Gmail.com(#改为@)附带个人简历
 4.如需转载请注明出处及作者,谢谢合作!
 5.如果您有更好的建议或意见请EMAIL:XueXiWang#Gmail.com (#改为@)
 6.凡标题中有注有“[NO]”字样均不含答案且答案整理中.
 7.如本库中转载文章涉及版权等问题,请相关网站或作者在两周内发邮件通知(EMAIL:  XueXiWang#Gmail.com (#改为@))我们,我们接到通知后立即删除该文章及链接!
你问我答 更多>>