




已阅读5页,还剩57页未读, 继续免费阅读
(计算机应用技术专业论文)用于智能交通系统的ejb组件研究及其性能分析.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 s 3 0 l t 8 f 智能交通系统的e 3 b 组件研究及其性能分析 计算机应用技术专业 研究生扬晖指导老师卢苇教授 n t e r p d s ej a v a b e a n ( f a b ) 组件是基于j 2 e e 规范的服务器端组件的体系结 i 过e j b 规范可以开发和部署可扩展的、健壮的、安全的分布式应用。 能是设计e j b 组件体系时需要考虑的重要因素,只有优越的性能才能 e j b 作为企业级组件的特点。 文的工作主要集中在: 【1 研究了e j b 组件的实现原理、体系结构和基本功能。 ! ) 使用i b mw e b s p h e r ea p p l i c a t i o nd e v e l o p e r 遮盐塑塞理工二全基土 ! 萱能变通丕堕( ! i 坠,并在i b mw e b s p h e r ea p p l i c a t i o ns e r v e r 上成功部 文程序涉及5 5 个j a v a 类和接口约6 0 0 0 行代码。 j ) 借鉴了前人对e j b 体系性能分析的研究成果通过实践给出工羞壬握 旦世能盥筮喳并丛题爱丕筮数整住自廑握出工= 登型围隆扭腿丕过猩 i 金佥扭量堡丕统挂能的堑友洼。 ) 撞盟压握出数筮堕盈匹曼丞统丝能佳i 述丝,测试结果表明,优化后 能得到显著提高。 e 文的组织如下:第一部分介绍了玎b 技术目前的研究成果并在此基 黾出了本文研究的侧重点。第二部分介绍了服务器端组件体系的发展过 串对j a v a 2 平台企业版( j 2 e e ) 的各组成部分作了概述。第三部分详细分析 b 组件体系的内部结构、编写规则、调用流程和实现方法,以及e b 容 要与服务。第四部分介绍了i t s 的实现,包括系统特点,技术架构,e j b w e b 模块和a p p l i c a t i o nc l i e n t 模块的设计,咀及i t s 的使用。第五部分 笋设计和容器部署两方面分析了了影响e j b 性能的因素,提出了改善性 能的措施和策略,建立了一个模拟e j b 系统的排队模型,并通过实际性能和 负载测试验证了分析结果。 关键词:企业b e a n 组件j 2 e e 规范排队系统随机服务过程智能交通系 统性能 t h er e s e a r c ho fe j b c o m p o n e n t a r c h i t e c t u r ef o r i n t e l l i g e n t t r a f f i cs y s t e ma n di t sp e r f o r m a n c e a n a l y s i s s p e c i a l t yo fc o m p u t e ra p p l i c a t i o n p o s t g r a d u a t e :y a n g h u i s u p e r v i s o r :p r o f l uw e i e n t e r p r i s ej a v a b e a n ( e j b ) i s as e r v e r - s i d e c o m p o n e n ta r c h i t e c t u r e b a s e do n j 2 e e s p e c i f i c a t i o n ,a n dr o b u s t s e c u r ea n d d i s t r i b u t e da p p l i c a t i o n sc a l lb e d e v e l o p e d a n dd e p l o y e du s i n gi t s y s t e mp e r f o r m a n c ei so n eo ft h em o s ti m p o r t a n ta s p e c t st o b e c o n c e r n e dw h e n d e s i g n i n g e j b c o m p o n e n ta r c h i t e c t u r e ,b e c a u s eo n l y p r e e m i n e n tp e r f o r m a n c e c a n g i v ee x p r e s s i o n t oi t se n t e r p r i s el e v e lc h a r a c t e r i s t i c t h em a i nc o n t r i b u t i o no ft h i sp a p e ri n c l u d e s : ( 1 ) s t u d i e s t h ep r i n c i p l e s ,s t r u c t u r e sa n df u n c t i o n so fe j b c o m p o n e n t ( 2 ) d e s i g n sa n di m p l e m e n t sa ni n t e l l i g e n tt r a f f i cs y s t e m ( i t s ) b a s e do ne j b u s i n gi b mw e b s p h e r ea p p l i c a t i o nd e v e l o p e r , a n dd e p l o y si ts u c c e s s f u l l yo ni b m w e b s p h e r ea p p l i c a t i o ns e r v e r t h ec o d e sa r ea b o u t6 0 0 0l i n e s ;c o n s i s to f5 5j a v a c l a s s e sa n di n t e r f a c e s ( 3 ) p r o p o s e ss e v e r a ls t r a t e g i e st oi m p r o v et h ep e r f o r m a n c eo f e j b o nt h eb a s i s o f s t u d y i n ga n dp r a c t i c i n go t h e r s w o r k ,a n dp u t sf o r w a r d an e wm e t h o dt oa n a l y z e t h ep e r f o r m a n c eu s i n gs t o c h a s t i c p r o c e s s e s a n dq u e u e i n gt h e o r yf r o mi n t e g r a l a s p e c t ( 4 ) o p t i m i z e s t h e p e r f o r m a n c e o fi t s t h et e s tr e s u l ts h o w st h a t s y s t e m p e r f o r m a n c ei m p r o v e so b v i o u s l y a f t e ro p t i m i z a t i o n t h i sp a p e ri so r g a n i z e da sf o l l o w s : s e c t i o n1i n t r o d u c e sp r e s e n tr e s e a r c ha c h i e v e m e n to fe j bt e c h n o l o g y , a n dp u t s f o r w a r dt h es t u d yf o c u so ft h i sp a p e r s e c t i o n2i n t r o d u c e st h eb a s i cc o n c e p t so f s e r v e r - s i d ec o m p o n e n t ,a n dg i v e st h es u r v e yo l lm o s tp a r t so fj a v a2p l a t f o r m e n t e r p r i s ee d i t i o n ( j 2 e e ) s e c t i o n 3 a n a l y z e s t h ei n t e r n a ls t r u c t u r eo fe j b c o m p o n e n ta r c h i t e c t u r ea n d i t sc a l l i n gp r o c e s s ,t h ee j bc o n t a i n e rt o o l sa n ds e r v i c e s a r ea l s oi n t r o d u c e d s e c t i o n4d i s c u s s e st h e i m p l e m e n t a t i o no fi t s ,i n c l u d i n g s y n o p s i so fi t s t e c h n i c a la r c h i t e c t u r ea n dd e s i g no fe j bm o d e l ,w e bm o d e la n d a p p l i c a t i o nc l i e n tm o d e l s e c t i o n5d i s c u s s e sf a c t o r sr e l a t e dt oe j bp e r f o r m a n c e f r o mt w o a s p e c t s :p r o g r a md e s i g na n d c o n t a i n e r d e p l o y m e n t ,c o n s t r u c t sas i m u l a t e d q u e u e i n gm o d e l a tl a s t ,t h ea n a l y s i sr e s u l t sa r ev a l i d a t e db yp e r f o r m a n c ea n dl o a d t e s t k e y w o r d s :e n t e r p r i s e j a v a b e a n j 2 e e s p e c i f i c a t i o n ,q u e u e i n gs y s t e m , s t o c h a s t i cp r o c e s s e s i n t e l l i g e n tt r a f f i cs y s t e m ,p e r f o r m a n c e , 1 引言 随着网络技术的迅猛发展,越来越多的企业开始采用基于i n t e r n e t 的系 统作为企业外部、内部信息的发布、交换、管理和交易的平台。面对更为丰富 和复杂的应用,传统的w e bs e r v e r c g i d bs e r v e r 技术已经无法胜任,进而 产生了o i g 的c o r b a 、s u n 公司的基于j a v a 的j 2 e e 和m i c r o s o f t 的n e t 等分 布式应用体系。其中,s u n 公司的j 2 e e 在开发性、跨平台性、安全性以及分 布式组件技术的产品化和成熟化上处于领先地位。随着f l e a 的w e b l o g i c 、i b b 的w e b s p h e r e 和s y b a s e 的n e we r a 等基于j 2 e e 的应用服务器产品的推出,越 来越多的丌发应用已经转向了这一领域。 e j b 组件体系作为j 2 e e 技术的核心,规范了如何用j a v a 丌发与部署服务 器端应用业务逻辑组 牛。通过e j b ,应用开发者可以为中间件提供复杂的企业 级特性,并且不用花费精力处理分布式服务所带来的底层问题。应用服务器为 运行在其中的e i b 提供了事务处理、安全、资源共享、生存期管理、线程管理 与同步等服务。自从1 9 9 8 年e j b l 0 提出以来。,一直被不断的修改和完善, 目前e j b 2 ,1 的草案已经发布。 e 1 b 组件体系f 随着信息技术的发展在各种电子商务环境中得到越来越 广泛的应用。在本文中,我们为了更好地对城市交通进行监控和管理,为公司 和个人提供更有价值的交通信息服务,设计开发了一个j 2 e e 平台上的智能交 通系统( i n t e l 1i g e n tt r a f f i cs y s t e m ) ,i t s 系统将目前单个的车辆信息终端 与功能强大的企业缴计算环境结合起来充分体现了e j b 组件体系的技术优势 和特点。 e j b 组件体系是一个复杂而精密的系统,处理的是大量实时的并发性的核 心商务逻辑,对系统性能有着很高的要求。而设计和部署的好坏将对其性能造 成直接的影响。因此对e j b 性能的分析和优化直是g j a 组件体系研究的重点 【刚 吣 。 对于分布式对象和中间件的性能问题,在文献“”中作了探讨。文献“” 提出了一种基于经验的中间件性能预测方法:文献”3 给出了在高速网络环境下 不同中间件系统的性能比较及影响因素。而对于e j b 这种特殊的分布式对象和 中间件,文献“”提出了具体的性能评价指标;在模型规范化方丽文献“1 使用 了s p i n 模型检验器形式化和验证了e j b 的行为,文献9 3 给出了e j b 生命周期 内对象间交互的形式化描述:文献“”3 在此基础上提出了e j b 应用程序及应用 服务器的性能监视框架和方法。 以上的研究都是从某一方面探讨了e j b 的性能特性,但都没有在整体上从 服务系统角度对e j b 进行分析。既然用户对e j b 的访问具有随机性,自然会将 e j b 体系视为由于随机因素的干扰而出现拥塞现象的系统。而排队论和随机服 务过程是研究这类问题的有效工具”1 ”。本文在这方面作了具体的讨 论和分析。 4 2 服务器端组件体系及j 2 e e 2 1 服务器端组件体系的发展 建立一个健壮的服务器端组件的部署是非常困难的,需要考虑很多的因 素,例如可扩展性、可维护性、可靠性和安全性等等。因此任何良好的部署都 将软件从逻辑上分成多个层面,让每个层面完成整体部署中的不同任务。这种 分层结构是非常抽象的,和物理上的结构没有任何关系。典型的分层方式如下: 表示层处理用户界面和用户交互的组件。 商务逻辑层解决商务问题的组件。 数据层 系统中相对稳定持续的部分,它向商务逻辑层提供数据。 物理上的分层和逻辑分层有很大的区别。在2 0 世纪g o 年代后期到9 0 年 代早期,几乎所有新的企业应用都采用二层体系结构( 也称为客户机服务器 结构) :后来发展成为三层结构:然后是基于w e b 的体系结构;目前发展到以 j 2 e e 为代表的组件体系结构。 2 1 ,1 二层应用体系结构 过去传统上的大多数企业级软件部署都是二层体系结构的。它是将商务逻 辑层与另外两层中的一层组合为一个层面。这样就有如下两种可能。 1 将表示层和商务逻辑层组合成个层面 在这种情况下数据层作为单独的层面位于服务器端,将表示层和商务逻 辑层组合成为客户端。这种体系被称为胖客户端、瘦服务器的结构。其缺点是 软件部署丌销很大,同时改变数据库驱动程序、数据结构、商务逻辑时的开销 也很大。此外由于每个客户都要与数据库建立自己的连接,因此有可能造成网 络性能的下降。 2 将商务逻辑层的部分放入数据层 在最近的一些软件部署中,开始将商务逻辑的一部分和数据层组合成为一 个单独的层面。这种体系就是胖服务器、瘦客户端的结构。在实现上,通常是 将数据访问逻辑模块( 如存储过程) 放到数据层中。通过调用数据访问逻辑模 块来执行多次的数据访问请求,而不需要通过网络或层间边界。这就可以减少 数据往返时间,同时也提高了网络的整体性能。但是这种结构也会影响到系统 5 的可扩展性和可重用性,使系统的灵活性有很大程度的降低。 2 1 2 三层应用体系结构 鉴于二层体系结构的种种不足三层和多层体系结构在近几年得到了迅速 的发展。表示层、商务逻辑层和数据层被物理地分割成不同的层,还可以将每 个逻辑层更进一步地进行物理上的分割,让它们更加独立地完成各自的功能。 图2 ,l 表示了一个典型的三层结构系统解决方案。表示层位于一个或多个 w e b 服务器构建的空间中。商务逻辑层位于一个或多个应用服务器中。应用服 务器为组件提供了可靠和必要的支持,还能够实现对组件的管理。数据层由一 个或多个数据库系统组成,为系统提供持久性支持。 垦一l 一 讣个 一一、l 非安宁区域 “m 删;重一j , 醒2 个 i 鲁篚1 一一一一一一。r 王l l l _ 二一l = := = “:界i 域 一 培边界- - - - - - - - 一 1 硼- - i 一 多i 朴张障 ,i r 囤2 1 三层应用体系结构 三层及多层体系结构的优点是显而易见的。在服务器端部署和配置系统的 开销远远低于在数千台客户终端上部署和配置系统。同时由于用户不直接访问 数据库,而是通过中问层因此我们重新定义、更改数据库驱动程序、存储方 式和商务逻辑方法都不会影响到客户端。各个层面的相互独立使性能下降和故 障局部化。而且应用程序服务器也可以使资源得到有效的共享和重复利用。 2 2j a v a 2 平台企业版( j 2 e e ) 多层组件体系结构提出以后市场上出现了多种具体的解决方案,其中最 6 为流行和成熟的是s u n 公司提出的基于j a v a 语言的服务器端组件体系结构规 范,即j 2 e e ( j a v a 2p l a t f o r me n t e r p r i s ee d i t i o n ) 。j 2 e e 的主要目标是提供一个 平台无关、可移植、多用户、安全和标准的企业级j a v a 服务器端部署平台。 目前j 2 e e 的最新版本为1 4 。”j 2 e e 由一整套的规范组成,主要包括: 企业级j a v a b e a n ( e j b )e j b 定义了如何编写服务器端组件并且为 服务器端组件和管理这些组件的应用服务器之间提供了标准的协议。e j r 是 j 2 e e 的核心,也是本文研究的重点。 j a v a 远程方法调用( r i v l i ) 和t k ! v i i i i o pr m i 是一种远程调用其他计算 机上方法的机制,e j b 需要r m i 作为组件和客户端之间底层的通信a p i 。 r m i i i o p 作为s u n 丌发的一个r m i 版本,使用o m g 的i i o p 作为通信协议具 有很好的健壮性,也便于j 2 e e 部署和c o r b a 系统的集成。 j a v a 命名与目录接口( j n d i )j n d i 是一个命名和目录服务的标准, e j b 通过j n d l 在网络上查找分市式组件。这种方式便于丌发高移植性的应用 程序。 j d b cj d b c 提供了访问关系型数据库的标准a p i 。客户端调用执行 j d b c 驱动程序的标准a p i 然后由这些a p i 访问某种特定的数据库。 j t a 和j t sj a v a 事务处理a p i ( j t a ) 和j a v a 事务处理服务( j t s ) 为分 布式组件提供了事务处理机制,可以保证操作能够j 下确完成。 j a v a 消息服务( j m s )消息服务为分布式对象间提供了可靠的异步 通信方式。 j a v as e r v l e t 和j s ps e r v l e t 是用来扩展w e b 服务器功能的网络组件, 基于请求响应机制。j s p 着重解决客户端显示和交互问题,在第一次被调用 时被编译为s e r v l e t 。 除此之外还有提供电子邮件功能的j a v a m a i l 、访问现有信息系统的连接 器体系j c a 、解析x m l 的j a x p 、执行系统安全操作的j m s 等。图2 2 表示了 j 2 e e 对象模型结构。 2 3e j b 概述 2 3 1e d b 体系中的角色 p r e s e n t a t i o np r e s e n t a t i o nb u s i n e s sl o g i c 图2 2j 2 e e 对象模型 e b 组件体系结构是j 2 e e 平台的核心。按照分而治之( d i v i d ea n dc o n q u e r ) 的策略,e j b 体系定义了6 种主要角色: 1 组件供应商提供可重用的商务组件。组件不是应用程序,它们不能 单独运行但是能够组装成实际的解决方案。 2 容器和服务器供应商提供e j b 系统运行所需要的底层环境。从而管 理、容纳和部署组件。 3 应用组装商构建整个应用。将e j b 组件组装成更大的可部署单元。 4 系统部署员将应用部署到一个特定的作业环境内。 5 系统管理员维护已经部署好的系统,配置和管理企业计算。 6 工具供应商提供开发e j b 应用的环境如i d e 和u m l 建模工具。 2 3 2e j b 体系结构 e j b 2 0 定义了三种类型的企业b e a n 。会话b e a n 负责管理整个过程或任务, 处理不同的企业b e a n 之间的关系,代表了商务逻辑。实体b e n 是为现实世 界的对象建造的模型,这些对象通常是数据库中的一些持久记录,代表了商务 上的实体。消息驱动b e a n 基于j a v a 消息服务( j m s ) ,通过响应消息队列中 的事件实现异步通信,从而客户或者b e a n 都无须依赖对方的直接响应。 每一个e j b 由下列部件构成:企业b e a n 类、企业b e a n 客户一视图a p i 和部署描述符。企业b e a n 类是一个j a v a 类,具体实现了业务方法以及企业b e a n 对象生命周期方法。客户视图a p i 是由h o m e 接口和r e m o t e 接口构成。h o m e 接口定义了c r e a t e 、r e i r l o v e 及查找方法,它们控制藿企业b e a n 对象的生命周 期。r e m o t e 接口定义了客户能够调用的业务方法。客户不是直接调用b e a l l 类 的实例的方法,而是调用h o m e 接口和r e m o t e 接口中的方法。h o m e 接口和 r e m o t e 接口声明的方法通过命名约定与企业b e a n 类中相应的方法实现关联起 来。部署描述符是一个x m l 文档,它说明性地定义了企业b e a n 的某些行为 这就允许组装者和部署者改变企业b e a n 运行的方式,如声明e j b 容器如何执 行生命周期管理,持久性,事务处理控制、安全措施等服务。 2 3 3i :d 8 容器工具与服务 - 企业b e a n 实现了一个应用的业务逻辑,但是企业b e a n 本身不是一个完整 的可操作的应用,必须首先将其部署到容器中,这样这个企业b e a n 才能成为 一个可运行应用的一部分。 由容器提供商提供的部署工具阅读企业b e a n 的部署描述符,并生成称之 为容器元素( c o n t a i n e ra r t i f a c t s ) 的额外类。这些类对于将企业b e a n 绑定到容 器运行时坏境是必须的。至少容器工具要生成那些实现企业b e a n 的h o m e 和 r e m o t e 接口的类。因为e j b 体系结构的目标是让客户在网络上通过h o m e 和 r e m o t e 接口调用企业b e a n ,因此实现这两个接口的对象不可能是简单的j a v a 对象而应陔是分布式对象。大多数容器都是使用r m i i i o p 作为分布式对象 的通信协议由容器自动生成分布式对象的s t u b 和s k e l e t o n 。“1 当需要服务于多个客户请求时,容器启动和停止线程。容器同步这些线程 以避免对一个企业b e a n 实例的并发方法激活。这将b e a n 开发者从复杂的多线 程编程中解脱出= 采。取而代之的是编码这些业务方法好像企业b e a n 实例只被 一个用户使用。 容器为企业b e a n 提供的服务除了分布式对象协议和线程管理与同步以 外,还有事务处理、安全、状态管理、资源共享、数据存取、系统管理支持、 失败恢复、高可用性以及群集等。 9 3e j b 组件体系 3 1 e n t e r p r is eb e a n 的组成部分 e n t e r p r i s eb e a n 组件并不是简单的单一文件,它实际上是由很多文件共 同作用组成的。 3 1 1 e n t e r p r is eb e a n 类 e i b 规范定义了参与部署应用的各方需遵守的规则。规范中定义了很多标 准接口,实现b e a n 类的继承。这些接口强制规定编写“暴露”所有b e a n 类必 须提供的某些方法,e j b 容器调用这些强制实现的方法来管理b e a n 。所有的 b e a n 类都必须实现的最基本的接口是j a v a x e j b e n t e r p r i s e b e a n : p u b i c ir t t e f f a c ej a v a x e j b e n t e r p r i s e b e a ne x t e n d sj a v a i o s e r i a l i z a b l e ,浚接 口扩展了s e r i a li z a b l e 意味着所有的e j b 都可以转换成位块( b i t - b l o b ) 并 拥有s e t 泊l jz a b l e 对象的所有属性。 3 1 2e j b 对象 当客户端想使用e n t e r p r i s eb e a n 类的实例时,客户端从未真正对存在的 b e a n 实例直接调用方法。实际发生的情况是触发方法被e j b 容器所截获,并 传递给b e a n 实例。采用这种方式的原因是: e n t e r p r i s eb e a n 类无法通过网络直接调用。因为e n t e r p r i s eb e a n 类不具有网络功能,通过把b e a n 包裹在具有网络功能的对象中,由 e j b 容器柬处理与网络相关的事件。 通过截获客户端请求,e j b 容器能自动实现一些必要的管理,如事务 处理逻辑、安全逻辑和b e a n 实例p o o li n g 等。 e j b 容器能跟踪哪些方法被调用,在系统管理员的用户界面显示实时 的方法调用统计表,收集数据用于负载平衡控制和性能优化分析。 e j b 对象就是由e j b 容器生成的r e m o t e 接口的实现它作为客户端和b e a n 实例之间的具有网络功能的中介物,处理与中间件相关的事宜。为了通知自动 生成e j b 对象的容器应该克隆哪些方法应该编写一个暴露所有商务逻辑方法 的r e m o t e 接口。所有的r e m o t e 接口都必须来源于接口j a v a x e j b e j b o b j e c t , 0 其源代码如下: p u b t i ci n t e r f a c e j a v a x e j b e l b o b j e c te x t e n d s j a v a r m i r e m o t e p u b l i ca b s t r a c t j a v a x e i h e j b h o m eg e 【e j b h o m e ot h r o w s j a v a r m i r e m o t e e x e e p f i o n ; p u b l i ca b s t m c t i a v a ,l a n g o b j e c t g e t p r i m a r y k e y ot h r o w s j a v a ,r m i r e m o t e e x c e p t i o n ; p u b l i ca b s t r a c tv o i dr e m o v e ( ) t h r o w sj a v a xc j b r e m o v e e x c e p t i o n ; p u b l i ca b s t r a c tj a v a x e j b h a n d l eg e t h a n d l e o t h r o w sj a v a r m i r e m o t e e x c e p t i o n ; p u b l i ca b s t r a c tb o o l e a ni d d e n t i c a l ( j a v a x q b e j b o b j e c t ) t h r o w s j a v ar m i r e m o t e e x c e p t i o n :) 除此之外r e m o t e 接口还复制了每个b e a n 特有的商务方法。 3 1 3h o m e 对象 出予e ? 8 对象存在于与客户端不同_ 自勺机器上,因此客户端无法直接生成 e j b 对象实例:另一方面,e j b 倡导的是位置透明因此客户端从不清楚e j b 对象驻留在何处。 为了获得对e j b 对象的引用,客户端从e j b 对象生成库要求得到一个e j b 对象,运个生成库就是h o m e 对象。它负责对e j b 对象的实例饱和回收,即生 成e j b 对象,查找现存的e j b 对象( 仅限于实体b e a n ) 和删除e j b 对象。h o m e 对象也是e 、l b 容器的一部分出容器提供商提供的工具软件自动生成。 在生成h o m e 对象之莉,必须通过h o m e 接口定义生成、四收、查找e 2 8 对象的方法,具体则由e j b 容器的h o m e 对象来实现,所有的h o m e 接口都来源 于接口j a v a x e j b e j b h o m e ,其源代码如下: p u b l i c i n le r f a c ej a v a x e j b e j b h o m ee x t e n d sj a v a 。r m i ,r e m o t e p u b i ca h s t _ l a c te j b m e t a o a t ag e t e j b m e t a d a t a ot h r o w sj a v a r m i r e m o t e e x c e p t i o n ; p u b lic a h s t r a c tv o i dr e m o v e ( h a n d l eh a n d l e ) t h r o w sj a v a r m i r e m o t e e x c e p t i d n j a v a x e j b r e r a o v e e x c e p z i o n : p u b l i ca b s t t - a c t v d l dr e g o v e f o b 砖c tp r i m a r y k e y ) t h r o w sj a v a r a i ,g e m o t e e x c e p t i o n j a v a x ,e j b ,r e i o v e e x c e p t i o n : 3 2e j b 接口的编写规则 3 2 1h o m e 接口 对于h o m e 接口所定义的每个c r e a t e 方法,在b e a n 类中必须有相匹配的 e j b c r e a t e 方法。这些相对应的c r e a t e 方法必须采用同样的参数,必须发出 异常j a v a x e j b c r e a t e e x c e p t i o n 。在h o m e 接口中声明的c r e a t e 方法的返回 值类型必须为b e a n 的r e m o t e 接口。 对于h o m e 接口所声明的每一个查找方法和业务方法在b e a n 类中必须 有相匹配的e j b f i n d e r 和e j b h o m e 方法。 3 ,2 。2r e m o t e 接口 对于组件接口声明的每一个业务方法,在b e a n 类中必须实现相匹配的方 法。它具有和r e m o t e 接口方法完全相同的方法名称,相同数目和类型的参数 以及相同的返回类型。在组件接口方法的t h r o w 子句中所定义的所有异常处理 必须与在b e a n 类对应方法的t h r o w 语句中所定义的相匹配。 3 3e j b 调用流程 客户端代码需要访闽e j b 时,所需要的完成的步骤如图3 。l 所示: 命名暧务 姐u n p 图3 1 客户端调用e j b 的过程 客户端首先获取初始上下文,然后通过j n d i 查找h o m e 对象,再使用 p o r t a b l e r e m o t e o b j e e t 的n a r r o w 静态方法将查找出的o b j e c t 限制为h o m e 对 象,调用h o m e 对象的c r e a t e 方法生成e j b 对象,接着就可以使用e j b 对象的 2 商务方法了。调用的示例程序如下: u p d a t e h o 埘eu p d a t e h o m e = n u 1j : i t s e j b ,u p d a t eu p d a t e 2l 】u l1 : i n i t i a l c e n t e x ti n i t i a l c o n t e x t = nu 】1 : 1 r y ( in iii a i c o n t e x t = n c wi n i t i a l c o n t e x t0 :生成初始上下文环境 j 【t 1lc h ( j a v a x ,n a m i n g n a m i n g e x c e p t i o ne ) s y s t e m o u t p r i n t i n ( ”t h r o w a r a m i n g g x c e p t 【o i l :。+ e ) : e p r i n t s t a c k t r a c e 0 : j t 1 y i s y s t e m o u t p r i n ti n ( 。l c r f o r m in t h ei n 妯”“) , o b j e c to b j = i n i t i a l c o n t e x t ,l o o k u p ( ”i s u p d a l e ) :卉找h o m e 对象 u p d a t e h o m e = ( u p d a t e h o m e ) p o r t a b l e r e m o t e o b j e c t n a r r o w ( o b j , g p d a t e h o m e c l a s s ) :将o b j e c t 对象转换为h o m e 对象 t ,lt h ( j a v a x 、n a m i n g n a m i n g e x c e p t i _ o ne ) f s y s t e m o u t p r i n t i n ( ”e r r o rr e t r i e v 】n gt h eh o m ei n l e r f a c e :”+ e ) ep l in t s i a c k t r a c e0 : u p d a t e = u p d a t e h o m e c r e a t e ) :生成e j b 对象 u p d a t e u p d a t e c u r r e n t c a r 0 :调j _ i j 商务_ 方法 “l t c h ( e x c e p t i e ne ) s y s t e m o u t p r i n t l n ( ”e x c e p t j j nc - 。a t i i l gn 。wu p d a tc b e a n :”+ e ) e p r i n t s t a c k t r a c e ( ) : , 3 。4 会话b e a n 会话b e a n 是e j b 的种,它表示的是为客户端所做的工作主要是商务处 理过程,包括商务逻辑、算法或工作流,如从信用卡划款完成一份订单,执 行计算,清算库存物资等。一般地,客户端会话时间的长短决定着一个会话b e a n 的生命周期的长短。这就是会话b e a n 这一名词的由来。律为非持久对象,会话 b e a n 并不存储在永久性存储器中,它们是存活在内存中的对象。 会话b e a n 可分为有状态( s t a t e f u l ) 和无状态( s t a t e l e s s ) 两类。无状 态会话b e a n 不保持与客户端的多方法调用,每次方法调用后就清除属于前次方 法调用的信息,它的所有实例都是相同的,因而可以被多个客户多次调用。而 1 3 状态会话b e a n 保留了与客户端之间的对话,这种对话可能有多个方法调用参 与。对话期间,b e a n 保留客户端当前的状态。 编写一个会话b e a n 类时,该类必须实现j a v a x e j b s e s s i o n b e a n 接口: p u b li ci n t e r f a c ej a v a x e j b s e s s i o n b e a ne x t e n d sj a v a x e j b e n t e r p r i s e b e a n p u b i ca b s t r a c tv o i ds e t s e s s i o n c o n t e x t ( s e s s i o n c o n t e x tc t x ) t h r o w s j a v a m i r e m o t e e x c e d t i o n : p u b l i ca b s t r a c tv o i de j b p a s s ir a t e 0t h r o w sj a v a r m i r e m o t e e x c e p t i o n : p u b i ca b s t r a c tv o i de j b a c t i v a t e0t h r o w sj a v a r m i r e m o t e e x c e p t i o n : p u b li c a b s t r a c tv o i de j b r e m o v e 0t h r o w sj a v a r m i r e m o t e e x c e p t i o n : 其中e j b p a s s i v a t e0 和e j b a c t i v a t e0 不适用于无状态会话b e a n 。 3 4 1 无状态会话b e a n 无状念会话h e a t h 不保留与客户端会话时的对话内容。尽管存在着内部状 态,这些状态不是某一客户端所特有的。因此客户端必须把无状态会话b e a n 所需的所有数掘以参数的形式传递给商务逻辑方法,b e a n 爿请e 发挥作用。 当客户端将数据传递给e j b c r e a t e0 方法后因为状态无法保留,让无状 态会话b e a n 具有多种e j b c r e a t e 方法就变的毫无意义。所以所有无状态会话 b e a n 都只有种e j b c r e a t e :z 法,且不带任何参数。 在客户端连接之前,e j b 容器集中无状态会话b e a n 实例,当客户方法调用 时,容器从b e a n 池获取一个实例,让它响应方法调用,用完后返还到b e a n 池。 这使得e j b 容器能够为不同的客户端动态地分配b e a n 实例。 采用b e a n 实例池的优点是b e a n 池中的b e a n 实例可以比客户端实际所需来 得少。这是因为客户端需要“思考时白j ”,如网络滞后时间、客户端的决策时 自j 等。当客户端思考时。e , f b 容器可以使用这些b e a n 实例为其他客户服务,节 约了系统资源。许多商用的e j b 容器可以随时自j 动态地改变b e a n 实例池的大小, 使得负载需求变化时,b e a n 实例池大小随之改变。 需要明确的是b e a n 实例与e j b 对象并不是一一对应的关系,b e a n 可在任何 时候被重新分配给另外一个e j b 对象,这取决于e j b 容器所采取的策略。当容器 决定改变b e a n 池的大小时它就生成或清除b e a n 实例,这完全与客户端代码无 4 关。h o m e 接口指定的c r e a t e 和r e m o v e 方法只是用于生成和清除e j b 对象,并不 等同于真正的b e a n 的生成和清除。 3 4 2 状态会话b e a n 状态会话b e a n 将对话状态存储在b e a n 本身,对话状态属于特定的客户端。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年环保产业园园区产业集聚效应分析报告
- 2025年电影产业票房趋势分析及多元化发行模式研究报告
- 2026届苏州大学附属中学高二化学第一学期期中学业水平测试试题含解析
- 现在进行时课件
- 北京市达标名校2026届化学高一上期中质量跟踪监视模拟试题含解析
- 四川省眉山外国语学校2026届高三化学第一学期期末质量检测试题含解析
- 《ISO 37001-2025 反贿赂管理体系要求及使用指南》专业深度解读和应用培训指导材料之3:5领导作用(2025A1)(可编辑!)
- 2026届安徽亳州利辛县阚疃金石中学化学高三上期中质量检测模拟试题含解析
- 2025年建筑工程管理与实务专项训练试卷冲刺备考指南
- 现代向日葵诗歌鉴赏课件
- 2025年部编版新教材语文七年级上册教学计划(含进度表)
- 湖北省武汉市武昌区重点名校2026届中考语文全真模拟试题含解析
- 2.4抽象函数的周期性与对称性-讲义(原卷版)
- 喷粉挂钩管理办法
- 2025手机维修服务合同范本
- 风电场安全规程考试题库(附答案)
- 医院科研奖励管理办法
- 肠内营养患者护理质量提升措施
- DB11∕T 1205-2024 用能单位能源审计报告编制与审核技术规范
- 苯职业病防护课件
- (高清版)DB11∕T 2442-2025 学校食堂异物管控规范
评论
0/150
提交评论