写点什么

Web 服务契约的版本控制

  • 2009-12-08
  • 本文字数:1143 字

    阅读完需:约 4 分钟

今天,我们介绍这本由 Thomas Erl、Anish Karmarkar、Priscilla Walmsley、Hugo Haas、L. Umit Yalcinalp、Canyang Kevin Liu、David Orchard、Andre Tost 和 James Pasley 编著的“《针对 SOA 的 Web 服务契约设计和版本控制》”。更确切的说,是这本书的第 20、21 和 22 章,它们说明了跟服务契约版本控制相关的问题。

下载地址《针对 SOA 的 Web 服务契约设计和版本控制》——第 20、21 和 22 章——服务契约的版本控制(PDF)

在基于 SOA 的解决方案中,Web 服务需要详细的技术契约,它们清楚地指出了每个服务的功能和使用方式。由于服务会随着时间而变化,契约的设计者需要确保服务消费者使用合适的契约变种,该问题可以通过版本控制来解决。

第 20 章:版本控制的基础

在本章中,作者叙述了版本控制中使用的基本概念和术语,要解决的兼容性问题,如何使用版本标识符,以及几个可供选择的版本控制策略。

由于 Web 服务契约可以由多个文档(WSDL 定义、XML 模式定义、WS-Policy 定义)构成,版本控制应该适用于在契约改变时改变的所有文件。通常情况下,WSDL 的版本控制会被考虑,但是变更也可能出现在 XML 模式定义中,因而它们同样需要版本控制。

有四种需要考虑的基本变更类型:向后兼容、向前兼容、兼容和不兼容。这部分通过实例对每种变更类型进行了解释。

接下来的章节介绍了最常用的版本控制标识符和版本控制策略。这三个策略是:

  • 严格:任何兼容或不兼容的变更都会产生一个新的服务契约版本。这种方式不支持向后兼容和向前兼容。
  • 灵活:任何不兼容的变更会产生一个新的服务契约版本,契约被设计成支持向后兼容,但不支持向前兼容。
  • 宽松:任何不兼容的变更会产生一个新的服务契约版本,契约被设计成同时支持向后兼容和向前兼容。

第 21 章:对 WSDL 定义进行版本控制

在这一章中,作者使用“变更的意义”和documentation元素来解决 WSDL 定义文件的版本控制。除了对整个文档进行版本控制,这本书中还包含了对操作定义、端口类型定义和具体描述(concrete descriptions)进行版本控制的实例。

第 22 章:对消息模式进行版本控制

服务契约包含的 XML 模式定义描述了在服务使用时交换的基本输入、输出和错误消息。因此,作者认为,XML 模式定义最有可能经常变更,需要版本控制。

本章解释了,什么是 XML 模式组件,它们的内容集,增加 / 删除 / 重命名 / 修改组件的影响,以及它们跟版本控制的关系。作者还解释了变更 XML 模式的目标命名空间会如何影响 WSDL 的目标命名空间,以及在这种情况下,如何应用严格、灵活、宽松的版本控制策略。


关于此书的详细信息,请浏览: informit.com/soa soabooks.com

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2009-12-08 03:062945
用户头像

发布了 255 篇内容, 共 65.3 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

架构师(week1)总结

满山李子

原创 | TDD工具集:JUnit、AssertJ和Mockito (二十)编写测试-参数化测试

编程道与术

Java 学习 编程 TDD 单元测试

极客时间<<架构师训练营>>第一周作业

好名字

极客大学架构师训练营 作业 第0期

中台迷局丨只做IT的中台是个神棍

人称T客

微服务架构中分布式事务实现方案怎样何取舍

奈学教育

S型曲线 - 第一曲线

石云升

S型曲线 第一曲线 连续性创新

第一周总结 - 架构文档

孙志平

课后总结-20200606

caibird1984

架构师训练营第1周——学习总结

在野

极客大学架构师训练营

SaaS:小企业向左、大企业向右

人称T客

JDK 15 JAVA 15的新特性展望

程序那些事

Java JVM Java 25 周年 新特性

如何设计电商行业亿级用户秒杀系统

奈学教育

大数据

日志标准化解析的关键内容

secisland

日志 态势感知 关联分析 解析规则 标准化

架构方法论学习总结

java程序员从小工到专家成神之路(2020版)

程序那些事

Java 学习 Java 25 周年

架构师训练营-架构方法:架构师如何做架构

Pontus

极客大学架构师训练营

陆强作业

Mr.Monkey

学习总结

Mr.Monkey

「架构师训练营」第1周学习总结

guoguo 👻

极客大学架构师训练营

LeetCode | 3. Roman to Integer 罗马数字转整数

Puran

算法 LeetCode arts

ARTS week 04

刘昱

游戏夜读 | 研发运营怎么分成?

game1night

ARTS Week 1

黑色柳丁

ARTS 打卡计划

极客架构师训练营第一周

大丁💸💵💴💶🚀🐟

架构第一周-学习总结

J.Smile

极客大学架构师训练营

陈虻语录(摘)

YoungZY

读书

食堂就餐卡系统架构设计

武鹏

第一周学习总结:

武鹏

当选择越来越多,我们为什么反而越来越不开心

董一凡

生活 情感

你现在极有可能是一个「铁锤人」

非著名程序员

读书笔记 程序员 提升认知 认知提升

微服务架构中分布式事务实现方案怎样何取舍【转发】

古月木易

微服务

Web服务契约的版本控制_SOA_Thomas Erl_InfoQ精选文章