SOA的本質(zhì)在于它用統(tǒng)一的、開發(fā)的標(biāo)準(zhǔn),將分布的、異構(gòu)的系統(tǒng)集成在一起,實現(xiàn)系統(tǒng)之間的互操作。
其實自1990年代中后期出現(xiàn)了互聯(lián)網(wǎng)以后,相當(dāng)數(shù)量的各類技術(shù)頻繁的出現(xiàn),以解決分布異構(gòu)系統(tǒng)的集成問題。
比如最初的CORBA,當(dāng)時火的一塌糊涂,記得當(dāng)時我還是研究生,還專門跑到書店去買了一本厚厚的大部頭,妄想如同學(xué)習(xí)C++一樣去征服CORBA。為此還煞費苦心的向?qū)熍獊砹肆硗庖慌_機器,搭起了簡易的試驗平臺。但后來由于CORBA實在是太復(fù)雜,而且當(dāng)時的ICE研究中心基本上沒有恰當(dāng)?shù)膽?yīng)用背景,于是也是不了了之。
CORBA的劣勢在于它的集成的“粒度”太小:函數(shù)級別的互操作。另外,它也僅能應(yīng)用于Intranet環(huán)境下。
再比如后來的J2EE,.Net等,大同小異,但都不被看作完美的解決方案。
接著出現(xiàn)了XML,我始終把它看作改變集成技術(shù)的重要里程碑,因為在之前,需要在異構(gòu)分布系統(tǒng)之間交換的數(shù)據(jù),要么通過直接的函數(shù)調(diào)用,要么通過公共的數(shù)據(jù)庫(或黑板),要么通過非結(jié)構(gòu)化的文檔(如.doc)。而XML出現(xiàn)之后,在系統(tǒng)之間同步而非函數(shù)調(diào)用的集成,成為了可能。于是出現(xiàn)了SOAP,出現(xiàn)了UDDI,出現(xiàn)了WSDL,以至于后來的任何有關(guān)集成的標(biāo)準(zhǔn),都是用XML寫成的。諸如ebXML,BPEL4WS等最先進(jìn)的標(biāo)準(zhǔn),哪個不是?
所以我覺得SGML/HTML/XML的發(fā)明者,應(yīng)該獲得Turing Awards。(也許他們早就拿到了這個獎?)
SOA解決了其他技術(shù)不能解決的各類問題——完美的方案。它最大的優(yōu)勢在于將Internet這個無邊的概念消除了,使系統(tǒng)分析與設(shè)計人員不必考慮各系統(tǒng)之間的巨大邊界,就如同開發(fā)桌面程序一樣開發(fā)企業(yè)間應(yīng)用程序。如果兩個構(gòu)件都部屬在同一個企業(yè),那好,用J2EE已經(jīng)是很cost-effective的技術(shù)了;如果兩個構(gòu)件分屬于兩個子公司而它們又分布在太平洋兩岸,那好,用SOA吧:把兩個構(gòu)件包裝為兩個服務(wù),然后將兩個服務(wù)連接在一起,OK。
記住,任何開發(fā)技術(shù)/工具都要遵循的基本原則就是:弄清楚什么地方該用什么技術(shù),而不是事無巨細(xì)都要麻煩SOA老兄。
從今天開始,你們不得不進(jìn)入細(xì)致的思考階段,而不是僅僅美化你們的簡歷。我們將共同來思考,在競賽給定的場景下,該用SOA做點什么?
其實自1990年代中后期出現(xiàn)了互聯(lián)網(wǎng)以后,相當(dāng)數(shù)量的各類技術(shù)頻繁的出現(xiàn),以解決分布異構(gòu)系統(tǒng)的集成問題。
比如最初的CORBA,當(dāng)時火的一塌糊涂,記得當(dāng)時我還是研究生,還專門跑到書店去買了一本厚厚的大部頭,妄想如同學(xué)習(xí)C++一樣去征服CORBA。為此還煞費苦心的向?qū)熍獊砹肆硗庖慌_機器,搭起了簡易的試驗平臺。但后來由于CORBA實在是太復(fù)雜,而且當(dāng)時的ICE研究中心基本上沒有恰當(dāng)?shù)膽?yīng)用背景,于是也是不了了之。
CORBA的劣勢在于它的集成的“粒度”太小:函數(shù)級別的互操作。另外,它也僅能應(yīng)用于Intranet環(huán)境下。
再比如后來的J2EE,.Net等,大同小異,但都不被看作完美的解決方案。
接著出現(xiàn)了XML,我始終把它看作改變集成技術(shù)的重要里程碑,因為在之前,需要在異構(gòu)分布系統(tǒng)之間交換的數(shù)據(jù),要么通過直接的函數(shù)調(diào)用,要么通過公共的數(shù)據(jù)庫(或黑板),要么通過非結(jié)構(gòu)化的文檔(如.doc)。而XML出現(xiàn)之后,在系統(tǒng)之間同步而非函數(shù)調(diào)用的集成,成為了可能。于是出現(xiàn)了SOAP,出現(xiàn)了UDDI,出現(xiàn)了WSDL,以至于后來的任何有關(guān)集成的標(biāo)準(zhǔn),都是用XML寫成的。諸如ebXML,BPEL4WS等最先進(jìn)的標(biāo)準(zhǔn),哪個不是?
所以我覺得SGML/HTML/XML的發(fā)明者,應(yīng)該獲得Turing Awards。(也許他們早就拿到了這個獎?)
SOA解決了其他技術(shù)不能解決的各類問題——完美的方案。它最大的優(yōu)勢在于將Internet這個無邊的概念消除了,使系統(tǒng)分析與設(shè)計人員不必考慮各系統(tǒng)之間的巨大邊界,就如同開發(fā)桌面程序一樣開發(fā)企業(yè)間應(yīng)用程序。如果兩個構(gòu)件都部屬在同一個企業(yè),那好,用J2EE已經(jīng)是很cost-effective的技術(shù)了;如果兩個構(gòu)件分屬于兩個子公司而它們又分布在太平洋兩岸,那好,用SOA吧:把兩個構(gòu)件包裝為兩個服務(wù),然后將兩個服務(wù)連接在一起,OK。
記住,任何開發(fā)技術(shù)/工具都要遵循的基本原則就是:弄清楚什么地方該用什么技術(shù),而不是事無巨細(xì)都要麻煩SOA老兄。
從今天開始,你們不得不進(jìn)入細(xì)致的思考階段,而不是僅僅美化你們的簡歷。我們將共同來思考,在競賽給定的場景下,該用SOA做點什么?