当你建立SOA时,不要期望自己能预见所有事情,以及能一次把事情做好。
大型分布式系统从来都不是静态的。需求在演化,新需求在出现,同时,当你
开发和实现服务时,不停地在学习和进步,因此,你也可能想把自己学到的新知识用于
现有的服务。因此,你需要拥有升级和成长的能力。
-------------------------------------------------------------------------------------------------------------------
领域驱动的版本划分
领域驱动的版本划分允许同一服务的不同版本同时运行在同一个运行时环境中。
1、无需工作量的、领域驱动的版本划分
针对领域驱动的版本划分,我的无需工作量的方法仅仅是:不为版本划分提供任何技术支持。
这就是说,将现有服务的每个修改(在技术上)都当作是新的服务。
2、需要工作量的、领域驱动的版本划分
你可以用Web Services来处理,将不同的命名空间用于不同版本,以及/或者用UDDI注册中心作为中间人,
对服务请求进行不同的路由。
--------------------------------------------------------------------------------------------------------------------------
数据类型的版本划分
当存在不同的服务版本时,也存在着数据类型的不同版本(至少对使用结构化数据类型的服务来说是如此)。
处理这个问题比单纯处理不同服务版本的问题要困难得多。
--------------------------------------------------------------------------------------
配置管理驱动的版本划分
在不同的运行时环境中,有服务的多个修订同时处于开发之中。
这个要求带来了配置管理工具的话题,比如版本控制工具。