SOA學習筆記 SOA的三種開發方法

2021-08-22 09:40:16 字數 3187 閱讀 1337

soa的實現可以分為三種截然不同的方法,除了基於web service和ws-*標準的、被稱為正統soa方法之外,還有其他的兩種方法湧現出來……

面向服務架構(service-oriented architecture,soa)的實現可以分為三種截然不同的開發方法,itko公司的首席科學家和創始人john michelsen說,該公司是專注於面向服務架構的測試產品廠商。

除了基於web service和ws-*標準的、被稱為正統soa方法之外,他還看到了其他的兩種方法湧現出來,企業級別的利用已有的訊息中介軟體而不是使用web service的實現和部門級別的使用restweb2.0的實驗性的實現。

「我看到人們採用了三種不同的方式來實現soa並且三者都各有優點,」michelsen說,他是中立的,由於所有的方法都需要測試工具,他從2023年開始就進行了該測試工具的開發,那時他的工作焦點是被稱為組合應用測試領域。在2023年之後,他的注意力將開始固定到了soa上。

michelsen說他目前觀察到的主要趨勢是soa正在超出web service的範疇。

「很多人說讓我們soa一把,接著他們立即聯想到web service,接著從那裡繼續聯想到ws標準,」他說。「所以soa基本上成為了ws-*型別的web service的別名了。這種方法是建立乙個優秀的核心、定義ws-*的標準、以策略開始、引入註冊。這就是gartner規定的soa的方法。」

雖然他發現有相當數量的正統的soa方法,但是其他的替代方法卻越來越多的抓住了他的注意力。

「這裡有越來越多的趨勢表明soaweb service並不是互相等同的,」michelsen說。「soa是一種架構的模式,你可以使用各種方法來做到。現在有很多soa游離於web service和ws-*標準之外。」

大企業似乎更加傾向於一些主張對已有的技術進行重用的soa方法,即使它不是最先進的,比如corba技術。

「我所見過的在大企業內的很多大型的、最有趣的soa環境完全不是基於web service,」michelsen說。「它們可能是基於corba,或者基於esb。它們也可能是在標準的應用伺服器上構建的定製的框架。」

michelsen主張保持現有的it架構是soa哲學中的關鍵。

soa絕不是進行革命,因為根據它的本質它是對現有環境的封裝和擴充套件,所以你不能拋棄舊的東西,引入新的東西,結果看起來soa是很容易,」他爭論。

對於那些已經對像ibm mq系列中介軟體之類的東西進行了長期投資的公司,他建議結合已有的系統,從中轉型到面向服務的方法。

「我們假設你的關鍵應用大部分是tibco或者它們已經執行在了ibm mq上。我們從這個地方開始改造,並且從這裡開始基於服務。我喜歡這樣的方法,」michelson說。「假如某公司已經非常好的使用了一項分布式中介軟體技術,那麼理所當然的繼續使用它,並且使用該技術來建立服務。如果他們已經有了使用esb的經驗,並且他們需要做的是重新考慮軟體的設計來獲得更多的基於服務,但是要使用相同的中介軟體技術,讓我們做我們擅長的工作,並讓整個過程慢慢的演化,而不是進行一次革命。」

雖然他說基於現有的技術和經驗構建是他最喜歡的soa方法,但是他還是看到了一些讓人啟發的工作是通過前沿的web2.0rest來完成的。儘管他懷疑web2.0/rest方法如何進行擴充套件,但是他還是將其視為部門級it開始soa旅程的好方法。

「現在有很多ground-up的soa是通過web2.0rest來完成的,」他說。「我認為它在部門級別站穩了腳跟。我相信當rest使用者試圖推廣到企業範圍的時候他們將會遇到一些挑戰。有乙個快速應用開發環境是很好的,尤其是你在建立前端的時候擁有了和不同**商的服務協作的能力。web2.0/rest方法是非常方便的。」

michelson說,從乙個崇尚監管的測試工具開發人員的角度,他還在觀察當web2.0rest從部門推廣到企業範圍的時候,基於標準的監管技術和實踐將如何與web2.0rest進行協作。

「在企業範圍中的重用中,在服務側完全使用rest而引入的混亂(chaos)程度可能很危險,」他警告。「我還沒有觀察有人在分布式、企業範圍內使用rest。我感覺到這是因為它並沒有提供真正的方法來標準化。」

但是如果開發人員沒有走過頭,restweb 2.0是在部門級別「很好的方法」,他說,並且他發現採用rest非常有趣。

「使用rest的人數不斷膨脹,」他說。「會有很多web2.0/rest型別的產品不斷推出的,像google的平台rubyon rails。」

開發SOA的思路

這是一位做了幾年電信行業的前輩總結出來的,現在我把它摘抄出來共享一下 1 設計整體系統的總覽圖 2 對it系統進行系統內和系統間的服務的分析設計 思路 從系統間整合的要求來發現系統內的服務,然後進行分解成系統內的原子服務 3 根據業務要求制定流程,並指定流程的活動和使用的服務 4 定義如何使用外部服...

SOA學習筆記二 ESB概念

esb就是在soa架構中實現服務間智慧型化整合與管理的中介。與soa的關係 esb是邏輯上與soa 所遵循的基本原則保持一致的服務整合基礎架構,它提供了服務管理的方法和在分布式異構環境中進行服務互動的功能。esb 提供的功能 支援多種服務整合方式,比如 jca web 服務 messaging ad...

Liferay 學習筆記 三種開發策略

一 liferay整體框架 由於目前要做enterprise integration,所以在這個架構當中主要說一下enterprise service bus 企業服務匯流排 在liferay portal中使用mule servicemix作為esb 其可以快速的將一些應用和服務增加到整個企業架構...