




已阅读5页,还剩50页未读, 继续免费阅读
(计算机应用技术专业论文)ejb+server的实现技术研究及一些改进.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
e j bs e r v e r 的实现技术研究及一些改进 摘要 s u n 公司发布的e j b 是一个主流的分布式构件规范,其应用越来 越广泛。所谓的e j bs e r v e r 是指符合e j b 规范的,由各个独立软件 厂商自行开发的e j b 构件运行平台。f 作为上海市科技发展基金项目 尸 “e j bs e r v e r 技术研究”的一部分,本文研究了e j bs e r v e r 的 , 实现技术,提出了一种基于x m l 实现p e r s i s t e n c e 的新方法,并且 基于s o a p 在e j b 调用方面对e j bs e r v e r 进行了功能扩展。 本文首先对e j b 规范进行孑分析,并着重深入分析了e j b 规范 中的p e r s i s t e n c e 的机制和e j b 远程调用机制。 在此基础上,本文研究了e j bs e r v e r 核心功能的实现技术,并给 出了一个具体实现。然后本文对一个完整的开发源码的e j bs e r v e r j b o s s 进行了深入剖析,对 b o s s 代码组织和构成进行了详尽 的分析,并且提出了在j b o s s 基础上进行二次开发的方法。 考虑到资源占用和异种数据平台之间的可交换性,本文进一步提 出了一个基于x m l 实现p e r s i s t e n c e 的设计方案,并且给出了具体 的实现。 为了使得各种不同平台的客户端能以统一的方式调用e j b ,本文 对e j bs e r v e r 的功能进行了扩展,提出了在e j bs e r v e r 上实现基于 s o a p 的e j b 调用的设计方案,并且给出了一个具体的实现。 本文还给出了一些应用实例以测试对e j bs e r v e r 的功能扩展。测 试结果表明,本文对e j bs e e r 的功能扩展是可行并有效的) 。 关键宇分布式构件,e j b ,p e r s i s t e n c e ,x m l ,s o a p t h e im p l e m e n t a tio nt e c h n o l o g yo fe j bs e r v e r a n ds o m elm p r o v e m e n t a b s t r a c t t h ee j bs p e c i f i c a t i o np u b l i s h e db ys u nm i c r o s y s t e m ,i n ci so n eo ft h e m a i n s t r e a mo fd i s t r i b u t e d ,e o m p 笾n e n tt e c h n o l o g y e j bh a saw i d e ra n d w i d e r a p p l i c a t i o n n o w t h es o c a l l e de j bs e r v e ri st h e r u n t i m e e n v i r o n m e n to fe j bw h i c hi sc o n f o r m e dt ot h e s p e c i f i c a t i o n a n d i m p l e m e n t e db y t h ei s v s a sap a r to f s h a n g h a is c i e n c ea n dt e c h n o l o g y d e v e l o p m e n tf i m d i n gp r o j e c t , r e s e a r c ho f e j bs e r v e rt e c h n l o g y ”,t h i s a r t i c l er e s e a c h e dt h e i m p l e m e n t a t i o nt e c h n o l o g y o fe j b s e r v e r , p u t f o r w a r dan e wm e t h o dt oi m p l e m e n tp e r s i s t e n c eb a s e do nx m l ,a n d e x t e n d e dt h ee j bi n v o k a f i o n 如n c t i o n so fe j bs e r v e rb a s e do ns o a p f i r s t ,t h i sa r t i c l ea n a l y s e dt h es p e c i f i c a t i o no fe j b ,a n dw e n tf u r t h e r 。 o n p e r s i s t e n c ea n d r e m o t ei n 审o k a t i o no f e j b o nb a s e do ft h i s ,t h i s a r t i c l er e s e a r c h e dt h e i m p l e m e n t a t i o n t e c h n o l o g yo ft h e c o r ef u n c t i o no fe j bs e r v e r , a n dg i v ead e t a i l e d i m p l e m e n t a t i o n t h e nt h i s a r t i c l ea n a l y s e dac o m p l e t e ,o p e ns o u r c ee j b s e r v e r , j b o s s ,s h o w e d i t sc o d eo r g a n i z a t i o na n di t sd e t a i l e ds t r u c t u r e ,a n d p u tf o r w a r ds o m em e t h o d st om a k e s o m ef u r t h e rd e v e l o p m e n tb a s e do n j b o s s c o n s i d e r i n gt h er e s o u r c ec o m s u m i n ga n d t h ee x c h a n g a b i l i t yb e t w e e n d i f f e r e n td a t ap l a t f o r m ,t h i sa r t i c l e p u tf o r w a r d ap l a nt o i m p l e m e n t p e r s i s t e n c e b a s e do ns o a p , a n d g a v e ad e t a i l e di m p l e m e n t a t i o n b e c a u s ei ti sw a n t e dt h a tc l i e n t so nd i f f e r e n tp l a t f o r m sc a ni n v o k e e j bi na nu n i f o r m e dw a y , t h i sa r t i c l ee x t e n d e dt h ef u n c t i o n so ft h ee j b s e r v e r t h i sa r t i c l ep u tf o r w a r dap l a nt oi m p l e m e n te j bi n v o k a t i o nb a s e d o ns o a p , a n d g a v e ad e t n l e d i m p l e m e n t a t i o n t h i sa r t i c l e g a v es o m ea p p l i c a t i o n s t ot e s tt h ee x t e n s i o n so fe j b s e r v e rs h o w e da b o v e t h er e s u l t ss h o w e dt h a tt h ee x t e n s i o n sa r ef e a s i b l e a n de f f e c t i v e k e yw o r d sd i s t r i b u t e dc o m p o n e n t ,e j b ,p e r s i s t e n c e ,x m l ,s o a p , 上海交通大学 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 同意学校保留并向国家有关部门或机构送交论文的复印件和电子 版,允许论文被查阅和借阅。本人授权上海交通大学可以将本学位 论文的全部或部分内容编入有关数据库进行检索,可以采用影印、 缩印或扫描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于。 不保密团。 ( 请在以上方框内打“”) 学位论文作者签名:扬眸 指导教师签名: e t 期:年月日日期:妒参年月日 上海交通大学 学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下 独立进行研究工作所取得的成果。除文中已经注明引用的内容外, 本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。 对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式 标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:柄晔 日期:年月日 上海交通大学硕士毕业论文 e j bs e w e r 的实现技术研究及一些改进 1 1 研究背景 第一章绪论 1 1 1 传统的0 1l e n t - s e r v e r 模型及其缺陷 传统的客户一服务器软件开发方法是二层结构模型( t w o t i e r s ) ,其主要的 特点如下:首先,二层结构是将数据库放置在一集中式的服务器上,所有的客 户直接与其相连,随着客户数量的增加,就会导致服务器性能的下降。其次, 二层结构的客户端的每个客户均需预装部分的应用程序,当环境发生改变 时,这些预装程序都必须升级。此外,还有许多包括象安全认证、以及瘦客户 等新的软件要求均很难实现。 早期的应用程序都是这种2 - t i e r 的,也就是通常所说的c l i e n t s e r v e r 结构。 在这种程序结构下,服务器端唯一能提供的s e r v i c e 通常只有d a t a b a s es e r v e r 。 这样,c l i e n t 端需要负责数据库连接,实现程序逻辑( b u s s i n e s sl o g i c ) ,响应 用户界面( g u i ) 等等众多的工作。这样对于c l i e n t 端的计算要求就会很高。 除此之外,c l i e n t s e r v e r 结构的应用程序比较难以升级和更新,这是因为通 常c l i e n t - s e r v e r 结构的应用程序都是基于一个特殊的通信协议的。同时,程序 的重用变得几乎不可能。最后,由于i n t e r n e t 的广泛使用,分布式应用程序必须 要有良好的可扩展性,以适应尽可能多的用户同时使用,但传统的c l i e n t - s e r v e r 结构的应用程序很难做到这一点。 1 1 2n t i e r 的软件模型 人们对软件开发提出了很多新的要求,比如: 1 ) 瘦客户端:指将应用的运行逻辑全放在服务器端,而客户端只需安装极少 量的支持软件即可。服务器端执行各种运行逻辑,以及对数据库的读写控制 等。 2 ) 松耦合:指通过分布于网络的各种服务( s e r v i c e ) 来构成整个应用系统, 而非限定于单一的客户机和服务器上。 3 ) 构件化:这是面向对象软件工程的要求,即 在这样的背景下,一种三层结构模型( 3 - t i e r ) 被提出了。它的主要概念就是 改进了标准的客户机、服务器的概念,相比之二层结构,三层结构的优点在于: 提高可扩充性由于它是多层公布式的,因此没有扩充限制,只要设计合理, 那么只需加入服务器便可支持更多的客户 提高性能应用程序能更好的利用多线程,多处理器的系统,并能共享紧缺 资源,如进程,线程,数据库等服务器可方便的加入也使提高性能变得较 第3 如共5 2 负 上海交通大学硕士毕业论文 e j bs e r v e r 的实现技术研究及一些改进 为容易 提高可靠度通过设置几层的冗余信息,可消除网络中的瓶颈或单个节点的 出错因此可用于支持关键数据的操作 易管理由于三层结构是”瘦”客户端,因此当环境发生改变时,修改,扩充 及升级仅发生在服务器端,客户端基本上无需作变动 更灵活主要的应用逻辑是由小的模块化的构件来实现的,被封装在抽象的, 很好定义了的接口里,代码的修改不会涉及到接口的改变,部分的变动不会 影响到整体结构 w o r a 平台无关性使之可应用于不同的系统,不必任何修改,便可做到一 次编写,随处运行 事实上,这样的3 层结构可以容易地扩充到n t i e r 的软件结构。开发人员可 以将不同种类服务分布在不同的服务器上,但是这些模块可以通过网络进行协 同工作。 1 1 3 分布式构件技术的发展现橼、 所谓构件,也就是软件开发遵从模块化的设计和编码原则,是一段实现了 一些特定接口的代码,它是一段独立的程序逻辑( b u s i n e s sl o g i c ) 。构件并不 是一个独立的软件,它无法直接运行,而是用来构建大型程序的程序模块。通 过模块化设计和开发的软件,由于模块间的接口清晰,便于调试及管理,而且 改变了以前软件几乎无法重用的状况,将重用性提高到了模块级。一个大型的 企业可以直接购买一个定义良好的构件,和其他的模块集成在一起解决。 构件开发提高了软件的可重用性和可管理性,很好地解决了软件开发中所 遇到的危机,是软件工程中的一个重要概念。j a v a b e a n s 软件构件继承了j a v a 的平台独立性和简单性这2 个标志特性,从而成为了一个极具竞争力的构件标 准。 而分布式构件可以轻易地实现n - t i e r 的软件结构,使得所有的功能模块以分 布式构件的形式存在于网络上,并且可以透明地通过网络进行访问,实现协同 工作,所以分布式构件就成为了n t i e r 软件结构的基础之一。 s u n 公司在考虑了以上的问题后,提出了j 2 e e 的规范,制定了一套开发n t i e r 应用程序的标准。其中包括了一个分布式的构件标准( e j b ) ,以及支持该构件 技术的s e r v i c e ,以及管理和控制这些构件的协议( 如多线程支持、安全协议和 数据库连接池技术) 。 在s u n 公司提出的j 2 e e 规范中,最基本的就是e n t e r p r i s ej a v a b e a n s ( e j b ) 规范。e j b 是添加了企业级特性( 如t r a n s a c t i o n ( 事务处理) 、2 4 + 7 不间断服务、 安全认证等等) 的j a v a b e a n s 构件规范的分布式版本。从根本上来说,它是一 种分布式构件。 e j b 是一种服务器端的构件规范,它能够简化基于j a v a 的企业级分布式构 件的开发。通过使用e j b ,我们可以编写可扩展的( s c a l a b l e ) 、可靠的( r e l i a b l e ) 、 安全的应用软件,而无需编写复杂的分布式构件的框架。e j b 还是服务器端的 快速软件开发工具,人们可以快速而容易的将使用j a v a 编写的企业级框架包装 成服务器端的分布式构件。而且,e j b 被设计成一个可以支持应用程序的可移 动性及可重用性,而且e j b 规范也可以使用任何的企业级中件( m i d d l e w a r e ) 系统。 第4 页,共5 2 页 上海交通大学硕士毕业论文 e j bs e r v e r 的实现技术研究及一些改进 由e j b 规范所支撑起的j 2 e e 规范,实际上将应用程序分成c l i e n t 端、w e b 服务器、数据库服务器、应用程序服务器等几大部分,真正实现了m u l t i t i e r , 以及相应的应用程序的可重用性。 最重要的是,这一切都建筑在j a v a 语言的基础上,所以有j a v a 语言的切 好处,包括跨平台、多线程支持和良好的语言结构。可以预见,j 2 e e 技术将大 大促进n t i e r 架构应用软件的五发。 当然,在现在除了e j b 这一分布式构件规范之外,还有o m g 组织的c o r b a 技术和微软的d c o m 技术【5 。它们各自有各自的优点和缺陷,并且在自己的领 域中占有重要的地位。比如c o r b a 的面向对象开发的能力比较弱,可是凭着 它的良好的跨语言的特性,在一些必须使用c 、c o b o l 或其他语言的场合下, 有着很高的占有率。而微软的d c o m 分布式构件标准在w i n d o w s 系列平台产 品上很受欢迎。 1 1 4 论文工作的背景 目前,基于分布式构件的软件开发正被曰益重视,那么,开发一个功能强 大的e j bs e r v e r 将可以提供一个可行的分布式构件的运行平台。而且,只需要 符合s u n 公司发布的e j b 规范,则在其上开发的e j b 构件可以在任何其他符合 e j b 规范的服务器上重用。 目前虽然有一些商用的e j bs e r v e r ,但是基于上述的理由,我们完全可以开 发一个e j bs e r v e r 与其共存。而且作为一个运行平台来说,用户往往需要个 拥有其想要的功能的e j bs e r v e r ,即除了标准的e j b 分布式构件的支持之外, 还需要有额外的对某些特定阪新技术的支持,比如开发人员希望可以在e j b s e r v e r 中使用v i l 技术来进行异种数据格式系统之间的数据通讯等等。 在这样的需求状况下,我们研究e j bs e r v e r 的实现技术并且扩展e j bs e r v e r 的功能,使其支持一些新的技术以达到些新的需求,非但是必要的,而且是 有意义的。 本论文的工作是上海市科技发展基金项目“e j bs e r v e r 技术研究”的一 部分。该项目已经通过了上海市科委的验收。 1 2 研究内容 事实上,e j b 规范以及j 2 e e 规范都是s u n 公司所提出的规范,它通过一系 列的接口和协议所组成。s u n 公司和其他一些协作厂商共同制定这些规范,仅 仅规定了各种s e r v i c e 之间的连接和一些公开的接口,而将各个部分的具体实现 留给了各大厂商。s u n 公司也提供了一个参考实现( r e f e r e n c ei m p l e m e n t a t i o n ) 。 每个厂商可以承担不同的r o l e ( 角色) ,即完成其中的若干部分的功能,作为 产品推出。由于所有的厂商都共同遵守j 2 e e 的规范( 或e j b 规范) ,使得各个 厂商的产品可以通过公开的接口去访问其他厂商的产品。 由于j 2 e e 这样的设计思想卜使得我们可以实现一个自己的j 2 e es e r v e r ,实 现其中一部分的功能。只要我们的实现符合s 面公司所提出的标准规范,就可 以保证它是可用的和可与其他j 2 e e 产品集成的。 事实上,我的目的是实现一个e j bs e r v e r 。因为e j b 规定了分布式构件的 第5 页共5 2 页 上海交通大学硕士毕业论文 e j bs e r v e r 的实现技术研究及一些改进 规范,是j 2 e e 规范的核心,而其他的j 2 e e 规范均是添加了一些企业级应用的 特性,比如安全认证、数据库连接等等。 同时,由于现在i t 业界技术的发展,一些新的技术也纷纷出现。作为一个 e j bs e r v e r ,我尝试着将这些新的技术集成进e j bs e r v e r 中去,作为其对e j b s e r v e r 的扩展。 具体的任务如下: 研究e j b 作为一个远程构件其调用的本质,并且实现一个简单的s e r v e r 来 体现该本质; 研究e j b 规范,并且分析一个符合其规范的o p e ns o u r c e 的e j bs e r v e r j b o s s ,并且分析并理解其代码结构,将它作为我们的e j bs e r v e r 的基础; 实现我们的e j bs e r v e r 的x m lp e r s i s t e n c e 的扩展,使得p e r s i s t e n c e 可以将 e j b 的信息保存到一个x m l 文件中去而不是缺省的数据库中; 实现我们的e j bs e r v e r 的s o a p 接入的扩展,使得我们的e j bs e r v e r 能够 支持s o a p 格式的方法调用。 1 3 章节安排 本文第二章着重介绍了e j b 规范中的一些基本概念,并且就其中一些概念 做了更深一步的分析。 本文第三章分析了e j b 作为一个分布式构件的远程调用的基本的实现技 术,并且给出了一个e j b 环境的实现:然后介绍了一个o p e ns o u r c e 的e j b s e r v e r m o s s ,分析了其代码结构,将其作为我们的e j bs e r v e r 的开发基础,同时 分析了在此基础上进行二次开发的方法。 本文第四章介绍了x m lp e r s i s t e n c e 扩展的思想、设计和实现,并且给出了 一个测试的实例且完成了测试。 本文第五章介绍了e j bs e r v e r 的s o a p 接入扩展的思想、设计和实现,并 且给出了一个测试的实例且完成了测试。 本文第六章对e j b s e r v e r 实现及改进的研究工作作了总结,并提出了进一步 研究的展望。 第6 页,共5 2 页 第二章e j b 规范的分析 2 1e j b 规范的总体介绍 提到e j b 规范,就会想到同样是由s u n 公司发布的j 2 e e 规范口】。j 2 e e 规 范是s u n 公司为了支持服务器端的j a v a 构件而定制的一个完整的开发平台。j 2 e e 包括了很多的j a v a 技术,其目的是提供一个基于j a v a 语言,平台无关的、可移 植的、多用户的、安全的、标准的服务器端构件开发应用平台。 j 2 e e 的核心是e j b ,它规定了服务器端构件的模式,包装了业务逻辑,使 得用户可以将业务逻辑与底层的系统服务分开,以简化用户的服务器端构件的 开发工作。 一个完整的j 2 e es e r v e r 的体系结构大体如下: 图2 1j 2 e es e r v e r 的体系结构 如上图所示,包含用户逻辑实现的e j b 位于j 2 e es e r v e r 中的c o n t a i n e r ( 容 器) 中。而j 2 e es e r v e r 包装好底层的服务使得e j b 可以通过c o n t a i n e r 来访问 底层的服务。可以说,一个j 2 e es e r v e r 就是一个e j bs e r v e r 再加上一些其他协 议的支持。 e j b 规范是相当庞大的,完整地描述了e j b 在应用中可能遇到的各个方面。 其大体的内容如下p 1 : e b 的设计目标和概要介绍; e j b 的角色和开发流程; s e s s i o n b e a n 和e n t i t y b e a n 不同的编程模型和使用流程; e n t i t y b e a n 的c m p 和b m p ; e 1 1 3 q l 语言; m e s s a g ed r i v e nb e a n 的编程模型和使用流程: 对t r a n s a c t i o n 的支持; e x c e p t i o n 的处理机制; 对可交互性( i n t e r o p e r a b i l i t y ) 酶支持; e j l 3 的外部环境设置; 安全性的管理; d e p l o yd e s c r i p t o r 的详细描述: 第7 页,共5 2 页 上海交通大学硕士毕业论文 e j bs e r v e r 的实现技术研究及一些改进 e j b - j a r 文件的构成; 其他附属的a p i 的说明等等。 可以看出,e j b 规范中所包含的内容非常多,在此也不能一一加以详属。 在后文我将针对其中的重要部分进行详细描述。 2 2e j b 规范中的基本概念 2 2 1e n t a r p ris ej a v a b e a n s 的构成 一个e n t e r p r i s ej a v a b e a n s 的发布包中含有以下的部分: h o m ei n t e r f a c e 的字节码文件; r e m o t ei n t e r f a c e 的字节码文生; b e a n 实现的字节码文件; 发布描述符( d e p l o y d e s c r i p t o r ) ( 为一x m l 文件) 。 以下我将详细阐述以上这些部分的内容和功能。 1 ) h o m ei n t e r f a c e :该类继承并扩展j a v a x e j b e j b h o m e 接口,使用了f a c t o r y 设计模式,定义了创建( 包括s e s s i o nb e a n 中的直接创建和e n t i t yb e a n 中的 按主键( p r i m a r yk e y ) 的创建) 和查找e j b 的方法;该类对c l i e n t 端是公开 的,c l i e n t 端的代码通过获得某个e j b 的h o m ei n t e r f a c e ,并且调用其中的 c r e a t e o 和f r e d ( 1 族方法来得到相应的e j b 的可调用远程方法的实例。 2 ) r e m o t ei n t e r f a c e :该类继承并扩展j a v a x e j b e j - b o b j e c t 接口,使用了p r o x y 设计模式,定义了在b e a n 中实现了的业务逻辑方法;该类是对c l i e n t 端是 公开的,c l i e n t 端的代码可以根据该类中的公开方法来调用e j b 中对应的方 法。 3 ) b e a n 的实现:扩展i a v a x e j b e n t i t y b e a n s e s s i o n b e a n 在该类中实现了所需的 各种业务逻辑( b u s s i n e s sl o g i c ) ,即实现了在r e m o t ei n t e r f a c e 中定义的方 法;该类对c l i e n t 端是隐藏的,即该实现的字节码对用户是不可见的,它仅 在s e r v e r 端存在,并且在s e r v e r 端的m 中运行,仅将其结果通过底层的 r m i 协议返回给用户。 4 ) d e p l o yd e s c r i p t o r :这是一个舰文件,j 己录了该e j b 在发布时所需采用 的配置信息,发布该e j b 的c o n t a i n e r 将根据其中的内容自动地更改相应的 内容,并且在s e r v e r 端建立相应的e j b 实例以供c l i e n t 调用。 以上这些内容将被打包成一个j a r ( j a v a a r c h i v e ,j a v a 档案) 文件。 任何一个符合规范的e j bs e r v e r 都应该能够接收如上所述的j a r 文件,由其 自己的d e p l o y e r ( 发布器) 解析其中的d e p l o yd e s c r i p t o r ,并且按照d e p l o y d e s c r i p t o r 中的信息建立相应的e j b 的实例,使其能够接受来自c l i e n t 端的方法 调用。 当然,建立这样的标准的j a r 文件可以由用户自己完成,也可以由e j bs e r v e r 的提供商在其产品中包含一个工具来完成这一工作。我将在稍后详细叙述这些 内容。 第8 页,共5 2 页 e 海交通大学硕:匕毕业论文 e j bs e r v e r 的实现技术研究及一些改进 2 2 2e n t e r p ris ej a v a b e a n s 的分类 作为一种分布式构件的标准,e j b 必须支持各种不同形式的应用。为了使e i b 能够更加灵活地被应用于各种状况,s u n 公司在e j b 规范中将e b 分为了以下 几类:、 1 ) s e s s i o nb e a n ( 会话b e a n ) :一个s e s s i o nb e a n 代表了为了服务于客户端调 用代码所执行的工作。s e s s i o nb e a n 是业务过程对象。他们实现了业务逻辑、 业务规则和工作流。他们是包含了业务过程逻辑的可重用构件。 该类e j b 的生命周期以s e s s i o n 为界,每个s e s s i o nb e a n 仅对应一个c l i e n t , 在发布该e j b 的c o n t a i n e r 崩溃时,该s e s s i o nb e a n 的生命周期也终止,用户 必须重新建立一个到该s e s s i o nb e a n 的连接。s e s s i o nb e a n 不表示数据库中的 数据,但可以访问这些数据。当然,e j bc o n t a i n e r ( e j bs e r v e r 的一部分) 必须有能力同时处理这些s e s s i o nb e a n 的并发。s e s s i o nb e a n 是有状态的,也 就是晚,其状态应该通过p e r s i s t e n c em a n a g e r 加以记录。但是s u n 公司在e j b 规范中也定义了s t a t e l e s ss e s s i o nb e a n ,即无状态s e s s s i o nb e a n ,用于满足一 些普通的要求。 2 ) e n t i t yb e a n :一个e n t i t yb e a n 就是一个代表这样的永久数据的构件。e n t i t y b e a n 代表了实际的数据对象,可以为银行帐户、订单、订单项、股票交易等 等建模。 该类e j b 的生命周期与其相关的数据相同,也可以视为数据( 位于数据库中) 的一个视图。e n t i t y b e a n 可以同时接受多个c l i e n t 的请求。即使发布该e n t i t y b e a n 的c o n t a i n e r 崩溃,i 势e m i t y - b e a n 的本身及其主键均不会丢失,而是通 过p e r s i s t e n c em a n a g e r 保存,在c o n t a i n e r 恢复后,则自动恢复到崩溃前的状 态。 3 ) m e s s a g ed r i v e nb e a n t q :该类e j b 是s u n 公司为了使e j b 具有异步调用的 功能而设计的。它使得e j b 与用户之间、e j b 与e j b 之间的异步调用成为可 能。它的存在为不同的e j b 之间的相互通讯和交互提供了一种合适的方法。 它在收到一个c l i e n t 的消息后启动,它不表示数据库中的数据,但是可以访 问这些数据。该类e j b 是无状态的,在发布它的c o n t a i n e r 崩溃后,其状态 不保留,但在c o n t a i n e r 恢复后,必须自动建立一个新的m e s s a g ed r i v e nb e a n 继续完成相应计算。 以上所说的是s u n 公司发布的2 0 版e j b 规范中所规定的e j b 类型。事实 上,为自己的应用选择合适的e j b 类型,牵涉到软件建模的问题,在此不多叙 述。 2 2 3e j b 规范中规定的角色 为了推广e t 8 构件技术的使用,s u n 公司仅仅公布了e j b 的规范,而由各 个独立软件厂商各自实现其e 丁p 黄l 掌环境。也就是说,e j bs e r v e r 可以有很多 个,实现方法也可以完全不一样,但是只要是符合e j b 规范的分布式构件,就 可以在其上正常地发布和使用。为了规范e j bs e r v e r 的开发,s u n 公司在e j b 规范中定义了7 个不同的角色( r o l e ) 来描述其开发、发布和使用的整个生命 周期。以下我将详细叙述这7 个角色。 第9 页共5 2 页 上海交通大学硕士毕业论文 e j bs e r v e r 的实现技术研究及一些改进 1 ) 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 是一个 j a r 文件,其中包含了以下的内容:实现了该b e a n 的用户逻辑( b u s i n e s sl o g i c ) 的j a v a 字节码文件、该b e a n 的r e m o t e 和h o m ei n t e r f a c e ,以及该b e a n 的 发布描述文件( d e p l o yd e s c r i p t o r ) 。e n t e r p r i s eb e a np r o v i d e r 就是完成生成这 样一个 a r 文件的功能。 e n t e r p r i s eb e a np r o v i d e r 是提供e n t e r p r i s ej a v a b e a n ( 把方法提供出来以便执 行应用逻辑的构件) 的团体。他可能是那些在市场上广泛销售的构件的供应 者,可能是通过一种间接销售渠道,它也可能只是一个个体程序员。 e n t e r p r i s ej a v a b e a n 是分布式、服务器端的构件,它们提供了一些有用的功 能因而可以被集成组成更大的应用。企业级b e a n 可能是可重用的构件,但 这是不保证的。如果你想使它们可重用,你必须正确设计你的b e a n 。你需 要去考虑你的企业级b e a n 在不同应用、领域的使用,同时你必须在开发你 的b e a n 过程中尽量灵活。开发一组真正可重用的b e a n 很可能需要许多次从 你的客户中得到反馈,然后再4 磬改,再反馈的迭代过程。 租略的说,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 客户化典型地发生在开发时,但为 了允许一个更灵活的维护环境,一些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 提供越高的可重用性,那这个b e a n 就越有用。通过利用已建立的 b e a n ,一个组织可以潜在地降低开发企业级应用的时间。 e n t e r p r i s ej a v a b e a n 在大小和领域上有很大差异。小规模的e n t e r p r i s e j a v a b e a n 般有非常具体但有限的能力和领域。大规模的、全功能的e n t e r p r s i e j a v a b e a n 能覆盖更广泛缒业务领域,同时它们会于其他一些小规模的 e n t e r p r i s ej a v a b e a n 交互。 这是一个非常强大、灵活的模型,它允许大规模的分布式构件以一种等级制 度的方式由许多个小规模的分布式构件组成。 2 ) a p p l i c a t i o na s s e m b l e r :即为应用程序集成者。在得到e n t e r p r i s eb e a n p r o v i d e r 生成的一个e j b 的j a r 文件后,e j bs e r v e r 要对它进行编译,添加相应的应 用程序集成指令。a p p l i c a t i o na s s e m b l e r 的主要功能就是提供一个e j b 与现 有技术( 如j s p 等) 集成的工具。就如我们所说过的,b e a n 提供商提供可 重用可部署的服务器端构件。但当构件被客户买来并投入真正的使用时,是 谁真正把它们集成起来去解决一个业务问题呢? 这个问题的答案是应用程序 集成者。应用程序集成者是理解整个应用系统和并且把不同的构件集成起 来。它能够从这些构件中建立一个能通过一些配置而被部署的应用。 应用程序集成者能完成下列一项或多项任务: 编写调用那些买来的构件的代码。 第1 0 页菸5 2 页 上海交通大学硕士毕业论文 e j bs e r v e r 的实现技术研究及一些改进 提供介于一系列独立构件之间的、映射它们的工作流解决方案。 提供一个用户界面( 可能利用j f c 、j s p 或者s e r v l e t ) 。 编写新的企业级b e a n 来解决特定领域的问题。例如你可能需要对 特定的一个业务过程或者业务实体进行建模。 由于e j b 是种分布式的构件一相对于传统的僵化的客户机朋艮务器结构) , 因此应用程序集成者能够参与在一个多层结构中的逻辑的设计和实现。 3 ) d e p l o y e r :即为发布器。d e p l o y e r 得到e n t e r p r i s eb e a np r o v i d e r 和a p p l i c a t i o n a s s e m b l e r 所产生的e j bi a r ,将其发布到一个特定的操作环境中去。该操作 环境包含已实现的e j bs e r v e r 和c o n t a i n e r 。d e p l o y e r 根据该i a r 文件中的 d e p l o yd e s c r i p t o r 来配置资源管理器( r e s o u r c em a n a g e r ) ,绑定相应的资源, 以使客户端可以通过特定的协议来访问e j b 。 虽然e j bc o n t a i n e r 提供了对e j b 的运行时支持,e j bs e r v e r 也提供了一系 列e j b 中使用到的系统的底层服务,但是要使得e j b 能够在一个特定的运 行时的操作环境中被用户所访问到,却仍然不够。d e p l o y e r 能够完成这一工 作。d e p l o y e r 收集关于其所要发布的e j b 的目的环境的具体信息( 包括诸如 网络配置、目录服务配置等等) ,并且按照这些信息发布e j b ,使得用户可 以通过安全的方法访问这些e j b 。 4 ) e j bs e r v i c ep r o v i d e r :e j bs e r v i c ep r o v i d e r 提供一系列底层的服务,如 t r a n s a c t i o n 管理、分布式对象管理以及其他的系统级服务。通常的e j bs e r v i c e p r o v i d e r 就是操作系统。s u n 目前的e j b 规范中并没有规定任何这方面的内 容,即可以由开发商参照各自的具体方案自主地实现。例如,e j b 服务器必 须提供名称和目录服务,允迕适过网络来定位构件。e j b 服务器也同时提供 了一套部署工具来让e j b 部署者把这些构件部署到该e j b 服务器上并在需 要时客户化这些构件。当然,e j bs e r v i c ep r o v i d e r 能够超越这些基本需求, 提供一些e j b 规范中没有定义的增值功能。可以是智能化负载平衡、透明的 出错处理、服务器集群以及对一些遗留系统( 例如b e a 的t u x e d o 、m m t x s e r i e s 、s a p 剐3 等等) 的集成和连接。 5 ) e j bc o n t a i n e rp r o v i d e r :即为e j b 容器提供者。e j bc o n t a i n e r 管理部署于其 中的e n t e r p r i s ej a v a b e a n 。客户机应用程序并不直接与e n t e r p r i s ej a v a b e a n 进行交互。相反,客户机应用程序通过由容器生成的两个封装接口( e j b h o m e 接口和e j bo b j e c t 接口) 与e n t e r p r i s eb e a n 进行交互。当客户机使 用封装接口调用各种操作时,容器截获每个方法调用,并插入管理服务。 e j bc o n t a i n e rp r o v i d e r 提供以下2 大主要功能: 1 )提供发布该e j b 所必需的工具; 2 )已发布的e j b 的实例( i n s t a n c e ) 的运行时支持。包括了以下系统级的 服务: l i f e c y c l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一年级下册道德与法治教学设计-13 我想和你们一起玩 人教部编版
- 三年级英语上册 Unit 1 Hello!I'm Monkey Lesson 2教学设计 人教精通版(三起)
- 三年级语文下册 第八单元 口语交际 讲一个有趣的故事教学设计 新人教版
- 主题一 任务一 穿越信息的时空 教学设计 -2023-2024学年桂科版初中信息技术七年级上册
- 非人力资源的人力资源管理培训
- 六年级数学上册 七 百分数的应用第1课时 百分数的应用(一)(1)配套教学设计 北师大版
- 2024内蒙古融信科技服务有限公司公开招聘人员6人笔试参考题库附带答案详解
- 高速公路7S管理培训
- 九年级物理上册 第四章 认识电路 第2节 电路的连接教学设计 教科版
- 二年级品德与社会下册 生活中的环保问题教学设计 未来版
- 四年级下册道德与法治期末考试题(含答案)部编人教版
- 实验四酸性磷酸酶及值测定
- 动产质押监管业务的风险防控及分散
- 山东省临沂市兰山区2022~2023+学年八年级下学期物理期末试卷
- 从矿业权价款到矿业权出让收益
- 地铁16号线风阀设备维修保养手册
- 新疆维吾尔自治区保障性住房建设标准(正文)
- 《护士执业注册申请审核表》(新版)
- 桥牌比赛形式简介
- 肩手综合征的现代康复治疗演示
- 六角螺母加工实习指导书
评论
0/150
提交评论