写点什么

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

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

关注

评论

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

游戏行业需要堡垒机吗?用哪款堡垒机好?

行云管家

网络安全 游戏 数据安全 堡垒机

掌握提示词工程与大模型多场景实战

百度开发者中心

人工智能 自动驾驶 大模型 Prompt

大模型训练中的Prompt Learning

百度开发者中心

人工智能 自然语言处理 大模型

京东API赋能电商生态,商品详情随时掌握

技术冰糖葫芦

API 接口 API 文档 API 策略

现代DevOps如何改写软件开发格局

禅道项目管理

DevOps 自动化测试 项目管理软件

AIGC 周报(3.03~3.10)

AIGC Weekly 周报

AI 互联网 周报 AIGC #人工智能

NFTScan | 03.04~03.10 NFT 市场热点汇总

NFT Research

NFT NFTScan

前端的你常用的编程语言是什么?

小魏写代码

简单了解不同行业下4a的定义

行云管家

网络安全

探索AI的边界:如何精准地测试人工智能

霍格沃兹测试开发学社

【搜索引擎】:ES 基础

L L

ES搜索 Java 技术栈

为什么要写技术方案?

老张

自动化测试 技术方案

探索大模型提示词

百度开发者中心

人工智能 自然语言处理 图像识别 大模型

IPQ9574/WiFi 7: Connecting everything, opening a new chapter in smart life

wallysSK

LED显示屏单元板:从外观看见质量的细节

Dylan

产品 数字 LED显示屏 全彩LED显示屏 led显示屏厂家

HarmonyOS-安装篇(DevEco Studio)

京东科技开发者

震惊:苹果手机电池栏“黑白无常”

京东科技开发者

探索AI的边界:如何精准地测试人工智能

测试人

软件测试 测试开发

浅谈代码架构

比伦

ios 架构

数据指标体系搭建方法及经验

ClkLog

虾皮Shopee商品详情数据采集,item_get-根据ID取商品详情

Anzexi58

API 文档

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