硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

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

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

关注

评论

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

中科创达与华为共启边缘计算合作,共建昇腾AI产业,赋能千行百业提质升级

科技热闻

软件测试需要学什么?测试学习大纲梳理

伤心的辣条

Python 程序员 程序人生 软件测试 自动化测试

时序数据库在博物馆环境检测的应用

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

看天翼云如何为实体工业插上“数字翅膀”

天翼云开发者社区

云计算 安全 云电脑

HR系统本地化部署和SAAS,优秀企业会怎么选?

BeeWorks

聚链成网,旺链科技联合发起跨链平台搭建计划

旺链科技

区块链 产业区块链 产业生态

开源GitOps产业联盟会员行 | 走进秒云

MIAOYUN

云原生 gitops OGA联盟

企评家企业投资价值评价系统,服务投资机构

企评家

企业评价 企评家 企业成长性评价 企业投资价值评价

Masa Blazor自定义组件封装

MASA技术团队

C# .net 微软 UI 组件库

几行代码,网站图片访问速度 100ms 飙升到 20ms!

沉默王二

工业互联网,走,上云去!

天翼云开发者社区

云计算 安全 云电脑

2022年SaaS发展趋势——私有本地化部署

BeeWorks

IJCAI 2022 放榜,腾讯优图实验室三篇论文入选

极客天地

【国产免费】ETL任务调度运维自动化平台 TASKCTL 作业互斥与强制依赖

敏捷调度TASKCTL

DevOps 分布式 运维 ETL 大数据运维

从开源模型、框架到自研,声网 Web 端虚拟背景算法正式发布

声网

AI 大前端 WebRTC webassembly Dev for Dev

恒源云(Gpushare)_今日炼丹小疑问:如何给数据加权重?

恒源云

Python 深度学习 PyTorch

Intel CET缓解措施深度研究

腾讯安全云鼎实验室

安全攻防 网络安全 安全研究

算力如何升级?天翼云这么干!

天翼云开发者社区

云计算 云电脑

焱融科技在高性能全闪文件存储系统设计的思考

焱融科技

云计算 分布式 云原生 高性能 文件存储

什么是IP冲突以及如何解决?

郑州埃文科技

IP地址 IP冲突

HarmonyOS 2迎来大更新:10个功能升级,这些机型建议更新!

科技汇

天翼云4.0首亮相!

天翼云开发者社区

云计算 云电脑

数据传输POST心法分享,做前端的你还解决不了这个bug?

葡萄城技术团队

使命与愿景

Ian哥

项目管理 企业文化 使命愿景

智能运维 VS 传统运维|AIOps服务管理解决方案全面梳理

云智慧AIOps社区

运维 监控 AIOPS 自动化运维

与Fiddler旗鼓相当的mock工具!

Liam

测试 Postman 自动化测试 自动化测试平台 测试自动化

得物客服一站式工作台卡顿优化之路

得物技术

前端 优化 sdk 卡顿 iframe

Flutter 如何快速切换生产和测试环境?

岛上码农

flutter 安卓开发 ios 开发 跨平台应用 5月月更

分布式云时代,天翼云4.0如何护卫边缘安全?

天翼云开发者社区

安全 云电脑

产品经理该如何确定优先级?

LigaAI

PM 敏捷实践 优先级

恒源云 (Gpushare)_【炼丹必备】调参心法(说人话系列)

恒源云

深度学习

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