写点什么

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

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

关注

评论

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

报名仅剩一周!课程直播和1V1指导助力文心一言插件开发赛事冲榜

飞桨PaddlePaddle

插件开发 文心一言 开发者插件

模块一作业

闻明杨

架构实战营

软件测试/人工智能丨视觉与图像识别在自动化测试领域的应用

测试人

人工智能 软件测试

区块链开发公司

区块链技术

mac电脑音乐创作软件Ableton Live Suite 11中文破解版下载

iMac小白

影视行业如何远程完整快速传输大文件?

镭速

传输大文件

AI,正在「整顿」企业面试

用友BIP

企业app软件定制开发的重点是什么?|小程序网站搭建

Geek_16d138

网站建设 小程序开发 app定制开发

矢量图形编辑软件Sketch for mac完美破解版下载

iMac小白

科创人·蓝凌董事长杨健伟:夯实“四梁八柱”,让数字化“城中村上建高楼”

科创人

数字化转型 企业家精神

3D建模工具Archicad 26 完美激活版下载

iMac小白

EndNote 21更新 最新EndNote 21mac破解版下载 支持MacOS14

iMac小白

Util应用框架基础(七)- 本地缓存

何镇汐

开源 后端 .net core

Util应用框架基础(七)- Redis 缓存

何镇汐

开源 后端 .net core

关联规则挖掘:Apriori算法的深度探讨

不在线第一只蜗牛

Python 大数据 算法

如何将Docker的构建时间减少40%

高端章鱼哥

Docker 镜像

Logic Pro X for Mac v10.8.0中文直装版下载

iMac小白

Permute 3 for mac(音视频转换器) 3.11.2中文版

iMac小白

Camunda、Activiti、Flowable等各大工作流对比选择

小狗围观科幻

企业软件定制开发的重点是什么?|app小程序网站建设

Geek_16d138

APP开发 软件定制

IBM SPSS Statistics mac激活破解版下载

iMac小白

Past for mac好用的苹果电脑剪切板工具下载

iMac小白

手把手入门MO | 如何使用SeaTunnel将数据写入MatrixOne

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne 超融合数据库

MatrixOne实战系列回顾 | 导入导出项目场景实践

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne 超融合数据库

Util应用框架基础(七)- 缓存

何镇汐

开源 后端 .net core

Java多线程系列3:Java线程的一生

BigBang!

Java多线程

什么是Mock?为什么要使用Mock呢?

我爱娃哈哈😍

Mock Mock 服务 mock设计

加速CI构建,实现高效流水线——CloudBees CI发布工作区缓存功能

龙智—DevSecOps解决方案

ci

KeyShot 2023.3 Pro for mac激活版下载(3D渲染和动画制作软件)

iMac小白

将 Spring 微服务与 BI 工具集成:最佳实践

互联网工科生

spring 微服务 BI 分析工具

JProfiler 14 for Mac(Java开发分析工具) 14.0激活版

iMac小白

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