写点什么

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:062890
用户头像

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

关注

评论

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

百度智能云发布零碳园区解决方案,助力实现双碳目标

百度大脑

人工智能

一年又要过去了!盘点2021年区块链的6个关键词

CECBC

有趣的灵魂万里挑一:从智能座舱看汽车进化史

脑极体

架构实战营:模块三作业

Geek_93ffb0

「架构实战营」

Git基础 |打tag

xcbeyond

git 28天写作 tag 12月日更

【架构实战营】模块三:命题作业

wgl

「架构实战营」

阿里巴巴超大规模 Kubernetes 基础设施运维体系揭秘

阿里巴巴云原生

阿里云 Serverless Kubernetes 云原生 ASI

一口气搞懂【Linux内存管理】,就靠这60张图、59个问题了

奔着腾讯去

内存泄露 内存管理 Linux Kenel 内存映射 内存池

架构实战 模块三作业

mj4ever

架构实战

元宇宙很好,但VR开发者不准备停留在这里

白洞计划

费用节省 50%,函数计算 FC 助力分众传媒降本增效

阿里巴巴云原生

阿里云 云原生 合作 函数计算FC 分众传媒

架构实战营 - 模块 3 - 作业

Pyel

「架构实战营」

深入理解一下Python中的面向对象编程

宇宙之一粟

Python 面向对象 12月日更

瞰见 | 开源,会不会变成开源创业的焦油坑?

OpenTEKr

狄安瞰源

Hoo研究院币 | 币海寻珠——加密行业即将到来的发售事件

区块链前沿News

加密货币 虎符 虎符交易所

VS Code 如何设置大小写转换快捷键

AlwaysBeta

vscode

从人工到智能!百度AI开发者大会分论坛,探寻国球乒乓背后的AI之路

百度大脑

人工智能

一周信创舆情观察(12.20~12.26)

统小信uos

LabVIEW图像增强算法(基础篇—5)

不脱发的程序猿

机器视觉 图像处理 LabVIEW 图像增强算法

架构实战营模块三作业

lchx08

「架构实战营」

外包学生管理系统详细设计文档

糖糖学编程

架构实战营

Golang中文件的基本操作

liuzhen007

Go 28天写作 Go 语言 12月日更

阿里云王志坤:强劲可靠、无处不在的云,为创新保驾护航

阿里云弹性计算

弹性计算 年度峰会

架构实战营4期-模块3作业

木几丶

「架构实战营」

引领人工智能技术自立自强 百度吴甜获评“首都最美巾帼奋斗者”

百度大脑

人工智能「

学习总结 2021.12.30

mj4ever

学习笔记

百度飞桨EasyDL桌面版正式上线,没网也能训练AI!

百度大脑

人工智能

第三周学习总结

糖糖学编程

架构实战营

最近火热的web3到底是什么?

石云升

区块链 28天写作 12月日更 web3

【架构实战营】模块三:知识点总结

wgl

「架构实战营」

详细架构设计文档

Anlumina

#架构实战营

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