(计算机软件与理论专业论文)分布式系统中web+service的研究与应用.pdf_第1页
(计算机软件与理论专业论文)分布式系统中web+service的研究与应用.pdf_第2页
(计算机软件与理论专业论文)分布式系统中web+service的研究与应用.pdf_第3页
(计算机软件与理论专业论文)分布式系统中web+service的研究与应用.pdf_第4页
(计算机软件与理论专业论文)分布式系统中web+service的研究与应用.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机软件与理论专业论文)分布式系统中web+service的研究与应用.pdf.pdf 免费下载

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

文档简介

摘要 分布式系统由于不同的硬件和软件,不同的平台,使得共享数据,集成系统变得 非常麻烦和困难,这样往往会降低开发的效率,增加了开发的成本。 w e b 服务是解决分布式系统的一个理想的解决方法。w e b 服务是基于x m l 的,而x m l 是一种通用的数据表示格式,可以被任何平台所接受,同时,w e b 的开发相对简单,所 以,用w e b 服务可以在一定程度上解决分布式开发的问题。 在本文中,将介绍w e b 服务体系中重要组成部分s o a p ( 简单对象访问协议) 、w s d l ( w e b 服务描述语言) 、u d d i ( 通用描述,发现和集成) 三个协议的规范和内容,n e t 和j z e e 下两大平台对w e b 服务的支持和开发,以及在分布式异构教育资源库信息共享 模型中的应用。 关键字:分布式系统w e b 服务s o a p w s d lu d d ix n l a b s t r a c t b e c a u s eo fd i f f e r e n th a r d w a r ea n ds o f t w a r e ,d i f f e r e n tp l a t f o r m s ,i tg e t sd i f f i c u l tt os h a r e t h ed a t a , i n t e g r a t es y s t e mw h e nt h ed i s t r i b u t e ds y s t e m si sd e v e l o p e d a sar e s u l t , t h e e f f i c i e n c yi sl o wa n dt h ec o s ti sh i g h e r w 曲s e r v i c et e c h n i q u ei so n eo ft h ei d e a ls o l u t i o n st ot h e s ep r o b l e m s w e bs e r v i c ei s b a s e do i lx m lw h i c hi sag e n e r a lf o r m a tt oe x p r e s sd a t aa n dc a nb ea c c e p t e db ya n y d e v e l o p e dp l a t f o r ma n dl a n g u a g e s a n dt h ew e bs e r v i c ei se a s i e rt ob ed e v e l o p e d ,s ow 曲 s e r v i c et e c h n i q u e 锄s o l v et h ep r o b l e m so fd e v e l o p i n gd i s t r i b u t e ds y s t e mt oac e r t a i n e x t e n t w ew i l li n t r o d u c et h em o s ti m p o r t a n tp r o t o c o lo fs o a p , u d d i ,w s d l t h es u p p o r ta n d d e v e l o p m e n to f n e ta n dj 2 e e ,a n da p p l i c a t i o n so fw e bs e r v i c et e c h n i q u ei n d i s t r i b u t e d h e t e r o g e n e o u se d u c a t i o n a lr e s o u r c e sf o ri n f o r m a t i o n s h a r i n gm o d e l k e yw o r d s :d i s t r i b u t e ds y s t e m s w e bs e r v i c es o a pw s d lu d d ix m l 2 长春理工大学硕士学位论文原创性声明 本人郑重声明:所呈交的硕士学位论文,分布式系统中w e bs e r v i c e 的研究 与应用是本人在指导教师的指导下,独立进行研究工作所取得的成果。除文中 已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的 作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标 明。本人完全意识到本声明的法律结果由本人承担。 作者签名:一孑乙均辔啤止月丝日 长春理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“长春理工大学硕士、博士学位论文版 权使用规定”,同意长春理工大学保留并向国家有关部门或机构送交学位论文的复 印件和电子版,允许论文被查阅和借阅。本人授权长春理工大学可以将本学位论 文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫描等复 制手段保存和汇编学位论文。 作者签万刁么坦2 年坐月2 日 艚翩虢也漳蛐卫月卫日 第一章绪论 1 1 引言 传统的应用系统模式是“主机终端”或“客户机服务器”,客户机服务器系统 ( c l i e n t s e r v e rs y s t e m ) 的结构是指把一个大型的计算机应用系统变为多个能互为独 立的子系统,而服务器便是整个应用系统资源的存储与管理中心,多台客户机则各自 处理相应的功能,共同实现完整的应用,在c l i e n t s e r v e r 结构模式中,客户端直接连 接到数据库服务器,由二者分担业务处理,这样的体系有以下的缺点: 1 c 1 l e n t 与s e r v e r 直接连接,安全性低。非法用户容易通过c 1 i e n t 直接闯入中 心数据库,造成数据损失; 2 c 1 i e n t 程序肥大,并且随着业务规则的变化,需要随时更新c 1 l e n t 端程序,大 大增加维护量,造成维护工作困难; 3 每个c l i e n t 都要直接连到数据库服务器,使服务器为每个c l i e n t 建立连接而 消耗大量本来就紧张的服务器资源; 4 大量的数据直接c 1 i e n t s e r v e r 传送,在业务高峰期容易造成网络流量暴增, 网络阻塞。 随着i n t e r n e t 的发展壮大以及业务量的变化,传统的c 1 l e n t s e r v e r 模式的这些 先天不足,出现越来越多的问题,己经不能适应新的环境。人们开始对这种两层体系 进行改革,将业务处理与客户交互分开来,实现瘦客户业务服务数据服务的多层分 布式应用体系结构。 分布式系统指的是多台计算机借助于通信技术来共同完成一个任务的一些程序“1 。 从企业的角度,大公司往往在地理上和技术上都有比较分散的子公司、机构和部门。 在多数的情况下,整个企业不会只使用一个类型的硬、软件,而这些系统通常需要彼 此之间的交流集成这些不同的系统具备挑战性首先,两个平台之间的网关通常是不 可用的,没有公用的基础,没有公用的网络传输的机制,没有公共的字符编码,因此没有 公用的方式来传送数据,这样使得集成系统成为一件非常困难的事情。所以希望有一种 可以在系统之间快速地共享数据,而这种方式不需要这个两个系统紧密结合,却能在 系统内部之问安全快速地共享数据的技术出现。 而所期待的这个协议或者方法应该具备以下的功能和优势: 1 使用现有的技术( 协议、网络、硬件、软件) ,廉价,易于实现,易于维护,以 及实现技术和现有技术资源的平衡。 2 基于一个开放的标准,能够被任何人访问,本质上不需要更昂贵的软件就能保 证可靠的消息发送。 3 易读而且易于理解,在调试错误的时候可以给 帮助。 在摸索了多年以后,业界提出了一个w e b 服务的概念。到从该概念提出到如今, w e b 服务的发展的前景越来越明确和光明,可以说,w e b 服务是解决分布式问题非常好 的办法之一1 2 1 。 1 2w e bs e r v i c e 对分布式的解决方案 1 2 1w e bs e r v i c e 的定义 目前还没有一个统一的、公认的组织可以给w e b 服务一个很明确清晰的定义,所 以导致了不同的机构对w e b 服务有不同的解释,但是它们对于w e b 服务的定义都是大 同小异的。 让我们看看业界著名的两大公司对w e b 服务的阐述: 微软:w e b 服务是n e t 的核心 微软为w e b 服务下的定义是通过标准的w e b 协议可编程访问的w e b 组件。“软件就 是服务”,这已经是软件发展的一个潮流了。未来的软件厂商就现在的电信公司一样, 用户可以按照时间来租用软件公司的服务。“w e b 服务”( w e bs e r v i c e s ) 可以说是整 个n e t 计划的核心,简单的说,w e b 服务就是一种远程访问的标准。它的优点首先是 跨平台,h t t p 和s o a p 等已经是互联网上通用的协议;其次是可以解决防火墙的问题, 如果使用d c o m 或c o r b a 来访问w e b 组件,将会被挡在防火墙外面,而使用s o a p 则不 会有防火墙的问题。要发展w e b 服务需要更多的软件厂商来开发w e b 服务,让基于w e b 服务的软件服务多起来”1 。 s u n :w e b 服务是互联网架构中可置换的标准零部件 w e b 服务适用于任何类型的w e b 环境,无论是在互联网、i n t r a n e t 还是在e x t r a n e t , 重点是在企业对消费者、企业对企业之间的通信。w e b 服务消费者可以是通过台式或是 无线接入服务的个人,也可以是应用程序,还可以是另一个w e b 服务。w e b 服务应该具 有以下的一些特点:w e b 服务可以通过w e b 接入进行访问:w e b 服务提供一个x m l 接口; w e b 服务使x m l 信息,通过标准w e b 协议实现通信。w e b 服务支持系统间的松散耦合连 接。 参考以上的,我们可以把w e b 服务定义如下: w e b 服务是使应用程序可以用与平台无关和与编程语言无关的方式进行相互通信 的一项技术。w e b 服务是一个软件接口,它描述了一组操作,可以在网络上通过标准 化的x m l 消息传递来访问这组操作。它使用基于x m l 语言的协议来描述要执行的操 作或者要与另一个w e b 服务交换的数据。一组用这种方式相互作用的w e b 服务在面向 服务的体系结构( s e r v i c e o r i e n t e da r c h i t e c t u r e ,s o a ) 中定义了特殊的w e b 服务 应用程序。 1 2 2w e b 服务对分布式的解决方案 w e b 在解决分布式系统有自己的特点和方法: 1 让任何平台上的用任何语言编写的服务进行交互。 2 将应用程序功能概念化成任务,从而形成面向任务的丌发和工作流。 2 3 允许松耦合,这意味着,每当其中某个或多个服务在设计或实现中发生变更时, 服务应用程序之间的交互作用可能不会因此而中断。 4 使现有的应用程序能适应变化中的业务条件和客户需要。 5 向现有或原有的软件应用程序提供服务接口,而无需改变原来的应用程序,从 而使这些应用程序完全可以运行在这种服务环境下。 6 引入其它一些与原有功能无关的管理或操作管理功能,譬如可靠性和安全性等 等,从而在业务计算环境中增加了其通用性和实用性“1 。 1 2 3w e b 服务的现状 随着i b m 、微软、s u n 、o r a c l e 、h p 、b e a 等六大企业的强力研发与宣传,更随着 w 3 c 、w s i 两大国际标准化组织的积极推动,w e b 服务的标准家族不断扩展。由于有着 广大的技术厂商的支持,w e b 服务的技术实现工作正在如火如茶地进行着。尽管w e b 服务技术标准非常丰富和博大,不过其技术标准的实施步骤却丝毫不见滞后。 从全球技术领域来看,w e b 服务已经早就不再仅仅是概念了。无论是i b m 倡导的动 态电子商务,还是微软宣扬的软件即服务,都表明在w e b 服务步向成熟的道路上,业 界在w e b 服务领域的实践不断地展开着。可以说,在构架和技术上w e b 服务已经是一 个有了一个相当实际和有效的解决方案了。 1 3 课题来源和研究内容 1 3 1 本文实践的工程背景 本文的作者参与了“分布式异构教育资源库信息共享模型”项目的研究开发,在 此项目开发中设计到w e b 服务相关的研究开发。以该项目为背景,说明了如何处理分 布式系统数据的共享和调用,怎么样简化程序的开发和提高开发的效率。 1 3 2 本论文的主要开发工作 本文以分布式异构教育资源库信息共享模型的构建为依托,较为详细地研究w e b 服务的概念、技术与应用中的核心,涉及到以下几个方面的内容: 介绍w e b 服务的基础知识,以及w e b 服务是如何工作和如何解决分布式系统中遇 到的问题。 介绍不同的平台下对w e b 服务的支持和发布的基本方法。 探讨w e b 开发技术和解决实际问题,通过一些分布式的实例来说明如何在项目中 利用w e b 服务来解决一些实际问题。 介绍一些常用的用来开发w e b 服务的工具的使用。 介绍一些w e b 服务使用在安全和效率方面一些解决方案。 第二章w e b 服务技术介绍 2 1w e b 服务技术框架介绍 s o a ( s e r v i c eo r i e n t e da r c h i t e c t u r e 。面向服务的体系结构) 采用了一组用来组成 w e b 服务的技术站。目前,这组技术由s o a p 、w s d l 和u d d i 组成,将来可能会加上其他 的相关的组件。其构架如图2 1 。 心 提供者 图2 1 面向服务的w e b 服务的体系结构图 从概念上来讲,s o a 模型由完成基本交互作用的三个角色组成。s o a 的组件就是我 们熟悉的w e b 服务,而每个w e b 服务都是由两个部分组成“1 。 服务:指w e b 服务的实现。 服务描述:指每个服务的接口。它利用x m l 语言描述并且遵从一个或者多个标准。 描述中包括数据类型、操作、协议绑定以及w e b 服务实现的网络位置( u r l 等) 。还有 一些附加文件,主要是用来对w e b 服务进行分类或提供其他的元数据,以便使用者发 现他们。 参与者的角色 s o a 建立在三种角色的交互之上的:提供者、注册中心( 或者代理) 和请求者。这 些角色之间的交互包括发布服务信息、发现哪些服务是可用的以及绑定到那些服务。 在典型的情况下,提供者提供服务的实现。提供者为服务定义服务描述并且将它 们发行到注册中心。然后,服务器请求者使用注册中心找到想使用的w e b 服务的描述。 利用所掌握的w e b 服务描述,服务请求者可以绑定到一个服务( 即生成一个服务请求) 。 2 2x m l 简介和w e b 服务的关系 2 2 1x m l 的特点 x m l 是一种人家熟悉的标记语言,x m i 。作为引人注目的核心技术应用于b 2 b 、w e b 服务、n e t 等许多系统中。x m l 是i t 界谈话中不呵缺少的一个关键词。因此,x m l 对 4 于计算机工程师来说,是必不可少的一门知识“1 。 它具备以下特点: 1 x m l 可以作为电子数据交换的统一格式。 2 1 0 年来,w e b 存储格式语言,从h t m l 发展到d h t m l ,直到今天最新的x m l ,发 展的每一步,都是为了适应w e b 应用发展的需求。虽然x m l 原本是为出版界设计的一 种文档描述语言,即s g m l 派生而来的一种符号化语言,但是它也是为互联网的数据交 换而设计的。从而,x m l 不仅仅是s g m l 定义的用于描述的文档,而且在电子商务等各 个领域使数据交换成为可能。 3 x m l 能够应用于各种领域的原因,就是x m l 具有到目前为止其他方法所不具备的 数据描述特点,控制信息不是采用应用软件的独有形式,而是采用谁都可以看得懂的 标记形式来表现,所以x m l 最适合作为数据交换的标准,这也是x b l l 受人关注的原因。 4 用x m l 可以对数据关系进行定义形成特有的标准,因此各行各业都在建立自己 的行业化标准,以应用于网络上处理电子商务,把后台系统通过w e b 站点表现出来t 7 1 。 x m l 还可以作为数据仓储,一个x m l 文件就是一个小的数据库,通过对数据关系的定义 形成各种关系、属性的数据,实现数据交换、上下文检索、多媒体传输。 5 x m l 具有其他方法所不具备的数据描述特点。 6 x m l 是以文本形式来描述的一种文件格式由于x m l 是以文本形式描述的,所以适 合于各种平台环境的数据交换。同样由于使用文本来描述内容,可以越过不同平台的 障碍进行正常的数据交换。但是,文本形式也会因为文字代码的不同造成不能阅读的 问题,在这一点上x m l 有着非常完美的解决方案。 7 x m l 使用有意义的标记( t a g ) 在x m l 中文件是由一个个称之为元素( e l e m e n t ) 的部件构成。使用标记( t a g ) 来描述元素。由于使用了标记的描述方法,可以保持原 数据的意思和构造在互联网上进行数据交换,进而可以保持不同系统之间数据交换的 灵活性。 具有上述优点是因为使用标记描述数据的话,可以具体指出开始元素( 开始标记) 、 结束元素( 结束标记) ,在开始和结束元素之间是要表现的元素数据。这就是用元素表 现数据的方法。 标记可以作为子元素x m l 中用标记符号化的元素可以作为子元素形成数据嵌套。 x m l 的标记名和关系可以自由定义就像许多文章中介绍的那样“x m l 是用标记描 述的语言”,而且x m l 的标记名标记的层次结构等都可以由用户定义。也就是说,根据 x m l 语法可以定义用户特殊用途的标记集合形成一个全新的符号化语言。这就是x m l 可 扩充( e x t e n s i b l e ) ”名字的来源”1 。 2 2 2x m l 模式 x m i 。模式本身就是一个x m i 。词汇,它定义了控制x m i 。文档中元素和属性结构和内容 的规则。因为x m i ,模式是x m i 。,所以它们能象x m l 实例那样被处理和管理。x m l 模式支 持更大范围的数据类型,还包含了一些有用的特性,如范凼限制,它使得x m l 作者能 5 够描述模式处理器支持的数据边界。使用x m l 模式优于d t d 之处在于:x m l 模式不需要 x m l 数据域的手动编码数据检验。有现成的软件能通过大量内置数据类型来验证x 札 数据。 从d t d 移向) ( m l 模式的主要原因是:后者更能精确地指定在w e b 上发送的文档结构, 并允许发送器和接收器依据模式使用现有工具来确认x m l 。例如,d t d 只能在p r i c e 数 据项中指定文本,而使用x m l 模式就能把文本提炼为用于价格的数字数据,某公司使 用) ( m l 模式来描述复杂数据类型当应用依赖于某项w e b 服务时,如何在运行时与该发 现机制进行交互”。 u d d i 的出现正是为了应对这些挑战。为了解决这些问题,许多公司( 包括 m i c r o s o f t ,i b m ,s u n ,o r a c l e ,c o m p a q ,h p ,i n t e l 等) 共同制定了一种基于开放式标准和 非专用技术的规范。它是一个全球业务注册表,建立在多个运营商节点上,用户可以 通过这些节点免费搜索和发布信息。 通过w e b 服务的这种基础结构,现在就能够以一种通用的、与供应商完全无关的 方式找到有关w e b 服务的数据,而且数据一致并且可靠。通过使用可扩展的分类系统 和标识,用户可以进行精确的分类查询。运行时u d d i 集成可以被合并到应用程序中去, 因而大大地丰富了w e b 服务软件环境。 u d d i 数据存放在运营商节点上。这种公共节点遵循u d d i o r g 组织管理的规范。数 据寄存运营商之间必须能通过安全通道复制数据,从而为整个u d d i 提供数据冗余。将 数据发布到一个节点上后,通过复制就可以在另一个节点上发现这些数据。值得一提 的是,对于数据寄存运营商实现其节点的方式,不存在一些专用的要求,只要其节点 遵循u d d i 规范即可,同时它们都要遵循相同的一套基于s o a p 的x m la p i 调用。客户 端工具可以和这些节点进行无缝的交互操作。因此,u d d i 公共团体是一个最佳方案, 它展示了x m lw e b 服务模型如何跨异类环境进行工作。 2 3x m l 处理技术 当x m l 到达某一服务器时,通常是依据d t d 或x m l 模式进行确认,然后根据应用 程序以某种方式进行存储、转换或处理。确认和处理可由x m l 分析器来执行。在x m l 分析器和处理过程中,有两种可用的方案:文档对象模型( d o m ) 和用于x m l 的简单 a p i ( s a x ) 。 2 3 1d o m 技术 所有类型的x m l 解析器都要求处理对象是“格式良好”的x m l 文档,有些还能根 据d t d 或x m ls c h e m a 进行有效性验证,d o m ( d o c u m e n to b j e c tm o d e l ) 解析器将x m l 文 档一次性解析,生成一个位于内存中的对象树用以描述咳文档。d o m 提供了一种像对待 结点树一样处理文档的方式。在此模型中,每个独立的数掘项被视为一个结点( n o d e ) , 所有的子元素或其中的文本被称为子结点( s u bn o d e ) 。以结点树模型来处理文档是处 理x m l 文档的一个好办法,因为它提供了一种显式的陈述一个元素包含哪些元素,被 包含的元素是包含元素结点的子结点。文档中的元素,元素属性、文本等等都是此模 型的一个结点。d o m 是一种与平台和语言无关的接口,它允许程序和脚本动态访问和修 改文档的内容、结构和类型。它定义了一系列的对象和方法对d o m 树的结点进行各种 随机操作: d o c u m e n t 对象作为树的最高结点,d o c u m e n t 对象是对整个文档进行操作的入口【。 e l e m e n t 和a t t r i b u t e 对象这些结点对象都是文档某一部分的映射,结点的定级层 次恰好反映了文档的结构。 t e x t 对象作为e l e m e n t 和a t t r i b u t e 对象的子结点,t e x t 对象表达了元素或属性 的文本内容。t e x t 结点不再包含任何子结点。 集合索引d o m 提供了几种集合索引方式,可以对结点按指定方式进行遍历。索引 参数都是从0 开始记数的。 例如下面的t e s t x m l 文档: h e l l of r o mx m l w e l c o m et ot h ew i l da n dw o l l yw o r l do fx m l 此文档有一个操作指令结点和 元素相应的根元素结点。 结点有两个子结点 和 , 和 互为兄弟结点。 和 元素都有一个子结点,即存 储字符数据的文本结点。图2 2 显示此文本的结构图。 w o l l y w o r do fx m l 图2 2 文档的结构蚓 d o m 树中的所有结点都是从n o d e 对象继承而来的。n o d e 对象定义了一些最基本的 属性和方法,利用这些方法可以实现对树的遍历,同时,根据属性还可以得知结点的 名称、取值并判断其类型。利用d o m 提供的a p i 与编程语言无关,所以对一些d o m 标 准中没有明确定义的接口,不同解析器的实现方法也可能有所差别。 d o m 规范提供的a p i 的规范,目前s u n 公司推出的j d k l 4 测试版中的j a v a a p i 遵 循了d o m l e v e l 2 c o r e 推荐接口的语义说明,提供了相应的j a v a 语言的实现。在o r g x m l d o m 中,j d k l 4 提供了d o c u m e n t ,d o c u m e n t t y p e ,n o d e ,n o d e l i s t ,e l e m e n t ,t e x t 等接口,这些接口均是访问d o m 文档所必须的。利用这些接口创建、遍历、修改d o m 文榭”1 。在j a v a x x m l p a r s e r 中,j d k l 4 提供的d o c u m e n t b u i i d e r 和d o c u m e n t b u i i d e r f a c t o r y 组合可以对x m l 文件进行解析,转换成d o m 文档。在j a v a x x m l t r a n s f o r m d o m 和j a v a x s m l t r a n s f o r m s t r e a m 中,j d k l 4 提供了d o m s o u r c e 类和s t r e a m s o u r c e 类, 可以用来将更新后的d o m 文档写入生成的x m l 文件中。 2 3 2s a x 技术 s a x 并不是由w k 官方所提出的标准,与d o m 比较,s a x 是一种轻量型的方法。在 处理d o m 的时候,我们需要读入整个的x m l 文档,然后在内存中创建d o m 树,以生成 d o m 树上的每个n o d e 对象。当文档比较小的时候,这不会造成什么问题,但是一旦文 档大起来,处理d o m 就会变得相当费时费力。特别是其对于内存的需求,也将是成倍 的增长,以致于在某些应用中使用d o m 是一件很不划算的事。这时候,一个较好的替 代解决方法就是s a x 。 s a x 在要领上与d o m 完全不同。首先,不同于d o m 的文档驱动,它是事件驱动的, 也就是说,它并不需要读入整个文档,而文档的读入过程也就是s a x 的解析过程。所 谓事件驱动,是指一种基于回调( c a l l b a c k ) 机制的程序运行方法。 在x m l r e a d e r 接受x m l 文档时,在读入x m l 文档的过程中就进行解析,也就是说 读入文档的过程和解析的过程是同时进行的,这和d o m 区别很大。解析开始之前,需 要向x m l r e a d e r 注肪一个c o n t e n t h a n d l e r ,也就相当于一个事件监听器。在 c o n t e n t h a n d l e r 中定义了很多方法,比如s t a r t d o c u m e n t 0 ,它定制了当在解析过程 中,遇到文档开始时应该处理的事情。当x m l r e a d e r 读到合适的内容,就会抛出相应 的事件,并把这个事件的处理权代理给c o n t e n t h a n d l e r ,并调用其相应的方法进行响 应。 c o n t e n t h a n d l e r 实际上是一个接口,当处理特定的x m l 文件的时候,就需要为其 创建一个实现了c o n t e n t h a n d l e r 的类来处理特定的事件。可以说,这个实际上就是s a x 处理x m l 文件的核心。如下是定义在其中的一些方法: v o i dc h a r a c t e r s ( c h a r c h ,i n ts t a r t ,i n tl e n g t h ) : 这个方法用来处理在x m l 文件中读到字符串,它的参数是一个字符数组以及读到 的这个字符串在这个数组中的起始位置和长度。我们可以很容易地使用s t r i n g 类的一 个构造方法来获得这个字符串的s t r i n g 类: 8 s t r i n gc h a r e n c o n t e r e d = n e ws t r i n g ( c h ,s t a r t ,l e n g t h ) : v o ids t a r t d o c u m e n t0 : 当遇到文档的开头的时候将调用这个方法,可以在其中做一些预处理的工作。v o i d e n d d o c u m e n t ( ) 和上面的方法相对应,当文档结束的时候将调用这个方法,可以在其中 做一些善后的工作。 2 4x m l 转换技术 x m l 由多种技术支持,使用户能够以各种方式对x m l 进行操作和修改。这些技术包 括x s l t x l i n k 和x p a t h 。 2 4 1x s l t x s l t 是一种基于x m l 的语言,用于把x m l 文档转换成其他格式,如用于w e b 显示 的h t m l 、用于在w a p 设备上显示的怫l 、用于b 2 b 数据传输的另一种x m l 非标准语言 或纯文本1 1 2 1 。 为了执行x s l 转换,x s l t 处理器的程序要能阅读x m l 文档和x s l t 文档。x s l t 文 档定义了如何转换x y l ( 如图2 3 ) 。x s t l 处理器具有阅读x m l 源文档的功能,并以各种 方式对其进行重排和重组,甚至为其添加新文本和标记。 与 处 理 器 他格式的杵式袁 图2 3 可以用转换语言x s l t 把埘l 转换为各种格式 编写x s l t 与编写程序与按部就班地规定了处理器将要处理的内容不同。x s l t 转换 要经过一系列的检验,即依据x s l t 文档中定义的模板来比较x m l 文档的各部分。模板 的作用就如规则,用来检验文档内容是否与其相匹配:如匹配由模板舰定的内容就被输 出。例如,假设有一个x m l 文档包含以下片段: ah i s t o r yo fp i 并给出与t i t l e 元素相匹配的模板: 9 一一一一 一1 i f 一1 i f 则输出为: ah i s t o r yo fp i 其中( x s l :v a l u e o f 标记被t i t l e 元素的实际值所取代。使用这一功能,就能把 】( i i l 转换为h t m l 或x m l 的其他表单。 2 4 2x l i n k 资源标记是w o r l d w i d e w e b 通用的。根据国际互联网工程任务组( i e t f ) 的定义,“资 源”是住处或服务的任意可编址单元,例如文件、图像、文档、程序和查询结果。这 些资源都使用u r l 引用来编址。x l i n k 带给表的是对部分资源进行寻址的能力。例如, 如果整个资源是一个x m l 文档,则此资源的有用部分就可能是文档中的单个元素。跟 踪一个x l i n k 的结果可能是突出显示该元素或把用户直接带到文档中该元素处。 2 4 3x p a t h x p a t h 名称源于:它被用作在x i d l 文档的层次树形结构中遍历的路径表示法。因为 所有的x m l 文档能表达为由节点组成的树,所以x p a t h 允许使用紧凑的、非x m l 的语 法来选择一个或一组节点。它为x s l t 和x p o i n t e r 中的功能提供一种通用语法和语义, 是一种重要的x m l 技术 1 3 1 0 如图2 4 所示,x p a t h 操作于x m l 文档的层次树形结构之上,而不是它的基于标记 的语法。它有能力区别不同类型的节点,包括元素节点、属性节点和文本节点。 用x p a t h 表 式来选择一 节点 图2 4x p a t h 使用它们在x m l 树中的位置来指定节点 2 4 5x m l 和w e b 服务的关系 在w e b 服务的体系中,其三大核心的协议都是通过x m l 来描述的,而且w e b 服务 的数据的格式也是由x m l 来定义的,所以,可以说x m l 是w e b 服务的基础。 2 5 中间件简介 中间件( m i d d l e w a r e ) 是基础软件的一大类,属于可利用软件的范畴。顾名思义, 中间件处于操作系统软件与用户的应用软件的中间。中问件在操作系统、网络和数据 库之上,应用软件之下,其作用是为自己上层的应用软件提供运行与丌发的环境,帮 助用户灵活、高效地丌发和集成复杂的应用软件。在众多关于中间件的定义中,比 1 0 较普遍接受的表述是:中间件是一种独立的系统软件位于客户机服务器的操作系统之 上,管理计算资源和网络通信。i d c 对中间件的定义表明,中间件是一类软件,而非一 种软件:中间件不仅仅实现互连,还要实现应用之间的互操作:中间件是基于分布式处 理的软件,最突出的特点是其网络通信功能。 中间件是属于计算机软件中比较底层的内容,它和计算机操作系统的关系是相当 密切的,操作系统的一部分功能可以由中间件来实现,一些中间件的功能也可以由操 作系统来实现。因此,操作系统和中间件会进一步融合,从而推动计算机软件体系结 构的变革。另外,人们希望实现不同业务逻辑、不同功能的中间件能够集成在一起, 像一个完整的系统那样协调一致的工作。这些集成的中间件服务应该封装在一个框架 中,即应用程序服务器之集成框架。计算机网络的发展一日千里,中间件技术要得到 发展,离不开网络。因此可以预言,中间件技术的发展,将有机的结合操作系统、系 统集成以及网络技术的发展,成为推动软件技术革命的中坚力量。 中间件产品出现在2 0 世纪7 0 年代,消息通信和事务管理是其最初具有的功能。 到了9 0 年代,随着互联网的普及和企业计算的需要,对于中间件的需求也逐渐多样化, 从而促使中间件技术进一步细分,产生了不同类别的中间件产品。9 0 年代中间件习惯 上分为5 大类,分别是消息中间件、数据访问中间件、远程过程调用中间件、对象请 求代理中间件和事务处理中间件。从9 0 年代末期开始,随着电子商务的兴起和企业信 息化建设的深入,中间件受不同类型需求的刺激而更加丰富起来,中间件的内涵和外 延进一步拓展。面向对象的中间件技术成为中间件平台的主流技术,出现了以s u n 公 司的e j b j 2 e e ,m i c r o s o f t 的c o m + d n a 和o m g 的c o r b a o m a 为代表的三个技术分支。 2 6s o a p 协议( 简单对象访问协议) 2 6 1s o a p 的定义 随着计算机技术的不断发展,现代企业面临的环境越来越复杂,其信息系统大多 数为多平台、多系统的复杂系统。这就要求今天的企业解决方案具有广泛的兼容能力, 可以支持不同的系统平台、数据格式和多种连接方式,要求在i n t e r n e t 环境下,实现 系统是松散耦合的、跨平台的,与语言无关的,与特定接口无关的,而且要提供对w e b 应用程序的可靠访问”。 随着异种计算环境的不断增加,各种系统i 日j 的互操作性就愈显得必要,要求系统 能够无缝地进行通信和共享数据,从而在i n t e r n e t 环境下,消除巨大的信息孤岛, 实现信息共享、进行数据交换,达到信息的一致性。w e bs e r v i c e s 希望实现不同的系 统之间能够用“软件一软件对话”的方式相互调用,打破了软件应用、网站和各种设备 之间的格格不入的状态,实现“基于w e b 无缝集成”的日标。 在w 3 c 联盟召开了第一次w e b 服务专题研讨会,目的为探索w 3 c 应向哪个方向 发展彳能实现新兴的w e b 服务架构的标准化,期i 日j 提出了一个“w e b 服务堆栈”的构 想,如图2 5 ,从图中可以看出,s o a 在w e b 服务堆栈中作为用于x m l 消息传递的一 种非常普遍的协议,发挥着十分重要作用。 w i r es t a c k b u s s i n e s sp r o c e s s c r c h c s t r a t i o n m e s s a g e s e q u e n c i n g s e r v i c ec a p a b i l i t i e s c o n f i g u r a t i o n s e r v i c ed e s c r i p t i o n f w s d u f 。x m l s c h e m a ;。 ” j d e s c r i p t i o n s t a c k 现存 口未来 囵 正在处理 图2 5w e b 服务堆栈图 2 6 2s o a p 的x m l 表示 s o a p ( s i m p l eo b j e c ta c c e s sp r o t o c 0 1 ) :简单对象访问协议是基于x m l 的,在 分散或分布式的环境中交换信息的简单的协议1 6 1o 它包括四个部分:s o a p 封装 ( e n v e l o p e ) ,封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并 处理它以及如何处理它们的框架;s o a p 编码规则( e n c o d i n gr u l e s ) ,用于表示应用程 序需要使用的数据类型的实例:s o a pr p c 表示( r p cr e p r e s e n t a t i o n ) ,表示远程过程 调用和应答的协定:s o a p 绑定( b i n d i n g ) ,使用底层协议交换信息。 s o a p 的两个主要设计目标是简单性和可扩展性。这就意味着有一些传统消息系统 或分布式对象系统中的某些性质将不是s o a p 规范的一部分。比如:分布式垃圾收集 ( d i s t r i b u t e dg a r b a g ec o l l e c t i o n ) 、成批传送消息( b o x c a r r i n go rb a t c h i n go f m e s s a g e s ) 、对象引用( 0 b j e c t s - b y r e f e r e n c e ( w h i c hr e q u i r e sd i s t r i b u t e dg a r b a g e c o l l e c t i o n ) ) 、对象激活( a c t i v a t i o n ( w h i c hr e q u i r e so b j e c t s b y r e f e r e n c e ) ) 。 s o a p 通信与底层的不同协议和不同的交换格式有关,下面的例子s o a p 使用h t t p 作为底层通信协议,从而可以很好的使用r e q u e s t r e s p o n s e 机制来传送信息。 s o a p h t t p 请求包括一个g e t l a s t t r a d e p r i c e 的块元素,该请求携带一个字符串参数和 t i c k e r 符号,在s o a p 应答中返回一个浮点数。x m l 名域用来区分s o a p 标志符和应用 程序特定的标志符。 p o s t s t o c k o u o t eh t t p 1 1 h o s t :w m c v g s t o c k q u o t e s e r v e r c o r n c o n t e n t t y p e :t e x t x m l :c h a r s e t = ”u t f 一8 1 2 c o n t e n t l e n g t h :n n n n s o a p a c t i o n :h t t p :e x a m p l e o r g 2 0 0 i 0 6 q u o m s d i s 2 6 3x m l r p c x m l r p c 在i n t e r n e t 上进行的是远程过程调用,它是“取出可用”思想的一个重 要例子。机器a 上的程序如何获得机器b 上的代码并运行它,在遇到这样的通信问题 时,x m l r p c 完全地把困难忽略掉,再把传输委托给h t t p ,它注意的是所要说的细节, 而不是如何得到那儿的消息。 x m l r p c 的前期工作是由u s e r l a n d s o f t w a r e 的d a v e w i n e r 完成的。w i n e r 已经研 究过分布式计算的经典问题之一:如何让不同平台上运行的软件进行通信。x m l 在1 9 9 8 年出现后不久,w i n e r 通过把x m l 远程调用命令放入h t t pp o s t 请求体中,示范了跨平 台通信。因为x m l r p c 依赖h t t p 从某一服务器向另一服务器移动数据,所以它只须制 定一种) ( m l 词汇,这种词汇规定了被远程执行的代码段的名字和此代码所需的参数“”。 为了了解公司会如何应用x m l r p c ,我们来看看a 公司如何使用它来允许其他计算 机系统查询a 服务器,以获得有关书籍的剩余量和传送时问。其基本思想是由用户提 供刊号和邮政编码,然后a 公司返回承诺的传送时问。 1 客户机发出查询最佳书本递送时间的x m l r p c 请求( 一个格式良好的x m l 文档, 一般包含着来自w e b 表单的数据。) g e t g u a r a n t e e d d e li v e r y t i m e o 1 3 - 1 8 11 8 7 2 p a r a m ) 4 3 0 0 7 0 1 3 2 己配置成可理解x m l r p c 的服务器必须对到来的x m l r p c 请求发出警告,并触发 合

温馨提示

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

评论

0/150

提交评论