從SOA到雲計算---「重用」始終是計算機的靈魂
Jack zhai
曾經有過世界性的探討,計算機未來是否能夠超越人的智力,機器人是否能夠反過來統治人類,當人把本身的感情能力也賦予給計算機,計算機也有了「生命」,那麼機器人也能夠擁有人的權利嗎?
計算機做爲人類的輔助工具,並且愈來愈深刻到人類生活、工做的各個角落,那麼計算機比人究竟擅長的是什麼?計算機技術飛速發展,形態也花樣百出,但計算機沒有變的思想是什麼?
咱們都瞭解,計算機分爲硬件與軟件,硬件是實現運算的平臺,所「會的」也是再簡單不過的加法與移位,軟件是把你要作的事情逐漸分解,拆分爲計算機能夠作的簡單工序,先輸入給計算機內,計算完後再輸出結果。這個過程有些象工廠流水線的管理,原料從這邊進去,產品從那邊出來。
任何複雜的事情,經過數字化,變成計算機能夠認識的「語言」,計算機再作「計算」,按照咱們的模型(軟件設計)獲得咱們須要的結果,因此原則上計算機能夠作任何動做。可是計算機最低層的工做,就是「重複」地計算,並且每次幹新事情時,能夠重複利用之前的軟件,工做就大大簡化,若不能重複使用,計算機其實比人還「笨」,也就是由於這個「重用」,讓計算機的能力愈來愈神奇。
咱們從軟件與硬件兩個方面說明一下重用的發展,也總結一下計算機的新技術:
一、
從模塊編程到面向對象,再到SOA
在學習計算機軟件設計思想時,老師很自豪的說,雖然計算機有不少語言,但其設計思路只有順序、轉折、循環三種,其中轉折是條件的判斷,這一點計算機不如人,人能夠多個判斷條件兼顧,並很快選擇重要的條件因素,而計算機只會一個一個看,在高明的「算法」也是人思路總結的便捷判斷方式;但在循環方面,計算機就表現得很是優秀,讓計算機重複幾萬次,能夠徹底同樣;而人來作這件事情,很快就會「找不到北了」,因此計算機的出如今求解方程的疊代計算、財務的記賬、資料的統計等方面,計算機簡直就是「千百人」能力的疊加,循環就是部分程序的重用,重複是計算機的強項。
因此在計算機軟件設計時,重用一直是設計中的靈魂。提及來也頗有趣,軟件發展思想一直是在不斷地增強重用的能力。
n
模塊編程:
在DOS編程時,比較流行的設計思想是模塊編程,也就是經過設計能夠重複使用的程序功能塊,做爲過程或函數來調用,讓程序結構化,設計簡單化。在那個時代,能讓本身的軟件最大的重用是很不錯的事,要設計個下拉菜單、畫個小圖標,須要本身不斷完善本身的「軟件庫」。
正是因爲這種軟件低度共享的緣故,軟件開發人員通常是比較「專業」的人員,而開發的應用軟件又都是業務管理軟件,計算機人員與業務使用人員對業務的理解與對計算機能力的理解相差甚遠,確認你們溝通的「語言與方式」每每是軟件設計成敗的關鍵。
n
面向對象:
能重用更多的軟件模塊的開發管理,讓你們的工做能有積累效應,軟件設計思路從編程人員到軟件系統設計者的角度,出現了功能與數據封裝在一塊兒的「重用」,這就是面向對象的編程。
面向對象方式讓數據與程序一塊兒重用,等於應用功能的重用,讓軟件界的工做獲得共同積累,專門爲其餘軟件開發者提供中間件的專業軟件公司相繼出現。如今軟件設計者不再用爲菜單、打印等「通用」的功能而花時間,開發者有了更多的時間研究業務的流程、用戶化的設計,IT人員開始與業務人員進行更多的交流,敏捷編程思想開始流行,IT管理者也逐步走到企業核心管理者的團隊中。
n
SOA(面向服務架構體系)
SOA的出現不是爲了軟件編程,它讓不少人不理解,所謂的服務到底是要幹什麼,有些象系統集成中的搭積木,咱們順着模塊編程到面向對象的發展思路,再向上走一步就明白了:既然應用中的對象已經能夠重用,下一步就是把業務流程拆解爲可重用的子流程,重用的程度上升爲業務流程設計層面,所謂服務就是爲業務流程用戶提供的實現平臺,能儘量地重用,企業的業務支撐就能夠快速組建,業務流程能夠快速重造。SOA的五大關鍵因素有兩個是做基礎支撐的,一個是連通,另外一個就是重用,重用是SOA快捷支撐企業業務能力的靈魂。
因此咱們說SOA是高級可重用的編程思路,把軟件設計的着眼點從編程人員轉移到業務流程設計人員,讓業務用戶與IT人員的「對話」更加「職業」,計算機已經成爲最爲普通的工具,軟件開發成爲業務人員的工做,而再也不是計算機專業人員的工做了。
軟件開發思路的變化,體如今計算機普及的歷程上,但其重用的思想不只沒有改變,並且在不斷地光大,「可重用」也再也不只是計算機專業理解的專業術語,而是使用計算機全部人員的新思惟方式。
二、
從虛擬計算機到雲計算
重用在軟件開發思路上的展示是計算機設計者開始就有的想法,硬件設計者也一直在但願硬件的重用。在單臺的計算機上運行多用戶的系統,讓多我的使用不一樣應用在早期的計算機上就開始了,由於那時計算機是奇缺資源;後來PC普及後,在PC上運行單用戶的多線程,讓一個用戶能夠同時作不一樣的事情。隨着CPU的功能日漸強大,人們開始但願更多、更靈活的硬件平臺了,計算機的虛擬技術開始流行。
如何理解虛擬呢?在計算機網絡設計時,爲了處理不一樣廠家、不一樣技術的共同開發,提出了分層的概念,網絡分爲7層(OSI)或5層(Internet),每一個層實現本層次的功能,對上提供實現接口,對下提供調用接口,層次概念簡化了複雜系統的設計難度,也讓不一樣層面的設計者有了不一樣的設計思路,他再也不擔憂下面層次的具體實現方式。用層次的概念理解虛擬計算機就容易多了。
n
虛擬計算機
虛擬計算機實際就是計算機硬件組件的重用,首先是存儲資源,存儲技術已經從計算資源中分離,造成規模宏大的網絡存儲技術NAS、SAN(FCSAN、IPSAN),以及近線存儲VTL,離線存儲磁帶與光盤系統,不一樣廠家的存儲虛擬爲一個大存儲池,對於應用系統來講,再也不關心數據具體存在哪裏,只要交給存儲系統就能夠,至於如何保證數據在系統的可用是存儲系統本身的事情,備份、容災、RAID技術等數據安全都不用應用系統的人再關心了。
其次是計算資源,尤爲是目前多核CPU的出現,應用程序須要幾個CPU、多大內存、什麼操做系統、什麼數據庫支持,在虛擬計算機中都是能夠動態分配的,也就是隨時根據你的須要,從目前的全部計算機硬件中虛擬出一臺最適合你的計算機,因爲資源是按需分配,因此硬件的利用率天然提升。虛擬就是把計算機的硬件變成能夠隨意組裝的積木。
n
雲計算機
雲計算是IBM提出的新技術。是IBM採用單個性能通常的計算機羣體,完成超級計算機才能提供的計算性能。IBM給出的定義:雲計算是一種經過虛擬化的方式共享資源的計算,計算資源能夠動態部署、動態調度、動態回收。在雲計算的設施中,各類計算機被鏈接在一塊兒,造成統一的資源池,這些資源會被動態地分配給不一樣的應用和服務,知足它們在不一樣時刻的需求。
雲計算有幾個顯著的特色:
n
分佈式:計算機能夠部署在不一樣的網絡點上,能夠虛擬統一管理,也能夠單獨使用。分佈方式方便了可重用的構架實現,能夠把計算機資源分紅更細的重用單元,可重用的組合越精細,複雜度也會增長。
n
虛擬化:應用與計算機硬件不綁定,根據應用的須要虛擬出應用需求的計算機使用,實際上就是增長了虛擬管理層。
n
動態可擴展:虛擬的計算機比非虛擬的好處,就是動態擴展的方便,由於業務的發展,對計算機、存儲等資源的需求會動態增大,而也不但願業務因系統升級而中斷,動態擴展也是虛擬計算的天生亮點。
n
靈活:雲計算的虛擬能夠支持不一樣應用的環境需求,包括CPU、存儲的硬件需求,也包括操做系統、數據庫、中間件等軟件環境。
雲計算能夠說是虛擬計算機的高級階段,它與網格計算的差別是網格計算容許計算資源的不一樣構,固然也犧牲了管理性能的代價。雲計算機採用同構計算資源,對於效率的提升是有好處的,適合企業的計算中心整合。
三、
SOA與雲計算的聯合
重用的思路貫穿到計算機的軟硬件設計中,但二者也是融合的,把二者放在一塊兒,就是目前的計算機構架。
將來的計算機從軟到硬都是「虛擬」的,真正爲人類提供互聯網上的「虛擬」社會就是更加方便了。