直播中
面臨的挑戰(zhàn)
錯(cuò)誤的解決方案: 復(fù)雜系統(tǒng)對(duì)接的解決方案
正確的解決方案: Web服務(wù)和商業(yè)Web
Web服務(wù)是未來?
什么是Web服務(wù)?
參考資料
作者簡(jiǎn)介
相關(guān)內(nèi)容:
柴曉路 (fennivel@uddi-china.org)
Chief System Architect
2001年7月9日
本文是架構(gòu)Web服務(wù)的系列文章的首篇,從Web服務(wù)的商業(yè)需求開始,來探討為什么要使用Web服務(wù)。首先,作者分析了目前電子商務(wù)應(yīng)用所面臨的挑戰(zhàn): 務(wù)實(shí)和追求經(jīng)濟(jì)利益是當(dāng)今電子商務(wù)的需求。然而目前廣泛應(yīng)用的電子商務(wù)應(yīng)用的體系架構(gòu)使得這一商業(yè)需求很難實(shí)現(xiàn),復(fù)雜的應(yīng)用連接和程序代碼造成了應(yīng)用的高維護(hù)代價(jià)和更新代價(jià)。而作為現(xiàn)有技術(shù)的革新(而不是革命)的Web服務(wù)卻正好能解決這一問題,成為目前應(yīng)用環(huán)境中最為合理的解決方案。
Web服務(wù)似乎是一個(gè)嶄新的名詞,現(xiàn)在去瀏覽各大主流技術(shù)論壇,無一不在關(guān)注Web服務(wù)的發(fā)展。但是到底是么是Web服務(wù)呢?很多技術(shù)人員初次接觸Web服務(wù),會(huì)有一個(gè)錯(cuò)覺,認(rèn)為這是一個(gè)新的系統(tǒng)架構(gòu),新的編程環(huán)境。是的,Web服務(wù)是一個(gè)新的概念,但他的系統(tǒng)架構(gòu),他的實(shí)現(xiàn)技術(shù)卻是完完全全繼承已有技術(shù)的,絕對(duì)不會(huì)使現(xiàn)有的應(yīng)用推倒重來,而是現(xiàn)有應(yīng)用的面向Internet的一個(gè)延伸。
在本系列中,作者將從什么是Web服務(wù),為什么需要Web服務(wù)開始,就Web服務(wù)的構(gòu)建模式,結(jié)合一個(gè)實(shí)例,詳細(xì)闡述了Web服務(wù)的架構(gòu)過程。
本文所引用的資源主要包括兩類,一類是Web服務(wù)的技術(shù)資源網(wǎng)站,包含了大量Web服務(wù)的技術(shù)信息,另一類是Web服務(wù)“stack"系列技術(shù)規(guī)范,他們是一個(gè)整體的技術(shù)體系,包括UDDI、SOAP、WSDL、XML等。本文的最后給出了這些資源的鏈接,有興趣的讀者可以通過這些資源鏈接找到所需的內(nèi)容。
面臨的挑戰(zhàn)
我們知道,過去十年的對(duì)IT產(chǎn)業(yè)/COM的"瘋狂投資"的時(shí)代已經(jīng)過去了,那是一個(gè)實(shí)驗(yàn)的年代。而現(xiàn)在,整個(gè)業(yè)界跨入了務(wù)實(shí)的階段,當(dāng)今電子商務(wù)發(fā)展的重心已經(jīng)完全從過去的.COM的模式轉(zhuǎn)向到傳統(tǒng)企業(yè)的電子商務(wù)化的進(jìn)程中來。既然是企業(yè)的電子商務(wù)化,模式是否嶄新是次要的,而是否能為企業(yè)帶來經(jīng)濟(jì)利益則是主要的。在規(guī)劃企業(yè)的電子商務(wù)應(yīng)用的時(shí)候,企業(yè)管理人員和系統(tǒng)架構(gòu)師更多的關(guān)注該電子商務(wù)應(yīng)用是否能為企業(yè)帶來直接的經(jīng)濟(jì)收益、是否有利于削減掉某方面的開支成本、是否能夠優(yōu)化資源使用,這些完完全全是由企業(yè)的商業(yè)利益驅(qū)動(dòng)的,在這一輪的電子商務(wù)發(fā)展中,技術(shù)完全是為商業(yè)服務(wù)的,任何脫離商業(yè)需求的"新"技術(shù)則必然是毫無用武之地。
在IT投資銳減的日子里,系統(tǒng)架構(gòu)師們小心翼翼、廣泛考證,在對(duì)企業(yè)自身運(yùn)作機(jī)制的務(wù)實(shí)的仔細(xì)調(diào)研中,總結(jié)出了一些(比較少量的,只有7種)當(dāng)前最有價(jià)值進(jìn)行實(shí)施的電子商務(wù)應(yīng)用,它們是:
企業(yè)門戶(Portal):企業(yè)門戶與一般信息門戶有本質(zhì)的區(qū)別,企業(yè)門戶主要是為企業(yè)的重要客戶、合作伙伴和自身的員工服務(wù)的。它應(yīng)當(dāng)具有個(gè)性化(這里的個(gè)性化并不僅僅是頁(yè)面),應(yīng)當(dāng)提供一系列的在線服務(wù),使得客戶、合作伙伴和員工們得以使用企業(yè)門戶獲得必要的知識(shí)/信息,得以通過企業(yè)門戶與企業(yè)應(yīng)用進(jìn)行交互及事務(wù)處理。
網(wǎng)上連鎖商店(Storefront):為了拓展產(chǎn)品和服務(wù)的市場(chǎng),拓廣銷售渠道以及增加銷售額,企業(yè)應(yīng)當(dāng)建立具有自身品牌標(biāo)識(shí)的網(wǎng)上連鎖商店。這里需要注意的是,所謂網(wǎng)上連鎖商店并不是說使用各種語言在各個(gè)國(guó)家分別建立網(wǎng)上商店,這只是其中的一個(gè)形式,更多的方式應(yīng)當(dāng)是將企業(yè)的網(wǎng)上商店能夠加入到各種各樣的網(wǎng)上實(shí)體中,比如門戶網(wǎng)站、行業(yè)交易市場(chǎng)(e-Marketplace)、都市引擎等,使企業(yè)的銷售渠道遍布整個(gè)Web空間。
集團(tuán)內(nèi)聯(lián)網(wǎng)(Intranet)與知識(shí)庫(kù)(Knowledge Base):集團(tuán)的全球內(nèi)聯(lián)網(wǎng)能夠使企業(yè)的雇員可以在全球范圍內(nèi)進(jìn)行有效的交流和協(xié)作,充分利用企業(yè)的全球資源,以提升整體的生產(chǎn)力。集團(tuán)的知識(shí)庫(kù)能夠?yàn)閱T工的協(xié)作提供豐富有效的工作中所需要的知識(shí),以最大可能地提高員工的單位產(chǎn)出。
供應(yīng)鏈(Supply Chain)管理:為提升企業(yè)的整體競(jìng)爭(zhēng)力,企業(yè)往往需要保持并提升自身與其供應(yīng)商的關(guān)系,采取流水線形式的采購(gòu)方式并盡量減少運(yùn)作成本,而要做到這一點(diǎn),則必須要?jiǎng)?chuàng)建私有的交易通道和供應(yīng)鏈關(guān)系的電子商務(wù)應(yīng)用才能達(dá)到這一目標(biāo)。
客戶服務(wù)(Customer Service):通過建立這樣的面向客戶的服務(wù)門戶或自助式銷售網(wǎng)站能夠?qū)崿F(xiàn)跨區(qū)銷售,提升客戶的親近程度和滿意程度,并減少服務(wù)成本。
分銷(Distribution)管理:建立分銷管理應(yīng)用能夠使企業(yè)迅速地拓展分銷渠道并挖掘新的市場(chǎng)機(jī)會(huì)。同時(shí),企業(yè)還能裁減培訓(xùn)成本、服務(wù)成本和產(chǎn)品分銷成本,并減少倉(cāng)儲(chǔ)費(fèi)用。
提供ASP(Application Service Provider)服務(wù):通過在Web上部署ASP服務(wù),企業(yè)能夠獲得新的額外的收入。而提供的ASP中的A(Application)應(yīng)當(dāng)是企業(yè)核心競(jìng)爭(zhēng)力的數(shù)字化表現(xiàn),一般情況下,其范圍可能就包含了前面提到的6種電子商務(wù)應(yīng)用中的5種:企業(yè)門戶、網(wǎng)上連鎖商店、供應(yīng)鏈管理、客戶服務(wù)以及分銷管理。
為了實(shí)施這些電子商務(wù)應(yīng)用,不外乎幾種手段:由自己的IT部門具體計(jì)劃并實(shí)施,外包給軟件公司或解決方案提供商計(jì)劃并實(shí)施,當(dāng)然解決方案或?qū)嵤┯?jì)劃中可能會(huì)包含平臺(tái)軟件或?qū)S密浖K的采購(gòu)。然而,無論自身的IT部門還是外包的解決方案提供商,其給出的實(shí)施計(jì)劃都是應(yīng)用正式運(yùn)營(yíng)前的。一旦應(yīng)用被部署之后,由于商務(wù)環(huán)境和商務(wù)需求的不斷改進(jìn)和不斷變化,這些電子商務(wù)應(yīng)用不可避免地需要被修訂、需要被更新,以符合新的電子商務(wù)流程。而到最后,企業(yè)的管理人員甚至?xí)霝槠髽I(yè)的員工、客戶以及合作伙伴分別定制具體應(yīng)用以獲得最大的商業(yè)利益并保持競(jìng)爭(zhēng)力。
在這些應(yīng)用更新的可能中,下面三個(gè)可能是最主要的也是最常發(fā)生的:
經(jīng)常會(huì)增加新的電子商務(wù)應(yīng)用,這常常會(huì)每幾個(gè)星期或每幾個(gè)月發(fā)生一次;
經(jīng)常會(huì)對(duì)電子商務(wù)的流程進(jìn)行更改,這常常每周或每幾天發(fā)生一次;
經(jīng)常應(yīng)用戶的需求而進(jìn)行更改,這甚至每個(gè)小時(shí)都會(huì)發(fā)生,尤其是當(dāng)需要為每個(gè)客戶、每個(gè)合作伙伴或每個(gè)企業(yè)員工都定制其首選的電子商務(wù)應(yīng)用的時(shí)候。
毫無疑問,e化的企業(yè)必須直面這一問題的挑戰(zhàn),經(jīng)常的應(yīng)用更新是當(dāng)今電子商務(wù)應(yīng)用部署所面臨的最大問題,如何提升企業(yè)的響應(yīng)能力,削減響應(yīng)開支,提升企業(yè)的競(jìng)爭(zhēng)力,是所有的e化企業(yè)必須面對(duì)的問題。
錯(cuò)誤的解決方案: 復(fù)雜系統(tǒng)對(duì)接的解決方案
為了達(dá)到這一保持企業(yè)核心競(jìng)爭(zhēng)力的目的,大部分企業(yè)都在努力奮斗著,毫無疑問他們?cè)贗T上投入了極多的資金和資源,那么他們的選擇是否正確呢?在商務(wù)上,無疑是正確的,"沒有電子商務(wù)將等于無商可務(wù)",可是方法呢?他們采取了正確的方法了么?
讓我們首先來看一看目前大多數(shù)企業(yè)是如何操作的?
目前,在構(gòu)建前面我提到的那些電子商務(wù)應(yīng)用的時(shí)候,程序員們一般都是采用"獨(dú)立解決方案"來實(shí)施的。也就是說,對(duì)于每個(gè)應(yīng)用,他們都是為每個(gè)需要的企業(yè)資源或外部資源編寫連接代碼,以使得應(yīng)用得以運(yùn)行。這些資源包括:傳統(tǒng)系統(tǒng)(legacy systems)和數(shù)據(jù)庫(kù)、Web應(yīng)用及Web資源,以及正在不斷涌現(xiàn)的Web服務(wù)。
程序員還需要編寫更多的代碼以使得大量的用戶能夠訪問每個(gè)應(yīng)用,例如通過公司的Web站點(diǎn),例如使用公司內(nèi)部的桌面應(yīng)用程序等等。由于這些應(yīng)用都是"辛苦"編程的產(chǎn)物,幾乎很難再定制。當(dāng)需要融入新的電子商務(wù)流程,需要為額外的用戶群提供訪問界面,需要繼承不同的電子商務(wù)應(yīng)用以為用戶提供更完整的增值服務(wù),所有的這一切不得不從最初的系統(tǒng)設(shè)計(jì)開始做起。為什么會(huì)這樣?因?yàn)樗械膽?yīng)用都是從一次性開發(fā)的角度實(shí)施的,應(yīng)用的沒一個(gè)更改都需要由特定的程序員來完成。這樣,通過跨應(yīng)用集成的方式實(shí)現(xiàn)電子商務(wù)應(yīng)用的重用變得異常地困難。
由于每個(gè)應(yīng)用都有其自己特有的基礎(chǔ)架構(gòu),這些應(yīng)用在部署、更改和維護(hù)上的代價(jià)都異常高昂。企業(yè)不得不會(huì)每套應(yīng)用配置特有的專業(yè)技術(shù)人員,并保持與不同技術(shù)供應(yīng)商或解決方案供應(yīng)商的密切聯(lián)系。同時(shí)這些應(yīng)用即不能被方便地繼承,也不能隨著企業(yè)商務(wù)的規(guī)模擴(kuò)展而方便地實(shí)現(xiàn)應(yīng)用的規(guī)模擴(kuò)展。
我們很清楚地認(rèn)識(shí)到,即使是只有一個(gè)電子商務(wù)應(yīng)用,其創(chuàng)建、維護(hù)和定制的代價(jià)及復(fù)雜度就已經(jīng)是如此驚人了。何況要涉及多個(gè)這樣的應(yīng)用,其代價(jià)之高是可象而知的。
讓我們來考察當(dāng)企業(yè)部署若干個(gè)這樣的電子商務(wù)應(yīng)用的情形:
第一個(gè)應(yīng)用,企業(yè)的為之付出的總的費(fèi)用應(yīng)該是該應(yīng)用的開發(fā)和部署費(fèi)用、以及運(yùn)營(yíng)時(shí)態(tài)的維護(hù)和更新費(fèi)用。
第二個(gè)應(yīng)用,應(yīng)用的開發(fā)和部署費(fèi)用是一樣的,但是企業(yè)需要為之花費(fèi)額外的集成費(fèi)用,同時(shí)由于整個(gè)企業(yè)應(yīng)用環(huán)境變得更加復(fù)雜,其運(yùn)營(yíng)時(shí)態(tài)的維護(hù)和更新費(fèi)用可能呈指數(shù)形式增加。
同樣,當(dāng)?shù)谌齻€(gè)、第四個(gè)應(yīng)用被部署后,企業(yè)所支出的費(fèi)用可能是高得驚人。
這樣的電子商務(wù)應(yīng)用的實(shí)際運(yùn)營(yíng)狀況非但無法令企業(yè)商務(wù)規(guī)模迅速增長(zhǎng),甚至?xí)斐上喾吹挠绊懽饔?,因?yàn)榇藭r(shí),IT部門不得不雇傭更多的員工并花費(fèi)更多的資金來管理這些復(fù)雜而紛亂的應(yīng)用,并維護(hù)多種承載應(yīng)用的基礎(chǔ)架構(gòu)。
早先出現(xiàn)的電子商務(wù)技術(shù),比如EDI、web EDI (也許是基于XML的)、內(nèi)容服務(wù)器、應(yīng)用服務(wù)器、EAI(Enterprise Application Integration),以及那些為創(chuàng)建企業(yè)門戶以及其他單個(gè)電子商務(wù)應(yīng)用(上面提到的7種應(yīng)用)而設(shè)計(jì)的獨(dú)立解決方案都無法解決這個(gè)問題。它們之所以無能為力,是因?yàn)樗鼈儾粺o例外地都是基于復(fù)雜應(yīng)用連接的、不具備良好集成能力的應(yīng)用開發(fā)模式,它們都是通過程序代碼實(shí)現(xiàn)復(fù)雜應(yīng)用連接以連接用戶、電子商務(wù)應(yīng)用以及其他信息系統(tǒng)的。這樣的實(shí)現(xiàn)方式即無法有效地解決經(jīng)常發(fā)生的電子商務(wù)流程的更改而觸發(fā)的大額費(fèi)用,也無法有效地解決各類用戶的定制需求。
正確的解決方案: Web服務(wù)和商業(yè)Web
在本節(jié)中,我將描述一個(gè)能解決以上所有問題的解決辦法。
電子商務(wù)需要擺脫獨(dú)立解決方案的實(shí)現(xiàn)模式,需要舍棄復(fù)雜系統(tǒng)連接的實(shí)現(xiàn)方法。一個(gè)有效的電子商務(wù)應(yīng)用絕對(duì)不應(yīng)該是僅僅基于程序員以及那些復(fù)雜的代碼的。對(duì)于電子商務(wù)而言,傳統(tǒng)的由程序員主導(dǎo)的由里向外的開發(fā)模式應(yīng)當(dāng)被由用戶主導(dǎo)的由外向里的開發(fā)模式取代。冗長(zhǎng)的串行的開發(fā)循環(huán)應(yīng)當(dāng)被即時(shí)的,快速的應(yīng)用裝配所取代。同時(shí)這樣的應(yīng)用應(yīng)當(dāng)天生就具備高可定制性。如果探究其商業(yè)本質(zhì),這是來自經(jīng)過時(shí)間考驗(yàn)的商業(yè)技術(shù)概念:"即時(shí)制造"以及"規(guī)模可伸縮"等概念,我們需要做的就是將傳統(tǒng)的商業(yè)概念延伸到電子商務(wù)中去。
看了上一段的描述,大家可能會(huì)認(rèn)為這需要一個(gè)技術(shù)上的更本性變革,其實(shí),不然。
基于XML技術(shù)的Web服務(wù)正是解決這一問題的最佳手段。Web服務(wù)的使用將改變目前的開發(fā)模式和應(yīng)用部署的費(fèi)用規(guī)模。各種Web服務(wù)分表實(shí)現(xiàn)了一定的電子商務(wù)功能,通過將各種電子商務(wù)的Web服務(wù)進(jìn)行組合和集成以創(chuàng)建動(dòng)態(tài)電子商務(wù)應(yīng)用。Web服務(wù)能夠統(tǒng)一地封裝信息、行為、數(shù)據(jù)表現(xiàn)以及商務(wù)流程,而無需考慮應(yīng)用所在的環(huán)境是使用何種系統(tǒng)和設(shè)備。
通過使用Web服務(wù),企業(yè)能夠以前所不可能的方式通過抽象和混合將自身的電子商務(wù)組件化。當(dāng)一個(gè)企業(yè)的核心競(jìng)爭(zhēng)力被組件化之后,那么這些核心競(jìng)爭(zhēng)力就能夠很方便地在不同的企業(yè)之間共享,同時(shí)架構(gòu)跨企業(yè)的電子商務(wù)應(yīng)用,形成商務(wù)Web。
在商務(wù)Web中,將不需要為使用一個(gè)電子商務(wù)應(yīng)用而購(gòu)買這個(gè)電子商務(wù)應(yīng)用所承載的應(yīng)用軟件。Web服務(wù)是一種無需購(gòu)買并部署的組件,這種組件是被一次部署到Internet中,然后到處可用的一種新型組件,所有應(yīng)用只需要能夠連入Internet,就可以使用和集成Web服務(wù)。通過采用Web服務(wù),開發(fā)的代價(jià)顯著降低了,程序員無需與多種平臺(tái)進(jìn)行交互,他只需要與一種組件進(jìn)行交互,即Web服務(wù),同時(shí)Web服務(wù)的調(diào)用界面完全采用標(biāo)準(zhǔn)的XML及相關(guān)技術(shù),在代碼實(shí)現(xiàn)上代價(jià)也有顯著下降。通過采用Web服務(wù),部署和集成的費(fèi)用大大降低,流程的更改也無需更改大量代碼,甚至通過工具的支持,更本無需更改程序代碼。同時(shí)隨著新的Web服務(wù)技術(shù),如WSDL/UDDI/WSFL的大量使用,Web服務(wù)在運(yùn)行時(shí)態(tài)進(jìn)行動(dòng)態(tài)裝配將成為現(xiàn)實(shí),同時(shí)每個(gè)用戶甚至可以應(yīng)用戶的需要而實(shí)時(shí)裝配。
Web服務(wù)是未來?
全球權(quán)威IT行業(yè)研究評(píng)論機(jī)構(gòu)Gartner Group對(duì)未來5年的Web服務(wù)的發(fā)展?fàn)顩r做了預(yù)測(cè):
2001年,Web服務(wù)的架構(gòu)開發(fā)工具將被各大開放商開發(fā)完畢。開發(fā)人員能夠購(gòu)買到這些面向服務(wù)的開發(fā)工具。同時(shí)他們將會(huì)開始構(gòu)建實(shí)際使用的Web服務(wù)。
2002年,商業(yè)Web服務(wù)將大量出現(xiàn),大量的面向消費(fèi)者的B2C Web服務(wù)將被使用。
2003年,UDDI注冊(cè)中心應(yīng)Web服務(wù)的發(fā)展,變得越來也重要,其中的商業(yè)數(shù)據(jù)也越來越豐富。私有的UDDI注冊(cè)中心將被投入使用以支持內(nèi)部的服務(wù)信息的交換。而政府的Web服務(wù)(e-Government)應(yīng)用也將會(huì)不斷出現(xiàn)。
2004年,各類企業(yè)將會(huì)普遍接受基于Web服務(wù)的商務(wù)應(yīng)用模式,而服務(wù)集中的計(jì)算模式將會(huì)進(jìn)入青年期。私有的UDDI注冊(cè)中心仍然在各類應(yīng)用中處與優(yōu)勢(shì)地位。新的收入模式和商業(yè)渠道將到處可見。40%的金融財(cái)務(wù)服務(wù)事務(wù)將使用Web服務(wù)模式。而35%的在線政府服務(wù)將以Web服務(wù)的形式提供。
2005年,公共的UDDI注冊(cè)中心作為公共商務(wù)信息的交換機(jī)制而獲得大量的使用。動(dòng)態(tài)服務(wù)同樣將大量投入使用。
同時(shí)我們看到各大技術(shù)提供商都按照Gartner Group的預(yù)測(cè)陸續(xù)地推出Web服務(wù)的構(gòu)建工具:Microsoft的Visual Studio .NET,IBM的Web Service Toolkit,SUN的Sun ONE等等?;赪eb Service的公共技術(shù)標(biāo)準(zhǔn)SOAP/WSDL/UDDI/WSFL或是已經(jīng)成為事實(shí)行業(yè)標(biāo)準(zhǔn),或是正在制訂的進(jìn)程中,各大技術(shù)提供商和傳統(tǒng)商業(yè)企業(yè)都投入到了標(biāo)準(zhǔn)的制定和應(yīng)用的架構(gòu)中去。作為Web服務(wù)的體系架構(gòu)的領(lǐng)導(dǎo)者IBM和Microsoft也開始在全球推廣Web服務(wù)技術(shù)。我們有理由相信Web服務(wù)將成為將來動(dòng)態(tài)商務(wù)Web的主流技術(shù)。
什么是Web服務(wù)?
我們已經(jīng)從商業(yè)需求的角度和技術(shù)實(shí)現(xiàn)的可行性上討論了Web服務(wù)的可行性和必要性。由于大部分的讀者是技術(shù)人員,所以我相信大家對(duì)Web服務(wù)的各種實(shí)現(xiàn)技術(shù)會(huì)非常有興趣,對(duì)Web服務(wù)的架構(gòu)過程也一定更有興趣,對(duì)如何在某個(gè)具體的Case中使用Web服務(wù)架構(gòu)一定非常有興趣,我將在本文章系列的后續(xù)部分中逐一描述并提供答案。