(计算机软件与理论专业论文)基于j2ee的应用组件的设计与实现.pdf_第1页
(计算机软件与理论专业论文)基于j2ee的应用组件的设计与实现.pdf_第2页
(计算机软件与理论专业论文)基于j2ee的应用组件的设计与实现.pdf_第3页
(计算机软件与理论专业论文)基于j2ee的应用组件的设计与实现.pdf_第4页
(计算机软件与理论专业论文)基于j2ee的应用组件的设计与实现.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

沈阿11 :业大学硕十学位论文 摘要 随着w e b 技术的迅猛发展和企业级应用同趋复杂,软件结构设计的合理性成为开发 企业级应用平台的关键,能否使用可重用的体系架构降低软件开发成本是软件设计的核 心问题。j 2 e e 体系架构己经成为企业级应用的首选平台,j 2 e e 平台使用多层分布式的应 用模式,根据其功能分成多个组件,各种不同的应用组件分布和依赖于不同机器上的 j 2 e e 容器中。基于j 2 e e 的w e b 开源框架由于其本身具有的各种优势,正在为越来越多的 企业所接受和使用。 本文对j 2 e e 多层应用体系结构和j 2 e e 组件技术进行了详细分析,在基于j 2 e e 提供的 标准组件基础之上,结合实际项目验证的符合j 2 e e 规范的组件进行抽象和封装,从而提 出以组件服务形式来展现组件所提供的功能的方法,使得在基于j 2 e e 的企业级应用开发 程序过程中能够使用这些组件提供的功能来提高软件质量,缩短软件开发周期,最终实 现基于组件的软件复用。 本文的主要工作是根据对组件技术和常见应用的分析,实现了几个常用组件的设 计,包括数据库访问组件、数据级权限管理组件和对象缓存管理组件。这三个组件在构 建基于j 2 e e 体系结构的分布式企业级应用过程中起着非常重要的作用。在这三个组件设 计与开发实现后,本文构建了一个网上选课系统作为实例,在网上选课系统中利用封装 的组件来完成其底层核心功能,缩短了网上选课过程中的响应时间,提高网上选课系统在 高并发访问下的效率。组件的开发采用面向对象的设计思想,集成开发环境采用开源的 e c l i p s e ,应用服务器为w e b l o g i c ,w e b 基础框架采用配置灵活使用方便的s t r u t s 框架。 关键词:j 2 e e 体系结构,组件,s t r u t s 框架,软件复用 基于j 2 e e 的应用组件的设计与实现 a p p l i c a t i o nc o m p o n e n td e s i g na n d r e a l i z a t i o nb a s e do nj 2 e ea r c h i t e c t u r e a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fw e bt e c h n o l o g ya n db e i n gc o m p l e xo fe n t e r p r i s e a p p l i c a t i o n t h el o g i co fs o f t w a r ed e s i g ns t r u c t u r eb e c o m i n gt h ek e yf a c t o rt h a td e v e l o p i n g e n t e r p r i s ea p p l i c a t i o n ,w h e t h e rc a l lr e u s et h es y s t e mf r a m e w o r kt or e d u c es o f t w a r ec o s to f d e v e l o p m e n ti st h ec o r ep r o b l e mt h a tt h es o f t w a r ed e s i g n i n g j 2 e ea r c h i t e c t u r ei sb e c o m i n g t h ef i r s tc h o i c ep l a t f o r mo fd e v e l o p i n ge n t e r p r i s ea p p l i c a t i o n ,j 2 e eu s e st h ei n d e p e n d e n c eo f p l a t f o r m j a v a 2t os o l v et h ee n t e r p r i s ea p p l i c a t i o ni s o m e r i s mp r o b l e mw e l l j 2 e eu s e m u l t i t i e rd i s t r i b u t i o n a la p p l i c a t i o np a t t e m ,d i v i d e si n t os o m ec o m p o n e n t sa c c o r d i n gt oi t s f u n c t i o n ,e a c hd i f f e r e n ta p p l i c a t i o nc o m p o n e n td e p l o y m e n ta n dd e p e n d e n c et h ed i f f e r e n t j 2 e ec o n t a i n e r b a s eo nj 2 e eo p e ns o u r c ew e bf r a m e w o r k ,b e c a u s eo fi t sm a n ya d v a n t a g e m o r ea n dm o r es o f t w a r ep r o v i d e rc h o i c ea n du s ej 2 e ea r c h i t e c t u r e i nt h i sp a p e r ,r e s e a r c hj 2 e em u l t i t i e rs t r u c t u r ea n dj 2 e ec o m p o n e n tt e c h n o l o g y r e f e r e n c ea n dc o m b i n et h es t a n d a r dc o m p o n e n to fj 2 e eh a sb e e np r o v i d e d ,u n i o nh a d c o n f i r m e dt oj 2 e es t a n d a r dd i f f e r e n tt e c h n o l o g yt h a tp a s st h ep r a c t i c ep r o j e c t ,a b s t r a c t i n g a n d c a p s u l i z i n gt h e s ef u n c t i o nc o m p o n e n t ,t h u sl a y o u tt h ed i f f e r e n c ec o m p o n e n tf u n c t i o nb y a p p l i c a t i o nc o m p o n e n t a tt h es a m et i m eu s et h e s ec o m p o n e n t st oi n c r e a s et h eq u a l i t yo f s o f t w a r e ,r e d u c et h ec y c l eo fd e v e l o p m e n td u r i n gd e v e l o p i n ge n t e r p r i s ea p p l i c a t i o nt h a tb a s e o nj 2 e ea r c h i t e c t u r e f i n a l l yr e a l i z e dt h ef u r t h e s ts o f t w a r er e u s e i nt h i s p a p e rm a i n l yr e a l i z e dt h ed a t a b a s ea c c e s sc o m p o n e n tm a n a g e m e n t ,t h ed a t a a u t h o r i t yc o m p o n e n tm a n a g e m e n t ,t h eo b j e c t c a c h e c o m p o n e n tm a n a g e m e n t t h e s e c o m p o n e n t sw h i c hu s e dn e c e s s a r yd u r i n gt h ed e v e l o p m e n te n t e r p r i s ea p p l i c a t i o n a f t e r d e s i g n i n ga n dr e a l i z a t i o nw h i c ht h r e ec o m p o n e n t ,t h i sp a p e rc o n s t r u c t e do nw e bc o u r s e s e l e c t i o ns y s t e ma st h ee x a m p l ep r o j e c t ,t h i sp r o j e c tu s et h ec o m p o n e n t sr e a l i z a t ec o r e f u n c t i o n ,r e d u c e dp r o c e s st h er e s p o n s et i m ea n de n h a n c e st h ep e r f o r m a n c eo fu n d e rh i g h c o n c u r r e n tv i s i t t h e s ec o m p o n e n t sd e v e l o p m e n tu s e st h eo b j e c t o r i e n t e dd e s i g nc o n c e p t ,t h e i n t e g r a t e dd e v e l o p m e n te n v i r o n m e n tu s e se c l i p s e ,w e b l o g i ci st h ea p p l i c a t i o ns e r v e r ,w e b 沈阳t 业大学硕十学位论文 f r a m e w o r ku s e sf l e x i b l et h es t r u t sf r a m e w o r k f i n a l l yc h o s et h ec o u r s es e l e c t i o na sd e m o a p p l i c a t i o nt oi n t r o d u c eh o w t ou s et h e s ec o m p o n e n t si na c t u a lp r o j e c t k e yw o r d s :j 2 e ea r c h i t e c t u r e ,c o m p o n e n t ,s t r u t sf r a m e w o r k ,s o f t w a r er e u s e 独创性说明 本人郑重声明:所呈交的论文是我个人在导师指导下进行的研究工 作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得 沈阳工业大学或其他教育机构的学位或证书所使用过的材料。与我一同 工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并 表示了谢意。 签名:扯日期:兰灶 关于论文使用授权的说明 本人完全了解沈阳工业大学有关保留、使用学位论文的规定,即: 学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公 布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论 文。 ( 保密的论文在解密后应遵循此规定) 签名:舡导师签名: 雷觚:一 沈阳丁业大学硕十学位论文 1 绪论 1 1 课题来源及意义 目前企业级应用日趋复杂,它具有涉及资源众多、事务密集、数据量大、用户数多、 对安全性要求高等特点。企业级应用需要使用优秀的企业级应用体系结构支持,所以应 用程序的设计首先必须考虑其体系结构的合理性、灵活性和健壮性,从而既可以满足企 业级应用的复杂要求,也为今后的系统的调整和升级留有余地。软件设计结构的合理性 是开发企业级应用平台的关键,以前人们把软件设计的重点放在数据结构和算法的选择 上,但是随着软件系统规模越来越大、越来越复杂,软件危机的程度日益加剧,现有的 软件工程方法对此显得力不从心。对于大规模的复杂软件系统来说,软件体系架构比程 序的算法和数据结构的选择已经明显变得重要起来【i 】。在这样的背景下,人们认识到软 件体系架构的重要性,并认为对软件体系架构系统深入的研究将会成为提高软件生产效 率和解决软件危机的最有希望的途径。 软件设计的一个核心问题是能否使用重复的体系架构,能否达到体系架构级的软件 重用,也就是说,能否在不同的软件系统中,使用同一体系架构。通过研究和实践,目 前,针对企业级的应用提出了一些解决方案。微软n e t 框架和s u n 公司的j 2 e e 就是 两个目前最为流行和成熟的可以简化企业应用中与开发、部署和管理相关复杂问题的体 系结构。尤其是s u n 倡导的j 2 e e 体系架构己经成为企业级应用的首选平台,j 2 e e 利 用了j a v a 2 平台的跨平台性更好地解决了企业应用的异构问题。j 2 e e 平台使用多层分布 式的应用模式,应用逻辑根据其功能分成多个组件,各种不同的应用组件分布和依赖于 层的不同机器上的j 2 e e 容器中。如运行在客户机上的客户层组件、运行在j 2 e e 服务器 上的网络层组件、运行在j 2 e e 服务器上的逻辑层组件等等。尽管j 2 e e 应用程序可以由 三层、四层甚至多层构成,但j 2 e e 应用程序通常由三层构成,因为他们分布于三个不 同的位置客户机,服务器和后台数据库服务器。通过这种方式运行的三层应用模式拓展 了基于客户朋艮务的两层模式1 2 4 。但是随着两层结构向三层( n 层) 结构的转换过程中,各 个层次的交互变的越来越复杂,应用开发人员在开发的同时还要关心同其他的软件产品 基于j 2 e e 的应用组件的设计与实现 参与元素之间的交互的技术细节,而且将这些复杂的底层技术交互细节同应用实现细节 混杂在应用软件业务逻辑中降低了软件的可复用度,增加的过多的外部耦合。 所以课题研究的主要内容是在基于j 2 e e 提供的标准组件基础之上,结合已有的并 且经过大量实践验证的符合j 2 e e 规范的组件,规范和实现出以服务形式展现组件功能 的开发j 2 e e 程序的软件架构,从而降低软件产品和软件项目开发周期中的耦合与风险, 在复杂多变的业务系统中最大限度地提高软件的可复用性。 沈阳工业大学硕十学位论文 1 2w e b 开发技术发展现状 早期的w e b 系统只能提供一些简单的静态内容,远远不能满足用户应用需要,随 着企业应用和w e b 技术的不断发展,w e b 应用不再局限于提供一些静态的内容、甚至 也不满足于提供一些简单的动态内容,层体系结构正是适合w e b 应用的特点而发展起 来的,和传统的客户机月务器模式相比,这种多层模式一般分为三层,它在原有的客户 机和数据库服务器之间增加了一个中间层,称为应用服务器层。专门负责处理应用逻辑, 并具有事务管理、连接缓冲等功能,而客户机只需通过图形界面和客户进行交互的应用 服务器的存在,使客户机变“瘦”,把负荷均匀地分配给了应用服务器,并把客户机和 数据库服务器完全隔开,彼此独立。这样对应用逻辑的修改只需在应用服务器上一次完 成,相对客户端而言完全透明,极大地方便了应用系统的部署及维护。在很多情况下为 了避免客户方安装额外的程序及开发方便考虑,这个客户端采用人们经常使用的浏览 器,这也就是所谓的“浏览器服务器”模式( b s 模式) 。将应用逻辑从另外两层中独立 出来,将更适应同益复杂和不断变化的w e b 应用的需要p j 。 在多层w e b 应用系统中,“系统至少由三层体系结构组成,客户端( 浏览器) + w e b 服务器+ 应用服务器+ 数据库服务器”。客户端采用标准的网络浏览器,方便用户访问信 息;第二层包括w e b 服务器和应用服务器,所有的显示逻辑、应用逻辑、控制逻辑都 在这一层,系统的复杂性也主要体现在这一层,数据库服务器层存储数据信息和数据逻 辑,所有与数据有关的安全性控制、完整性控制、数据的一致性以及并发操作等都是在 该层实现的。 在三层体系结构中,用户通过浏览器访问w e b 服务器,w e b 服务器是显示逻辑的 核心,它将信息组织成超文本,通过超文本标记语言( h t m l ) ;n 超文本传输协议( h t t p ) 实现与浏览器的交互,而应用服务器负责处理应用逻辑,并进行事务管理;数据库服务 器负责处理数据逻辑,实现对数据库的读写操作。 通过应用服务器层把应用逻辑从客户端和数据库服务器独立出来,向开发者提供了 一种创建、部署和维护大规模的w e b 应用系统的模块化方式更适合开发复杂的w e b 应 用系统【6 】。 基tj 2 e e 的应用组件的设计与实现 1 3 主流组件技术发展 随着组件技术逐步走向成熟,出现了一系列组件接口标准。目前,组件技术己经成 为建立服务应用框架和软件构件的核心技术,在开发大型分布式应用系统中表现出强大 的生命力,逐渐形成了3 种具有代表性的主流技术,即o m g 的c o b r a 技术,m i c r o s o f t 的c o m d c o m c o m + 技术和s u n 公司的e n t e r p r i s ej a v a b e a n s 技术。 ( 1 ) o b j e c tm a n a g e m e n tg r o u p ( o m g ,对象管理组织) 。c o r b a ( c o m m o no b j e c t r e q u e s tb r o k e ra r c h i t e c t u r e ,公共对象请求代理体系结构) 是o m g 基于众多开放系统平 台提交的分布对象互操作内容的基础上制定的公共对象请求代理体系规范。它提供一套 标准的语言、接口和协议,支持异构分布应用程序间的互操作性及独立于平台和编程语 言的对象重用。1 9 9 1 年o m g 推出了最初的c o r b a 规范,在经过一段时阳j 的修订后, c o r b a 2 0 在1 9 9 6 年正式发布。c o b r a 标准主要分为3 个层次:对象请求代理、公共 对象服务和公共设施。最底层是对象请求代理o r b ,规定了分布对象的接口和语言映 射,实现对象间的通讯和互操作。o r b 为识别和定位对象、处理连接管理、输送数据 和请求通讯等一系列活动提供通讯基础:在o r b 之上定义了很多公共服务,诸如并发服 务、名字服务、事务服务、安全服务等等:最上层的公共设施则定义了组件框架,提供 直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。c o r b a 对象的 接口由接口定义语言( i d l ) 定义,i d l 文件经编译后在客户端生成源程序( s t u b ) ,以位置 透明的方式向具体的实现对象提出服务请求,实现客户与服务对象的通信 6 1 。 ( 2 ) m i c r o s o f t 的c o m d c o m c o m + 。微软的组件技术是围绕组件对象模型( c o m ) 建立起来的,它的前身是1 9 9 1 年发布的作为o f f i c e 文档集成和管理框架的o l e1 0 , 1 9 9 6 年微软发布了分布式c o m ( d c o m ) ,大大扩展了原有模型的远程对象访问能力。 同期发布的事物服务器( m t s ) 为c o m 添加了事务处理支持。1 9 9 9 年微软推出了c o m + , 该模型结合了c o m ,d c o m ,m t s 以及消息队列服务器( m s m q ) 的特性,至此微软的组 件技术终于形成了统一的标准。 1 ) c o m 是一种二进制兼容性规范,它允许客户端通过一系列定义的接口与c o m 对象发生联系,调用由对象提供的服务。一个c o m 对象可以有多个接口,这些接口可 沈阳一f :业人学硕十学位论文 通过每个对象的q u e r yi n t e r f a c e 方法找到。开发人员每添加一个新的功能就必须同时添 加一个新的接口而不是简单的修改原有的接口。 2 ) d c o m 通过提供远程过程调用、位置透明、数字签名等手段实现了在网络环境 中对c o m 对象的访问。该模型支持多种通讯协议,如t c p ,h t t p 。使用d c o m ,客 户端不必知道对象的位置,只需调用客户端代理程序就可以了。该代理程序收集数据并 通过服务控制管j 里器( s c m ) 将数据发送至服务器端程序,再由程序将数据传递给服务器 端对象。 3 ) c o m + 是微软推出的包罗了先前所有标准的组件体系结构。它将c o m d c o m , m t s 和m s m q 统一起来,支持分布式对象、事务、负载平衡、组件队列、对象缓冲、 内存数据库、事件模型等服务。而且它的安全模型也更加完备,它尽可能地使程序开发 人员不再接触i d l ,这样程序员就可以在他们使用的任何编程语言中定义接口。 ( 3 ) s u nm i c r o s y s t e m s 的e n t e r p r i s ej a v a b e a n s 。j a v a b e a n s 是用j a v a 语言编写的可重 用的组件,这些组件的接口并未列入i d l 中,而是在j a v a 里指定。和j a v a 语言一样, 只要存在j a v a 虚拟机( j v m ) ,j a v a b e a n s 就可以支持多重继承和平台无关的特性。远程 方法调用依靠对象序列在网络中传输对象流,任何序列化的j a v a 对象都可以被当作参数 或返回值传递,这样对远程对象的方法调用就如同本地对象的方法调用一样了。客户端 要访问服务器对象映射就必须查找远程服务器对象的u r l 。j a v a 虚拟机负责找到并激 活对象的实例。e j b 是处理业务逻辑的服务器端b e a n ,由于j a v a b e a n s 系统的任一部分 都使用j a v a 编写代码并且运行在j a v a 虚拟机上,因此它是平台无关的,可以运行在u n i x 等大型可靠的操作系统之上。它的远程过程调用机制也非常简单易用【7 】。 1 4 论文的主要研究内容及目的 研究与分析了在j 2 e e 三层体系机构下组件模型与组件技术的背景特点以及如何利 用组件模型构建分布式企业应用的组件开发平台。在分析组件模型的技术特点过程中, 从组件的加载方式,组件的管理方式和组件的使用方式这三个主要的组件设计原则入 手,阐述了如何构建分布式企业应用组件开发平台。在分析企业级应用的过程中通过对 软件非功能性需求的分析和总结,找到软件开发过程中共同需要的功能和必然实现的功 基丁j 2 e e 的应用组件的设计与实现 能模块,把这些功能模块以组件的形式展现给程序开发人员,使之供开发人员进行二次 开发。 论文从组件的背景,组件的模型设计以及组件的模型实现三个方面重点介绍了数据 库访问组件,对象缓存管理组件,数据权限管理组件实现过程。三个组件的设计与开发 采用j 2 e e 平台的多层体系结构和基于m v c 结构s t r u t s 框架的设计理念实现。 在三个组件设计与开发实现后,本文构建了一个网上选课系统作为实例,在网上选 课系统中利用封装的组件来完成其底层核心功能。本文提出的组件化的设计思想对未来 的信息化系统构建过程中使用组件技术和组件模型实现软件复用以及提高应用系统质 量提供了一个良好的思路。 沈阳工业大学硕十学位论文 2j 2 e e 平台技术与s t r u t s 框架技术 2 1j 2 e e 平台工作原理与多层应用体系结构 j 2 e e 是一个基于组件容器模型的系统平台,其核心概念是容器。容器是指为特定 组件提供服务的一个标准化的运行时环境,j a v a 虚拟机就是一个典型的容器。j 2 e e 规 范定义了四种不同类型的容器。a p p l e t 容器是运行和管理a p p l e t ;应用客户端容器是运 行和管理标准j a v a 应用客户程序,包括s w i n g 应用;w e b 容器是运行和管理表现逻辑 层的s e r v l e t 组件和j s p 组件;e j b 容器是运行和管理业务逻辑层的e j b 组件悼j ; 组件是可以部署的程序单元,它以某种方式运行在容器中。j 2 e e 规范定义了客户 j 2 e ej 2 琶 a p p l i c a t i o n a pp i i c a t i o n2 cii州c酗lienttier a e h t n ei酗 w导ebbusiness e 下i e rl 。 | 瓢e ri 图2 1j 2 e e 应用体系结构图 f i g u r e2 1j 2 e ea p p l i c a t i o na r c h i t e c t u r ed i a g r a m 端组件即a p p l e t ,j a v a b e a n ;w e b 组件即s e r v l e t ,j s p ,j a v a b e a n ;e j b 组件即e n t e r p r i s ej a v a b e a n s ; 容器封装了j 2 e e 底层的a p i ,为组件提供事务处理、数据访问、安全性、持久性 等服务。在j 2 e e 中组件和组件之间并不直接访问,而是通过容器提供的协议和方法来 黼 j 器 圈o 固 圈 豳 基丁二j 2 e e 的应用t i l f t :的设计与实现 相互调用。组件和容器间的关系通过“协议”来定义。容器的底层是j 2 e e 服务器,它 为容器提供j 2 e e 中定义的各种服务和a p i 。一个j 2 e e 服务器( 也叫j 2 e e 应用服务器) 可以支持一种或多种容器。每个容器的服务包括两部分,j 2 s e ( j a v a2p l a t f o r ms t a n d a r d e d i t i o n ) s 1 - - 组扩展的服务【9 】。这是因为j 2 e e 以j a v a 标准版为基础,各容器在j 2 s e 之 上再根据需要提供一些扩展的服务,如目录服务、事务管理、数据访问、消息机制、安 全性等。 从应用的角度来看,j 2 e e 规范为企业级应用系统的开发提供了一种分布式企业级 多层应用模型。在j 2 e e 规范中应用逻辑按功能不同可以划分为不同类型的组件,各组 件根据它们所在的层分布在不同的机器上,共同组成一个基于组件的分布式多层应用系 统。如图2 1 所示,j 2 e e 定义了一个典型的四层结构,分别是客户端层、w e b 层、业 务逻辑层和信息系统层。 ( 1 ) 客户端层。客户端层用来实现企业级应用系统的操作界面和显示层。另外,某些 客户端程序也可实现业务逻辑。该层可分为基于w e b 的和非基于w e b 的客户端两种情 况。基于w e b 的情况下,主要作为企业w e b 服务器的浏览器。非基于w e b 的客户端层 则是独立的应用程序,可以完成“瘦”客户机无法完成的任务。j 2 e e 应用可以是基于 w e b 的,也可以是不基于w e b 的。在基于w e b 的j 2 e e 应用中,用户的浏览器在客户 层中运行,并从一个w e b 服务器上下载w e b 层中的静态h t m l 页面或由j s p 或s e r v l e t 生成的动态h t m l 页面。在非基于w e b 的j 2 e e 应用程序中,一个独立的客户程序, 可以不运行在一个h t m l 页面中,而是运行在其它一些基于网络系统( 比如手持设备或 汽车电话) 中的a p p l e t 程序。在客户层中运行,并在不经过w e b 层的情况下访问e n t e r p r i s e j a v ab e a n s 。该非基于w e b 的客户层可能也包括一个j a v a b e a n s 类来管理用户输入, 并将该输入发送到在企业层中运行的e n t e r p r i s eb e a n 类来处理【l o 】。 ( 2 ) w e b 层。为企业提供w e b 服务,包括企业信息发布等。w e b 层由w e b 服务器和 w e b 组件组成。j 2 e ew e b 组件包括j s p 页面和s e r v l e t ,w e b 层也可以包括一些j a v a b e a n s 。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 e r v l e t 或者j s p 页面的h t m l 页面在应用程序组装时与w e b 沈刚工业大学硕七学位论文 组件打包在一起。就像客户层一样,w e b 层可能包括一个j a v ab e a n s 类来管理用户输入, 并将输入发送到在业务层中运行的e n t e r p r i s ej a v ab e a n s 类来处理。运行在客户层的w e b 组件依赖容器来支持诸如客户请求和响应及e n t e r p r i s ej a v ab e a n s 查询等。 ( 3 ) , 1 k 务逻辑层。也叫应用层,它由e j b 服务器和e j b 组件组成。一般情况下,许 多开发商把w e b 服务器和e j b 服务器产品结合在一起发布,称为应用服务器。e j b 层 用来实现企业级信息系统的业务逻辑。这是企业级应用的核心,由运行在业务层中的 e j b 来处理。一个b e a n 从客户端接收数据、处理,然后把数据送到企业信息系统层次 存储起来。同样,一个b e a n 也可以从企业信息系统层取出数据,发送到客户端程序。 业务层中的e j b 要运行在容器中,容器解决了底层的问题,如事务处理、生命周期、状 态管理、多线程、安全管理、资源池等。 ( 4 ) 信息系统层。该层运行企业信息系统软件,包括企业基础设施系统,例如企业资 源计划( e r p ) 、大型机事务处理( m a i n f r a m et r a n s a c t i o np r o c e s s i n g ) 、数据库系统及其他遗 留信息系统( 1 e g a c yi n f o r m a t i o ns y s t e m s ) 。j 2 e e 应用组件因为某种原因( 例如访问数据库) 可能需要访问企业信息系统。j 2 e e 平台的未来版本将支持c o n n e c t o r 架构,该架构是将 j 2 e e 平台连接到企业信息系统上的一个标准a p i i 1 0 - 1 3 1 。 2 2j 2 e e 核心技术 j 2 e e 平台由一整套服务( s e r v i c e s ) 、应用程序接i ( a p i s ) 和协议构成,它对开发企业 级多层应用提供了全面的功能支持,下面对j 2 e e 中的1 3 种技术规范进行简单的描述。 ( 1 ) j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ) 。j d b ca p i 为访问不同的数据库提供了一种统 一的途径,像o d b c 一样,j d b c 对开发者屏蔽了一些细节问题。另外,j d b c 对数据 库的访问也具有平台无关性【1 4 1 。 ( 2 ) j n d i ( j a v a n a m e a n d d i r e c t o r y i n t e r f a c e ) 。j n d i a p i 被用于执行名字和口录服务。 它提供了一致的模型来存取和操作企业级的资源如d n s 和l d a p 本地文件系统,或应 用服务器中的对象4 1 。 ( 3 ) e j b ( e n t e r p r i s ej a v ab e a n ) 。j 2 e e 技术之所以赢得媒体广泛重视的原因之一就是 e j b 。它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可 伸缩性和高度复杂的企业级应用的开发。e j b 规范定义了e j b 组件在何时如何与它们的 基丁j 2 e e 的应用组件的设计与实现 容器进行交互作用。容器负责提供公用的服务,例如口录服务、事务管理、安全性、资 源缓冲池以及容错性。 ( 4 ) r m l ( r e m o t em e t h o di n v o k e ) 。正如其名字所表示的那样,r m i 协议调用远程对 象上方法。它使用了序列化方式在客户端和服务器端传递数据。r m i 是一种被e j b 使 用的更底层的协议。 ( 5 ) j a v ai d l c o r b a 。在j a v ai d l 的支持下,开发人员可以将j a v a 和c o r b a 集 成在一起。他们可以创建j a v a 对象并使之可在c o r b ao r b 中展开,或者他们还可以 创建j a v a 类并作为和其它o r b 一起展丌的c o r b a 对象的客户。后一种方法提供了另 外一种途径,通过它j a v a 可以被用于将新的应用和旧的系统相集成。 ( 6 ) j s p ( j a v as e r v e r p a g e s ) 。j s p 页面由h t m l 代码和嵌入其中的j a v a 代码所组成。 服务器在页面被客户端请求以后对这些j a v a 代码进行处理,然后将生成h t m l 页面返 回给客户端的浏览器【1 6 】。 ( 7 ) j a v as e r v l e t 。s e r v l e t 是一种小型的j a v a 程序,它扩展了w e b 服务器的功能。作 为一种服务器端的应用,当被请求时开始执行,这和c g i 、p e r l 脚本很相似。s e r v l e t 提 供的功能大多与j s p 类似,不过实现的方式不同。j s p 通常是大多数h t m l 代码中嵌入 少量的j a v a 代码,而s e r v l e t 全部由j a v a 写成并且生成h t m l t l 6 1 。 ( 8 ) x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) 。x m l 是一种可以用来定义其它标记语言的 语言。它被用来在不同的商务过程中共享数据。x m l 的发展和j a v a 是相互独立的,但 是,它和j a v a 具有的相同目标正是平台独立性。通过将j a v a 和x m l 的组合,可以得到 一个完美的具有平台独立性的解决方案。 ( 9 ) j m s ( j a v am e s s a g es e r v i c e ) 。j m s 是用于和面向消息的中间件相互通信的应用程 序接h ( ( a p i ) 。它既支持点对点的域,又支持发布订阅( p u b l i s h s u b s c r i b e ) 类型的域,并 且提供对下列类型的支持经认可的消息传递,事务型消息的传递,一致性消息和具有持 久性的订阅者支持。j m s 还提供了另一种方式来对您的应用与旧的后台系统相集成。 ( 1 0 ) j t a ( j a v at r a n s a c t i o na r c h i t e c t u r e ) 。j t a 定义了一种标准的a p i ,应用系统由此 以访问各种事务监控。 l o 沈阳工业大学硕十学位论文 f 11 ) j t s ( j a v at r a n s a c t i o ns e r v i c e ) 。j t s 是c o r b ao t s 事务监控的基本的实现。j t s 规定了事务管理器的实现方式。该事务管理器是在高层支持j a v at r a n s a c t i o na p i ( j t a ) 规范,并且在较底层实现o m go t ss p e c i f i c a t i o n 的j a v a 映像。j t s 事务管理器为应用 服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。 ( 1 2 ) j a v am a i l 。j a v am a i l 是用于存取邮件服务器的a p i ,它提供了一套邮件服务器 的抽象类。不仅支持s m t p 服务器,也支持工m a p 服务器。 j 2 e em a n a g e m e n t a n dc e 删o v e 1 e m b u s m e s sl o g i c 瓢e r m e s s a g eq u e u e s c o n n e c t o r s 弱 l ;“# f o m 如l n a m i n ga n d d 女r e c t o r ys e r v i c e 邕! 鲤黧篓黧皇j lm ,勰翟旒l 。觚sj o 确l s e c - j r i t y f i 磊孑7 泌j a c c 竺, ! 。! k 竺| i c o b r a i d l l ;i i o p 8 号戮一| 图2 2j 2 e e 核心技术层次图 f i g2 2j 2 e ec o r e - t e c hh i b e r a r c h y ( 1 3 ) j a f ( j a v a b e a n sa c t i v a t i o nf r a m e w o r k ) 。j a v am a i l 利用j a f 来处理m i m e 编码的 邮件附件。m i m e 的字节流可以被转换成j a v a 对象,或者转换成j a v a 对象。大多数应 用都可以不需要直接使用j a f i ”】。j 2 e e 核心技术之阅的关系如图2 2 所示。 基于j 2 e e 的戍心组件的设计与实现 2 3j 2 e e 组件技术 j 2 e e 规范定义了一个完善的应用组件技术框架,作为企业级应用系统基本构造模 块的组件就建立在这个框架之上。从简单的w e b 应用到复杂的分布式企业级应用,几 乎所有的业务应用,都可以在此技术框架基础上构造。 ( 1 ) s e r v l e t 。s e r v l e t 是一些用来扩展w e b 服务器功能的w e b 组件,它基于请求响应 ( r e q u e s t r e s p o n s e ) 机制。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 和e j b 组件的区别 在于e j b 组件所提供的服务器端组件特性并不能全部适用于s e r v l e t ,s e r v l e t 更适于处 理简单的请求响应任务,而且它不需要应用服务器所提供的复杂服务的支持【l “。 ( 2 ) j s p 。j s p ( j a v as e r v e rp a g e s ) 是另一种类型的j 2 e ew e b 组件,它是从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 a v a 代码嵌入到h t m l 或x m l 文档中,注重解决客户 端的外表和显示问题,j s p 技术可以提供与s e r v l e t 相同的功能,并且更容易维护。为了 保持j s p 的简洁性和核心业务逻辑代码的隐蔽性,j s p 技术提供了特殊的标记符,用于 调用j a v a b e a n 组件和标记符库。j a v ab e a n 组件和标记符库提供了一种非常有价值的服 务,它使w e b 应用开发人员能够简化j s p 页面中的j a v a 代码,减少了在j s p 页面的编 辑过程中因为偶尔的疏忽造成整个页面的破坏,允许独立于j s p 页面修改表示逻辑。 ( 3 ) e j b 。e j b ( e n t e r p r i s ej a v a b e a n s ) 是j 2 e e 平台的核心,也是j 2 e e 得到业界广泛关 注和支持的主要原因。我们知道,j 2 e e 的一个主要目的就是简化企业级多层应用系统 的开发,使程序员将主要精力放在业务逻辑的开发上。e j b 正是基于这种思想的服务器 端技术,它本身也是一种规范,该规范定义了一个可重用的组件框架来实现分布式的、 面向对象的业务逻辑。e j b 的核心思想是将业务逻辑与底层的系统逻辑分开,使开发者 只需关心业务逻辑,而由e j b 容器实现目录服务、事务处理、持久性、安全性等底层系 统逻辑。 根据功能不同,最新的e j b 规范中定义了三种e n t e r p r i s ej a v ab e a n s ,会话 b e a n ( s e s s i o nb e a n ) 、实体b e a n ( e n t i t yb e a n ) n 消息驱动b e a n ( m e s s a g e d r i v e nb 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 模拟业务数据

温馨提示

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

评论

0/150

提交评论