SOA簡介

wangjun_pfc發表於2007-10-05
SOA是一種架構模型,它可以根據需求通過網路對鬆散耦合的粗粒度應用元件進行分散式部署,組合和使用.服務層是SOA的基礎,可以直接被應用呼叫,從而有效控制系統中與軟體代理互動的人為依賴性.
SOA
的關鍵是"服務"的概念,W3C將服務定義為:"服務提供者完成一組工作,為服務使用者交付所需的最終結果.最終就構通常會使使用者的狀態發生變化,但也可能使提供者的狀態發生變化,或者雙方都產生變化".
Service-architecture.com
SOA定義為:"本質上是服務的集合.服務間彼此通訊,這種通訊可能是簡單的資料傳送, 可能是兩個或更多的服務協調進行某種活動.服務間需要某些方法進行連線.所謂服務就是精確定義,封裝完善,獨立於其他服務所處環境和狀態的函式".
Looselycoupled.com
SOA定義為:"按需連線資源的系統.SOA,資源被作為可通過標準方法訪問的獨立服務,提供給網路中的其他成員.與傳統的系統結構相比,SOA規定了資源間更為靈活的鬆散耦合關係."
Gartner
則將SOA描述為:"客戶端/伺服器的軟體設計方法,一項應用由軟體服務和軟體服務使用者組成.....SOA與大多數通用的客戶端/伺服器模型的不同之處,在於它著重強調軟體元件的鬆散耦合,並使用獨立的標準介面."
Gartner
相信BPM(Business Process Management)SOA的結合對所有型別的應用整合都大有助益-"SOA極大的得益於BPM技術和方法論,但是SOA面臨的真正問題是確立正確的 企業意識,:強化戰略性的SOA計劃(針對供應和應用)並鼓勵重用."
從上述定義中我們可以看到SOA的幾個關鍵特性:一種粗粒度,鬆耦合服務架構,服務之間通過簡單,精確定義介面進行通訊,不涉及底層程式設計介面和通訊模型.

SOA
並不是一種現成的技術,而是一種架構和組織IT基礎結構及業務功能的方法.SOA是一種在計算環境中設計,開發,部署和管理離散邏輯單元(服務)的模型.
SOA
要求開發人員將應用設計為服務的集合.SOA要求開發人員跳出應用本身進行思考,考慮現有服務的重用,或思索他們的服務如何能夠被其他項 目重用."單獨的","獨立的","封裝完善的"服務所具有的一個關鍵好處是,可以採用多種不同的方法將它們組合成較大型的服務,以此來實現重用.
但是,SOA並不僅僅是一種開發方法---它還具有管理上的優點.例如,現有管理員和直接管理開發人員所構建的相同服務,這遠勝於以往管理單個 應用的方式.通過分析服務間的互動,SOA可以幫助企業瞭解何時以及為什麼業務邏輯被切實執行了,這使管理員或分析師能夠針對性的優化業務流程.