組合式的Web Services開發
时间:2005-12-09 来源:gust
上次我們談到在Web 1.0時代,隨著網站雨後春筍的興起,愈來愈多的AP開始在Web server上開發與執行。無心插柳的普遍現象,反倒是給當時仍在嬰兒階段的三層式應用架構,注射一劑超強的生長激素。中間層 (middle-tier) 成了AP运行的中心,而应用伺服务器 (AP server) 這號軟體也就應运而生,经过這幾年下來,如今AP server已不再給人洪水猛獸的印象,反而逐漸步入成熟期,肩負著愈來愈多的關鍵性任務。
那麼到底AP server長得什麼樣子?AP server可說是最新一代、融合性的middleware,並且使用元件化的模型,搭配物件導向的開發方式。主要功能包括提供HTTP動態網頁服務、交易控制、訊息(佇列)、資料庫資源共享,Legacy系統介接和連結等。
在架構上,從水平面向來看,AP server介於使用者器具(如瀏覽器等thin-client)、資料庫與Legacy系統之間,且提供應用服務。從垂直面來看,AP server 執行於OS 之上,為伺服器上執行的應用程式邏輯供應許多的基礎設施服務,包括通信協定的處理,以及多種最佳化的機制。其目的在於替應用開發人員打理低階、瑣碎的底層服務,因為這些系統面的相關開發,正是一般熟悉特定domain的IT 開發人員比較不擅長的。
回顧AP server起初的發展,廠商都各自在不同的技術框架上實作,像Allaire的Code Fusion (即CFML;後來決定跟隨Java 潮流,因而併購 JRun,最後又被 Macromedia 所併)、ATG Dynamo的JHTML。而BEA 則是押注在EJB之上;至於IBM最初的選擇是CORBA。
與上述廠商站在全然不同技術架構的微軟,在毅然決然要擺脫掉DNA/COM+之後,走的是自己的.NET路線。不過,就在Windows Server 2003 上市前數月,微軟也決定要和其他眾多廠商一樣,使用「AP server」的稱呼。經過幾年洗牌下來,能存活的架構只剩下J2EE 和 .NET。
隨著Java陣營AP server標準化的腳步(主要來自市場的壓力),以及open-source AP server的發展,約在兩年前開始,便愈來愈常聽到「AP server要變成 commodity 了」的話題。什麼叫 commodity?期貨的英文正是commodity。期貨市場中交易的那些穀物等大宗物資,正是 commodity,也就是大眾商品。
當功能品質愈差不多,品牌自然愈難以突顯(撇開抵制基因改造產品的問題,很少有聽說穀子需要挑品牌的)。另如收音機、冰箱,甚至 PC,發展愈趨成熟、標準化愈徹底的東西,commodity 的味道自然就重。那麼到底AP server 是否已成commodity 了呢?雖然這不是我們要討論的主題,不過我們也可以從這十多年來SQL語言的標準化,以及關聯式資料庫市場的發展,看出一點端倪。
和SOA有比較重要關聯的是,觀察近兩年來高檔次、一線的AP servers的發展,都著眼於提供更高階的功能加值。兩個最重要的主軸,一是透過一般稱為入口 (portal) 伺服器的機制,提供更好的使用者體驗,包括個人化及multi-channel的支援;一是提供企業資訊整合 (integration) 的平台,包括Legacy應用的整合、與上下游、主要客戶/夥伴間的系統整合,以及橫跨異質資料源的資料彙整等。
隨著SOA和Web services的潮流,帶來了組合式應用 (composite application) 的開發方式和觀念,開始逐漸被大量應用在入口網站和整合工作(integration)上。
組合式portal的做法,就是透過portal介面所提供的應用,往往不見得真的執行在portal伺服器上,而經常是以借花獻佛的方式,將人家現成的Web services 即時抓過來,再加以呈現,同時彙整給portal的使用者。
在整合方面,也是走組合式的潮流。透過高階工具來設定,讓資訊系統得以機動性配合任務的調整,對各項以Web services方式提供的服務進行不同形式的串聯和協作,同時快速的加以部署。這個熱門的新領域,一般稱之為 商業流程管理(BPM; Business Process Management)或商業流程自動化(BPA;Business Process Automation)。
經由組合的方式構成的新AP,本身又可以變成一支新的服務,這就是「開發即整合,整合即開發」的觀念。隨著 SOA 將逐漸普及,分析機構Gartner group 甚至預測,組合式的作法將在3、5年內成為Web services開發的主流模式。