




已阅读5页,还剩53页未读, 继续免费阅读
(计算机应用技术专业论文)ejb服务器命名服务的实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京航空航天大学硕士学位论文 摘要 随竹计算机体系结构的变化,中问件技术的迅猛发展,应,日服务器作为中问件技 术的运行平台逐步成为近年束软件业的发展趋势之一。另外,j 2 e e 是s u n 公司推出 的一种全新概念的模型,与传统的互联网应用程序模型相比有着不可比拟的优势,这 样就引发了大量对基于j 2 e e 的应用服务器的研究。 本文首先通过对分布式对象,中间件技术和j 2 e e 架构作了一定的介绍从而介绍 了课题研究的背景,其次在对e j b 服务器的实现中,通过对现有系统的分析,提出了 整体设计的方案,最后在分析命名服务规范和j b o s s 命名服务j n p 代码的基础之上, 完成对e j b 服务器中命名服务的实现。 关键字:应用服务器e j bj n d ij 2 e e 命名服务 南京靛空航天大学硕士学位论文 a b s t r a c t w it ht h e c h a n g e o f t h e c o m p u t e r a r c h it e c t u r ea n dt h e d e v e l o p m e n to f m i d d l e w a r e t e c h n o l o g y,t h ea p p l i c a t i o n s e r v e ra c t e da st h e m i d d l e w a r e p l a t f o r mi sb e c o m i n go n eo ft h em o s tp o p u l a rt r e n di nt h er e c e n t s o f t w a r er e s e a r c hd o m a i n 。i na d d i t i o nj 2 e ei san e wm o d e lr a i s e d b ys u n c o m p a n y c o m p a r e dw i t ht h et r a d i t i o n a li n t e r n e ta p p l i c a t i o np r o g r a mm o d e li t h a sg r e a t a d v a n t a g e f o r t h e s er e a s o n sw em a k eag r e a tr e s e a r c h w o r ko n a p p l i c a t i o ns e r v e rw h i c hi sb u i l do nj 2 e e i nt h i sa r t i e l e f i r s t l y t h e b a c k g r o u n d i s e x p l a i n e dt h r o u g h t h e i n t r o d u c i n go ft h ed is t r i b u t e do b j e c t ,m i d d l e - w a r ea n dt h ea r c h i t e c t u r eo f t h ej 2 e e s e c o n d l yi nt h ed e s i g no ft h ee j bs e r v e r si m p l e m e n t a t i o n ,w er a i s e t h ed e s i g ns c h e m eo ft h ew h o l es y s t e mw i t ht h ea n a t y s i so ft h ea v a i l a b l e s y s t e m s a t1 a s to nt h eb a s i so fa n a l y z i n gt h en a m i n gs e r v i es p e c i f i c a t i o na n d t h ec o d eo fj n p ,w ef i n i s ht h en a m i n gs e r v i c ei nt h ee j bs e r v e r 。 k e yw o r d s :a p p l i c a t i o ns e r v e r ,e j b ,j n d i ,j 2 e e ,n a m i n gs e r v i c e 惑 南家毓窝靛天大攀颈士学缝论文 1 1 课题研究背景 第一章绪论 目前计算机已经深入到我们日常工作生活中的姆个角落,它已经成为- f 独立 豹繇学,受捌了享主会备部门静重褪,随着i n t e r n e t 豹发震,它遣会交褥越来越普我。 伴随着计算机新技术的出现,传统的技术不得不面临着巨大的挑战,而我们的研究课 题簸是在下蘸靛磅究鹜豢下罐出来豹。 首先是计算机体系结构的变化。在2 0 懒纪8 0 年代初隧着i b m 的个人计算机( p c ) 稻鼹域网( l a n ) 懿瞧现,搜 l 孽原来走单个塞筑为中心熬终绕豹运簿模式懑经逐步转 向客户n 务器( c s ) 的分布式结构。在c s 结构中,我们将客户逻辑存放于每个客 户端,服务器则用予数据我存放。c s 终擒敢提出蜒决了传统的擎个中心激务器懿莲 力,但随之丽来又商了“胖客户端”的问题。业务逻辑存放于每一个客户端,不仅增 加了客户端妁负担,同时对业务逻辑的修改也带来了很大的不便。 为了更好的解决上面撬出的阉题,入 j 提出了b s 体系结构。b s 结构将c s 结 构中存放予窖户端的应用逻辑抽象出来,存放于个中闯艨,这样不仅减轻了客户端 弱负摇,溺嚣寸使褥渡务逻辑豹更新可浚交褥更鸯珏便捷。 下面的图则展承了从c s 结构向b s 结构的转变: c s 结构b s 结构 鬻1 1 从图中我们可以看到,在b s 结构中我们加入了一个中间层成用服务器层,用于 楚疆客户璇懿谚求,它攒据需要霹鞋佟隽孛会奄数撂撵羧务器建立驳系。戆着 i n t e r n e t 的发展,应用服务器已逐步成为构建新一代分布式应用的软件平台,潮此 对斑用服务器的磅突是计黪凝软传鞠分毒式系统镁域戆藏漆课题。 1 南京航空航天大学硕士学位论文 其次我们要提到的就是计算机软件方面的发展。随着计算机体系结构从c s 到 b s 的发展,运行于应用服务器上的,从客户端抽象出来的业务逻辑也得到了相应的 扩展,这就是我们现在所说的中间件技术。 中问件位于底层系统软件和用户应用软件之间,即在操作系统,网络和数据库之 上应用软件之下。它将应用系统所要面临的共同的问题进行抽象,在操作系统之上 形成一个可重用的部分,供不同领域的软件重复使用,从而帮助我们灵活,高效地开 发和集成复杂的应用软件,减轻了我们应用程序开发的负担。当然中间件的良好运行 更需要我们应用服务器的支持。 最后是s u n 公司j 2 e e 规范的提出,j a v a 语言的跨平台性使得它在中间件的开发 中具有一定的优势,中间件作为可供不同用户重用的部分,它的开发必须要遵循一定 的规范,这样才能得到更大范围里的重用。而j 2 e e 规范则为我们用j a v a 语言开发中 间件即e j b 提供了这样的准则。 1 2 主要研究工作 南京航空航天大学软件工程开发中心一直致力于在软件重用、构件技术和分布式 计算方面的研究,围绕c o r b a 技术已经进行了多年的研究,在软件体系结构、组件模 型、安全和c o r b a 与w e b 的集成方面都有涉及,并且取得了一定的研究成果。 这段时期,随着网络技术的发展,基于w e b 的应用程序开发日益增多,通过这些 网络应用程序的开发,我们对j 2 e e 架构有了一定的了解,j 2 e e 是s e n 公司提出的基 于j a v a 语言的中间件开发规范,它与c o r b a 有着一系列的共同点,因此在继承了前 面几届的基础之上,我们将课题研究的重点放在了j 2 e e 架构之上。 而随着中间件技术的发展,应用服务器作为中间件运行的平台,在j 2 e e 架构中 发挥着巨大的作用,因此我们将对一个e j b 服务器的研究作为我们对j 2 e e 架构研究 的开始。 课题研究内容主要包括以下几个方面: 首先是进一步加深对j a v a 语言的了解,了解j 2 e e 架构中的一系列技术,重点是 学习e j b 的开发技术,只有真正掌握了e j b 的精髓才能了解我们的e j b 服务器是怎样 工作,从而发现开发过程中我们要注意的问题。 其次通过多方面地查看资料,对应用服务器的概念有了比较明确的认识,因为我 们的e j b 服务器是应用服务器中的一个重要组成部分,只有对应用服务器以及它所包 含的e j b 服务器有了深刻的了解,才能从事相应的开发。 紧接着就是研读j 2 e e 规范了解e j b 服务器需要完成的各项任务。对整个系统 的实现进行一定的分析,制定出开发的计划。 最后是着手于系统的实现,完成系统所需的最基本服务和系统管理核心的工作, 通过对j n d i 命名服务的实现完成整个研究工作的第一步。 2 南京航空航天大学硕士学位论文 1 3 论文的组织结构 本章 第二章 第三章 第四章 第五章 第六章 第七章 介绍了课题的背景及其主要的研究工作。 j 2 e e e j b 的棚关技术简介。 应用服务器的概念,介绍目前主流的应用服务器供应商。e j b 服务器是 应用服务器的重要组成部分,因此对我们要开发的e j b 服务器进行一个 比较全面的介绍,同时对我们系统提出了整体设计方案。 j a v a 命名和目录服务实现分析,命名和目录服务是应用服务器的最基本 的服务之。本章首先介绍了与命名和目录相关的概念,其次是对j n d i 体系结构及其规范的简单介绍,最后对一个j n d i 服务提供者所要做的 工作做了详细的介绍。 作为命名服务系统的开发基础,通过对r m i 技术的分析提出了在命名系 统实现中可能会遇到的问题,再分析开源项目j b o s s 的命名服务实现 j n p ,从而给我们工作的实现打好基础。 完成我们自己的命名和目录服务的设计与开发。 论文总结。 南京航空航天大学硕士学位论文 第二章3 2 e e e j b 相关技术 2 1 分奄式对象技术 分布式对象是e j b 组件的基础,它随着计算机体系结构的变化和面向对蒙技术的 发展两褥到发展。分稚式对象是一个可以被远稷系统中程序调用的对象,它的重要之 楚在予,我髑可敬透过运弼它韵来将一个应霸系统在网络孛分鳞开采,铁褥健褥我 j 的应用獠序开发更加简化,可以进行更大规模的软件重用。 一个分布式对象的调用可以用下灏的图来显示: 口 图2 1 分布式对象 在这个图中首先怒一个客户端的桩( s t u b ) ,我们也称它为客户端存根程序,它 是一个豢户堪夔代理对象,主要受囊处理与客户溃鼹网络逶傣。 存嘏程序通过潮络调用一个服务器端骨架( s k e l e t o n ) ,它也就是稚絮程序鹩服 务器端代理对象,主鞭负责处理来自分布式对魏的通信。 框架程序在接收到客户端的对象请求以后,将调用委托给分布式对象。分布式对 象在完戏它懿工 睾之纛,将控毒投转绘握黎程序。捱檠程疹接蕾叉薅控铡投转绘存羧 程序,存根程序最詹将控制权转缭了客户端。 通过对图2 1 的解释,我们可以发现,有了分布式对象,我们的应用程序可以不 用局限予菜个单一的_ 桃器,它完全可以在网络串分解开来,幽分毒在网络上静对象共 弱组成浅稻酶应蹋系绕。 2 2 中间件技术及其规范 分帮式对象的发展,大大提离了软律复用瀚能力,紧接辫就有了中阍件的概念, 鼍宁 口 。 翠 ,tltfl 南京航空航天大学硕士学位论文 由于网络中的中间件分布在不同的机器上面,这些机器有着不同的软硬件环境,也就 是我们浇的异构平台,导敛了对不同机器上中侧件的存取问题,因此不同的开发商按 照自己的规范开发的中问件只能是在一个很小的范围内进行重用。为了大家能够更好 地运j 月网络中的资源,典现资源的共享,我们需要一系列的标准来舰范大家的行为。 当然我们理想的状态是有一个统一的标准,但这现在不符合我们的实际情况,因为随 着分布式对象技术的发展,目前已经形成了几个占统治地位的规范。 目前出现的具有代表性的构件标准有:o m g ( o b j c c tm a n a g e m e n tg r o u p ) 组织提出了 c o r b a 标准,微软的c o m d c o m 标准和s u n 公司提出了e j b 标准。 0 m 的c o r b a 全称为公共对象请求代理体系结构,它是由i b l ,h p 等多家公司联 合开发的部件软件的体系结构和部件接口标准。它成功地总结了对象技术的最新应用 经验,改进并发展了传统的c 1 i e n t s e v e r 模型,遵循此标准编制的软件产品可以方 便地解决许多复杂条件下的互操作问题,如多厂家环境,多语言实现,异构硬件平台, 异构操作系统和异构网络等。 目前最新的c o r b a3 0 “”,该技术规范中采用支持e j b ( e n t e r p r i s ej a v a b e a n s ) 规范的对象封装规范,使e j b 成为c o r b a 的组件方案。c o r b a 3 0 对象能动态地加载 各种组件以及传输、事务和邮件交换协议。这就意味着,如果与c o r b a 3 0 规范相兼 容的服务器遇到e j b ,就能在运行时加载j a v a 虚拟机并运行这些对象。在与j a v a 和 t n t e r n e t 的集成方面,c o r b a 3 ,0 提供了j a v a - i d l 之间的映射,从而允许j a v ar m i 对象能象c o r b a 对象一样在网络上互操作。 我们的研究工作也是在对c o r b a 技术有一定的了解的基础之上,转移到j 2 e e 平 台上e j b 技术的研究。 微软的d c o m 技术扩展了部件对象模型技术( c o m ) ,使其能够支持在局域网,广 域网甚至i n t e r n e t 上不同计算机的对象之间的通信。c o m 标准使得软件部件之间的 交互通信完全不受进程边界和运行环境的限制。c o m d c o m 标准给微软平台上的构件 互操作提供了极大的便利。 由于j a v a 语言的平台无关性,使得运用j a v a 技术开发结构中立的,移植性特别 强的应用程序成为目前的一个潮流。s u n 公司的e j b 标准正是将j a v a 技术和部件对 象技术结合在一起,它是专门针对j a v a 语言编写组件的标准,而e j b 规范最新版本 为2 1 。e j b 服务器作为我们课题研究要完成的工作,在我们后面有更详细的介绍, 在这里我们不再做更多的介绍。 前面提到的这些标准在构件的较低层次给出了构件对象如何分布,如何通讯以及 实现构件对象的位置透明性。它们屏蔽了操作系统、底层网络及编程语言,极大便利 了分布式异构环境中各种应用系统的开发和集成。而我们课题研究的工作是正是建立 在e j b 规范的基础之上。因此我们有必要对e j b 规范所隶属的j 2 e e 架构有一个全面 的认识。 南京航空航天大学硕士学位论文 2 3j 2 e e 架构 j a v a 2 平台企业版( 。l a v a2p 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 ) ,它是s u n 公司提出的,旨在为支持j a v a 语言服务器部署而提供平台无关的,可移植的,多用 户的,安全的和标准的企业级平台,从而也使得企业在这个平台上丌发的程序能够更 好地融入到i n t e r n e t 这个环境中。当然我们必须认识到j 2 e e 它是一个规范,或是一 系列规范的一个集合,而不是一个产品。因此我们在开发企业级应用时必须要遵循这 个规范,这样才能使我们的产品具有更好的通用性。 目前比较新的j 2 e e 规范是1 4 版本,它支持e j b 2 0 ,前面我们提及了j 2 e e 是一 系列规范的集合,它的核心是对e j b 的支持,当然它也提供了其他一系列需要实现的 技术。下面我们就对整个j 2 e e 架构下的技术做一个简单的介绍: 企业级j a v a g e a n ( e j b ) ,我们在前面提及中间件技术时已经提到了e j b 规范,它 为我们用j a v a 语言编写,在服务器端配置和管理这些可重用的中间件提供了一个统 一的标准协议,它是j 2 e e 中的重要组成部分,当然在它其中也用到了其他的j 2 e e 技术。 j a v a 远程方法调用( r m i 和r m i i i o p ) ,i n i ( r e m o t em e t h o di n v o c a t i o n ) 是 j a v a 语言自身提供的用来在分布式对象之间通信的一种机制。而我们在j 2 e e 架构中 则是对i n i 进行了一定的扩展,产生了建立在i i o p ( i n t e r n e ti n t e r o r b ) 协议之 上的r m i ,即是r m i i i o p 。因为c o r b a 规范中定义的o r b 间的通信协议是基于i i o p , 这样就有利用我们的e j b 技术与c o r b a 技术的集成。 j a v a 命名和目录接口( j n d i ) ,我们需要通过j n d i 来寻找我们的e j b 组件或是部 署在网络中的各项资源,这就得用到j a v a 的命名和目录服务。通过j a v a 的命名和目 录服务器,我们将资源与名称进行绑定,从而便于用户利用j n d i 进行相关操作。 j a v a 数据库连接( j d b c ) ,利用j d b c 作为服务器向应用程序提供数据存取服务的 接口,它使得我们可以使用相同的a p i 来访问任何类型的关系数据库。 j a v a 事务处理a p i ( j t a ) 和j a v a 事务处理服务( j t s ) ,事务是健壮的服务器端 开发所必须的一种关键性服务。当然事务的管理我们可以通过不同的方式进行,它可 以由客户编程实现,这就是我们说得编程型事务,它也可以由容器进行管理,就是我 们说的声明型事务。而遵循我们的j t a 和j t s 规范也就为组件的工作提供了可靠的事 务支持。 j a v a 消息服务( j m s ) ,j m s 允许j 2 e e 部署通过消息进行通信。消息机制对于网 络通信来说是轻量级的通信工具,在很多情况下,它比r m i i i o p 更适合应用。 j a v as e r v l e t ,s e r v t e t 是运行于服务器端的一段程序,它基于请求响应机制。 我们的j 2 e e 服务器也必须提供对它的支持。 j a v a 页面,j s p 页面和s e r v l e t 非常相似。事实上,j s p 脚本可以编译成s e r v l e t 南京航空航天大学硕士学位论文 来执行,他们最大的不同就是j s p 不是纯j a v a 代码,它更加注意客户端的外表和显 示的问题。 当然在这里我们只是提及了j 2 e e 规范中一系列的服务中的一部分,其他还有很 多的技术我们并没有提及,而下面的这张图则可以比较完善地展示我们的j 2 e e 架构: 2 4 小结 图2 2j 2 e e 架构 本章在介绍了我们课题研究所涉及的相关技术,分布式对象和中间件技术及其规 范以后,对j 2 e e 架构进行了比较详细的介绍,而我们课题所要研究的应用服务器正 是基于j 2 e e 架构的。 南京航嫩航天大学硕士学位论文 第三章应用服务器的研究及系统整体设计 3 。i 瘦瘸瀑务器晌介绥 由于应用服务器鼹- - f 新的技术,它的概念还尚未完全统一,它到底应该包含什 么还是仨卷见仁,鸳嚣尾蟹,毽总体来说,应妫服务器通过搬用户接嚣、巍监逻辑稿 看端暇势分割开来,淘开发者提终了一零中截建、部署帮维护众业蕊模的w e b 应用的模 块化方式,为要转向w e b 的用户提供了离性能多线程的环境。它是一种支持多种工业 标准的 办议和界面引辇,它支持的标准包括数据库互联标凇o d b c 和j o b c 、c o r b a 、 e 滋d c 蹶、e n t e r p r i s ej a v a b e a n s ( e j b ) 对象摸整等“。 3 1 1 应用服务器特点 密予开发者豹鹜襞不弱,不弱汗发商瑟发静疫霜驻务器产品的吴箨孪等征氇不尽稳 同。但鼹,不管是谁都同意应用服务器软件是一个运行在中间层的软件,它位于h t m l 客户端和后台商务应用之间。 应鞋l 藏务器较传一般都其考以下特点o “: lw 以透过不嗣的硬俘帮操作系统链接多个系统。 2 健用h t m l 和动态h t t i 以及可扩展标记谬言x m l 等标准控制信息的发布。 3 馒予软件各部分的再应用,无论是内部开发或从第三方购买。包掭c o r b a 、 c o m 蚤e 穗穰金鲎j a v a b e a n ( e j b ) 。 4 通过j d b c 、o d b c 进行对数据库的统一地进行访问。 5 通过负载平衡、集群和容错等特性提高系统性能。 6 支持安全特缓,包括安全套接层( s s l ) 、授权和数字认涯。 7 撼上述瑟有特惠集成蜀一个榘藏开发环臻( i d e ) 中。 当然,不同厂商的背景不同,w 能在各自侧重点的选择上也有所不同,但是不管 是什么样的产品,他们必然要完成作为一个应粥服务器所应具备的功能,也就是说必 矮要其铸土嚣我翎鬟翊一个应用瓣务器应该菇熬特点。 3 i 2 应用服务器功能瞳 遥麓痉焉骚务嚣,我霞可滏帮劾企堑檠构一令基于i n t e r n e t 懿邀予裔务系统, 并且让它拥有极高的稳定性、可扩展性和安全饿。应用服务器向企业级用户提供了设 南京航空航天大学硕士学位论文 计、开发、部署、运行和管理一个i n t e r n e t 电子商务应用系统的平台。它的作用同 时也在这几个方面体现出来: 在设计上应用服务器自己完成了底层通讯、服务,并且屏蔽掉复杂的底层技术 细节,向用户提供结构简单、功能完善的编程接口,让用户可以专心于商务逻辑的设 计。 在丌发中,应用服务器提供了完全开放的编程语言和应用接口,用户可以用任何 自己习惯的开发工具来工作。另外应用服务器自己也提供快速开发的工具和手段,帮 助用户提高开发效率。 在部署时,应用服务器可以部署在任何硬件平台、任何操作系统,而且可以分布 在异构网络中,应用服务器帮助用户在复杂的网络环境中配置系统参数,使系统发挥 最大的性能,拥有最好的稳定可靠性。 运行时,应用服务器采用的是开放技术标准,它提供了一个完整的标准实现,即 提供了系统的运行环境,任何基于同样标准的系统都能很好的运行于这个环境中。 最后是在管理方面,应用服务器让用户通过图形化的界面方便的管理自己的资 源,而且在系统运行时也能动态监控和管理。 通过对应用服务器的这几个方面功能的介绍,我们可以了解到应用服务器的必要 性。正是因为应用服务器具备了这样的一些功能,才使得目前应用服务器在一定程度 上得到了相当的发展。 3 1 3 应用服务器产品 应用服务器的发展也已经有了一段时期,我们的研究工作主要是建立在j a v a 语 言的基础之上,我们所接触的也是基于j 2 e e 的应用服务器产品。因此在本文中所写 的应用服务器都是指基于j 2 e e 的应用服务器。 目前应用服务器已有了一系列的产品,当然这些产品主要以国外公司为主,国内 的研究则显得较为迟缓,目前比较具有代表性的产品有以下几种: b e aw e b l o g i c 做为全球最大的中间件开发商,b e a 公司推出了纯j a v a 的应 用服务器b e aw e b l o g i c ,很快成为同行业中的佼佼者。目前最新的版本是b e a w e b l o g i cs e r v e r8 1 。b e aw e b l o g i cs e r v e r8 1 在与同行业其他产品的比 较中处于明显的优势,并且获得了“j a v a 世界2 0 0 3 年最佳编辑选择奖 最佳应用服务器奖。 i b mw e b s p h e r ei b m 公司也是中间件开发的一个重要企业,他和b e a 公司一 起占据了整个中间件的绝大部分市场。而他在亚洲的市场则是超过了b e a 公 司,连续两年在亚太区市场及中国取得第一的位置。i b m 公司的应用服务器 产品最新版本i b mw e b s p h e r e5 0 。由于目前新的w e bs e r v i c e s 技术的提出 w e b s p h e r e 5 0 较以前的版本有了一定的改进,他支持所有开发、发布、部署 9 南京航空航天大学硕士学位论文 w e b s e r v i c e s 应用所必须的开放标准和技术,包括u d d i 、s o a p ,j 2 e e 。w s d l 和对x m l 技术集成的增强。 o r a c l e9 ia s ( o r a c l e9 i a p p l i c a t i o ns e r v e rj a v ae d i t i o n ) o r a c l e 进入应用服务器领域虽然只有短短的几年,但他们却取得了不错的成 绩。但是o r a c l e 公司并不满足于此,他们推出的低价位的o r a c l e9 i 应用 服务器j a v a 版,势必要加剧应用服务器市场的竞争。新推出的o r a c l e 9 i 应 用服务器j a v a 版本包括了企业用户快速开发、部署j a v a 应用和w e b 服务需 要的所有技术。 a a s ( a p u s i ca p p l i c a t i o ns e r v e r ) a p u s i c 应用服务器是由深圳金碟公司自 主开发,它遵循j 2 e e i 3 规范,提供了支持w e b ,e j b 组件的w e b 和e j b 容 器。同时还提供标准的j t s 、j m s 、j d b c 及j n d i 等系统调用,为j 2 e e 应用 提供了集成的开发、部署、运行和管理环境。它是目前较为完善的一个国产 应用服务器产品。 当然其他还是有一系列的产品我们在这里并没有提到,国内的中间件技术起步虽 然比较晚,但是与国际的差距并不是很大,我们目前的目标应该是致力于开发我们自 己的优秀的应用服务器。 3 1 4 应用服务器的组成 我们前面已经介绍了一系列的应用服务器的产品,现在我们需要了解的是一个真 正的基于j 2 e e 架构的应用服务器是由哪几部分组成的。 从第二章的j 2 e e 架构图中我们可以清晰地了解到,在j 2 e e 架构中,应用服务器 是位于三层体系结构的中间层,主要有e j b 服务器和w e b 服务器两个部分组成。当然 更广义的情况下我们也可以将只包含他们其中一个的中间层称之为应用服务器。下 面我们就对这两个部分分别做一定的介绍。 3 2w 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 直接与容器中的环境变量接口交互,而不必关注其它系统问题。如果容器提供的接口 严格遵守j 2 e e 规范中的w e ba p p l i c a t i o n 标准,我们就把它叫做j 2 e e 中的w e b 容 器。 w e b 容器的工作就是给w e b 组件提供了一个运行时环境,而运行于w e b 容器下面 的w e b 组件包括以下几种: 1 0 灏察腻窆靛天太学磷士学佼论文 j a f f as e r v l e ts e r v l e t 跫袭歉务繇一蕊,运行予嚣e b 容器巍戆襄暴逻辑缀 辞。弧细a p p l e t 扩麓了酶b 粼撬器兹基零潞麓释,s e r v l e t 扩豢了繇蠹瓣务器蕊 功提供编稳姚力以及劫绺,生成w e b 碱纳能力。s e r v l e t 的主癸劝熊是接收来融 客户端w e b 溯笺秣憋h t t p 谴求,跫壤输a 参激,誊怒缝袋龆淄菱器爵戳显示蕊h t t p 方式懑蟹强嚣。 j a v as e r v e rp a g e j s p ) 虽然s e t v l e t 馘产激 谨彳p 输潞,毽嚣示照糕 结粜| 8 句疆好的办汰避是使用j s p 组件。j s p 糊s e r v l e t 样,也是邀稀猩w e b 容器内 羹囊暴逻饕器缓髂,麓砉婺姥魏上黪蠢蚕黧;墨p 熬舍了麟懿襄j a v a ,毽载霆说, j s p 糕毒疆蘸毒凝溉霰璃邀霹豁包岔j a v a 我褥。藜串瓣跷襞露誊羧浚送缭溪羹臻, 恧j a v a 饯鹦粼滔纛服务器瓣释抵露。虼钋,j s p 秘j a v a b e a n 懿结合健溺也a 常典燃。 j a v a b e a nj a v a b e a n 怒基本豹数燃模型组件,翠程j 2 e e 拽术出现之前就粥 褒了。窿j 2 疆髂黎篷黎孛,强¥疵e 勰霉黧予襄户瑟瑟袁添避爨瑟,鞠a g p l e t 或j 辨 终龠健臻。b e a n 缀l 孛梅遥释器,廷要鸯一段j a v a 我鞴淹爻鳖逶畿鹃瀵霞瑟可。涤 这燃鞭提到的燕睬了命名上的糨似处,j a v a b e a n 和企姚j a v a b e a n ( 即e j b ) 没谢什 么大靛美联。弱滗垒是勇静类黧翁金救j a v a 藏强筑侮。 释鞠骚务器潦藏露联蚤嚣枣鹭一争蚕鬟麓藏鼙势。巍然它逮爵淡瓢鏖蘧嚣务婺警 独窥躜泉,甚前姚鞍流行瀚r o m c a t 簸是一个独立麓鞴翳服务器。 3 。3 辫篓系然簿 e j b 鼗务器髓慰舞簸务褥瓣令重要缀溅浆努,奁溅艇详绥余缨它之鼹,我剃臌 该谢个众业j a v a 8 e a n 模裂的概念。 一令萎誊麓嚣嚣蒜蚕终蕊毽矮下覆曩;个方蒸粥: - 一个琶潞暇务器, _ 包台予e 姻服务嚣巾蚋e j b 容器。 _ 迳嚣在鞋搀容器孛麴 潍嚣对象,瓣8 对象 - g 嚣誉产端 , - 辅勋韵端缆包括t 裔稻服务,事势( 交荔服静,安全鞭务镣 貔们越以用图3 1 浓显示他们的必系: 南京航空航天丈学硕士学能论文 圈3 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 服务器可能也提供一些由开发商自己定义的特性,比如是个可选的数据存取接, 额努躲c o r b a 服务,安全爨接字( s s l ) 静支祷等等。其穗瓣会名鼹务,交易警璞麓 支持也是e j b 服务器必须的功能。 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 ,并且使得客 户端程痔g 遴露远程诵用。从本壤土谗,e j b 容器是客户蠛程序帮b e a n s 之闻看不见 的中间人。他们负责客户端程序遣接到b e a n s ,执行事务协调,提供数据存储,管理 b e a n 鲍生命周期等。 e j b 的r e m o t e 接口和e j b 对象:e j 8 客户端对e j b 的请求不是赢接调用存储在e 弼 容器中的e j b 对象的,而是调用请求被e j b 容器所截获,然后传递给b e a n 实例。e i b 容器完成这样静工作是透过生或嚣j 8 对象涞实现静。当然容器要黧戒e j b 对象,不辘 凭您生成,b e a n 供应商必须要提供r e m o t e 接口,在r e m o t e 接口中复制对应的b e a n 南京靛空航天大学硕士学位论文 类公开静联有亵务逻爨。f ,1 8 容器褥摄摄r e m o t e 接霉,生戏e j b 对象。馒英竞隆b e a n 类公刀:的每个商务方法。 e j b 的h o m e 接秘秘h o m e 对象:客户是怎样获褥慰e j b 对象的孳l 用斡蠼,这麓暹 过h o m e 对缘柬实璇的。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 辩象寒实现。 e j b 客户端:e j b 客户端通过j a v a 的命名目录接口( j n d i ) 来定位包禽他们所需 要鹣j a v a b e a n 兹w e b 容嚣。德稍遴遘w e b 容器寒访蠢e j b ,并不褥努囊燕的e j b 弓l 用,而是通过访问e j g o b j e c t 来达到目的。 对予e j b 薅系续鞫麴了鼹,必憋套刭予我髓筑e j b 骚务器弱开发,接下寒我 l 、l 裁 需要对e j b 的分类做简单的介绍。 3 4e j b 的分类 e j b 按照他 f 】性质的不同可以分为会话b e a n ( s e s s i o nb e a n ) ,实体b e a n ( e n t i t y b e a n ) 以及溜息驱动b e a n 。 会话b e a n :它是商务邋程对象,它们执行商务逻辑,商务规则,算法和工作浚程。 它又可以分成状态会话b e a n ( s t a t es e s s i o nb e a n ) 和无状态会话b e a n ( s t a t e l e s s s e s s i o nb e a n ) 。一个虢态会话b e a n 可巍怒奔l 予完成一个持续狠久赘商务遵程,农这 断时间里_ 暾用状态在改变,而这些状态同时也影响这b e a n 的执行,这就必然要求b e a n 绦存不圈瓣羧款状态。无拣态会话b e a n 蘩| l 在整个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 j b 2 0 规范的新的补充。 在e j b 体系结构中存在着这些不同的e j b 的分类,这戡必然嚣要我们的e j b 服务 器对它们疯行不简的管理,而在下面的- - d , 节我们要介缁的就怒e j b 服务器将疑完 成的一系列的功能。 3 5e j b 服务器 一个e j b 服务器模型的实现是我们在这次课题研究中露完成的主要工作,前丽在 套绥e j b 镕系结稳避,我嬲已经掇到了e j b 骚务器辩壤念,健为嘲3 戆运行提供了蕤 j 3 南京靛警航天大挲颈士学位论文 好的坯境。一个最綦本鲍e j b 照务器必须溪实现下嚣魏一系列约功能,这在我髓麴 e j b 体系结构图3 1 中逝得到了体现。 酋先是一个e j b 容器,絮完成以下一些工作: b e a n 的,主命周期管理( 1 i f e c y c l em a n a g e m e n t ) : b e a n 的持久化( p e r s i s t e n c e ) ; 蕤次是辅驹系统: 命名服务( n a m i n g ) : 交荔骚务( t r a n s a c t i o n ) ; 嵌全性保证( s e c u r i t y ) ; 瀵怠援露( m e s s a g i n g ) : 我们对艇个系统的整体设计也悬要完成上面提及的一系列的服务,完成e j b 容器 的凌戆。下露我证饕先对它茨墨个部分 羧一个簿零懿套绥。 3 5 + 1b e a n 的生命周期管理 b e a n 的生命周期就是b e a n 从炙到有,又到消亡的不瞬变化的过程,搿我们的e j b 服务器必须簧对这个过程进行管毽。在实现中,e j b 服务器将这个任务交给了e j b 容 器爿乏完成。e j b 容器根据s j b 规范在需要时或在客户端调用生命周期方法如创建,销 毁耪套我游进幸亍稳斑既楚蘧。 在企业j 呶用中常用大并发的客户请求出现,出于性能的考虑,需要服势器端减少 实铡毯静e j b 数鑫。蠢蘧裁稀要实瑗无获态会话b e a n 帮实体b e a n 缀停静实镶造税秘。 同样,为了减少服务器端e j b 实例占用的内存,e j b 容器也就需要实现有状态会话b e a n 戆键亿羁激活麦琏裁“l 。 下面我们分别对会话b e a n 和寓体b e a n 的生命周期做简单的介绍。酋先是会话 b e a n ,因为它分为无状态会话b e a n 稠寿状态会话b e a n ,戮越它们豹生命蹋麓也憨毒 所不同。下厩我们就通过比较它们的生命周期图来对它们商一个比较全面的认识。图 3 。2 是无状态会话b e a n 的嫩会周期匿。 鬻寮辘空舷天大学矮学毽论文 察器认为瘁璧需 i 要有甄多的实例 b e a n 实例不存在 2 s e | s e s s i o n c o n t g n oe j b r e m o v e o 3 _ e j b c r e a t e o i 一 鬻务擎囤淼现有 l 客户端调用f a b l 中的商务方法 图3 2 簸这张蘑审我翻可港看弱嚣状态会话b e a n 静翻建帮蘧| | 豫裙是交容器来完戏 的。e j b 容器在管理无状态会话b e a n 时引入了实例池机制。所谓实例池机制,就 是撵e j b 容器程麟除e j b 缝终辩,劳不是塞接销毁缀传实镶,嚣是把它锯藏入一 个实例池中。当新的客户请求时,容器无需生成新的实例,可以从实例池中取出 保存懿e j b 组搏实铡米处理请求。 状态会话b e a n 的生命周期与无状态会话b e a n 的生命周期炎似,但是二者又 毒在这下面的鬟要差别“1 : 因为有状态会话b e a n 的每个实例都包禽状态信息,因此它就没有等价的 调度池。 存在钝化和澈滔的过渡。 不要依赖于e j b r e m o v e0 ,对b e a n 的删除,可以通过客户端调用来实现, 毽胃酸在客户越瓣宙容器完成。 对予状态会话b e a n 来说,它没有调度池机制,但怒它加入了对b e a n 的钝化 葶羹激渗。链纯裁是将b e a n 瓣瓣话状态写入辅韵存麓器,它出容器稍爱 e j b p a s s i v a t e ( ) 方法来寓现,e j b p a s s i v a t e ( ) 预先通知b e a n ,它所保留的对话状 态即将技交换斑去,跌嚣适b e a n 释教它爨占翅豹资漯。在客户装要黧蘩利用这 些b e a n 时,再调用e j b a c t i v a t e ( ) 方法来实现对b e a n 的加载。 t 对状态会落b e a n 鹃一个生命周期的管理过程我们诳以图3 。3 来震嚣: 赢京航空航天大学硕士学使论文 图3 ,3 这样我们就简单地介绍了会话b e a n 的生命周期管理,而实体b e a n 的嫩命周期在 这我们不爵介绍。b e a n 的生命属期的管理楚我们的e j b 容器必须簧实现的个功熊, 除就之夕卜对实体b e a n 的持久纯操作,也怒e j b 容耩要完成的工佟,这是我们下一部 分要介绍的内容。 3 5 2 实体b e a n 的持久化 我们程介绍b e a n 的分类时讲到了实体b e a n 它代表了一定的持久数据。作为一个 数据集合,它不霹辘一室存在于内存中,宅捷表豁数撵必矮要餐爨 采存,这氇藏怒我 们所说的持久化。 实体b e a n 筑持久化一般都毫嚣秘方法b m p 零c m p ,一耱是由b e a n 鑫身泉警理它煞 持久化( b m p ) 而另一种就是由容器来管理b e a n 的持久傀( c m p ) 。不管鼹哪一种方 法它 f 的圭要工馋阿以归纳为下霹硬点1 : 实现实体b e a n 组件方法到数据库操作的映射,即将对实体b e a n 的操作转 。换成对数据库的操作。 维护实体b e a n 缀侔字激变量戮数据瘁数据字羧的一致性。都在适当豹时 候,实体b e a n 与关系数据库之间需要进行数攥同步,以保证应用处理数 6 南京航空航天大学硕士学位论文 据的合法性。 b e a n 的生命周期管理及b e a n 的持久化是e j b 容器所要完成的两个重要的功能, 当然除此之外e j b 容器还有其他的一些功能。在我们的e j b 体系结构图中我们可以看 到,要完成一个e j b 服务器的实现,还需要一系列其他的辅助系统。 3 5 3 事务服务 事务就是将数据从一个稳定一致的状态转移到另一个稳定一致的状态的一系列 的操作。它应该具有以下的几个属性,原子性( a u t o m i c i t y ) ,一致性( c o n s i s t e n c y ) , 独立性( i s o l a t i o n ) 和持久性( d u r a b i l i t y ) 。而事务的完成则具有两种方式:提交 ( c o m m i t ) 一个事务可以使得所有的更改成为永久的改变;回滚( r o l l b a c k ) 一个事 务撤销其所有的改变。 事务服务也有人把它称之为交易服务,它作为我们的e j b 服务器的一个辅助系 统,是一个必须要实现的基础服务,而它的主要功能也就是保证事务的四
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业互联网平台入侵检测系统智能化检测与响应优化
- 2025年文化娱乐产业消费者行为分析:市场细分与竞争策略001
- 2026届内蒙古喀喇沁旗锦山蒙古族中学化学高二上期中学业水平测试模拟试题含解析
- 现代诗歌批评性鉴赏课件
- 2025年高中地理教师资格证考试教育评价方法押题真题试卷
- 2026届河北省唐山市重点初中高二化学第一学期期末质量跟踪监视模拟试题含答案
- 2026届四川省广安遂宁资阳等六市化学高二上期末教学质量检测试题含答案
- 2026届陕西省延安市吴起县高级中学化学高三上期末综合测试试题含解析
- 眼睛科普问答题目及答案
- 2026届嘉峪关市重点中学化学高一第一学期期中学业水平测试模拟试题含解析
- 急性st段抬高型心肌梗死
- 幼儿文学课件完整版
- DB6101T3128-2022养老服务规范 助餐服务
- GB/T 21709.8-2008针灸技术操作规范第8部分:皮内针
- 资本论第三卷讲义课件
- 离心式压缩机试车记录
- 穴位敷贴中医护理技术操作规范
- 冷却塔投标文件
- 地下室开槽引流方案
- 青年教师专业成长课题结题报告
- 农村公路安全生命防护工程施工方案
评论
0/150
提交评论