雲計算對傳統軟件工程的影響

雲計算對傳統軟件工程的影響數據庫

       在這個互聯網時代,「雲」的概念也被社會各界普遍認識,雖然說人們不必定了解雲和雲計算的具體定義,可是至少你們都對此有所耳聞。在軟件工程方面一樣也不例外,雲計算的普遍應用也對軟件工程產生了巨大的影響。瀏覽器

       首先,咱們須要瞭解清楚雲計算的定義:雲計算是將IT 相關的能力以服務的方式提供給用戶,容許用戶在不瞭解提供服務的技術、沒有相關知識以及設備操做能力的狀況下,經過Internet 獲取須要服務。總的來講,雲計算是一種基於互聯網的超級計算模式,它將計算機資源聚集起來,進行統一的管理和協同做,以便提供更好的數據存儲和網絡計算服務。服務器

雲計算架構網絡

 

雲計算的體系結構由5部分組成,分別爲應用層,平臺層,資源層,用戶訪問層和管理層。架構

       一、應用層:應用層提供軟件服務。併發

       二、平臺層:平臺層爲用戶提供對資源層服務的封裝,使用戶能夠構建本身的應用。模塊化

       三、資源層:資源池層是指基礎架構屋面的雲計算服務,這些服務能夠提供虛擬化的資源,從而隱藏物理資源的複雜性。測試

       四、用戶訪問層:用戶訪問層是方便用戶使用雲計算服務所需的各類支撐服務,針對每一個層次的雲計算服務都須要提供相應的訪問接口。雲計算

       五、管理層:管理層是提供對全部層次雲計算服務的管理功能操作系統

 

雲計算服務分爲三層:

       一、IaaS Infrastructure-as-a-Service(基礎設施即服務):有IaaS,你能夠將硬件外包到別的地方去。IaaS公司會提供場外服務器,存儲和網絡硬件,你能夠租用。節省了維護成本和辦公場地,公司能夠在任什麼時候候利用這些硬件來運行其應用。

       二、PaaS Platform-as-a-Service(平臺即服務):PaaS公司在網上提供各類開發和分發應用的解決方案,好比虛擬服務器和操做系統。這節省了你在硬件上的費用,也讓分散的工做室之間的合做變得更加容易

       三、SaaS: Software-as-a-Service(軟件即服務):這一層是和你的生活天天接觸的一層,大可能是經過網頁瀏覽器來接入。任何一個遠程服務器上的應用均可以經過網絡來運行,就是SaaS了。

 

雲計算特色

 

雲計算主要有如下五大特色:

一、支持異構基礎資源:雲計算能夠構建在不一樣的基礎平臺之上,便可以有效兼容各類不一樣種類的硬件和軟件基礎資源。

二、支持資源動態擴展:支持資源動態伸縮,實現基礎資源的網絡冗餘,意味着添加、刪除、修改雲計算環境的任一資源節點,亦或任一資源節點異常宕機,都不會致使雲環境中的各種業務的中斷,也不會致使用戶數據的丟失。

三、支持異構多業務體系:在雲計算平臺上,能夠同時運行多個不一樣類型的業務。異構,表示該業務不是同一的,不是已有的或事先定義好的,而應該是用戶能夠本身建立並定義的服務。

四、支持海量信息處理:雲計算,在底層,須要面對各種衆多的基礎軟硬件資源;在上層,須要可以同時支持各種衆多的異構的業務;而具體到某一業務,每每也須要面對大量的用戶。由此,雲計算必然須要面對海量信息交互,須要有高效、穩定的海量數據通訊/存儲系統做支撐。

五、按需分配,按量計費:按需分配,是雲計算平臺支持資源動態流轉的外部特徵表現。雲計算平臺經過虛擬分拆技術,能夠實現計算資源的同構化和可度量化,能夠提供小到一臺計算機,多到千臺計算機的計算能力。按量計費起源於效用計算,在雲計算平臺實現按需分配後,按量計費也成爲雲計算平臺向外提供服務時的有效收費形式。

 

與傳統結構的對比

 

下面兩幅圖是傳統結構和雲計算架構的對比:

 

 

 

 

從以上兩幅圖能夠明顯看出,雲計算將用於存儲、計算與網絡的單元放到了雲端。明顯對於開發人員所需的硬件要求能夠大大下降。所以開發者對於硬件的需求大大降低,再也不須要強大功能的機器進行開發,只須要保證一個夠快的網速便可。在完成設計後讓程序在雲端運行便可,本地只須要接收結果和對代碼進行修改等工做,能夠大大節約成本。

 

對傳統軟件工程的影響

 

       回顧計算機軟件技術的發展,一個主要的趨勢就是軟件要處理更復雜的邏輯、更大規模的運算、存儲並處理更多的信息。對於軟件開發而言,當軟件規模和複雜程度增大後軟件問題就會增長軟件危機實質上並無解決,但能夠設法迴避或下降其影響,基本的思路就是下降系統的複雜性(雲計算也是這個基本思路的產物)1。所以傳統條件下在軟件複雜度不斷增長的狀況下開發者所需的硬件條件也會不斷上升,從而大大增長開發成本。而採用雲計算的方式則能夠有效迴避這一問題。接下來,經過對照雲計算的特色,我會對雲計算對於軟件工程的影響進行逐條分析。

      

一、支持異構基礎資源:因爲提供硬件和基礎軟件(如操做系統、數據庫等)的是服務供應商,因此軟件開發能夠認爲是在本地的一臺虛擬機上進行工做。不只如此,這臺虛擬機的硬件配置是足夠強大的,能夠按照開發者的須要進行定製。並且在現實中,一款軟件通常來講都是須要兼容多個不一樣的系統,利用雲計算資源就能夠同時在不一樣的操做系統或是機器環境下進行開發和測試,大大提高效率並節約了大量成本。

 

二、支持資源動態擴展:雲計算環境支持動態伸縮,資源節點的變更不會致使整個虛擬機的宕機和數據丟失。這裏的資源節點能夠是計算節點、存儲節點和網絡節點。我我的認爲,這樣的功能在開發時能夠十分方便的對開發中的軟件進行功能的增刪。開發組在開發時只須要將軟件模塊化,在查找問題的時候就可以針對某一模塊進行改動而不會影響軟件其餘模塊以及軟件總體部分的測試,極大的下降了軟件構件之間的耦合程度。軟件的客戶端、服務端、管理端等構件徹底以併發、獨立的方式部署和管理。而且可使升級、測試和開發併發進行,有效地提高了開發的效率。而且在軟件交付後,也能夠根據實施用戶的多少相應的添加或是減小資源,升級更新也會更加靈活。

 

三、支持異構多業務體系:在雲計算平臺上,能夠同時運行多個不一樣類型的業務。用戶經過自定義服務來達到本身的目的和完成本身的目標。雲計算模式極

大的下降了軟件構件之間的耦合程度,軟件的客戶端、服務端、管理端等構件徹底以併發、獨立的方式部署和管理。甚至軟件運行的基礎設施也能夠在用戶透明的方式完成升級換代和從新部署。開發者隨時能夠切換本身的任務和模塊,極大地方便了軟件的開發、測試、和維護。

 

四、支持海量信息處理:因爲開發的軟件放在了雲端並可以支持大量的不一樣種類業務,所以軟件在雲端能夠更好的進行併發處理。開發過程當中,用戶、開發人員之間再也不有明確的角色劃分。全部人都在雲端進行操做,並且雲端上也可以支持海量信息的處理,因此在大量用戶使用的同時,軟件開發人員也可以對軟件進行實時的維護和升級,大大提升軟件開發的併發性。

 

五、按需分配,按量計費:雲計算技術可讓開發組成員根據本身當前開發的軟件的須要自定義所需的硬件資源和系統軟件資源,採用租用的形式,大大節省了購置機器的費用以及配置和開發環境的時間,並且開發組能夠更好且更有針對性的對軟件的開發環境進行定製,節約了成本,提升了效率。

 

       總之,雲計算是從互聯網演變而來,雲計算本質經過網絡將計算力進行集中,而且經過網絡進行服務,若是沒有網絡,計算力集中規模、服務的種類和可得到性就會受到極大的限制。軟件開發工程也應當藉助雲計算這股「東風」完成本身的革新。雲計算讓軟件開發可以進入雲端,讓軟件的開發過程進入網絡,從而大大提高本身的效率,減小成本,讓更多的人都能參與到軟件開發中來。

 

 

 

 

 

【1】張勇,雲計算環境下軟件工程模式初探【A】 北方自動控制技術研究所 太原

相關文章
相關標籤/搜索