




已阅读5页,还剩53页未读, 继续免费阅读
(计算机应用技术专业论文)基于校园办证系统的分布式ejb研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
y 6 5 4 1 6 2 基于校园办证系统的分布式e j b 研究 计算机应用专业 研究生 蒲 宇指导教师 卢 苇 随着网络技术和电子商务 ( 政务)的迅猛发展,2 层结构 ( c / s )技术己 经无法胜任, n层结构的 分布式应用体系应运而生。其中,s u n公司的 j 2 e e 在开 发性、 跨平台性、 安全性以 及分布式组件技术的产品化和成熟化上处于领 先地位。随着 b e a的w e b l o g i c , i b m 的w e b s p h e r e 和 s y b a s e的n e w e r a等基 于j 2 e e 的应用服务器产品的推出, 越来越多的开发应用已 经转向了这一领域。 e j b 组件体系作为j 2 e e 技术的核心, 规范了如何用j a v a 开发与部署服务 器端应用业务逻辑组件。 通过e j b , 应用开发者可以为中间件提供复杂的企业 级特性, 并且不用花费精力处理分布式服务 所带 来的 底层问 题。 应用服务 器为 运行在其中的e j b 提供了事务处理、 安全、 资 源共享、 生 存期管理、 线程管理 与同步等服务。 为了 更好地为校园 管理体系服务 提高管 理效率:为学校和学生提供更方 便快捷的办证服务,我们设 计开发了 一个j 2 e e 平台 上的 校园 办证系统。 该系 统将目 前单个的学生与功能 强大的 企业级计算环境结合起来, 充分体现了e j b 组件体系的技术优势和特点。 本文中还讨论了不同构架的优缺点,及他们的适用条件。并且结合各种 不同构架讨论了如何使分布式 e j b 的性能更加优化,使用更有效率。 - 关键字:j 2 e e 技术e j b 组件体系校园办证系统 re s e a r c h o f di s t r i b u t e ej b ba s e d on c a mp u s c e r t i f i c a t e s y s t e m ma j o r o f c o m p u t e r a p p l i c a t i o n p o s t g r a d u a t e p u y u s u p e r v i s o r l u w e i wi t h t h e d e v e l o p m e n t o f t h e n e t w o r k t e c h n o l o g y a n d t h e e - b u s n i e s s , 2 l a y e r s s t r u c t u r e c a n n o t f i t f o r s i t u a t i o n . n l a y e r s s t r u c t u r e s w a s c r e a t e a mo n g t h o s e s t r u c t u r e s , j 2 e e w h i c h ma d e b y s u n c o mp a n y w a s i n a d v a n c e o n s o me a s p e c t s s u c h a s d e v e lo p me n t , m u l t i - p l a t f o r m , s e c u r i t y , ma t u r i t y a n d p r o d u c t i o n o n d i s t r i b u t e c o m p o n e n t t e c h n o l o g y . a s t h e b e a s we b l o g i c , i b m s we b s p h e r e a n d s y b a s e s n e w e r a a p p l i c a t i o n s e v e r s w e r e c r e a t e d , mo r e a n d mo r e d e v e l o p m e n t s a n d a p p l i c a t i o n s w e n t t o t h i s f i e l d . e j b c o m p o n e n t s s y s t e m w h i c h m a k e t h e r u l e s o f h o w t o d e v e l o p a n d d e p l o y l o g i c c o mp o n e n t o n t h e s e r v e r s w a s t h e c o r e o f t h e j 2 e e s t r u c t u r e . t h r o u g h t h e e j b , t h e a p p l i c a t i o n d e v e l o p e r c a n p r o v i d e c o m p l e x e n t e r p r i s e c h a r a c t e r s t o m i d d l e w a r e s w i t h o u t c o n s u m e e n e r g y t o h a n d l e t h e l o w e r p r o b l e m w h i c h m a d e b y d i s t r i b u t e s e r v i c e . a p p l i c a t i o n s e r v e r s p r o v i d e t h e e v e n t - h a n d i n g , s e c u r i t y , r e s o u r c e s h a r e d , e x i s t p e r i o d m a n a g e m e n t a n d s y n c h r o n i s m s e r v i c e f o r e j b . i n o r d e r t o i m p r o v e t h e e ff e c t i v e o f t h e ma n a g e m e n t o n c a m p u s , o ff e r t h e e a s e a n d q u i c k s e r v i c e s f o r s t u d e n t s , w e d e s i g n e d a n d d e v e l o p e d a c a mp u s c e r t i f i c a t e h a n d l i n g s y s t e m . t h i s s y s t e m u n i t e d s i n g l e s t u d e n t a n d e n t e r p r i s e c o u n t i n g , a n d e x p r e s s t h e t e c h n i q u e a d v a n c e a n d c h a r a c t e r s o f t h e e j b . wh a t i s m o r e , w e a l s o d i s c u s s e d t h e a d v a n t a g e , d i s a d v a n t a g e a n d c o n d i t i o n s o f d i ff e r e n t s t ruc t u r e s . an d d i s c u s s e d h o w t o l e t t h e d i s t r i b u t e mi d d l e wa r e mo r e e ffe c t i v e . ke y wo r d s : j 2 e e t e c h n i q u e , e j b c o m p o n e n t s y s t e m , c a m p u s c e r t i fi c a t i o n h a n d l i n g s y s t e m 四川人学硕士毕业论文 ( 2 0 0 4 ) 引言 随着网络技术和电子商务 ( 政务)的迅猛发展,越来越多的企业意识到 i n t e r n e t 对社会经济的本质影响。这种向信息经济的转移趋势迫使许多企业采 用新的技术, 更有效的利用各自的信息资源以求在竞争中处于有利地位。 因此, 如何将新技术运用到现有的, 以前遗留的系统上来, 使之有机结合成为企业最 重要的需求。 企业应用开发的复杂性要求增加了, 企业级应用的开发面临着新 的挑战。 传统的2 层结构( c / s ) 技术已 经无 法胜任, 于是产生了o m g 的c o r b a , s u n 公司的基于 j a v a 的j 2 e e 和 m i c r o s o f t 的. n e t 等n 层结构的分布式应用体 系。其中,s u n公司的 j 2 e e在开发性、跨平台性、安全性以及分布式组件技 术的产品 化和成熟化上处于 领先 地位。 随 着b e a 的w e b l o g i c , i b m 的w e b s p h e r e 和s y b a s e 的n e w e r a 等基于j 2 e e 的 应用服务器产品的推出, 越来越多 的开发 应用己经转向了这一领域。 e j b 组件体系作为j 2 e e 技术的 核心, 规范了如何 用j a v a 开 发与 部署服务 器端应用业务逻辑组件。 通过 e j b , 应用开发者可以为中间件提供复杂的企业 级特性, 并且不用花费精力处理分布式服务所带来的底层问题。 应用服务器为 运行在其中的e j b 提供了事务处理、 安全、资源共享、生存期管理、线程管理 与同步等服务。自 从 1 9 9 8 年e j b 1 . 。 提出以 来, 一直被不断的修改和完善,目 前 e j b 2 . 1 的草案己 经发布。 在本文中,我们为了更好地为校园管理体系服务提高管理效率,为学校 和学生提供更方便快捷的办证服务,设计开发了一个 j 2 e e 平台上的校园办证 系统。该系统将目前单个的学生个体与功能强大的企业级计算环境结合起来, 充分体现了e j b 组件体系的技术优势和特点。 j 2 e e 是一 个复杂的体 系构架, 不同 的应用,不同的 条件, 不同的 软硬件 情况下使用不同的构架才会使整个体系结构达到最优化。 本文将在后面部分详 细讨论不同构架的优缺点, 及他们的适用条件。 并且结合各种不同构架讨论了 如何使分布式e j b 的性能更加优化,使用更有效率。 存林园办证系统开发过程中,我作为项 目 负责人,从系统需求调研到最 四川大学硕士毕业论文 ( 2 0 0 4) 终的 编码实 现, 我既作为负责 人进行项目 管理也作为实际的参与者承担一定的 实际工作。我所作的具体 工作如下: 工负责系统分析与设计 h使用 叮b 进行系统的设计 工 1 1完成状态转化与分析 工 v 完成程序的编码 四川大学硕士毕业论文 ( 2 0 0 4 ) 2 . 企业应用体系结构 企业级应用的系统结构本 质上是n 层的,即n 层体系机构。 任何良 好的 企 业应用软件部署都将软件逻辑分成多 个层面, 让每个层面完成整体部署中的 不同任务, 而每个层面通常有一个或多个组件。 这种分层结构是逻辑上的抽象, 与物理上的结构没有关系。 将应用逻辑划分为不同的层面的目的就在于使每个 层面相互独立。以下是典型的分层方式: 表示层:包括处理用户界面和用户交互的组件口例如,用各种语言开发 的独立运行的应用程序的 表示层; 基于w e b 技术的 应用的表示层, 它可以 使用 j a v a s e r v l e t, j s p或者j a v a a p p l e t . 商务逻辑层:包括解决商务问题的组件,可能是一个或多个协同工作的 组件。 这些组件通常具有很高的性能,例如, 价格计算或检索算法。这些组件 通常 使用功能强大且稳定的语言作为开发工具,如j a v a , c + + o 数据层:是系统中相对稳定持续的部分,它向商务逻辑层提供数据,通 常由一个或者多个数据库系统组成。 2 . 1 二层应用体系结构 us模式,即 c l i e n t / s e r v e r ( 客户机/ 服务器) 结 构,它是一种两层结构 的系统, 也是一种分布式计算机结构。 顾名思义, us 模式主要有两部分组成: 客户机和服务器。 数据通常存放在服务器上, 而客户端界面及一些应用程序存 放在客户机上,它们之间通过网络连接。如图2 . 1 所示。 客户机 服务器 图 2 . 1 us结构 这样就能在功能上将复杂的计算任务分布到客户机和服务器两种环境 中, 应用软件在前台的客户机上运行, 而数据库管理软件在后台 服务 器上运行。 把安全管理、 数据完整性控制、 数据存取、 部分应用逻辑等需要集中管理的工 作集中在服务器上完成. 而把应用的设计、 开发、 部分完整性工作 放在客 户端 四川大学硕士毕业论文 ( 2 0 0 4 ) 完 成 ( 如n o t e s d e s i g n e r ) 。 在 应 用 开 发 好后 , 它 既 可以 操 作 可 连 接的 不同 数 据库,又可以安装在多个客户机上操作同一数据库。 2 . 1 . 1优点 ( 1 )提供数据和服务的无缝集成 通过 us 结构的数据库管理系统, 可以很容易地实现一个组织中原有数据 库与应用程序的集成。 ( 2 )联机事务处理提供很高的性能 由于 c / s 体系结构合理地划分了功能, 均衡地分配了c / s的负载, 减少了 网络传输, 同时也减轻了客户机的处理任务, 因而能够提供高的事务吞吐量和 短的响应时间。 ( 3 )实 现分布式 数据处 理 c / s结构是一个有机结合的网络群体, 通过网络将物理上分散的具有自治 功能的多个计算机系统互联,实现信息交换,资源共享,互操作和协同工作。 2 . 1 . 2缺点 ( 1 )客户端应用占用大量的系统资源, 必须安装操作系统、网络软件、 特定的 中间件 ( 如 s y b a s e n e t l i b r a r y )以及应用软件系统才能工作,因此系统安 装、升级、维护较复杂。 ( 2 )由 于计算技术的快速发展, 企业的 硬件、网 络操作系统、 数据库系统、 开发工具、应用系统的升级周期越来越短,因此系统的维护费用较高。 ( 3 )只支持具有一个数据源,基于局域网的系统。 2 . 2 三层应用体系结构 c l i e n t / s e r v e r 结构因为其灵活性得到了极其广泛的应用。 但对于大型软 件系统而言, 这种结构在系统的部署 和扩展 性方面还是存在着不足。工 n t e r n e t 的 发展给传统应用软件的 开发带来了深 刻的 影响。 基于 工 n t e r n e t 和w e b 的软 件和应用系统无疑需要更为开放和灵活的体系结 构。 于是, 一种 新的体系结构 应运而生,这就是为我们所知的 “ 三层结构” 三层结构主要是有三部分组成: 四川大学硕士毕业论文 ( 2 0 0 4 ) 客户层 ( c l i e n t t i e r )用户接口 和用户请求的发出 地,典型应用是网络浏 览器和胖客户 ( 如j a v a 程序)。 服务器层 ( s e r v e r t i e r )也称为中间层或业务逻辑层,典型应用是w e b 服 务器和运行业务代码的应用程序服务器。 通常提供业务逻辑、 事物调度以及 与数据库的连接机制,充当客户层与数据层之间的桥梁。 数据层 ( d a t a t i e r ) 典型应用是关系型数据库和其他后端 ( b a c k - e n d ) 数 据资源,如 o r a c l e 和s a p . r / 3 等。 其典型模型如图2 . 2 所示。 图2 . 2三层结构典型模型 从图2 . 2 可知, 在三层体系结构中, 客户 ( 请求信息) 、 程序 ( 处理请求) 和数据 ( 被操作) 被物理地隔离。 三层结构是个更灵活的体系结构, 它把显示 逻辑从业务逻辑中分离出来, 这就意味着业务代码是独立的, 可以不关心怎样 显示和在哪里显示。 业务逻辑层现在处于中间层, 不需要关心由哪种类型的客 户来显示数据,也可以 与后端系统保持相对独立性, 有利于系统扩展。 221b / s 模式 b / s 模式, 即b r o w s e r / s e r v e r ( 浏览器/ 服务器) 模式。 它是三层结构中最 典型也是应用最广泛的一种模式: 是随着i n t e r n e t 技术的兴起, 对c / s 结构 的一种变化或者改进的结构。 在这种结构下, 用户界面完全通过w w w 浏览器实 现, 一部分事务逻辑在前端实现, 但是主要事务逻辑在服务器端实现, 形成所 谓3 层结构。如图2 . 3 所示。 四川大学硕士毕业论文 ( 2 0 0 4 ) 表 示层功能层 数据层 图2 . 3 b / s 结构 b / s 模式实际 上就是 要建立增加w e b 服务的c / s 模式,即把传统的c / s 模 式中的服务器分解成一个 w e b服务器和一个或多个数据库服务器。 其中, 第一 层是表示层, 即浏览器。 主要完成客户和后台的交互及最终查 询结果的输出功 能。 客户端向u r l 所指定的w e b 服务器提出 服务申 请, w e b 服务 器通过h t t p 把所需的文 件资料传送给用户。 客户端 接受文 件信息, 并在浏览器上输出。 第 二层是功能层, 指具有c g i ( c o m m o n g a t e w a y i n t e r f a c e ) 或o d b c ( o p e n d a t a b a s e c o n n e c t i v i t y ) 接口 的w e b 服务器。 主要完成客户的 应用功能。 w e b 服务器接 受客户申 请, 首先需要执 行 c g i 或其它 服务程 序与数据库连接, 再由w e b 服务 器传至客户端。第三层为数据库服务层 ( 数据层)。 数据库服务器接受客户请 求后独立地进行各种运算。由于处理完全交给了数据层完成, 表示层、 功能层 发生变化都不会影响到数据层的变化。 2 . 2 . 2三层结构的优点: ( 1 ) 通过将整个系统分为不同的逻辑块,大大降低了应用系统开发和维护的 成本. 三层结构将表示部分和业务逻辑部分按照客户层和应用服务器相分离, 客户端和应用服务器、 应用服务器和数据库服务器之间的通信以及异构平台之 间的数据交换等都可以 通过中间 件或者相关程序来实 现。 当 数据库或者应用服 务器的业务逻辑改 变时, 客户端并不需要改变, 反之亦然, 从而大大提高了系 统模块的复用性,缩短了开发周期,降低了维护费用。 ( 2 )系统的扩展性大 大增强 模块化使得系统很容易在纵向 和水平两个方向 拓展: 一方面可以 将系统升 级为更大、更有力的平台,同时也可以适当增加规模来增强系统的网络应用。 由于摆脱了系统同构性的限制,使得分布数据处理成为可能。 四川人学硕士毕业论文 ( 2 0 0 4 ) ( 3 )客户端 无须专 用软 件, 维护简单。 ( 4 ) 信息资 源共享程度高。 h t m l 是数据格式的一个开放标准, 大多数软件均 支持h t m 同时m 工 m e 技术使得b r o w s e r 可访 问多 种格式文 件。 四川大学硕士毕业论文 ( 2 0 0 4 ) 3 . j 2 e e 构架和e j b 组件体系 3 . 1 j a v a 2 平台企业版 ( j 2 e e )多层构架 多层组件体系结构提出以后, 市场上出现了多种具体的解决方案,其中 最为流行和成熟的是s u n 公司 提出的基于j a v a 语言的服务器端组件体系结构 规范j 2 e e . j 2 e e 是一种4 层构架 ( 见图11 ) , 包括客户层 ( 有时被称为表现 层或应用层) , w e b 层, e j b 层 ( 有时候称为业务层) 和e 工 s ( 企业信息系统层) 。 每层致力于给应用程序提供一类特定的功能。 客户层包含与用户交互的程序。这些程序提示用户输入,然后把用户的 响应转化成请求, 发往处理请求的组件, 并把结果返回到客户程序。 虽然大部 分客户的请求被w e b 层上的组件处理了, 但事实上处理客户端请求的组件可以 在任何层上运行。 客户端程序也把服务器的响应转换成文本并呈现给用户的屏 幕输出。 w e b 层为j 2 e e 应用程序提供i n t e r n e t 功能。 在w e b 层上运行的组件使用 h t t p协议接收客户端请求,并将对请求的响应发送给可以驻留在任何层上的 客户端。客户端是发出请求的任何组件。 e j b 层包含j 2 e e 应用程序的业务逻辑。一个或者更多的e j b 驻留在这一 层, 每一个e j b 都包含被客户端间接访问的业务规则代码. 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 访问的 是e i s 层上的组件和资源, 如: d b m s . e i s 是连接j 2 e e 应用程序到企业骨干网上的资源和遗留系统。 e 工 s 是j 2 e e 应用程序与各种其他技术的直接或间接的接口, 其中包括d b m s 和作为维持企 业运行关键任务系统的一部分主机。 在e i s 上运行的组件使用c o r b a 或者j a v a 连接器与各种其他资源通信。 四川大学硕士毕业论文 ( 2 0 0 4 ) 组件 组件 组料 w已 b 层 组件 e j b层 组件 组料 e i s层 组个 卜组利 图3 . 1 j 2 e e 的4 层结构 3 . 1 . 1客户层的实现 在j 2 e e 规范中指出,客户层有两种组件,它们是a p p l e t 客户端和应用 程序客户端。 a p p l e t 是一种w e b 客户端使用的组件, 它在支持j a v a 浏览 器的 a p p l e t 容器内 运行。 a p p l e t 使用浏览器作为用户界面。 应用程序客户端是一个j a v a 程序, 它在应用程序客户端容器内运行, 应 用 程 序 客户 端 容 器指的 是j a v a 2 运行 环 境( j a v a 2 r u n t i m e e n v i r o n m e n t , j r e ) 标准版。 应用程序有它自己的用户界面, 可以访问多层构架中的各层, 这取决 于a c l 的配置,通常应用程序只访问w e b 层。 胖客户端是第三种客户端,不过胖客户端不是一种客户层组件,因为它 使用j a v a 以外的其他语言编写的, 所以j 2 e e 没有定义胖客户端容器。 胖客户端和应用程序客户端类似。 他们都是应用程序,都有自己的用户 界面,另外,都能用a t t p , s o a p , x m l 或者是其他适合的协议访问j 2 e e 环境 中的各层,这些取决于a c l 的配置。 四川大学硕士毕业论文 ( 2 0 0 4 ? a . 1 . 2 w e b 层的实现 在 j 2 e e多层架构中, w e b 层具有几种功能,这几种功能都是通过h t t p 协议提供给客户端访问。 这些功能为运行在w e b 层上的组件与其他各层以及客 户端提供中介作用。这些中介行为包括: i接收其它软件用p o s t , g e t 和p u t 操作发送的请求。这些操作都 是h t t p 传输的一部分。 i i , 传输诸如图像和动态内容的数据。 在w e b 层工作的有两种组件: s e r v l e t 和j s p , 尽管在很多情况下它们被委 派给应用程序或者e j e 层。s e r v l e t 是驻留在w e b 层的j a v a 类,客户层的浏 览器可以发出 请求并调用它。s e r v l e t 与s e r v l e t 容器映射的u r l 相关联。 对s e r v l e t 的请求包含这个s e r v l e t 的u r l ,并用h t t p 协议从客户层传 送到w e b 层。 请求会产生新的s e r v l e t 实例或是使用己有的s e r v l e t 实例, 然 后这个s e r v l e t 接收所有w e b 层传递给他完成服务所必需的参数。 输入参数是 客户端请求的一部分。 在必要的时候, s e r v l e t 的实例要通过访问w e b 层或是其他层的组件和资 源来完成客户端所请求的服务, 这取决于s e r v l e t 代码中的业务逻辑。 一般情 况下,s e r v l e t 产生一 个 h t m l 输出流 ( 处理结果)返回给w e b 服务器,然后 w e b 服务器再将数据传送给客户端。输出流是一个动态w e b 页面。 j s p 与s e r v l e t 有类似之处: j s p 也与一个u r l 相关联,可以从客户端请 求调用它。但是j s p 在几个方面和s e r v l e t 不同, 这取决于所用的j s p 容器。 某些j s p 容器在客户端第一次调用j s p 时将它转换成s e r v l e t , 然后该s e r v l e t 被编译并加载到内存。 s e r v l e t 会一直驻留在内存中,当客户端以后再调用这 个j s p 时, w e b 服务器就可以 直接调用这个s e r v l e t 而不需要熏新将j s p 转化 成s e r v l e t 后再编译。 其他j s p 容器则会把j s p 文件预编译成 j a v a 文件, 看 起来就像一个s e r v l e t , 然后再将这个. j a v a 文件编译成. c l a s s 文件。 j s p 和 s e r v l e t 使用的业务逻辑包含在一个或多个 e j b中,可以从 j s p 和s e r v l e t 中 调用这些e j b 。 尽管代码的形式不同, 但调用的代码是一样的。 j s p 使用定制标记访问一个e j b ,而s e r v l e t 则可以 直接访问。 四 川大 学 硕 士 毕 业 论 文( 2 0 0 4 ) 3 . 1 . 3 e j b 层的实现 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 服务器有一个 e j b 容器,在容器的内部放置e j b , e j b 服务器和 e j b 容器一起负责底层的系统服务, 这些底层的系统服务是实现 e j b的业务逻辑所 需要的,他们包括:资源池,分布式对象协议,线程管理,状态管理,过程管 理,对象的持久性,安全性,部署时间的配置。 使 用 e j b 服务器 和e j b 容器技术的最明显好处之一就是这种技术能 够充 分发挥程序员的 专业技能。 熟 悉业务逻辑程序设计的程序员不必关心系统服务 的编码,同样, 专门从事系统服务编码的程序员只需关注系统服务, 无需熟悉 业务逻辑编程。 e . 1 13 层是本文的重点,将在后面的章节中作更加详细的分析。 3 . 1 . 4 e i s 层的实现 企业信息系统 ( e i s )层是 j 2 e e体系构架与 j 2 e e 外部资源的连接。包括 各种资源如遗留系统,d b m s ,以 及第三方提供的j 2 e e 组件可访问的系统。 e i s层给 j 2 e e应用程序的开发者提供了灵活性,因为开发者可以利用企 业现有的系统和资源,而不必在 j 2 e e 中重复实现它们。 另外,开发者可以利用市场上现有的商业软件,因为e i s层为 j 2 e e 应用 程序和非j 2 e e 软件提供了可 连接性, 这种连接是通过c o r b a 和j a v a 连接器或 者其他适宜的协议实现的。 ,j a v a连接器技术使开发者可以 为遗留 系统和第三方软件创建 j a v a连接 四 川 大学 硕 士 毕 业 论 文( 2 0 0 4 ) 器。 连接器定义了j 2 e e 应用程序 和非j 2 e e 软 件之间 进行通信所需的 所有要素, 包括互联的规则和进行安全传输的规则。 3 . 1 . 5 j 2 e e 其他技术规范 j 2 e e 其他技术规范, 主要包括c u j a v a远程方法调用( r mi ) 和 r mi - i i o p r m 工是一种远程调用其他计算机 上方法的 机制, e j b 需要r m i 作为组件和客户端之间 底层的 通信a p i a r m 工 一 工 t o p 作为 s u n开发的一个 r m i 版本,使用 o m g 的 i 工 o p 作为通信协议,具有很好的 健壮性,也便于 j 2 e e 部署和 c o r b a 系统的集成。 j a v a命名与目 录接口( j n d i ) j n d i 是一个命名和目录服务的标准,e j b 通过 j n d i 在网络上查找分布式组件。 这种方式便于开发高移植性的应用程序。 j d b c j d b c提供了访问关系型数据库的标准 a p i 。客户端调用执行 j d b c 驱动程序的标准a p i , 然后由 这些a p i 访问 某种特定的数据库。 j t a 和 j t s j a v a事务处理 a p i ( j t a ) 和 j a v a 事务处理服务 ( j t s ) 为分布 式组件提供了事务处理机制,可以保证操作能够正确完成。 j a v a 消息服 务( j m s ) 消息服务为分布式对象间 提供了可靠的异步 通信 方式 。 除此之外还有提供电子邮件功能的 j a v a m a i l 、访问现有信息系统的连接 器体系j c a 、解析 x m l的j a x p 、执行系统安全操作的j a a s 等。 3 . 2 e j b 体系结构 e j b 2 . 0 定义了三种类型的企 业b e a n 。 会话b e a n 负责 管理整个过程或任务, 处理不同 的企业 b e a n 之间的关系, 代表了 商务逻辑。 实体 b e a n 是为 现实 世 界的对象建造的模型, 这些对象通常是数据库中的一些持久记录, 代表了商务 上的实体。消息驱动 b e a n基于 j a v a 消息服务 ( j ms ) ,通过响应消息队列中 的事件实现异步通信,从而客户或者b e a n都无须依赖对方的直接响应。 每一个 e j b由下列部件构成:企业 b e a n类、企业 b e a n客户一视图 a p i 和部署描述符。 企业 b e a n 类是一个j a v a 类, 具体实现了业务方法以及企业b e a n 对象生命周期方法。 客户一视图a p i 是由h o m e 接口 和 r e m o t e 接口构成。 h o me 接l7 定义了c r e a t e , r e mo v e 及查找方法,它们控制着企业 b e a n 对象的生命周 四川大学硕十毕业论文 ( 2 0 0 4 ) 期。 r e m o t e 接u定义了客户能够调用的业务方法。客户不是直接调用b e a n 类 的实例的 方法, 而是调用h o m e 接口 和r e m o t e 接口中的 方法。 h o rn 。 接口 和 r e m o t e 接l 7 声明的方法通过命名约定与企业b e a n 类中相应的方法实现关联。 部署描述符是一个 x ml文档,它说明性地定义了企业 b e a n的某些行为,这 就允许组装者和部署者改 变企业b e a n 运行的 方式, 如声明e j b 容器如何执行 生命周期管理,持久性,事务处理控制、安全措施等服务。 3 . 3 e j b 种类 在最新的e j b 2 . 0 标准中,定义了三种e j b : 会话b e a n ,实体b e a n 和消 息驱动b e a n . 3 . 3 . 1会话b e a n 会话b e a n 是 e j b 的一种, 它表示的是为客户端所做的工作, 主要用于建模 和实现企业级应用系统的应用逻辑, 包括商务逻辑、 算法或工作流, 如从信用 卡划款,完成一份订单, 执行计算, 清算库存物资等。作个比喻, 会话b e 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 的存活周期短, 不严格的讲, 它的生命周期就像一个会话那样短, 或者其生命周期与客户端的会话周期相当。 会话b e a n 可分为有状态 ( s t a t e f u l )和无状态 ( s t a t e l e s s )两类。无状 态会话b e a n 不保持与客户端的多方法调用, 每次方法调用后就清除属于前 次方 法调用的信息, 它的所有实例都是相同的, 因而可以被多个客户多次调用。 而 状态会话b e a n 保留了与客户端之间的对话,这种对话可能有多个方法调用参 与。对话期间,b e a n 保留客户端当前的状态。 编写 一 个会 话 b e a n 类时 , 该 类 必 须实 现j a v a x . e j b . s e s s i o n b e a n 接口 : p u b l i c i n t e r f a c e j a v a x . e j b . s e s s i o n b e a n e x t e n d s j a v a x . e i b . e n t e r p r i s e b e a n p u b l i c a b s t r a c t v o i d s e t s e s s i o n c o n t e x t ( s e s s i o n c o n t e x t c t x ) t h r o w s 四川大学颂 : 毕 业论文 ( 2 0 0 4 ) j a v a . r m i . r e m o t e e x c e p t i o n ; p u b l i c a b s t r a c t v o i d e j b p a s s i v a t e ( ) t h r o w s j a v a . r m i . r e m o t e e x c e p t i o n ; p u b l i c a b s t r a c t v o i d e i b a c t i v a t e 0 t h r o w s j a v a . r m i . r e m o t e e x c e p t i o n ; p u b l i c a b s t r a c t v o i d e i b r e m o v e o t h r o w s j a v a . r m i . r e m o t e e x c e p t i o n ; 其中e j b p a s s i v a t e ( ) 和e j b a c t i v a t e ( ) 不适用于无状态会话b e a n . 3 . 3 . 1 . 1 无状态会话 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 j b c r e a t e ( ) 方法后,因为状态无法保留,让无状 态会话b e a n 具有多 种e j b c r e a t e 方法就变的毫无意义。 所以所有无状态会话 b e a n 都只有一种e j b c r e a t e 方法, 且不带任何参数。 在客户端连接之前,e j b 容器集中无状态会话b e a n 实例,当客户方法调用 时,容器从b e a n 池获取一个实例, 让它响应方法调用,用完后返还到b e a n 池。 这使得e j b 容器能够为不同的客户端动态地分配b e a n 实例。 采用b e a n 实例池的 优点是, b e a 。 池中的b e a n 实例可以比 客户端实际所需的 少。 这是因为客户端需要“ 思考时间”, 如网络滞后时间、客户端的决策时间 四川大学硕 f - 毕业论文 ( 2 0 0 4 ) 等。当客户端思考时, e j b 容器可以 使用这些b e a n 实例为其他客户服务, 节约 了系统资源。许多商用的e j b 容器可以随时间动态地改变b e a n 实例池的大小, 使得负载需求变化时, b e a n 实例池大小随之改变。 需要明确的是b e a n 实例与e j b 对象并不是一一对应的关系,b e a n 可在任何 时候被重新分配给另外一个e j b 对象, 这取决于e j b 容器所采取的策略。 当容器 决定改变b e a n 池的大小时, 它就生成或清除b e a n 实例, 这完全与客户端代码无 关。h o m e 接口指定的c r e a t e 和r e m o v e 方法只是用于生成和清除e j b 对象,并不 等同于真正的b e a n 的生成和清除。 3 . 3 . 1 . 2状态会话 b e a n 状态会话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 i o n )操作将对话状态安全地存储起来, 使得内 存等资源能被重新使用。 当被挂起的b e a n 原先的客户端有对其触发方法 调用时,e j b 容器采用激活 a c t i v a t i o n )操作,被挂起的对话状态将重新交 还给b e a n 。在挂起和激活的策略上,大多数e j b 容器采用最近最少被使用的挂 起策略l r u ( l e a s t r e c e n t l y u s e d ),采用j u s t - i n - t i m 。 的激活策略,即有客 户请求时才发生。 当执行挂起和激活操作前, e j b 容器会调用e j b p a s s i v a t e ( ) 和 e j b a c t i v a t e ( ) 方法通知b e a n , 使b e a n 能在此之前完成自己 所需的 特定操作。 图3 . 2 表示了状态会话b e a n 在生命周期内的状态转换。 四川人学硕士毕业论文 ( 2 0 0 4 ) 发生招时 图3 . 2状态会话b e a n 生命周期内的状态转换 3 . 3 . 2实体 b e a n 实体b e a n 是能够存放在永久性存储空间中的持久对象, 主要用于建模和访 问企业级应用系统的应用数据。 类似会话b e a n 的比喻, 实体b e a n 类似语法中的 名词,因为它本身代表的是系统中的数据对象, 从j a v a 技术的角度来说, 他也 是以 j a v a 编写的 用于缓存( c a c h e ) 数据库中 信息的 数据 对象。 它实现了面向对象的模型到关系数据库的映射。 当更新内存中的实体b e a n 实 例时, 数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品分销与渠道拓展合作协议通知书
- 城市供水供电合同及维修服务协议
- 企业文化活动策划与执行模板多样化需求满足版
- 科学睡眠知识培训记录课件
- 工程车辆日常承包合同
- 科学探究配套课件
- 商业保密协议及违约责任约定手册
- 产品质量控制与改进工作流程模板
- 肾部分切护理查房
- 农业科技在农村的应用推广合同
- 全科医学病例讨论
- 小学美术大单元教学设计与实施研究
- 新生儿惊厥护理
- 教育机构竞品分析报告
- 2025中国人民抗日战争暨世界反法西斯战争胜利80周年课件PT
- 2025年6月黑吉辽蒙高考地理真题完全解读
- 2025年连云港市中考英语试卷真题(含答案解析)
- 《备课专业化》读书心得
- 口腔健康与全身系统性疾病关联机制
- 消防部队改革转隶课件
- 2025年安徽合肥包河区演艺集团有限责任公司招聘笔试参考题库含答案解析
评论
0/150
提交评论