




已阅读5页,还剩52页未读, 继续免费阅读
(计算机软件与理论专业论文)dm_ejb容器原型系统的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 摘要 e j b 组件是s u n 提出的一种分布式计算的组件体系结构,通过它使用j a v a 语言 可以方便地开发出分布的、面向对象的企业级应用。e j b 容器为这些组件提供了运 行环境和多种底层服务,从而简化了上层应用的开发过程。基于“国产数据库管理 系统d m 3 ”的d n e j b 容器系统使各类客户能够轻松、快捷地建造以j a v a 语言为基 础的服务器端组件。 d me j b 容器系统的总体结构满足三层体系结构环境下客户应用的通用请求,按 照实现的功能分为客户服务管理、容器管理和底层服务管理三个主要部分。 在深入研究e j b 规范的基础上,d me j 8 容器系统采用了面向对象的设计方案和 实现技术。通过明确划分应用服务器和e j b 容器系统在j 2 e e 框架中的不同角色,将 e j b 容器系统划分为一个独立的部分,客户的组件访问请求由应用服务器通过c p i 接口委托给e j b 容器执行。由于e j b 容器需要提供多种服务,为了提高系统的灵活 性和代码的重用性,d m容器系统把容器和所需要的服务分割开来,容器通_ e j be j b 过s p i 接口访问所需要的服务。通过提供这些接口,d m - e j b 容器不仅可以采用已实 现的服务,还可以灵活增加新型服务。而且能够嵌入到其他系统中,为那些需要e j b 组件服务的w e b 服务器提供立即的支持。 在客户一容器接口( c p i ) 和容器一服务( s p i ) 接口的设计和实现过程中,采用的关 键技术有:组件远程接口和e j b h o m e 接口的代理实现技术、组件对象的生存周期管 理技术、组件对象的缓冲管理技术,组件的安全验证和授权技术、组件的事务管理 和数掘库连接管理技术。 关键字:组件,容器,安全,事务,数据库连接 i 华中科技大学硕士学位论文 a b s t r a c t e j bc o m p o n e n tt e c h n o l o g y , an e wd i s t r i b u t e dc o m p u t i n gt e c h n o l o g y , i ss p e c i f i e db y s u n t h e c o m p o n e n tm a k e s i t p o s s i b l e t o d e v e l o pd i s t r i b u t e d a n d o b j e c t o r i e n t e d a p p l i c a t i o n sf o re n t e r p r i s e sw i t hj a v a e j bc o n t a i n e ri s as y s t e mt h a tp r o v i d e sr u n n i n g e n v i r o n m e n ta n dv a r i o u sb a s i cs e r v i c e sf o rt h e s e c o m p o n e n t s b y t h i s m e a n s ,t h e a p p l i c a t i o nd e v e l o pp r o c e s sh a sb e e ns i m p l i f i e d t h ed m _ e j bc o n t a i n e rs y s t e mb a s e do n “t h eh o m e m a d ed b m s :d m 3 m a k e si t e a s ya n dc o n v e n i e n tf o rc u s t o m e r st oe s t a b l i s h t h ea p p l i c a t i o n st h a ta r eb a s e do nj a v a l a n g u a g e t h e g l o b a la r c h i t e c t u r eo fd m e j bc o n t a i n e rs y s t e ms a t i s f i e st h eg e n e r a la p p l i c a t i o n r e q u i r e m e n t s u n d e rt h ec i r c u m s t a n c e so ft h et h r e e t i e r a p p l i c a t i o n a r c h i t e c t u r e a c c o r d i n gt o t h ef u n c t i o n st ob er e a l i z e d ,i ti n c l u d e st h e m a n a g e m e n t so fc u s t o m e r s e r v i c e ,t h ec o n t a i n e rm a n a g e m e n ta n dt h eb a s i cs e r v i c e b a s e do nt h ef u r t h e rs t u d yo fe j bs p e c i f i c a t i o n ,t h eo b j e c t o r i e n t e di d e a sh a v eb e e n u s e df o rd e s i g n i n ga n di m p l e m e n t i n gd m _ e j bc o n t a i n e rs y s t e mt h a ta c c o r d sw i t he j b s p e c i f i c a t i o n t h ee j bc o n t a i n e rs y s t e mh a sb e e nc o n s i d e r e da sa ni n d e p e n d e n tp a r ta s t h ed i f f e r e n tr o l e sw h a tt h e a p p l i c a t i o ns e r v e r a n de j bc o n t a i n e rp l a yi nt h ej 2 e e p l a t f o r m t h ec o m p o n e n t - a c c e s sr e q u e s t sw i l lb es u b m i t t e da n dp e r f o r m e dt h r o u g hc p i i n t e r f a c ee j bc o n t a i n e rn e e d st o s u p p l ym a n yk i n d so fs e r v i c e s f o rt h ep u r p o s eo f h n p r o v i n gt h es y s t e mf l e x i b i l i t y a n dr e u s i n gt h ec o d e so ft h e a p p l i c a t i o n ,t h e e j b c o n t a i n e ra n dt h es e r v i c e sn e c e s s a r ya r es e p a r a t e d t h ec o n t a i n e ra c c e s s e st h en e c e s s a r y s e r v i c e st h r o u l g hs p ii n t e r f a c e b yo f f e r i n gt h e s ei n t e r f a c e s ,d m e j bc o n t a i n e rc a l ln o t o n l ym a k e su s eo ft h ec u r r e n ts e r v i c e sr e a l i z e db u ta l s os u p p o r t sd e wk i n d ss e r v i c e s o c c h r si nt h ef u t u r e f u r t h e r m o r e ,i tc a l ls u p p l yi n s t a n ts e r v i c es u p p o r tt ow e b a p p l i c a t i o n s e r v i c e st h a tn e e dt h es e r v i c e sp r o v i d e db ye j bc o n t a i n e r i nt h ep r o c e s so f d e s i g n i n ga n di m p l e m e n t i n g o fc p ia n ds p ii n t e r f a c e ,t h ef o l l o w i n g k e yt e c h n i q u e sh a v eb e e na d o p t e d f o ri n s t a n c e ,t h ep r o x yi m p l e m e n t a t i o no f t h er e m o t e i n t e r f a c ea n dt h ee j bh o m ei n t e r f a c eo ft h ec o n t a i n e r , t h em a n a g e m e n to ft h el i f e c y c l eo f tt 华中科技大学硕士学位论文 t h ec o m p o n e n to b j e c t sa n dt h ep o o l i n gm a n a g e m e n to ft h ec o m p o n e n to b j e c t s b e s i d e s , t h es e c u r i t ys e r v i c e ,t r a n s a c t i o ns e r v i c ea n dt h ed a t a b a s ec o n n e c t i o nm a n a g e m e n ts e r v i c e t h a th a v eb e e na c h i e v e db yt h ed m e j bc o n t a i n e r s y s t e m k e yw o r d s :c o m p o n e n t ,c o n t a i n e r ,s e c u r i t y ,t r a n s a c t i o n ,d a t a b a s ec o n n e c t i o n 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:套永祝匕 日期:二。竹年4 月上牛e l 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校 有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅 和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本论文属于, 不保密目。 ( 请在以上方框内打“”) 学位论文作者签名:杏永豸良 日期:? 。口拈# 年月2 4 日 人t 勰咖 阳嚣 舯 眦 华中科技大学硕士学位论文 1 1 课题背景 1 绪论 本课题来源于国家“8 6 3 数据库重大专项一面向i n t e r n e t 的国产数据库管理系 统d m 3 ”中的“国产数据库管理系统d m 3 升级改造”分系统。 e j b ( e n t e r p r i s ej a v a b e a n s ) 是一种创建在服务器端的可扩展、事务处理、多用 户安全“的企业级应用,它为开发分布式的n 层中间件提供了统一的组件体系框架。 通过它使用j a v a 语言可以开发分布式的、面向对象的企业级应用,并且简化了整个 过程“1 。通过应用e j b ,用户可以全身心地投入开发解决实际问题的应用软件中, 而不用花费精力处理分布式服务器端系统所带来的底层问题。这些底层问题都归 e j b 容器处理,它为e j b 组件提供了运行环境。组件可以通过配置文件来动态地声 明所需的服务,这些服务由e j b 容器来提供、管理,而对于组件内部来说,这一切 都是透明的、潜在的“。 e j b 组件技术是s u n 提出的j 2 e e 框架的基础和最重要的组成部分。j 2 e e 模型是 s u n 公司提出的多层服务器体系结构,它通过提供企业计算环境所必需的各种服务, 使得部署于j 2 e e 平台上的多层应用可以实现高安全性、可扩展性和可靠性。”。在 j 2 e e 系统上,系统可以分为客户层、中间层和数据层。e j b 是中间层的核心,而数 据库是数据层的主要体现者。数据库访问是e j b 体系结构中十分重要的环节,是丌 发企业级应用的关键技术之一”。 利用e j b 组件实现数据库访问具有以下三个方面的优势。 1 易于实现对异种数据库和分布式数据库的访问。e j b 可与各种不同的数据 库之| 1 f j 进行剥1 话,j d b c 提供了连接各种不同数据库的统接口和访问方法”。另外 e b 组件通过j 8 v s tr m i 一1 i o p ”1 协议进行本地或远程访问,客户和e j b 组件都不必关 心彼此的位置。 2 提高了数据库访问的性能。e j b 组件是运行在服务器端的跨平台、可重用 组件,解决了多用户并发访问大量数据库所产生的问题。e j b 服务器提供了对j d b c 的缓冲连接池技术的支持,减少了系统建立与数据库连接的丌销,极大地提高了查 _ _ _ - 。_ _ _ - - _ h _ _ _ - _ - _ _ _ - _ - _ - _ - 一 华中科技大学硕士学位论文 询的速度。e j b 容器负责数据库与组件的数据同步问题,通过对数据库中的数据进 行缓冲,减轻了客户端对数据库的压力,解决了数据库容易崩溃和异常的问题。 3 数据的安全性好。安全是网络计算的一个重要方面。在f i b 体系结构中, 川在服务器端、客户端、网络、应用程序和数据库等多个层次上提供安全服务,为 企业级的应用系统提供灵活、方便的安全措施。 d m 数据库管理系统是华中科技大学计算机学院数据库与多媒体技术研究所研 制的分布式多媒体数据库管理系统。为了增强d m 系统的通用性和易用性,使用户可 以一致性和透明性地访问d m 数据库,我们提供了o d b c 和1 d b c 驱动程序“,使d k i 数据库管理系统可以方便地与多种数据库开发平台和开发工具互连,也可以以w e b 力式访问d m 数据库。为了满足d m 数掘库在分布式环境下,特别是多层体系结构的 企业级应用的要求,本课题准备研究e j b 组件技术,并为e j b 组件的运行提供一个 具有多种底层服务的运行环境e j b 容器。我们定义的e j b 容器的功能主要是提 供一种通用的、灵活的e j b 组件运行环境,可以和其他w e b 服务器结合来共同实现 j 2 e e 框架的功能,同时也为那些底层使用d m 数据库的j 2 e e 企业级应用提供一个完 格的整体解决方案。 1 2 国内外发展概况 e j b 技术是s u n 提出的一种基于组件的分夼式计算框架,使组件能够被集成到 服务器中,从而扩展服务器的功能“。支持e j b 组件技术的服务器称为e j b 服务器, 有时也称为应用服务器,它内部包含了一个e j b 容器。e j b 容器为e j b 组件提供运 行环境,并提供透明的底层服务支持,是应用服务器的核心和基础。应用服务器一 般是对j 2 e e 平台的所有a p i 的完整实现,它大致可以分为w e b 服务器和e j b 服务器 两大部分,w e b 服务器主要是对j s p 、s e r v i e t 技术提供支持。 i ! j b 在技术上不是一种产品” h i ,而是j a v a 应用服务器端服务框架的技术 舰范。这个技术舰范规定了在j a v a 平台上迸行服务器端组件开发的主体轮廓,用户 可以根据这个立体轮廓进行自己的扩充,填充其中的内容“,从而开发出能够满足 华中科技大学硕士学位论文 客户需要的应用系统。e j b 组件与原先的j a v a b e a n s 的相同之处在于它们使用了一 些相似的概念,例如组件的可重用性、组件位置的透明性等特征。e j b 技术在原有 的j a v a b e a n s 组件规范的基础上进行了扩展,增加了许多企业级的应用协议。 j a v a b e a n s 组件用于客户端应用程序的开发,它类似于程序语言中的方法,不能独 立运行,只能嵌入到别的应用中,为应用提供专门的功能;而e j b 组件可以独立运 行于服务器端的e j b 容器中,为应用提供更加强大的功能组合。e j b 规范描述了e j b 技术在客户机服务器系统中的不同部分,说明了e j b 组件如何与客户端及现存的系 统进行互操作,以及e j b 技术与c o b r a 技术的兼容性“,定义了系统中不同组件的 职责。e j b 规范定义了e j b 组件框架的主体结构,特别是它们之间的约定,同时也 明确地说明了客户机、服务器和独立组件各自的职责1 。创建e j b 组件的开发者和 创建e j b 服务器的丌发者是完全不同的角色,规范描述了他们各自的任务。e j b 组 件技术致力于创建客户端服务器应用系统的标准化。正如用不同开发商提供的 j a v a b e a n s 组件可以合成特定的客户端应用,用不同开发商提供的e j b 服务器端组 件可以构筑一个特定的服务器端应用。作为用j a v a 语言编写的类,e j b 组件可以不 用重新编译就可以运行在任何e j b 兼容服务器上。 一个e j b 组件其实是开发者根据e j b 规范的要求,用j a v a 语言编写的用于完成 特定业务流程的类。为了保证e j b 组件能在任何e j b 兼容服务器上运行,e j b 规范 定义了e j b 组件的一些实现约定。e j b 组件的创建者、使用者和部署者都要根据这 个规范来进行各自的任务处理。e j b 规范主要包含下面两个关键协议。 】客户视图协议 这是客户端和容器之间的约定,是利用e j b 组件技术开发客户端应用的开发模 型。它有以下三个要求。 ( 1 ) b j b 容器为每个组件对象产生一个唯一的标识。对于s t a l e l e s s s e s m o n b e a n 来说,它们是没有状态的,同一个组件的所有对象都是样的,也就 不用使用标识进行区分。而对于s t a t e f u ls e s s i o n b e a n ,它们要保存客户的会话状 态,每个组件对象都是不同的,需要利用标识进行区分。但这个标识对象仅供容器 内部使用。e n t i t y b e a n 要求容器为每个对象产生一个主键,用于标识不同的对象, 这些主键可供用户检索不同的对象。 ( 2 ) 每个e j b 组件都有一个与之对应的远程接口,它定义了e j b 组件的商业逻 辑方法。该接口由e j b 容器实现,由该类形成的对象称为远程对象,可以看作是e j b 华中科技大学硕士学位论文 组件在客户端的代理类。当用户通过 n d i 服务查询e j b 组件时,f f j b 容器就会提供 该e j b 组件的远程对象。当调用远程对象的方法时,由e j b 容器去调用相应的e j b 组件方法,并把结果返回给远程对象,由它再返回给用户。 ( 3 ) 每个e j b 组件都有一个与之对应的h o m e 接口,它定义了些用于产生e j b 远程对象的方法,该接口也是由e j b 容器实现,由此类形成对象称为本地对象,用 来产生远程对象。 2 组件协议 这是组件和容器之间的约定,主要是定义了一些接口,用以组件和容器之间的 交互。容器利用这些接口方法来对组件的状态进行跟踪管理,并在一些情况下通知 组件进行适当的处理。组件利用这些接口方法来获取当前运行环境的一些信息,并 可以利用这些方法来访问容器所提供的底层服务。这些接口方法对于不同的组件类 型其实现方式是不同的,譬如无状态会话b e a n 毋须保存组件对象的状态,那么客户 在实现会话b e a n 组件类时,就不必实现e j b p a s s i v a t e 和e j b a c t i v a t e 这两个和状 态有关的方法了。 1 2 2e j b 容器中主要关键服务 e j b 组件框架规范是s u n 公司推出的j 2 e e 体系结构的基石。e j b 技术与其他j 2 e e 技术相互结合,为企业级应用系统的开发提供了一个安全、可靠、灵活以及伸缩性 很强的丌发平台1 。设计e j b 体系结构的目的是使企业应用开发人员将注意力集中 于编写商务逻辑,而不需过多考虑一些诸如分布式处理、事务、安全管理等底层的 代码丌发,因为e j b 体系结构将这些任务委托给服务器厂商来完成。 e j b 容器根据e j b 体系结构的要求为e j b 组件提供所需要的底层运行环境。在 一个容器中可以同时运行多个组件,容器管理这些组件,容器和组件之间的交互是 通过调用组件预留的方法来实现的。这些方法只有容器可以调用,容器在某些事件 发生时,利用它们来通知e j b 组件。e j b 容器的主要任务是为e j b 组件提供运行环 境。当客户远程调用时,e j b 容器加载组件,保证组件处于运行状态。而且,容器 还负责把客户与e j b 组件相连接,进行各种请求服务。容器为e j b 组件提供以下五 种关键服务。 1 组件生存期管理 4 华中科技大学硕士学位论文 e j b 容器负责控制已部署的组件的生存期。当有客户请求发生时,e j b 容器准确、 动态地实例化组件。当客户请求某种类型的组件时,而内存中还没有这种组件对象, 这时,f i j b 容器就会把该组件类调入内存中,并实例化一个该组件的对象,响应客 户请求。当用户会话结束之后,e j b 容器负责把这个对象进行销毁。 考虑到对象的实例化过程和销毁过程都比较耗费资源,一些e j b 服务器采用剥 象缓冲池的方式来管理这些对象1 。在客户请求时,首先查看缓冲池中是否有满足 条件的组件对象,如果有,那么就把现有的组件对象分配给客户使用,否则实例化 一+ 个新的对象。客户会话结束之后,组件对象1 i 是马上被销毁,而是存放在缓冲池 中供以后使用。只有当缓冲池满时,才真正销毁那些闲置的对象。 2 状态管理 用户在使用组件时,不同的方法调用之间可能会有较长的空闲时间间隔。如果 所使用的组件是无状态的,容器就会在其空闲期间,把组件对象动态地分配给其他 萨在等待的用户使用。当客户重新调用下一个方法时,容器会给他重新分配一个组 件对象。 如果组件是有状态的,e j b 容器必须为组件提供透明的状态管理。如果一个客 户较长时间没有使用状态组件,这时,一个新的客户连接请求组件服务,而容器可 能达到实例化组件对象的上限,那么容器就只好先把这个组件对象所保存的状态进 行序列化,并把状态写入磁盘。这样组件对象的状态就被保存下来,而这个组件 对象就能被再分配给不同的客户,从新的客户获取新的状忿。当原来的客户需要继 续执行请求时,原来客户的状态可以从磁盘中读出来继续使用。 3 事务服务 事务是解决多组件参与的分布式计算的一种安全措施。调用者可以保证组件调 用要么全部成功,要么全部失败。无论哪种状态,系统都能到达一个可知的状态。 为了较好地实现事务处理机制,e j b 框架采用了两个a p i :j a v a 事务处理a p i ( j t a “”) 和j a v a 事务服务a p i ( j t s ”) 。j t a 是应用程序用以控制事务的较高层次的事务处 理接口,如果客户想对事务进行明确的处理,那么就可以在应用中或组件类的实现 代码中使用这种a p i 1 。 e j b 容器通过实现j t s 接口柬提供底层事务服务,应用程序不直接与j t s 相互 作用,而是采用声明的方式来使用底层提供的事务服务”“。 4 安全服务 _ _ 一一 华中科技大学硕士学位论文 在任何重要的部署中,安全性是非常重要的问题。e j b 容器在安全机制中的角 色是验证用户的身份,并对验证用户进行授权以便其能执行某个操作。e j b 容器将 用户的凭证与他们所声明的身份进行验证,一旦用户通过验证,容器将映射陔身份 至e j b 应用程序开发人员或部署者所定义的逻辑角色“3 。该角色所具有的权限也 就赋予了这个验i i e m ) 一。在调用某个方法时,容器就会验证该用户所在的角色是否 具有凋用的权限。 e j b 容器提供了透明的安全机制,用户可以通过声明的方式来使用底层安全服 务。当然,有的安全验证是动态的,需要根据当时的数掘和上下文,这时,用户可 以通过编程的方式在程序中进行明确的处理。 j 远程访闽和透明的资源定锰 远程访问能力是将基于特定网络的组件转化为基于任何网络的组件,使得组件 可以被远程调用。e j b 容器让组件供应商不必考虑任何网络问题,组件完全可以按 照独立的、非网络化的形式编写。然而,一旦它们被部署到e j b 容器中,就变成了 分布式的组件,可以在多层体系中进行部署。 e j b 容器使用j a v ar m i 协议实现远程方法调用,这样组件可以在任何位置被定 位”o 。不管组件是在远程还是本地,对客户来说都是样的,因为组件都位于j n d i 服务所提供的命名空间中,它们的实际位置是透明的。这样客户不仅无需专门编写 代码来进行特定的部署定位,而且提高了系统的容错能力。 i 、2 3 国内外相关产品发展概况 2 3 1e j b 技术的发起与发展 在推出j a v a 后,s u n 公司很快就意识到j a v a 语言在服务器端的巨大潜力并 行始发布了几个为服务器端应用部署提供企业级服务的a p i 。这些服务包括命名目 录服务( j n d i ) 、事务服务和e j b t 0 规范“。e j b i 0 规范非常简单。它只提出了 s e s s i o n b e a n 规范,e n t i t y b e a n 只是可选的,仅仅规定了事务和安全两种服务。 它的出现主要是为业界提供一个参考的服务器端组件模型。僵这时已经引起了广泛 的关注收到了很多获取许可的申请。随后,s u n 公司紧跟着发布了e j b i 】规范, 它主要是解决1 0 中出现的规范歧义、缺乏一致性等问题,并正式规定利用x m l 文 华中科技大学硕士学位论文 档对e j b 部署进行描述,取代1 0 中的可序列化部署描述方式”3 1 。而且,s u n 公司 将j a v a 的企业级a p i 捆绑起来,形成一个新的应用开发平台j 2 e e ,提供用j a v a 语音) r 发服务器端企业绒应用的丌发环境。 随着支持e j b 技术的应用服务器的出现,客户在实际的应用中提出了更高的要 求和建议。s u n 公司整理这些要求和建议之后,于2 0 0 0 年6 月发布了e j b 2 0 规范, 它埘e j b 框架中的各个角色进行了更为严格的规定,同时提出了一种新的c m p 组件 模型,并引入了m d b 的概念“。e j b 2 0 规范的出现标志着e j b 技术的成熟。在2 0 0 3 年发布的e j b 2 1 规范中,增加了一些支持w e bs e r v i c e 的内容,同时也对消启、b e a n 做了进一步的规定。 1 2 3 2 支持e j b 技术的主要产品 在e j b l 0 完成后的几个月中,第一个基于e j b 的应用服务器b e a 公司的 w e b l o g i e ”开始出现在市场上。除了应用e j b l 0 技术以外,这个产品使用了企业 级a p i 提供的命名目录服务、事务服务以及数据库操作。早期的应用服务器产品对 s u n 公司来况,更多是作为对企业级a p i 进行反馈和评估的实验产品。随着e j b 技 术的不断发展,w e b l o g i c 目前已经发布8 1 版本了,它是目前最流行的应用服务器 之一。它不仅实现了e j b 2 1 规范,而且还实现了其他企业级a p i ,是一个与j 2 e e l 4 平台完全兼容的产品。 随着e j b 技术在服务器端的应用日益增加,i b m 公司也开始涉猎这一领域。i b m 首先发布了其应用服务器w e b s p h e r e “”3 1 ,这个版本是对e j b l 1 规范的实现,并 且还实现一些辅助的企业级a p i 。在e j b 2 0 发布之后,i b m 对w e b s p h e r e 进行了彻 底的改造,除了实现e j b 2 0 之外,还完整实现了j 2 e e l 3 所要求的所有规范,这时 w e b s p h e r e 的版本为4 1 。i b m 不仅提供了应用服务器,它还针对e j b 组件技术发布 了一整套集开发、部署和管理于一体的软件包。在2 0 0 3 年,i b m 发布了w e b s p h e r e 5 1 版本,它主要是升级了j 2 e e 平台中的其他a p i ,而对于e j b 容器没有进行升级,只 是增加了集群的功能。 w e b l o g i c 和w e b s p h e r e 都是商业产品,其实现方案和技术细节都是保密的,而 且这两个应用服务器对系统的要求很高。于是就出现了开源的、轻型应用服务器 j b o s s 。“,刚开始时它采用组装的方式,把些丌源项目软件组成一个大系统。这 _ _ 华中科技大学硕士学位论文 个系统可以提供j 2 e e 常用的功能,但是软件之间的耦合很粗糙,配置起来也比较复 杂。从j b o s s 3 0 丌始采用微内核的组织方式,将e j b 作为整个软件的核心,其他 a p i 都为e j b 服务。目前,j b o s s 已经成为最流行的个人丌源应用服务器平台。 金蝶公司是国内最早进行e j b 技术研究的公司,它在研究了s e a 的w e b l o g i c 、 i b m 的w e b s p h e r e 后,开始自行开发具有自主知识产权的中间件。于2 0 0 0 年1 1 月 正式推出a p u s 沁汹3 应用服务器1 o 舨。这种服务器和金蝶公司的e r p 软件结合的很 紧密,是以交易管理为核心的。 13 课题主要研究工作 前面所提到的这些应用服务器除了实施标准的规范之外,每种应用服务器都实 现了自己特有的服务。这样做可以提高系统的性能,能够满足更高要求的应用需求。 但是这也致使用户所开发的应用失去了可移植性,同时e j b 规范中所定义的应用服 务器供应商和e j b 容器供应商之间的区别变得模糊了。 我们开发d m e j b 容器系统是希望通过实现e j b 规范来为那些需要e j b 支持的应 用提供服务,并期望能够设计出一种灵活的框架结构以便扩展新的功能。d m e j b 容 器将是由多种类型的子容器所组成的一个容器系统,它根据客户的部署描述来加载 底层服务。 d m e j b 容器系统将实现下面五种技术: 1 严格区分应用服务器和e j b 容器在j 2 e e 平台中的角色,让e j b 容器仅仅为 e j b 组件提供运行环境和服务支持,不实现j 2 e e 平台的其他企业级a p i : 2 提供一组通用的客户访问接口,以适于各种e j b 应用或服务在分布式环境 下透明地访问组件; 3 将容器的核心部分与底层服务分开,由容器管理器根据客户的部署描述加 载适当的服务; 4 实现对s e s s i o n b e a n 的支持,实现对组件对象的缓冲管理和生存期管理; 5 提供安全服务、事务服务以及数据库连接管理服务。 本课题在研究e j b 规范白皮书的基础上,参考多家应用服务器的实现策略,设 计和实现种新型的、模块化的e j b 容器框架结构。它应具有模块化、可配置、易 扩展等特点。 华中科技大学硕士学位论文 2 d m e j b 容器系统的总体设计 本章在论述了不同设计策略的基础上,描述d m e j b 容器系统的总体设计。内容 包括:容器的总体功能模块划分,应用服务器一容器接口和容器一服务接口的设计, 以及容器系统的总体模块化结构模型。最后简要介绍了组件在d m e j b 容器系统中的 配置。 2 1 州一e j b 容器系统的总体结构 e j b 组件技术为企业计算提供了一个灵活的服务器端组件模型,它明确定义了 客户视图协议和组件协议。按照这两种协议所开发的组件可以运行于任何e j b 兼容 服务器中,提高了应用开发的效率和代码的可移植性及重用性。可这种灵活性是从 组件的角度和e j b 应用的角度提出,对于位于组件和上层应用之间的应用服务器却 没有明确划分其功能。 目前,市场上的应用服务器大部分都是对整个j 2 e e 平台进行集成实现。j 2 e e 平台从功能上可以划分为两个大的组成部分:w e b 服务器和e j b 服务器。w e b 服务器 是为j s p 和s e r v l e t 技术提供支持,主要为表示层服务的;e j b 服务器主要提供e j b 组件运行环境,负责同底层的服务器系统进行交互,为逻辑事务层服务”。大多数 应用服务器都实现了这两个服务器的主要功能,提供了一个完整而庞大、复杂的 j 2 e e 服务平台。如果采用这种设计方式,那么在构建d m e j b 容器系统的初级阶段 就要考虑许多问题,而且各个模块之间耦合得比较紧密,需要从头编写所有的代码。 为了充分利用现有的资源,使得各个开发人员专注于自己的功能模块,我们在设计 的过程中,参考了j b o s s 3 0 的微内核设计思想,采用了松耦合的模块化设计方式, 将d 叱e j b 服务器分成多个部分来实现。 我们构筑d m e j b 容器系统的目的是将e j b 容器从应用服务器中划分出来,单独 实现一个满足e j b 组件技术要求的、纯粹的“e j b 服务器”,而不管应用服务器所应 该实现的其他服务要求。要实现上述目标,我们需要解决以下三个基本问题: 1 应用服务器在e j b 容器系统中的角色; 华中科技大学硕士学位论文 2 容器管理器在e j b 容器系统中的角色; 3 应用服务器和容器管理器之间的交互。 应用服务器在e j b 容器系统中的角色就是实现j a v a 命名目录服务,使得客户可 以蛮询、调用e j b 组件。同时为了减少容器系统的负担,应用服务器还要实现e j b 规范中的客户视图协议,实现e j b 组件的远程接口和h o m e 接口”。1 。】。当客户调用远 程对象中的方法时,应用服务器把调用传递给e j b 容器中相应的e j b 组件。应用服 务器和容器管理器之间的交互是通过c p i 接口来实现的。 e , j b 容器营理器主要管理组件的生存周期、状态,并结合底层的安全、事务服 务乘执行商务逻辑方法。在e j b 容器系统内部把管理组件的部分和提供服务的部分 划分开_ 3 “,它们之间通过s p i 接r ! 来进行交互; 按照具体实现的功能,我们把d m e j b 容器系统划分为三个主要的部分,分别是 应用服务器部分、容器管理器部分和服务提供者部分。如图2 1 所示。 容 卜里一。嚣笔裂。 器管理器 s t a t e l e s s 童亘- s e s s i o n b e a n e r v i c ep r o v i d e r f s p i 接 安拿服务 ! 连接服务 f 事务服务 幽2 1d m _ e j b 容器系统的功能示意图 上面的功能示意图给出了系统的总体功能划分。每个部分的设计都是根据模块 化设计的思想分成多个模块,每个模块分别实现一个独立的功能,模块之间的依赖 关系比较弱,可以灵活增、减模块。下面我们将根据系统具体实现的各个功能模块 l o 华中科技大学硕士学位论文 来对整个系统作进一步的描述,如图2 2 所示,同时给出每个部件的功能概述。 j1 1 l 系统组装模块l ij n d f * 理模块i l 对蓦缓冲管理i j 事务服务模块l i 模块 i j 远程对象的代j l 理管艘模块ii 对象状态管理i i 安全服务模块f l 模块 i 远柙i | :;1 厢管圳i :秆+ # h h4 - * hi 模块 1 事务管理模块i 一 应用服务器部件i 安全管理模块i 服务部件 i 连接管理模块l 容器管理器部件 d l f _ j u g 器服务器 访问d m 数据库 图2 2d m e j b 容器系统总体模块结构图 1 应用服务器部件 应用服务器部件是对应用服务器一容器接口( c p i ) 的实现。它的主要功能是为客 户访问e j b 容器提供一个通用的接口。为了让客户能够透明地访问e j b 组件,应用 服务器部件通过实现j 2 e e 的j n d ia p i 来提供命名目录服务,该服务主要是提供一 个上下文工厂,用于产生可以检索组件h o m e 对象的初始上下文“3 。 根据e j b 规范的要求,e j b 容器要为e j b 组件实现h o m e 接口和远程接口。h o m e 接口和远程接口都继承了远程方法调用( r m i ) a p i 中的r e m o t e 接口,因此这两个接 口也要遵循r i 框架要求:为所有的远程接口产生存根( s t u b ) 和框架( s k e l e t o n ) 。 这罩的存根和框架是r m i 用于进行网络通信的框架类”。在通常的r m i 应用中,存 根和框架可以通过j d k 自带的r m i e 工具来产生。当客户需要调用远程接口实现类中 的方法时,需要把该远程接口的存根放到客户的类路径中。客户实际调用的是存根 中的方法,由存根把方法调用传递给服务器端的框架,框架再把要调用的方法映射 _ - _ _ _ - - _ _ - _ _ _ _ _ _ _ _ _ - _ _ - - - - _ _ _ _ - - _ _ _ _ _ _ _ _ _ _ 一一一 华中科技大学硕士学位论文 到实现类的对应方法上。返回结果是按照框架一存根一客,、的顺序进行传递的。方法 的参数和返回值都要经过网络传递,这就需要参数和返回类型都是可序列化的。为 了减少网络负担,同时也考虑到客户身份的验证过程,我们根据r m ;远程调用框架 的原理,在实现h o m e 接口和远程接口的过程中,将它们的存根和框架也起实现了, 都放在应用服务器部件中。 2 ,容器管理器部件 容器管理器部件的功能主要是管理系统中的各个容器,并负责把应用服务器部 件所f 递来的方法调用指派给容器中的组件,同时还负责为各个容器提供所需的服 务支持。g j b 规范从实际出发,根据不同的商业逻辑,把组件划分为会话 b e a n ( s es s i o n b e a n ) 和宴体b e a n ( e n t j + y r o 目n ) :这两种r p a n q 的区别在于会j 舌r p a n 的生存周期仅为用户会话期间,用户会话结束,会话b e a n 就应该被销毁:而实体 b e a n 的生存周期比较长,可以看作是底层数据在内存中的视图。只要底层数据不变, 那么对应的实体b e a n 也就不会改变。另外,会话b e a n 只能同时和一个客户进行会 话,而实体b e a n 同时可以为多个客户服务。因此,在实际应用中会话b e a n 主要用 于表示商业逻辑过程,而实体b e a n 主要用于表示商业数据”1 。在会话b e a n 内部, 根据客户会话过程中是否需要保持会话状态而划分为有状态会话b e a n ( s t a t e f u l s e s s i o n b e a n ) 和无状态会话b e a n ( s t a t e l e s ss e s s i o n b e a n ) 。 随着b j b 应用的增加,会有更多类型的组件出现。由于每种组件所要求的运行 环境和服务都是不尽相同的,同时也考虑到系统框架的可扩展性,我们为每种组件 提供不同的容器。在部署组件时,e j b 规范要求部署描述文件说明组件的类型, 容器管理器根据部署描述来仅仅实例化那些组件需要的容器,而且会根据组件的不 同类型描述而把它们分别放到相应的容器中。在这种框架下,系统具有很强的可扩 展性:当有新的组件类型出现或者对现有的某个容器进行修改,新容器的加入或原 容器的修改都是局部的,不会影响到别的容器。 3 服务部件 e j b 规范要求e j b 容器为组件提供透明的底层服务支持。这些服务包括持久性 服务、事务服务、安全服务等。本文只涉及事务服务、安令服务和数据库连接管理 服务。 e j b 容器管理器中包含着多个g j b 容器,每个容器所要求的服务是不尽相同的。 譬如通常情况下,会话
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 间出租全套物品合同范本
- 税务服务类合同补充协议
- 福田指标房买卖合同协议
- 美术培训授课合同协议书
- 笔记本定制采购合同范本
- 生产安全施工协议书模板
- 混凝土地泵租赁合同范本
- 电子合同买卖协议书范本
- 精装房材料工程合同范本
- 股东借款给公司合同范本
- 游乐场游乐园安全生产责任制
- ISO∕IEC 27014-2020 信息安全、网络安全与隐私保护-信息安全治理(中文版-雷泽佳译2024)
- 安徒生童话《枞树》
- GB/T 44127-2024行政事业单位公物仓建设与运行指南
- 房产测量规范
- 水利工程(水电站)安全生产风险分级管控体系方案全套资料(2021-2022版)
- 建筑抗震设计标准 DG-TJ08-9-2023
- 20KV及以下配电网工程建设预算编制与计算规定
- 胆管瘘的护理查房
- 食品质量与安全教材
- IT类必备图标素材库
评论
0/150
提交评论