從SOA到雲計算

2021-04-19 20:02:30 字數 3816 閱讀 2440

曾經有過世界性的**,計算機將來是否可以超越人的智力,機械人是否可以反過來統治人類,當人把自己的感情能力也賦予給計算機,計算機也有了「生命」,那 麼機械人也可以擁有人的權利嗎?計算機作為人類的輔助工具,而且越來越深入到人類生活、工作的各個角落,那麼計算機比人究竟擅長的是什麼?計算機技術飛速 發展,形態也花樣百出,但計算機沒有變的思想是什麼?

我們都了解,計算機分為硬體與軟體,硬體是實現運算的平台,所「會的」也是再簡單不過的加法與移位,軟體是把你要做的事情逐漸分解,拆分為計算機可以做的 簡單工序,先輸入給計算機內,計算完後再輸出結果。這個過程有些象工廠流水線的管理,原料從這邊進去,產品從那邊出來。

任何複雜的事情,通過數位化,變成計算機可以認識的「語言」,計算機再做「計算」,按照我們的模型(軟體設計)得到我們需要的結果,所以原則上計算機可以 做任何動作。但是計算機最低層的工作,就是「重複」地計算,而且每次幹新事情時,可以重複利用以前的軟體,工作就大大簡化,若不能重複使用,計算機其實比 人還「笨」,也就是因為這個「重用」,讓計算機的能力越來越神奇。

我們從軟體與硬體兩個方面說明一下重用的發展,也總結一下計算機的新技術:

1、 從模組程式設計到物件導向,再到soa(面向服務架構體系)

在學習計算機軟體設計思想時,老師很自豪的說,雖然計算機有很多語言,但其設計思路只有順序、轉折、迴圈三種,其中轉折是條件的判斷,這一點計算機不如 人,人可以多個判斷條件兼顧,並很快選擇重要的條件因素,而計算機只會乙個乙個看,在高明的「演算法」也是人思路總結的便捷判斷方式;但在迴圈方面,計算機 就表現得非常優秀,讓計算機重複幾萬次,可以完全一樣;而人來做這件事情,很快就會「找不到北了」,所以計算機的出現在求解方程的疊代計算、財務的記帳、 資料的統計等方面,計算機簡直就是「千百人」能力的疊加,迴圈就是部分程式的重用,重複是計算機的強項。

所以在計算機軟體設計時,重用一直是設計中的靈魂。說起來也很有趣,軟體發展思想一直是在不斷地加強重用的能力。

模組程式設計:

在dos程式設計時,比較流行的設計思想是模組程式設計,也就是通過設計可以重複使用的程式功能塊,作為過程或函式來呼叫,讓程式結構化,設計簡單化。在那個時代,能讓自己的軟體最大的重用是很不錯的事,要設計個下拉列表、畫個小圖示,需要自己不斷完善自己的「軟體庫」。

正是由於這種軟體低度共享的緣故,軟體開發人員一般是比較「專業」的人員,而開發的應用軟體又都是業務管理軟體,計算機人員與業務使用人員對業務的理解與對計算機能力的理解相差甚遠,確認大家溝通的「語言與方式」往往是軟體設計成敗的關鍵。

物件導向:

能重用更多的軟體模組的開發管理,讓大家的工作能有積累效應,軟體設計思路從程式設計人員到軟體系統設計者的角度,出現了功能與資料封裝在一起的「重用」,這就是物件導向的程式設計。

物件導向方式讓資料與程式一起重用,等於應用功能的重用,讓軟體界的工作得到共同積累,專門為其他軟體開發者提供中介軟體的專業軟體公司相繼出現。現在軟體 設計者再也不用為選單、列印等「通用」的功能而花時間,開發者有了更多的時間研究業務的流程、使用者化的設計,it人員開始與業務人員進行更多的交流,敏捷 程式設計思想開始流行,it管理者也逐步走到企業核心管理者的團隊中。

soa(面向服務架構體系)

soa的出現不是為了軟體程式設計,它讓很多人不理解,所謂的服務究竟是要幹什麼,有些象系統整合中的搭積木,我們順著模組程式設計到物件導向的發展思路,再向上 走一步就明白了:既然應用中的物件已經可以重用,下一步就是把業務流程拆解為可重用的子流程,重用的程度上公升為業務流程設計層面,所謂服務就是為業務流程 使用者提供的實現平台,能盡可能地重用,企業的業務支撐就可以快速組建,業務流程可以快速重造。soa的五大關鍵因素有兩個是作基礎支撐的,乙個是連通,另 乙個就是重用,重用是soa快捷支撐企業業務能力的靈魂。

所以我們說soa是高階可重用的程式設計思路,把軟體設計的著眼點從程式設計人員轉移到業務流程設計人員,讓業務使用者與it人員的「對話」更加「職業」,計算機已經成為最為普通的工具,軟體開發成為業務人員的工作,而不再是計算機專業人員的工作了。

軟體開發思路的變化,體現在計算機普及的歷程上,但其重用的思想不僅沒有改變,而且在不斷地光大,「可重用」也不再只是計算機專業理解的專業術語,而是使用計算機所有人員的新思維方式。

2、 從虛擬計算機到雲計算

重用在軟體開發思路上的展現是計算機設計者開始就有的想法,硬體設計者也一直在希望硬體的重用。在單台的計算機上執行多使用者的系統,讓多個人使用不同應用 在早期的計算機上就開始了,因為那時計算機是奇缺資源;後來pc普及後,在pc上執行單使用者的多執行緒,讓乙個使用者可以同時做不同的事情。隨著cpu的功能 日漸強大,人們開始希望更多、更靈活的硬體平台了,計算機的虛擬技術開始流行。

如何理解虛擬呢?在計算機網路設計時,為了處理不同廠家、不同技術的共同開發,提出了分層的概念,網路分為7層(osi)或5層(internet),每 個層實現本層次的功能,對上提供實現介面,對下提供呼叫介面,層次概念簡化了複雜系統的設計難度,也讓不同層面的設計者有了不同的設計思路,他不再擔心下 面層次的具體實現方式。用層次的概念理解虛擬計算機就容易多了。

虛擬計算機

虛擬計算機實際就是計算機硬體元件的重用,首先是儲存資源,儲存技術已經從計算資源中分離,形成規模巨集大的網路儲存技術nas、san(fcsan、 ipsan),以及近線儲存vtl,離線儲存磁帶與光碟系統,不同廠家的儲存虛擬為乙個大儲存池,對於應用系統來說,不再關心資料具體存在**,只要交給 儲存系統就可以,至於如何保證資料在系統的可用是儲存系統自己的事情,備份、容災、raid技術等資料安全都不用應用系統的人再關心了。

其次是計算資源,尤其是目前多核cpu的出現,應用程式需要幾個cpu、多大記憶體、什麼作業系統、什麼資料庫支援,在虛擬計算機中都是可以動態分配的,也 就是隨時根據你的需要,從目前的所有計算機硬體中虛擬出一台最適合你的計算機,由於資源是按需分配,所以硬體的利用率自然提高。虛擬就是把計算機的硬體變 成可以隨意組裝的積木。

雲計算機

雲計算是ibm提出的新技術。是ibm採用單個效能一般的計算機群體,完成超級計算機才能提供的計算效能。ibm給出的定義:雲計算是一種通過虛擬化的方 式共享資源的計算,計算資源可以動態部署、動態排程、動態**。在雲計算的設施中,各種計算機被連線在一起,形成統一的資源池,這些資源會被動態地分配給 不同的應用和服務,滿足它們在不同時刻的需求。

雲計算有幾個顯著的特點:

分布式:計算機可以部署在不同的網路點上,可以虛擬統一管理,也可以單獨使用。分布方式方便了可重用的構架實現,可以把計算機資源分成更細的重用單元,可重用的組合越精細,複雜度也會增加。

虛擬化:應用與計算機硬體不繫結,根據應用的需要虛擬出應用需求的計算機使用,實際上就是增加了虛擬管理層。

動態可擴充套件:虛擬的計算機比非虛擬的好處,就是動態擴充套件的方便,因為業務的發展,對計算機、儲存等資源的需求會動態增大,而也不希望業務因系統公升級而中斷,動態擴充套件也是虛擬計算的天生亮點。

靈活:雲計算的虛擬可以支援不同應用的環境需求,包括cpu、儲存的硬體需求,也包括作業系統、資料庫、中介軟體等軟體環境。

雲計算可以說是虛擬計算機的高階階段,它與網格計算的差異是網格計算允許計算資源的不同構,當然也犧牲了管理效能的代價。雲計算機採用同構計算資源,對於效率的提高是有好處的,適合企業的計算中心整合。

3、 soa與雲計算的聯合

重用的思路貫穿到計算機的軟硬體設計中,但兩者也是融合的,把兩者放在一起,就是目前的計算機構架。

未來的計算機從軟到硬都是「虛擬」的,真正為人類提供網際網路上的「虛擬」社會就是更加方便了。

從雲計算到容器到容器雲

最近有朋友問我 為啥你寫的東西我都看不懂,也不是我平時用的。我不禁啞口無言。就像今天要說的雲計算,其實已經覆蓋了日常生活的不少場景,像檢票一類的人臉識別,智慧型城市的紅綠燈等等,都是雲計算應用的產物。這次把雲計算 容器 容器雲三者放到一起來說,因為這三個現在非常非常的火,它們之間互有關聯,一般談雲計...

從流水程式到SOA

從流水程式到soa 咱就從函式 開始談起,更史前的goto和彙編 咱就不談了。函式和變數寫多了,自然也就發現有些函式和變數互相粘在一起很高耦合,而與其它的一些卻沒多達關係,於是為了顯性化讓其他的開發人員知道哪些函式和變數確實關聯性很緊密,於是創造了類。物件導向在80年代的國外 開發界頗為流行。但介面...

企業計算 雲計算 推動SOA實現

今天的it部門面臨著雙重挑戰 既要保持企業應用正常執行,又要在it預算不斷減少的情況下快速提供 新服務 與此同時,it的商業模式正在改變應用 內容 資訊和基礎設施的交付方式。就目前而言,業務執行和創新的最大障礙之一就是管理的複雜性。這一障礙迫使最大的it投資用於保持系統的正常運轉以及基礎設施的擴張上...