- 浏览: 520839 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (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 952什么是RMIRMI(Remote Method Invocat ... -
为什么要用EJB
2010-08-12 16:35 650EJB 能为我们提供中间件服务Remote Method In ... -
什么是会话Bean
2010-08-12 16:35 7761.用来建模业务流程的EJB 中的一种类型.2.会话Bean ... -
EJB2和EJB3在架构上的不同点
2010-08-12 16:35 744EJB编程模型的简化首先 ... -
几个常见的消息中间件(MOM)
2010-08-12 16:35 665IBM WebSphere MQBEA tuxedo/QTib ... -
分别介绍一下Session Bean 和 Entity Bean
2010-08-12 16:35 840Session beans: Session beans 是 ... -
EJB发布WEB 服务一般步骤?
2010-08-12 16:35 7031.编写EJB(无状态会话Bean)2.给EJB 添加WEB ... -
异步传递消息系统的作用是什么?
2010-08-12 16:35 728异步编程,客户端发送请求给消息的接收方,不用等待接收方的反馈, ... -
解释一下钝化(Swap out)?
2010-08-12 16:35 589有状态会话Bean 的实例保存有客户端状态,当容器需要使用该实 ... -
如何获得EntityManager ?
2010-08-12 16:35 10031.在容器内部使用,使用@PersistenceContext ... -
什么是JNDI的上下文?如何初始化JNDI上下文
2010-08-12 16:35 794命名服务是将名称与对象相关联。这种关联被称为绑定。一组这样的绑 ... -
EJB3推出JPA的原因?
2010-08-12 16:35 763(1).EJB2.0/2.1: 实体Bean,是一种EJB,作 ... -
如何将无状态会话Bean 发布为WEB 服务,只有无状态会话Bean 可以发布为WEB 服务?
2010-08-12 16:35 5621.两种方式编程(1).先写Java 类,让容器生成WSDL. ... -
比较一下entity bean和session bean
2010-08-12 16:35 593entity bean(譬如说)代表底层数据库的一行,enti ... -
EntityManager都有哪些方法
2010-08-12 16:35 734persist(Object obj) 相当于Session ... -
介绍一下JNDI的基本概念
2010-08-12 16:35 756JNDI诞生的理由很简单。随着分布式应用的发展,远程访问对象访 ... -
介绍一下JMS 编程步骤
2010-08-12 16:34 506第一步:<一>配置管理对象1>.配置连接工厂 ... -
介绍一下EJB的体系结构
2010-08-12 16:34 481EJB的上层的分布式 ... -
网友共享的几个面试题关于Java和Unix等方面的
2010-08-12 16:34 6221. What is the major advantage ... -
EJB 3.1都有哪些改进?
2010-08-12 16:34 5831. 单例模式。一个Session bean在整个Applic ...
相关推荐
### Spring与EJB3.0的关键区别及其优劣分析 #### 一、Spring框架概述 **1.1 引言** Spring作为一个广受欢迎的开源框架,最初被设计用于减轻企业级应用开发中的复杂性问题。它的一个显著特点在于模块化的分层架构...
- 介绍了EJB3中的EntityManager接口及其主要功能。 - 包括执行CRUD操作、查询实体数据等方法。 - **关系/对象映射**: - 详细解释了如何使用EJB3进行复杂的关系映射。 - 包括一对多、多对一、一对一、多对多等...
综上所述,ejb2.rar_bmp ejb2_ejb2_ejb2 cmp b 文件压缩包提供了一个实际的EJB 2.1 CMP和BMP登录示例,这对于理解这两种持久化策略及其在实际项目中的应用非常有价值。通过研究这个实例,开发者可以深入学习EJB 2.1...
在Java Web开发领域,Struts1.2和EJB3.0是两个重要的技术框架,它们各自扮演着不同的角色,共同构建了一个功能强大的应用程序。Struts1.2是MVC(Model-View-Controller)设计模式的实现,主要用于处理用户界面和业务...
Struts2、Spring和EJB(Struts2+Spring+EJB,简称SSE)是Java企业级开发中常用的三大框架,它们各自承担着不同的职责,共同构建了一个强大的应用架构。Struts2作为MVC(Model-View-Controller)框架,负责处理用户...
介绍Jboss AS的目录结构及其各部分功能,帮助开发者理解如何组织和部署应用程序。 **2.2 JBOSS中的部署** 涵盖EJB模块、WAR文件、EAR文件等不同类型的部署单元如何在Jboss AS中部署。 **2.3 如何进行EJB打包** ...
EJB3、Struts和Spring是Java企业级开发中的三个重要框架,它们分别在不同的层次上解决了应用程序的设计和管理问题。EJB3是Java企业版(Java EE)的一部分,提供了面向服务的组件模型,用于构建可扩展且可靠的分布式...
文章旨在深入探讨这两种框架在企业级Java应用程序开发中的应用,以及它们各自的优势与不足。 标签:“spring” 标签明确指向Spring框架,这表明文章将侧重于Spring框架的特性、功能以及它在企业软件开发中的角色。...
通过以上介绍,我们可以看出JSF是一种非常强大且灵活的Web应用框架,它与Seam和EJB结合使用时,可以构建出功能完备、易于维护的企业级应用。尽管存在一些缺点,但随着技术的发展,这些问题也在逐步得到解决。
- **分布式多层应用程序**:介绍了分布式多层应用程序的基本概念,这类应用程序通常包括客户端、中间层和后端数据库等多个层次,每一层都有其特定的功能。客户端负责与用户的交互;中间层处理业务逻辑,协调各层之间...
在Web应用开发领域,**Model1**和**Model2**是两种基于JSP技术的开发模型,它们各自代表了不同的架构思想。 - **Model1**:这是一种以JSP为中心的开发模型,JSP页面集成了业务逻辑、服务端处理过程以及HTML展示,...
本章节简要介绍了JBoss Application Server集群的概念,强调了集群在提高应用服务可用性及扩展性方面的重要性。 **1.2 集群定义** 对集群的基本定义进行了阐述,包括集群节点如何协同工作以提供高可用性和负载均衡...
本文将详细介绍轻量级J2EE企业级应用实战的知识点,重点内容围绕JavaEE基础开发知识、三大框架Struts2.2、Spring3.0、Hibernate3.6的使用方法,以及如何将这些技术整合应用于实际项目中。 首先,我们需要了解JavaEE...
- WebLogic是由Oracle提供的全功能Java EE应用服务器,支持完整的Java EE规范,包括ejb、JMS、JTA等高级服务。 - WebLogic以其强大的集群、负载均衡、安全管理以及事务处理能力著称,适合大型企业级应用。 - 部署...
每一代的进步都有其各自的目标,但每前进一步都与计算机及其操作系统的升级有着紧密联系。 2. 系统应用 县级电网调度自动化系统是一个技术不断发展、功能不断扩充的系统,在发展中总会碰到新的问题,现行的一些...
接下来,熟悉EJB概念和使用方式,了解不同类型的EJB及其在实际项目中的应用场景。同时,学习Oracle数据库的基础知识,包括SQL查询和JDBC操作。最后,通过实践项目来巩固理论知识,例如搭建一个简单的J2EE应用,包括...
下面将详细讨论J2EE中的13种核心技术及其应用场景。 1. **JDBC (Java Database Connectivity)**:JDBC是Java中用来访问数据库的标准接口,它允许Java应用程序与各种类型的数据库进行交互,提供了平台无关性的数据...
### J2EE与.NET 应用程序服务器及Web服务基准比较 #### Middleware公司研究概览 Middleware公司发布的《J2EE和.NET应用程序服务器与Web服务基准比较》报告深入探讨了两个主要的企业级软件开发平台之间的差异及其...