James's profileJames の BlogPhotosBlogListsMore ![]() | Help |
|
|
11/9/2005 SOA面面觀
9/2/2005 IBM : 服務導向架構中的資訊管理,第 1 部分: 發現 SOA 中的資訊管理角色標題 IBM : 服務導向架構中的資訊管理,第 1 部分: 發現 SOA 中的資訊管理角色 學習資訊管理、它對服務導向架構(Service-Oriented Architecture,SOA)的重要性以及資訊管理和 SOA 之間的關係。然後我們研究將這些具有挑戰性的問題和重新設計應用到 SOA 中的資訊管理的優點。本文中(本系列文章包含兩部分,本文是第一部分),作者將資訊管理分為幾個不同的服務,並且提供了對於這些服務的高級概述。本文的目標讀者是架構師、資料建模者、資料庫管理員以及那些想要利用資訊管理功能的開發者,他們將該功能用於基於 SOA 的建模、架構、設計以及實作。 了解更多資訊 http://www-128.ibm.com/developerworks/tw/library/ws-soa-ims/ IBM developerWorks 台灣 IBM 為開發人員提供的資源 http://www.ibm.com/developerworks/tw 6/24/2005 服務導向架構 (Service Oriented Architecture) 應用服務導向架構 (Service Oriented Architecture) 應用專欄: 作者:簡西村(台灣微軟開發工具暨平台推廣處資訊平台策略顧問) 貼近商業流程的新一代資訊架構: SOA 服務導向架構 (SOA, Service Oriented Architecture) 是一種新興的系統架構模型,其主要概念是針對企業需求組合而成的一組軟體元件。組合的元素通常包括:軟體元件、服務及流程三個部份,當企業面對外部要求時,流程定義外部要求的處理步驟;服務包括特定步驟的所有程式元件,而元件則負責執行工作的程式。例如,當企業面對顧客訂單要求時,流程訂定訂單的處理步驟,服務則包括信用查詢、庫存查詢及接單作業等等,元件則是指真正完成信用查詢、庫存查詢等工作的程式。由例子中可見,SOA 的系統組成與企業的經營管理基本單元十分接近,如此高階的應用系統發展模式可使得發展者更專注於企業需求的滿足 (coarse grain),而不僅僅是資訊技術的應用 (fine grain)。SOA 已成為現今軟體發展的重要技術,透過 SOA 讓異質系統整合變得容易,程式再用度也提高。不必自行開發或擁有所有程式元件,發展者可以視需要組合網路上最好的服務。不受限於特定廠商的產品功能或是平台,達到真正的開放性 (Openness)。 從分散式元件架構到 SOA 概念上,SOA 如同物件導向、軟體元件等軟體技術一般,運用小的零組件組合成應用系統。但 SOA 強調的是如何將彼此關係鬆散的應用系統功能元件在網路上發行、組合及使用。SOA 具有下列技術特性:
Web Services 是目前的技術中可以用來實現 SOA 的主要介面標準,以下提出幾個應用方向: A. EAI(Enterprise Application Integration) 透過資訊化以及 ERP 的導入,把銷售、庫存、生產排程、MRP、採購及財務等企業主要的機能整合成單一系統。SOA 針對 EAI 技術上能提供更標準的做法。實作上可以將 API 封裝成 Web Services 介面來使用 (Peer to Peer),建構一個 Common Bus 的環境來作為整合平台。 B. B2Bi(Business to Business integration) 以技術面來說,B2Bi 包含流程管理技術 (Business Process and Modeling)、傳輸與通訊協定技術 (HTTP, SMTP, TCP/IP)、實作技術規格 (Implementation Framework Specification) 與加密技術等。目前 Microsoft BizTalk Server 已經運用 Web Services 技術於 B2Bi 技術領域。簡單來說,B2Bi 整合技術考量的幾個因素與重點是 :Open Standard、Secure 與 Reliable。至於 Web Services 提供了 B2B 最大的能力是 Visibility & Velocity
C. BPM(Business Process Management) 在強調企業電子化的時代,以 Business Process 的調整與變動的彈性與否已成為影響企業成功的關鍵因素。因此以流程進行整合的 BPM 是企業進行系統整合時的一種工具。傳統應用均以 workflow based 的工具來進行流程管控。即使以 BPM 工具來進行流程管理也免不了有系統整合與資訊處理的議題。Web Services 提供一種新的整合方式,以往 Flow engine 之間沒有標準的串接方式。不論是以 API 直接呼叫或是以資料庫來進行整合。而 BPM 領域目前已經從 in house process improvement 走到跨企業的 business partner process improvement,其中整合的議題更為困難。 利用 Web Services 技術作為 BPM 底層的協定將能解決跨流程 (企業內跨系統與跨部門或是跨企業間)流程控管的技術問題。透過 Web Services 一方面將企業內系統整合流程化以及商業流程電子化。也同時能將客戶或是廠商的流程結合進企業流程中提高協同運作的程度。而同時也能將自己具有競爭力的流程 expose 出去供企業夥伴使用。(如圖一)利用電子商務形成虛擬企業的境界也將因 Web Services 於 BPM 的應用得以實現。
圖 1 在 SOA 架構下,運用 Web Services 來作為主要標準,整個發展與演化將可分成三大階段(如圖二):
圖 2
目前 Microsoft 以Microsoft .NET 平台做為 SOA 主要的開發與執行平台。隨著 WS-* 系列標準的訂定,Web Services 技術也愈趨成熟。Microsoft 在下一代系統 Longhorn 所提供的藍圖中,也將 WS-* 相關技術納入產品中。 3/28/2005 客戶真的需要SOA嗎?客戶真的需要SOA嗎? 出處:Taiwna.CNET.com:企業應用:IT技術 Michael Liebow著.唐慧文譯 2005/02/22 2005年才剛開始,服務導向架構(SOA)就已經具有成為年度熱門話題的架式。 產業界的博學之士已思索各式各樣的問題,並提出種種預測。2005年會是SOA竄紅的年頭嗎?今年會是客戶採用SOA的年頭嗎?SOA會是這一年眾人最津津樂道的名詞嗎?會不會也變成最誇大不實的名詞呢? 容我再添一項:客戶真的需要SOA嗎? 所有關於SOA的討論幾乎都集中在彈性、把應用程式拆解成服務、模組化、再利用、可得性提高以及服務的管理上。SOA可切割、執行任何你交辦的任務,而且做得更快、更有效率,成本也比以往用過的其他方法來得低廉。這一切究竟有何意義?這些討論通常都是空論,未觸及企業真正需要因應的實際商業問題或商機。這種情況可能導致SOA陷入只為使用技術而使用技術的危險。上一回這種情況發生時,造成景氣衰頹,現在資訊工業好不容易才走出不景氣、開始復甦。 有沒有客戶說,他們最擔心的是無法憑應用程式打造服務?這種客戶我倒沒見過。環繞SOA的討論忽略了客戶今天真正需要解決的實際商業問題。電信公司和無線服務提供者擔心顧客流失。製藥公司日以繼夜研發救命的新藥,設法讓藥品快一點上市。醫院希望病歷能夠時時更新,好讓醫師在緊要關頭需要查閱病歷時俯拾即得。 我們需要展開不同類型的討論。這種討論的重點必須是:解決實際商業問題,對協助客戶轉型到能迅速回應市場環境變遷的隨選(on demand)業務,究竟有多重要。SOA可協助達此目標,憑仗的是提供一個可互通的、可調適的和有彈性的產業標準架構,但最重要的則是與商業緊密相連。幾乎任一種產業標準運用成功的論點,對SOA來說都適用。標準讓企業更容易做生意,而且產生規模效率。 對SOA可能衍生的利益一無所知的商業領袖,可能在市場上失去競爭優勢,被更靈活、懂得善用這種強大新興技術的競爭對手超越。SOA提供的商業價值極大,分析師預期,短短兩年之後,企業為了取得SOA帶來的利益,將在軟體與服務上投資210億美元。 SOA被策略性地擺在商業與科技交接處的中心,好讓企業能迅速適應瞬息萬變的環境。SOA讓IT部門跟上商業任務的腳步,作法是從基本的應用程式與IT系統中萃取商業流程,並加以自動化。把商業流程自IT分離出來,會產生極大的商業彈性,讓企業領導者加強控制公司內部的交易,以及公司與商業夥伴、供應商乃至於顧客的交易。 幾乎每家公司內部的每個商業流程都與科技有關聯。有了SOA,一個組織即可對員工、顧客和商業夥伴提供服務,無須像從前的專屬方案那般投入大量的時間與金錢。因為人人都依循同一套標準,企業就能夠快速反應、彈性應變而且具有競爭力。橫跨整個企業部署SOA,會釋出IT資源,有助於確保科技投資集中在能夠帶動業績成長的核心功能。 客戶著手建構SOA時,必須根據業務的需求而行。務必發展出一套詳細的計畫,認清公司為支援改良式商業流程所需要發展或加入的服務為何,並訂定優先順序。一家公司——或更明確地說,一個IT部門——不能只是憑空猜測哪些服務可帶來最大的附加價值,必須有一套系統性的作法,始能發展出一份部署服務導向架構的藍圖。 這種作法有助於確定依商業流程模型訂定的目標得以確實落實,並以有效率的方式產生最大的成效。橫跨整個企業部署SOA,會釋出IT資源,有助於確保科技投資集中在能夠帶動業績成長的核心功能。 回到我剛開始的問題,我懷疑我今年或未來會碰到任何一個主動要求非SOA不可的客戶。 SOA是一份藍圖,是一種達到目標的手段。客戶需要的是彈性,以便把營收擴大到極至、提供更好的客戶服務、降低成本,並協助符合法令的規定。SOA正是協助他們達到那些目標的一種產業標準。 (Michael Liebow是IBM Global Services網路服務部副總裁) 1/13/2005 服務導向架構(Service Oriented Architecture)應用專欄:作者:簡西村 (台灣微軟開發工具暨平台推廣處資訊平台策略顧問) 2005 年 1 月 由於服務導向 (Service-Oriented, SO) 以服務的思維將所有現有資源 (包含既存應用系統與元件) 以服務型式重新看待,服務之間的溝通以 message 形式來進行交換,以鬆散耦合 (loosely-couple) 的型態解決了以往在跨系統(企業內以及企業間)的分散式系統整合問題。然,這是否宣告物件導向 (Object-Oriented, OO) 時代即將結束而服務導向將取而代之?答案是否定的。在企業面對整合與改變的常態中,OO 以及 SO 將同時扮演中重要的角色。 Service-Oriented vs. Object-Oriented要談 SO 與 OO 這兩個看起來好像沒什麼關聯的東西之異同,要從 OO 談起。說到程式開發,早期大家都是一隻程式寫到底。需要重新使用的 procedure 或是 function 也是洋洋灑灑的嵌在一隻主程式中。透過程式庫把重用性高的程式碼抽離出來變成共用程式庫。方便自己也方便他人。然而,只有同一種程式語言的所編譯而成的程式才能呼叫程式庫。到了 OO 的時代,透過物件化的分析讓可重用的程式變成了元件。元件如何切割與再用有一套方法。元件化的好處是可重用性提高許多,而寫程式已經稍稍可以組裝一些元件來使用。市場上也開始有商業化的元件提供。 網路的盛起讓商業模式起了很大的變化。企業內利用網路來連結各個應用系統以及交易伙伴間進行線上商業行為變得愈來愈普遍。整合的需求也愈來愈大。以往以 OO 形式存在的系統,一旦面對跨系統的整合問題都得還是面臨許多的限制與包袱,如:
透過元件服務化把分散式元件架構上的限制去除,只留下呼叫者與被呼叫者間的使用協定 (agreement) 以及呼叫 / 傳回參數 (message)。元件透過重新封裝後,以單元性服務 (elementary service) 型態存在,透過服務組裝形成更複雜的整合服務,或是更貼近商業流程的商業服務。以服務導向為基礎的系統分析與企業的經營管理分析十分接近,這樣的發展模式可使得發展者更專注於企業需求的滿足,而不僅僅是資訊技術的開發。同時又能不受限於特定廠商的產品功能或是平台,達到真正的開放性。服務導向架構的效果會在所有的資源逐步服務化之後顯現。當可供使用的服務具有一定的量之後,透過服務的重新組裝將使應用系統開發的時間快速縮短,也能隨著需求彈性的調整與改變。整個服務導向架構的導入過程是逐步漸進的方式。同時也能包容既有的 IT 系統。 整個演進過程如圖一。
服務間以訊息作為傳輸的準則是服務導向的特色。然此時訊息傳輸已經是透過 Internet,系統之間已經超過了單一企業內的範疇,因此處理的問題也頗為繁瑣。其中包含訊息傳輸的可靠性 (reliability)、訊息傳送的安全性與不可否認性以及訊息的繞送 (routing) 等等。目前實作上普遍使用 Web Services 相關標準與技術做為 SOA 的實作技術。透過 WSA (Web Services Architecture) 提供訊息處理的框架 (如圖二)。
以 WSA 作為訊息處理機制是目前業界支援 SOA 的主流方向,WSA 包含了底層傳輸層的協定、基礎層以及應用層。傳輸層規範了 HTTP/TCP/UDP/SMTP 等傳輸通訊協定,基礎層處理了 Web Services 跨系統間主要的問題如安全性、可靠性以及交易完整性等,同時包含了訊息格式以及資料格式訂定。應用層處理了流程管理 (如即將成為主流的 BPEL, Business Process Execution Language) 與 Services Management 議題 (以服務導向為基礎的管理也是個有趣的議題,這部份留到下回分解)。 主要的業界標準 (WS-*) 也透過 WS-I 來做為協商的組織。然而現存的 IT 環境中或許已經存在許多的訊息格式。如 EDI 電子資料交換、各家的 message queue 以及與 ERP 或是其他應用系統整合之格式等。一個設計完善的 SOA 訊息處理機制與架構必須能與現有訊息格式整合。以微軟的伺服器軟體產品來說,以 BizTalk server 為主要支援的產品,除了處理既有系統的整合與流程管理,也同時支援 Web services enablement 以及 BPEL 流程管理標準。 SOA 企業應用架構Microsoft 在 .NET 應用架構中提出支援企業運用 SOA 架構的藍圖 (如圖三)。
這個架構跟以往多層式 (N-tiers) 架構或是對比於 J2EE blueprint 差異不多。值得一提的是,Microsoft 特別針對 SOA 的部份做了強化。針對每個層次間增加了服務存取介面 (如圖三中:Business Tier 的 Services Interfaces 以及 Data Tier 的 Service Agents)。 以處理最複雜程序的 Business Tier 之間來看,除了以往與前端介面透過 ASP.NET 來呼叫,也提供 Services Interfaces 讓其他 Service Client 來使用 Business Tier 的 Service。如此一來,對內這個部門或團隊寫好的服務程式就可以讓其他單位來使用。對外可以提供其他企業夥伴來使用。類似案例如 Google 搜尋服務、 Amazon 查詢服務等。以處理商業流程來看 Business Tier,透過服務導向的設計將商業流程直接 build in 成 Service Flow 就很容易由 workflow 來執行與管理相關服務之整合與串流。(如圖四)
企業應用 SOA 作為主要架構,最後幾點建議供作參考:
您有任何問題、意見或建議嗎?您可以透過下列電子郵件與作者連絡: |
|
|