簡介
SOA是英文Service-Oriented Architecture 三個首字母單詞的縮寫,中文譯為:面向服務架構(SOA),SOA架構與B/S 、C/S架構是目前最流行三種Web服務的基礎架構。
歷史原因
傳統企業(資料庫)套用軟體產品,如MRP、ERP、OA系統等,在設計或架構上都是緊偶合、封閉式、自成體系,屬於一次性投入一次性完結的產品。這樣的產品很難適應或快速回響市場或客戶靈活多變的需求,以及後續的擴展。在這樣的市場、及客戶需求下,從而催生了軟體產品一種新的設計或架構的理念:面向服務架構(SOA架構)。
定義特性
SOA架構,是一種粗粒度、開放式、松耦合的服務結構,要求軟體產品在開發過程中,按照相關的標準或協定,進行分層開發。通過這種分層設計或架構體系可以使軟體產品變得更加彈性和靈活,且儘可能的與第三方軟體產品互補兼容,以達到快速擴展,滿足或回響市場或客戶需求的多樣化、多變性。
組件分層
BEA WorkShop for Weblogic Platform (或簡稱:Weblogic WorkShop)軟體開發工具,是目前行業唯一認可的SOA架構軟體產品開發工具。用戶在其下進行SOA架構的軟體產品開發,可以不必關注有關SOA架構的標準要求或協定要求,只需埋頭實現業務需求的組件編寫工作。 組件編寫要求分四層:持久層、邏輯層、執行層、用戶接口層。如軟體系統為分散式系統,則需要編寫第五層:Web Services(服務層,注意不是:Web Server 伺服器)
現實意義
軟體產品設計成SOA架構及目的或者現實的意義是:保全或保護企業原來遺留下來的軟體系統(數據),實現軟體數據的無縫接軌,避免企業原有投資打水漂、數據需重複錄入。由此,可以縮短軟體產品的實施推廣期。可以在實施推廣期間,快速調整以最大程度的滿足客戶的需求。在客戶套用業務發生改變,必須進行新的投入、改造時,產品可以進行新的快速擴展或直接第三方設備(軟、硬體)兼容。從而避免產品本身的僵化,成為使用者的遺留系統。1996年,Gartner最早提出SOA。2002年12月,Gartner提出SOA是"現代套用開發領域最重要的課題",還預計到2008年,SOA將成為占有絕對優勢的軟體工程實踐方法,主流企業現在就應該在理解和套用SOA開發技能方面進行投資。更好支持商業流程SOA並不是一個新事物,IT組織已經成功建立並實施SOA套用軟體很多年了,BEA、IBM、等廠商看到了它的價值,紛紛跟進。SOA的目標在於讓IT變得更有彈性,以更快地回響業務單位的需求,實現實時企業(Real-Time Enterprise,這是Gartner為SOA描述的願景目標)。而BEA的CIO Rhonda早在2001年6月就提出要將BEA的IT基礎架構轉變為SOA,並且從對整個企業架構的控制能力、提升開發效率、加快開發速度、降低在客戶化和人員技能的投入等方面取得了不錯的成績。SOA是在計算環境下設計、開發、套用、管理分散的邏輯(服務)單元的一種規範。這個定義決定了SOA的廣泛性。SOA要求開發者從服務集成的角度來設計套用軟體,即使這么做的利益不會馬上顯現。SOA要求開發者超越套用軟體來思考,並考慮復用現有的服務,或者檢查如何讓服務被重複利用。SOA鼓勵使用可替代的技術和方法(例如訊息機制),通過把服務聯繫在一起而非編寫新代碼來構架套用。經過適當構架後,這種訊息機制的套用允許公司僅通過調整原有服務模式而非被迫進行大規模新的套用代碼的開發,使得在商業環境許可的時間內對變化的市場條件做出快速的回響。SOA也不僅僅是一種開發的方法論--它還包含管理。例如,套用SOA後,管理者可以方便的管理這些搭建在服務平台上的企業套用,而不是管理單一的套用模組。其原理是,通過分析服務之間的相互調用,SOA使得公司管理人員方便的拿到什麼時候、什麼原因、哪些商業邏輯被執行的數據信息,這樣就幫助了企業管理人員或套用架構師疊代地最佳化他們的企業業務流程、套用系統。SOA的一個中心思想就是使得企業套用擺脫面向技術的解決方案的束縛,輕鬆應對企業商業服務變化、發展的需要。企業環境中單個應用程式是無法包容業務用戶的(各種)需求的,即使是一個大型的ERP解決方案,仍然不能滿足這個需求在不斷膨脹、變化的缺口,對市場快速做出反應,商業用戶只能通過不斷開發新套用、擴展現有應用程式來艱難的支撐其現有的業務需求。通過將注意力放在服務上,應用程式能夠集中起來提供更加豐富、目的性更強的商業流程。其結果就是,基於SOA的企業套用系統通常會更加真實地反映出與業務模型的結合。服務是從業務流程的角度來看待技術的--這是從上向下看的。這種角度同一般的從可用技術所驅動的商業視角是相反的。服務的優勢很清楚:它們會同業務流程結合在一起,因此能夠更加精確地表示業務模型、更好地支持業務流程。相反我們可以看到以應用程式為中心的企業套用模型迫使業務用戶將其能力局限為應用程式的能力。企業流程(enterprise process)是流經企業框架的空氣,它賦予業務模型里的組件以生命,並更加清晰地定義了它們之間的關係。流程定義了同業務模型進行互動操作的專門方法。例如,會計可能是企業服務系統的一個組件--但是將發票寄給客戶卻是一個業務流程。服務被定義用來支持業務流程,因而貫穿整個流程始終的是:各種服務組件在流程和邏輯實現過程中的裝配操作。理解業務流程是定製服務的關鍵所在。有利於企業業務的集成傳統的套用集成方法(點對點集成、企業訊息匯流排或中間件的集成(EAI)、基於業務流程的集成)都很複雜、昂貴,並且不靈活。這些集成方法難於快速適應基於企業現代業務變化不斷產生的需求。基於面向服務架構 (SOA) 的套用開發和集成可以很好的解決其中的許多問題。SOA 描述了一套完善的開發模式來幫助客戶端套用連線到服務上。這些模式定製了系列機制用於描述服務、通知及發現服務、與服務進行通信。不同於傳統的套用集成方法,在 SOA 中,圍繞服務的所有模式都是以基於標準的技術實現的。大部分的通信中間件系統,如 RPC、CORBA、DCOM、EJB 和 RMI,也同樣如此。可是它們的實現都不是很完美的,在權衡互動性以及標準定製的可接受性方面總是存在問題。SOA 試圖排除這些缺陷。因為幾乎所有的通信中間件系統都有固定的處理模式,如RPC 的功能、CORBA 的對象等等。然而,服務既可以定義為功能,又可同時對外定義為對象、套用等等。這使得 SOA 可適應於任何現有系統,並使得系統在集成時不必刻意遵循任何特殊定製。 SOA 幫助企業信息系統遷移到"leave-and-layer"架構之上,這意味著在不用對現有的企業系統做修改的前提下,系統可對外提供 Web 服務接口,這是因為它們已經被可以提供 Web 服務接口的套用層做了一層封裝,所以在不用修改現有系統架構的情況下,SOA 可以將系統和套用迅速轉換為服務。SOA 不僅覆蓋來自於打包套用、定製套用和遺留系統中的信息,而且還覆蓋來自於如安全、內容管理、搜尋等 IT 架構中的功能和數據。因為基於 SOA 的套用能很容易地從這些基礎服務架構中添加功能,所以基於SOA的套用能更快地應對市場變化,為使企業業務部門設計開發出新的功能套用。