結合經驗淺談SOA的剖析(二)

技術的遠景包括支持整個組織的軟硬件平臺。應用的遠景是基於技術遠景,定義了整個企業的應用職責,而且是以應用爲中心的。業務的遠景描述了業務是如何開展的,它基於應用遠景,幷包括了廣闊的業務策略和計劃,用以推進整個組織在預期的將來能順利上升到一個理想階段。信息遠景貫穿前面三個遠景,並描述了所需的的數據信息,用以正確的管理進程,操做和基礎設施。
 
SOA是一種架構風格,用以促進整個企業級業務服務的業務進程的協奏,見下圖。
 
 
SOA有三個主要的元素:
  • 服務:SOA把整個企業模型化爲許多業務服務,而這些服務在整個企業中是隨處可見和可用的。一塊塊煙囪似的應用都慢慢的融化成爲自帶的業務服務,用以開展特有的功能。這些業務服務能夠經過一種標準的協議來調用,該協議能夠確保在整個企業內部及周邊的服務隨處可見和可用。
  • 進程:業務進程協奏着這些企業的服務的執行來實現所需的業務功能點。
  • 組織:組織擁有全部的SOA產品,並管理着它們建立,使用,訪問以及維護。
SOA對EA的全部的遠景都有着深入的影響。讓咱們先來具體看看SOA的其中兩個主要的component:服務和進程。
 
服務
 
咱們你們知道,軟件開發每每受一種思想所推進,那就是減小成本,提升靈活性。這麼一來就引入了下面的這些需求:
  • 軟件重用
  • 鬆耦合
  • 便於集成
要尋找這麼一個軟件開發的「真理」就必然致使主流的應用開發實踐的持續更改--代碼分離到不一樣的功能中,採用RPCs(remote procedure calls)的透明代碼分佈,面向對象(OO)開發的封裝性,基於組件開發的軟件分佈和發佈的標準,如今到了面向服務(SO)的開發。
 
SOD(面向服務的開發)是基於服務的概念的。它是一種業務功能性的軟件實現,而這種軟件是任何人任何場合都能使用來組成新的業務應用的。該應用同時也是經過基於新的或者修改過的進程的關聯來運用這些服務來組成的。
 
這種途徑大大增長了應用的使用範圍,並使得持續的軟件交付成爲可能。SOD充分考慮到多層計算(服務的實現)的緊耦合,高生產率特色與消息處理(服務的交互)的鬆耦合,面向消息概念二者之間的匯聚。
 
一個服務使經過其接口進行定義的,該接口是該服務暴露給外部世界的方法。它包括了一套參數(定義着可以和該服務交互所須要的數據信息)和用於數據傳輸和調用服務的溝通協議。服務的接口定義了服務的名稱和服務提供的一套方法。服務接口中方法的組合是由服務的業務功能(需求)決定的。
 
如下是服務的典型特性:
  • 業務驅動
  • 粗粒度
  • 進程爲中心
  • 無狀態調用
  • 鬆耦合
  • 分佈式
  • 基於標準
一般來講,服務提供了業務功能相對應的業務邏輯和狀態管理,而這些業務功能其實就是服務自己所被設計來實現的。當設計這些服務的時候,目標之一就是把和真實世界進程相關聯的邏輯和數據有效的封裝起來(題域和解域),相似於OO的封裝。而由於你須要並且可以在network上調用服務,因此這些服務應該是粗粒度的。也就是說,服務應該把真正的應用邏輯包裝起來,僅僅提供一個交付值來證實network的request的等待時間代價是合理的。一樣地,服務應該暴露粗粒度的接口。服務應該暴露僅需的幾個接口用以容許一個簡單的request經過這些接口來執行一個完整的功能,而不是暴露不少不少的接口並且這些接口每個都能控制少許的服務狀態,這樣會使問題複雜多了。
 
總的來講,服務提供了一個軟件設計的模型,而這個模型內置了整合和進化的潛質。
 
接下來說一下SOA的第二個重要的component,進程。
 
下轉「結合經驗淺談SOA的剖析(三)」
相關文章
相關標籤/搜索