我即将开始为各种业务应用程序编写一套WCF服务。这个SOA从一开始就非常不成熟,最终演变成一个强大的中间件层。
不幸的是,我没有足够的时间编写一整套服务然后重新分解应用程序以使用它们,这将是一个随时间推移的迭代过程。我的问题是围绕不断发展(更改,添加,删除属性)业务对象。
例如:如果您有一个SOA公开一个返回obj1的服务。 app1,app2,app3正在使用该服务。想象一下,对于app1更改了对象,我不想更新app2和app3以进行对app1所做的更改。如果更改是一个添加属性,它将正常工作,它将不会被映射,但删除属性时会发生什么?或者将属性从字符串更改为int?你如何管理变化?
先谢谢你的帮助?
PS:我确实做了一些小图片,但显然我需要10的声誉,所以你必须用你的想象力......答案 0 :(得分:0)
目标是限制您迫使客户必须立即进行的更改。他们最终可能不得不做出一些改变,但希望它只是在不可避免的情况下,例如它们背后有多个版本而且你要完全逐步淘汰它。
不间断的更改可以是:
重大改变包括:
选项:
这也是“Apress - Pro WCF4:实用Microsoft SOA实施”的一个很好的流程图,可能有所帮助。