(计算机软件与理论专业论文)soa中服务建模与设计的原理及方法研究.pdf_第1页
(计算机软件与理论专业论文)soa中服务建模与设计的原理及方法研究.pdf_第2页
(计算机软件与理论专业论文)soa中服务建模与设计的原理及方法研究.pdf_第3页
(计算机软件与理论专业论文)soa中服务建模与设计的原理及方法研究.pdf_第4页
(计算机软件与理论专业论文)soa中服务建模与设计的原理及方法研究.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(计算机软件与理论专业论文)soa中服务建模与设计的原理及方法研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 面向服务的体系结构( 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 ,s o a ) 是一种新型的软 件体系结构,它具有可重用性、松散耦合、粗粒度、互操作性等优点。s o a 已 经成为企业应用系统架构设计的主要方法,得到了广泛应用。目前服务建模主 要采用三种建模抒则:面向对象的分析与设计、企业体系结构框架和业务流程 建模。但是早期的s o a 项目经验表明,上述三种建模方法各自单独使用时均达 不到s o a 的要求。有必要研究服务建模的新方法,使得容易、成功地进行s o a 开发。 本文首先阐述了s o a 的概念、基本框架和原则,分析了s o a 中的服务及 s o a 架构所带来的优点。研究了s o a 架构当前最好的实现方式一、b 服务技 术。 接着,描述了面向服务的开发流程,明确了服务建模和设计在s o a 交付周 期中所处的位置,分析了面向服务的设计和分析过程。重点研究服务建模与设 计的原理与方法。通过研究已有的服务建模方法的不足,论文提出了一个基于 s o a 交付周期的、自顶向下发现服务的建模方法,用于指导系统的建模。 在服务设计的研究中,分析了服务设计的过程,研究了服务粒度的划分对 s o a 质量的影响。重点从服务层次和操作层次对设计合适粒度的服务做了研 究,总结出了服务设计的原则。 采用w e b 服务技术开发和实现了一个基于s o a 的在线医药销售系统应用 实例。实践表明,本文提出的服务建模与设计的方法是先进的,可行的。 关键字:面向服务的体系结构,服务,服务建模,企业服务总线,服务粒度 a b s t r a c t r e s e a r c h0 1 1p r i n c i p l e sa n dm q , , t h o d so fserviceresearc 0i t e t0 d so te r v i c e m o d e l i n ga n dd e s i g ni ns o a a b s t r a c t 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 ( s o a ) i san e ws o f t w a r ea r c h i t e c t u r ew i t hm a n y a d v a n t a g e s ,s u c ha sr e u s a b i l i t y , l o o s ec o u p l i n g ,c o u r s eg r a n u l a r i t y , i n t e r o p e r a b i l i t y a n ds oo n a d o p t i o no ft h es o a d e s i g ni d e a sc a ng e tt h eg r e a t e s te x t e n tt or e d u c e t h ec o u p l i n gb e t w e e ns y s t e m s ,e n h a n c e dr e u s a b i l i t y , a n db e t t e ri n t e g r a t i o no fl e g a c y s y s t e m s ,e n h a n c i n gt h es y s t e m sf l e x i b i l i t ya n di n t e r o p e r a b i l i t y s o ah a saw i d e r a n g eo fa p p l i c a t i o n sa n dh a sb e c o m et h em a i nm e t h o do fe n t e r p r i s ea p p l i c a t i o n s y s t e ma r c h i t e c t u r ed e s i g n b yi n t r o d u c i n gt h ec o n c e p t so ft h es o a ,b a s i cf r a m e w o r ka n dp r i n c i p l e s ,t h e a d v a n t a g e so fs o a a r ed i s c u s s e di nd e t a i li nt h i sp a p e r , a n dt h ei m p o r t a n tc o n c e p t “s e r v i c e i se x p l a i n e di nd e t a i l w e bs e r v i c e sa st h eb e s ti m p l e m e n t a t i o no fs o ai s s t u d i e di n - d e p t ha sw e l l s e r v i c e o r i e n t e da p p l i c a t i o nd e v e l o p m e n tp r o c e s si sp r e s e n t e d t h i sh e l p su st o f u l l yu n d e r s t a n dt h el o c a t i o no fm o d e l i n ga n dd e s i g ns e r v i c ei nt h es o a l i f ec y c l e p r i n c i p l e sa n dm e t h o d so fs e r v i c em o d e l i n ga n dd e s i g nh a v eb e e ns t u d i e di n - d e p t h b ya n a l y s i s i n gt h es h o r t c o m i n g so fe x i s t i n gm o d e l i n gm e t h o d s ,an e w m e t h o do f s e r v i c em o d e l i n gi sd e s c r i b e d ,w h i c hi sb a s e do ns e r v i c e - o r i e n t e d a p p l i c a t i o n d e v e l o p m e n tp r o c e s sa n ds e r v i c ed i s c o v e r yf r o mt o p t od o w n s i n c es e r v i c ed e s i g n i so n ei m p o r t a n tp r o c e s so fs e r v i c e - o r i e n t e dd e s i g n , s e r v i c e - o r i e n t e dd e s i g np r o c e s s i sp r e s e n t e di nd e t a i l a i m i n gt of m dm e t h o d su s e dt od e s i g na p p r o p r i a t es e r v i c e s g r a n u l a r i t y , t h o s ei s s u e sf r o ms e r v i c el e v e lt oo p e r a t i o n a ll e v e ld e f i n i t i o n sa n d p r i n c i p l e so fs e r v i c ed e s i g na l es t u d i e di nd e t a i l a sad e m o ,a l lo n - l i n em e d i c i n es a l e ss y s t e mb a s e do ns o ai sa n a l y z e da n d d e s i g n e db yu s i n gp r i n c i p l e sa n dm e t h o d so fs e r v i c e sd e c o m p o s i t i o na n dd e s i g n t h e p r a c t i c a lp r o j e c ts h o w st h a tt h em e t h o d sd e s c r i b e di nt h i sp a p e ra r eg o o da n d u s e f u l k e yw o r d s :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 ,s e r v i c e ,s e r v i c em o d e l i n g ,e n t e r p r i s e s e r v i c eb u s ,s e r v i c e sg r a n u l a r i t y 西北大学学位论文知识产权声明书 本人完全了解西北大学关于收集、保存、使用学位论文的规定。 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版。 本人允许论文被查阅和借阅。本人授权西北大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。同时授权中国科学技术信息研 究所等机构将本学位论文收录到中国学位论文全文数据库或其它 相关数据库。 保密论文待解密后适用本声明。 学位论文作者签名: 盘毛 指导教师签名: 如p 罗年舌月行日弘饵6 月f 1 9 日 西北大学学位论文独创性声明 本人声明:所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究 成果。据我所知,除了文中特别加以标注和致谢的地方外,本论文不包含其他人已经 发表或撰写过的研究成果,也不包含为获得西北大学或其它教育机构的学位或证书而 使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确 的说明并表示谢意。 学位论文作者签名: 赵免 伽矿年6 月1 1 9 西北大学硕士研究生学位论文 第一章引言 1 1 1 研究背景 第一章引言 计算机技术的迅速发展把人类社会带入了信息化时代。随着信息处理技术 在各个领域中的广泛应用,现代企业面临的系统环境越来越复杂,使用的应用 系统的数量也越来越多。这些应用系统可能使用不同的工具和语言进行开发, 甚至运行在不同的操作平台上。随着企业业务的进一步发展,企业的应用系统 需要高度的集成和开放,而且要求能够快速高效地适应业务变化。同时也要求 企业能够将其内部的各种信息系统整合为一个统一的平台,以适应信息化的发 展。 面向服务的体系结构( 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 ,s o a ) 是一种建立、 管理、维护i r r 系统和业务流程的方法。在s o a 架构下,由各自独立可复用的 服务构成系统功能。通过构建服务能够建立一个业务逻辑抽象和技术抽象,把 业务逻辑与具体实现技术分离开来,使企业应用彻底摆脱面向技术解决方案的 束缚,使企业能够适应业务和实现技术的不断变化,轻松应对企业业务变化和 发展的需要。服务可以被共享、重用和配置,如此一来,能够从整体考虑企业 的信息系统,选择一个合适的集成平台,把企业的各个“信息孤岛”有机地集 成起来【i j 。 面向服务的体系结构在解决了企业应用系统集成问题的同时也让企业应 用彻底摆脱面向技术的解决方案的束缚。伴随着大规模企业级应用的不断发 展,为了减少异构性、满足互操作性和不断变化的业务要求,作为一种新型的 软件体系结构一面向服务的体系结构,已经成为信息技术领域研究的热点之 1 。2 国内外研究发展现状 1 9 9 6 年,g a r t n e r 最早提出面向服务的体系结构( s e r v i c eo r i e n t e d 西北大学硕士研究生学位论文第一章引言 a r c h i t e c t u r e ,s o a ) 的思想,但是当时并没有引起人们的足够重视。随着网络 技术的不断发展,特别是w e bs e r v i c e s 技术的日趋成熟,2 0 0 2 年1 2 月,g a r t n e r 提出s o a 是“现代应用开发领域最重要的课题 ,预计到2 0 0 8 年,s o a 将成 为占有绝对优势的软件工程实践方法。g a r t n e r 为s o a 描述的远景目标是:在 于让i t 变得更有弹性,以更快地响应业务单位的需求,实现实时企业 ( r e a l t i m ee n t e r p r i s e ) 2 1 。 目前,世界上的许多研究机构、大学和业界著名的软件公司如微软,m , s u n 等纷纷推出自己的基于s o a 信息开发平台和解决方案,并且声称这些平 台可以帮助用户实现基于s o a 的企业级系统。微软用于构建基于s o a 应用程 序的i n d i g o 平台,使得专门用于创建s o a 应用程序的技术得到广泛应用。i b m 实现了基于w e b s p h e r e 产品族的e s b 平台,构成了i b ms o a 的基础架构。s u n 的s o a 路径服务导向架构在s o a 技术的整个生命周期内从概念论证、准备阶 段,到实际执行等各个关键时刻,采用s u n 的j a v a 平台和s o a 执行经验。虽 然如此,s o a 发展到今天还远未达到完善成熟的地步,就连s o a 的基本概念 迄今为止还没有一个被业界所公认的定义,研究工作也都大多处于理论研究阶 段。w e b 服务作为目前实现s o a 的最佳手段,提供了基于x m l 标准接口的若 干中间件,具有完好的封装性、松散的耦合性、协议规范的标准性、以及高度 的可集成性等特点,能够很好的满足s o a 应用模式需求p 】。 在国内,科研机构的理论研究成果也并不多。s o a 的研究主要体现在部分 中间件产品上,而基于s o a 的e s b 整体解决方案非常缺乏,更多的是一些中 间件产品和协同软件产品。对于企业的s o a 应用部署多数由国外大公司如m m , b e a 等提供。由于多种因素的限制,国内对s o a 的研究还处于起步阶段。 对于s o a 中的服务建模,人们大多采用已有的面向对象的分析与设计 ( o b j e c to r i e n t e da n a l y s i sa n dd e s i g n ,o o a d ) 、企业体系结构( e n t e r p r i s e a r c h i t e c t u r e ,e a ) 框架和业务流程建模( b u s i n e s sp r o c e s sm o d e l i n g ,b p m ) 这些 现有的建模规则。但是早期的s o a 项目经验表明,诸如o o a d 、e a 和b p m 这些现有开发流程和表示方法各自单独使用时均达不到s o a 的要求。所以, 有必要将o o a d 、e a 和b p m 中的适当原理与一些独特的新理论组合起来,研 究服务建模的方法,使得容易、成功地进行s o a 开发。因此本课题具有研究 2 西北大学硕士研究生学位论文第一章引言 的理论价值和现实意义。 1 3 本文的研究内容和创新 面向服务架构的研究大多着眼于整个架构设计的原则与模型的讨论,本文 在分析已有的服务建模规则和方法的基础之上,研究了s o a 中服务建模与设 计的原理及方法。 本文的研究内容: 1 深入研究面向服务的体系结构的相关概念、原理及其实现技术。 2 研究服务建模和服务设计的原理和方法。服务如何构建,如何决定服 务粒度的大小,怎样使服务内部高内聚,而服务之间又是松散耦合。 在服务建模的研究中,首先研究了将现有建模方法应用到s o a 项目开 发时的不足。同时,研究了三种发现服务的方式。论文提出了一个基 于s o a 交付周期的、自顶向下发现服务的建模方法。 3 在服务设计的研究中,分析了服务设计的过程,研究了服务粒度的划 分对s o a 质量的影响。重点从服务层次和操作层次对设计合适粒度的 服务做了研究,并且总结出了服务设计的原则。 4 研究在j 2 e e 平台上使用w e bs e r v i c e s 技术实现s o a 架构的系统开发 设计。 论文主要在以下几个方面进行了改进和创新: 1 在已有的面向服务的分析和设计方法之上,系统地研究了服务建模和 设计的原理与方法。使服务模块具有内部高内聚、服务模块之间松耦 合的特点,从而使整个系统具有很强的可互操作性、可重用性和灵活 性。 2 深入研究服务粒度对s o a 质量的影响。 3 论文提出了一个基于s o a 交付周期的、自顶向下发现服务的建模方 法。 4 在服务设计的研究中,分析出从服务层次和操作层次设计合适粒度服 务的方法。 3 西北大学硕士研究生学位论文第一章引言 5 给出了服务的一般设计过程,并提炼出服务设计的原则。 1 4 本文组织结构 本课题阐述了面向服务的分析和设计过程,深入研究了在基于s o a 的企业 应用系统开发设计中服务建模与设计的原理和方法。 全文由以下五章组成: 第一章:绪论。阐述研究背景、国内外研究发展现状、本文的研究目标和 内容以及论文的组织结构。 第二章:面向服务的体系结构及其相关技术。介绍了s o a 的概念、s o a 中 的服务、基本框架和原则,以及采用s o a 架构所带来的优点,之后研究了s o a 架构当前最好的实现方式w e b 服务技术和面向服务的开发流程。 第三章:服务建模与设计。研究服务建模和服务设计的原理与方法。在研 究现有建模方法的不足和服务发现方式之后,提出了一个基于s o a 交付周期的 自顶向下服务建模方式。研究服务设计过程、服务粒度对s o a 质量的影响以及 服务粒度的设计,总结出服务设计的原则。 第四章:基于s o a 的在线医药销售系统设计与实现。描述了一个在j 2 e e 平 台上使用w e bs e r v i c e s 技术实现s o a 架构的在线医药销售系统实例开发和实现 过程。验证本文提出的服务建模和设计的原理与方法。 第五章:总结与展望。对全文进行总结,并对以后的研究工作进行展望。 4 西北大学硕士研究生学位论文第二章面向服务的体系结构及其相关技术 第二章面向服务的体系结构及其相关技术 本章阐述t s o a 的概念、s o a 中的服务、基本框架和原则,通过这些理解 s o a 架构所带来的优点。接着,研究t s o a 架构当前最好的实现方式一w e b 服 务技术和面向服务的开发流程。 2 1面向服务的体系结构s o a 2 1 1s o a 的概念 在企业的发展过程中,随着业务的增长、信息化的发展,系统间信息的交 互与互操作变得非常困难,从而形成了一个个“信息孤岛”。传统方法不能方 便、灵活、低代价地实现异构系统的集成,难于快速适应企业现代业务变化的 需求。在不改变企业应用底层架构的基础上,基于s o a 的应用集成开发方案可 以很好地解决上述问题。s o a 是基于面向对象技术和面向组件技术之上更高级 别的抽象。s o a 的优势在于高可复用性,灵活性,以及更好的扩展性和可用性。 迄今为止,对于面向服务的体系结构【4 】( s o a ) 还没有一个公认的定义。许 多组织从不同角度和不同侧面对s o a 进行了描述。下面给出业界一些关于 s o a 定义: 万维网联盟( 1 1 1 ew o r l dw i d ew e bc o n s o r t i u m ,w 3 c ) 将s o a 定义为:“一 种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这 些服务带有定义明确的可调用接口,可以以定义好的顺序调用这些服务来形成 业务流程”。w 3 c 将服务定义为:“服务提供者完成一组工作,为服务使用者 交付所需的最终结果。 s e r v i c e a r c h i t e c t u r e c o m 将s o a 定义为:“本质上是服务的集合。服务间 彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调 进行某些活动。服务间需要某些方法进行连接。所谓服务就是精确定义、封装 完善、独立于其他服务所处环境和状态的函数。 5 西北大学硕士研究生学位论文第二章面向服务的体系结构及其相关技术 m 认为:“s o a 展现出比w e bs e r v i c e s 更加广泛的应用前景,s o a 是 一种构建能够交付终端用户服务或构建其他服务的功能组件。【5 】 g a r t n e r 将s o a 定义为:“面向服务的体系结构( s o a ) 是客户端n 务器的 软件设计方法,_ 项应用由软件服务和软件服务使用者组成,s o a 与大多数通 用的客户端服务器模型的不同之处,在于它着重强调软件组件的松散耦合,并 使用独立的标准接口。 6 1 本文将面向服务的体系结构定义如下:面向服务的体系结构是一个开放 的、可扩展、可组合的组件模型,它将应用程序的不同功能单元封装为服务。 服务之间通过定义良好的接1 2 和契约联系起来,接口是采用中立的方式进行定 义的,独立于实现服务的硬件平台、操作系统和编程语言,使得构建在各种这 样的系统中的服务可以用一种统一和通用的方式进行交互。 2 1 2s o a 的基本架构 图2 1 描述了s o a 的基本架构【7 】【引。s o a 由以下三个角色组成:服务提供 者( s e r v i c ep r o v i d e r ) 、服务请求者( s e r v i c er e q u e s t e r ) 、服务注册中,t l , ( s e r v i c e r e g i s t r y ) 。 1 服务提供者( s e r v i c ep r o v i d e r ) 服务提供者是一个可通过网络寻址的实体,它接受和执行来自服务请求者 的请求。它将自己的服务和接口契约发布到服务注册中心,以便服务请求者可 以发现和访问该服务。 2 服务请求者( s e r v i c er e q u e s t e r ) 服务请求者负责查找发布在一个或者多个服务注册中心的服务描述,并负 责利用服务描述,绑定或者调用由服务提供者提供的服务。服务请求者有时候 也叫服务使用者、服务消费者。 3 服务注册中心( s e r v i c er e g i s t r y ) 服务提供者可以在服务注册中心发布服务描述,服务注册中心负责为其登 记,并允许服务请求者搜索服务注册中心所包含的服务描述集合。服务注册中 心的作用就是服务请求者和服务提供者之间的中介。一旦服务注册中心完成了 匹配,它也就完成了任务,其余的交互也就是在服务请求者和服务提供者之间 6 西北大学硕士研究生学位论文第二章面向服务的体系结构及其相关技术 的直接服务调用。服务契约是服务请求者和服务提供者间交互方式的规范,指 明了服务请求和响应的格式。 图2 - 1s o a 的基本架构 对应于s o a 中的三个角色,s o a 也包含三个操作:发布( p u b l i s h ) 、发现( f i n d ) 和绑定调用( b i n d i n v o k e ) 。这些操作定义了s o a 角色之间的约定关系。 1 发布操作是一种服务注册或者服务登记的行为。它起着服务注册中心 与服务提供者之间的连接作用。当服务提供者在服务注册中心发布其服务描述 后,服务注册中心就将该服务的细节通知给服务请求者。发布的实际细节取决 于服务注册中心的实现。简单的发布是将服务描述发布到应用服务器的目录结 构中,复杂的发布操作则通过独立的单元来管理服务描述。 2 发现操作是获得服务的调用细节信息,起着服务注册中心和服务请求 者之间连接作用。在进行发现操作时,服务请求者向服务注册中心提供查询条 件,如服务类型、服务质量保证、安全验证等等。服务注册中心根据查找条件 在所发布的服务描述结合中进行搜索,查找与查找标准匹配的服务描述。 3 绑定操作是服务请求者通过分析从服务注册中心中得到的服务绑定信 息,包括服务的访问路径、服务调用的参数、返回结果、传输协议、安全要求 等,对自己的系统进行相应配置,进而远程调用服务提供者所提供的服务。 从概念上讲,s o a 中有四个不同抽象级别的组件【9 】:消息、操作、服务和 业务流程。 消息代表完成工作单元所需要的部分或所有数据。操作代表单个逻辑工作 单元( l o g i c a lu n i to fw o r k , l u w ) 的事务。每一个操作监管服务能够执行一 7 西北大学硕士研究生学位论文 第二章面向服务的体系结构及其相关技术 个特定功能的处理。执行操作通常会导致读、写或修改一个或多个持久性数据。 s o a 操作可以直接与面向对象( o o ) 的方法相比。它们都有特定的结构化接口, 并且返回结构化的响应,完全同方法一样,特定操作的执行可能涉及调用附加 的操作。服务代表操作的逻辑分组。业务流程是为实现特定业务目标而执行的 一组长期运行的动作或活动。业务流程通常包括多个业务调用。 在s o a 术语中,业务流程包括依据一组业务规则按照有序序列执行的一 系列操作。操作的排序、选择和执行称为服务或流程编排。操作发送及接收消 息以执行工作,操作最常由其处理的消息来定义。服务最常由包含它的操作来 定义。流程实例可组成服务,但是不必由其服务定义,因为也许只需要服务所 提供的功能子集。 2 。1 3s o a 中的服务 对于普通架构的企业应用系统可以分为业务流程层和应用层,而采用面向 服务架构的企业应用系统结构如下图2 - 2 所示,在业务流程层与应用层之间有 一个服务接口层1 0 1 。服务是被精确定义、封装完善、独于其他服务所处环境和 状态的并应用于业务流程的可重用组件的函数。它提供息并简化业务数据从一 个有效、一致的状态向另一个状态的转变。 这是企业中s o a 特征最常出现的地方。面向服务方法在企业业务系统的 应用是通过服务的引进而实现的。服务建立了一个夹在传统的业务与应用层之 间的高级抽象形态,位于此处的服务能够封装物理的应用逻辑和业务流程逻 辑。服务接口层起到封装抽象下层应用逻辑,对上层提供接口。应用层是由不 同技术解决方案的业务逻辑的自动化实现组成,如n e t 应用、j 2 e e 应用和遗 留的应用。 服务将企业模块化,在服务接口层形成孤立的逻辑单元一服务。服务可以 分层,以便上层的服务能够封装下层服务。服务接口层从低高可分为应用服务 层、业务服务层和编排服务层,所以对应的服务可以分为应用服务、业务服务 和编排服务。 应用服务层建立了用来表示特定技术功能的底层基础。位于这一层的服务 称为应用服务。其目的是要在新的或遗留应用之内提供处理数据相关的公共 8 西北大学硕士研究生学位论文 第二章面向服务的体系结构及其相关技术 的、可复用功能。比如工具服务和包装服务就是典型的应用服务。工具服务是 提供可复用逻辑的一种服务,主要用于解决方案无关的应用服务,也可以用于 指可复用的服务。包装服务最常用于集成目的,它包含封装一些或全部遗留环 境的服务,以便将遗留功能暴露给服务请求者。最常见的包装服务形式是遗留 应用的服务适配器,它建立了遗留应用底层a p i 的接口服务。 业务流程层 3 服务接口层 编排服务层 业务服务层 应用服务层 n 应用层 、 图2 - 2 企业应用模型中的服务接口层 业务服务层引入了专注于表示业务逻辑的原子性业务服务,即不可再分解 的业务服务。业务服务是业务服务模型的实现。业务服务的唯一目标是形成一 个独立的业务服务层,以便可能以最纯粹的形式表示业务逻辑。但是,这并不 阻止它们实现其他服务模型。 业务服务可以分为两类: ( 1 ) 以任务为核心的业务服务。它是封装特定任务或业务流程的业务逻 辑的服务。通常这种类型的服务在业务流程逻辑不是集中成为编排层部分时所 需要的。 ( 2 ) 以实体为核心的业务服务。它是封装特定业务实体的服务( 如一个 订单或发票等企业业务环境中的实体) 。以实体为核心的服务在于创建高可复 用性的服务,以及由包含编排层或以任务为核心的业务服务组合而成的与业务 流程无关的服务。 编排服务层引入了一个减轻对其他服务需求的抽象父层,来管理确信服务 9 西北大学硕士研究生学位论文第二章面向服务的体系结构及其相关技术 操作以特定的序列执行的交互。编排服务层包含一个或多个流程服务,以依照 流程定义内的业务规则与业务逻辑组合业务服务与应用服务。其中流程服务是 企业业务流程自身所表示成为的一个服务,流程服务需要组合其他服务以执行 业务流程。编排抽象了来自其他服务的业务规则和服务执行序列,促进了敏捷 性和复用性。同时,编排层的引入通常将新的中间件引入i t 基础设施,它会 显著增加成本和复杂性【1 1 1 。 编排的主要标准行业规范是w e b 服务业务流程执行语言b p e l 4 w s 。它能 够创建如w e b 服务调用、数据操纵、故障处理或终止某个流程等工作的不同 活动,然后将这些活动连接起来,从而创建出复杂的流程,以达到s o a 中服 务编排和整合的目的。 引入服务接口层后可以实现s o a 所承诺的可复用性、可组合性、自治性 等几大优点。其实几大优点有部分重叠,但又不完全重合,通过运用面向服务 的设计理念实现自治性,最大程度地减少对其他服务的依赖,把所有的逻辑都 控制在本服务所管辖的范围内,通过组合现有的服务,来达到可复用的目的。 以上介绍了在企业应用模型中的服务层,以及服务层的基本构成和相应层 的功能。正是因为在s o a 中引入了服务接口层才使其区别于以往的系统架构。 用于实现特定服务的流程并不重要,只要它能够响应服务请求者的命令并 使其提供高质量的服务就可以了。通过定义的通信协议可以调用服务来实现互 操作性和位置透明性。一个服务表现为一个软件组件,为从服务请求者的角度 来看,它就像是一个自包含的函数。然而,实际上服务实现可能包括在一个企 业内部的不同计算机上或者许多业务合作伙伴拥有的计算机上执行的很多步 骤。就封装的软件而言,服务可能是一个组件,也可能不是个组件。 服务的特征【1 2 1 可归纳如下: ( 1 ) 服务是软件实体。服务作为软件实体,通常为粗粒度的,对特定的 高层业务逻辑进行了封装,并向用户提供了有意义的功能。该软件实体应该是 长期稳定的。服务通常为粗粒度的,对特定的高层业务逻辑进行了封装,并向 用户提供了有意义的功能。 ( 2 ) s o a 中所有功能都定义为服务。这是面向服务的分析思想的基础。 这包括业务功能、由底层功能组成的业务事务和系统服务功能。 1o 西北大学硕士研究生学位论文第二章面向服务的体系结构及其相关技术 ( 3 ) 服务的接口是可调用的。在体系结构的层面上,它们究竟是本地的 在系统内还是远程的( 或直接在系统外) 、是用什么互连s c h e m a 或协议调用 或需要什么样的基础架构组件来连接,都是无关紧要的。 ( 4 ) 服务是底层逻辑的抽象。只有经由服务描述所暴露的部分服务对于 外部世界是可见的。服务描述之外所表达的底层逻辑是不可见的,且与服务请 求者无关。 2 1 4s 0 的原则 s o a 的关键目标是实现企业应用系统的最大化重用,使得企业应用摆脱面 向技术的解决方案的束缚,轻松应对企业商业服务变化、发展的需要。s o a 具 有以下原则9 】【1 3 】: 1 服务是可复用的 面向服务鼓励所有服务中的复用性,不管是否存在直接的复用性需求。通 过应用设计标准使得每个服务都具有潜在的可复用性,能够有机会适用未来需 求而不增加开发负担。内在的可复用服务也减少了对于创建暴露包装服务的需 求,包装服务通过暴露普遍接口而具备较少复用性的服务。 2 月艮务共享一个正式契约 服务之间为了交互,只需要共享描述每个服务信息交换术语定义的正式契 约。服务契约正式定义了服务、操作、面向服务架构的消息组件。因为服务契 约是服务间共享的,其设计就显得非常重要,同意某个契约的服务请求者会变 得对其定义有依赖。契约发布之后需要谨慎维护和修订。 3 月艮务的互操作性 服务间的互操作性指系统跨越不同平台和编程语言进行通信的能力。每一 个服务都提供可以通过连接适配器调用的接口,连接适配器由服务潜在客户能 够理解的协议和数据格式组成,支持标准协议和数据格式的技术通过将不同平 台特性和编程语言映射到一个中介规范来实现。例如:w e b 服务就是一个在不 同系统问通信的中介规范,j a x - r p c 和j a x m 将j a v a 数据类型映射到s o a p 。 4 服务是松耦合的 松散耦合是一个服务获知另外一个服务的同时依旧保持服务独立性的条 西北大学硕士研究生学位论文第二章面向服务的体系结构及其相关技术 件。对于服务来说,位置和接口定义( 包括数据类型定义) 组成了耦合。在s o a 中,服务提供者使用一种标准定义语言来定义和发布其服务接口。接口定义了 服务请求者和服务提供者之间的调用契约。只要服务接口保持一致,就可以修 改服务提供者的实现而不影响服务请求者的调用。 s o a 通过服务契约和绑定实现松散耦合,请求者通过第三方注册机制来获 得它所需要的服务信息,注册机制返回所有的符合条件的可用服务。请求者基 于注册机制提供的服务描述来选择合适的服务,通过传输机制与服务进行绑定 并调用其中的方法。服务请求者并不直接依赖服务的实现而是依赖服务契约。 5 服务的可发现和动态绑定 s o a 支持服务发现的概念,服务请求者需要在运行时根据一定的标准来发 现可用的服务,服务请求者查询服务注册机制来得到服务的位置信息。 6 服务抽象底层逻辑 服务抽象底层逻辑也称为服务接口层次抽象,允许将服务当作黑盒,对外 部世界隐藏其细节。 7 服务是可组合的 服务能够代表来自任何类型源的任何范围的逻辑,包括其他服务。服务应 该被设计为能够参与其他服务组合的有效成员。服务的组合性涉及到模块化结 构,模块化结构使服务可以被组装成开发者在设计服务时没有意识到的应用, 使用已经存在并测试好的服务模块大大提高了系统的质量以及开发效率。 8 服务是自包含的 服务所暴露的逻辑范围位于一个清晰的边界内,允许服务对所有的处理进 行自我管理。这消除了对其他服务的依赖。 9 服务是无状态的 服务应当尽量少地保存和管理状态信息,以及保持的持续时间。状态信息 是对当前活动的特定数据。无状态是推动服务复用性和可扩展性的首要条件。 2 1 5s o a 的优势 在企业级应用中采用面向服务的体系结构具有以下优势f 1 4 】: ( 1 ) 利用现有的资产 1 2 西北大学硕士研究生学位论文第二章面向服务的体系结构及其相关技术 s o a 提供了一个高层次的抽象层,通过这个抽象层,可以将业务构造成现 有服务的集合。使用这种新的服务只需要知道它的接口和名称,服务的内部细 节以及组成服务的组件之间的数据复杂性都对外界隐藏了。这种组件的匿名性 使组织能够利用现有的资产,从而通过合并构建在不同的机器上、运行在不同 的操作系统中和用不同的编程语言开发的组件来创建服务。组织可以继续从现 有的资源中获益,而不必重新构建系统。 ( 2 ) 更易于集成和管理 在面向服务的体系结构中,集成点是规范而不是实现。这提供了实现的透 明性,并将因为基础设施和实现发生的改变带来的影响降到最低限度。通过提 供针对基于完全不同的系统构建的服务规范,使应用集成变得更加易于管理。 特别是当多个企业一起协作时,这会变得更加重要。 ( 3 ) 更快的响应速度 利用现有的组件和服务,可以缩短软件开发生命周期( 包括收集需求、进 行设计、开发和测试) 。包含松散耦合的、可组合的、以及可互操作的和有复 用潜力的服务的标准化技术环境,可以建立更具适应力的自动化环境,从而提 高了企业适应业务变化的能力。 ( 4 ) 与技术的松散耦合 在基于s o a 的应用开发中,服务建模独立于服务的执行环境。通过构建 服务能够建立一个业务逻辑抽象和技术抽象,把业务逻辑与具体实现技术分离 开来,使企业应用彻底摆脱面向技术的解决方案的束缚。 ( 5 ) 有利于职责的划分 业务人员和技术人员分别关注业务问题和技术问题,两组人员通过服务契 约进行协同。 2 2w e b 服务 s o a 在w e b 服务出现之前就已经存在了,然而,没有更先进的技术比w e b 服务更适合表现s o a 。w 曲服务是广泛普及的、简单的和平台中立的。 w e b 服务并不是实现s o a 的惟一方式。通用对象请求代理体系结构 1 3 西北大学硕士研究生学位论文第二章面向服务的体系结构及其相关技术 ( c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e ,c o r b a ) 已经出现很长时间了, 其定义的概念与s o a 相似,同样面向消息的中间件( m e s s a g e o r i e n t e d m i d d l e w a r e ) 系统也是一种方式。 如图2 3 所示,基本的w e b 服务协议栈【1 5 】包含了s o a p 、w s d l 、u d d i 等支持服务请求者与服务提供者进行交互,以及用于w e b 服务发现的规范。 服务提供者通常用w s d l 来描述它所提供的w e b 服务,然后将该w s d l 描述 发布;服务请求者可以通过u d d i 或其他注册库来获取w s d l 描述,并通过向 服务提供者发送一个s o a p 消息来请求执行服务。基本的w e b 服务标准,已 经适于构建基本s o a 的应用了,但还不足以构建其他应用。 w 汛臣垂习 一- 叵因 w 眦臣垂习 s o a p 至 一叵 一 服 、安 管务 全 理质 量 图2 - 3 基本的w e b 服务协议栈 除基本的w e b 服务规范( s o a p 和w s d l ) 以外,其他各种用于安全性 ( s e c u r i t y ) 、可靠性( r e l i a b i l i t y ) 、事务性( t r a n s a c t i o n s ) 、元数据管理( m e t a d a t a m a n a g e m e n t ) 及服务编$ 1 ( o r c h e s t r a t i o n ) 等方面的补充w e b 服务规范也正在标 准化的过程之中,这些都为基于s o a 的解决方案提供了必须的企业级服务质 量,以支持各类任务关键型、企业级的项目。下面几节将对w e b 服务协议栈 中的相关协议进行研究。 可扩充标记语言( 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 ) 标准是一个基于文本 的w 3 c 规范的标记语言【1 6 】。与h t m l 使用标签来描述外观和数据不同,x m l 1 4 西北大学硕士研究生学位论文第二章面向服务的体系结构及其相关技术 严格地定义可移植的结构化数据。它可以作为定义数据描述语言的语言,例如 标记语法或词汇、交换格式和通讯协议和契约等。 x m l 作为一种标记语言,有以下特点: 1 ) 可扩展性:标记是面向内容的,用户可以自定义所需要且有实际意义的 标记。 2 ) 具有结构化特性:x m l 文档的实现是一种树形的结构,通过标签的嵌套, x m l 可以描述任意层次的文档结构。 3 ) 内容与表示的分离性:x m l 文档只是对内容的描述,它的外观则需要通 过x s l ( x m l 模式语言) 来描述。 4 ) 平台无关性:x m l 是一种自描述的语言,数据本身包含了元数据。另外, x m l 是基于纯文本的语言,能够被各种平台支持。在面向服务的体系结构中 的关键问题就是服务如何描述,服务描述的重点是要让服务请求者能够更好的 理解服务。在服务描述中,x m l 模式是基本数据类型的机制,所有服务描述 技术都使用x m l 来表示。s o a 中服务的许多强大的功能均来自x m l 的强大 能力。 2 2 2w s d l w e b 服务描述语言【1 7 】( w e bs e r v i c e sd e s c r i p t i o nl a n g u a g e ,w s d l ) 是一个 提供描述服务i d l ( 接口定义语言) 标准方法的x m l 词汇,它是理解s o a 中 服务的关键,也是服务设计相关的最基础的技术标准。w s d l 是融合 n a s s l ( m ) 和s d l ( m i c r o s o f t ) 之间的活动产物,它为服务提供者提供了描述 远程方法调用( r m i ) 的请求消息和响应消息的格式的一个简单方法。w s d l 不 依赖于底层的协议和编码要求,它是一种抽象的语言,利用各自的参数和数据 类型来定义被发布的操作。该语言还涉及了服务的位置和绑定细节的定义,开 发者用w s d l 描述一组s o a 中服务所支持的操作,包括:操作输入和输出所 期望的对象类型,具体网络的格式约定,以及数据编码的方案,这一层构成了 服务接口的核心定义。w s d l 文档类型还可以帮助在u d d i 注册中心发布和查 找服务描述,w s d l 文档被分为两种类型:服务接口( s e r v i c ei n t e r f a c e ) 和服 务实现( s e r v i c ei m p l e m e n t a t i o n s ) 。 1 5 西北大学硕士研究生学位论文第二章面向服务的体系结构及其相关技术 服务接口由w s d l 文档来描述,这种文档包含服务接口的t y p e s 、i m p o r t 、 m e s s a g e 、p o r t t y p e 和b i n d i n g 等元素。服务接口包含将用于实现一个或多个服 务的w s d l 文档定义,它是w e b 服务的抽象定义,并被用于描述某种特定类 型的服务。通过使用一个i m p o r t 元素,一个服务接口文档可以引用另一个服务 接口文档。例如,一个仅包含

温馨提示

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

评论

0/150

提交评论