(计算机应用技术专业论文)基于soa的异构数据源的整合.pdf_第1页
(计算机应用技术专业论文)基于soa的异构数据源的整合.pdf_第2页
(计算机应用技术专业论文)基于soa的异构数据源的整合.pdf_第3页
(计算机应用技术专业论文)基于soa的异构数据源的整合.pdf_第4页
(计算机应用技术专业论文)基于soa的异构数据源的整合.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(计算机应用技术专业论文)基于soa的异构数据源的整合.pdf.pdf 免费下载

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

文档简介

北京交通大学硕士学位论文 摘要 当前,随着企业内部业务系统越来越明细,企业应用软件也越来 越复杂,一个应用系统往往是由几个小系统整合而成。对遗留系统的 整合集成是企业面临的一大难题,尤其是如何把这些遗留系统中不同 的数据源有效的整合到新的业务平台中一直是一个棘手的问题。 同时,新兴的软件技术也层出不穷s 0 a ( 面向服务的软件架构) 作为下一代软件架构整合标准,也慢慢从实验室中走出,在实际的应 用项目中开始被采用。 作为s o a 的互联标准的w 曲s e r v i c e 技术以删l 作为其底层的数据 表示方式,由于) 【m l 本身的平台无关性再加上潮l 已有的一些数据处 理标准( 如x s l t ) 使得对其数据处理能力更强。 在数据整合的基础上,s o 采用b e p l 作为整合语言,它要比传统 的底层语言更好的支持业务处理流程的逻辑。 本文主要是利用s o a 平台下的w e b s e r v i c e 技术作用异构的数据源 的整合方式,同时对于特定于异构数据整合时的一些特性,利用已有 的x m l 数据处理技术,对w e b s e r v i c e 做出一定的扩展优化,使得集成 商可以加快对异构数据源豹整合。 关键词:s o a ,w e b s e r v i c e b p e l ,异构数据源,瑚l ,x s l t 北京交通火学硕士学位论文 a b s t r a c t n o w a d a y s ,a st h ec o m p l e x i t yo ft h eb u s i n e s sg r o w s ,t h en e e d 1 1 0 rs y s t e mi n t e g r a t i o ni sg r o w i n gt o o o n ee n t e r p r i s e a p p li c a t i o nm a yi n v 0 1 v eal o to fd i f f e r e n th e t e r o g e n e o u s d a t a s o u r c e t h e r ei sa l s oan e e dt oi n t e g r a t et h e s el e g a c y s y s t e m s ,w h o s ed a t as h o u l da t 帆y sb eh e t e r o g e n e o u so t h e rt h a n t h ec u r r e n ta p p li c a t i o n m e a n w h i1 e ,t h en e wt e c h n o l o g i e sa r eo v e r c o m n l ge v e r y d a y a st h en e x tg e n e r a t i o no fs y s t e ma r c h i t e c t u r e 。s o ai sn o w b e c o m i n gp o p u l a r 瓜t h ei n t e g r a t i o nb a s i co fs o a 。w e b s e r v i c el e v e r a g et h e x m lt e c h n o l o g ya n db e c a u s eo ft h a t , i t i sm o r ee a s i e rt o a n a l y s i st h ed a t ao fo u ra p p l i c a t i o n s o u s eb p e l ( b u s i n e s sp r o c e s se x e c u t el a n g u a g e ) a si t s s y s t e mb u s i n e s si n t e g r a t i o nl a n g u a g e b p e lh a st h ef a c i l i t i e s t od e s c r i p t i o no u rb u s i n e s sc o m p l e x i t y s o m ev e n d o r sa l s o p r o v i d es o m et o o li n gs u p p o r tf o re d i t i n gb p e l t h i sp a p e rg i v e sa na r c h i t e c t u r eo fh o wt oi n t e g r a t et h e s e h e t e r o g e n e o u sd a t a s o u r c eb a s eo ns o a t h e r ea r es o m ee x t e n s i o n s a n dc u s t o m i z a t i o no fs o af o rb e t t e ri n t e g r a t i n gt h e h e t e r o g e n e o u sd a t a s o u r c e k e yw o r d s :s o a w e b s e r v i c e ,b p e l ,h e t e r o g e n e o u s 1 ) a t a s o u r c e x m l ,x s l l 独创性声明 8 7 9 5 五9 本人声明,所呈交的学位论文是我个人在导师指 导下进行的研究工作及取得的研究成果。尽本人所 知,除了文中特别加以标注和致谢的地方外,论文中 不包含其他人已经发表或撰写过的研究成果,也不包 含为获得北京交通大学或其他教学机构的学位或证书 而使用过的材料。与我一起工作的同志对本研究所做 的任何贡献已在论文中作了明确的说明并表示了谢 意。 本人签名:艺眵 日期:丛年立月止日 关于论文使用授权的说明 本人完全了解北京交通大学有关保留、使用学位 论文的规定,即:学校有权保留送交论文的复印件, 允许论文被查阅和借阅;学校可以公布论文的全部或 部分内容,可以采用影印、缩印或其他复制手段保存 论文。论文中所有创新和成果归北京交通大学软件学 院所有。未经许可,任何单位和个人不得拷贝。版权 所有,违者必究。 本人签名: 日期:丛年l 月芏日 绪论 1 1 研究背景 第一章绪论 信息化时代和全球经济竞争的新环境下企业要实现一项业务, 往往需要整合多个基于各种异构数据源的业务系统和外部系统后,进 行大量数据分析与抽取,其工作量大,且容易出现人为差错。 同时,随着企业的发展和信息化建设推进,往往出现以下问题: 对于大量的数据不能提供一个统一的数据接口,不能采用一种通用的 标准和规范( 如使用不同的指标代码体系和编码体系) ,共享通用的 数据源:随着业务的增加,对于管理人员的操作越来越复杂,操作越 来越多,用户分敝,相互联系程度低,信息相对封闭,共享程度低: 大量同趋复杂的办公业务依然或多或少的靠手工处理进行流转:信息 加工、处理手段差,影响信息质量,无法直接从各级各类业务信息系 统采集数据并加以综合利用,无法对外部信息进行及时、准确的采集、 利用,业务系统产生的大量数据无法提炼升华为信息,及时提供给决 策部门:已有的业务信息系统平台及开发工具互不兼容,无法在大范 围内应用。 同时,软件技术也在不断更新,面向服务的体系结构开始从实验 室罩走出( s 0 a ,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 ) ,面向服务的体系 结构,是指为了解决在i n t e r n e 环境下业务集成的需要,通过连接 j e 京交通人学硕士学位论文 能完成特定任务的独立功能实现的一种软件系统架构。该定义的学术 味道较浓,但其核心思想并不难理解:让应用不受限于技术,让企业 轻松应对商业服务变化和发展的需要。这种具有中立的接口定义( 没 有强制绑定到特定的实现上) 的特征称为服务之间的松耦合。s o a 采 用w e b s e r v i c e 互联技术,底层采用) ( m l 对数据进行表示。这些技术对 :解决以上异构数据的问题上提供了新思路。 1 2 论文的意义与主要研究内容 计算机系统领域广泛其技术日新月异,如果能做到各个不同的 、 系统的无缝整合一直是人们在努力的方向。系统整合一般包括几个方 面:u i 业务,数据。而数据整合应该是这三方面中最基础的部分, 也一直大家关注的对象。如果能高效的整合各个系统中的异构数据 源,可以充分利用已有系统,节省经济开销,加快系统开发速度。 本文的主要研究内容为分析当前的异构数据源的主要特性并结合当 前s o a 的技术特点给出基本的方案,并结合异构数据源整合时的一些 要特别考虑的方面,给出传统s o a 整合时的扩展,提出了一个解决异 构数据整合问题的新思路 1 3 本文的结构 第一章为绪论。本章首先说明了异构数据源整合的背景与本文的 解决起点。最后还对本文工作与本文结构进行了概括。 第二章详细对异构数据源进行分析并给出当前的一些主流的解 决方案与不足。 2 第三章对s o a 相关技术做出介绍,分析其优点与在解决我们的问 题时可被利用的方面。 第四章是我们基于s o a 技术平台下对就异构数据源如何进行整合 进行的详细系统设计,这里包括利用些已有技术与对这些技术的一定 扩展。 第五章是是一个系统整合的基本实现。这里给出一些基本源代码。 第六章是本文的总结和展望。总结了本文的工作。并对未来的工 作进行了展望。 北京交通大学硕士学位论文 第二章异构数据源问题概述 2 1 数据源异构性定义 在企业信息化建设过程中,由于各业务系统建设和实施数据管理 系统的阶段性、技术性以及其它经济和人为因素等因素影响,导致企 业在发展过程中积累了大量采用不同存储方式的业务数据,包括采用 的数据管理系统也大不相同,从简单的文件数据库到复杂的网络数据 库,它们构成了企业的异构数据源。这些分散的不同业务的数据管理 系统虽然能够满足业务数据存储和管理要求,但在许多情况下,为作 出一个决策。可能需要访闻分布在网络不同位置上的多个业务数据管 理系统中的数据。因此,基于整个、集成各个业务异构数据源的综合 信息仓库的一个强大的分布式应用系统十分需要。 简而言之异构的数据源就是指交互的多个系统中不能对所要交 流数执 挺供统。的访问的接口或者方式。 2 2 异构的数据源的分类 企业数据源异构性主要表现以下这些方面: 1 系统异构,即数据源所依赖的业务应用系统、数据库管理系统乃至 操作系统之间的不同构成了系统异构。 2 模式异构,即数据源在存储模式上的不同。存储模式主要包括关系 2 异构数据源问题概述 模式、对象模式、对象关系模式和文档嵌套模式等几种,其中关系模 式( 关系数据库) 为主流存储模式。同时,即便是同一类存储模式, 它们的模式结构可能也存在着差异。例如不同的关系数据管理系统的 数据类型等方面并不是完全一致的,如d 8 2 、o r a c l e 、s y b a s e 、 i n f o r m i x 、s q l s e r v e r 、f o x p r o 等。 3 来源异构,即企业内部数据源和外部数据源之问的异构。 异构数据源的整和、集成是企业信息化建设过程经常遇到的一个 现实问题。也是制约企业各种应用信息系统建设和数据共享程度,以 及信息化建设投资重复或负担重的一个重要因素。 2 3 数据整合和集成需求 异构数据源的数据整合和集成的目的是为企业综合应用系统提 供集成的、统一的、安全的、快捷的信息查询、数据挖掘和决策支持 服务。为了满足这个需求条件,整合、集成后的数据必须保证一定的 集成性、完整性、一致性和访问安全性。 1 、集成性 企业各种原先孤立的业务信息系统数据经过整合、集成后,应该 达到查询一个综合信息不必再到各个业务系统进行分别查询和人工 处耻。只要在整合、集成后的数据信息仓库中就可以直接访问到,即 整合、集成后的综合信息仓库的数据是各异构业务数据的有机集成和 关联存储( 整合、发掘出各业务数据间的内在关联关系) ,而不是简 单、孤立的堆放在一个数据库系统里。 2 完整性 北京交通大学硕士学位论文 包括数据完整性和约束完整性两方面。数据完整性是指完整提取 数据本身,约束完整性,约束是指数据与数据之间的关联关系,是唯 一表征数据问逻辑的特征。保证约束的完整性是良好的数据发布和交 换的前提,可以方便数据处理过程,提高效率。 : 一致性 不同业务信息资源之问存在着语义上的区别。这些语义上的不同 会引起各种不完整甚至错误信息的产生,从简单的名字语义冲突( 不 同的名字代表相同的概念) ,到复杂的结构语义冲突( 不同的模型表 达同样的信息) 。语义冲突会带来数据集成结果的冗余,干扰数据处 理、发布和交换。 整合、集成后的数据应该根据一定的数据转换模式和商业规则进 行统一数据结构和字段语义编码转换。 4 访问安全性 由于数据库资源可能归属不同的单位各业务数据系统有着各自 的j j 户权限管理模式,访问和安全管理很不方便,不能集中、统一管 理所以保证在访问异构数据源数据基础上保障原有数据库的权限不 被侵犯,实现对原有数据源访问权限的隔离和控制,就需要设计基于 整合、集成后的综合信息仓库的统一的用户安全管理模式来解决此问 题。 2 4 当前解决问题的方法【6 1 由于当前一般的应用,数据都是存放在数据库中的,当前解决数 据的异构性时,往往也是在这个层面上做文章。为解决异构数据整合 4 异构数据源问题概述 的难题,现有以下几种方法: ( 1 ) 通过数据库接口软件与不同的数据库直接连接如b c 和 j d i j c 等。在同时检索的数据库数量较少时,使用此技术可在定程 度上解决异构检索问题,但数据库达到一定数量时,处理速度很难保 证。这种方式仅适用于对属于本单位的少量异构数据库进行统一检 索。 ( 2 ) 不同数掘库问的格式转换。主要是利用数据库产品本身提供访 问异构数据库的功能,以实现在异构环境下建立具有较高性能的分布 式数掘系统。现在一些图书馆制作的学科导航系统就此利用此方法设 计的,其利用一些程序将各种异构数据库的部分数据导入一个数据库 系统中。以方便读者访问但是收录的数据库数量不能太多,此外还 涉及版权问题。 可见,实现异构数据库的集成一般有两种方法。第一种就是将原 有的数据移植到新的数据管理系统中来,为了集成不同类型的数据, 必须将一些非传统的数据类型转化成新的数据类型。第二种方法是利 用中问件集成异构数据库,该方法并不需要改变原始数据的存储和管 理方式。中问件位于异构数据库系统( 数据层) 和应用程序( 应用层) 之间,向下协调各数据库系统,向上为访问集成数据的应用提供统一 数据模式和数据访问的通用接口。 从当前的解决方式我们发现,具体的解决方案往往都是耦合于具 体的数据源的,对于不同的数据源,不同的转换规则需要不同的实现。 木义的主要目标就是提供的一种通用的。松耦含的解决方案。 5 北京交通火学硕士学位论文 第三章整合技术概述 3 1 x m l ,x m ls c h e m a ,x s l t 3 1 1x 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 ) 提供了一 种标记内容的方式,可以添加关于数据用途的信息。信息使用) ( m l 存 储之后,称为解析器的应用程序就能够可靠地提取相关信息,并根据 不同的需要处理。 x 札可用于各种不同的应用程序,但其实质是:x m l 是一种表示 数掘的方式。有时候数据是为数据库准备的,有些时候则是供人阅读 的。与这两方面应用相关的技术,比如数据验证和x m l 转换也已经 随着x m l 自身一起发展起来。 x m l 包括验证或者确认的能力、文档结构和文档( 在某种意义上 的) 内容。验证文档有助于防止数据与期望具有特定结构的应用程序 进行交互时出现问题,当x 盹与非x m l 的遗留系统交互时这一点尤 其有用。最初的x m l1 o 推荐标准包括对文档类型定义( d o c u m e n t t y p ed e f i n i t i o n s d t d ) 的支持,d t d 提供了一些验证能力。w 3 cx m l s c h e m a s 扩展了这种功能,并提供了一种更加类似删l 的语法。 可通过多种方式使用x 虬封装的数据。一种常见的处理方式是通 过使用可扩展样式表语言转换( e x t e n s i b l es t y l e s h e e tl a n g u a g e r r a n s f o r m a t i o n s ,x s l l ) ,开发人员可以使用x s l t 定义对x 札文 6 整合技术概述 档的操作,以生成特定的结果。这种动态转换信息的能力允许从单个 源文档产生多种输出,无论输出到不同的数据库还是输出到不同的浏 览器。 x m l 元素 x m l 是一种标识语言,一组用来创建描述数据的语法标签的规则 集。一个x m l 元素是由开始标签、结束标签以及标签之间的数据构成 的。开始和结束标签用来描述标签之间的数据。标签之间的数据被认 为是元素的值。例如,在下面一个瑚l 元素的例子中,元素d i r e c t o r ” 的值是e dw o o d 。 e dw o o d 元素名( “d i r e c t o r ) 允许你把”e dw o o d 4 这个值标出来,这样你 就能把这些数据同另外类似的数据区分开来。例如,有可能另一个元 素的值也是。e dw o o d 。 e dw o o d 由于每个元素都有不同的标签名,所以你能很容易把上面两个元 素的值区别开来。如果从语义上没有办法把数据标出来,两个有同样 值的元素会混淆起来。 属性 个元索可以包含一个或多个属性属性是一个由“= ”隔丌的名称 值。如: w e s t f i e l d 在上面的例子中,z i p = 0 1 0 8 5 是元素 的一个属性。属性用来 北京交通火学硕士学位论文 给个元素添加附加的、次要的信息,通常是元信息,属性还可以使 用缺省值,而元素却不能这样做。元素的每一个属性可以以任意顺序 进”说明,但仅能说明一次。 此外,x 虬标签对大小写敏感因此以下这三个是不同的元素。 通过上面对x 札文件的基本组成的分析,我们发现,x m l 文件不 仅包括了数据,还包括了描述数据的语义。基于这些语义,可以更方 便的对整个煳l 文件进行分析。也就是因为如此,蹦l 对于异构数据 源的结构分析提供了更有利的帮助。 3 1 2x m ls c h e m a x m ls c h e 眦是一个基于x m l 的语法或s c h e m a 规范,用来定义x m l 文档的标记方式。x m l s c h e m a 是一个由m i c r o s o f t 建议的s c h e m a 规 范+ 它与文档类型定义( d t d ) 相比具有很大的优势,而d t d 是最初 j _ j 米定义x m l 模型的s c h 嘲规范。d t d 存在很多缺点,包括使用非 x 虬语法,不支持数据类型定义,不具有扩展性等。例如,d t o 不允 许把元素内容定义为另外一个元素,或字符串。想了解更多有关d t d 的内容可以参考w 3 c ) 【m l 建议书。x 虬s c h e m a 从几个方面改善了d t d , 包括使用x 札语法,支持数据类型定义和名域。例如,x 札s c h e 嘴允 许你把一个元素说明为一个i n t e g e r ,f 1 0 8 “b o o l e a n ,u r l 等类型。 在i n t e r n e te x p l o r e r5 中的x m l 解析器可以解析使用d t d 或 x m ls c h e i l l a 的x m l 文档。 8 壁垒垫查堡堕 ( n a m o j a n es m it h 3 8 你会注意到在上面文档中默认的名域是 “x s c h e m a :c l a s s s c h e 帕x m l ”。这告诉解析器根据 u r l ( c l a s s s c h e 眦x m l ”) 上的s c h e m a ( x s c h e m a ) 来解析整个文档。 下面是上面那个文档的完整的s c h e 腿。注意s c h e m a 的根元素中的名 域声明。第一个( x m l n s = ”u r n :s c h e 隐s m i c r o s o f t c o m :x m 卜d a t a ) 表 明这个 ) ( m l文档是一个x m l s c h e 腿。第二个 ( x m ln s :d t = ”u r n :s c h e 啊s m i c r o s o f t c o m :d a t a t y p e s ) 允 年s c h e m a 处理者在e l e 舱n t t y p e 和 t t r i b u t e l i y p e 声明中的t y p e 属性前加d t d # 缀来说明元素的类型和内容的特征。 9 北京交通人学硕士学位论文 用来定义元素和属性的声明元素如下所示: 元素说明 e l e m e n t t y p e 把类型和条件赋给一个元素可以包含子元素 a t t r 油u t e t y p e 把类型和条件赋给一个属性a t t r i b u t e 声明以前 定义过的属性类型可以出现在名为e l e m e n t t y p e 的元素的作用域 中e l e m e n t 声明以前定义过的元素类型可以出现在名为e l e m e n t t y p e 的兀索的作用域中s c h e m a 的内容以晟深层的元素的“ t t r i b u t e t y p e ” 和“e l e m e n t t y p e ”声明丌头。 e l e m e n t t y p e 声明后接着就是它的属性和子元素,如果一个元素 有属性或子元素,必须把这种方法包含在它的e 1 e m e n t t y p e 声明中, 或者是必须在它们自己的e 1 e m e n t t y p e 或a t t r i b u t e t y p e 声明中进行 前导声明。 矍鱼垫查塑堕 ( e l e i i l e n tt y p e 2 n a m e 不同于d t d s ,) ( m ls c h e 衄允许有一个开放的内容模式,你可以进 行定义数据类型、使用默认值等等操作而不必限定内容。 在下面的s c h e 眦中, 元素的类型被定义并有一个默认值, 但在 元素中没有其他节点被声明。 e l e i i l e n t t y p en 锄e = 。s t u d e n t ”c o n t e n t = ”e l t o n l y ”m o d e l = ”o p e n ” o r d e r = 腑n y n 北京交通人学硕士学位论文 j :i f i i 的s c h e m a 允许你只验证你所关心的区域,这使你对文档的 验证级别有更多的控制, 并允许你使用s c h e 哪提供的一些特性而不必严格确认。 试着处理一下下面的x m l 文档的s c h e 豫。 f i d e l m am c g i n n 4 2 5 6 5 5 3 3 9 3 5 5 2 3 91 8 s h o v e l 3 9 9 9 1 9 9 8 一l o 一2 3 1 9 9 8 一l l 一0 3 如果你处理完s c h e 帕,在) ( m lv a l i d a t o r 中运行 e l e m e n t t y p e 和a t t r i b u t e t y p e 声明必须放在a t t r i b u t e 和e l e m e n t 内容声明之l ;i f 。例如,在上面的s c h e m a 中, 元素的e l e m e n t t y p e 声明必须放在 元素的e l e m e n tt y p e 声明之前。 o r d e r 属性的默认值是建立在c o n t e n t 属性的值上的。当c o n t e n t 值 为“u 】l 0 n l y ”时,o r d e r 数认值是s e q 。当c o n t e n t 值为“m i x e d ”时o r d e r 默认值是“l 眦n y ”。 为我们通过现在准备用x 虬来表示我们要转换的数据,我们就 1 2 整台技术概述 可以_ i _ | s c h e m a 来定义自己的数据类型使得我们的整合方案不耦合 与特定数据源。 3 1 3x s l t x s l t 的英文标准名称为e x t e n s i b l es t y l e s h e e tl a n g u a g e t r a n s f o r i t l a t i o n 。根据w 3 c的规范说 明书 ( h t t p :w w w w 3 o r g t r x s l t ) ,最早设计x s l t 的用意是帮助列l 文 档( d o c u m e n t ) 转换为其它文档。但是髓着发展,x s l t 已不仅仅用于将 x m l 转换为h t 札或其它文本格式更全面的定义应该是:x s l 下是一 种用来转换x m l 文档结构的语言。 x s l t 可以理解为将某个符合某种s c h e m 的x 札文档变换成符合 另一一种s c h e m a 的x 札文档的语言,当然,这种语言本身也是用x m l 水实觇的如图3 1 圈3 一lx s l t 工作过程 下面是一个实际的例子: 北京交通火学硕士学位论文 似设有源x m l 文件: s t a r t b o d y i :i n i s h 下面是将要作用于源】【l 玎l 文件上的x s l t 文件: p ) 最终产生的转换后的目标文件是: f ) sl a n b ( ) d y f i n i s h 1 4 接合技术概述 3 1 3x s i 卫的优点 我们已经知道,x m l 是一种电脑程序间交换原始数据的简单而标 准的方法。它的成功并不在于它容易被人们书写和阅读,更熏要的是, 它从根本上解决了应用系统问的信息交换。因为) ( m l 满足了两个基本 的需求: ( 1 ) 将数据和表达形式分离。就象天气预报的信息可以显示在不 同的设备上,电视,手机或者其它。 ( 2 ) 在不同的应用之间传输数据。电子商务数据交换的与日俱增 使得这种需求越来越紧迫。 为了使数据便于人们的阅读理解,我们需要将信息显示出来或者 打印出来,例如将数据变成一个h t 札文件,一个p d f 文件,甚至是 一段声音:同样,为了使数据适合不同的应用程序,我们必须有能够 将一种数据格式转换为另一种数据格式,比如需求格式可能是一个文 本文件。一个s q l 语句,一个h t t p 信息,一定顺序的数据调用等。 而x s l t 就是我们用来实现这种转换功能的语言。将x m l 转换为h t m l , 是目前x s l t 最主要的功能。 3 1 4 垤l 文档路径! a t h x s l 在转换) ( m l 文档时分为明显的两个过程,第一转换文档结构: 其次将文档格式化输出。这两步可以分离开来并单独处理,因此x s l 在发展过程中逐渐分裂为x s l t ( 结构转换) 和x s l f 0 ( f o r m a t t i n g o b j e c t s ) ( 格式化输出) 两种分支语言,其中x s l f o 的作用就类似c s s 在h t m l 中的作用。而我们这晕重点讨论的是第一步的转换过程,也 就是x s l t 。 北京交避大学硕士学位论文 另外,在学习x m l 时我们已经知道x 札是一个完整的树结构文档。 在转换x m l 文档时可能需要处理其中的一部分( 节点) 数据,那么如何 查找和定位x m l 文档中的信息呢,x p a t h 就是一种专门用来在) ( m l 文 档中查找信息的语苦。x p a t h 隶属x s l t ,因此我们通常会将x s l t 语 法和x p a t h 语法混在一起说。 用种比较好理解的解释:如果将x m l 文档看作一个数据库, x p a t h 就是s q l 查询语言;如果将x m l 文档看成d o s 目录结构,x p a t h 就是c d ,d i r 等目录操作命令的集合通过x p a t h 我们可以很容易的定 位x m l 文档中的每一个元素然后就可以再使用x s h 里面的各个函 数来对这些元素进行一定的转换。 访问数据 x p “h 提供了根据比较方法选择特定属性、元素实例之一和节点 的语法。 符号指节点的标签属性。在以上的例子中,某些 c h a p t e r ) 节点 具有类型t y p e 属性,可以作为 t y p e 在上下文中访问。为了可以从文 档的任何地方访问它路径应该写成b o o k c h a p t e r 眦y p e 。 方括号从一个集合中选出一个节点很象是传统编程中的数组。 为了只选出第2 个 ,你可以用一个形如b o o k c h a p t e r 2 的x p a t h 表达式。注意,集合中的第1 个节点的编号是l ,而不是大 多数编程语苦中规定的o 。 你可以把这些条件组合起来按照其属性值选择节点,比如: h o ( ) k c h a p l e r t y p e = 。p r o l o g u e 。 就仅仅选出第1 个 。这 剃t 选掸功能有许多,其内容已经超出了本文所涉及的范围。 1 6 整合技术概述 函数 在x s l t 中我们能过x p a t h 选定特定的元素,然后就通过x s l t 提 供的函数对其进行一定的操作转换。 下面列举一些主要的函数: x s l :v a l u e o f 元素只输出x p a t h 表达式的值。 x s l :n u m b e r 元素输出数值。 x s l :f o r e a c h 元素循环遍历节点集合同时用元素嵌套内容处理 各个节点。 x s l :s o r t 元素在 或者 元素对节点处理之前对节点集合捧序。 x s 】:i f 如果 元素内x p a t h 表达式的s e l e c t 属性值为真那么 元素会处理自身的嵌套内容。 x s l :c h o o s e x s l :w h e n x s l :o t h e r w i s e 同 元素相似 按顺序检查各种不同条件, 在所有的其他条件都不满足的情况下执行默认操作。 3 2s o a 面向服务的体系结构( 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 ) 是个组件模型它将应用程序的不同功能单元( 称为服务) 通过这 北京交通人学硕十学位论文 些服务之蚓定义良好的接口和契约联系起来。接口是采用中立的方式 进行定义的它应该独立于实现服务的硬件平台、操作系统和编程语 言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的 方式进行交互。 这种具有中立的接口定义( 没有强制绑定到特定的实现上) 的特 征称为服务之间的松耦合。松耦含系统的好处有两点,一点是它的灵 活性,另一点是当组成整个应用程序的每个服务的内部结构和实现 逐渐地发生改变时,它能够继续存在。而另一方面,紧耦合意味着应 用程序的不同组件之问的接口与其功能和结构是紧密相连的,因而当 需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常 脆弱。 对松耦合的系统的需要来源于业务应用程序需要根据业务的需要 变得更加灵活。以适应不断变化的环境,比如经常改变的政策、业务 级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因 素,这些因素甚至会影响业务的性质。我们称能够灵活地适应环境变 化的业务为按需( o nd e 眦n d ) 业务,在按需业务中,一旦需要,就 可以对完成或执行任务的方式进行必要的更改。 虽然面向服务的体系结构不是一个新鲜事物,但它却是更传统的 面向对象的模型的替代模型,面向对象的模型是紧耦合的,已经存在 一: 多年了。虽然基于s o a 的系统并不排除使用面向对象的设计来 丰f = f 矬单个服务。但是其整体设计却是面向服务的。由于它考虑到了系 统内的埘琢,所以虽然s o a 是基于对象的,但是作为一个整体,它 却爿i 是面向对象的。不同之处在于接口本身。s o a 系统原型的一个典 型例予是通用对象请求代理体系结构( c 咖no b j e c tr e q u e s tb r o k e r a r c h jt e c t u r e 。c o r b ) ,它已经出现很长时间了,其定义的概念与s o a 綮台技术概述 相似。 然而,现在的s o a 已经有所不同了,因为它依赖于一些更新的进 展这些进展是以可扩展标记语言( 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 的语言( 称为w e b 服务描述语 言( w e bs e r v i c e sd e f i n i t i o nl a n g u a g e ,w s d l ) ) 来描述接口,服 务已经转到更动念且更灵活的接口系统中,非以前c o r b a 中的接口 描述语言( i n t e r f a c ed e f i n i t i o nl a n g u a g e ,i d l ) 可比了。 w e b 服务并不是实现s 0 a 的惟一方式。前面剐讲的c o r b a 是另 一种方式这样就有了面向消息的中间件( m e s s a g e 一0 r i e n t e d i “l e w a r e ) 系统,比如i 蹦的m q s e r i e s 。但是为了建立体系结构 模型。您所需要的并不只是服务描述。您需要定义整个应用程序如何 在服务之问执行其工作流。您尤其需要找到业务的操作和业务中所使 用的软件的操作之间的转换点。因此,s o a 应该能够将业务的商业流 程与它们的技术流程联系起来,并且映射这两者之间的关系。例如, 给供应商付款的操作是商业流程,而更新您的零件数据库却是技术流 程。因而,工作流还可以在s 0 的设计中扮演重要的角色。 此外动态业务的工作流不仅可以包括部门之间的操作,甚至还 可以包括与不为您控制的外部合作伙伴进行的操作。因此,为了提高 效率,您需要定义应该如何得知服务之间的关系的策略,这种策略常 常采用服务级协定和操作策略的形式。 最后所有这些都必须处于一个信任和可靠的环境之中,以同预 期的一样根据约定的条款来执行流程。因此,安全、信任和可靠的消 息传递应该在任何s o a 中都起着重要的作用。 1 9 北京交通人学硕士学位论文 3 1 2 s o a 技术组成f 1 5 】 s o a 本身是应该如何将软件组织在一起的抽象概念。它依赖于用 x m l 和w e b 服务实现并以软件的形式存在的更加具体的观念和技 术。此外它还需要安全性、策略管理、可靠消息传递以及会计系统 的支持,从而有效地工作。您还可以通过分布式事务处理和分布式软 件状态管理来进一步地改善它。 s 0 a 服务和w e b 服务之问的区别在于设计。s 0 a 概念并没有确切 地定义服务具体如何交互,而仅仅定义了服务如何相互理解以及如何 交百。其中的区别也就是定义如何执行流程的战略与如何执行流程的 战术之冉j 的区别。而另一方面,w e b 服务在需要交互的服务之间如何 传递消息有具体的指导原则:从战术上实现s o a 模型是通过h t t p 传递的s o a p 消息中最常见的s o a 模型。因而,从本质上讲,w e b 是 实现s o a 的具体方式之一。 尽管我们觉得w e b 服务是实现s o a 的最好方式但是s o a 并不 局限于w e b 服务。其他使用w s d l 直接实现服务接口并且通过】( m l 消息进行通信的协议也可以包括在s o a 之中。正如在别处指出的, c o r b a 和i 明的m q 系统通过使用能够处理w s d l 的新特征也可以 参与到s 0 中来。如果两个服务需要交换数据,那么它们还会需要 使_ i ; 】牛1 f 同的消息传递协议,但是数据接口允许相同的信息交换。 j 衄川霉沙和业务流程能够通过使用标准流程集成模型来集成复杂 的变时l + 能发挥w e b 服务作为集成平台的全部潜力。w s d l 所直接 支持的交互模型仅仅是同步或不相关的异步交互的无状态模型。业务 交! j :的模型通常假设在涉及双方或多方、有状态、长期运行的交互中 的同步和异步辩等消息交换序列。为了定义这种业务交互,需要对业 档台技术概述 务流程在其交互中所用的消息交换协议进行正式描述。 s 0 a 体系中,b p e l ( b u s i n e s sp r o c e s se x e c u t el a n g u a g e ) 是一门 用于自动化业务流程的形式规约语言,它主要关注的就是如何能更好 的把握业务流程的刻画。 既为了建立所有这些信息的适当控制,又为了应用安全性、策略、 可靠性以及会计方面的要求,在s o a 体系结构的框架中加入了一个 新的软件对象。这个对象就是企业服务总线( e n t e r p r i s es e r v i c e b u s ,e s b ) ,它使用许多可能的消息传递协议来负责适当的控制、流 甚至还可能是服务之间所有消息的传输。虽然e s b 并不是绝对必需 的,但它却是在s o 中正确管理您的业务流程至关重要的组件。e s b 本身可以是单个引擎甚至还可以是由许多同级和下级e s b 组成的 分布式系统,这些e s b 一起工作,以保持s o a 系统的运行。在概念 上,它是从早期比如消息队列和分布式事务计算这些计算机科学概念 所建立的存储转发机秘发展而来的。 从开发人员韵角度来说,他们使用的工具必须知道s o a 的能力, 并允许开发人员有效地使用s o a 对象。这将设计s o a 模型、丌发服 务和服务对象以及测试s o a 应用程序这些过程包括进来并组成一个 整体。因而,开发人员的工作必须为面向服务的应用程序设计开发 ( s e r v i c e 一0 r i e n t e d p p l i c a t i o nd e s i g n d e v e l o p m e n t ,s o a d ) 做 好准备。 北京交通大学硕士学位论文 3 2w e b s e r v i 3 2 1 定义 w e b 服务是使应用程序可以以与平台和编程语言无关的方式进行 相互通信的一项技术。w e b 服务是一个软件接口,它描述了一组可以 在网络上通过标准化的x m l 消息传递访问的操作。它使用基于x 虬 语言的协议来描述要执行的操作或者要与另一个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 服 务应用程序。 软件业最终会接受这样的事实:跨多个操作系统、编程语言和硬 件平台集成软件应用程序不可能由任何一种专门的环境来解决。传统 上,这个问题一直是一个紧耦合问题,调用远程网络的应用程序通过 自己发出的函数调用和请求的参数与远程网络紧密地联系在一起。在 w e b 服务出现之前,在大多数系统上,采用的是固定的接口,但对于 环境或需要的改变,这缺乏灵活性或适用性。 w e b 服务所使用的x m l 可以用真j 下与平台无关的方式来描述任 何( 所有) 数据,以跨系统交换数据,因此转向了松耦合应用程序。 i 佰,w c b 服务可以在较抽象的层面上工作,较抽象层面可以按照需 蛭动念地蘑新评估、修改或处理数据类型。所以,从技术层面上讲, w o b 服务哪以更方便地处理数据,并且允许软件更自出地进行通信。 从更高的概念层面上讲,我们可以将w e b 服务视为一些工作单 元,缚个单元处理特定的功能任务再往上一步,可以将这些任务组 合成面向业务的任务,以处理特定的业务操作任务,从而使非技术人 整合技术概述 员去考虑一些应用程序,这些应用程序可以在w e b 服务应用程序工 作流中一起处理业务问题。因此,一旦由技术人员设计并构建好w e b 服务之后,业务流程架构设计师就可以聚集这些w e b 服务来解决业 务层面上的问题。这里借用汽车引擎来作类比,业务流程架构设计师 考虑将整个汽车引擎与汽车框架、车身、变速器和其他系统组合在一 起,而不是研究每个引擎内的各个部件。而且,动态的平台意味着引 擎可以与其他汽车制造商的变速器或部件一起工作。 最后一个方面是,w e b 服务可以有助于在组织内的业务人员和技 术人员之间架起一座桥梁。w e b 服务使业务人员能更容易理解一些技 术上的操作。业务人员可以描述出一些事件和活动,然后技术人员可 以将这些事件和活动与相应的服务相关联。 有了通用定义的接口和设计良好的任务,重用这些任务就变得更 容易了因而重用这些任务所代表的应用程序也就变得容易了。应用 程序软件的可重用性意味着在软件上的投资有了更好的回报,因为可 以从同一资源产生更多收益。可重用性使业务人员可以考虑以一种新 的方式来使用现有的应用程序,或者以一种新的方式将应用程序提供 给合作伙伴,因此可能增加合作伙伴问的业务交易。 所以,w e b 服务试图解决的主要问题是数据和应用程序集成的问 题,是将技术性的功能转换成面向业务的计算任务的问题

温馨提示

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

最新文档

评论

0/150

提交评论