面向服務的體系結構 SOA

2021-05-10 05:38:42 字數 1865 閱讀 9725

偶長期以來一直想寫一篇關於soa的文字,但是遲遲沒有動筆。

偶今天感冒在家,終於可以有這個機會咯。

面向服務的體系架構(service oriented architeture,即soa)在今天這個軟體業中,可謂是如雷貫耳,如日中天。其架勢直逼當年「物件導向」(object oriented ,oo)出道之時。偶們都知道,物件是現實世界中實體的縮影,物件導向程式設計,即面向現實世界中的實體程式設計。那麼「服務」又是什麼涅?如何面向「服務」去架構呢?這個東東雖然大家都聽說過,但是真正理解起來的想法可謂是千奇百怪哦。

偶雖然也不能說真正讀懂soa,但是偶覺得偶想象中的soa,絕對是架構設計的巔峰之作。更為重要的是,soa並不遙遠,近得唾手可得。

從面向過程到物件導向到現在的面向服務,軟體的抽象程度逐漸提高,軟體的復用率也逐漸被人們作為重要話題一再提及,面向過程時期講的是函式的復用,物件導向時期講的是類和物件的重用。從零散的函式公升級到了整體的物件級別,明顯是層次的進步。到了面向服務時代,就應該是元件級、或者說構件級的重用。

然而專案中可能會出現千奇百怪,種類繁多的各種服務構件。有時候,被調者根本不知道誰會來呼叫,呼叫者也不知道應該去呼叫誰?(您可能覺得不太可能,但是偶可是深有體會的哦,偶要呼叫的元件可能還沒有寫好,可能還只出現在計畫中,你根本不知道它會部署在哪台server中,是乙個什麼樣的介面,但是偶這邊的業務也得進行了)。

談到這裡,不得不引出所謂的服務中介軟體的概念了。其實這對偶來說是乙個很陌生的概念,也是乙個正在探索的概念。像esb(sun的openesb)和ogsi都可以作為中介軟體的基礎。偶覺得,既然要soa,要分布式,就要進行得徹底一點。服務的使用和服務的提供應該圍繞著這個中介軟體來進行,我註冊了(不一定要實現),你就可以使用。所以soa應該不再是點對點式的服務提供和呼叫的關係。服務呼叫者不一定要知道服務提供者的介面細節,因為我只關注你在中介軟體上的服務註冊資訊而已。至於呼叫方式到底原則跨平台跨語言的web service,還是選擇皇家正統的ejb,那就看到底要把這個架構做到何種程度的鬆散耦合了。

很多人看到這裡(如果能忍受偶的繁體文字和凌亂文筆堅持看到這裡的話)都覺得soa是乙個很亂很亂的東西咯。所以不得不再談談關於如何將這些亂七八糟的東西整合到一起來,即所謂的整合。

要做應用整合,就看看以下幾種繼承的層次

資料整合:說白了就是用同乙個資料庫,同一些表啦。需要整合雙方知道物件的底細啦(資料庫都知道了,還不是底細?)

方法整合:就是你調我的方法來獲取我的資料,你可以不用知道偶的資料庫設計結構啦。但是你必須繫結在我的方法上。

業務整合:在應用系統之間建設業務整合匯流排,實現業務資料按照一定的規則在應用系統之間流動。這個好像有點soa的感腳咯。

表示層整合:通過註冊表示層的url和唯一的乙個門戶系統,就可以把多個應用系統進行整合,偶們現在正是這麼做的,偶滴感腳:耦合程度很低,但是很多問題哦。

b2b整合:跨組織的應用訪問,通過傳輸協議(http)和資料描述(xml)為核心的技術路線,繼承程度不可能很高。但是雙方耦合程度也最低。

如果涉及到soa和應用整合的話,那麼傳統的一些架構模式可能不再適用了,像什麼mvc啦之類,因為最起碼,在你的架構裡,得多加乙個層面「整合層」。

綜上所述,偶要做出乙個小小的,不算很嚴謹的結論啦(各位ggjj,偶發現自己真是不擅長言辭,不要罵偶膚淺)。soa是乙個架構設計思想,而不是一種具體的技術,要實現soa,首先得定出game rule。對於多個業務系統之間,這個rule必須保證是中立,不依賴於任何一方的。然後業務系統要想納入這個soa的集群中,就必須依賴於制定這個rule的service manager,而非另外乙個真正要被依賴的業務系統。彼此把介面暴露給service manager就可以了。

soa的要義就是:

鬆散耦合

位置透明

規則中立

偶肯定地認為,在不久的將來,soa必定會大行其道,成為改變軟體世界的一次革命。偶將成為soa的忠實fans,哈哈

面向服務的體系結構 SOA 之 關於BPM

從字面上理解bpm所要做的就是對整個業務流程進行管理。這其中包括很多方面,比如分析業務 實現業務功能 檢測業務流程 建立相應的操作流程的工具等等。在真正開始動手之前通常要做的將業務分解成已有的底層服務可以處理的小模組。流程分解後最底層的乙個個活動就是服務。服務是業務流程的組成部分。要想讓服務發揮作用...

面向服務的體系結構 SOA 之 對於服務的理解

在接觸soa之前對 服務 這個詞沒有太多的感觸,無非就是為別人做事情麼。當然在soa中這個詞也脫離不了這層基本的涵義,但是具體到實際的架構中對這個詞的理解就更加深刻了。本文就以 服務 為中心說說筆者對這個詞的理解,尤其是它在soa這個環境下的理解。由淺入深咱們先從現實說起,通常我們日常所說的 服務 ...

Web服務與面向服務的體系結構

soa service oriented architecture 面向服務的體系結構 是由元件 服務 業務過程組成的可以滿足機構業務需求的體系結構,是一種非常好的建立複雜系統的體系架構的模型。soa有助於 重用 降低成本 風險,還可縮短產品進入市場的時間。從某種意義上說,soa更多是一些指導原則,...