EJB规约演示教学

上传人:yulij****0329 文档编号:137341794 上传时间:2020-07-07 格式:PPT 页数:54 大小:1,019.50KB
返回 下载 相关 举报
EJB规约演示教学_第1页
第1页 / 共54页
EJB规约演示教学_第2页
第2页 / 共54页
EJB规约演示教学_第3页
第3页 / 共54页
EJB规约演示教学_第4页
第4页 / 共54页
EJB规约演示教学_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《EJB规约演示教学》由会员分享,可在线阅读,更多相关《EJB规约演示教学(54页珍藏版)》请在金锄头文库上搜索。

1、EJB规约,2,EJB是J2EE规约中最重要的部分。EJB提供了让客户端使用远程分布式对象的框架,极大地简化了具有良好的可扩充性的企业级应用的开发。 EJB规约规定了EJB构件(指符合EJB规约的构件)如何与EJB容器(container)进行交互,而EJB 容器则提供诸如目录服务、事务管理、安全、连接池管理、容错等服务。,3,EJB的概念,EJB不是一种产品,而是为开发和使用基于事务和分布对象应用的服务器端构件而定义的一种技术规约。 (1) 符合EJB规约的构件是一组分布式的对象,它们通过所谓EJB容器的控制,为分布式用户提供远程服务。EJB规约保证了EJB构件的可复用性。 (2) EJB规

2、约定义了EJB构件与EJB容器之间的交互机制,描述了EJB构件和EJB容器在运行时的行为,保证了EJB构件在容器间的易移植性。 (3) EJB规约定义了EJB容器和EJB服务器的标准模型,各软件厂商可开发实现该模型的各种EJB服务器产品。,4,EJB目标,EJB的目标是为服务器端构件系统定义一个技术规范。 该规范能提供一个标准的、分布的、基于OO的体系结构 能屏蔽复杂的系统级功能需求 能兼容 CORBA 标准,有与非 Java 应用之间的互操作能力,6,(6) 可扩展性 可以根据应用的增长而扩展,EJB 服务器往往还提供了负载平衡。 (7) 安全性 由 EJB 服务器提供资源的访问权限控制。,

3、7,EJB体系结构,8,EJB体系结构,EEJB服务器 EJB服务器的主要功能: (1) 管理 EJB 容器 (EJB 容器则管理 Bean) (2) 提供对操作系统服务的存取 (3) 提供 Java 相关的服务,特别是 (A) 通过 JNDI 访问命名空间 (B) 基于 OTS 的事务处理服务,9,EJB容器 EJB构件并不在 EJB 服务器的顶部直接执行。一个称为EJB容器的中间件在EJB服务器环境中运行,EJB 容器为EJB构件提供操作环境。主要来说,EJB容器管理了以下的系统级问题: (1) 持久性(Persistence): 容器决定何时载入储存状态,又可分为CMP (Contain

4、er-Managed Persistence) 和BMP(Bean-Managed Persistence)。 (2) 生命周期管理(Life Cycle Management): 容器管理EJB构件的实例,使EJB构件实现最大的效能和内存利用率。容器能够激活和钝化EJB构件、管理实例池等等。 安全性(Security):,10,(3) 事务管理(Transaction Management): 容器负责管理分布式事务处理的复杂问题。 部署描述文件定义了客户能够访问的不同的应用函数。容器只允许授权的客户访问这些受保护的函数。 远程连接(Remote Connectivity): 容器为远程连接

5、,管理底层的通信问题,而且对EJB构件的开发者和客户都隐蔽了通信问题。,11,EJB客户端 EJB客户端是指请求EJB构件服务的应用程序。EJB规约为创建EJB构件的客户接口定义了一套标准。这套标准主要包括: (1) EJB Home接口: EJB Home接口为客户机创建、删除、查找EJB Remote接口对象的句柄提供了相应的操作。 EJB客户机使用JNDI来查找对EJB Home接口的引用。 (2) EJB Remote接口: EJB客户机通过EJB Remote接口调用EJB构件的业务方法。,12,EJB的组成,EJB并不是一个单独的文件,它由一些类、接口、描述文件和其他一些资源文件组

6、成。 1) EJB类 Bean的第一部分是实现基本方法的类,这个类封装了需要实现的商务逻辑。这个类需要遵循一些规范,并要与一些严格定义的接口保持一致。不同类型的Bean的要求也不一样。对于会话Bean,这个类主要包含一些商务逻辑;对于实体Bean则主要包含一些数据逻辑;而对于消息驱动Bean,则主要包含一些消息处理逻辑。,13,2) EJB对象 EJB对象运行在EJB容器中,EJB容器通过Bean提供的方法来管理Bean。当客户端需要调用EJB时,并不直接与Bean类提供的方法打交道,客户端的调用被EJB容器截获,而EJB对象则充当了Bean类实例的代理。EJB对象是根据Bean类、某些接口和

7、某些描述文件,并通过专门的工具来生成的,它负责和一些中间层API打交道。EJB容器是客户端和Bean类之间的中间层,这个中间层负责管理一个能处理底层网络通信的对象,这个对象就是EJB对象。 EJB对象复制了Bean类的商业方法,并代表Bean类来响应客户端的调用。EJB对象在物理上是EJB容器的一部分。,14,3) Remote 接口 Bean的客户端直接与EJB对象打交道,而不是直接调用Bean类的方法,所以EJB对象必须复制Bean类提供的每一个方法,Remote Interface告诉EJB对象自动生成工具需要复制Bean类的哪些方法。 实现Remote 接口的对象是EJB对象(java

8、x.ejb.EJBObject),EJB对象首先要实现EJBObject接口中定义的方法,然后还需要实现用户定义的Remote接口中的方法。,15,4) Local接口 有的时候Bean的调用并不没有经过网络,比如在同一个容器中不同Bean之间的调用,则不需要经过stubskeletonEJBObject中间层APIBean实例返回的过程,用户可以使用Local对象来调用Bean实例。Local接口是从javax.ejb.EJBLocalObject继承的。 5) Home对象和 Home接口 Home对象的主要功能是:创建、查找、删除EJB对象。Home对象在物理上是EJB容器的一部分,由专

9、门的工具自动生成的。 Home 接口提供了容器自动生成Home对象所需要的信息。从而使Home对象能提供给EJB对象的初始化方法。,16,(3) RMI/IIOP或RMI/JRMP协议: RMI/IIOP或RMI/JRMP是EJB客户机与EJB服务器进行通信的标准协议,这些底层的分布式通信机制对于EJB客户机和EJB构件开发者都是透明的。,17,EJB的分类,EJB2.0定义了3种类型的Bean。 (1)会话(Session)Bean 会话Bean用于描述商业处理过程,会话Bean可以作为其他Bean的客户端,调用其他Bean的方法。 (2)实体(Entity)Bean 实体Bean用于描述数

10、据,它是数据信息的Java缓冲对象。实体Bean提供了持久数据的操作与表示。可以同时与多个客户机进行交互,系统结束时其运行状态仍能保留。 (3)消息驱动(Message-driven)Bean 消息驱动Bean集成了Java消息服务(JMS)和企业Bean的功能。不能由客户端直接获得其引用而调用其方法,只能由系统消息来启动。,18,开发一个EJB组件,必须创建以下四个文件: (1) EJB Home接口 EJB Home接口定义了一些方法供EJB客户端创建和查找EJB对象。 (2) EJB Remote接口 EJB Remote接口定义了EJB的业务方法,EJB所有的业务方法必须在Remote

11、接口定义才能够被客户端访问。 (3) EJB类 EJB类实现了EJB Remote接口中定义的业务方法。 (4) Ejb-jar.xml Ejb-jar.xml包含了该EJB组件的配置信息。,19,EJB开发步骤,(1) 声明远程接口 (2) 声明本地接口 (3) 实现Bean类 (4) 部署J2EE应用 (5) 客户端编程 (6) 编译及运行,20,企业Bean的优点,首先EJB容器给企业Bean提供了系统级服务,使Bean开发者可以专注于商务问题的解决。 其次因为企业Bean而不是客户端实现商务逻辑,客户端开发者就可以致力于客户端表述的开发,而不必为实现商务规则或者数据库访问的日常处理而编

12、码了。 最后,因为企业Bean是可移植的,应用程序组装者可以用现有的企业Bean建立新的应用程序。这些应用程序可以在任何兼容的J2EE服务器上运行。,21,何时需要使用企业Bean,你的应用程序需要不断的升级。为了适应不断增长的用户,你可能需要将你的应用程序组件分布在多台不同的机器上运行。虽然并不仅仅是企业Bean可以在不同的机器上运行,但企业Bean的运行位置对于客户端始终是透明的。 需要用事务机制来保证数据完整性。企业Bean支持事务机制以提供对共享资源并发访问的管理。 应用程序需要支持众多不同类型的客户端。只需要极少的几行代码,远程客户端就可以很容易的访问到企业Bean。这些客户都可以很

13、“瘦”并且在理论上可以是任意数量不同类型的客户端。 企业Bean的分类,22,会话Bean,会话Bean表现连接到J2EE服务器的一个单独的客户端。客户端通过调用会话Bean的方法来访问部署在服务器上的应用程序。会话Bean完成客户端的请求,从而对客户端隐藏了服务器内复杂商务逻辑的执行过程。 状态管理模式: 有状态会话Bean 无状态会话Bean,23,有状态会话Bean,一个对象的状态由它的成员变量(数据成员)的状态决定。有状态会话Bean的成员变量描述一个唯一的客户端-会话Bean的关联状态。因为客户端要与对应的会话Bean进行对话,所以这种状态通常被叫做会话状态。,24,无状态会话Bea

14、n,无状态会话Bean并不为客户端保留会话状态。在客户端调用无状态会话Bean的方法时,对应会话Bean的数据成员会描述这个调用状态,但仅仅只在该方法调用期间保持这个状态。当方法调用结束,状态就被清除。除了在方法调用期间,所有同一个无状态会话Bean实例是等价的,可以被容器分配给任一客户端。,25,有时,EJB容器会在没有请求的时候把有状态会话Bean保存在内存(二级存储器Second Storage)中。不管什么时候,没有请求时无状态会话Bean都不会被保存中。所以,无状态会话Bean会比有状态会话Bean有更高的性能。,26,何时需要会话Bean,通常,在出现以下几种情况时你需要用会话Be

15、an: 在任何给定时间,只有一个客户端访问这个Bean的实例。 Bean的状态并不需要持久保存,只在一个时间段(可能是几小时)内保持,27,何时需要会话Bean,在以下情况下,建议采用有状态会话Bean: Bean需要描述一个于特定客户端的会话状态 Bean需要在客户端的多个方法调用之间保存调用信息 Bean作为应用程序的其他组件和客户端的中介者,呈现一个简单化的视图给客户端,28,如果你的应用符合以下特性,为了得到更高的性能你应该选择无状态会话Bean: Bean的状态不包含客户端相关的数据 在一个单一方法调用中,Bean已经可以为客户端完成所需要的工作。例如你可以用无状态会话Bean发一封

16、邮件确认网络订单。 Bean需要从数据库获取一些客户端经常访问的只读数据。你可以用这样的Bean来访问数据表中代表这个月已经卖出的产品的行。,29,EntityBean,一个EntityBean描述一个持久存储的商业对象。商业对象的例子如:消费者,订单和产品等。在J2EE SDK中持久存储设备是一个关系型数据库。最典型的情况是一个EntityBean又一个在底层数据库中有一个表相对应,而EntityBean的每一个实例对应表中的一行数据。,30,EntityBean和会话Bean的不同之处,持久性 共享访问 主键 关系,31,持久性,因为EntityBean的状态保存在存储设备中,所以它具有持久性。持久性是指EntityBean的状态跨越应用程序和J2EE服务器处理过程的生存期,32,共享访问,EntityBean可以被多客户端所共享。由于多个客户端可能同时去修改同一数据,所以在调用过程中事务机制非常重要。典型情况下EJB容器都支持事务机制。在这种情况下,可以在Bean的部署描述符中确定它的事务属性。开发者不必为事务界限编码容器会自动划

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号