AICon日程100%就绪,9折倒计时最后一周 了解详情
写点什么

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

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

关注

评论

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

cad看图软件CAD迷你看图 for Mac

Mac相关知识分享

2024-10-13:用go语言,给定一个二进制数组 nums,长度为 n, 目标是让 Alice 通过最少的行动次数从 nums 中拾取 k 个1。 Alice可以选择任何索引 aliceIndex

福大大架构师每日一题

福大大架构师每日一题

Docker Ubuntu php nginx mysql redis开发环境部署教程

百度搜索:蓝易云

引领科技未来,助力产业发展——成都远川科技有限公司

Geek_2d6073

Android 管理工具Coolmuster Android Assistant for Mac

Mac相关知识分享

天猫商品描述API:商品参数对比与竞品分析实战

代码忍者

鸿蒙开发案例:记忆翻牌

zhongcx

寻趣“6”朝古都 MAZDA EZ-6开启金陵CITY WALK

Geek_2d6073

《使用Gin框架构建分布式应用》阅读笔记:p1-p19

codists

gin

Redis的缓存雪崩、缓存穿透、缓存击穿

百度搜索:蓝易云

生化危机8:村庄 RESIDENT EVIL VILLAGE (Win&Mac)下载

你的猪会飞吗

生化危机 生化危机破解版 单机游戏下载

专业的虚拟定位工具AnyGo for Mac

Mac相关知识分享

企业级即时通讯平台推荐:为何选择WorkPlus保障您的沟通安全

WorkPlus

好用的音乐宿主软件有哪些?值得推荐的音乐编曲软件

阿拉灯神丁

编曲宿主 FL Studio2024 mac音乐制作软件 音乐软件

触摸板和鼠标增强工具BetterTouchTool for Mac

Mac相关知识分享

设计解析Excel文件

麦兜

安全、专属且高效:WorkPlus即时通讯平台引领高效协作新纪元

WorkPlus

构建一体化解决方案:天谋科技与美林数据完成兼容性互认证

Apache IoTDB

go 1.18新特性(泛性 模糊测试 WorkSpace)

百度搜索:蓝易云

Java图片压缩:thumbnailator与commons-imaging

程序员架构进阶

架构 Java’ 图片压缩 10月月更 Thumbnails

带参数的Python装饰器让你的代码更优雅

LLLibra146

Python 装饰器

JavaScript 异步编程入门

FunTester

OKR实践之——重要紧急矩阵

Bruce Talk

OKR 敏捷开发

Ubuntu20.04开机卡在[OK] Started ****,无法正常开机

百度搜索:蓝易云

AnyToISO Pro for Mac(专业级ISO镜像文件制作工具)

Mac相关知识分享

大数据之数据治理体系全面指南

五分钟学大数据

大数据 数据治理

ubuntu 22.04通过apt-get安装的apache2将http改造为https的方法

百度搜索:蓝易云

Java实现加入购物车怎么做数据定位?

威哥爱编程

Java JavaEE 购物车项目

1688电商新纪元:商品详情API引领行业发展新动力

代码忍者

im即时通讯系统,WorkPlus为企业智能化管理而生

WorkPlus

im即时通讯-WorkPlus私有化部署的局域网即时通讯工具

WorkPlus

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