我注意到一個關于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來實現)