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