(计算机应用技术专业论文)j2ee上web+service的实现研究.pdf_第1页
(计算机应用技术专业论文)j2ee上web+service的实现研究.pdf_第2页
(计算机应用技术专业论文)j2ee上web+service的实现研究.pdf_第3页
(计算机应用技术专业论文)j2ee上web+service的实现研究.pdf_第4页
(计算机应用技术专业论文)j2ee上web+service的实现研究.pdf_第5页
已阅读5页,还剩74页未读 继续免费阅读

(计算机应用技术专业论文)j2ee上web+service的实现研究.pdf.pdf 免费下载

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

文档简介

烦士论义 j 2 e e1w e bs e r v i c e 的宴吼研究 摘要 w e b 服务出于萁跨平台可集成能力、松藕合瞧班及使瑙协议的普速经。嬲之广泛 的行业支持,几乎可以确定是下一代分布式系统的核心部分。而j a v a “2p l a t f o r m , e n 。t e r p r i s ee d i t i o n ( j 2 e e ) 则定义了设计、开发、组装和部鬻基于组件的平台无关的 多瑶分农式事务痤趱箨寝豹标壤体系结稳,是实瑗w e b 鞭务豹鸯然孚台。毽传统上, j 2 e e 并不支持w e bs e r v i c e 。本文尝试定义了一个基于j 2 e e l 3 的标准w e b 服务实现 模型,并在此基础上实现了一个简单的开发环境加以验证。擞后,本文还对j 2 e e 上 w e b 服务实现中的一然阉题作了较为深入豹讨论。 关键字:j 2 e e ,w e bs e r v ic e ,x m l ,e j b 坝士论义 j 2 e e1w e bs e r v i c e 的宴吼研究 a b s t r a c t b e c a u s et h e a b i l i t y o f i n t e g r a t i o n a c r o s s p l a t f o r m s ,l o o s e l yc o u p l i n g a n dt h e p o p u l a r i t yo fp r o t o c o l s ,i t i sd o u b t l e s st h a tw e bs e r v i c ei st h ec o r eu n i to ft h en e x t g e n e r a t i o nd i s t r i b u t e ds y s t e m s a tt h es a m et i m e ,t h ej a v a t m2p l a t f o i t n ,e n t e r p r i s ee d i t i o n ( j 2 e e ) t e c h n o l o g yp r o v i d e sac o m p o n e n t b a s e da p p r o a c ht ot h ed e s i g n ,d e v e l o p m e n t , a s s e m b l y , a n dd e p l o y m e n to fe n t e r p r i s ea p p l i c a t i o n s ,i st h eo p t i m u mi m p l e m e n tp l a t f o r m o fw e bs e r v i c e b u ti nt r a d i t i o n ,j 2 e ed o e s n ts u p p o r tw e b s e r v i c e s ot h i st h e s i st r yt o d e f i n eaj 2 e e l 3 b a s e dw e bs e r v i c e p r o g r a m m i n gm o d e l ,a n di m p l e m e n tas i m p l e d e v e l o pt o o lt ov e r i f yt h em o d e l i nt h ee n do ft h i st e x tt h ea u t h o rd e e p l yd i s c u s ss o m e a s p e c t sr e l e v a n tt ot h em o d e l k e yw o r d s :j 2 e e ,w e bs e r v i c e ,x m l ,e j b 2 坝士论义 j 2 e e1w e bs e r v i c e 的宴吼研究 引言 分布式对象技术的发展使得应用程序的体系结构从传统自包含的应用程序向模 块化、层次化、分卸化发展。基于分布式对象的应用程序的图形用户界面、业务逻辑 和数据源很自然地构成各自独立的层次,并且每一层也都是模块化的,使得应用程序 具有易变性、扩展性、重用性和可伸缩性等优点。 组件事务监控器( c t m ) 综合了分布式对象技术和传统事务处理监控器( t p 监控 器) 的优点,自动提供并发性、事务、对象分布、负载均衡、安全性和资源管理等系 统级服务,为服务器端组件提供了一个综合运行环境。c t m 用服务器端组件模型来定 义其组件规范,e n t e r p r i s ej a v a b e a n s 是当前最流行的服务器端组件模型之一。 x m l 技术因为其可扩展性和平台无关性,同益成为i n t e r n e t 这种分稚式异构平台 中的数据存储和交换标准。x m lw e bs e r v i c e 采用基于x m l 的协议进行接口描述和远 程通信:并采用标准的w e b 协议进行底层数据传输。这就使其具有平台和实现无关性, 并不受代理服务器和防火墙的限制。 传统上,j 2 e e 并不支持w e bs e r v i c e ,本文在查阅了大量国内外文献、资料的基 础上探讨j 2 e e 上w e bs e r v i c e 的实现模型,实现了一个简单的开发环境加以验证, 并研究了相关的技术。 坝士论义j 2 e e 1w e bs e r v i c e 的宴吼研究 1 分布式对象和j 2 e e 1 1 分布式对象 1 1 1 分布式对象的出现 随着信息技术的发展,尤其是i n t e r n e t 和w w w 的出现,必然使软件的开发和使 用面对的是网络这种分布式的异构平台。如何在这样的异构环境下充分利用资源( 包 括软件资源和硬件资源) 并开发新的应用。是一个非常现实而困难的问题。 为了解决分布异构问题从而实现分布式软件开发与应用,需要定义独立于具体平 台( 硬件、操作系统、网络协议甚至编程语言) 的接口和协议以提供相对稳定的高层 应用环境。 一般地,这些接口和协议包括:命名和查找服务接口。用于查找、定位一个服务 或远程对象;接口描述语言( i d l ) ,用于描述服务或远程对象的边界,是其与潜在客 户的语义接口;通信协议和数据表示标准,用于服务间或对象问通信。 最初,人们采用远程过程调用( r p c ) 来实现分布式计算。广泛使用的有:s u n 公司定义的开放网络计算远程方法调用o p e nn e t w o r kc o m p u t i n gr e m o t ep r o c e d u r e c a l l :开放组( t h eo p e ng r o u p ) 定义的分布式计算环境d i s t r i b u t e dc o m p u t i n g e n v i r o n m e n t :微软公司定义的微软远程过程调用m i c r o s o f tr e m o t ep r o c e d u r e c a l l 在已有的远程过程调用规范中,接口定义语言、通信协议和数据表示标准往往是 针对某种特定语言或平台的。远程过程调用只能发生在同一种r p c 规范的实现之间, 缺乏移植性和互操作性。另外,远程过程调用不支持继承性、多态性等面向对象的特 性。利用远程过程调用,可以调用某个特定的的过程,但该过程是无状态的,因此对 于相同的输入参数产生相同的输出结果:相反,在如果调用某个特定对象中的某个方 法时,由于对象的多态性,不同实例的响应是不同的,因为各个对象实例管理着自己 的数据而方法是在数掘上实现的。显然远程过程调用也不支持继承性。 随着面向对象的思想的引入,人们丌始注意到远程过程调用的不足并丌始发展分 布式对象技术。主要的有:对象管理集团( o m g ) 提出的公用对象请求代理结构一c o m m o n o b j e c tr e q u e s tb r o k e ra r c h i t e e t u r e ,c o r b a :微软公司定义的分靠式对象组件模 型一d is t r i b u t e dc o m p o n e n to b j e c tm o d e l ,d c o m :s u n 公司提出j a v a 远程方法调 用一i a v ar e m o t em e t h o di n v o k e ,1 a v a r m i 。 坝士论义 j 2 e e1w e bs e r v i c e 的宴吼研究 1 1 2 主要的分布式对象技术 c o r b a 规范是o m g 提出的一种开放的、分布式对象计算结构,独立于编程语言、 网络协议和软硬件平台。 c o r b a 用i d l 描述对象的边界。i d l 是纯说明性的,是服务器对象与调用它的客 户端的合同接口,它独立于编程语言和具体实现,使得客户机和服务器可以在语义层 次上协同工作。i d l 源文件需要由i d l 编译器映射具体编程语言的头文件或接口以及 客户端桩文件、服务器端框架文件等。生成的文件与应用程序一起作为客户机和服务 器的可执行文件。 o r b ( 对象请求代理) 是c o r b a 的核心,是一种开放式的软件总线。代理本地对象 向服务端c o r b a 对象发出请求或接收响应,负责定位、激活服务器端对象、按照 g i o p ( g e n e r a li n t e r o r bp r o t o c 0 1 ) 协议或其他专有协议编发请求并接收应答。 g i o p 规定了o r b 间通信的报文格式和公用数据表示。它直接工作在各种面向连接 的传输协议上。g i o p 协议规定了七种报文格式,涵盖了所有o r b 请求应答语义。不 需要进行任何形式的协商。公用数据表示( c d r ) 把用o m g 接口定义语言定义的数据 类型映射为统一的网络化的具体消息表示。c d r 还负责处理字节排序、存储器定位等 平台之间的差异。 g i o p 构成了o r b 间全局骨- t 通信协议。其他专有o r b 间通信协议域中的o r b 在与 同一域中的的o r b 通信时,采用专有协议;与其它o r b 通信时则要通过半桥 ( h a l f b r i d g e ) 把专有协议翻译为g i o p 。这样任何o r b 间都可以进行通信,而不用 考虑具体的网络协议和软硬件平台。 m 4i 1 i c o r b a 通信结构 g i o p 还定义了一种可互操作的对象标记一i o r ,只要对象标记传递通过对象请求 中介,对象请求中介必须为其产生一个i o r 。i o r 将一个简要表( p r o f i l e ) 与对象标 记联系起来。简要表提供了识别浚o r b 所处的域和支持协议的自描述数据。通过i o r 。 客户端o r b 就可以定位服务器端c o r b a 对象,并与之通信。 坝士论义 j 2 e e1w e bs e r v i c e 的宴吼研究 在c o r b a 中,客户端服务器端共享的只是接口定义,而i d l 源文件可以映射成任 意c o r b a 支持的语言并自动生成用于远程通信的s t u b s 和s k e l e t o n s 。客户端实现与 服务器对象实现可以通过g i o p ( i i o p 为g i o p 在t c p 上的实现) 透明地交互。而不用关 心彼此的位置、实现语言和软硬件平台。 客户端 习1 兰o:i + s t u b s ( 础l 婴( 至 另蠢酒甬。 c o r b a 调用 另外,c o r b a 还定义了交易器、命名、安全、事务、并发、消息机制等系统服务 使得整个体系更加完善。 与c o r b a 不同的是,d c 0 m 主要针对的是w i n t e l 同质平台,与操作系统紧密地绑 定在一起。d c o m 对跨语言的支持基于“二进制标准”,也就是说对于每一种给定的语 言,其编译解释器都采用唯一的方式将代码转换为相同的二进制标准代码。d c o m 采 用u d p d c o m 作为其通信协议,这是一种基于作了某些改变的o s f 的d c er p c 规范的 无连接协议。另外,d c 叫所依赖的系统服务大都由操作系统提供,比如事务管理由 m t s ( m i c r o s o f tt r a n s a c t i o ns e r v e r ) 提供、消息传输由m s m q ( m i c r o s o f tm e s s a g e q u e u es e r v e r ) 提供、安全性由n t 机制提供支持等。当d c o m 用于其它操作同时,将 会缺少盯s 和骼m q 的支持,因此d c 叫只对微软平台而言是一个好的选择。 j a v ar m i 是各种分布式对象技术的一个j a v a 语言抽象或编程模型。起初j a v ar m i 局限于j a v a 远程方法协议( j r m p ) ,只能在j a v a 程序中使用,被认为是j a v a 专有的。 后来实现了基于i i o p ( c o r b a2 3 或更高版本) 的j a v ar m i ,即j a v ar m i i i o p 。j a v a r m i i i o p 是一个支持c o r b a 的r m i 版本,将j a v ar m i 编程模型的简单性和c o r b a 的 强互操作性结合了起来。 1 2j 2 e e 体系结构 1 - 2 1 应用程序体系结构 应用程序体系结构经历了巨大的变化。第一代的应用程序采用一层结构,呈现逻 辑、业务逻辑和数据存储服务紧密地结合在一起,是一种完全封闭的应用环境:随着 筐 小 m 。一 刚 弧一 坝士论义 j 2 e e1w e bs e r v i c e 的宴吼研究 专业数据库产品的出现,数据存储服务从程序中分离出来,遂时几乎所有的应用程序 都采纳二层体系结榴( 也稼之为客户服务器体系结构) 。 在二层体系结构中,业务逻辑作为一组操体系统层面的成用进程来榆成,这些进 程运行在客户机上;业务逻辑与代袭用户与业努过程之间交互的图形用户界面封装在 一起,通过网络与数据痒服务器邋信。 崮予、韭务逻辑没有厌呈现逻辑中分离出来,这就决定了一个应餍绑患予一种特定 的呈现类型,不能使片j 不同的呈现类型来重用姚务逻辑实现;如果业务逻辑发生改变, 则会替敬整个系统的重新编译和爨新部署。由于业务逻辑处于每个客户机上,不能共 享慕黧霸蠹静资滚,懿数据瘴连接,便褥程旁瓣扩震毪受蓟滚涮,曩多 还会警致数据 库完楚憔和安全性方面的问题。同时,对于每个应用程序,开发者都必须编写安全、 事务、多线程处理、资源访问等系统级服务代粥。 传绫熬三淫缕稳宠骚了二凄绥褥豹一些羧翻。三层结稳撼蛙务逻辑及鼙凌逻辑中 分离澎来,部署在i b m 的c i c s 或b e a 的t u x e d o 这种t p 监掇器上,由通j 遘网络消息 使用的过程化应用獠净( c o b o l 或p l i 进程) ,或r m i 的前岿远程过程调用( r p c ) 组 或。t p 髓控器自动管理系统运行的整个环境,提供安全、攀务、劳发、资源共享等 系统缀熊务。 假t p 监控器中的业务逻辑悬过程化的,不其有分布式对蒙技术的多感性、可扩 展性、w 继承性、可熏用性等优点。同时,分布式对象技术允许有状态和嗽身份的 不两对象在溺络上分稚,使绝韵麓被其谴系统倏耀。与r p c 不鞫豹是,登调蘑一个分 布式对魏的方法时,方法是在一个对象的特定实例上,而不起个应用程序的过程。 分布式肘对象通常配鬣在某种类犁的o r b 上,o r b 负责定位邋程对象、编发请求并接 毂应昝。毽o r b 只嫩分毒式对象阕懿麓单通蕊巾躯,缺少绝辩熬系统级懿蘩磷结构。 即使事务、并发、安全、容错等服务被定义并实现了,分布式对象也岿须通过a p i 明确地使用这些服务,o r b 不会自动支持这些服务。 s t a n d i s h 组织对1 0 0 亵务系绞瓣调查表明:在其缓玛审,只寿少于3 漱豹我璃与 其体渡务应用有关;商其它部分麟于基础菇构。当业务环境以及应用蝮努发生变傀 时,都将引起包括綦础结构在内的整个系统的改变。 基于这个事实和糟监控嚣与分毒式对象技零豹特点,人 | i 】提出了鳃件事务监控 器( c t m ) 的概念。c t m 综合了分命式对象系统的可变性、可扩展性、可鬟精瞧和f p 监控器健壮的“运行环境”。c t m 通过自动管理弗发性、事务、对象分布、负载均衡、 安全性和资源管理,为服务器端组件提供了一个综合运行环境。虽然应用程序开发 坝士论义 j 2 e e1w e bs e r v i c e 的宴吼研究 者仍要注意这些问题,但并不需要明确的实现。 c t m 的基本特征是分布式对象,包括一个提供系统服务的运行环境和一个服务器 端组件模型。下图显示了应用程序体系结构的变化: 第一层 第:层 第二层 g u ig u 1 l ,。,。一 r - - - - - u _ ,- - - - - _ - - - - - - - 一一 5 e r r ic e s e r v l c e 斋r v i 磊 d a t as t o r e 自包含:层结构二层结构 图1 2 1 应用程序体系结构变化 1 2 2 服务器靖组件模型和e n t e r p r i s ej a v a b e a n s c t m 要求服务器端对象遵循特定的服务器端组件模型。组件模型定义c t m 和服务 器端对象间的接e l ,描述应用程序开发者和c t m 供应商的职责约定。 只要遵循组件模型,服务器端组件能在所有支持这种组件模型的c t m 上不经修改 而直接运行。服务器端组件模型通常支持基于属性的编程,这就允许在配置组件时修 改它的运行实行为,而并不修改组件中的程序代码。依靠组件模型,服务器管理员通 过将相应的属性设鬣为特定值,从而声明个服务器端组件的事务、安全性甚至持久 性行为,把服务器端组件组装成一个应用系统。 服务器端组件模型保证了服务器端组件的移植性、重用性,同时决定了应用程序 开发者编写服务器端组件的难易程度。 1 9 9 6 年微软公司发布了微软事务服务器m t s ,它使用基于d c o m 的服务器端组件 模型和分布式组件服务。m t s 功能强大,且应用程序开发a p i 相当简单,但作为一个 公开的标准,m t s 未达到预期的效果,因为m t s 是微软专有的c t m ,使用它将使得应 用限于w i n d o w s 平台。 s u n 公司与各c o r b ac t m 供应商合作在1 9 9 7 年提出了e j b 规范。s u n 公司对e j b 镪定义跫te d b 是歼发和配置基于组件的分南式商务瘦甬程穿的暇务器端组件模型, 甬8 玎发的应甬程事是司伸缩的、事务性的、多甬p 安全的,这些直甬程亭可能只 需编写一次,可以在支持e j b 规范的任何服务器平台上配置。可以简单镝认为e j b 是一个标准的c t m 服务器端组件模型,是由c o r b a 加上如何编写和管理组件、如何利 6 坝士论义 j 2 e e1w e bs e r v i c e 的宴吼研究 用系统缴服务以提高编程效率的标准组成。 e j b 趣莲到建了零孛底层结秘,它关系到系绞缀编程,翅事务、安全、线程、余 名、对象生命周期、资源共享、远程访闯和持久往等等;它同时也简佬了访问现存应 用程序的过程,并为工具的创建和使用提供了统一的应用程序开发模型:定义了e j b 组件与其客户端和黎器的约定。 下豳显示了e j b 结构。e j b 缀侔的客户端筏鬻由h o m e 接强和远程接翳组成,客 户端只能通过这两个接1 :9 访问b e a n 的业务逻辑实现,从而对客户端屏蔽tb e a n 以及 容器的窳现细节,使得客户端代码和业务逻辑的实现相对独立。 h o m e 接蜀提供了剑建、酾豫、查我等管瑗e 妫对象生命褥期的方法定义,而远 程接口划提供了b e a n 的具体业务逻辑方法定义。容器根据配鬻描述器和b e a n 实现类 自动生成h o m e 接口和远程接口的实现类。在容户端,接口实现是负责分稚式对象间 逶售戆s t u b ,它受黉怒客户端调鲻发送至l 骚务器旗,薯返黧调趸结采,经客户骥裁 像使用本地对象一样使用分布式对象。在服务器端,h o m e 对象实现是一个实现了所 有h o m e 接口中定义的方法的分布式对象,负责帮助容器管理b e a n 的生命周期;远程 对象包装了b e a n 的寅铡,并与容器协同工作,在运行对为b e a n 提供系统缴服务。 客声端 e j b 服务器 圈1 2 2e j b 结构 e j b 服务器上包含b e a n 的环境被认为是容器。容器更多的是一个概念,而不是 一拿携壤摸墼。在概念上,容器终为b e a n 类彝缀务器夔爨套纺,受责管理h o m e 接蜀 和远程矮口的实现,帮助这些对象管理b e a n 资源并给运行时b e a n 实例提供系统级服 务。 e j b 蕴 孛与容器其有鳃浚豹接口约霆,g n t i t y b e a n 、s e s s i o n b e a n 秘 l e s s a g e d r i v e n b e a n 接口是b e a n 一容器约定的基础。这些接口定义了在b e a n 的生命餍 期中通知其状态管理攀件的回调方法。在运行时,当特定的状态管理事件发生时,容 器调用b e a n 实例豹则调方法。t :t c 如,当容器要将个e n t i t yb e a n 实例的状态写入 坝士论义 j 2 e e1w e bs e r v i c e 的宴吼研究 数据库前,它首先调用b e a n 实例的e j b s t o r e 0 方法,使b e a n 实例在写入数据库前 有机会清理自己的状态;e j b l o a d0 方法则是当b e a n 实例状态刚从数据库中读出后调 用的,使b e a n 可以进一步同步自己的状态。e j b 规范定义了各种回调方法调用的时 机和方法的任务,这给b e a n 开发者提供了一个可预测的运行时组件模型。 e j b 组件分为3 种基本模型:e n t i t yb e a n 、s e s s i o nb e a n 和m e s s a g e - d r i v e nb e a n 。 e n t i t y b e a n 用于建模持久性对象和持久性对象间的关系,代表数据库中的持久 记录,为数据库中的数据提供可重用的、一致的接口,为大量的客户端提供快速、可 靠的数据和行为使用,同时保护数据变化的完整性。 当一个大型系统的客户端数量增加时,服务器端需要的分布式对象和资源也相应 增加,从而降低系统的反应时间。e j b 规范明确支持在运行时管理大量e n t i t yb e a n 的实例池机制。因为客户端不直接与b e a n 实例交互,所以没有必要为每个客户端保 留一个b e a n 实例。通过实例池技术共享容器中创建的b e a n 实例,把需要频繁创建、 销毁的私有资源变为可共享的公共资源,减少了需要的实例数量,从而减少了服务器 处理客户端请求所需的资源消耗:同时因为实例池中的实例均处于r e a d y - t o - u s e 状 态,减少了客户端调用延时。同时,数据库连接池的使用也使得只需很少的数据库连 接便可以满足大量客户端对数据库的高速存储操作。 e n t i t yb e a n 允许并发访问。通过传递e j b 对象的远程引用或调用f i n d e r 方法, 在同一时间可能由多个客户端持有对同一个e j b 对象的远程引用。e j b 规范规定:在 同一时间只允许一个客户端线程访问b e a n 实例,直到方法调用完成或改方法所处的 事务结束。在此期间,该客户端独占b e a n 实例的使用权。同时,容器根据配置自动 管理事务,从而保证了多用户并发访问情况下数据的完整性。 s e s s i o nb e a n 代表客户端与服务器间的一次会话,用于建模工作流,与 e n t i t y b e a n 、数据和其他资源协同工作以完成特定的业务逻辑。通过向客户端屏蔽工 作流细节,简化了客户端与e j b 系统的交互,是客户端代码与业务逻辑实现相对独立, 有利于系统升级和维护,同时也使得为工作流建模的代码可以被重用。 s e s s i o nb e a n 包装业务逻辑,工作流中与其它资源的交互在服务器本地进行, 客户端应用程序上的一次r m i 方法调用导致服务器内部的多次交互,但网络上只有对 s e s s i o nb e a n 一次调用产生的负载。在分布式对象中,每次方法调用均需要一。个r m 循环,数据以流的方式在s t u b 和s k e l e t o n 间传递,产生网络负载。s e s s i o nb e a n 通过减少客户端完成工作所需要的请求数来减少网络负载并提高程序性能。 刍使用会话b e a n 管理工作流时,客户端只需要很少的b e a n 就可以完成 作,因 坝士论义 j 2 e e1w e bs e r v i c e 的宴吼研究 而减少了客户完成工作所需的连接数,这对于减少服务器端维护连接所需的资源消耗 有非常重要的意义。同时减少了客户端使用的s t u b 的数量,节省了客户端的内存消 耗并减少了处理周期,使客户端变得更瘦。见下图: 客户端只使用实体b e a n使用s e s s i o n b e a n 时 图1 ,2 3s e s s i o n b e a n 使客户端变“瘦”,同时减少网络负载 e j b c o n t e x t 是b e a n 一容器约定的另一个方面,e j b c o n t e x t 是一个由容器实现的 接口,为b e a n 类提供了容器、使用它的客户端、事务和安全方面的信息,是b e a n 在处理客户的请求和容器回调方法时可利用的环境信息。 1 2 3j 2 髓体系结构 j a v a t m2p l a t f o r m ,e n t e r p r i s ee d i t i o n ( j 2 e e ) 定义了设计、开发、组装和部署 基于组件的平台无关的多层分布式事务应用程序的标准体系结构。图1 2 4 显示了 j 2 e e 应用程序结构。通常j 2 e e 应用程序由三层组成,分为客户端表示层、服务器端 业务逻辑层和后端企业信息系统层。 幽1 2 4j 2 e e 体系结构 j 2 e e 应用程序支持非常广泛的客户端环境。客户端只负责应用程序的表示逻辑 和与服务器端组件的分布式通信,因而比较瘦:j a v a 语言w r i t eo n c e r u n a n y w h e r e ”为客户端提供了平台无关性。按照运行方式的不同,分为w e b 客户端和 a p p l i a t i o n 客户端。w e b 客户端通过标准的w e b 协议( h t t p l h t t p s ) 与服务器端w e b 组件交互,出浏览器根据标记语言产生显示页面:a p p l i a t i o n 客户端则直接通过r m i 与e j b 组件交互,通常具有自己的图形用户界面。 坝士论义 j 2 e e1w e bs e r v i c e 的宴吼研究 服务器端业务逻辑由j 2 e e 组件构成。j 2 e e 组件是由相关的类文件、资源文件和 配置文件构成的自包含的软件功能模块。j 2 e e 规范定义了两种组件模型:w e b 组件和 e j b 组件。w e b 组件包括s e r v l e t 和j s p ,提供了j 2 e e 应用程序对w e b 应用的支持。 容器是组件和提供系统级服务的j 2 e e 服务器间的接口。通过设置配置描述器 ( x m l 文件) 的属性来指定应用程序及组成应用程序的j 2 e e 组件的容器设置,从而 设置j 2 e e 服务器为组件提供的系统级服务,把组件组装成j 2 e e 应用程序。 后端企业信息系统包括企业资源管理系统( e r p ) 、大型机事务系统、数据库系统、 命名及目录服务以及电子邮件系统等。j 2 e e 规范定义了服务器端组件访问这些组件 的标准,如j i ) b c 用于访问数据库系统。 1 2 4j 2 耽服务器 j 2 e e 规范得到了业界的广泛支持。 产品。其中包括b e a 公司的w e b l o g i c 、 目前市场上已经有超过3 0 种的j 2 e e 服务器 i b m 公司的w e b s p h e r e 等。 0 坝士论义j 2 e e 1w e bs e r v i c e 的宴吼研究 2 1 儿 2 w e bs e r v i c e 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 ,可扩展标记语言) 是一种纯文本形式的标记 语言,是s g m l 的简化版本。由于其良好的信息描述能力和可扩展性、高度结构化和 易于编程的特点,解决了e d i ( e l e c t r o n i cd a t ai n t e r c h a n g e ,电子数据交换) 中遇到 的很多问题,迅速成为w e b 中平台和厂商无关的数据存储、数据交换标准。 x m l 继承了s g m l 的许多特性,首先是可扩展性。正如j a v a 允许使用者声明他们 自己的类,x m l 允许使用者创建和使用他们自己的标记而不是h t m l 的有限词汇表。 这一点至关重要,企业可以用x m l 为电子商务和供应链集成等应用定义自己的标记语 言,甚至特定行业一起来定义该领域的特殊标记语言,作为该领域信息共享与数据交 换的基础。 其次是灵活性。h t m l 很难进一步发展,就是因为它是格式、超文本和图形用户 界面语义的混合,要同时发展这些混合在一起的功能是很困难的。而x m l 提供了一种 结构化的数据表示方式,使得用户界面分离于结构化数据。所以,w e b 用户所追求的 许多先进功能在x m l 环境下更容易实现。 第三是自描述性。x m l 文档通常包含一个文档类型声明,因而x m l 文档是自描 述的。不仅人能读懂x m l 文档,计算机也能处理。x m l 表示数据的方式真正做到了独 立于应用系统,并且数据能够重用。x m l 文档被看作是文档的数据库化和数据的文档 化。除了上述先进特性以外,x m l 还具有简明性。它只有s g m l 约2 0 的复杂性,但 却具有s g m l 功能的约8 0 。另外,x m l 也吸收了人们多年来在w e b 上使用h t m l 的经 验。x m l 支持世界上几乎所有的主要语言,并且不同语言的文本可以在同一文档中混 合使用,应用x m l 的软件能处理这些语言的任何组合。所有这一切将使x m l 成为数据 表示的一个开放标准这种数据表示独立于机器平台、供应商以及编程语言。 x m l 文件具有物理结构和逻辑结构。物理上,文件由称为实体的单元组成。一个 实体可以引用其他实体,将他们包含在文件中。实体内容的改变将导致所有引用它的 x m l 文件的内容作出相应的改变。逻辑上,x m l 文件由声明、注释、处理指令、元素 和属性组成,所有这些都在文件中用显示标记指明。 x m l 文件必须是形式良好的( w e l 卜f o r m e d ) 构成元素的起始标记和结束标记必 须匹配,每个起始标记必须有对应的结束标记,且x m l 标记是大小写敏感的:每个 x m l 文件必须有唯一的根元素,且元素不能交迭。下面是一个例子: 坝士论义j 2 e e 1w e bs e r v i c e 的宴吼研究 一声明 一一- 结束标记 ,e m a i l 2 1 1x 虬可视化 在x m l 中内容与表现形式分离,采用m o d e l - v i e w 结构。x m l 文件负责描述包含 的信息:x m l 文件的所有格式化信息放在s t y l es h e e t ( 样式表) 文件中,样式表文 件全权负责x m l 源文件的表现形式。用户可以根据他们自己的需要来定义数据的表现 形式,对于同一个x m l 源文件,可以关联不同的样式表文件,从而有不同的数据表现 形式。 目前,有三种可用于x m l 的样式表:c a s c a d i n gs t y l es h e e t s ( c s s ) :e n t e n s i b l e s t y l el a n g u a g e ( x s l ) :d o c u m e n ts t y l es e m a n t i c s a n d s p e c i f i c a t i o n l a n g u a g e ( d s s s l ) 层叠样式表c s s 是一种样式描述规则。利用c s s ,可以定义x m l 文档中元素的显 示效果,包括元素的位置、颜色、背景、边空、字体、排版格式、媒体类型、特性选 择符、声音样式等等。 c s s 是一种静态的样式描述格式,其本身不遵从x m l 的语法规范。而x s l 不同, 它是通过x m l 进行定义的,遵守x m l 的语法规则,是x m l 的一种具体应用,可以使用 同一个x m l 解释器对x m l 文档及其相关的x s l 文档进行解释处理。 x s l 由两大部分组成:第一部分描述了如何将一个x m l 文档转换为可浏览或可输 出的格式;第二部分则定义了格式对象f o ( f o m a t t e do b j e c t ) 。在输出时,首先根 据x m l 文档构造源树,然后根据给定的x s l 将这个源树转换为可以显示的结果树,这 个过程称作树转换,最后再按照f o 解释结果树,产生一个可以在屏幕上、纸上、语 音设备或其它媒体中输出的结果,这个过程称作格式化。 使用x s l 定义x m l 文档显示方式的基本思想是:通过定义转换模板,将x m l 源文 档转换为带样式信息的可浏览文档。最终的可浏览文档可以是h t m l 格式、f o 格式、 坝士论义j 2 e e 1w e bs e r v i c e 的宴吼研究 或者其它面向显示方式描述的x m l 格式( 如前面提到的s v g 和s m i l ) ,限于目前浏览 器的支持能力,大多数情况下是转换为一个h t m l 文档进行显示。 d s s s l 是在使用s g m l 的高端出版商中流性的一个i s o 标准。d s s s l 非常复杂,它 所处理的打印文档管理很少用到。 2 1 2d t d 和s c h e m a “形式良好”是对x m l 文件的基本要求,它使得x m l 文件结构清晰、完整,便于 处理程序对其进行解析,进一步可以简化处理程序的编写工作,并加快浏览的速度、 减少浏览所需占用的内存空间。 但x m l 的精髓是基于信息描述的、能够体现数据信息之间逻辑关系的、可以确保 文件的易读性和易搜索性的自定义标记,因此需要对x m l 文件可以出现的有效元素、 元素之间的关系以及元素包含的数据类型进行描述。以确保x m l 文件是“有效的”, 使数据遵循一定的标准从而可以在数据处理程序间交换。 目前,w 3 c 制定了两种规范来描述x m l 文件的结构:文档类型定义d t d ( d o c u m e n t t y p ed e f i n i t i o n ) 和x m ls c h e m a d t d 实际上是“元标记”这个概念的产物,它描述了一个标记语占的语法和词汇 表,也就是定义了文件的整体结构以及文件的语法。简而言之,d t d 规定了一个语法 分析器为了解释一个“有效的”x m l 文件所需要知道的所有规则的细节。这个“规则” 可以非常简单,仅仅列出所有有效的元素,例如元素、标记、属性、实体;也可以非 常复杂,不但列出这些元素,还指出这些元素之间的内在联系 为了说明特定的语法规则,d t d 采用了一系列正则表达式,语法分析器将这些正 则表达式与x m l 文件内部的数据模式相匹配,从而判别一个文件是否是有效的。匹配 被严格执行,因此,如果x m l 文件中有任何信息不符合d t d 的规定,都不会通过。下 面是上例中e m a i l x m l 的d t d 定义。 ( ! 优先级类型为:d o l m a i 或e m e l l g e n c y 一) ( ! a t t l i s te m a i l p l i o li ty ( n o l l j e m e r g e n c y ) 。r l o l i ) ( e l e m e n tt o ( # p c d a t a ) “e l e m e n ts u b f e c t ( # p c d a t a ) 坝士论义 j 2 e e1w e bs e r v i c e 的宴吼研究 但不可否认的是,它也有一些缺点,比如,它采用了非x m l 的语法规则、不支持 数据类型、扩展性较差等等。以微软为首的众多公司提出了x m ls c h e m a ,在保留并 扩充了d t d 原有的文档结构说明能力的同时,以期解决d t d 的缺点。 x i d ls c h e m a 规范分为三部分:第一部分( x m ls c h e m ap a r t0 :p r i m e r ) 是对s c h e m a 的总体介绍,目的是帮助读者快速理解如何利用s c h e m a 语法创建s c h e m a 文档:第二 部分( x m ls c h e m ap a r t1 :s t r u c t u r e ) 和第三部分( x m ls c h e m ap a r t2 :d a t a t y p e s ) 是对x m l s c h e m a 语法规范的完整描述,其中前者为描述x m l i 0 文档的结构和内容约 束提供了文档。而后者则为s c h e m a 及其他x m l 规范定义了数据类型。下面是上例中 e m a i l x m l 的s c h e m a 定义。 ( x s :e l e m e n tn a m e = e m a i l 。 , x s :e l e m e n tn e m e = f r o m 。t y p e = 。e m a i l a d d r e s s x s :e l e m e n tn a m e = 。s u b j e c t t y p e = 。x s :s t r i n g ”b x s :r e s t d c t i o nb a s e :。x s :s t d n g 。 x s :s i m p l e t y p en a m e = 。p d o d t y t y p e ) x s :r e s t r i c t i o nb a s e = ”x s :s t r i n g 。 坝士论义 j 2 e e1w e bs e r v i c e 的宴吼研究 2 2w e bs e r v i c e w e bs e r v i c e ( w e b 服务) 是可通过标准的w e b 协议( h t t p 等) 可编程访问的,自 适应、自描述的w e b 组件。 w e b 服务使用基于x m l 的标准协议进行服务描述、服务发现和相互调用,独立于 软硬件环境及编程语言,具有跨平台可集成能力。一旦部署了w e b 服务,其它的应 用程序( 及其它的w e b 服务) 可以动态地发现和调用所部署的服务。 w e b 服务具有良好的封装性,是封装成单个实体并发布到网络上以供其它程序使 用的功能集合,包括服务实现和接口描述。任何应用程序只要获得该w e b 服务的接口 描述,就可以通过标准的w e b 协议调用它所提供的服务。因此,w e b 服务可以创建开 放分布式系统的组件,使公司和个人迅速且廉价地将向全世界提供服务。 w e b 服务继承了面向消息中间件( m o m ) 的松耦合性,支持异步调用。这就使得 企业可以即时寻找商业合作伙伴,为客户提供新的服务,并将各种软件集成成新的解 决方案,以快速适应业务变化并减少所需的开销。也就是说,用w e b 服务构建的系统 是一个增量式的开放的解决方案。 w e b 服务使用h t t p 、f t p 等具有普遍性的协议进行通信,因此,任何支持这些技 术的设备,从手机、p d a 到p c 机都可以拥有和访问w e b 服务;而且不受现有的代理 和防火墙的限制,可以利用h t t p 验证模式,支持安全套接层( s s l ) 。另外,w e b 服 务受到了广泛的行业支持,几乎所有主要的供应商都支持s o a p 和周边w e b 服务技 术。例如,微软的n e t 平台就是基于w e b 服务,因此用v i s u a lb a s i c 编写的组 件很容易作为w e b 服务部署,并由使用i b m

温馨提示

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

评论

0/150

提交评论