一切面向服務 現在正是時候

2021-09-30 02:54:56 字數 1810 閱讀 8136

一切面向服務:現在正是時候

soa 已經到來,但它能走遠嗎?

「人是面向服務並受事件驅動的」,在我談論系統設計的那段日子裡,我總會記住這句話。每天早晨(或晚上,這取決於您的習慣),我們進行淋浴,使用水「服務」來清潔我們自己。如果**鈴響,或者您鄰居的貓被您的羅特韋爾犬逼到無路可逃,您會停止淋浴,轉而處理這個「事件」。如果您回應**響鈴事件,您就要使用一項**「服務」,而且如果您把那個毛茸茸的小傢伙從羅特韋爾犬的爪下救出,我認為您的鄰居(喜歡養貓的人)會認為這是一項服務。所以,人是面向服務並受事件驅動的。系統也應該是面向服務並受事件驅動的。

逐漸地,我們現在不得不交付能夠響應個人、合作夥伴或整個價值鏈需要的靈活系統。michael dells提出的「個人市場(market of one)」正在推動企業構建能夠實時作出響應的系統。廣大的合作夥伴網路正在促使我們以驚人的速度將系統整合。擴大的**鏈系統使我們置身於乙個多公司的業務流程網路中,而該網路最需要的就是靈活性。面向服務可幫助我們實現以上內容。

面向服務的框架

在gartner中,我們相當多地討論了面向服務的架構(soa)。現今,事件驅動的架構也開始增加技術成熟度曲線(hype cycle)的斜率。這兩個概念組合在一起,使我們可以構建乙個框架來描述一些關鍵性領域,而在這些領域中,面向服務正在改變設計、部署和使用系統的方式(參見圖1)。

面向服務的架構(soa):面向服務的系統的基本拓撲包括客戶、介面和提供者。客戶使用介面從提供者處請求「服務」。部署服務時,必須保證修改該服務不會影響到客戶,因為客戶只能看到介面。不再需要為每個應用程式定義架構,soa成為了預設的標準。

面向服務的應用程式開發(soda):如果您正基於soa構建應用程式,您會發現,使用服務進行開發與傳統意義上的開發並不完全相同。如果您還沒有看到這一點,只需等待,但你的羅特韋爾犬已經開始行動了。使用服務似乎很簡單,但是存在許多潛在問題,比如需要模擬服務行為,組裝不能中斷的復合服務,對業務流程建模以獲得正確的行為,以及處理對您使用但並不擁有的服務所做的修改。soda是乙個描述如何處理這些問題的概念(參見圖2)。soa系統可以非常靈活,但是如果沒有正確的面向服務的開發計畫,沒有soda,它們也會變得相當不靈活。

面向服務的業務應用程式 (soba):這是服務策略中的最後一項,也可能是最關鍵的。打包的業務應用程式是新服務打造車間。我們將會看到,不靈活的單個程式包被重新設計為一組相互互動的服務。應用程式定義的本質正在改變。更加關鍵的是,基礎架構、開發和應用程式之間的屏障正在消失。5年之內,我們將看到對這些層的整合會消除它們和支援使用它們的產品之間的差別。

事件驅動的架構 (eda):從簡單的到複雜的事件流程,傳送和處理事件的能力都愈發顯得重要。soa和事件是相互補充的,因為事件可以呼叫服務。複雜的事件處理將變成下乙個要克服的障礙。

為什麼現在正是時候?

您可能會說:「之前我已經聽得夠多的了。為什麼它這次會起作用呢?」好,讓我簡單地回答一下這個問題。首先,web服務已經在服務中催生出新的影響力。我們很少看到,基本標準被各個行業如此一致地接受。其次,對靈活it系統的需要不再是乙個可以選擇的事情,而是變成了當務之急,這是業務的需要。還有,internet的使用削弱了我們對使用「其他人的服務」的偏見。最後,應用平台套件是多組整合的技術,這些技術使面向服務的一切可以更輕鬆而可行地進行大量生產。

它可能失敗嗎?當然。在it業中,我們並不會因為擱淺的技術戰略而不知所措。你可以等待,可以觀察,也可以為自己的利益而行動。

所以,停止淋浴,去救救小貓吧。面向服務的一切已經到來。您要做的就是對它進行計畫,而不是讓它發生在自己身上。價值將得到體現。人是面向服務並受事件驅動的。如果您不相信我,至少也應該相信這一點。

關於作者

daryl plummer是gartner inc 的集團副總裁和首席研究員。他是web服務、應用程式開發和架構等領域的主要分析家。

Spring實戰筆記 面向切面程式設計(一)

面向切面程式設計的基本原理 通過pojo建立切面 使用 aspectj註解 為aspectj切面注入依賴 引言 在軟體開發中,散布於應用中多處的功能被稱為橫切關注點 cross cutting concern 橫切關注點應該是與業務邏輯相分離的,實現這種分離就是面向切面程式設計 aop 要解決的問題...

AOP 面向切面程式設計 (一) 入門例項

aop 面向切面程式設計 通過預編譯方式和執行期動態 實現程式功能的統一維護的一種技術。aop是oop的延續,是軟體開發中的乙個熱點,也是spring框架中的乙個重要內容,是函式式程式設計的一種衍生范型。利用aop可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程式的可...

面向切面程式設計AOP的淺顯理解(一)

最近在看 spring原始碼深度解析 這本書,裡面有一章專門來介紹aop,鑑於以前也看過用過aop的東西,但是這些東西都比較零碎,沒有很深入很系統的去了解,在這裡我簡單總結一下。一般情況下,我們都對oop比較熟悉,物件導向程式設計在我們日常生活中簡單都能遇得到,更容易理解,但是aop這個面向切面程式...