(计算机应用技术专业论文)ejb服务器内核技术的设计与实现.pdf_第1页
(计算机应用技术专业论文)ejb服务器内核技术的设计与实现.pdf_第2页
(计算机应用技术专业论文)ejb服务器内核技术的设计与实现.pdf_第3页
(计算机应用技术专业论文)ejb服务器内核技术的设计与实现.pdf_第4页
(计算机应用技术专业论文)ejb服务器内核技术的设计与实现.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(计算机应用技术专业论文)ejb服务器内核技术的设计与实现.pdf.pdf 免费下载

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

文档简介

南京航空航天大学硕士学位论文 摘要 目i j 口,基于【n t e r n el 的应用正以前所未有的速度向前发展,随着网络技术的不 盹吁更新和应用的1 i 断深入应1 】系统的发展也经历了几个阶段性1 跨越。从传统的计 算模式t f _ 1 分离出来,应川 j 【:2 务器技术是近年来软件业的发展趋势之一。 应用服务器结合了多层分夼式计算模式和面向对象软件开发技术以及组件技术 的优点,降低了应用开发的成本和难度,提高了应用系统开发的可靠性。它对当今电 子商务应用在可靠性,可伸缩性等方面有着非常重要的影响。 另外,j 2 e e 是s u n 公司刚刚推出的一种全新概念的模型,与传统的互联网应用 程序模型相比有着不可比拟的优势。 在本次课题研究中,我们对c o r b a 技术进行了总结研究,同时又开发基于j 2 e e 的w e b 应用,并参读了j b o s s 源代码。在此基础上,我们研究设计了j 2 e e 应用服务 器中的核心部分,即e j b 服务器,提出了开发e j b 服务器的解决方案,对其进行了详 细的描述,并给出了一个最小化的实现。 本次论文重点研究设计了e j b 服务器的内核技术和主体框架,另外,我们的研究 小组中的同学做了e j b 服务器核心服务的研究与设计。 关键词:应用服务器e j b 服务器e j b 容器j 2 e e 一一童塞堕至! 堡奎兰堡主鲎丝墨一一一 一一一 a b s t r a c t n o w a d a y s ,t h ea p p l i c a t i o nb a s e do ni n t e r n e ti sd e v e l o p i n gt a s t e r t h a ne v e r w i t ht h e c o n t i n u a lu p d a t eo fn e t w o r kt e c h n o l o g ya n dd e e p e rr e s e a r c ho np u t t i n gt h et e c h n o l o g yi n t o u s e ,t h ed e v e l o p m e n to fa p p l i c a t i o ns y s t e me x p e r i e n c e ds e v e r a lr e m a r k a b l ep h a s e s t h e a p p l i c a t i o ns e r v e rt e c h n o l o g yt h a ts e p a r a t e s t h ec o m p u t ep a r tf r o mt r a d i t i o n a lc o m p u t e p a t t e r nb e c o m e s o n eo ft h ed e v e l o pt r e n di ns o f t w a r ei n d u s t r yd u r i n gr e c e n ty e a r s t h e a p p l i c a t i o n s e r v e r t e c h n o l o g yi n t e g r a t e s t h e a d v a n t a g e o ft h e m u l t i p l a y e r d i s t r i b u t e d c o m p u t ep a t t e m ,t h eo b j e c t o r i e n t e ds o f t w a r ed e v e l o pt e c h n o l o g ya n dt h e c o m p o n e n tt e c h n o l o g y , r e d u c e s t h ec o s ta n dt e e h n i c a l d i m c u l t y o ft h es o f t w a r e d e v e l o p m e n t e n h a n c e s t h e c r e d i b i l i t y o ft h e a p p l i c a t i o ns y s t e md e v e l o p m e n t i th a s s i g n i f i c a n ti n f l u e n c eo nt h ec r e d i b i l i t ya n df l e x i b i l i t yo fe l e c t r o n i cc o m m e r c e b e s i d e s , j 2 e ei sam o d e lo fb r a n d n e wc o n c e p t st h a ts u np u t st ot h em a r k e t ,i th a sg o ts u p e r i o r i t y t h a tt r a d i t i o n a ln e t w o r k a p p l i c a t i o np r o g r a m c a n n o t c o m p a r e w i t h h e r e ,w er e s e a r c hs u m m a r i l y0 nf o r m e rc o r b a ,d e v e l o paw e bs e r v i c eb a s e d0 1 1 j 2 e ea n dr e f e rt ot h es o u r c ec o d eo fj b o s s b a s e do nt h o s ec o n c e p t s ,w ed e s i g na n dm a k e r e s e a r c ho ne j bs e r v e r ,w h i c hi s t h ec o r et e c h n o l o g ya n db o d yf r a m eo ft h ej 2 e e a p p l i c a t i o ns e r v e ga n ds u g g e s tap r o b l e m r e s o l v i n gs c h e m eo fd e v e l o pe j b s e r v e ro no u r o w n w em a k ead e t a i l e dd e s c r i p t i o no no u rs c h e m ea n dt h es p e c i f i ci m p l e m e n to f b u i l d h a g a ne j bs e r v e rf o rm o s t p a r t t h ep a p e rf o c u s e so nt h er e s e a r c ha n dd e s i g no ft h ec o r et e c h n o l o g ya n db o d yf r a m e o ft h ee j bs e r v e lm y p a n n e rm a k e sr e s e a r c ha n dd e s i g no nt h ec o r es e r v i c eo f t h ee j b s e r v e r k e yw o r d s :a p p l i c a t i o n s e r v e re j bs e r v e re j bc o n t a i n e rj 2 e e 南京航空航天大学硕士学位论文 1 1 课题背景 第一章绪论 随着计算机网络的发展,基于i n t e r n e t 的应用正以前所未有的高速度向前发展。 在此期间,随着技术的不断更新和应用的不断深入,应用系统的发展也经历了几个阶 段性的跨越。从传统的计算模式中分离出来,应用服务器技术是近年来软件业的发展 趋势之一。 随着w e b 应用范围的扩大,基于商业应用的w e b 丌始出现,人们需要w e b 服务 器端提供更为复杂的和更为灵活的应用开发支持。但这种应用通常只适用于构建规模 不大的商业系统,当商业系统进一步扩大时,其扩展性受到了限制,因为在w e b 服务 器最初的设计目的中并不包括对大规模、高性能和高可靠性商业应用的支持。应用程 序服务器( a p p l i c a t i o ns e r v e r ) 的产生正是为了突破这一瓶颈,应用程序服务器完 全不同于w e b 服务器,是专门为基于大负荷高端处理的w e b 应用而设计的全新的运行 环境,该环境能提供很高的可靠性,健壮的程序逻辑处理能力,能轻松地为成千上万 甚至上百万用户提供服务。另一方面,应用程序服务器的产生与软件体系结构的演变 发展也是密切相关的。 应用服务器结合了多层分布式计算模式和面向对象软件开发技术和组件技术的 优点,使处于应用中间层上的应用服务器具有可伸缩,高性能和支持分布式应用等优 点,降低了应用开发的成本和难度,提高了应用系统开发的可靠性,它对当今电子商 务应用在可靠性,可伸缩性等方面有着非常重要的影响。因此应用服务器技术是近年 来软件业的发展趋势之一。 一、计算机应用体系结构的变化 三层体系结构是将两层c s 结构的客户端软件的业务逻辑分离开来,并且在结构 中加入了一个中间层软件柬处理被分离出来的业务逻辑。 图1 1 三层体系结构图 服务器 服务器 客户层 南京航空航天大学硕士学位论文 三层体系结构图如图1 1 所示,应用服务器是三层体系结构的中问层,是整个系 统的核心。一- 方面,它为客户端提供事务逻辑服务,另一方面,代替客户从d b m s 存 取数据,更重要的是它为应用程序提供了开发和运行的环境,可以提供事务处理,负 载平衡,数据库连接管理等有利于提高系统整体性能的一些服务。 应用服务器已成为构建新一代分布式应用程序系统的软件平台,因此对应用服务 器体系结构的研究是目前计算机软件和分布式系统领域研究的前沿课题。 二、计算机软件的发展 随着计算机应用体系结构的变化,计算机软件的发展也进入了一个崭新的时代。 为了适应体系结构的变化,软件开发模式较以往有了较大的改变。软件开发模式的变 化主要面对两个问题:一是软件规模的扩大,二是网络的介入。软件规模的扩大促进 了人们对软件可重用性这个课题的深入研究,从而促进了面向对象技术、组件技术和 框架技术的广泛应用。面向对象技术实现了代码重用,而组件技术是另一种代码重用 技术,它比面向对象技术拥有更广阔的前景。组件技术使用一种标准把可重用代码进 行打包,使用一种通用系统框架对组件进行集中管理。 应用服务器( a p p l i c a t i o ns e r v e r ) 是一个基于组件的中间层集成框架,它为组件 的运行提供工作环境、基础服务和管理等功能。组件封装了业务逻辑和业务数据且依 赖于应用服务器工作。应用服务器和组件各司其职,完成各自的任务,且它们之间必 须有明确的、严格的接口,用于管理组件。应用服务器处于多层模式中的中间层,支 持多种操作系统平台,可提供分布处理功能,在它与w e bs e r v e r 集成后,就形成了 完整的基于w e b 的分布式应用运行环境。 随着i n t e r n e t 技术和电子商务的飞速发展,企业级应用的开发要求不断扩充旧 有应用并增加新的i n t e r n e t 应用,这对分布式网络技术也提出了很高的要求,传统 的i n t e r n e t 应用的开发方式逐渐暴露出越来越多的问题,诸如跨越不同硬件平台、 跨越不同网络环境,不同数据库之间的互操作,多种应用模式并存,系统效率过低, 传输不可靠数据缺乏安全,开发周期过长等等。用户追切需要一种简捷、能够屏蔽 复杂的基础技术细节,使企业计算系统开发、部署与管理变得轻松的企业应用新方式。 中间件抽象了典型的应用模式是构件化软件的一种表现形式。在分布、异构的 网络计算环境中,可以将各种分布对象有机地结合在一起,完成系统的快速继承,实 现对象重用。应用软件制造者进行基于标准的中间件再开发,这样可以大大地减少应 用开发的成本。 通常情况下,企业级应用的开发并不是单一的一种中间件的应用,而是一组中间 件集成在一起,构成一个平台( 包括开发平台和运行平台) 为应用提供一系列的服 务。一种新的多层分布式应用的体系结构应运而生,在这种结构中,应用业务逻辑的 处理主要有中间层来完成。这一中闯层是集成了多种中间件服务的平台,被称为应用 服务器,它将客户端的应用从复杂的业务逻辑中隔离了出来,从而达到了降低应用开 南京航空航天大学硕士学位论文 发成本以及增强系统的可扩展性的目的。 1 2 应用服务器的发展以及国内外研究动态 应h 服务器作为种新兴的基础软件,其相关的研究在固内还处于萌芽阶段。而 国外已经有一些相关的产品开始进入中国市场。目前最具代表性的应用服务器产品主 要是以下几个: 1 、b e aw e b l o g i c 。 b e aw e b l o g i ca p p li c a t i o ns e r v e r 是一款满足w e b 站点对性能和可靠性要求很 高的产品,它同时符合s u n 最新标准。w e b l o g i ce j bd e p l o y e rt o o l 提供了对管理 多个e j b j a r 文件和配噩w e b t o g i cs e r v e r 部署特性和资源的控制。b e aw e b l o g i c a p p l i c a t i o ns e r v e r 可以运行于大型机,提供了对j 2 e e1 4 的全面支持,是目前最 好的应用服务器之一。它提高了开发人员生产力,提高了运营效率,并且提供增强了 w e bs e r v i c e s 和其他集成功能。 2 、i b mw e b s p h e r e 9 1 网络计算模型框架( n e t w o r kc o m p u t i n gf r a m e w o r k ) 是i b mw e b s p h e r e a p p l i c a t i o ns e r v e r 的基石。它强调其在应用开发、数据库和消息服务的集成性。 w e b s p h e r e 以对多种平台的支持和符合最新的j a a 标准提供了开发电子商务应用 的可靠平台。 3 、o r a c l ei n t e r n e ta p p l i c a t i o ns e r v e r9 i 嘲 o r a c l e 的i n t e r n e ta p p l i c a t i o ns e r v e r ( i a s ) 具有独特的优势:它与其余o r a c e 产品相互交融,例如,可以利用o r a c l ei a s 向w e b 部署任何基于o r a c l ef o r m s 应 用的o r a c l ef o r m ss e r v i c e 。 o r a c l e 利用进行了一些扩展的a p a c h ew e bs e r v e r 作为进入o r a c l ei a s 的入口点。o r a c l e 为a p a c h e 开发了插件模块来处理j a v a 小 服务程序、p e r l 程序、p l s q l 程序以及安全套接层上的安全网页。o r a c l ei k s 企业 版配置了o r a c l ep o r t a l 。o r a c l ep o r t a l 提供了部署企业信息用户所需的工具。 4 、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 应用服务器是深圳金蝶公司推出的一款应用服务器,它提供了全中文界 面适用于国内一些中小企业应用。 国内在中间件领域尽管起步较晚,但与国际的差距并不是很大,这主要是因为中 间件产品已有一套公开的国际标准和规范。目前,国内中间件厂商的主要开发目标是 开发自己的应用服务器产品。 1 3 主要的研究工作 我们在从事j 2 e e 开发的过程中,面临着应用服务器选择的问题。在尝试了各种 3 南京航空航天大学硕士学位论文 应用服务器以后,发现了他们各自部有一定的缺陷,此时我们也就萌发了设计丌发 j 2 e e 应用服务器的想法。 要完成一个e j b 服务器,有几个核心部分是必须要实现的:服务器的内核( 包括 服务器的管理控制台和l 、f b 容器部分) 以及基础服务( 名字服务、事务服务) 。因此 我们组成了一个研究, j , f l 【协调分工来研究实现这几个部分。 本次论文的研究内容l 三要包括以下几个方面: 首先是加深对j 2 e e 架构的理解,重点是对e j b 组件技术的掌握。 其次通过阅读资料,对应用服务器的整体设计有了比较明确的认识,e j b 服务器 是j z e e 服务器中的一个重要组成部分,也是我们的研究重点。 然后在研读j 2 e e 规范的基础上,对e j b 服务器的体系结构进行了分析设计。 最后我们参考了一些源代码开放的j 2 e e 应用服务器的核一1 1 , 代码,设计出一个e j b 服务器的模型,给出了部分实现,并进行了一定的技术改进。 因此,本次课题研究的内容可以简要概述为: 我们主要研究j 2 e e 应用服务器中e j b 服务器的设计与实现。在j 2 e e l 4 规范以 及e j b 2 0 规范的基础上,结合c o r b a 技术,提出了开发e j b 服务器的解决方案,并 对其进行了详细的描述,然后给出了一个最小化的实现,为基于j 2 e e 的w e b 应用开 发提供了支撑平台。本次论文重点研究设计了e j b 服务器的内核和主体框架。 1 4 论文的组织 本文的内容组织如下: 第二章介绍了j 2 e e 技术以及其体系结构,并重点介绍了e j b 组件模型 第三章介绍了应用服务器的的概念和设计思想 第四章对e j b 服务器的体系结构进行研究设计 第五章给出了e j b 服务器内核技术的设计与部分实现 第六章对全文的工作进行总结,并给出了进一步研究的方向 南京航空航天大学硕士学位论文 第二章j 2 e e 技术研究 1 2 1 1 e ( 1 a v a 2p l a t f o r mi i n t e r p r i s ee d i t i o n ) 是s u n 公司提出的在分伽式环境中 的一种体系结构,它提供丁一种丛于组件的设计、开发、集成、部署企业应用系统的 方法。1 2 e e 平台提供了多层分布式的应用系统模型、重谓组件l ! l 勺能力、统一的安全 模型和灵活的事务控制。基于组件的j 2 e e 企业应用系统具有平台独立性,所以不受 任何软件产品和任何软件厂家a p i 的约束。 j 2 e e 技术是我们研究j 2 e e 应用服务器的基础技术背景,本章主要就j 2 e e 技术 以及体系结构作出描述,并重点描述了e j b 组件模型。 2 1 j 2 e e 概述 l 、j z e e 介绍 j 2 e e 是s u n 公司推出的一种全新概念的模型,与传统的互联网应用程序模型相 比有着不可比拟的优势。 j 2 e e 降低了开发这种中间层服务的成本和复杂程度,因而使得服务可以被快速 的展开,并能够更轻松的面对竞争中的压力。 j 2 e e 通过定义一种标准的结构来实现它的优势,结构如下: j 2 e e 应用编程模型( j 2 e ea p p l i c a t i o np r o g r a m i n gm o d i n g ) :一种用于开发 多层次、瘦型客户用户程序的标淮设计模型 j 2 e e 平台( j 2 e ep l a t f o r m ) :一个标准的平台,用来整合j 2 e e 的应用程序, 指定一系列的接口和方法 j 2 e e 兼容性测试套件( j 2 e ec o m p a t i b i l i t yt e s ts u i t e ) :一套兼容测试组 件,用来检查产品是否同j 2 e e 平台兼容 j 2 e e 参考实现( j 2 e er e f e r e n c ei m p l e m e n t a t i o n ) :用来示范j 2 e e 的能力 2 、j 2 e e 应用程序模型。j j 2 e e 应用模型定义了一种建筑模型来让多层应用程序实现服务,提供了可伸缩 的、易访闽的、易于管理的方法。j 2 e e 应用模型把实现多层结构服务的工作划分为 二部分: 开发者实现商业和表达逻辑以及由j 2 e e 平台提供的标准的系统服务。开发 者可以依赖于这个平台为开发中间层服务中遇到的系统级硬件问题提供解决方案 j 2 e e 应用模型为中间层应用程序提供了编译一次,任意运行的特点( w r i t e o n c e ,r u na n y w h e r e ) 。j 2 e e 应用程序模型在建立多层应用程序中最小化其复杂程度, 为简化和加速应用程序的开发迈出了重要的一步。 南京航空航天大学硕十学位论文 3 j a v a 技术摧础”1 心:e 应用程序模型起始于j a v a 程序语言和j a v a 虚拟机,它们提供的不断提高 的便携性,安全性以及丌发人员能力的提高是应用程序模型的蟮础。 应用程序馍型通常也括 i l v a ) e a n 组件模型,j a v a b e a n 使得为普通功能编写旗于 - j a v a 技 之的代码更加容易,利用j a v a b e a n 的丌发工具来呵视的定制、组合这些组件。 4 安全性 当其他的应用程序模型需要在每个程序中有特定平台的安全性时,j 2 e e 平台环 境在开发时安全约束便己定义了。 j 2 e e 平台定义了一种标推的公开的存取控制规则,当程序在企业平台上开发时 就己被程序员定义和解释了。j 2 e e 也需要提供一个标准的注册机制以便应用程序不 用将这些注册机制和逻辑相混合,相同的工作要执行于不同的环境中而并不需要改变 源代码。 例如:j 2 e e 应用程序开发人员可以指定几个安全级别( 如,u s e r ,s u p e r u s e r , a d m i n i s t r a t o r ) ,于是当用户访问数据时,他们写出代码来检查当前用户权限的级别。 在开发阶段,开发人员赋予多组用户适当的安全级,使应用程序能够在执行限制操作 之前容易的判断限制级。 5 中间层 j 2 e e 应用程序模型的一个主要优点便是在中间层的多层应用程序。在j 2 e e 平台, 中间层商业功能是由企业j a v a b e a n 实现的。这些企业b e a n s 允许服务开发者集中于 商业逻辑,并且让e j bs e r v e r 处理传送稳定的,可升级服务的复杂工作。 j a v as e r v e rp a g e s 技术和s e r v l e t s 向客户层提供了易于访问的i n t e r n e t 型服 务的中间层功能。j s p 技术使用户接口开发者更加容易的提供向任何浏览器用户提供 动态页面的服务。s e r v l e t s 让基于j a v a 技术的开发者有更大的自由来在j a y a 语言 中提供完全的动态服务。 6 客户层 j 2 e e 平台支持几种类型的客户。许多j 2 e e 服务被设计为浏览器用户服务,这些 服务通过动态生成比i d 页和表单来同客户端实现交互,而j s p 和s e r v l e t s 是通过让 这些商业数据通过某种方式格式化,使客户端更容易来同它工作。这些客户端可以是 运行于浏览器中的j a v aa p p l e t 和基于j a v a 技术的程序。 要注意的是安全是多层结构的关键部分,在j 2 e e 中安全性总是通过平台和管理 员来解决的。在大多案例中,服务方或窖户方都不需要开发者与安全逻辑。 7 基于h t m l 页面的客户 在j a v a 2 中可以实现向用户的浏览器直接提供动态h t m l 页的服务,在j a v a s e r v e rp a g e 技术中通过在h t m l 页中插入j a v a 代码动态生成页面是一种很容易的事 情。在一些例子中,某些服务需要一些综合的代码,这可以通过从j s p 中调用j a v a b e a n 的方法来实现。 南京航空航天大学硕士学位论文 8 j 2 e e 声明 1 2 e e 应用程琦;模型t l j 一个重婴的目标就是 尘应用程序磁小化。实现这一点的一 种方法是提高在j 2 e e 平台上运行普通任务的负担,这些普通任务包括强制一个应用 程序的安全目标,执行它的交易处理,链接它所需要的组件。 】2 陇提供了一种筒堆的,公丌的方式来说i 粥这些行为。这些院明被分散的放在 各部分代码中和开发描述中,开发描述是应用程序包的部分,这些基于x m l 的说明 使应用程序开发者不用修改任何组件就可以改变应用程序的作用。 2 2j 2 e e 的体系结构 一个多层的分布式的应用模型意昧着应用逻辑被根据功能而划分成组件,并且可 以在同一个服务器或不同的服务器上安装组成j 2 e e 应用的这些不同的组件。一个应 用组件应被安装在什么地方,取决于该应用组件属于该多层的j 2 e e 环境中的哪一 层。这些层是客户层、w e b 层、业务层及企业信息系统层( e i s ) 。图2 1 是j 2 e e 体 系结构图: p p l e t b t a l d e i - 。p p l e t 二。_ w e b 1 e j b c o n t a i n e r 。 c o n t a i n e r | + 一 | 2 s e- - - - 一 e n t e r p r i s e l s pp a g e ls e r v l e t f b e a n d a t a b a s e j a v a 莹!j a v a - 翌 ) 1 ic a t i o n 暮量喜n a i 1 i 三墓 1 暮量鲁 i l i 昌 c l e n t j 叫宅 j a f 宣 k jl j 嘎i 黜“一 一j 2 s e j 2 s e 麝誉曰 f 同- i i g :禺 、一, 图2 1j 2 e e 体系结构图 结合上图。我们可以看出,一个基于j 2 e e 的企业应用从结构上来看,可以分成 四部分:分别是客户层、v e b 层、业务层和企业信息层。下面是对它们的描述: l 、客户层( c i l e n tt i e r ) j 2 e e 应用可以是基于w e b 的,也可以是不基于w e b 的。在一个基于f f e b 的j 2 e e 南京航空航天大学硕士学位论文 应用中,用户的浏览器在客户层中运行,并从一个w e b 服务器上f 找w e b 层中的静 态川m l 页面或出j s p 或s i r v l e t s 生成的动态h t m l 页面。 在一个不基于w e b 的j 2 e e 应用程序中,一个独立客户程序,它不运行在一个 h t m l 页面中,而是运行在其它一些基于网络的系统( 比如手持设备或汽车电话) 中 的a p p le 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 类不被视为组件。 2 、w e b 层 j 2 e e 的w e b 组件可以由j s p 页面、基于w e b 的a 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 s 或者a 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 z e e 服务器上,在客户月艮务器系统中, e j b 提供类似于中间件的服务。 e j b 作为一种j a v a 服务器端组件模型,具有完成的事务性和内部安全机制,能 够支持大规模企业分布式应用系统开发。 r 南京航空航天大学硕士学位论文 圳3 规范详细地解释了一些最小但是必须的服务如事务,安全和名字等。软件 厂商根据这些规范要求以保征一个e j b 能使用某个必需的服务。规范并没有说明厂商 如何实现这些服务,因为它允许厂商在不牺牲核心服务的可移植性的前提下来提供一 些增强功能。 2 3 1e j b 组件模型的内部组成 一般,g j g 组件由以下几个部分组成,即组件接口、h o m e 接e l 、e n t e r p r i s eb e a n 类和部署描述文件( m e s s a g e d r i v e nb e a n 不具有组件接口和h o m e 接口) 。 下面分别描述这些组成部分: e j b 的组件接口 客户端通过e j b 的组件接口访问e j b 对象,组件接口中定义了可被客户端访问的 业务方法。组件接口分为远程接口和本地接口,e j b 对象通过远程或本地接口,提供 远程客户访问或本地客户访问的支持。 提供远程接口的e j b 拥有可被远程客户访问或本地客户访问的能力。对于提供了 远程接口的对象,客户可通过标准的j a v ap 4 t 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 编程语 言接口进行。 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 m e 接口。 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 j b 组件,必须分别声明实现如下接口, 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 。 部署描述文件 部署描述文件是用于包含e j b 的运行时属性( 安全性,事务性等等) 信息的文件, 与以上部分一起形成完整的e j b 组件。 南京航空航天大学硕士学位论文 2 3 2e j b 模型的体系结构 e j b 组件体系结构是攮于j 2 e e 规范构建的应用软件系统的主要部分。完整j 2 e e 应用的核心内容是封装了商务逻辑的e j b 组件。 e j b 的上层的分靠式应用程序是基于对象组件模型的,底层的事务服务用了a p i 技术。e j b 技术简化了用j a v a 语言编写的企业应用系统的开发、配置和执行。 对于e j b 体系结构的了解,必将有利于我们的e 如服务器的开发。一个基本的 e j b 体系结构包括下面几个方面: 一个e j b 服务器, 包含于e j b 服务器中的e j b 容器。 运行在e j b 容器中的h o m e 对象,e j b 对象 e j b 客户端 辅助的系统包括:命名服务,事务( 交易) 服务,安全服务等 我们可以用图2 2 来显示它们的关系“”: 图 图2 2e j b 体系结构 下面逐一介绍e j b 体系结构的各个组成部分: e j b 服务器:e j b 服务器作为容器和底层平台的桥梁管理着e j b 容器。它给e j b 容器运行于其中提供了一个组织框架和运行时环境。e j b 服务器为e j b 容器的多重处 南京航空航天大学硕士学位论文 理技术,负载、r 衡和设备存取等问题提供可用的系统服务,并向e j b 容器提供了访问 系统服务的能力。例如:数据库的管理和事务的管理,或者对于其它企业的应用服务 器。在一个e j b 服务器中可能包含有一个或是多个e s 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 s b ,并且使 得客户端程序能进行远程调用。从本质上讲,e j b 容器是客户端程序和b e a n s 之间看 不见的中间人。它负责客户端程序连接到b e a n s ,执行事务协调,提供数据存储,管 理b e a n 的生命周期等。所有的e j b 实例都运行在e j b 容器中。容器提供了系统级的 服务,控制了e j b 的生命周期。 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 类公开的每个商务方法。 e s b 的h o m e 接口和h o m e 对象:客户是怎样获得对e j b 对象的引用的呢,这是通 过h o m e 对象来实现的。h o m e 对象是e 3 b 对象的制造生成库,他的主要功能是生成e 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 的命名目录接口( 5 n b 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 规范,以保证彼此 之间的兼容性。角色的定义有助于理清在应用开发、部署和运行时不同参与者的责任。 不同的角色并不意味着不同的参与者,一个参与者可以有多个角色,一个角色可以被 多个参与者承担。这六个角色分别是: 南京航空航天大学硕士学位论文 e j b 组件丌发者 町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 组件开发者定义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 组件丌发者是商务应 用开发领域的专家,不需蛆精通系统级编程方法以及系统级的组件事务管理、同步、 安全性、分和式计算等细何。 部署者 部署者( d e p l o y e r ) 负责将打包后的e j b 组件部署到e j b 服务器等应用环境中。部 署者应卞良据e j b 组件的部署描述文件中声明的对各种类型的资源,如数据库、安全性 管理等的需求来配置e j b 服务器来为组件提供服务。部署者是e j b 应用环境方厩的专 家。 应用组装者 应用组装者( 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 接口 定义的详细内容。 e j b 服务器提供者 e j b 服务器通常由操作系统开发商、中间件开发商或数据库开发商来提供。因此, e j b 服务器提供者( e j bs e r v e rp r o v i d e r ) 是应用软件系统领域的专家,精通分布式 系统管理、分布式对象管理及其它系统服务。 e j b 容器提供者 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 容器。e j b 容器提供者为e j b 组件开发者提供了一组标准的a p i 来访问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 容器提供者之间的接口标准。 系统管理员 系统管理员( 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 服务器和e j b 容器提供的监测管理工具监测e j b 组件的运行 情况。 2 3 4e j b 组件的分类 e j b 组件模型包含三种类型的e j b s e s s i o nb e a n 南京航空航天大学硕:e 学位论文 e n l i t y b e a n m e s s a g e d r i y e nb e a n 下面将介绍这三种e b 组件类型 1 、s e s s i o nb e a n s e s sio nb e a n 可做傀为客户端程序在服务器上的部分逻辑延伸。每个s e s sio n b e a n 对象对应于特定的客户端,不能在多个客户端间共享。也就是说s e s s i o nb e a n 用于表示运行于服务器端的部分业务过程,作为客户端的代理,管理业务过程或任务, 如客户对账户的借贷操作、汇率的计算,等等这些涉及逻辑、算法和工作流的种种任 务。这些过程都是特定的客户行为,e j b 根据这些过程在运行时创建过程实例、执行 计算或者清除实例。 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 。 无状态的s e s s i o nb e a n ,会话状态只会在单个方法调用中被保持,旦方法调 用结束,组件将丢弃方法调用过程中保持的状态,不保持跨越方法调用的会话状态。 对于有状

温馨提示

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

评论

0/150

提交评论