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