- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
版本划分与服务生命周期
版本划分与服务生命周期
一、版本划分
为什么要考虑版本划分问题?
与客观世界的服务一样,SOA中
服务也是变化的。变化带来的版本问题
为什么服务会发生变化?
●设计的不足
●需求的变化
版本划分主要讨论两个方面
●开发新版本?运行中的多个版本并存?
●修订新版本?替换已有老版本?
三种类型的服务版本:
● 业务驱动的版本划分
● 数据类型的版本划分
● 配置管理驱动的版本划分
1、业务驱动的版本划分
无工作量情况
当业务变化时使用,用新服务来实现业
务改变,不用修订已有老的服务。允许同一
服务的不同版本同时运行在同一个运行环境
中。消费者可能会调用新版本的。也可能调
用老版本的。
● 无工作量指无需做额外的工作
● 每个修改都当成一个新服务
● 可采用版本号的方法
服务语义+版本号
例如:
为什么不直接对老服务进行修改?
● 兼容性问题
● 数据类型问题
问题:版本越来越多,最后难以管理
无工作量划分的优缺点:
优点:无需对已有服务进行修改,只关注
变化的部分
缺点:版本越来越多,最后难以管理
如何取舍?
改变服务版本要付出成本,但有可能不会
带来任何收益。然而,如果老版本不能逐步
淘汰的话,整个系统的统一性就会越来越糟
有工作量情况
当业务变化时,需要关注已有老的服务。
● 提供机制保证服务的向前兼容性
● 通过技术手段扩展服务
● 间接方法如中介
2、数据类型的版本划分
服务时面向接口的开发,理想情况下
接口是稳定的,但实际往往无法做到。当服
务的版本发生变化时,数据类型有可能也发
生变化。
如何解决数据类型的版本问题?
一般有三种思路:
● 不同版本用不同的类型
● 不同版本用相同类型
● 使用泛型
2.1不同版本用不同的类型
当数据类型发生变化时,对变化的数据
类型采用新的版本。可采用前面的命名方法
来命名数据类型。
数据类型语义+版本号
不同版本用不同的类型要考虑的问题
● 导致多个关联类型也要被修改
● 在强类型语言中,需要进行数据映射
● 当关联类型和服务增加时,额外的工
作量也会大大增加
● 可能要升级所有的关联服务
2.2不同版本用相同的类型
当数据类型发生变化时,对变化的数据
类型不采用新的版本。不同服务的不同版本
共享一个数据类型。
不同版本用相同类型要考虑的问题
● 要记录属性与版本的关联
● 当数据类型因新服务而发生变化时,需
要编译所有现存代码
● 要根据自己的标准验证数据
2.3 使用泛型
当数据类型发生变化时,对变化的数据
类型采用泛型代码。(泛型概念参加OO)
使用泛型要考虑的问题
前面遇到的问题可以通过泛型来解决,但
在分布式SOA环境下是否支持泛型?现实中很难实
现系统的所有平台都支持。
3、两种版本划分的讨论
原则: 没有银弹来解决所有版本划分而出现
的问题,需要根据实际的情况来进行确定如何进行
版本的划分
建议: 要从消费者和提供者两个角度来考察
版本划分所带来的工作量问题。即工作量由谁来主
要承担。当我们SOA的经验不足时我个人建议采用以
下方式:
服务提供者:采用无工作量的版本划分,不同版
本采用不同数据类型。
服务消费者:采用映射层的方法解决版本不一致
问题
注意:
●要弄清业务驱动接口和数据类型版本概念和
关系。E
原创力文档


文档评论(0)