我注意到一个关于oo工具和so工具关系并且很吸引人的讨论正在Yahoo的论坛上进行。
这些讨论阐明了为什么我们要在eclipse平台上开发SOA的插件,这些由IBM,sybase等公司开发的插件显然优于基于UML以及MDA上的。
Stefan Tilkov,讨论参加者之一,在之前的博客中已经讨论了这个问题。另一位论坛参与者Lukas Barton引用了他在之前写的关于MDA的文章,主要从插件角度讲一些OO和SO的区别。
自从这个讨论看是以来,一些事情已经改变了,但是我想说的是UML和MDA仍然没有从面向对象转成面向服务。那些UML和MDA的工具仍旧要求用户从对象的角度开始你的WSDL,XML Schemas,SOAP而不是其它的。
当然你也已使用UML去创建服务,也可以像被已经提到多次的那样,使用面向过程的技术例如:CoBOL 或者 PL/I 或者存储过程以及异步消息机制。这样做的主要好处就是所有这些都是直接涉及其本质。可是由于你将SO和OO联系的太紧密地话,你将会有所损失。
对于软件开发,oo的概念的使用往往会带来的问题比它本身所能解决的更多。(采用对象,过程,队列等来实现服务是没有问题的但我们应该采用别的方式来设计服务)由于OO很清晰的映射了业务功能,所以天生更适合于采用服务来建模,设计和开发。
软件工具需要提升其抽象的程度。MDA以及UML没有真正做到这点,自从这两个东西让我们开始学习如何重新采用对象方法的观点解释世界,更加抽象的认识服务。我们需要是一套基于Contract-First的SO工具来开发SOA (以面向服务为本质,而不理会是否用OO来实现)