重點將從部署系統(tǒng),轉移到重新配置現有資源以提高企業(yè)能力。
無論我們是否認識到,系統(tǒng)架構都在不斷發(fā)展。在過去的幾十年中,系統(tǒng)架構就是構建架構的過程:確定系統(tǒng)需要做什么,確定所需的主要子系統(tǒng)以及它們如何連接,并繼續(xù)分解,直到有足夠的細節(jié)供開發(fā)團隊構建每個子系統(tǒng),集成子系統(tǒng)并創(chuàng)建所需的系統(tǒng)。這種模式近年來一直在變化,但變化的速度正在增加。
網絡的影響
隨著網絡系統(tǒng)在20世紀90年代變得越來越普遍,系統(tǒng)架構實踐開始發(fā)生變化。客戶端/服務器架構作為主導設計模式的出現,使得架構必須包括網絡。系統(tǒng)不再是整體,它們被部署在一個地方,并從一組固定的終端使用,分布在一個可能很大的地理區(qū)域。
網絡對系統(tǒng)架構演變的下一個主要影響是整合系統(tǒng)的愿望。沒過多久就意識到將相同的數據輸入不同的系統(tǒng)既費時又容易出錯,所以開始嘗試集成系統(tǒng),以便共享數據。這導致了面向服務的體系結構(SOA)的發(fā)展。SOA的基本思想是,功能提供商可以將其產品作為可由網絡上的任何應用程序調用的服務提供?!胺铡敝徊贿^是一個定義良好的接口,可以滿足某些所需的功能。SOA承諾了一個動態(tài)可組合應用程序的時代,這些應用程序可以適應新的業(yè)務需求,而無需重新編寫應用程序代碼。
服務的興起
像許多廣泛宣傳的新技術一樣,SOA從未完全實現其最初的承諾。但是,就像許多大肆宣傳的技術一樣,在大肆宣傳十年后,我們看到了SOA理念的真正好處。許多功能可用作服務,并且更多企業(yè)正在使用它們。例如,Facebook,Google和其他公司都提供身份驗證服務。如果運行網站,并希望在允許用戶訪問網站的所有功能之前對用戶進行身份驗證,則無需托管自己的身份驗證子系統(tǒng),可以使用其中一種作為服務提供。以類似的方式,評論線程,社交媒體集成,用戶統(tǒng)計和許多其他功能也作為服務提供。整個云計算革命實際上只是將計算硬件轉換為按需服務。
雖然它沒有采用最初設想的形式,但SOA革命絕對發(fā)生了。如今,大多數企業(yè)集成工作都致力于使系統(tǒng)接口公開可用。這通常被稱為“應用程序編程接口(API)的第一哲學”。API第一哲學最著名的例子可能是被稱為“the Steve Yegge rant”的信件,他在那里譴責谷歌沒有采用亞馬遜的API優(yōu)先設計理念。咆哮的基本原因是所有功能都應該通過API在網絡上公開,以促進集成并最大限度地減少企業(yè)生產(和支付)的重復功能。
API如何推動系統(tǒng)架構
到目前為止,任何API優(yōu)先任務的主要作用是使開發(fā)人員確保他們記錄他們的API并公布它們。但亞馬遜API首要任務的主要目標是降低在多個系統(tǒng)中開發(fā)重復功能所產生的成本。由于大多數企業(yè)不會每隔幾年更新一次所有系統(tǒng),因此任何API優(yōu)先授權都需要時間來顯示企業(yè)中的實際效果。但隨著時間的推移,這些影響將會讓人感覺到,特別是當API優(yōu)先授權與重建前構建任務相結合時,需要系統(tǒng)開發(fā)人員在構建新的功能之前重用企業(yè)中可用的功能。
隨著越來越多的系統(tǒng)通過API提供其功能,并且開發(fā)團隊的任務是在構建之前重新使用,將通過將現有功能重新組合為新功能來替換構建新系統(tǒng)。目標差異很大的系統(tǒng)之間的重復數量令人驚訝。大多數系統(tǒng)都需要一種存儲和檢索數據的方法。大多數系統(tǒng)都需要一種方法來驗證和授權用戶。大多數系統(tǒng)都需要能夠顯示文本和渲染圖形??梢詮钠髽I(yè)中的現有資源重用的功能列表一直在繼續(xù)。在系統(tǒng)開發(fā)的早期階段,開發(fā)人員需要創(chuàng)建這些功能,以便擁有最低功能的系統(tǒng)。由于大部分基本功能可用作服務,系統(tǒng)設計人員的任務正在從設計整個系統(tǒng)發(fā)展到在企業(yè)生態(tài)系統(tǒng)內設計邊際功能改進。
邁向以能力為中心的架構
我們今天所面臨的企業(yè)生態(tài)系統(tǒng),是一個不斷擴展的功能集作為服務提供的生態(tài)系統(tǒng),特別是在云環(huán)境中。云提供商競相提供越來越多的功能,并且已經可以通過將一些服務與一些組合軟件或腳本語言拼接在一起,來開發(fā)基本系統(tǒng)。通過這樣做,開發(fā)人員可以在幾周而不是幾個月內創(chuàng)建一個功能最少的系統(tǒng)。通過整合新服務或安裝沒有服務的現成模塊,可以快速改進這一基本系統(tǒng)。在這樣的環(huán)境中,一個長達數月的設計階段,試圖在構建開始之前計算出系統(tǒng)的細節(jié)是沒有意義的。我們需要一種新的思考系統(tǒng)架構和設計的方式。
在已經擁有許多可用服務的企業(yè)中,構建新系統(tǒng)應首先明確定義預期系統(tǒng)需要執(zhí)行的功能,并將其與已作為服務提供的功能列表進行比較。這將揭示企業(yè)中已有多少所需系統(tǒng),以及需要構建多少?,F有功能和所需功能之間的差異定義了企業(yè)當前功能與所需功能之間的能力差距。隨著我們邁向未來,系統(tǒng)架構師的首要任務將從設計整個系統(tǒng),發(fā)展到定義當前的能力增量并設計縮小差距的最佳方法。
我們還沒有達到這種以能力為中心的架構很容易的程度。我們了解整個企業(yè)可用服務的能力受到嚴重限制。任何誠實的網絡管理員都會承認他們并沒有真正掌握其網絡上可用的完整服務列表。他們可能知道哪些機器連接到網絡,每臺機器上運行的軟件,以及每臺機器上打開的端口和協(xié)議。但是這些信息只告訴我們這些事情的網絡級方面,它沒有透露有關這些東西如何被使用的任何信息。例如,網絡上打開端口8443并接受HTTP連接的系統(tǒng)可能正在提供簡單的網頁,或者它可能通過該接口提供許多REST服務。
有辦法克服這種缺乏理解,但大多數都是手工的。例如,維護列出企業(yè)中可用服務的Wiki需要開發(fā)人員添加他們已部署的服務并維護該列表。并且用于近實時地識別和編目服務接口的自動化裝置將更有效。但那是另一個時間的主題。
也有例外
由于系統(tǒng)需要運行的環(huán)境,傳統(tǒng)系統(tǒng)架構在某些領域仍然存在。任何涉及功能完整企業(yè)的操作環(huán)境都存在問題,需要以老式的方式進行全范圍的系統(tǒng)設計。例如,飛機飛行控制系統(tǒng)實際上不能依賴于調用地面上的服務來執(zhí)行與飛行安全相關的任何功能的能力。同樣,衛(wèi)星系統(tǒng)和其他類型的嵌入式軟件需要在本地提供所有關鍵功能。
舊的系統(tǒng)架構方式不會完全消失,但是我們已經開始考慮如何提高系統(tǒng)架構實踐的效率,以便更好地支持當今快速發(fā)展的商業(yè)環(huán)境。
-
接口
+關注
關注
33文章
8891瀏覽量
153015 -
SOA
+關注
關注
1文章
299瀏覽量
27956
發(fā)布評論請先 登錄
解鎖未來汽車電子技術:軟件定義車輛與區(qū)域架構深度解析
FPGA+AI王炸組合如何重塑未來世界:看看DeepSeek東方神秘力量如何預測......
Arm與RISC-V架構的優(yōu)劣勢比較
用LDC1000模塊,線圈靠近金屬片的時候proximtyData會有很大的變化,是什么原因?
名單公布!【書籍評測活動NO.53】鴻蒙操作系統(tǒng)設計原理與架構
基于risc-v架構的芯片與linux系統(tǒng)兼容性討論
【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+全文學習心得
【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+第7-8章學習心得
LM358組成的恒流源在測試的過程中,電流會有小范圍的變化,如何解決?
嵌入式系統(tǒng)的未來趨勢有哪些?
哪種嵌入式處理器架構將引領未來十年的發(fā)展?

利用OPA627精密運放仿真Howland恒流源,調節(jié)負載時,輸出會有一定變化,為什么?
羅森伯格H-MTD連接器助力汽車制造商設計并實現區(qū)域架構
龍芯CPU統(tǒng)一系統(tǒng)架構規(guī)范及參考設計下載
鴻蒙開發(fā):訂閱系統(tǒng)環(huán)境變量的變化

評論