最初的面向服務體系結構(
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的建模過程是個龐大的工程,需要多方...