SOA 設計原理

2021-04-13 00:22:54 字數 2813 閱讀 2998

最初的面向服務體系結構(

service-oriented architecture

,soa

)的實現專案的經驗表明,諸如物件導向分析與設計(

object-oriented analysis and design

,ooad

)、企業體系結構(

enterprise architecture,ea

)框架和業務流程建模(

business process modeling

,bpm

)這樣的現有開發流程和表示法僅僅涵蓋了支援目前出現在

soa中的體系結構模式所需的部分要求。

在info world

最近的訪談中,

grady booch宣稱「

像對問題的良好抽象和良好的分離這樣的工程基礎決不會過時

」,不過,他也指出:還是有現實的機會提公升抽象的級別。過去的經驗表明,必須將抽象的級別提公升到公司處理的業務領域,從而將整個企業

it前景都納入考慮的範疇。

正如mark colan

在文章《面向服務體系結構擴充套件

web服務的前景》中介紹的,

soa是一種新興的企業結構形式,可以用於設計下一代企業應用程式。

soa方法在有力地加強已經制定的良好通用軟體體系結構原則(如資訊隱藏、模組化和問題分離)的同時,還增添了一些其他的主題,例如服務編排、服務庫和服務匯流排中介軟體模式。

需要結構化方法或分析與設計方法來設計高質量的

soa。因為現有的方法中沒有一種能夠滿足程式設計人員對最新的

soa專案的要求,所以他們建議將已經形成的良好實踐(如

ooad、ea

和bpm

)中的原理組合起來,並且使用根據需要創新的原理來對其加以補充。

引言

面向服務體系結構(

soa)和

web服務的基本觀念將成為我們日常語言的一部分,並可看作是適於設計現代企業應用程式的體系結構形式。在這種背景下,什麼構成好的服務這個基本問題就成為確保成功實現

soa的關鍵。

像物件導向的分析與設計(

object-oriented analysis and design

,ooad

)、企業體系結構(

enterprise architecture,ea

)框架和業務流程建模(

business process modeling

,bpm

)這樣的現有建模規則為我們提供了高質量的實踐,可以長期幫助標識和定義體系結構內的適當抽象。然而經驗表明,這些實踐各自單獨應用時達不到要求。

在本文中,我們將研究

ooad、ea

和bpm

中的適當原理。我們還將推動對混合方法的需求,這種方法把所有這些規則中的原理與許多獨特的新原理組合起來。這樣得到的交叉學科

ooad

方法使成功地進行

soa開發更容易,我們稱之為面向服務的分析與設計(

service-oriented analysis and design

,soad

),它還有待正式定義。我們還只是剛剛跨入

soad

的殿堂。

面向服務的概念

在發現新的商機或威脅的預期下,

soa體系結構形式旨在提供企業業務解決方案,這些業務解決方案可以按需擴充套件或改變。

soa解決方案由可重用的服務組成,帶有定義良好且符合標準的已發布介面。

soa提供了一種機制,通過這種機制,可以整合現有的遺留應用程式,而不管它們的平台或語言。

從概念上講,

soa中有三個主要的抽象級別:

●操作:代表單個邏輯工作單元(

luw)的事務。執行操作通常會導致讀、寫或修改乙個或多個永續性資料。

soa操作可以直接與物件導向(

oo)的方法相比。它們都有特定的結構化介面,並且返回結構化的響應。完全同方法一樣,特定操作的執行可能涉及呼叫附加的操作。

●服務:代表操作的邏輯分組。例如,如果我們將

customerprofiling

●業務流程:為實現特定業務目標而執行的一組長期執行的動作或活動。業務流程通常包括多個業務呼叫。業務流程的例子有:接納新員工、**產品或服務和完成訂單。

在soa

術語中,業務流程包括依據一組業務規則按照有序序列執行的一系列操作。操作的排序、選擇和執行稱為服務或流程編排。典型的情況是呼叫已編排服務來響應業務事件。

從建模的觀點來看,由此帶來的挑戰是如何描述設計良好的操作、服務和流程抽象的特徵以及如何系統地構造它們。這些相關問題都是當前行業內和學術界最常討論的問題。據我們所知,最近幾乎所有的

soa專案或專題研討會都將這樣的服務建模方面作為重要的主題,並引起了許多的爭論。因此,讓我們更近地作一番審視。

為什麼

bpm、ea和

ooad

還不夠?

早期的soa

實現專案經驗表明,諸如

ooad、ea

和bpm

這樣的現有開發流程和表示法僅僅涵蓋支援

soa正規化所需的部分要求。

soa方法在加強已經制定的良好通用軟體體系結構原則(如資訊隱藏、模組化和問題分離)的同時,還增添了附加的主題,例如,服務編排、服務庫和服務匯流排中介軟體模式,在建模時需要對它們給予特別的關注。圖1

展示了現有的ea、

bpm和

ooad

建模方法的主要應用領域,也是我們隨後討論

soad

的出發點。圖中的水平軸表示專案生命週期階段;垂直軸表示不同抽象層或領域之間的區別,而建模活動通常就是在其上進行的。

Soa設計概念

快取,訊息,rpc,檔案,日誌,配置,資料流,監控,通知,服務發現 服務的註冊與發現 zookeeper 中儲存的資訊,如下圖 關於controller與action的資訊,在服務啟動的時候就已經註冊到服務中心去,儲存到資料庫中 系統名稱 controller action zk 上則保留 系統名稱...

SOA分析設計

soa分析設計過程 與ibm的soa架構師交流學習一段時間了,對soa的認識也比以前深刻了,通過ibm的架構師做的乙個簡單案例。我對soa的分析設計過程也有了一點認識。soa的分析建模過程是以系統的用例為指導 以業務流程為核心 以找出合理的元件為目標來進行分析建模的。ibm認為,soa的建模過程是個...

SOA分析設計過程

與ibm的soa架構師交流學習一段時間了,對soa的認識也比以前深刻了,通過ibm的架構師做的乙個簡單案例。我對soa的分析設計過程也有了一點認識。soa的分析建模過程是以系統的用例為指導 以業務流程為核心 以找出合理的元件為目標來進行分析建模的。ibm認為,soa的建模過程是個龐大的工程,需要多方...