写点什么

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

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

关注

评论

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

开讲啦!0基础也能玩转飞桨开源社区

飞桨PaddlePaddle

人工智能 百度飞桨 开源活动

纯干货!一文get昇腾Ascend C编程入门全部知识点

华为云开发者联盟

人工智能 华为云 昇腾 华为云开发者联盟 企业号9月PK榜

8月《中国数据库行业分析报告》已发布,聚焦数据仓库、首发【全球数据仓库产业图谱】

墨天轮

数据库 数据仓库 Apaache Doris 国产数据库 snowflake

低代码概念——初步认识低代码

互联网工科生

低代码 企业级应用程序开发 JNPF

【玩转鲲鹏DevKit系列】何如快速迁移有源码应用

华为云开发者联盟

开发 华为云 鲲鹏 华为云开发者联盟 企业号9月PK榜

穿上App外衣,保持Web灵魂——PWA温故

互联网工科生

App PWA #web

开源可观测数据采集工具 Vector 已内置 GreptimeDB 支持

Greptime 格睿科技

数据库 vector Sink 可观测 Greptime

GO语言的map使用

李爽

clean code #go

技术分享 | LSM,Linux 内核的安全防护盾

鼎道智联

Linux

常用MySQL 查询语句大全

小魏写代码

MySQL :MySQL 数据库

GaoNeng:我是如何为OpenTiny贡献新组件的?

OpenTiny社区

开源 前端 UI组件库

软件测试/测试开发丨Python 类的继承常见问题

测试人

Python 程序员 软件测试 自动化测试 测试开发

Bartender 4 for Mac最新免激活中文

胖墩儿不胖y

Mac软件 菜单栏管理工具

程序员一年中最佳跳槽时间是什么时候?

程序员小毕

程序员 架构师 java面试 跳槽 金九银十

可不能忽视的五个 HTTP 请求要点

Liam

程序员 前端 后端 HTTP API

Paimon+StarRocks 湖仓一体数据分析方案

Apache Flink

大数据 flink 实时计算

字节跳动技术面试官,帮你考前划重点,还有面试真题哦

字节跳动技术范儿

字节跳动 面试 校招 字节跳动面经

深入解读 MongoDB CDC 的设计与实现

Apache Flink

大数据 flink 实时计算

常见的负载均衡策略有哪些?

王磊

Java面试题

构建一体化云原生安全防护体系,天翼云红盾护航企业云上安全!

天翼云开发者社区

云计算 网络安全

释放多云应用价值,天翼云打造一站式数据库多云管理平台

天翼云开发者社区

数据库 云平台

技术思维和管理思维

老张

技术思维 管理思维

没有苹果开发者账号能否创建ios证书-最新

驶向高效运营,StarRocks 助力蔚来汽车数据分析再升级

StarRocks

数据库 大数据 数据仓库 数据湖

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