(计算机软件与理论专业论文)基于j2ee和xml的多层应用系统架构研究.pdf_第1页
(计算机软件与理论专业论文)基于j2ee和xml的多层应用系统架构研究.pdf_第2页
(计算机软件与理论专业论文)基于j2ee和xml的多层应用系统架构研究.pdf_第3页
(计算机软件与理论专业论文)基于j2ee和xml的多层应用系统架构研究.pdf_第4页
(计算机软件与理论专业论文)基于j2ee和xml的多层应用系统架构研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机软件与理论专业论文)基于j2ee和xml的多层应用系统架构研究.pdf.pdf 免费下载

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

文档简介

摘要 论文基于j 2 e e 平台针对x m l 开发多层应用程序的问题,进行了分析和研究, 提出了一个基于j 2 e e 和x m l 的多层应用程序架构。该架构在传统的j 2 e e 多层 模型( w e b 层、e j b 层、企业信息系统层) 的基础上,结合x m l 技术,对原有的模 型在w e b 层、e j b 层、e i s 层上进行了扩充,并对数据源的x m l 建模、w e b 服务 实现、用户界面设计、消息服务作了说明。最后,用一个简单的实例说明了如何 应用该架构开发企业应用,演示了j 2 e e 和x m l 联合应用的强大功能。在技术上 有如下特点: ( 1 ) 使用该架构简化了应用程序的开发、部署工作,且应用程序可以跨平台移 植; ( 2 ) 该架构利用x m l 技术所建立的e i s 层的数据库系统视图,实时地获取数 据源的信息以实现对多种数据源的查询,而不需要关心数据的实际来源和存放格 式; ( 3 ) 由于x m l 良好的结构和语义表达能力,因而相对于其他格式的消息,x m l 格式的消息对象的语法分析和确认操作更容易实现,从而以x m l 作为消息对象的 消息系统具有更强的语义表达能力; ( 4 ) x m l 模板及x m l w e b 发布框架,使得用户界面的设计更灵活。 关键词:j 2 e e ,x m l ,w e b 服务,多层应用程序架构 a b s t r a c t i nt h i sp a p e r , w et a l ka b o u th o wt od e v e l o pam u l t i - t i e ra p p l i c a t i o nu s i n gx m lo nt h e j 2 e ep l a t f o r ma n dt h e np u tf o r w a r dam u l t i t i e ra p p l i c a t i o na r c h i t e c t u r ew h i c hi sb a s e d o nj 2 e ea n dx m l t h i sa r c h i t e c t u r ei sb a s e du p o nt h et r a d i t i o n a lj 2 e em u l t i - t i e rm o d e l ( w h i c h i s r e s p e c t i v e l y w e bt i e r , e j bt i e ra n d e n t e r p r i s e i n f o r m a t i o n s y s t e m t i e r ) c o m b i n e dw i t hx m lt e c h n o l o g i e s ,o r i g i n a lj 2 e em o d e li se x t e n d e di nt h ew e bt i e r , e j bt i e ra n de 1 st i e r n e x t ,w em a k ead e t a i l e de x p l a n a t i o no nx m lv i e w so fd a t a s t o r a g e ,w e bs e r v i c e sr e a l i z a t i o n , t h ed e s i g no fu s e ri n t e r f a c ea n dm e s s a g es e r v i c ee t c i nt h ee n d , w et a k ea ne x a m p l et oi l l u s t r a t eh o wt od e v e l o pe n t e r p r i s ea p p l i c a t i o n su s i n g t h i sm u m - t i e ra r c h i t e c t u r ea n dd e m o n s t r a t et h ep o w e r f u lf u n c t i o no ft h ei n t e g r a t i o no f j 2 e ea n dx m lt e c h n o l o g i e s t h ea r c h i t e c t u r eb a s e do nj 2 e ea n dx m lh a st h e f o l l o w i n gt e c h n i c a lc h a r a c t e r i s t i c s : ( 1 ) t h i sa r c h i t e c t u r e c a ns i m p l i f yt h ew o r ko fa p p l i c a t i o nd e v e l o p m e n ta n d d e p l o y m e n t a p p l i c a t i o n sd e v e l o p e d i nt h i sa r c h i t e c t u r ec a nb e t r a n s p l a n t e d a c r o s s p l a t f o r m ; ( 2 ) t h i sa r c h i t e c t u r eu s e sx m l t ob u i l dt h ev i e w sf o rt h ed a t a b a s es y s t e m si nt h ee i s t i e r s ow ec a na c c e s st h er e a l t i m ei n f o r m a t i o no f d a t as o u r c e a sa r e s u l t ,w ec a l lq u e r y m u l t i t y p ed a t as o u r c e se v e ni fw ed o n tk n o wt h ea c t u a ls o u r c ea n ds t o r a g ef o r m a t so f d a t a ; ( 3 ) b e c a u s eo ft h ew e l l d e f i n e ds t r u c t u r ea n de x c e l l e n ts e m a n t i cp r e s e n t a t i o na b i l i t y , c o m p a r e dw i mm e s s a g ei no t h e rf o r m a t , m e s s a g ei nt h ef o r mo fx m lc a nb ee a s i l y p a r s e da n dv a l i d a t e d s o ,t h em e s s a g es y s t e mw h i c hu s e sx m la sm e s s a g eo b j e c t sh a s s t r o n g e rs e m a n t i cp r e s e n t a t i o n ; ( 4 ) w i t ht h eh e l po f x m lt e m p l a t ea n dx m lw e bp u b l i s h i n ga r c h i t e c t u r e ,af l e x i b l e u s e ri n t e r f a c ec a nb ed e s i g n e d k e y w o r d s :j 2 e e ,x m l ,w e bs e r v i c e s ,m u l t i t i e r a p p l i c a t i o n a r c h i t e c t u r e 声明 本人呈交给山东科技大学的这篇硕士学位论文,除了所列参考文献和世所公 认的文献外,全部是本人在导师指导下的研究成果。该论文资料尚没有呈交于其 它任何学术机关作鉴定。 研究生签名: 日期: 弓蚴 5 3 0 a f f i r m a t i o n id e c l a r et h a tt h i sd i s s e r t a t i o n ,s u b m i t t e di nf u l f i l h n e mo ft h er e q u i r e m e n t sf o rt h e a w a r do f m a s t e ro f p h i l o s o p h y , i ns h a n d o n gu n i v e r s i t yo f s c i e n c ea n dt e c h n o l o g y , i s w h o l l ym yo w nw o r ku n l e s sr e f e r e n c e do fa c k n o w l e d g e t h ed o c u m e n th a sn o tb e e n s u b m i t t e df o rq u a l i f i c a t i o na ta n yo t h e ra c a d e m i ci n s t i t u t e s i g n a t u r e :肛汹锄 脚:触勺 势饨胁 山东科技大学硕士学位论文 1 绪论 1 1 课题的提出 当今,企业都面临着如何提高自身的竞争实力,在变幻莫测的市场竞争中获得优势 的挑战。企业级应用程序的发展与电子商务的产生推动了企业的发展,传统的企业级应 用程序开发面临着重大的挑战:( 1 ) 编程生产力,即应用程序从初具雏形到最终成为产品, 应该是一个较为快速的过程,并且在对它们进行部署之后继续发展;( 2 ) 对要求的响应, 即应用程序应该是易于伸缩的,具有容纳期望或不期望的增长的能力;( 3 ) 与现有系统的 集成,即对现有的信息系统应该进行重用并商业化;( 4 ) 开发工具和平台的选择具有相 当的自由度;( 5 ) 提供可靠的安全模型。 j 2 e e 是一个简化的、具有开发、部署和管理功能的、与平台无关的企业应用程序解 决方案。它的平台无关性一方面来自j a v a 语言的跨平台能力:另一方面,在于j 2 e e 技 术规范得到了业界的广泛支持,众多优秀的计算机供应商依据j 2 e e 标准推出了它们的 企业应用服务器。 j 2 e e 的多层开发模型具有重用组件的能力、统一的安全模型和灵活的事务控制。因 为一些专门设计用来加速分布式应用程序开发过程的特性,应用j 2 e e 平台构造的企业 解决方案具有简化的结构和开发过程,具有适应各种变化要求的可伸缩性,提供了与现 有体系集成的多种技术手段,可以灵活的选择服务器、开发工具和组件【m l 。 x m l 是作为一个定义标记语言的元约束和元语言的集合而出现的,它本身是“一种 表示其他语言的语言”一元语言,与平台、语言和协议无关,有良好的自描述性。目前, 它已经成为描述和交换数据的事实标准【”。 在j 2 e e 应用程序环境中,x m l 有广泛的应用。对多层应用程序的健壮与完善,发 挥了重大作用: ( 1 ) 数据交换和数据整合 在j 2 e e 应用程序中,应用系统之间、服务器和浏览器之间有大量的数据交换。这 些被交换的数据,都要求对数据的内容和表现击斌有所说明,以解决信息的可理解性问 题,用标记语言来承担这个重任再合适不过了。而x m l 正是这样的一个标记语言。它 1 山东科技丈学硕上学位论文绪论 描述数据的丰凡能力和对数据描述格式的一致性,使它取代e d i 成为新兴的数据交换模 型。 此处,j 2 e e 应用中,客户常常需要与不同的数据源进行交互,这些数据可能来自不 同的数据库,有各自不同的复杂格式。但是,用户需要与不同的数据源进行交互时,只 通过一种标记语言进行交互,那就是x m l 。x m l 的自定义性及可扩展性,使它能够表 示各种类型的数据。在这类应用中,x m l 解决了数据的统一接口问题,实现了数据的整 合。 ( 2 ) 设计标记语言 作为元标记语言,x m l 为具体的j 2 e e 应用环境提供了针对自己的特定需求定义本 行业本领域语言的最好工具。例如:移动通信领域的w m l 。 ( 3 ) 信息发布的独立性 如同j a v a 的“一次编译,到处运行”一样,x m l 的出现和广泛应用将实现信息的 “一次描述,到处使用”。通过x m l 发布可将同一数据以不同的面貌展现给不同的用户。 我们做的只是将数据组织好,然后通过x s l 变换将它发布到给各个用户。x m l 这种将 数据内容和数据表示的相分离的特点,实现了信息发布的独立性。 目前j 2 e e 环境的x m i , 应用正在成为研究热点。在j 2 e e 环境中,x m l 一方面做 为标记语言,定义各种实例语言的应用标准;一方面作为标准交换语言,起到了描述与 交换数据的作用。x m l 对提升j 2 e e 平台的性能及开放性起到了重要作用,完善了j 2 e e 的多层应用程序架构。j 2 e e 和x m l 结合,有助于完善j 2 e e 应用程序的设计,有助于 实现强大的多层应用系统开发架构。针对j 2 e e 和x m l 应用这一热点,本文将就基于 j 2 e e 和x m l 的多层应用程序架构作探讨和研究。 1 2 本课题研究的主要内容 论文的研究内容是:如何利用j 2 e e 平台和x m l 技术,构造多层应用系统。j 2 e e 提供了基于组件的开发模型及多种服务。x m l 能很好地定义和表示数据,作为内部通讯 机制。论文首先分析j 2 e e 平台和x m l 技术,并在此基础上,讨论在以j 2 e e 平台作为 多层应用系统实现环境的前提下,如何发挥x m l 的优点,完善j 2 e e 的多层应用系统架 构。论文对于特定情景下技术实现细节,作了简要的说明。最后,以一个具体实例来演 示用j 2 e e 和x m l 实现的多层应用系统的强大功能。 示用j 2 e e 和x m l 实现的多层应用系统的强大功能。 2 当查型垫查堂堡主兰堡丝苎竺堡 论文的意义在于:j 2 e e 因为具有跨平台的能力和完整的多层开发模型,作为企业级 应用程序解决方案为业界广泛接受。但是如果不考虑x m l ,单纯地利用j 2 e e 开发,又 会存在一些困难。作为元标记语言而出现的x m l ,在应用程序的数据描述和数据交换, 实现数据整合,提高软件设计的灵活性方面发挥了重大的作用。x m l 对于j 2 e e 多层架 构的完善,有突出的价值。论文将就x m l 在j 2 e e 中的具体应用作简单介绍,并提出了 一个基于j 2 e e 和x m l 的多层应用程序架构。通过本论文的论述,会对开发人员在应用 j 2 e e 平台时有一些启发,本文所提出的多层架构对于指导实际的项目实践也有一定的参 考价值。 山东科技大学硕士学位论文j 2 e e 平台 2j 2 e e 平台 2 1 平台概述 j 2 e e ( j a v a2p l a t f o r m ,e n t e r p r i s ee d i t i o n ,j a v a 2 平台企业版) 是由s u n 公司于1 9 9 9 年1 2 月正式提出的,目的是利用j a v a 2 平台来简化与多级企业解决方案开发、部署和管 理相关的复杂问题的分布式架构。它的基础是j 2 s e ( j a v a 2p l a t f o r m ,s t a n d a r de d i t i o n ) 一一 j a v a 2 平台标准版。本文基于j 2 e e l 4 平台展开讨论与研究。 概括来讲,j 2 e e 是作为实现和分发企业应用的标准出现的。它是通过一个开放式的 过程来设计的,并有一些企业级计算供应商的参与( 诸如:i b m 、o r a c l e 、b e a 等等) , 以保证它能够适应尽可能广范围内的企业级应用程序的要求。 j 2 e e 平台设计的目的是提供对服务端和客户端的支持从而推动企业及企业中多层 应用程序的发展。一般来说,这些应用程序都有一个客户层以提供用户界面,一个或多 个中间层模块用来提供客户服务以及应用程序所要用到的业务逻辑,另外还有一个后端 的企业信息系统用来提供数据管理【1 0 1 。图2 1 描述了组成一个典型的j 2 e e 环境的各种组 件和服务。 ji1 , e j bc o n t ; 、 仁i k 石= i 文 ,e t _ r ;- 、 一 d 。激售, m - 删目n m ! :, ) 1 r il l o y l r 厂、 l “2 a p p i i 。t i ) 堋 驽 i 。墨;雌 ,、一 一1 c i i - n t 。1 i r, e ist i 图2 1j 2 e e 环境 f i 9 2 1 t h ej 2 e ee n v i r o n m e n t 4 山东科技大学硕士学位论文j 2 e e 平台 2 , 1 1 多层模型 正如图2 1 中所描述的一样,j 2 e e 平台提供了一个多层分布式应用程序模型。这也 就意味着应用程序的各个部分能够运行在不同的设备上。j 2 e e 结构中分别定义了客户层 ( c l i e n tt i e 0 、中间层( m i d d l et i e r ,由个或多个子层组成) 和用来提供现存信息系统的各 种服务的后端系统层( 又称企业信息系统层,e i st i e r ) 。客户层可以支持各种客户类型, 即包括公司防火墙内部和外部的用户。中间层通过w e b 层的w e b 容器来支持客户服务, 并通过e j - b ( e n t e r p r i s ej a v a b e a n s ) 层的e j b 窗口来支持业务逻辑组件服务。企业信息系统 层能够通过标准a p i 的方法来支持对现存信息系统的访问。 2 2 j 2 e e 平台技术 j 2 e e 平台指定了支持多层企业级应用程序的技术1 0 l 。这些技术分为三种类型:组件、 服务和通信。j 2 e e 平台1 4 版的架构图如图2 2 所示。 图2 2j 2 e e 架构图 f i g2 2 j 2 e ea r c h i t e c t u r ed i a g r a m 开发人员使用组件技术创建企业级应用程序的核心组成部分,也就是用户界面和业 5 山东科技大学硕士学位论文j 2 e e 平台 务逻辑。使用组件技术开发出的模块可以被其他企业级应用程序再次使用。j 2 e e 平台系 统服务支持组件技术,这种系统级的服务可以简化应用程序设计,并允许组件以充分利 用配置环境中存在的各种资源。 因为大多数企业级应用程序需要访问现存的企业信息系统,所以j 2 e e 平台能够支 持访问数据库、事务、命名和目录以及消息接发服务的a p i 。最后,j 2 e e 平台了客户和 服务器、不同服务器拥有的协作对象之间进行通信的技术。 2 2 1组件技术 组件是一个应用程序级的软件单元。除了作为j 2 s e 平台一部分的j a v a b e a n s 组件外, j 2 e e 平台还支持以下几种组件:a p p l e t 、应用程序客户端、e j b 组件和w e b 组件。a p p l e t 和应用程序客户端运行在客户平台上,而e j b 和w e b 组件运行在服务器平台上。 所有j 2 e e 组件都需要一种叫做容器( c o n t a i n e r ) 的系统级实体的运行时支持。容器可 以为组件提供如生命周期管理、安全、部署以及线程之类的服务。由于容器管理这些服 务,所以在容器中使用组件时,许多组件的行为可以定制。 2 2 1 1 a p p l e t 和应用程序客户端 a p p l e t 和应用程序客户端是在自己的j a v a 虚拟器中运行的客户端组件。 w e b 浏览器是最简单的j 2 e e 客户。它会显示w e b 层提供的h t m l 内容。它是i n t e m e t 上w e b 客户的选择,容易得到,用户可以熟练地使用它,部署也没有问题。 a p p l e t 能够运行在其他支持a p p l e t 编程模型的应用程序或设备上,但是它们是通常 运行在w e b 浏览器上的g u i 组件,能够为j 2 e e 应用程序提供强大的用户界面。j 2 e e 客户端可以使用j a v a 插件( p l u g - i n ) 提供a p p l e t 的运行环境。 应用程序客户端容器提供对j 2 e e 服务和通信a p i 的访问。 2 2 1 2w e b 组件 w e b 组件是对请求作出响应的软件实体。w e b 组件通常为基于w e b 的应用程序生成 界面。j 2 e e 平台提供两种类型的w e b 组件:s e r v l e t 和j s p 页面。 2 2 1 2 1s e r v l e t s e r v l e t 是一段能够扩展w e b 服务器功能的程序,可视为运行在服务器中的a p p l e t 。 s e r v l e t 从客户接收请求,动态地产生响应( 可能会查询数据库来响应这一请求) ,然后发 送一个包含h t m l 或x m l 文档的响应给客户。 6 些查型垫查堂堡主兰竺堡苎! ! ! ! ! 鱼 s e r v l c t 一次装入存储器后,可以运行在一个轻量级的线程上,相比以往进程级的c g i 脚本节省了开销。它还提供了用来在整个w e b 应用程序中维护会话数据和与用户交互的 统一的a p i 。会话数据克服了h t t p 的无状态属性所带来的w e b 应用程序的局限性。 s e r v e r 是可扩展的,因为它们是以j a v a 编程语言为基础的。这就允许开发者像对j a v a 应用程序一样来扩展w e b 应用程序的功能。如:一个控制器s e r v l e t 可以扩展成一个安全 控制器。原来控制器的所有功能都可保留,并且增添了新的安全特性。 ( 1 ) 过滤器一- f i l t e r f i t l e r 是一种特殊类型的s e r v l e t 。它驻留在w e b 服务器上,用来对请求进行预处理 ( p r e - p r o c e s s i n g ) 和对结果进行后继处理( p o s t - p r o c e s s i n g ) 。多个f i l t e r 还可以构成 f i l t e r - c h a i n ( 过滤器链) ,实现对客户请求和响应结果的链式轮询处理。 2 2 1 2 2j s p j s p 是为了提供一种声明性的、以表示为中心的开发s e r v e r 的方法而设计的。和 s e r v e l t 提供的所有益处一起,j s p 为w e b 客户生成动态页面。 和s e r v l e t 一样,j s p 技术是以一种移植的独立于平台或应用程序的方法来提供动态 内容的有效形式。通过包含j a v a b e a n s 技术和定制自定义标签扩展,j s p 技术支持可重用 模型。 ( 1 ) j a v a b e a n s 组件 2 s p 页面使用的i a v a b e a n s 组件不同于a w l 或j f cj a v a b e a n 组件,后者仅仅使用 使用g e t 或s e t 方法来简单地显示属性。使用j a v a b e a n s 组件的一种方法是作为以数据为 中心的模型对象。如果这些b e a n 是专门为操作和返回数据而创建的,它们可以同时被 应用程序的多个视图和多个用户使用。 同前台用户交互时,j a v a b e a n s 组件可以用作控制器。例如,可以使用l a v a b e a n 组 件处理来自在前台组件的所有请求,并把它们送给相应的页面。 此外,与页面有关的j a v a b e a n s 组件可以为某一个特定的页面产生结果逻辑。但是 此类j a v a b e a n 的重用性大大降低了。s ( 2 ) 自定义标签 定制标签( c u s t o mt a g s ) 是由j s p 技术定义j s p 页面使用的定制、声明性、模块化的功 能而提供的机制。定制标签是作为标签库来传递的,可使用t a g l i b 指示符来导入j s p 页 面。一旦导入,自定义标记可以用在使用由指示符定义的前缀的页面中。 自定义标记通过标签创建时的参数获得初始化信息,来对一页进行操作。它还可以 7 山东科技大学硕士学位论文j 2 e e 平台 访问w e b 容器和所有对j s p 页面有效的对象。使用定制标签对于遍历数据以产生一页所 需要的h t m l 代码很有用。它的使用可以减少j s p 页面用来产生动态内容的j a v a 语言 代码,比如循环或状态显示部分。除了显示h t m l 之外,定制标签还可以用来处理数据。 自定义标签提供了和j a v a b e a n s 组件相同的功能,可以说定制标签是智能的 j a v a b e a n s 组件。 使用j a v a b e a n s 和定制标签,不需要再使用以前的s c r i p t 脚本,就可以实现动态内 容了。 2 2 1 2 3w e b 组件服务器 w e b 组件驻留在w e b 容器中。除了标准的容器服务以外,容器对s e r v l e t 提供网络服 务、解码请求和格式化响应,支持h t t p 协议来接收请求和发送响应。容器提供把j s p 页解释、处理成s e r v l e t 的引擎。 2 2 1 2 4j 2 e em v c 架构 图2 3 j 2 e em v c 架构 f i 9 2 3 t h e j 2 e em v ca r c h i t e c t u r e 应用j a v a s e r v l e t 、j s p 及相关技术,可以实现软件设计中的 m v c ( m o d e l v i e w c o n t r o l l e r ) 设计模式。m v c 模式中,模型( m o d e l ) 代表作为应用程 序基础的数据。视巨t ( v i e w ) 是模型的表现形式,呈现模型所代表的数据。控制器( c o n 仃o l l e r ) 负责维护模型中的数据,并确保视图所表示的数据与相应的模型一致。m v c 实现了模型 和视图的分离,可以生成模块化程度更高的系统。图2 3 显示了j 2 e e 的m v c 架构。 些查型垫奎兰堡主堂堡堡塞 里! ! ! 鱼 在j 2 e e 的表示层,一个或多个s e r v l e t 被用作控制器。它们接收客户端请求,在模 型上作特定的处理,最后反馈给用户合适的视图。在一些设计简单的系统中,s e r v l e t 在 代码中嵌入h t m l 标记,自己负责生成反馈视图。更高级的方法是,s c r v l e t 选择合适的 j s p 页面以将请求传递给它;然后,j s p 页面处理请求并将响应送回s e r v l e t 。因为j s p 的 页面代码更好维护,且可以利用自定义标签和j a v a b e a n s 将动态逻辑与静态内容相分离, 因此这种方法更受提倡。 其工作流程图2 3 所示,步骤如下: 1 w e b 请求被入v i 过滤器截取,以进行预处理、监听、日志记录,处理完毕后重定 位到一个s e r v l e t ; 2 s e r v l e t 处理请求,并与应用程序的业务逻辑层进行交互,最后将处理流程转发给 j s p 页面; 3 j s p 应用j a v a b e a n s 和自定义标签来定义动态页面,响应经过出口过滤器的后继处 理后反馈给用户。用户得到合适的页面视图。 2 2 _ 1 3 e j b 组件 e j b 体系结构是一种用来开发和部署组件的服务器端技术,这些组件包含企业级应 用程序的业务逻辑。e j b 组件( 术语为企业b e a n ) 是可伸缩的、事务性的、多用户安全 的。可以说,e j b 是j 2 e e 规范的核心内容。 e j b 规范将e j b 定义成“e j b 是用于开发和部署多层结构的、分布式的和面向对象 的j a v a 应用系统的跨平台的组件体系结构”。e j b 对象是服务器端组件对象,工作于支 持e j b 的应用服务器中。e j b 规范定义了一个服务器端的构件环境,在多层应用中它处 于客户和服务器之间,负责监视客户和服务器间的所有通信,并修改通信以确保使用正 确的线程、安全、事务和持久化语义,这样应用开发人员不用再操心底层问题,可以集 中于业务逻辑的开发。这种关键点的分离使得可伸缩的、可访问的和高度安全的应用程 序很快地开发出来。 e j b 体系结构赋予了企业b e a n 和e j b 容器许多工作独具的特性,使它们具有可移 植和可重用性。 1 企业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 只能在支持这种服务的容器中使用。 2 企业b e a n 的行为并没有完全包含在它的实现中。服务信息,包括事务和安全信息, 9 些垄型茎查堂婴主堂堡堡塞! ! ! ! ! 鱼 都是同企业b e a n 的实现相分离的。这样就允许在应用程序汇编和部署时定制服务信息。 2 2 1 3 1e j b 的分类 从e j b 2 0 版本开始,定义了3 种不同的企业级b e a n : f 1 ) 会话b e a n ( s e s s i o 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 的字段可以访问到的所有对象。它存在的时间一般也就是它的客户的存在 时间。有状态会话b e a n 主要用来表示业务对象间的工作流程。 无状态会话b e a n 不包含特定于用户的数据,因而是匿名的。这也就决定了它可以服 务于多个客户。它用来建模可重用的服务对象,可以同时操作数据的多行,提供数据的 过程视图。因为没有捆绑在一个客户上,它需要较少的系统资源,因而它非常有效率。 ( 2 ) 实体b e a n ( e n t i t yb e a n ) 实体b e a n 表示存储在持续存储器或现存应用程序中的商务数据的对象视图。它表示 一个数据的逻辑逻辑性记录( 行) ,支持多个用户的并行访问,同时保护数据的完整性。 实体b e a n 通过主键来标识。 在企业b e a n 实例和基础持续存储器之间传送实体状态的协议称为对象的持续性。 实体b e a n 按照以下的方式来实现持续性: 1 在企业b e a n 类或在由企业b e a n 类提供的一个或多个辅助对象中直接实现持续性 ( b e a n m a n a g e d p e r s i s t e n c e ,由b e a n 管理的持续性,简称b m p ) 。 2 把对持续性的处理交由它的容器来处理( c o n t a i n e r - m a n a g e dp e r s i s t e n c e ,由容器管 理的持续性,简称c r o p ) 。 采用由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 m p 允许对j d b c 进行完全控制,因而映射对象到数据库的灵活性不受限制;而 c m p 简化了编写实体b e a n 的任务,把原来大量需要程序员写代码来实现的功能通过容 1 0 坐查型垫查兰堡主堂垡丝苎! ! 曼曼兰鱼 器对x m l 格式的配置文件的解析来实现。使用时,要根据实际情况进行利弊权衡。 需要注意的是,由于实体b e a n 连接到关系数据库时在读出和写入时都要进行 o b j e c t r e l a t i o n a l 映射,并且一次从数据库中读取大量数据时要映射成对象,影响操作效 率,消耗太多资源。因此,除非对数据库进行写操作,一般并不采用实体b e a n 进行数 据库连接。 ( 3 ) 消息b e a n ( m e s s a g e - d r i v e nb e a n ) 消息b e a n 是为了实现j a v a 消息服务与e j b 集成而提出的一种新的b e a n 类型,它是 能够接收j m s 消息的特殊的e j b 组件。与无状态参数会话b e a n 类似,消息b e a n 是无状 态的,容器能够类似地处理每一个消息b e a n 实例,这些实例都是匿名的。可以说,消息 b e a n 结合了会话b e a n 和j m s 消息侦听器的特性,允许一个业务层组件异步地接收j m s 消息。有关j m s 的具体内容,请参考2 2 3 节通信技术中的j m s 服务介绍。 2 2 1 3 2e j b 的客户端视图 b e a n 提供者定义企业b e a n 的客户视图。客户视图不受b e a n 部署在其中的容器和服 务器的影响。这就确保了b e a n 和它们的客户不用做出改变或重新就可以在多种执行环 境中部署。 对于r p c 调用类型的e j b ( 会话b e a n 和实体b e a n ) 。e j b 通过两个接1 :3 远程调 用接口和本地调用接口来提供企业b e a n 的客户视图。h o m e 接口和e j b 对象通过网 络远程调用企业b e a n 的服务;本地h o m e 接口和本地对象则以本地调用的形式请求企业 b e a n 的服务,无须网络传递。远程调用方式的网络开销较大,但企业b e a n 的部署位置灵 活:本地调用虽然不需要网络开销,但要求企业b e a n 和它的客户在同一e j b 服务器进 程中,部署位置受到了限制。 h o m e 是e j b 对象的“制造生成库”,提供了创建、删除、查找等管理企业b e a n 对 象生命周期的方法;e j b 对象是企业b e a n 的客户视图,也就是客户可用的一系列的商业 方法。本地h o m e 接口是h o m e 接口的本地版本,创建、删除、查找本地对象;本地对 象是e j b 对象的本地版本,实现本地接口。 至于消息b e a n ,因为它是异步模式,也就没有远程调用接口和本地调用接口。消息 b e a n 和它的客户通过接收来自j m s 消息目的地( j m sd e s t i n a t i o n ) 的消息和发送消息到 j m s 消息目的地来实现基于消息的异步交互。因此,消息b e a n 也仅仅有一种称为 o n m e s s a g e o 的商务方法,该方法接收j m s 消息。 图2 4 显示了e j b 的客户端视图。 1 1 山东科技大学硕士学位论文 j 2 e e 平台 2 2 2 平台的服务 图2 4e j b 的客户端视图 f i 9 2 4 c l i e n tv i e wo f e m e r p f i s eb e a n s j 2 e e 平台的服务简化了应用程序编程,并且允许在部署时定制组件和应用程序,以 使用部署环境中的资源。以下将列出几种最重要的服务: 2 2 2 1 命名服务 组件的环境由容器来实现,并作为一个j n d i 命名背景提供给组件。 j 2 e e 组件使用j n d i 接i = 1 来定位它的环境命名背景。组件创建一个 j a v a x n a m i n g i n i t i a l c o n t e x t 对象,然后在名字j a v a :c o m p c l l v 下的i n i t i a l c o n t e x t 中查找环 境命名背景。 2 2 2 2 安全服务 j 2 e e 安全服务确保只有已授权的用户才可以访问资源。访问控制通过鉴别和授权两 部分来进行。 容器可以配置w c b 组件或e j b ,这样只有被授权的用户才能访问系统资源a 每一个 1 2 些查型垫查兰堡主堂竺笙苎! ! 望! 鱼 客户属于一个特别的角色,而每个角色只允许激活特定的方法。应在e j b 的布置描述中 声明角色和可被激活的方法。 2 2 2 3j 2 e e 事务管理( t r a n s a c t i o nm a n a g e m e n t ) 容器指定组成一个事务中所有方法间的关系,这样芏个事务中的所有方法被当成二 个单一的单元。当客户端激活一个企业b e a n 中的方法,容器介入管理事务。你只需在布 置描述文件中声明企业b e a n 的事务属性,而不用编写并调试复杂的代码。容器将读此文 件,为你处理此e j b 的事务。 j t a 指定了事务管理器和分布式事务系统涉及的各个部分之间的标准j a v a 接口。j t s ( j a v a 事务服务器) 则指定了一个事务管理器的实现。 2 2 2 4 数据库服务 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 2 e e 平台和多种表格式数据源之间建立于数据 库无关的连接。 获取数据库连接是一项耗时的工作,而且连接的数目非常有限。从j d b c 2 0 规范开 始,容器通过管理数据库连接池来缓解这些问题。客户可以从池中迅速获取连接,释放 连接叉可为其他客户使用。 2 2 2 5 部署服务 它可以在包装和部署时定制组件和应用程序。j 2 e e 应用程序可部署为一系列的嵌套 单元,每单元都包含一个声明如何将汇编和部署进特定环境之中、x m l 格式的部署描述 符文件。 2 2 3 通信技术 通信技术提供了在客户和服务器之间以及不同服务器拥有的协作对象之间进行通信 的机制。主要的通信技术有: 2 2 3 1i n t e m e t 协议 i n t e m e t 协议定义了j 2 e e 平台的不同部分之间以及与远程之间的通信协议标准。 j 2 e e 平台主要支持下列i n t e m e t 协议:t c p i p 、h t t p 、s s l 。 2 2 3 2r m i ( 远程方法调用协议) r m i 将本地方法调用变为远程方法调用,它使用序列化的方式在客户端和服务器端 传递数据。p i v l l h o p ( r e m o t em e t h o di n v o e a t e i n t e m e ti n t e r - o r bp r o t c 0 1 ) 是r m i 的可移植 坐查型垫奎兰堡圭堂堡堡壅! ! 望兰鱼 的扩展,可以应用i n t e r n e ti n t e r - o r b 协议,并能够用来与c o r b a 集成,是一种被e j b 使用的底层协议。客户端通过r m i - 1 i o p 来与企业b e a n 进行通信。 2 2 3 3 消息接发技术 消息接发技术提供了一种异步的发送和接收消息的方法。j m s ( j a v a m e s s a g es e r v i c e , j a v a 消息服务) 提供了企业级应用程序使用的处理异步请求的接1 3 。j m s 消息用来同这些 应用程序进行协调。j a v am a i la p i 提供了发送和接收目的地为用户的消息的接口。尽管 这两种a p i 都能用于异步通信,但是当速度和可靠性是主要要求时,j m s 是首选。 j m s 定义了使用消息收发系统的a p i 。它支持点到点方式和发布一订阅方式的消息。 在点到点的方式中,发送者和接收者是一对一的,消息存储在称为消息队列的消息目的 地中;在发布订阅的方式中,发送者和接收者是一对多的,消息存储在称之为消息主 题的消息目的地中。应用j m s ,可以实现基于消息系统的企业应用集成。 j a v a m a i la p i 提供了一系列组成电子邮件系统的抽象类和接口。这些抽象类和接口 支持消息存储、格式和传输的许多不同的实现。从j a v a m a i l 类中派生出子类以提供诸如 i m a p 4 、p o p 3 和s m t p 之类的特定消息接发系统的实现。 1 4 山东科技大学硕士学位论文 x m l 技术 3x m l 技术 3 1引言 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 ( 可扩展标记语言1 的缩写,最早由w 3 c 组织于 1 9 9 8 年2 月发布,由w 3 c 组织推出的一系列规范组成。由于其良好的信息描述能力和 可扩展性、高度结构化和易于编程的特点,迅速成为w e b 中平台和厂商无关的数据存储、 数据交换标准。 h t m l 也是一种标记语言,它使用标签来标识内容如何显示。例如,标签 要求 文本加粗显示,标签 表示此处文本自成一段。与h m t l 不同,x m l 中的标签是用来 标识数据而不是格式显示的。正如我们在程序中取一个比较好听的名字一样,x m l 将一 个数据片段用易于理解的标签标识起来以便访问,例如: 张三叫姓名 。x m l

温馨提示

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

评论

0/150

提交评论