明確SOA中“A”——架構真正含義
並非不存在對於SOA中各個要素進行明確驗證的行業研究;同樣,也並不缺少書本、紙張、研究學者,甚至是通過部落格等形式主張或贊同多種SOA定義的熱衷者。但是,事實上關於SOA的任何討論仍然會迅速的轉變成戴維·本-古裡安(David Ben Gurion)所說到的 “哪裡有兩個猶太人,就會出現三種意見”這類IT版本的政治格言。
同樣,哪裡有兩個IT業者,就會出現三種關於SOA的意見,這是很奇怪的,因為到最後,SOA將成為IT領域裡,一個任何人都可以隨時掌握非常簡單的概念。這樣的情況也是非常棘手的,可能在這個IT領域裡,任何一個人掌握的SOA都是錯誤的。除非我們在SOA定義上達成一致,此間產生的任何研究和推斷結論都將是垃圾,因為它們的前提是無效的。
舉例來說, AMR研究機構所提供的報告透露IT業在SOA上的投資將在未來四年內達到520億美元,77%的IT公司將建立起屬於自己的SOA。但該報告中的一些受訪者認為,SOA對其來說只是地板蠟,而另一些則將之看作餐後甜點而已,總之僅僅只是一些錦上添花,但又可有可無的東西,因此這樣的一份報告並不能真正的說明具體的問題,存在瑕疵,甚至是不可行的。
這並非是在挑AMR研究機構的毛病,但在採訪過這麼多負責SOA實施的資訊長之後,我相信那些AMR研究機構的調研者肯定深知,接受訪問的人們對於SOA的定義大多數必定持一種不贊成的態度,甚至有可能他們中的很多人正在遵循錯誤的SOA定義進行操作。
這並不是說這個錯誤認知所帶來的影響會很大,否則也不會出現當前幾乎所有的專家與預測者都在這個問題上隨意發表意見這樣的情況了。這種情況無疑將影響IT技術供應商所做出的回應,他們正極力推廣著圍繞SOA設計的平臺並開始實施,某些情況下,他們的分歧還在不斷的擴大並演變的愈發廣泛。
為了讓全球IT領域真正從SOA中獲益,我們必須首先理解SOA的含義。那麼就讓我們從SOA的“A”開始吧。A代表架構,特別是在SOA的情況中,它代表著軟體架構。為了避免一系列關於“什麼組成了架構”的爭論,我將引用IT基礎架構標準庫(ITIL)使用的定義。
ITIL 第三版中的定義也許是IT領域最為廣泛接受的IT服務管理方法。其平臺中立與供應商中立的方法為全球大企業成功使用。它對架構的定義如下:“系統或IT服務的結構,包括構件相互之間以及與其所處環境之間的關係。架構還包括指導系統設計與演變的標準和準則。”
聽起來不錯!但這具體意味著什麼呢?有幸的是,有人在維基百科上用簡單易懂的語言為架構下了定義,這個定義在建築方面對架構做了如下定義:作為過程來說,架構是使用人力或機器設計並建造建築物以及其他有形結構的活動,主要是為了有目的的提供社會住房。
但是,接下來的一句與ITIL第三版完全吻合,並更易於被任何一個不具備深層技術背景的人,包括資訊長或執行長理解。更廣義來說架構包括整個建設環境的設計,從巨集觀層面一個建築如何與其周圍人造景觀(城市規劃,城市設計以及景觀建築)相融合,到微觀層面的建築或建設細節,有時還包括傢俱。
我們當中有很多人都認為:架構僅僅意味著設計、藍圖、流程圖或是模型。但關鍵在於一個架構,如果建設得當的話從來不是孤立存在的,它的設計必須存在於整個建設環境中。這一特點會帶來許多問題,也能製造無限的機遇,一切都取決於你的觀點角度。
我再舉一個權威的例子:建築大師Frank Lloyd Wright的流水別墅。當時和現今的大多數建築師在那種情況下都會設計成在山間幽靜處的空曠地上挺立的建築。而Wright則設計了一個建築與其周圍自然環境的完美集合。他還設計了核桃傢俱、固定裝置、藝術裝飾以及燈光—每一個室內空間細節都被考慮到了,包括居住者將如何看待該建築的暱稱及其原因為何。
Wright的架構不僅僅是一套死板的建築藍圖,他考慮到了對於整體建築環境的設計。其結果就是他的設計成為了現在建築中最偉大的範例之一。這對於面向服務軟體架構來說是一個很好的靈感。
這是因為一個軟體架構必須不僅僅定義最終執行的結構。它還必須明確構件之間、最終系統執行的環境併為現存和未來的程式設計師在提供準則以指導他們所有的內容將如何配合並融入所處的環境中去,就像流水別墅的架構一樣。
在SOA的情況中,這意味著各個構件應該如何嵌合併融入業務環境。因此,如果你的企業沒有將SOA的設計建立在其所處的環境之上,那麼它僅僅是SO,而非SOA。
相反,有了架構,才有面向服務架構。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-430114/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分層架構和SOA架構
- 「系統架構」CAP定理的含義架構
- SOA架構和微服務架構的區別架構微服務
- 解累積流圖的真正含義
- SOA架構和微服務架構的區別是什麼?架構微服務
- 漫畫:SOA中怎樣確定服務的粒度?
- 軟體架構方面基礎-ESB \SOA \GEO-ESB架構
- 【YashanDB知識庫】v$instance檢視中例項角色含義不明確
- 什麼是真正的架構設計?架構
- SOA架構的域控制器測試解決方案架構
- 分散式系統的那些事兒 - SOA架構體系分散式架構
- Makefile中:=, =, ?=和+=的含義
- Java中static的含義Java
- url中#(hash)的含義
- Spring中bean的含義SpringBean
- 誕生至今,大資料的真正含義到底是什麼?大資料
- SOA/ESB架構升級之路:從微服務到ServiceMesh,再到Sermant架構微服務
- SVN中clean up的含義
- C++中&和*的含義C++
- OGG中add trandata的含義
- Linux shell中2>&1的含義Linux
- ABAP 資料庫表 Size Category 欄位的準確含義資料庫Go
- 【重磅來襲】SOA架構的域控制器測試解決方案架構
- bootstrap含義boot
- instanceof 含義
- 明確MangoDB在企業中應用Go
- 看阿里P9架構師如何向你定義架構及架構師阿里架構
- 碼教授告訴你人工智慧不確定性推理的含義人工智慧
- 微服務架構 - 正確的開始微服務架構
- MAN備份FORMAT格式中%的含義ORM
- 抓取網頁的含義和URL基本構成網頁
- 面向服務的整車E/E架構(SOA)開發諮詢服務架構
- 關於DBA_USERS檢視中ACCOUNT_STATUS 列的各種取值的含義說明
- 方法的通用格式 定義方法要做到兩個明確
- Apache Kafka訊息傳遞精確正好一次的含義 | TechMyTalkApacheKafka
- mysql workbench建表時PK,NN,UQ,BIN,UN,ZF,AI含義說明MySqlAI
- 引數如何在python中明確型別?Python型別
- 通俗地理解面向服務的架構(SOA)以及微服務之間的關係架構微服務
- Mysql中備份資料檔案中/*!*/的含義MySql