我注意到一個關(guān)于oo工具和so工具關(guān)系并且很吸引人的討論正在Yahoo的論壇上進(jìn)行。
這些討論闡明了為什么我們要在eclipse平臺上開發(fā)SOA的插件,這些由IBM,sybase等公司開發(fā)的插件顯然優(yōu)于基于UML以及MDA上的。
Stefan Tilkov,討論參加者之一,在之前的博客中已經(jīng)討論了這個問題。另一位論壇參與者Lukas Barton引用了他在之前寫的關(guān)于MDA的文章,主要從插件角度講一些OO和SO的區(qū)別。
自從這個討論看是以來,一些事情已經(jīng)改變了,但是我想說的是UML和MDA仍然沒有從面向?qū)ο筠D(zhuǎn)成面向服務(wù)。那些UML和MDA的工具仍舊要求用戶從對象的角度開始你的WSDL,XML Schemas,SOAP而不是其它的。
當(dāng)然你也已使用UML去創(chuàng)建服務(wù),也可以像被已經(jīng)提到多次的那樣,使用面向過程的技術(shù)例如:CoBOL 或者 PL/I 或者存儲過程以及異步消息機(jī)制。這樣做的主要好處就是所有這些都是直接涉及其本質(zhì)。可是由于你將SO和OO聯(lián)系的太緊密地話,你將會有所損失。
對于軟件開發(fā),oo的概念的使用往往會帶來的問題比它本身所能解決的更多。(采用對象,過程,隊(duì)列等來實(shí)現(xiàn)服務(wù)是沒有問題的但我們應(yīng)該采用別的方式來設(shè)計(jì)服務(wù))由于OO很清晰的映射了業(yè)務(wù)功能,所以天生更適合于采用服務(wù)來建模,設(shè)計(jì)和開發(fā)。
軟件工具需要提升其抽象的程度。MDA以及UML沒有真正做到這點(diǎn),自從這兩個東西讓我們開始學(xué)習(xí)如何重新采用對象方法的觀點(diǎn)解釋世界,更加抽象的認(rèn)識服務(wù)。我們需要是一套基于Contract-First的SO工具來開發(fā)SOA (以面向服務(wù)為本質(zhì),而不理會是否用OO來實(shí)現(xiàn))