(计算机应用技术专业论文)ejb容器框架及服务扩展机制研究与设计.pdf_第1页
(计算机应用技术专业论文)ejb容器框架及服务扩展机制研究与设计.pdf_第2页
(计算机应用技术专业论文)ejb容器框架及服务扩展机制研究与设计.pdf_第3页
(计算机应用技术专业论文)ejb容器框架及服务扩展机制研究与设计.pdf_第4页
(计算机应用技术专业论文)ejb容器框架及服务扩展机制研究与设计.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

江苏大学硕士研究生毕业论文 摘要 随着中间件技术的不断发展,应用服务器已经成为中间件市场最大的一个分 支,在分布式异构平台上得到了广泛的应用。目前,基于j 2 e e 的应用服务器的研 究如火如荼,而作为应用服务器的核心部件一容器也逐渐成为研究的热点。本文 通过对e j b 容器及其服务扩展机制的研究,旨在提高组件容器的可扩展性。 本文通过分析j 2 e e 体系架构下的e j b 、组 牛、中归l 件、应用服务器等相关 技术,结合目前国内外应用服务器的研究现状,重点分析了应用服务器的核心部 件一容器,针对e j b 容器及其服务加载机制进行深入的研究。 e j b 容器服务加载机制中主要存在着可重配置能力低、可扩展性差等问题, 本文设计一种可扩展的容器框架,基于该框架实现容器的服务扩展机制。扩展机 制的原理,通过在e j b 容器中定义调用服务的扩展点,由拦截器动态拦截调用方 法并注入容器服务来实现。本文给出了框架的体系结构、服务扩展的方法以及扩 展过程的动态描述。通过一个无状态会话b e a n 的池调度实例验证了应用拦截器 技术实现容器服务扩展的可行性。本文研究的创新之处体现在: l 、设计了一神e j b 容器框架,用于实现了组件、容器、容器服务的有机分 离。 2 、提出顺序式、链式两种方式实现容器的方法拦截,并分析比较两种方式 的利弊。 3 、利用动态代理机制实现容器入口设计,提出基于动态代理机制改进容器 的方法调用。 4 、给出容器环境的精确定义,使不同e j b 组件扩展的服务集互相不干扰, 保证服务扩展的一致性。 关键词:中间件,应用服务器,容器。组件,框架,设计模式,拦截器,代理 j 2 e e ,e j b ,a o p 一 兰苎垄兰塑主堡塞圭:兰些垒查 一_ _ _ _ 。_ _ - _ _ 。- 。_ _ _ _ 。_ _ _ _ _ 。_ h - _ _ - 。_ - _ _ 。1 。 a b s tt a c t w i t ht h ed e v e l o p m e n to fm i d d l e w a r e ,a p p l i c a t i o ns e r v e ri sw i d e l yu s e di nt h e d i s t r i b u t e dp l a t f o r ma sa l li m p o r t a n tm i d d l e w a r e t h er e s e a r c ho fa p p l i c a t i o ns e r v e ri s p a i dm o r ea t t e n t i o nn o w a d a y s ,a tt h es a n l et i m e ,c o n t a i n e r sb e c o m et h e h o tp o t o f r e s e a r c ha st h ei m p o r t a n tp a r to fa p p l i c a t i o ns e r v e r i nt h i sd i s s e r t a t i o n ,t h ep u r p o s eo f r e s e a r c hi st oe n h a n c et h ee x t e n s i b i l i t yo f c o n t a i n e r a tf i r s t ,t e c h n o l o g i e ss u c ha se j b ,c o m p o n e n t ,m i d d l c w a r e ,a p p l i c a t i o ns e r v e ra r e i n t r o d u c e d c o m b i n i n g w i t hj 2 e e a r c h i t e c t u r e ,i n t r o d u c t i o n o fc o n t a i n e ri s e m p h a s i z e d t h e n t h i sd i s s e r t a t i o na n a l y s et h e s e r v i c e l o a d i n g m e c h a n i s mo f c o n t a i n e rc o m b i n i n gw i t ht h er e s e a r c hd o m a i na n ds t u d ya c t u a l i t ya tp r e s e n t , a c c o r d i n gt ot h et h ed e f i c i e n c yo fs e r v i c e - l o a d i n gm e c h a n i s m ,t h i sd i s s e r t a t i o n p r o v i d e saf r a m e w o r kt oe x t e n dt h ec o n t a i n e rs e r v i c e s b yw h i c hm e t h o di n v o k e ri s i n t e r c e p t e da n di n j e c t e dc o n t a i n e rs e r v i c e sb yi n t e r c e p t i o ns p o t s t h i sd i s s e r t a t i o n i n t r o d u c e st h ea r c h i t e c t u r e , e x t e n s i o nm e t h o da n dd y n a m i cd e s c r i p t i o no fe x t e n s i o n p r o c e s so ff r a m e w o r kd e t a i l e d l y a tl a s t ,a l li n s t a n c e i si n t r o d u c e dt ov a l i d a t et h e f e a s i b i l i t yo fe x t e n s i o nm e c h a n i s mu s i n gi n t e r c e p t o r i n n o v a t i o n so f t h i sp a p e r : 1 d e s i g nac o n t a i n e rf r a m e w o r k , w h i c hs e p a r a t ec o m p o n e n t ,c o n t a i n e r ,c o n t a i n e r s e r v i c e se f f e c t i v e l y 2 t w om e t h o d sa r eg i v e nt oi n t e r c e p tt h em e t h o di n v o k e r a tt h es a m et i m et h e y a r ec o m p a r e d 3 p r o v i d eac o n t a i n e re n t r a n c et 0i n t e r c e p tt h em e t h o di n v o k e r , a n dp r o v i d ea m e t h o dt oi m p r o v e st h ee f f i c i e n c yo f m e t h o di n v o k i n gb yd y n a m i cp r o x ym e c h a n i s m 4 c o u t a i n e te n v i r o n m e n ti sd e f i n e dt oa v o i di n t e r f e r e n c eo fs e r v i c e ss e ta n d k e e pt h e c o n s i s t e n c eo f s e r v i c ee x t e n d i n g k e yw o r d s :m i d d l e w a r e ,a p p l i c a t i o ns e r v e r ,c o n t a i n e r ,c o m p o n e n t ,f r a m e w o r k ,d e s i g n p a t t e r n ,i n t e r c e p t o r , p r o x y , j 2 e e ,e j b ,a o p i i 学位论文版权使用授权书 本学何论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国 家有关部r j 或机构送交论文的复印仆和电子版,允许论文被赉阅和借阅。本人授权江苏人学 可以将本学位论文的全部内容或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存和汇编本学位论文。 本学位论文属于 保密 , 在 年解密后适用本授权书。 不保密 口。 学位论文作者签名:j 身 知谚年月矿日 指导教师签名:j 移 扫咖占月日 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究工作所取得的成果。除文中已经注明引用的内容以外,本 论文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本 文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。 本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:了身 日期:h 砂年月矿日 江苏大学硕士研究生毕业论文 1 1 研究背景 第一章绪论 中间件是位于应用与操作系统之间,能够屏蔽底层操作系统、网络协议以及 数据库异构性和复杂性的系统软件。它降低了分布式环境下应用开发的难度,从 2 0 世纪8 0 年代末到现在,取得了长足的发展,得到了工业界和学术界的青睐,已 成为分布式系统的主流技术之一“”。 随着企业应用环境逐渐向i n t e r n e t 环境转移。应用的需求和规模不断扩大, 传统中间件面临着新的挑战,如大规模的并发用户访问、分布式事务控制、与己 有系统的无缝集成等“。于是种新型的中间件一应用服务器中间件应运而生, 它不仅具有传统中间侔的特性,而且为创建、部署、运行和管理应用程序组件提 供了一个很好的中间件集成平台。应用服务器自产生以来,得到了广泛的关注, 已经成为近年来最热门的基础软件,被广泛地应用于我国政府、交通、金融、电 信、教育、等行业,成为大型应用系统建设中不可缺少的一部分。 目前,基于j 2 e e 平台的应用服务器倍受青睐,同时,作为应用服务器的核 心部件一容器,也逐渐成为研究的热点。容器通过提供基础设施服务( 如事务、 安全等) 为应用服务器提供了部署和管理应用组件的集成运行环境,它使开发者 无须关注底层细节,专著于业务逻辑的开发,提高了开发的效率。当前,随着组 件技术以及j 2 e e 标准的不断成熟,e j b 已逐渐成为服务器端组件开发的标准, 国内外大多数应用服务器都提供了对e j b 容器的支持,如i b mw e b s p h e r e o3 。b e a w e b l o g i c “,t o n g w e b 等。 但是,随着分布式环境下企业应用的复杂度不断加大,目前e j b 容器也暴露 了很多的缺点,如框架结构笨重不灵活,运行效率不高,容器服务的可重配置能 力低、可扩展性不强等。针对这些问题,国内外的相关研究已经提出了一些改进 的方法( 本文研究现状将作详述) 。目前,也出现了一些开源的轻量级容器如 s p r i n g ,p i c o c o n t a i n e r ,a p p f u s e ,h i v e m i n d ,a v a l o n ,n a n o c o n t a i n e ,p e a p o d ,c a r b o n ,e x c a l i b u r “2 ”3 等,它们从某些方面弥补了e j b 容器的不足,但没有从根本上 解决组件容器面临的闯题。因此,作为应用服务器中间件的核心,组件容器的研 究具有越来越现实的需要。 本文所做的研究就是在这样的背景下,结合目前的应用服务器中间件、组件 容器的研究现状,对e j b 容器及其服务扩展机制展开研究。 江苏大学硕士研宽生毕业论文 1 2 国内外研究现状与动态 容器编程模型( c o n t a i n e rp r o g r a m m i n gm o d e ) 的思想是由对象管理组o m g 于2 0 0 2 年1 2 月发布的c o r b a 2 0 版本中提出的【3 】。其主要目的是为了简化服务 器端构件的开发。将不同构件间相同的行为和功能提取出来,放在容器中进行统 一管理,并由容器提供统一的接口,构件通过接口来访问容器以获取所需服务。 从而使构件开发人员只需关心业务逻辑的实现,提高了应用开发的效率。 目前,容器编程模型已经被广泛地应用于大型分布式应用系统中,尤其是基 于c o r b a e j b c o m + 标准组件模型的应用系统中。组件模型一般采用组件一容器一 容器服务的三级结构,其中容器是核心,它依赖于容器服务为组件提供运行环境。 国内外对容器的研究领域主要包括以下几个方面: ( 1 ) 容器基础设施,研究如何为容器提供公共的可供组件运行时调用的服 务,主要包括组件实例池管理、缓存管理等。容器基础设施一般由应用服务器提 供商提供,目前各种基础设施已经趋于完善,但仍缺乏统一的服务接口。 ( 2 ) 容器的方法调用,研究如何为客户提供一种透明性访问容器的机制。目 前,通用的方法是为容器组件生成客户端的代理,由该代理拦截客户的请求,再 将请求透明地转发到组件容器“”。 ( 3 ) 容器组件部署,研究如何建立一种灵活、可扩展的热部署机制。目前, 主流的应用服务器虽然都提供部署工具但是只提供了固定应用类型的部署,并 已固化在应用服务器中,不具有扩展性,不能动态地支持不断增加的应用类型。因 此容器组件的部署机制还有待进一步的提高“”1 。 ( 4 ) 容器的集群管理,研究在大负载量的企业应用中,多个容器如何协同工 作,如何提供负载均衡、容错等机制。 ( 5 ) 容器的服务扩展,研究如何提供一种机制实现容器服务的可重配置、可 扩展,提高容器的q o s ( q u a l i t yo fs e r v i c e ) 。 本文的研究主要针对容器的服务扩展。目前,因为组件容器所提供的服务实 现被隐藏起来,所以配置和扩展这些容器服务受到了严格的限制,致使其在运行 期间可重配置的能力差,难以满足用户定制的要求。为此容器的服务扩展成为当 前容器研究的热点,国内外对容器服务扩展的研究已经取得了较大的进展: 文献 4 ,6 提出将容器构建为元接口( m e t a i n t e r f a c e ) 组件框架,通过元接 口来开放容器,组件框架负责实现容器的服务扩展。但是该方法基于c o m 组件模 型,受限于w i n d o w s 平台,不具有可扩展性。 文献 5 提出“服务配置”的机制来实现容器服务的动态扩展,即在组件运行 期间,根据每个组件的不同请求动态选择不同“服务类型”的服务。但是该方法 江苏大学硕士研究生毕业论文 会增大系统的开销,降低系统的运行效率。此外也没有给出解决容器如何动态选 择的策略和方法。 文献 6 提出基于a o p ( a s p e c t o r i e n t e dp r o g r a m m i n g ) 的编程技术来实现容 器的服务扩展机制,也是目前较为流行的解决方案。通过将组件容器视为元对象 ( m e t a o b j e c t ) ,将事务、安全等容器服务视为a s p e c t ,从而实现对横切关系 ( c r o s s e u t t i n gc o n c e r n s ) 的模块化设计,解决了容器和容器服务紧密耦合的问 题”。但是该方法是基于一些元数据标注( j s r 一1 7 5 ) 、元数据应用( j s r 一1 8 1 ) 等技 术规范基础上的【6 2 7 2 8 1 ,它们自身也有很多的缺点,如每次修改元数据标注后, 必须重新编译:同时,当需要的容器服务比较多的时候,元数据标注也会变得冗 长难读。 上述工作从某些方面解决了容器服务扩展的问题,但大多数还只是在现有容 器的基础上进行改进,只能实现容器部分服务的扩展,并未从根本上实现容器自 身的可重配置。因此,要从根本上实现容器服务的扩展定制,容器必须基于一个 可扩展、可定制的容器框架来实现。当然,实现一个可扩展的容器框架是个复杂 的过程,本文的工作只是在现有研究工作的基础上,比较和借鉴了现有容器的框 架结构,设计了一个可扩展的容器框架“雏形”,并研究框架的服务扩展机制。 1 3 本文研究内容及主要工作 本文在广泛阅读国内外关于中间件、应用服务器、容器、e j b 等相关文献后, 综合分析了中间件、应用服务器的研究现状、发展趋势,在此基础上对e j b 容器 及其服务扩展机制展开研究。主要研究内容包括以下几方面: 1 、e j b 容器及其服务加载机制的研究,结合目前国内外组件容器的研究领域、 研究现状,分析t e j b 容器及其服务加载机制,指8 j e j b 容器声明性服务加载机制 的不足,提出改进的方法。 2 、e j 8 容器框架的设计,针对e j b 容器加载机制中存在的可扩展性差等问题, 设计一个可扩展的容器框架,给出框架的设计思想及体系结构,并对框架各组成 部分进行详细描述。 3 、动态代理机制的研究,为了拦截客户对实例的远程方法调用,并进行相 应的初始化工作,应用动态代理机制进行容器入口设计,提出基于动态代理机制 改进容器的方法调用。 4 、拦截器技术的研究,为了有效地拦截容器的方法调用,并在方法执行过 程中注入容器服务,提出顺序式、链式两种容器方法拦截方式,分析比较了两种 方式的利弊。 江苏大学硕士研究生毕业论文 5 、容器服务扩展机制的研究,分析比较了目前实现容器服务扩展的技术, 基于设计的容器框架,应用拦截器技术实现容器服务的动态扩展。同时,通过容 器环境的精确定义,保证了服务扩展的致性。 6 、容器实例池调度的研究,分析无状态会话b e a n 实例池调度的流程,并通 过实验平台测试,动态地反应容器方法拦截和实例调度的过程,验证了应用拦截 器技术实现容器服务扩展的可行性。 1 4 论文结构概要 论文共分六章,主要内容概要如下: 第一章介绍课题的研究背景和研究内容,概述组件容器所涉及的研究领域、 研究现状。同时提出本文的主要研究工作。 第二章综述j 2 e e 、e j b 、组件、框架、中间件以及应用服务器等相关概念, 对三大组件标准进行比较,分析中间件、应用服务器的发展趋势。 第三章介绍e j b 容器的相关概念。研究容器的服务加载机制,并对其存在 的问题进行分析,提出改进的方法。 第四章介绍拦截器技术、动态代理机制、e j b 设计模式。给出容器框架的 体系结构、框架服务扩展的方法、扩展的过程、扩展过程的动态描述。 第五章给出个无状态会话b e a n 池调度实例。 第六章对全文进行总结,提出进一步需要开展的工作。 江苏大擘硕士研究生毕业论文 2 1j 2 e e 概述 第二章相关技术概述 2 1 1 简介 j 2 e e 是一种利用j a v a2 平台来简化诸多与多级企业解决方案的开发,部署 和管理相关的复杂问题的体系结构【7 】。j 2 e e 技术的基础就是核心j a v a 平台或 j a v a2 平台的标准版。j 2 e e 不仅巩固了标准版中的许多优点,例如“编写一次, 到处运行”的可移植性、方便存取数据库的j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y , j a v a 数据库连接) a p i 、同现有企业资源进行交互的c o r b a ( c o m m o n0 b j e c t r e q u e s tb r o k e ra r c h i t e c t u r e ,公共对象请求代理体系结构) 技术以及能够在 i n t e r n e t 应用中保护数据的安全模式等,同时还提供了对e j b ( e n t e r p r i s e j a v a b e a n s ) 组件、j a v as e r v l e ta p i 、j s p ( j a v a s e r v e rp a g e sj a v a 服务器页面) 和x m l ( e x _ e n s i b l em a r k u pi m n g u a g e 可扩展标签语言) 技术的支持j 。j 2 e e 平 台提供了多层的分布式应用模型、组件重用、一致性的安全模型以及灵活的事务 控制。j 2 e e 的主要技术目标可以概括为:为企业应用系统提供一个具有高度的 可移植性和兼容性的平台。在这个平台上可以容易、快速地建立融合i n t e r n e t 技术,尤其是基于w e b 技术的多层结构的分布式企业应用。 z 1 2j 2 e e 多层体系架构 j 2 e e 是个利用j a v a 平台来简化企业信息系统开发、部署和管理的体系结 构4 1 。基于j 2 e e 昀应用通常可以具有多个层次,这些层次大致包括: ( 1 ) 客户层 客户层用于用户交互,并把来自系统的信息显示给用户。j 2 e e 平台支持不同 类型的用户,包括h t m l 用户、j a v a a p p l e t s 和j a v a 应用等。 ( 2 ) 表示层 表示层产生表示逻辑,并接受来自表示层客户端的用户反馈,这些表示层客 户端通常为h t m l 客户端、j a v a a p p l e t s 和其他的w e b 客户端。在所接受的客户 端请求的基础上,表示层对用户的请求产生相应的回应。j 2 e e 平台中,是由w e b 容器内的s e r v l e t 和j s p 来实现这一层的。 ( 3 ) 业务层 业务层处理应用的核心业务逻辑。业务层为低层业务服务组件提供必要的接 业务层处理应用的核心业务逻辑。业务层为低层业务服务组件提供必要的接 江苏大学硕士研究生毕业论文 2 1j 2 e e 概述 第二章相关技术概述 2 1 1 简介 j 2 e e 是一种利用j a v a2 平台来简化诸多与多级企业解决方案的开发,部署 和管理相关的复杂问题的体系结构【7 】。j 2 e e 技术的基础就是核心j a v a 平台或 j a v a2 平台的标准版。j 2 e e 不仅巩固了标准版中的许多优点,例如“编写次, 到处运行”的可移植性、方便存取数据库的j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y , j a v a 数据库连接) a p i 、同现有企业资源进行交互的c o r b a ( c o m m o no b j e c t r e q u e s tb r o k e ra r c h i t e c t u r e ,公共对象请求代理体系结构) 技术以及能够在 i n t e r n e t 应用中保护数据的安全模式等,同时还提供了对e j b ( e n t e r p r i s e j a v a b e a n s ) 组件、j a v as e r v l e ta p i 、j s p ( j a v a s e r v e rp a g e sj a v a 服务器页面) 和x 札( e x t e n s i b l e a r k u pl a n g u a g e 可扩展标签语言) 技术的支持 8 1 。j 2 e e 平 台提供了多层的分布式应用模型、组件重用、一致性的安全模型以及灵活的事务 控制。j 2 e e 的主要技术目标可以概括为:为企业应用系统提供一个具有高度的 可移植性和兼容性的平台。在这个平台上可以容易、快速地建立融合i n t e r n e t 技术,尤其是基于w e b 技术的多层结构的分布式企业应用。 2 i 2j 2 e e 多层体系架构 j 2 e e 是一个利用j a v a 平台来简化企业信息系统开发、部署和管理的体系结 构”1 。基于j 2 e e 的应用通常可以具有多个层次,这些层次大致包括: ( 1 ) 客户层 客户层用于用户交互,并把来自系统的信息显示给用户。j 2 e e 平台支持不同 类型的用户,包括h t m l 用户、j a v aa p p l e t s 和j a v a 应用等。 ( 2 ) 表示层 表示层产生表示逻辑,并接受来自表示层客户端的用户反馈,这些表示层客 户端通常为h t m l 客户端、j a v a a p p l e t s 和其他的w 曲客户端。在所接受的客户 端请求的基础上,表示层对用户的请求产生相应的回应。j 2 e e 平台中,是由w e b 容器内的s e r v l e t 和j s p 来实现这层的。 ( 3 ) 业务层 业务层处理应用的核心业务逻辑。业务层为低层业务服务组件提供必要的接 江苏大学硕士研究生毕业论丈 口。业务组件通常被实现为e j b 容器内的e j b 组件。其中,e j b 容器提供组件 生命周期,管理持久性,事务和资源分配等。 ( 4 1 集成层 本层负责与外部资源和系统通信,比如资源存储和遗留应用程序。该层的主 要作用是使得业务层和资源层不耦含在一起。该层中的组件可以使用j d b c 、 c m p 或h i b e r n a t e 或其他中间件以操作资源层。 ( 5 ) 资源层 资源层包含业务数据和外部资源,比如主机和遗留系统、业务集成系统以及 数据库等。 图2 一lj 2 e e 体系结构 j 2 e e 多层体系结构主要用于松散层与层之间的紧密耦合,提高应用的灵活 性,从而可以任意地切换某个层的实现技术。例如,在数据映射层,可以采用 e j b 的b m p ( b e a r lm a n a g e rp e r s i s t e n c e ) 、c m p ( c o n t a i n e rm a n a g e rp e r s i s t e n c e ) 、也 可以采用h i b e r n a t e 1 4 _ 3 8 1 0 rm a p p p i n g 工具等。 一一 江蔓查茎堡主塑垄圭兰些垒查 _ - - - _ _ _ - _ - _ _ _ _ l _ - _ _ _ - 一。一 2 2 组件与框架 2 2 i 组件 组件( c o m p o n e n t ) 也称构件,是软件系统内可标识的、符合某种标准要求的 构成成分,类似于传统工业中的零部件 9 】。组件是一种二进制形式的软件单元, 其功能完全由接口调用实现。组件可在不同语言开发的系统中使用,在替换组件 时保持其接口一致,便可以不影响系统其他部分,实现了软件工程中对软件模块 高内聚,低耦合的要求,简化了软件的开发和维护,同时也有效地实现了信息的 隐藏。概括地讲组件是有一定的功能,能够独立工作,并且是能和其他组件联合 起来协同工作的程序体。组件具有以下五个特点: ( 1 ) 可插用性:组件可以方便地集成于框架中,不用修改代码也不用重新编 译。 ( 2 ) 接口标准化:组件接口标准化是组件技术成熟地标志之一。提供标准的 接口为组件的升级替换,以及组件间的互操作都带来了极大的便利,是组件独立 设计开发的前提。 ( 3 ) 独立功能性:每个组件都有独立的功能向系统的其余部分提供服务。 ( 4 ) 语言无关性:组件与开发语言无关,无论哪种语言开发的组件都以编译 后的二进制形式存放,可以为不同语言开发的系统使用。这一特性有效地保证了 开发者的版权。 ( 5 ) 通用性:通常的组件都必须具备一定的通用功能,这是软件复用的基本 要求。由于开发基于组件的系统往往有较大的开发代价,与传统的系统开发相比 需要对组件进行额外的设计实现和测试,因此,尽量提高组件的通用性是组件开 发的一个原则。 目前,主流的组件标准有微软的c o m d c o m 、c o m + ,对象管理组织o m g ( o b j e c t m a n a g e m e n tg r o u p ) 提出的公共对象请求代理体系结构c o r b a ( c o m m o no b j e c t r e q u e s tb r o k e ra r c h i t e c t u r e ) ,以及s u n 公司的j a v ab e a n e j b l l 0 3 8 1 。 三种组件标准各有优缺点,其中c o r b a 是最早出现的,其次是c o m + ,最新 的是e j b 。c o r b a 的最大优点是它提供的软件集成功能适用于任何平台,是真f 的跨平台技术,c o r b a 的缺点是庞大而复杂,并且技术和标准的更新相对较慢。 c o m d c o m 最大的优点是标准比较成熟,且支持者众多,最大的缺陷是它对平台 的依赖性。随着j 2 e e 平台的不断发展,e j b 组件标准越来越多得到认可,e j b 最 大的优点是平台无关性,可移植性强,最大的缺点是笨拙、运行效率低,规范还 在不断完善中9 1 。 江苏大学硕士研究生毕业论文 2 2 2 框架 框架( f r a m e w o r k ) 是整个或部分系统的可重用设计,表现为一组抽象构件及 构件实例间交互的方法【川。框架也是一个可复用的设计构件,它规定了应用的体 系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现 为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文( c o n t e x t ) 关系。 框架按其结构可以分为白盒框架和黑盒框架两类:白盒框架很大程度上依靠 面向对象语言的特征如继承和动态绑定来获得可扩展性。需要程序开发人员对内 部结构非常熟悉。黑盒框架通过组件定义接口,使其能通过组件的组合技术嵌入 到框架中来获得扩展性。黑盒框架通常比白盒框架容易使用和扩展。 在实际应用中,框架可以分为三类: ( 1 ) 应用程序框架。应用程序框架旨在提供一个全范围的、功能性的创建 个应用所需的基础结构。这个功能集通常涉及很多方面,如图形用户界面g u i , 数据库,文档等。一个典型的应用程序框架是微软的m f c 类库。 ( 2 ) 领域框架。这一框架有利于实现某一领域内的程序。领域特定软件通常 必须针对一个公司进行裁减,领域框架有助于减少软件对特定公司的修改工作 量,通常具有一定的通用功能。 ( 3 ) 支持框架。支持框架通常定位于非常专业的计算机相关领域。如存储管 理或文件系统。支持框架可用于连接领域框架和应用程序框架o ”。 随着互联网技术的不断发展,w e b 应用框架越来越受到青睐,使用w e b 应用 框架可以降低多层w e b 应用开发的难度。目前,基于j 2 e e 平台的w e b 应用系统 中,表示层的框架主要有s t r u t s ,j s f 1 2 1 等,业务层的框架主要有e j b 、s p r i n g i l 3 1 等,持久层的框架主要有h i b e r n a t e h j ,c m pe n t i t y b e a n 等。 2 3e j b 概述 2 3 1 简介 e j b ( e n t e r p r i s e j a v a b e a n ) 是s u n 推出的基于j a v a 的服务器端构件规范。 自j 2 e e 推出之后,得到了广泛的关注,已经成为服务器端组件技术的标准。e j b 是在j a v a b e a n 本地构件基础上,面向服务器端的分布应用构件技术。它基于j a v a 语言,提供了基于j a v a 二进制字节代码的熏用方式。e j b 给出了系统的服务器端 分布构件规范,包括构件、构件容器的接口规范以及构件打包、构件配置等标准 规范内容“”。e j b 的推出,使得用j a v a 基于构件方法开发服务器端分布式应用 江苏大学硕士研究生毕业论文 成为可能。从企业应用的角度来看,e j b 是业务逻辑层的中间件技术,它提供了 事务、安全等中间件服务。从分布式计算的角度来看,e j b 类似c o r b a ,提供了分 布式技术的基础,提供了对象之间的通讯手段。 e j b 是一个软件组件模型 1 6 1 。e j b 的组件结构是以作为可复用的服务器端组 件而设计的。它使企业能够建立可升级、安全可靠、可运行于多个平台且以业务 逻辑为重点的应用程序。e j b 让企业开发人员集中于业务逻辑的开发,而不用花 费精力处理分布式服务器端系统所带来的底层问题,从而使开发人员可以快速开 发大规模的企业应用。 总之,e j b 的主要思想是“让恰当的人员做恰当的事”【l “,应用领域的开发 人员可以专著于业务逻辑的开发。开发的e j b 组件部署在任何一个支持e j b 规范 的容器中,由容器提供底层系统级服务,从而大大提供开发的效率。 2 3 2e j b 体系结构 e j b 体系结构定义了可重用的、可移植的j a v a 服务器端组件的设计和部署。 它允许e j b 组件在多个遵循e j b 规范的应用服务器上发布,使其具有较强的可移 植性。e j b 焦开发者把精力主要放在开发多用户的、高可靠性、高性能的应用程 序上。同时,e j b 标准提供了建立应用程序的统一方式,使这些程序具有永久性、 事务处理、集群和负载均衡等能力,但又不需要开发者直接实现这些能力。e j b 的体系结构如图2 2 所示,它主要包括e j b 服务器、e j b 容器、e j b 远程接e l 以 及e j b 主接口等。 图2 2e j b 体系结构 9 江苏大学硕士研究生毕业论文 ( 1 ) e j b 服务器 e j b 服务器是各种支持e j b 组件运行的服务集,这些服务包括分布式事务管 理、分布式对象管理和对这些对象的分布式调用以及底层的系统服务。简而言之, e j b 服务器管理那些支持e j b 组件所需要的资源“5 。”1 。 ( 2 ) e j b 容器 容器提供了一个可升级、安全和事务性的环境,在该环境中b e a n 可以被管 理操作。它处理对象生命周期,并负责b e a n 的状态管理。当一个b e a n 被部署到 容器时,容器提供两种实现:e j b 主接口的实现和远程接口的实现。容器也负责 保证客户能够通过j n d i 获得e j b 主接口的引用“5 ”1 。 ( 3 ) h o m e 接口 h o m e 接口列出了所有定位、创建、添加、删除e j b 类实例的方法。h o m e 对 象是h o m e 接口的实现。e j b 开发者定义h o m e 接口。容器提供从h o m e 接口产生 h o m e 对象的方法实现。 ( 4 ) 远程接口 远程接口列出了e j b 类的业务逻辑方法。e j b o b j e e t 实现远程接口,并且客 户端通过它访问e j b 实例的业务方法。e j b 开发者定义远程接口,容器提供从远 程接口产生e j b o b j e e t 对象的方法实现。 2 3 3e j b 类型 在基于e j b 的应用开发中,业务过程和业务实体都是以企业b e a n 的形式实 现的。e j b 架构定义了3 种e j b 类型【1 7 l :会话b e a n 、实体b e a n 会话、消息驱动 b e a n 。会话b e a n 可以是有状态的( s t a t e f u lb e a n ) ,也可以是无状态的( s t a t e l e s s b e a n ) 。实体b e a n 可以是自行管理状态一b e a n 管理状态,也可以让容器管理状 态一容器管理的持久性。消息驱动b e a n 是无状态的,它的生命周期类似无状态 会话b e a n 的生命周期。e j b 按组件的形式封装业务逻辑。通常,每个组件表示 一个业务实体或者一个业务过程。下面对各种e j b 进行介绍: ( 1 ) 会话b e a n 会话b e a n 一般用于实现在应用程序服务器端的控制、处理以及工作流管理。 在m v c 设计模式中,会话b e a n 属于控制器层。会话b e a n 又可以细分为无状态会话 b e a n ( s t a t e l e s s b e a n ) 和有状态会话b e a n ( s t a t e f u l b e a n ) 。 ( 2 ) 实体b e a n 实体b e a n 是一种持久数据组件,它使用一些持久机制,如序列化、0 r 映射 到一个关系型数据库或一个对象数据库。对于关系数据库而言,每个实体b e a n 实例代表关系表中的一条记录。实体b e a n f f j 以简化编程,它提供了对象关系映射 江苏大学硕士研究生毕业论文 的机制,避免了直接使用j d b ca p i 访问数据库。 ( 3 ) 消息驱动b e a n 消息驱动b e a n 是e j b 2 0 新增加的一种e j b 类型,它作为j m s 队列的主体或队列 的监听器来部署的。它通过响应到达的j m s 消息执行它们的业务逻辑,使得编程 人员能够编写可以异步调用的e j b 。消息驱动b e a n 与会话、实体b e a n 有很大的不 同,客户代码不能获得消息驱动b e a n 的引用,不能直接调用消息驱动b e a n 的方法, 客户只能通过将j m s 信息传送到b e a n 监听的主体或队列来驱动消息驱动b e a n 。因 而,消息驱动b e a m 艮适合于即时性要求不高的应用系统。 所有的e j b 组件都有一个h o m e 接口,用来定义一个客户如何刨建和消除e j b 实例;一个远程接口,定义客户端可以调用的业务逻辑方法;以及一个实现业务 逻辑的b e a n 类。e j b 应用程序以组件的方式被打包部署到应用服务器中,客户 通过定位e j b 远程接口的引用来实现对e j b 组件的访问。 2 3 4e j b 开发角色 开发一个基于e j b 的应用系统是个复杂的过程,般是由不同的角色,通过 合理的分工来共同完成的,这些角色包括: l 、e j b 组件开发者( e n t e r p r i s eb e a np r o v i d e r ) ,负责开发执行业务逻辑的 e j b 组件,负责定义e j b 的r e m o t e 和h o m e 接口,编写业务逻辑。 2 、应用组合者( a p p l i c a t i o na s s e m b l e r ) ,负责利用各种e j b 组件组合一个 完整的应用系统。应用组合者必须掌握e j b 的h o m e 和r e m o t e 接口。 3 、部署者( d e p l o y e r ) ,负责将e j b 组件部署到用户的系统环境中。保证所有 由e j b 组件开发者在部署文件中声明的资源可用。 4 、e j b 服务器提供者( e j bs e r v e rp r o v i d e r ) ,负责提供分布式对象管理等 系统级的底层服务。一般由操作系统开发商、中间件开发商或数据库开发商提供。 5 、e j b 容器提供者( e j bc o n t a i n e rp r o v i d e r ) ,负责为e j b 组件提供运行 环境。负责为e j b 组件开发者提供一组标准的、易用的a p i 访问e j e 容器,同 时负责提供系统监测工具用来实时监测e j b 容器和运行在容器中的e j b 组件的状 态。 6 、系统管理员( s y s t e ma d m i n i s t r a t o r ) ,负责为e j b 服务器和容器提供一 个企业级的系统环境。负责利用e j b 服务器和容器提供的监测管理工具监测e j b 组件的运行情况。 江苏大擘硕士研究生毕业论文 2 3 5e j b 的优点 e j b 白1 0 发布以来就一直受到很大的关注,它作为j 2 e e 的核心,已经发 展成为服务器端组件模型的标准,在整个j 2 e e 体系架构中起着越来越大的作用。 e j b 给j 2 e e 平台下的应用开发主要带了以下几个方面的优点: 1 、e j b 提供了分布式体系结构 在分布式环境下开发应用程序是非常复杂的e j b 应用服务器屏蔽了底层分 布式系统的细节,为应用开发者提供了一个很好的开发运行环境。 2 、e j b 支持应用层组件的集群【“1 对于高负载量的企业应用来说,集群( c l u s t e r i n g ) 是必须考虑的问题。e j b 服务器为企业应用提供了很好的集群、负载均衡、容错等能力。 3 、e j b 提供与c o r b a 的互操作 r m i i i q p ( i n t e ri n z e r o r bp r o t o c 0 1 ) 提供了e j b 组件与c o r b a 组件之间 的互操作性,使得分布式环境下e j b 组件和c o r b a 组件可虬相互访问。 4 、e j b 提供了清晰的多层体系结构 e j b 规范提供了不同的构件类型,每种构件都可以映射到j 2 e e 多层体系结 构的不同层,如s e s s i o n b e a n 可以映射到服务层,e n t i t y b e a n 可以映射到域层。 5 、e j b 使组件具有高度的可移植性 e j b 组件可以部署到任何遵循e 丁b 规范的应用服务器中,使开发者无需做任 何改动就可以实现应用程序的移植。 6 、e j b 提供o rm a p p i n g 机制l ”1 c m p ( c o n z a i n e rm a n a g e rp e r s i s t e n c e ) e n t l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论