(计算机软件与理论专业论文)ejb应用服务器的研究与设计.pdf_第1页
(计算机软件与理论专业论文)ejb应用服务器的研究与设计.pdf_第2页
(计算机软件与理论专业论文)ejb应用服务器的研究与设计.pdf_第3页
(计算机软件与理论专业论文)ejb应用服务器的研究与设计.pdf_第4页
(计算机软件与理论专业论文)ejb应用服务器的研究与设计.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(计算机软件与理论专业论文)ejb应用服务器的研究与设计.pdf.pdf 免费下载

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

文档简介

沈阳工业大学硬士学位论文 摘要 随着计算机网络越来越深入人们的生活、工作和学习,企业级的电于商务应用等高 级应用正在成为一种强大的驱动力量,并引发了一系列新的观念、新的技术和新的产 品。e i b 应用服务器则是其中最引入注目的部分。 论文主要围绕e i b 应用服务器中核心部分的主要关键技术展开研究。 我们设计的f a b 应用服务器是以m x 为核心,它集成了已有的成熟管理协议和 j 2 e e 服务,妇对e j b 容器的管理、命名服务管理、分布式事务的管理,所有服务均是 以m b e 眦形式表示,可以说j m x 在f a b 服务器中起着微内核的作用。 j n d i 命名服务是基于s o c k e t 和r m i 的原理来实现的,它吸取了b o s s 中的命名服 务器将c o n t e x t 与名称操作类分离的结构,但不是像j b o s s 那样访问远程对象时完全通 过s o c k e t 实现,而是通过r m i 直接进行远程访问,这样大大降低编码和维护的难度。 而且我们的命名服务器在n a m i n g s e r v i c e l m p i 只维护一份映射表,索引的名字将以平面 的方式来维护,这样避开了j b o s s 中的递归搜索,将大大提高索弓f 的速度,僵同时也增 加了维护c o n t e x t 难度。关于事务服务方面,我们只是给出了一个最小化的实现。 在f a b 容器的技术方面,我们研究了容器中的服务框架、多类型客户端访问、b e a n 生命周期管理等关键的技术问题。我们设计了f a b 容器的可扩展服务框架,从而能透明 地在e i b 容器中添加额外的服务。我们采用动态代理的方式实现了砌v i i 仃r h 但客户端 的访问,并通过采用自动编译、动态下载s t u b 。极大简化了r m i i i o p 客户端的调用操 作。我们通过调度池技术实现了无状态b e a n 的生命周期管理,通过引入对象缓存机制 结合调度池技术实现了有状态b e a n 的生命周期管理。 关键词:e 3 b 应用服务器,e j b 容器,y , t x ,j n o i 沈阳工业大学硕士学位论文 t h er e s e a r t ha n dd e s i g nf o re j ba p p l i c a t i o ns e r v e r a b s t r a c t a l o n gw i t hc o m p u t e rn e t w o r k sg o i l 冯d e e p e ri n t op e o p l e sl i f e , w o r ka n ds t u d y , t h e a d v a n c e da p p l i c a t i o n si nt h ee n t e r p r i s e s ,s u c ha st h ee l e c t r o n i cc o m m e r o e , a f eb e c o m i n gak i n d o fs t r o n gi m p l e t u sa n dc a u s i n gas e r i e so fi 删c o n c 椎n 肼t e c h n i q u e sa n dn e wp r o d u c t s a m o n gw h i c he j ba p p l i c a t i o ns f f l - v e l - i st h em o s tc o n s p i c u o u s e t h er e s e a r c ho f t h i st h e s i sf o c u s e so nt h ek e yt e c h n o l o g i e si nt h ek e r n e lo f d e v e l o p i n ge j b a p p l i c a t i o ns e r v e r j m xi sak e yc o m p o n e n t i ne j ba p p l i c a t i o ns e r v e r sa r c h i t e c t u r e ,i tu t i l i z e s a n di n t e g r a t e st h ee x i s t e dm a t u r em a n a g e z n e n tp r o t o c o l sa n dj 2 e es e r v i c e s , t h em a n a g e m e n to f c o m p o n e n ts e r v i c e ss u c ha s 白bc o n t a i n 瓯t h en a m i n gs e r v i c e , t h ed i s t r i b u t e du a n s a c t i o n 8 a l lt h e s t 孙v i g e si ne i ba p p l i c a t i o n9 既憎a l ei n s t r u m e n t e da sm b e a n s t h a ti st os a y , j m xs e l v e sa s t h ek e r n e li nf _ j ba p p l i c a t i o ns e f v e f o u rj a v an a m i n gs e r v e ri sb a s e do ns o c k e ta n dr m i , i th a sa b s o r b e di nt h em e r i to f t h e j b o s s sj n d ia r c h i t e c t u r et h a tj b o s ss e p a r a t 髂c o n t e x ta n dt h eo l 艳咖n a m ec l a s s b u to u r j a v an a m i n gs 盯v e fa c c e s s e sd i r e c t l yt h r o u g h 咖t h el o n gd i s b i 鹏a n d 】1 0 0 s s 舵o e s s 既l o n g d i s t a n c eo b j e c tb ys o d 。时1 1 】e no u rj a v an a m i n g 鬻f v 汀g r e a t l yr e d u c e st h ec o d ea n dt h e m a i n t e r l a n c ed 黼讪y m o r e o v e ro u rj a v an a m i n gs 嗍w i l lo n l ym a i n t a i nt oar e f l e c t i n g t a b l ei nn a m i n g s e t w i c e l m p l , t h ei n d e x 蛐em a i n t a i n sb yt h ep l a n ew a y , t h e ni ta v o i d s s e a r c h i n go f r e e u r s i o ni nt h ej b o s s , a n di tg r e a t l ye n h a n c e st h ei n d e xs p e e d , b u ta tt h es a m et i m e i ti n c r e a s e dd i f f i c u l t i e so ft h em a i n t a i n e dc o m e x t o u rt r a n s a c t i o n 船f v i c ei ne j b 印p l i c a t i o n s d v e f , w eo n l yh a v ep r o v i d e das m a l l e s t 北a l i 枷o n t h i st h e s i sp r o v i d e ss o l u t i o n sf o rt h ei s s u e so f t h ee j ba p p l i c a t i o ns e r v c xo f e i bc o n t a i n e r , m u l t i - t y p ec l i e n ti n v o c a t i o nl i f e e y c l em a n a g e m e n t , a ne x t e n s i b l es d v i c ef r a m e w o r ko fe j b c o n t a i n e ri sp n 瑚a t e d , w h i c ha l l o w ss e t v i c e st ob ea d d e dt r a n s p a r e n t l yi n t oo u re i bc o n t a i n e r , 撇i n v o c a t i o nu s i l l gd y n a m i cp r o x yi si m p l e m e n t e df o rr m f f j r m pc l i e n t sa n di n v o c a t i o n f o rr m i i i o pi si m p l e m e n t e di naw a yt h a tt h ec l i e n tc 舭d o w n l o a dh o ps 缸b s - w h i c ha r e 2 沈阳工业大学硕士学位论文 a u t o m a t i c a l l yg e n e r a t e db yt h ea p p l i c a t i o ns e v e r , f r o mt h es t u bs e i v e r c o n c e r n i n gt h el i f ec i r c l e m a n a g e m e n t , c a c h i n ga n dp o q b n gt e c h n o l o g i e sa r eu s e dt op r o v i d ee 岱c i e n tm a n a g e m e n t k e yw o r d s :e ma p p l i c a t i o ns e r v 甄f i bc ( i i i l a 矗瓯】m xj n d i 3 独创性说明 本人郑重声明:所呈交的论文是我个人在导师指导下进行的研究工 作及取褥的研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得 沈阳工业大学或其他教育机构的学位或证书所使用过的材料。与我一同 工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表 示了谢意。 签名:谴骂豇日酋l 关于论文使用授权的说明 本人完全了解沈阳工业大学有关保留、使用学位论文的规定,即: 学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公 布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论 文。 ( 保密的论文在解密后应遵循此规定) 签髫:雌,导师签名:监日期土巫q 沈阳工业大学硕士学位论文 l 绪论 1 1 课题背景 随着应用需求和规模的不断扩大,基于i n t e r n e t 的应用正以前所未有的高速度向 前发展。而两层客户机服务器结构暴露出种种缺陷,如客户端和服务器负担过重、应用 逻辑的改变缺乏灵活性、系统移植性差和升级困难。多层客户服务器结构解决了客户机 服务器结构的问题满足了基于i n t e r n e t 企业应用的新的要求。使处于应用中问层上的 应用服务器具有可伸缩,高性能和支持分布式应用等优点,降低了应用开发的成本和难 度,提高了应用系统开发的可用性、安全性、可靠性和可伸缩性。但这样必然使得企业 系统的开发越来越困难,因此开发商和广大程序员一直在努力推动和殷切期待一个成 熟、标准的企业平台来简化和规范企业系统的开发和部署。 s u n 公司推出的j a v a2e 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 和 c o r b a 技术( 具有开放性、跨平台、跨语言的特性) 的结合,很好的解决了企业计算中 各种分布式对象的互操作性f ”,同时,方便了对企业遗留系统和企业信息系统的集成。 对于企业应用系统的开发人员而言,无需考虑底层的实现细节,集中精力于企业业务逻 辑的开发,由j 2 e e 平台处理低层的通讯并提供各种服务( 如:名字服务、安全管理、 交易服务、事务管理等) ,从而高效快速的建立企业应用系统,体现出j 2 e e 架构的先 进性和实用性。 e j b 服务器是j 2 e e 应用服务器的一个重要部分。e j b 作为j 2 e e 架构中最重要的构 件,是服务器端分布式计算模型的核心。e j b 服务器中的e j b 容器,控制e j b 的运行, 并且为它提供重要的系统级的服务( 事务处理、安全、远端访问、数据库访问等) 。由此 带来的是应用开发的简化,按照e j b 的规范开发e j b ,运行时由e j b 容器负责事务处 理,安全,生命周期:e j b 容器采用这种可扩展服务框架可以使得程序员只需关注于应 用程序的业务逻辑,在这种架构下的容器隐藏了运行时刻的系统级环境。e j b 不需要完 沈阳工业大学硕士学位论文 成属于下层结构的各类服务( 如事务、安全、持久性管理等) ,而只是在他们的配置文件 中声明它们的需求便可以使用这些服务闭。这样大大简化了应用程序的开发过程。 12e j b 服务器的发展以及国内外的发展动态 尽管借着中间件领域的兴起,各厂商都推出了核心产品,但国内软件公司一直面临 起步时间晚,发展历程短和资金短缺的劣势,因此它们难与国际大型企业同台竞争f 3 1 。 2 0 0 4 年6 月,国产中间件产品a p u s i c 应用服务器提前一个半月顺利通过国际j 2 e e 标准测试,成为第一个跻身国际公认领先行列的国产系统软件。自此,中国软件厂商终 于在全球顶级技术开发组织j c p 内有了发言权,中间件的崛起为中国软件产业打开了走 向世界的大门。 以下是国内外最具代表性的应用服务器产品: ( 1 ) 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 w e b s p h e r e 注重平台的一致性,w e b s p h e r e 应用程序服务器使您能够部署核心运行 环境来提供运行大量、安全的事务处理和w e b 业务的可靠基础【4 l ,它把e j b 和i b m 其它 的优秀的产品( t x s e r i s e 和c o m p o n e n tb r o k e r ) 结合在了一起。在具体的应用中,基 于安全的考虑,性能考虑和系统管理考虑,还可以增加f i r e w a l l ,w e b s h p e r e p e r f o r m a n c ep a c k 和t i v o l i 。所以,可能i b m 的e j bc o n t a i n e r 不一定是最好的,但 是,w e b s p h e r e 中的e j b 和i b m 其他产品的结合却是做的最好的。 ( 2 ) b e aw e b l o g i ca p p l i c a t i o ns e r v e r a p p l i c a t i o ns e r v e r8 1 仍然使用了基于浏览器的管理方式,这一直是w e b l o g i c 的优势点,a p p l i c a t i o ns e r v e r8 1 的管理非常方便而且可选择性不错。w e b l o g i c 8 0 对7 0 系列产品进行了全面地升级,服务器配置更加简单,而且提供了更多设置选 择以便配置管理人员可以配置出更加贴近自己需要的环境,最大程度的发挥应用服务器 的功能吼w e b l o g i c 的平台可以轻易的和其它公司提供的产品进行集成,你可以根据自 己的需要选择其中的某些组件,然后选择另外一部分的j 2 e e 特性由其它集成的产品进 j 行支持。w e b l o g i c 平台的产品线集成度比较高。 ( 3 ) o r a c l ea p p l i c a t i o ns e r v e r 沈阳工业大学硬士学位论文 o r a c l e 9 i a s 是得到j 2 e e 认可的应用服务器,o r a c l e 9 i a s 提供了对所有j 2 e e1 3 应用编程接口( a p i ) 的完全支持。o r a c l e 9 i a s 提供了j 2 e e 容器,并支持标准服务,使 开发者能够利用j 2 e ei 3 中新增的连接器,全面简化连接现有应用程序( 包括e r f 和 c r m 方面的特定应用程序) 的连接性和集成,并利用j a v a 与x m l 的更紧密集成,提高 开发应用程序的生产率。o r a c l e 9 i h s 是目前市场上综合性最强、集成度最高的应用服 务器。它提供了多个增强的j a v a 功能,包括获得认证的j 2 e e 技术、e s i 高速缓存、高 效率的j 2 e e 开发环境。 ( 4 ) j b o s sa p p l i c a t i o ns e r v e r j b o s s4 0 是一个安装简单,包含e j b 2 0 容器、j a v a 消息服务等等功能的应用服 务器,面向方面设计( a o p ) 是它真正突出的部分。j b o s s a s4 0 是第一个达到s u n 公司 j 2 e e1 4 技术认证的开放源程序服务器,j b o s s 作为开源的e j b 容器,其中整合了 t o m c a t j e t t y 等开源w e b 容器,完全支持j 2 e e 标准规范。但是在高度实用性和延展性 上j b o s s 无法与以上几种商业应用服务器相比【6 l 。 ( 5 ) a p u s i ch p p l i c a t i o ns e r v e r a p u s i c 应用服务器3 o 基于现有的各种被广泛接受的工业标准,包括j 2 e e l 2 和 1 3 规范、x m l 相关规范、w e bs e r v i c e s 相关规范、数据交换以及各种安全方面的协议 和标准,为企业应用提供了一个可靠、高效的开发、部署和维护的平台。a p u s i ca s 是 国内第一个商业j 2 e e 应用服务器产品。通过对应用服务器平台技术的自主控制。在提 供标准功能和提供其他主流应用服务器同等特性的基础上,最大限度地提高了应用的可 移植特性,这是其他主流应用服务器所无法比拟的,因此nn 中d , 企业中应用较多m 。 1 3 论文所做的工作 我们在从事j 2 e e 开发的过程中,发现一些e i b 应用服务器都有着一定的缺陷,这 使我萌发了设计一个e j b 应用服务器的想法。 要完成一个e i b 应用服务器,有几个核心部分是必须要实现的:服务器的内核阴 容器,以及它的一些基础服务如名字服务、事务服务等等。 论文的主要工作包括: 沈阳工业大学硕士学位论文 ( 1 ) j 卜j d i 命名服务器是基于s o c k e t 和r m i 原理来实现的,它采用将c o n t e x t 与名称 操作类分离的结构,它访问远程对象时直接通过r m i 进行,这样大大降低编码和维护 的难度。在命名服务器中n a m i n g s 盯v i c e l m p l 只维护一份映射表,索引的名字将以平面 的方式来维护,这样将大大提高索引的速度,但同时也增加了维护c o m e 砒难度。 ( 2 ) j m x 是我们设计的e j b 应用服务器的核心,e j b 服务器中的服务是以m b e a n 的 形式表示的,所以对服务的可扩展管理,就是对 v i n e a n 的管理。我们通过a d a p t o r 模 式使得一个接口与其他接口兼容,并给出了多个不同接口的统一抽象。e j b 服务器的启 动过程就是利用j m x 将e j b 服务器中定制的服务集成的过程。在e j b 服务器中,当 v l b e a ns e r v e r 启动完毕后,将从一个系统服务配置文件中读取所有服务信息,将服务加 载到e j b 应用服务器中。用户可以在服务配置文件中修改服务的配置属性,定制或者替 换用户所需的服务,甚至还可以添加用户级的系统服务。 ( 3 ) 我们基于j 2 e e 规范,给出了实现事务服务的原型,分析了j 2 e e 事务服务实现 的框架,最后给出了一个具体实现。 ( 4 ) 为满足各种各样的需求,e j b 容器必须能支持多种服务的集成。我们利用 i n t e r c e p t o r 模式来设计e j b 容器的可扩展服务框架。e j b 容器能支持r m i j r m p 、 s o a p 、h t t p 等协议,这些协议之间能相互共存,也能动态地改变调用协议。 1 4 论文的结构 本文的章节按如下方式组织: 第一章为绪论,介绍了课题的研究背景,以及本论文所要研究的主要内容。 第二章阐述了j 2 e e 技术的发展以及其体系结构,并重点介绍了e j b 组件模型。 第三章介绍了e j b 服务器中所需要的其它几种服务j m x 、j n d i 、事务服务。 第四章进行j m x 、j n d i 、事务服务的分析和设计。 第五章主要阐述了e j b 容器的设计与实现。其中主要包括e j b 容器中的可扩展框 架,自动部署,e j b 组件生命周期管理 最后,第六章对全文工作进行了总结,并且对进一步研究提出展望。 沈阳工业大学硕士学位论文 2 1 2 e e 技术介绍 从整体上讲,j 2 e e 是使用j a v a 技术开发企业级应用的一种事实上的工业标准,它 是j a v a 技术不断适应和促进企业级应用过程中的产物降l 。s u n 推出j 2 e e 的目的是为了 克服传统c s 模式的弊病,迎合b s 架构的潮流,为应用j a v a 技术开发服务器端应用 提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简 化企业应用的开发、管理和部署。各个平台开发商按照j 2 e e 规范分别开发了不同的 j 2 e e 应用服务器,j 2 e e 应用服务器是j 2 e e 企业级应用的部署平台。由于它们都遵循了 j 2 e e 规范,因此,使用j 2 e e 技术开发的企业级应用可以部署在各种j 2 e e 应用服务器 上。总而言之,j 2 e e 是服务,组件,容器,a p i 的集合1 9 】。 j 2 e e 技术是我们研究j 2 e e 应用服务器的基础技术背景,本章主要就j 2 e e 技术以 及体系结构作出描述,并重点描述了e j b 组件模型。 2 从传统的二层体系结构到j 2 e e 体系结构 企业应用体系结构经历了巨大的发展。第一代企业应用是集中式的大型机应用,到 了2 0 世纪8 0 年代后期和9 0 年代早期,几乎所有新的企业应用都采用二层体系结构f 也 称之为客户楣臣务器体系结 句) ,后来企业应用发展到三层结构,然后是基于w e b 的体系 结构,目前发展到以j 2 e e 为代表的体系结构【1 0 】。 21 1 二层应用体系结构 二层体系结构适用于w e b 出现之前的大多数应用。它的主要好处是易于开发。特 别是因为表示逻辑与业务逻辑驻留在同一个进程中,开发者不必处理分布式应用的复杂 关系。 但是,它的不利之处要比好处更多。二层体系结构的主要不利之处是其业务逻辑没 有从表示逻辑中分离开来。程序员很难在二层结构的应用中清楚地将业务逻辑从表示逻 辑中分割出来。这就导致了一系列的闯题:容易危及数据库的完整性、难以管理、难以 维护、安全入侵等等。 沈阳工业大学硕士学位论文 2 i 2 传统的三层应用体系结构 传统的三层体系结构克服了二层体系结构的_ 些限制,它将呈现逻辑和业务逻辑分 隔开来,将业务逻辑放置在服务器端,只有表现逻辑部署在客户p c 机上。 三层体系结构有了一定的改进。中间层服务器通过重用那些跨越多个客户的昂贵的 资源来改进可伸缩性,例如数据库连接。可伸缩性的改进带来了性能的改进。这个体系 结构也改进了安全与应用管理。 但是传统的三层体系结构也有它的不足:结构复杂、缺乏可移植性、各个提供商产 品之问互不兼容等等1 1 l 】。 2 1 3 早期的基于w e b 的应用体系结构 w e b 的引入改变了一切。因为二层和传统的三层体系结构都不支持w e b 应用的开 发,因此早期的w e b 应用开发者不得不想出一些新的途径。他们使用各式各样的w e b 服务器插件扩充,这些扩充通过激活服务器上的程序来从存储在企业数据库中的信息动 态地构造h t m l 文档。同样,这种w e b 服务器的扩充也从提交的h t m l 表单中将信息 加入到企业数据库中。 这种扩充的典型例自就是c g i ( c o m m o ng a t e w a yi n t e r f a c e ) 脚本。虽然c g i 脚本和 类似的机制允许企业应用开发者构建简卑的w e b 应用,但是c g i 方式并不适用于更加 复杂的企业应用【1 2 j ,原因如下: 0 ) c g i 脚本没有提供内在业务过程或者个业务实体的结构良好的封装。 ( 2 ) c g i 脚本难以开发、维护和管理。高层的应用开发工具没有为c g i 脚本的开发 提供良好的支撑。 0 ) c g i 脚本将业务过程的实现和呈现逻辑的实现缠绕在一起。当需要改变实现中的 一部分时,就会有意外改变其它部分的危险。 ( 4 ) c g i 脚本实现不利于业务规则完整性的维护。企业业务规则的实现被分散到多个 c g i 脚本程序中,它们被部署到企业中的几个w e b 服务器上,因此,企业维护其业务 规则的完整性是困难的。 沈阳工业大学硕士学位论文 2 1 4j 2 e e 应用体系结构 j 2 e e 是一个体系结构,它特别面向使用j a v a 程序设计语言进行基于w e b 企业应用 的开发部署。企业能够使用j 2 e e 体系结构进行应用的开发和部署,从而有效地替代二 层和三层模型。用于i n t e r n e t 应用的开发时,可以有效地替代基于c g i 的方式。同时, j 2 e e 也提供了对于二层和三层应用的支持。 在j 2 e e 中,容器是一个重要的概念。容器是一种运行在服务器上的软件实体,用 干管理特定类型韵组件。它为开发入员开发j 2 e e 组件提供了执行环境。通过这些容 器,j 2 e e 体系结构就能在开发和部署之间提供无关性,并在不同类型的中间层服务器 上提供可移植性,容器还负责管理部署在其中的组件的生命周期m i 。 j 2 e e 平台有如下2 种常用容器: ( i ) e j b 容器:提供适用于企业b e a n ( 企业b e a n 是实现业务过程和实体的组件) 开 发、部署以及运行时管理的环境。 ( 2 ) w e b 容器:提供适合于s e r v l e t 和j s p ( j a v as e r v e rp a g e ) 开发、部署以及运行时管 理的环境。这些s e r v l e t 和j s p 称为w e b 应用的可部署单元,在w e b 中实现了一个企业 应用的呈现逻辑。 2 2j 2 e e 的体系结构 一个多层的分布式的应用模型意味着应用逻辑根据功能被划分成组件,并且可以在 同一个服务器或不同的殿务器上安装组成5 2 e e 应用的这些不屈的组件。一个应用组彳字 应被安装在什么地方,取决于该应用组件属于该多层的j 2 e e 环境中的哪一层。这些层 是客户层、w e b 层、业务层及企业信息系统层( e i s ) 。如图2 1 ,我们可以看出,一个基 于j 2 e e 的企业应用从结构上来看,可以分成四部分:分别是客户层、w e b 层、韭务层 和企业信息层。下面是对它们的描述: ( 1 ) 客户层( c 1i e n tt i e r ) j 2 e e 应用可以是基于w e b 的,也可以是不基于w e b 的。在一个基于w e b 鲶j 2 e e 应 用中,用户的浏览器在客户层中运行,并从一个w e b 服务器上下载w e b 层中的静态j s p 页面或s e r v l e t s 生成的动态h t m l 页面。 沈阳工业大学硕士学位论文 在一个不基于w e b 的j 2 e e 应用程序中,一个独立客户程序,它不运行在一个h t m l 页面中,而是运行在其它一些基于网络的系统( 比如手持设备或汽车电话) 中的a p p l e t 程序。它在客户层中运行,并在不经过w e b 层的情况下访问e j b 。该不基干w e b 的客户 层可能也包括一个j a v a b e a n s 类来管理用户输入,并将该输入发送到在企业层中运行的 e j b 类来处理。根据j 2 e e 规范,j a v a b e a n s 类不被视为组件1 1 4 l 。 高辫一 硝鑫蕊心,黜-、 厂。 啦_ 飞 ,;兰避 ,:立馥曲霸醯- 擘雌哩:。 麓溺 , :鬻多 醺 呻 、例盼 ,盛 一 誊圈貅1 墓蔷 蓑誊 乎| 亳鼬妇毹、 一 l 黛幽;, 。;漱矗 4 辑;。 。秘踺 ,一 l _ j 剽麟 。,髓8 :_ 圈2 1 1 2 e e 体系结构 ( 2 ) w e b 层 j 2 e e 的w e b 组件可以由j s p 页面、基于乳b 的h p p l e t s 以及显示h t m l 页面的 s e r v l e t s 组成。调用s e r v l e t 或者j s p 页面的h t m l 页面在应用程序组装时与w e b 组件 打包在一起。就像客户层一样,w e b 层可能包括一个j a v a b e a n s 类来管理用户输入,并 将输入发送刭在业务层中运行的e j b 类来处理。 ( 3 ) 业务层 为解决或满足某个特定业务领域( 比如银行、零售或金融业) 的需要,而写的业务代 码由运行在业务层的e j b 来执行。一个e j b 从客户程序处接收数据,对数据送行处理, 沈阳工业大学硕士学位论文 再将数据发送到企业信息系统层存储。一个e j b 还从存储中检索数据,并将数据送回客 户程序。运行在业务层的e j b 依赖于容器来为诸如事务、生命期、状态管理、多线程及 资源存储池来提供非常复杂的系统级代码。业务层经常被称作e j b 层。业务层和w e b 层一起构成了三层j 2 e e 应用的中间层。 ( 4 ) 企业信息系统层 企业信息系统层运行企业信息系统软件,这层包括企业基础设施系统,例如企业资 源计划( e r p ) 、大型机事务处理、数据库系统及其他信息系统。j 2 e e 应用组件因为菜种 原因( 例如访问数据库) 可能需要访问企业信息系统。j 2 e e 平台的未来版本将支持 c o n n e c t o r 架构,该架构是将j 2 e e 平台连接到企业信息系统上的一个标准a p i 。 2 3e j b 组件模型 e j b 是j a v a 服务器端服务框架的规范,软件厂商根据它来实现e j b 服务器。应用 程序开发者可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现阕题。 e j b 技术是j 2 e e 体系结构的一部分,e j b 组件是用j a v a 语言编写的,是可以被客户端 程序存取的可重用的服务器端组件,它运行在j 2 e e 服务器上,在客户服务器系统中, e j b 提供类似于中闻件的服务1 1 5 1 。 e j b 作为一种j a v a 服务器端组件模型,具有完整的事务性和内部安全机制,能够 支持大规模企业分布式应用系统的开发。e j b 规范洋细地解释了一些最小但是必须的服 务,如事务、安全和名字等。软件厂商根据这些规范要求以保证一个e j b 能使用某个必 需的服务。规范并没有说明厂商如何实现这些服务,因为它允许厂商在不牺牲核心服务 的可移植性的前提下来提供一些增强功能【阍。 2 3 1e j b 组件模型的内部组成 一般,e j b 组件由以下几个部分组成m ,即组件接口、h o m e 接口、e n t e r p r i s e b e a n 类和部署描述文件( m e s s a g - o r i v e nb e a n 不具有组件接口和h o m e 接口) 。下面分别 描述这些组成部分。 ( 1 ) e j b 的组件接口 沈阳工业大学硕士学位论文 客户端通过e 西的组件接口访闺e 2 3 对象,组件接口中定义了可被客户端访问的业 务方法。组件接口分为远程接口和本地接口,e j b 对象通过远程或本地接口,提供远程 客户访问或本地客户访问的支持。 提供远程接口的e j b 据有可被远程客户访闯或本地客户访阔的能力。对于提供了远 程接回的对象,客户可通过标准的j a v a 肼i ( r e m o t em e t h o di n v o c a t i o n ) 进行远程对 象调用。 提供本地接口的e j b 只可被本地组件通过本地接口进行调用。所湛本地组件,即是 运行于相同j a v a 虚拟机中的本地e j b 对象。本地调用通过一般的标准j a v a 编程语言接 口进行。 ( 2 ) h o m e 接口 e j b 通过h o m e 接口提供客户端创建、清除和在同种类型的e j b 中查找特定e j b 对 象的方法。对于提供远程接口的e j b ,需要提供远程h o m e 接口,需要提供本地接口的 e j b ,需要提供本地h o m e 接口。 e j b 客户端通过标准的j n d i ( j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ) a p i 来定位 h o i d e 接口。 ( 3 ) 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 类包含了组件的实现细节。由e j b 开发人员编写,对于不同类型 的e 3 b 组件,必须分别声明实现如下接口: j a v a x e j b s e s s i o n b e a n j a v a x e j b e n t i t y b e a n j a v a x e j b m e s s a g e d r i v e n b e a n ( 4 ) 部署描述文件 部署描述文件是用于包含e j b 的运行时属性( 安全性,事务性等等) 信息的文件,与 以上部分一起形成完整的e j b 组件。 2 32e j b 模型的体系结构 e j b 组件体系结构是基于j 2 e e 规范构建的应用软件系统的主要部分。完整j 2 e e 应 用的核心内容是封装了商务逻辑的e j 8 组件。 沈阳工业大学硕士学位论文 e j b 的上层的分布式应用程序是基于对象组件模型的,底层的事务服务用了a p i 技 术。e j b 技术简化了用j a v a 语言编写的企业应用系统的开发、配置和执行。 对于e j b 体系结构的了解,必将有利于我们的e j l 3 服务器的开发。一个基本的e j b 体系结构包括下面几个方面: ( 1 ) 一个e j b 服务器 ( 2 ) 包含于e j b 服务器中的e j b 容器 ( 3 ) 运行在e j 8 容器中的h o m e 对象、e j b 对象 ( 4 ) e j b 客户端 ( 5 ) 辅助的系统包括:命名服务,事务( 交易) 服务,安全服务等 如图2 2 可以很清楚的显示出它们的关系: 图2 2 e j b 体系结构 下面逐介绍e j b 体系结构的各个组成部分: 沈阳工业大学硕士学位论文 ( 1 ) e j b 服务器:e j b 服务器作为容器和底层平台的桥梁管理着e j b 容器。它给e j b 容器运行于其中提供了一个组织框架和运行时的环境。 ( 2 ) e j b 容器:顾名思义e j b 存放于其中,由它负责管理这些e j b 组件。e j b 容器最 重要的职责是提供个e n t e r p r i s eb e a n s 可以运行的环境。e j b 容器装载e j b ,并且使 得客户端程序能进行远程调用。 ( 3 ) e j b 的r e m o t e 接口和e j b 对象:e j b 客户端对e j b 的请求不是直接调用存储在 e j b 容器中的e j b 对象的,而是调用请求被e j b 容器所截获,然后传递给b e a n 实例。 e j b 容器完成这样的工作是通过生成e j b 对象来实现的。当然容器要生成e j b 对象,不 能凭空生成,b e a n 供应商必须要提供r e m o t e 接口,在r e m o t e 接口中复制对应的b e a n 类公开的所有商务逻辑。e j b 容器再根据r e m o t e 接口,生成e j b 对象,使其克隆b e a n 类公开的每个商务方法。 ( 4 ) e j b 的h o m e 接口和h o m e 对象:客户是怎样获得对e j b 对象的引用的呢,这是 通过h 衄对象来实现的。h o m e 对象是e j b 对象的制造生成库,它的主要功能是生成 e j b 对象,查找现存的e j b 对象( 限于实体b e a n ) ,删除e j b 对象。它和e j b 对象一样, 都是e j b 容器的一部分,它们都由e j b 容器提供商提供的软件工具自动生成。当然它的 生成也是要预先提供接口的,这就是h o m e 接口。h o m e 接口仅仅需要定义生成、回收, 查找e j b 对象的方法,具体的则由e j b 容器的h o m e 对象来实现。 ( 5 ) e j b 客户端:e j b 客户端通过j a v a 的命名目录接口( 3 n d i ) 来定位包含它们所需 要的j a v a b e a n 的w e b 容器。它们通过w e b 容器来访问e j b ,并不得到真正的e j b 引 用,而是通过访问e j b o b j e c t 来达到目的。 2 3 3e j b 规范定义的开发者角色 j 2 e e 大部分规范都会涉及到角色分工,按照e j b 2 0 规范的定义,基于e j b 规范的 分布式计算体系结构由六个角色组成,这六个角色可以是软件开发团队、系统软件供应 商、应用软件集成商等,每个角色所完成的工作必须遵循e j b 规范,以保证彼此之间的 兼容性。角色的定义有助于理清在应用开发、部署和运行时不同参与者的责任。不同的 角色并不意味着不同的参与者,一个参与者可以有多个角色,一个角色可以被多个参与 者承担。这六个角色分别是: 沈阳- r :t k g k 学硬士学位论文 ( 1 ) e z b 组件开发者 e j b 组件开发者( e n t e r p r i s eb e a np r o v d e r ) 负责开发封装有商务规则的e y b 组 件。e j b 组件开发者定义e j b 组件的h o m e 接口和r e m o t e 接口、编写组件类并且提供部 署e j b 组件的部署描述文件( d e p l o y m e n td e s c r i p t o r ) 。e j b 组件开发者是商务应用领 域的专家,不需要精通系统级编程方法以及系统级的组件事务管理、同步、安全性、分 布式计算等细节。 ( 2 ) 部署者 部署者( d e p l o y e r ) 负责将打包后的e j b 组件部署到e j b 服务器等应用环境中。部 署者应根据e j b 组件的部署描述文件中声明的对各种类型的资源,如根据数据库、安全 性管理等的需求来配置e j b 服务器为组件提供服务。部署者是e j b 应用环境方面的专 家。 ( 3 ) 应用组装者 应用组装者( a p p l i c a t i o na s s e m b l e r ) 负责将各种类型的e j 8 组件组合成一个完整 的应用系统,因此应用组装者必须明确待组装e j b 组件的h o m e 接口和r e m o t e 接口定 义的详细内容。 ( 4 ) e j b 服务器提供者 e j b 服务器通常由操作系统开发商、中间件开发商或数据库开发商来提供。因此, e j b 服务器提供者 s s 那样访问远程对象时完 全通过s o c k e t 实现,而是通过r m i 直接进行远程访问,这样大大降低编码和维护的难 度。 但如x 是我们设计的e j b 应用服务器的核心,我们通a d a p t o r 模式使得一个接口 与其他接口兼容。并给出了多个不同接口的统一抽象。在e j b 服务器中,当m b e a n s 啪启动完毕后,将从一个系统服务配置文件中读取所有服务信怠,将殿务如载到 e j b 应用服务器中。 ( 3 ) 我们利用h 贰掣幻f 模式来设计e j b 容器的可扩展服务框架,e 】b 容器允许日 恚、安全等服务以h 魄c c p 幻r 的方式加入容器。当e j b 容器发生函数调用等事件时, e j b 容器将自动触发这些相应的服务,从而能实现透明地在e j b 容器中添加额外的服 务。e y b 容器能够支持r m i j r m p 、s o a p 、h 印等协议,这些协议之间能相互共存。 也能动态的改变调用协议,对这些协议容器都将共用一个

温馨提示

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

评论

0/150

提交评论