| Web 2.0:打造開(kāi)放參與的架構 |
| 作者: builder.com.cn 2007-04-03 15:52:13 |
| 上周談了些Web 2.0及SOA之間的相似處,本周再談些Web 2.0 和 SOA 的比較。我發(fā)現二者在某些特征上有異曲同工之處。上回提到 Tim O‘Reilly 的 Web 2.0 專(zhuān)文。其中談到一項 Web 2.0 的 pattern,叫 "Architecture of Participation" -- 開(kāi)放參與的架構。什么叫「開(kāi)放參與的架構」?之前文章中提到,懂得搶搭、駕馭 Web 2.0 潮流的眾家網(wǎng)站,如 Google, Yahoo, Amazon 等,近幾年來(lái)紛紛將許多站內的功能以 Web API 的方式提供出來(lái)。 我們看它們在過(guò)去 Web 1.0 時(shí)代,正如同當今大多數尚未「Web 2.0 化」的網(wǎng)站一樣,少了這層 Web API(以 XML/Web servivces 方式提供),那么瀏覽器/HTML網(wǎng)頁(yè)就成了唯一的媒介,讓大家可以去使用這些網(wǎng)站的功能,取得它提供的信息?;蛟S有的人會(huì )直覺(jué)上認為,有網(wǎng)頁(yè)可以去操作、瀏覽,感覺(jué)上已經(jīng)很夠用了,為什么還要大費周折搞個(gè) Web API? 正因為 Web API 是一個(gè)開(kāi)放參與的架構。如果沒(méi)有它,我們對一個(gè)網(wǎng)站的功能和操作接口,便毫無(wú)選擇和掌控的權利-- 接口設計成什么樣子,進(jìn)階搜尋有哪些條件選項,一切都操控在該網(wǎng)站的主事者手上;更甭提將數個(gè)網(wǎng)站的功能融合在一起,作創(chuàng )新的 mashup 應用了。舉個(gè)更實(shí)際的例子,Amazon.com 創(chuàng )辦人/CEO Jeff Bezos 在一年半前一場(chǎng) Web 2.0 的演講中提到,他們提供了 Web services 之后,讓很多 Amazon 自己沒(méi)時(shí)間做、較低優(yōu)先的創(chuàng )新應用,能借他人之手,讓網(wǎng)絡(luò )上廣大的程序設計者,根據自身的需要,一同來(lái)幫忙開(kāi)發(fā)。 在眾多的創(chuàng )新應用中,有一個(gè)得獎的應用叫 ScoutPal。這是某位網(wǎng)站開(kāi)發(fā)人員,為了幫忙在網(wǎng)絡(luò )上作舊書(shū)買(mǎi)賣(mài)的太太所寫(xiě)的。他用 Perl 語(yǔ)言,只花了一天的時(shí)間便完成了這個(gè)應用。搭配一個(gè) bar code 掃描儀,接上一個(gè)可無(wú)線(xiàn)上網(wǎng)的手機/PDA,便可以讓她在四處尋訪(fǎng)搜集舊書(shū)時(shí)(像是去跳蚤市場(chǎng)、舊書(shū)攤和私人庭院辦的 garage sales),立即從 Amazon 的 Web services 中查詢(xún)到一本書(shū)當下的行情。藉以和眼前的貨主所愿意出的價(jià)相比,來(lái)決定是否值得把書(shū)買(mǎi)下來(lái)。 也就是說(shuō),提供一個(gè)開(kāi)放的架構,廣邀各路網(wǎng)絡(luò )開(kāi)發(fā)好漢,不管是擅長(cháng)哪一種語(yǔ)言 -- JavaScript, Perl, Java, PHP, Python, Ruby, VB, C#... 的開(kāi)發(fā)人員,都能輕易快速地兜出一個(gè)組合式的應用,來(lái)快速滿(mǎn)足各自的需要。 企業(yè)所致力打造的 Service-Oriented Architecture,正是這么一個(gè)參與的架構(Architecture of Participation)。而企業(yè)進(jìn)行 SOA 體質(zhì)改造的第一大要務(wù),正是研究如何將必須不斷沿用下去的各后臺 legacy 系統,給 service-enable 起來(lái)。換句話(huà)說(shuō),就是替他們設計一層 Web API,將既有的重要功能以 XML/Web services 的方式給包裝起來(lái)。 由于 XML/Web services 是完全跨平臺、跨程序語(yǔ)言的媒介,各種相應的高階 API、工具箱,和可視化發(fā)展工具又日新月異,因此開(kāi)發(fā)組合式應用 (Composite Applications) 的門(mén)坎比傳統的應用開(kāi)發(fā)低了許多。這么一來(lái),CIO 便可開(kāi)始將企業(yè)內原本隸屬不同團隊(如 J2EE, .NET, PHP, SAP, PowerBuilder...)的開(kāi)發(fā)人員加以整并,統合運用,而可更有效率地作任務(wù)編組,來(lái)完成未來(lái)需要交付的新應用。此項 SOA 所帶來(lái)的獲益,就個(gè)人觀(guān)察,在目前已成功導入的企業(yè)中,屢見(jiàn)不鮮。 有人預測,五年至十年之后,隨著(zhù) SOA 的大行其道,成功的企業(yè)將逐漸實(shí)現 Gartner 所謂的 "Real-time Enterprise"。也就是說(shuō),業(yè)務(wù)部門(mén)有任何新的應用需求,都能很快地得到實(shí)現。有的時(shí)候,業(yè)務(wù)人員甚至不需借手 IT 部門(mén)。因為許多業(yè)務(wù)服務(wù),都已經(jīng)以高階的 Web services 的方式提供出來(lái),許多會(huì )在 Excel 里作一點(diǎn) scripting 的 power users 和 business analysts,都能夠很輕易地去運用,例如在電子表格中動(dòng)態(tài)呼叫幾個(gè) Web services,組出一份最實(shí)時(shí)的報表。 我在 BEA 一位負責業(yè)務(wù)的同事,數年前在某大軟件公司任職業(yè)務(wù)時(shí),就曾經(jīng)因為公司的 commission 計算方式太過(guò)龐雜,從來(lái)沒(méi)有人真正搞清楚過(guò)到底算出來(lái)的數字是否正確,就連會(huì )計都有時(shí)都不是很確定。這位兄弟索性自己寫(xiě)一個(gè) Excel 電子表格,造福大眾。從此以后,不再有計算獎金的爭議。其實(shí)企業(yè)里面臥虎藏龍,具有這種實(shí)力的 power users 甚至不在少數,「開(kāi)放參與的架構」和 SOA 提供了他們更多揮灑的空間和參與的機會(huì ),來(lái)打造他們最切身需要的應用。 文/蕭百齡 (勞虎) |
聯(lián)系客服