天天看點

SOA Presentation - SOA概念介紹

前幾天正好給實習生做了一次SOA概念的教育訓練,現在按照大綱把部分内容簡要的摘出來。大體是一個關于SOA概念的介紹,可能會讓人感覺到比較“虛”,但事實上,SOA如果不談到具體的實作技術,就其概念本身而言确實是一種抽象的、理念上的東西。

SOA Concept

Service Oriented Architecture Concept

SOA是一種分析、設計和實作企業應用的方法 

SOA是一種分布式的應用架構 

SOA以服務為最基本的、可重用的單元 

SOA以業務流程為核心,是對業務邏輯高層次的、粗粒度的抽象 

SOA一般基于某些标準(XML\SOAP\Web Service\SCA\SDO)實作異構系統及服務的內建 

SOA不僅僅是一套構架,其更像是一套設計思想、方法——為解決客戶所面臨的業務靈活性問題提供了一套新的解決方法。

SOA Character

松耦合 服務之間的依賴較小 

基于契約的 應用由服務之間定義良好的接口和契約聯系起來 

自治的 服務提供商完全控制其所提供的業務邏輯 

抽象的 對服務消費者來說,服務隐藏了具體業務邏輯的實作 

可重用 将業務邏輯劃分為多個可重用的服務 

複合的 通過服務的複合完成業務功能 

可發現的 服務是自描述的,基于服務描述去發現和通路服務 

SOA Evolution

Point of view of Business

從業務需求角度看企業應用的發展階段

資訊釋出 即傳統的Information Management System,在這個階段最主要的任務是把某一個業務下的資訊資料管理起來。 

企業系統的内部整合 當企業内部絕大多數資訊系統都已經建立之後,是否能夠有效地進行協作和資源整合,成為主要解決的問題。 

企業内部的資訊系統與外部環境整合 這包括與供應商、分銷商和客戶進行整合。 

Point of view of Technique

從技術發展角度看企業應用的發展階段

從軟體架構的角度:

結構化(Structured) 

面向對象(Object Oriented) 

元件(Component) 

服務(Service) 

Why We use SOA – Case, Background…

Case 1 - Why we use SOA?

某天早晨10點,Dell發現很多客戶訂購的筆記本電腦都要求配備40G的硬碟,如果這樣的話,兩個小時後,供給鍊将發出斷貨信号,并自動地發送給Dell銷售部門、公司網站以及所有的訂購電話的接線員。

現在的情況是……

如果你正好10點30分向Dell發出訂單,公司的銷售代表會對你說:“您現在隻需要在40G硬碟價格的基礎上多支付10美元,就可以得到60G的硬碟的配置。” 

利用這種促銷手段,在一兩個小時内,Dell可以根據全球供應鍊的情況快速的、完全的消除這次“供應不足的危機”,同時重新塑造顧客對産品的需求結構。

怎樣讓企業的業務變得更加靈活,或者說更加靈活。不難想象,Dell公司已經具備了比較完善的供應鍊管理系統、财務系統、客戶關系系統等IT基礎設施,這也說明Dell的企業經營管理已經依賴于IT系統的支撐。今天,絕大多數企業都具備了類似特征。不否認存在一些企業的經營管理還依賴于傳統的電話溝通、面對面的洽談會,但這已經是少數,而且會越來越少。

如今一個企業是否能夠讓CEO的決策、企業戰略的調整、市場方向的重定位等等一系列問題快速變更與執行,幾乎都依賴于資訊化建設的完善。然而,這種完善程度不僅意味着資訊系統在企業内部的覆寫面,更依賴于這些系統之間的協作性與靈活性。

Case 2 - Why we use SOA?

遠洋航運集團規劃未來幾年内把集裝箱的吞吐量提高4倍,集團組織構架從單一結構向多元化、多組織發展,同時業務的數量和新的業務種類将大幅度增長……

遇到這樣的變更,你該如何處理?

如果你告訴客戶:你們倉儲系統需要重新建構,組織構架需要重建立模,人力資源系統需要重新編寫,财務系統需要重新編寫……

那将會是?

Background - Why we use SOA?

快速多變的市場,多産品組合營銷 

快速多變的業務流程 

大量複雜的、不同技術實作的、多廠商跨時期的異構系統存在于企業的各個角落 

系統緊密耦合,缺乏柔性和靈活度,難以滿足業務需求的快速變化 

複用性的問題,企業的資訊化投資需要得到保護 

系統間互操作性差,無法實作快速內建 

系統維護的成本問題 

這使得……

企業更關注于關鍵業務流程域而非底層IT基礎架構 

企業希望減少備援架構,實作跨系統架構內建,有效的利用企業IT資源 

企業和它的客戶希望使用基于Internet提供的更标準、更及時、更全面的企業應用服務 

Why we use SOA?

含有業務語義的定義良好的接口 

标準化的通信協定 

通過服務的組合達成系統的柔性  

SOA是提高系統柔性、降低系統複雜性的關鍵技術

SOA Benefit for Enterprise

(摘自Bea SOA資源網)

針對企業業務流程

效率:将業務流程從"煙囪"狀的、重複的流程向維護成本較低的高度利用、共享服務應用轉變。 

響應:迅速适應和傳送關鍵業務服務來滿足市場需求,為客戶、雇員和合作夥伴更高水準的服務。 

适應性:更高效地轉入轉出讓整個業務變得複雜性和難度更小,達到節約時間和資金的目的。 

針對企業IT基礎部門

複雜性降低:基于标準的相容性,與點到點的內建相比降低了複雜性。 

重用增加:通過重用以前開發和部署的共享服務,實作了更有效的應用程式/項目開發和傳遞。 

遺留內建:用作可重用服務的遺留應用程式降低了維護和內建的成本。 

SOA Architecture

The SOA Layered Architecture

企業應用系統層 

服務元件層 

服務層 

業務流程 

表示層 

Ref. 2006年10月份由OASIS組織釋出的SOA參考模型(Reference Model)

可作業系統:表示現有 IT 資産,說明 IT 投資非常寶貴,應該在 SOA 加以利用。 

服務元件:實作服務,可能通過使用“可作業系統”層中的一個或多個應用程式來進行。如模型中所示,使用者和業務流程并不能直接通路元件,而僅能通路服務。現有元件可以在内部重用,或在合适的情況下在 SOA 中使用。 

服務:表示已部署到環境中的服務。這些服務由可發現實體進行治理。 

業務流程:表示将業務流程作為服務編排實作的操作構件。 

使用者:表示用于通路業務流程、服務和應用程式的通道。 

Solution using SOA

The SOA Solution Lifecycle

模組化 - 包括業務分析與設計(要求、流程、目标和主要性能名額)及 IT 分析與設計(服務辨別和規範)。 

組裝 - 包括服務實作群組合應用程式的建構。 

部署 - 包括應用程式和運作時(如企業服務總線——Enterprise Service Buses,ESB)的部署。 

管理 - 包括操作環境維護、服務性能監視和服務政策執行。 

模組化 - 組裝 - 部署 - 管理 - 模組化 - 組裝 - 部署 - 管理……

SOA Solution Key Words

業務一緻性 - 業務和IT之間更好地進行溝通 

業務元件化 - 具有獨特用途的業務元件通過服務進行協作 

業務模組化 - 使用IT方法和技術描述、建立業務模型 

業務流程 - 由相關業務項目和資料構成 

行業 - 業務流程可以特定于某個領域或行業 

人工任務 - 業務流程中常常會需要人工互動 

業務流程執行語言 (Business Process Execution Language, BPEL) - IBM、Microsoft 和其他業界企業已經将BPEL作為 Web 服務規範送出 

業務流程管理 (Business Process Management, BPM) - 模組化、模拟、優化、部署、運作、管理、監視和改進業務的整個生命周期 

企業應用內建 (Enterprise Application Integration, EAI) - 為了一個完整的業務将各種不同的服務組合在一起 

Technique for SOA

Technique and Criterion Related SOA

SOA的實作應獨立于程式開發語言……

XML, XML Schema 

SOAP 

Web Service, WSDL 

Java, C#, C++… 

Axis, Axis2, XFIRE… 

SDO, SCA 

Service Data Object

SDO的産生

最初由BEA和IBM共同釋出,正由JSR-235專家組進行标準化以通過JCP(Java 标準化組織)的稽核。

什麼是SDO?

Java平台的一種資料程式設計架構和API,統一了不同資料源類型的資料程式設計。 

提供了對通用應用程式模式的健壯支援,并使應用程式、工具和架構更容易查詢、讀取、更新和檢查資料。 

為SOA架構的資料交換和傳輸提供統一的标準。 

Service Component Architecture

SCA産生

2005年11月30日,BEA宣布,将與IBM、Oracle、SAP、Iona、Siebel和Sybase一起,支援一種建構和包裝應用程式的新規範,即Service Component Architecture(服務元件架構,SCA)

什麼是SCA?

是一種開發規範 

為SOA專門設計的程式設計模型,簡化SOA程式設計 

關注如何描述按照各種不同的程式設計模型和協定編寫的元件所組成的應用集合 

為SOA架構的服務模型定義提供支援 

SOA in China

對比美國:

過去的半個多世紀,美國從主機時代、PC時代,到了現在的網絡時代,積累了大量的應用系統。

——美國實作SOA架構關鍵任務是:對已有系統中的功能進行提取和包裝,形成标準的“服務”。

過去中國近30年的IT建設多為生産型系統,服務型系統普遍未開始建設。

——大量“服務”需要全新構造、按照标準化構造才是中國SOA的主要任務!

     本文轉自胡奇 51CTO部落格,原文連結:http://blog.51cto.com/huqicto/280643,如需轉載請自行聯系原作者