- 浏览: 489478 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (672)
- 随便写写 (3)
- javascript (16)
- Java exam (58)
- JSP exam (25)
- Servlet exam (25)
- Struts exam (24)
- Spring exam (24)
- Hibernate exam (19)
- EJB exam (25)
- SOA exam (6)
- AJAX exam (25)
- Web开发 exam (25)
- 软件工程 exam (25)
- 项目管理 exam (25)
- .NET exam (23)
- ASP.NET exam (24)
- C# exam (24)
- C++ exam (25)
- C语言 exam (13)
- ASP exam (0)
- PHP exam (0)
- Ruby exam (0)
- Python exam (0)
- Delphi exam (0)
- Linux exam (0)
- UNIX exam (25)
- 数据库 exam (24)
- Oracle exam (25)
- SQL Server exam (20)
- MySQL exam (16)
- Mobile开发 exam (10)
- 嵌入式开发 exam (6)
- 网络安全 exam (0)
- 网络技术 exam (0)
- 综合技术 exam (0)
- HR面试 exam (0)
- 英语面试 exam (0)
- 外企面试 exam (0)
- 软件测试 exam (0)
- QTP exam (0)
- LoadRunner exam (0)
- 网友面经 exam (0)
- 应届生 exam (0)
- 面试指导 exam (0)
- IQ测试 exam (0)
- Flex exam (2)
- uml-ea (1)
最新评论
-
dxking100:
远光没有笔式题的说..
最新远光软件笔试题面试题内容(1) -
heming_way:
谢谢,正在复习软件工程考试呢,呵呵
《软件工程》选择题 -
梅玲达:
可以更详细点吗?
Hibernate中Criteria 和DetachedCriteria的作用是什么? -
buptjian:
学习下,试试看,谢谢啊~
Prototype如何实现页面局部定时刷新? -
bubblegum89:
这个。。。和我笔试时候做的 感觉完全不一样
最新远光软件笔试题面试题内容(3)
在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在实际应用中如何发挥自己的作用。
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在实际应用中如何发挥自己的作用。
发表评论
-
介绍一下RMI的基本概念
2010-08-12 16:35 892什么是RMIRMI(Remote Method Invocat ... -
为什么要用EJB
2010-08-12 16:35 617EJB 能为我们提供中间件服务Remote Method In ... -
什么是会话Bean
2010-08-12 16:35 7251.用来建模业务流程的EJB 中的一种类型.2.会话Bean ... -
EJB2和EJB3在架构上的不同点
2010-08-12 16:35 704EJB编程模型的简化首先 ... -
几个常见的消息中间件(MOM)
2010-08-12 16:35 628IBM WebSphere MQBEA tuxedo/QTib ... -
分别介绍一下Session Bean 和 Entity Bean
2010-08-12 16:35 804Session beans: Session beans 是 ... -
EJB发布WEB 服务一般步骤?
2010-08-12 16:35 6541.编写EJB(无状态会话Bean)2.给EJB 添加WEB ... -
异步传递消息系统的作用是什么?
2010-08-12 16:35 702异步编程,客户端发送请求给消息的接收方,不用等待接收方的反馈, ... -
解释一下钝化(Swap out)?
2010-08-12 16:35 559有状态会话Bean 的实例保存有客户端状态,当容器需要使用该实 ... -
如何获得EntityManager ?
2010-08-12 16:35 9631.在容器内部使用,使用@PersistenceContext ... -
什么是JNDI的上下文?如何初始化JNDI上下文
2010-08-12 16:35 739命名服务是将名称与对象相关联。这种关联被称为绑定。一组这样的绑 ... -
EJB3推出JPA的原因?
2010-08-12 16:35 708(1).EJB2.0/2.1: 实体Bean,是一种EJB,作 ... -
如何将无状态会话Bean 发布为WEB 服务,只有无状态会话Bean 可以发布为WEB 服务?
2010-08-12 16:35 5241.两种方式编程(1).先写Java 类,让容器生成WSDL. ... -
比较一下entity bean和session bean
2010-08-12 16:35 552entity bean(譬如说)代表底层数据库的一行,enti ... -
EntityManager都有哪些方法
2010-08-12 16:35 695persist(Object obj) 相当于Session ... -
介绍一下JNDI的基本概念
2010-08-12 16:35 703JNDI诞生的理由很简单。随着分布式应用的发展,远程访问对象访 ... -
介绍一下JMS 编程步骤
2010-08-12 16:34 473第一步:<一>配置管理对象1>.配置连接工厂 ... -
介绍一下EJB的体系结构
2010-08-12 16:34 437EJB的上层的分布式 ... -
网友共享的几个面试题关于Java和Unix等方面的
2010-08-12 16:34 5801. What is the major advantage ... -
EJB 3.1都有哪些改进?
2010-08-12 16:34 5411. 单例模式。一个Session bean在整个Applic ...
相关推荐
EJB应用开发详解
EJB是JAVA目前主流的应用框架!是一种企业级JAVABEAN
EJB核心技术及其应用
ejb3.0写的登陆应用,可以部署到jboss5.1中
Enterprise JavaBeans(EJB)是Java服务器端组件...首先分析了EJB的体系结构,介绍了EJB的各个组成部分,然后比较了EJB的种类和各自的技术特点,最后讨论了开发EJB组件的过程,并通过一个例子来阐述EJB组件在分布式中的应用。
EJB简单应用,讲解分布式EJB操作数据库的知识
本书详细介绍了J2EE框架的重要组成部分——EJB及其相关技术。全书以剖析EJB 2.0的技术核心以及开发与部署的过程为中心,共分3大部分20章,包括无状态会话Bean、有状态会话Bean、CMP实体Bean、EJB QL语言、集成RMI-...
EJB技术及应用(课件与练习)
分布式对象; 远程方法调用; CORBA; RMI-IIOP; 企业JavaBeans RMI技术研究及其在EJB中的应用
本书主要内容包括:构建EJB类及其接口的机制,EJB设计和性能的策略,构建Web层,EJB的高级概念等。附录包括了EJB 2.0的摘要及其新特征。本书内容翔实、深入浅出,提供了详细的讨论和实例,对于懂Java语言的EJB初学者...
EJB核心技术及其应用入门 EJB核心技术及其应用入门
EJB技术及应用(课件与练习).rar
实战EJB 实战EJB 实战EJB 电子书 pdf
LoadRunner在EJB自动化测试中的应用
EJB基础及应用开发.pdf
在ejb框架中的Ajax应用,并有详细说明
《EJB 2.0企业级应用程序开发 》
EJB开发介绍,一些关于EJB的基础知识,以及在企业中的简单应用,交你怎么简单的开发
虽然EJB3.0 最终规范出来了一段时间,但对EJB3.0的应用还停留在介绍之中,应用实例更是少之又少,所以作者拟写本书,以简单的实例展现EJB3.0 的开发过程,希望对大家有所帮助。 本教程适合具有Java 语言基础的EJB初学...
EJB方面EJB方面EJB方面EJB方面EJB方面