博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《SOA Web Service合约设计与版本化》目录—导读
阅读量:6620 次
发布时间:2019-06-25

本文共 10527 字,大约阅读时间需要 35 分钟。

c7b70f03b0f6d6998d9acdc627b5baed6707b5bf
版权声明
SOA Web Service合约设计与版本化
Authorized translation from the English language edition, entitled Web Service Contract Design and Versioning for SOA, 978-0136135173 by Thomas Erl, Anish Karmarkar, Priscilla Walmsley, Hugo Haas, Umit Yalcinalp, Canyang Kevin Liu, David Orchard, Andre Tost, James Pasley, published by Pearson Education, Inc, publishing as Prentice Hall, Copyright © 2009 SOA Systems, Inc.

All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc. CHINESE SIMPLIFIED language edition published by PEARSON EDUCATION ASIA LTD., and POSTS & TELECOMMUNICATIONS PRESS Copyright © 2010.

本书封面贴有Pearson Education(培生教育出版集团)激光防伪标签。无标签者不得销售。

内容提要

SOA Web Service合约设计与版本化
本书首先简要回顾了SOA与面向服务的基本概念和关键目标,然后着重阐述了与Web服务合约的设计和演化相关的各种话题。主要内容包括WSDL、SOAP、XML Schema、WS-Policy以及消息设计的相关技术(SOAP和WS-Addressing)。本书着重在SOA的上下文中论述Web服务合约技术,并且介绍了可以用于合约设计和版本化的各种设计模式。本书同时还提供了许多代码示例,可以帮助读者从实际案例中掌握如何在实践中运用相关的技术和原则。通过阅读本书,读者不仅可以学到在SOA中Web服务合约设计与版本化的基本技术,并且可以深入理解如何构建Web服务合约来支持面向服务。

本书作者包括了来自SOA、Web服务技术、服务合约设计以及服务版本化和治理等领域的顶级专家学者。其中主要作者Thomas Erl是业界公认的SOA领袖,本书以及他的其他著作被许多著名跨国公司的资深专家誉为“必备的SOA参考书”。

本书的读者对象是对面向服务架构、Web服务技术和服务合约版本化感兴趣的IT开发人员、分析师与架构师。

作者简介

SOA Web Service合约设计与版本化
Thomas Erl

Thomas Erl是世界上最畅销的SOA图书的作者,也是Prentice Hall出版的“Thomas Erl面向服务计算系列”丛书的系列编辑,同时还是SOA杂志()的编辑。他的书在全世界印刷了超过十万册,并且得到了很多大型软件组织资深成员的认可,其中包括IBM、Microsoft、Oracle、BEA、Sun、Intel、SAP和HP。

在他出版了该丛书的前3本,也就是Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services、Service-Oriented Architecture: Concepts, Technology, and Design(中译版《SOA概念技术与设计》)和SOA: Principles of Service Design(中译版《SOA服务设计原则》)()之后,又与多位业界知名专家合著了最新的两本书:SOA Design Patterns()与本书。

Thomas Erl同时也是SOA Systems Inc.()的创始人,这是一个专门进行SOA培训、提供厂商无关的策略咨询服务的公司。Thomas还是国际知名的SOA认证专业人员项目的创建人()和()。Thomas是一个经常参与私人和公众活动的演说家和讲师,并且主办了很多讨论会和主题演讲。Thomas所著的论文和接受的采访发表在很多期刊上,其中包括《华尔街期刊》。

想要获取更多信息,请访问。

Anish Karmarkar

Anish Karmarkar博士是Oracle公司的技术咨询成员,也是负责SOAP、Web服务和Java规范的标准与策略组成员。他在分布式系统与协议的诸多领域拥有17年的研究、开发与标准化经验。

Anish是许多Web服务标准的共同编辑,其中包括SOAP 1.2、WS-ReliableMessaging、WS-ReliableMessaging Policy、WS-MakeConnection、WS-I Basic Profile、WS-I Reliable Secure Profile、WS-I Attachments Profile、Resource Representation SOAP Header Block(RRSHB),等等。他还是服务构件架构(SCA)规范集的共同编辑,其中包括SCA组装模型、SCA Web服务绑定,以及各种与Java相关的SCA规范。

作为各种Web服务和SOA有关的W3C、OASIS、JCP(Java Community Process)以及面向开放服务的架构(OSOA)协会中的工作组、技术委员会和专家组中的活跃参与者和始创成员,他在Web服务和SCA标准与规范的发展中扮演了一个举足轻重的角色。

从2006年以来,Anish担任OSGi联盟的董事会成员,OASIS SCA BPEL技术委员会的联合主席,以及Oracle在JCP的“Big Java”执行委员会上的轮值代表。他还担任WS-I Basic Profile工作组的副主席。他在1997年获得Texas A&M大学的计算机科学博士学位。

Priscilla Walmsley

Priscilla Walmsley是Datypic公司的软件咨询师和常务董事,该公司主要从事XML架构与实现技术。她曾帮助大大小小的组织设计与实现了各种与XML有关的项目,包括Web服务、企业应用集成、内容管理、可搜索内容库、大规模数据会话以及Web出版等。她拥有15年的咨询师、软件架构师、数据架构师和开发经验。她曾任职于RELTECH Group、Platinum technology、XMLSolutions Corporation(作为VP和共同创始人)和Vitria Technology。

Walmsley在1999—2004年担任W3C XML Schema工作组的成员,作为其中的受邀专家。她还是W3C XML Schema Patterns for Databinding工作组的成员。她曾经出版的著作包括Definitive XML Schema和XQuery。另外,她还与Charles Goldfarb共同写作了XML in Office 2003。

Hugo Haas

Hugo Haas在法国的阿尔卑斯山中长大。他在法国的Ecole Centrale Paris学习工程学,并在英格兰的剑桥大学学习计算机。做学生的时候,他参与了VideoLAN视频流式执行项目的创建,该项目创造了很受欢迎的VLC媒体播放器,他还对Debian GNU/Linux项目做出了积极的贡献。

在加入美国麻省剑桥的麻省理工学院(MIT)的W3C技术团队之前,Hugo在英格兰的Hemel Hempstead的3Com公司工作。在万维网联盟(World Wide Web Consortium),他领导了Web Services Activity,并且参与了SOAP 1.2、WSDL 2.0和WS-Addressing 1.0的设计。

他是Common User Agent Problems文档的主要作者,该文档被多种浏览器厂商采用来解决它们在实现中遇到的问题。他还是W3C Web服务架构及其词汇表以及WSDL 2.0的编辑之一,

Hugo曾在多个国家(包括澳大利亚、巴西、法国、日本、瑞典、美国等)的无数会议上做过主题演讲与讲座,其中包括国际万维网会议(International World Wide Web conference)、IEEE欧洲Web服务会议、IDGWeb服务会议以及IDEAlliance XML USA和XTech会议。

他现在任职于Yahoo!公司,担任Web服务平台架构师,从事以一种可靠、安全、可复用与可互操作的方式来暴露使用基于HTTP的服务功能的指导原则与工具。

Hugo与他的妻子Nicole一起生活在加州。当他远离电脑的时候,他通常会玩弄一些电子小发明,聆听音乐,摄影,与狗一起跑步,或者观看欧洲足球比赛——有时候会同时做所有的这些事情。

Umit Yalcinalp

L. Umit Yalcinalp是SAP Labs的一名研究架构师。她现在领导的团队在研究面向关注SOA和Web 2.0的企业系统的未来技术。她是多篇技术论文与规范的作者,好几种标准的编辑,以及多个会议上的演讲者。她对W3C、JCP和OASIS的各种SOA相关规范做出了积极的贡献,其中包括(但不限于)WS-Policy、SCA Policy、WS-ReliableMessaging、WS-Addressing、WSDL 2.0和Enterprise Java Beans 2.0。她曾经在凯斯西储大学获得了计算机科学博士学位。

Canyang Kevin Liu

Canyang Kevin Liu是位于加州Palo Alto的SAP公司的创新实验室的解决方案架构经理,主要关注利用SOA和SAP NetWeaver技术的创新解决方案。作为一个拥有多年企业业务应用经验的架构师与SOA的长期拥趸者,Kevin曾经帮助组建了许多Web服务技术标准,其中包括WSDL、WS-BEPL、WS-I Basic Profile以及RosettaNet Web Service profiles。

David Orchard

Andre Tost

Andre Tost供职于IBM软件部门,担任资深技术组成员,他主要负责为IBM全球客户提供如何建立面向服务架构的咨询。他的具体关注点是Web服务、企业服务总线与业务流程管理技术。在职期间,他与全球许多客户一起领导了很多成功的SOA项目。在担任现职之前,他在IBM软件开发部门充当了10年的技术支持、开发与架构师的角色,从事的工作主要与WebSphere产品族有关。

Andre在全球多个业界会议上做过与SOA相关话题的讲座,并且经常发表文章与论文。他还是多本与Web服务和相关技术有关的图书的共同作者。

Andre出生于德国,现在明尼苏达州的Rochester生活与工作。在闲暇时间,他喜欢与家人一起,并且尽可能抽时间踢足球和看比赛。

James Pasley

James Pasley是Workday公司的Integration On Demand团队的一名架构师。James的专长是Workday公司的集成架构的客户相关领域,比如Workday的公共Web服务。James是Workday的开发者网站的编辑,另外还为Workday集成相关的培训课程的建设提供了许多材料。James是通过收购Cape Clear Software而加入Workday的。

James在2001年加入Cape Clear Software,担任开发人员经理。在2003年,他被任命为Cape Clear的首席架构师,负责Cape Clear公司的企业服务总线的开发。在2005年,James成为Cape Clear Software公司的首席技术官。Cape Clear被Gartner and Forrester认可为领先的企业服务总线提供商,可以交付经过验证的按需集成的可靠性、可伸缩线与性能,并支持使用Web服务技术与Internet上的任意内容、服务或软件进行连接。

在加入Cape Clear Software之前,James在Siemens Nixdorf工作,负责为许多产品开发安全的X.400通信技术与公钥基础架构(PKI)解决方案。

James与他的妻子Patricia以及孩子Rebecca、James、Robert、Hannah、Alyssa一起生活在爱尔兰的Leixlip。他毕业于都柏林的Trinity College,获得计算机科学的学士学位。

献 辞

SOA Web Service合约设计与版本化
“献给我的家人,感谢他们的持续支持。”

——Thomas Erl

“献给我的家人:Aai、Baba、Chetan、Swati、Sidsel和Leena。是他们让本书成为可能,并且让我生命中的一切变得有意义。”

——Anish Karmarkar

“献给我挚爱的Doug。”

——Priscilla Walmsley

“献给我的妻子Nicole,感谢她的支持。”

——Hugo Haas

“献给我的姐姐,Isik Boran。”

——Umit Yalcinap

“献给我的孩子,Julia和Mark,是他们让我的人生变得更有意义。”

——Canyang Kevin Liu

“我要感谢我的妻子Silke和我的儿子Marc和Jonas,感谢他们多年来对于我包括撰写本书在内的各项工作所付出的持之以恒的帮助、支持与理解。”

——Andre Tost

“献给我的妻子Patricia和我们的孩子Rebecca、James、Robert、Hannah和Alyssa。”

——James Pasley

对本书的赞誉

SOA Web Service合约设计与版本化
“本书是一部关于Web Service设计与SOA的新的经典。该书的组织方式使得初学者、专家和高层主管都能够理解并成功实施SOA的策略。Thomas Erl和他的写作团队又完成了一项卓越的工作。”

——Sascha Kuhlmann

全球项目首席企业架构师,SAP

“本书紧跟在本领域最好的一本书SOA Principles of Service Design(中译版《SOA服务设计原则》)之后,对服务合约和接口设计进行了绝佳的深入探讨。在过去的数年中,Thomas的书为定义SOA标准(其中包括了超过200个服务)提供了很好的基础,并且包含了最新的材料与案例研究,对于有志于实现大规模SOA的人士来说,这些内容一起构成了独一无二的最重要的信息来源。”

——Bob Hathaway

Starwood酒店集团SOA对象系统资深SOA架构师

“任何以‘合约优先’方式来发布和演化Web服务的人都会喜欢这本书,本书包含了真正理解这些内容的作者所提供的权威解释与建议。”

——Paul Downey

BT首席Web服务架构师

“对于想要全面理解基于Web服务的面向服务架构技术基础的任何人来说,本书是绝佳的参考书。它是由参与制定这些全球标准的专家所撰写的。”

——Michael Bechauf

SAP AG标准策略和开发者项目副总裁

“本书是一部设计Web服务合约的最佳指南。作者对现实世界中的SOA项目中可能会遇到的合约设计的所有问题都给出了清晰的深入讲解。无论你关心的是命名空间、版本化机制、模式还是策略,本书都会告诉你如何去处理。

“对于每个参与SOA项目的架构师和开发人员都是绝对必读的。”

——Linda Terlouw

Ordina解决方案架构师,Delft理工大学(荷兰)研究员

“本书对组成经典Web服务描述的5个W3C规范(XML Schema、SOAP、WS-Policy和WS-Addressing)都进行了清晰、权威和集中的介绍。它的作者中包括了开发这些规范的委员会成员,以及知名的领域专家。

“本书对于刚刚开始寻求Web服务设计技巧的开发人员是很好的入门读物,同时对于有经验的设计人员来说,要想更好地理解这个主题中的很多细节,它也是一本参考书。书中关于设计灵活消息格式和版本化合约的高级内容,对于构建可以随时间进行稳定演化的Web服务是非常重要的。”

——Arthur Ryman

IBM杰出工程师(Distinguished Engineer)

“随着面向服务正在许多组织中展现它们的能力,服务合约必须能够胜任逐渐成熟的面向服务企业的演化。本书中提供的专家级设计建议使得企业架构师可以把灵活性构建到服务接口中去,以满足不断变化的现代技术组织的需求。

“从WSDL和模式设计到高级的WS-Policy和WS-Addressing,本书作者把复杂的话题简化为实用的、直白的例子,这使得任何负责服务设计和发布的人员都从中受益颇丰。”

——Kevin P. Davis, Ph. D.

软件架构师

SOA Web Service合约设计与版本化
我经常对人讲,通过阅读Web服务的规范集(WS-*)来学习Web服务,就好比有人试图通过阅读韦伯斯特大辞典来学习英语一样。这是因为每个概念、每个术语都是用其他的术语来定义的,而对于在定义中出现的这些术语我们却也还知之甚少,这样做的结果就会最终造成循环定义。一个人怎么可能通过这种方式来有效地学习一种语言呢?

经过近十年的努力,WS-*规范作为整个产业界共同努力的产物,采用了XML和XML Schema作为手段来定义可互操作的接口、传输协议与元数据。这些规范被特意地划分成很小的原子单元,商业企业或者开源组织可以在它们所提供的独立应用或基础构架中实现这些原子单元,从而可以降低采用SOA的难度,并使得我们距离完全与平台无关的可互操作性都更近了一步。这些原子单元还可以相互组合到一起来使用。但是这要怎么做呢?

凭心而论,这些WS-*规范已经可以把自己解释得足够清晰:如果花费足够多的时间用心研读,那么不需加以说明也可以大致理解每条规范的含义。而当你不得不去对付无休止的术语和三角括号的时候,最终还是会让你觉得厌烦,并因此会达到某个临界点,影响你对其内容的基本理解。

掌握WS-*规范的目标,并且在实现中使用它们作为参考只是最初级的知识。事实上,目前大多数程序员和架构师都会对其中最常见的3种(WSDL、XML Schema和SOAP)很熟悉。然而,这并不意味着使用这些规范就会非常直观明了。还有在这些规范中的其他标准吗?我上次统计的时候,这些规范有50种之多。这些标准可以放在一起来学习吗?一个人如何才能对所有这些规范进行分类,并找到哪种规范是最重要、最需要加以重视的?哪种规范如果采用得当会对他们的组织产生最大的影响?如果使用不当,又会产生什么后果?即使这些细节被部分地隐藏在一个SOA平台的背后,但是我们还是需要考虑一些架构级的问题。

下面谈谈本书的内容。本书所讲解的是:为支持SOA和面向服务来设计与治理Web服务合约的技术和实践。本书的作者都是专家,并且曾为WS-规范的创建和发展做出过巨大贡献。本书展示了最相关的Web服务合约技术可以如何一起作为一个框架来工作,而在经过工作组、技术委员会、专家组和子委员会的无数电话会议和面对面会谈之后,这些洞见往往会被遗忘在某个“剪接室”的地板上。本书还会进一步帮助读者理解这些WS-技术如何能最好地得以利用和演化,以支持SOA与面向服务。

本书为读者提供了对各种不同WS-技术的常见含义,主要关注于服务合约、服务版本管理、策略管理和SOA治理,以便使读者可以充分利用属于现代WS-平台一部分的全部功能。本书探讨了许多标准化互操作消息交互模式的优缺点和正确使用方法,以及如何更好地利用WS-Addressing。另外,本书提供了关于治理话题的深入讨论,特别是同服务合约设计、服务版本管理以及服务策略相关的内容。对于何时及如何设计同XML Schema与WS-Policy语句巧妙结合的WSDL操作,以便生成可以进行有效版本化的服务合约,本书也提供了一些观点和指南。

希望你会喜欢本书的内容。你的SOA项目可能已经展开了,或者刚刚要开始。你在为你的企业构建新的架构,期望可能会在未来数十年仍然可用。很多年的辛勤努力才造就了现在的WS-*规范集,本书会帮助你从这些努力中获益,创建真正松散耦合和灵活的服务合约,并将对你的企业可能会产生的负面影响降到最低。

——David A. Chappell,

互操作、SOA和企业服务总线的技术专家,曾发表多部著作和论文

前 言

SOA Web Service合约设计与版本化
在我们完成了本书原稿之时,我查看了一下我们的进度表,注意到我们最初开始的日期。从告诉所有人可以开始行动的最早的那些电话算起,到我们把书稿交给Prentice Hall的那一天,总共经过了大约32个月的时间。我最初并没有对这个时间感觉有什么特别,因为我早就知道这个项目需要两年以上才能完成。但是当我在一段时间之后再回头看到这个数字的时候,深有感触。

本书从构想到写作的时间,事实上相当于本书中所涉及的基于XML和Web服务的几个技术规范从最初开发到成为被完全批准的标准所花费的时间。

虽然这种对比貌似很古怪,但它并不能真正说明问题。这些技术标准所必须采用的开发过程完全位于不同的层次,因为它们无论从人还是技术的角度来看都极其复杂。

这里面有人为的因素,来自于接到任务负责标准创作的技术委员会。这样一个委员会的组成人员会有不同的议程、不同的观点和不同的个性。因此所有这些不同点都会在一个标准开发过程中引入各种不同的团队气氛,从很强的团队合作,到互相挑剔、对立甚至于争吵的阶段。试图在一个活跃的技术委员会中取得一致意见,绝对不是心脏不好的人所能胜任的。

另外还有技术因素在里面,这反映在委员会所创作的标准中。技术规范都会采用非常谨慎的结构和用词,并且经过持续的、耐心的、有时候冗长到让人麻木的反复修订和改写。但是即使人们都尽力了,要创造一种新的语言或者词汇表,满足整个产业界日益提高的需求和期望依然是一个难以完成的任务。更不用说总有一种可能性会存在,那就是一个委员会花费了小半辈子编写的某个标准,很可能会由于另外一个竞争工作的存在而黯然失色,甚至于可能会被产业界彻底抛弃。

然而在所有这些挑战之中,我们还是看到许多成功的故事。在某种方式上,本书就是这样的一个成功故事,它讲解了很多令人尊敬的和广泛采用的事实标准,这些标准自身都已经成为了重要的IT里程碑。然而,本书最终是写给读者的。它告诉读者如何充分利用这些技术标准所能提供的好处。无论这些技术看起来是多么成功,最后真正有意义的是:它们对于你来说是不是真正有效。

——Thomas Erl

致谢

作者要特别感谢如下审阅者,他们为本书付出了大量宝贵的时间,提出了很多专家级的意见(按姓名字母顺序排列):

Michael Bechauf Martin Gudgin

David Booth Bob Hathaway

Glen Daniels Sascha Kuhlmann

Kevin P. Davis Martin Little

Paul Downey Arthur Ryman

Florent Georges Linda Terlouw

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

目录

前言
第2章 案例研究背景
第1部分 基本服务合约设计
第3章 SOA基础和Web服务合约
第4章 Web服务合约剖析
第5章 关于命名空间的简明指南
第6章 基本XML Schema:类型和消息结构基础
第7章 基本WSDL(一):抽象描述设计
第8章 基本WSDL(二):具体描述设计
第9章 基本WSDL 2.0:新特性与设计选项
第10章 基本WS-Policy:断言、表达式与附加项
第11章 基本消息设计:SOAP信封结构、故障消息与报头处理
第2部分 高级服务合约设计
第12章 高级XML Schema(一):消息灵活性、类型继承与组合
第13章 高级XML Schema(二):可复用性、关系设计与业界模式
第14章 高级WSDL(一):模块化、可扩展性、MEP与异步
第15章 高级WSDL(二):消息分发、服务实例标识与非SOAP的HTTP绑定
第16章 高级WS-Policy(一):策略集中化与嵌套、参数化和可忽略的断言
第17章 高级WS-Policy(二):定制策略断言设计、运行时表示与兼容性
第18章 高级消息设计(一):WS-Addressing词汇表
第19章 高级消息设计(二):WS-Addressing规则与设计技巧
第3部分 服务合约版本化
第20章 版本化基础
第21章 WSDL定义的版本化
第22章 消息模式的版本化
第23章 高级版本化
第4部分 附 录
附录A 案例研究总结
附录B 技术标准的制定过程
附录C C伪模式列表
附录D 本书用到的命名空间与前缀
附录E 与本书有关的SOAP设计模式

你可能感兴趣的文章
Tomcat配置日志生产功能
查看>>
移植Qt与Tslib到X210开发板的体会
查看>>
Nginx + webpy 和FastCGI搭建webpy环境
查看>>
修改页面JS 360浏览器
查看>>
Git 跟 GitHub 是什么关系?
查看>>
IE6下jQuery选中select的BUG
查看>>
Tensorflow在win10下的安装(CPU版本)
查看>>
一次优化记录
查看>>
cgroup代码浅析(2)
查看>>
会计的思考(42):会计如何转变为公司的内部财务顾问
查看>>
利用钥匙串,在应用里保存用户密码的方法
查看>>
vuex状态管理详细使用方法
查看>>
不要等有了足够的钱才选择去创业!!!
查看>>
手把手教你画嘴巴,以后再也不怕画嘴巴了
查看>>
selenium - webdriver - 截图方法get_screenshot_as_file()
查看>>
io.lettuce.core.RedisCommandTimeoutException: Command timed out
查看>>
种子填充算法描述及C++代码实现
查看>>
Kali渗透测试——快速查找Metasploit的模块
查看>>
如何生成项目的chm文档
查看>>
java封装httpClient工具(支持http和https,包含get和post请求)
查看>>