IBM公司于2007年底宣布了云計(jì)算計(jì)劃,云計(jì)算的概念出現(xiàn)在大眾面前,為了更好地了解云計(jì)算這個(gè)名字后面的本質(zhì)含義,本文擬通過具體分析工業(yè)界推出的幾個(gè)被廣泛接受的云計(jì)算實(shí)現(xiàn),以及學(xué)術(shù)界針對(duì)當(dāng)前大規(guī)模數(shù)據(jù)處理上所作的努力,為讀者剖析云計(jì)算背后所采用的具體技術(shù),首先看一下在IBM的技術(shù)白皮書“Cloud Computing”中的云計(jì)算定義:
“云計(jì)算一詞用來同時(shí)描述一個(gè)系統(tǒng)平臺(tái)或者一種類型的應(yīng)用程序,一個(gè)云計(jì)算的平臺(tái)按需進(jìn)行動(dòng)態(tài)地部署(provision)、配置(configuration)、重新配置(reconfigure)以及取消服務(wù)(deprovision)等,在云計(jì)算平臺(tái)中的服務(wù)器可以是物理的服務(wù)器或者虛擬的服務(wù)器,高級(jí)的計(jì)算云通常包含一些其他的計(jì)算資源,例如存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SANs),網(wǎng)絡(luò)設(shè)備,防火墻以及其他安全設(shè)備等,云計(jì)算在描述應(yīng)用方面,它描述了一種可以通過互聯(lián)網(wǎng)Internet進(jìn)行訪問的可擴(kuò)展的應(yīng)用程序,“云應(yīng)用”使用大規(guī)模的數(shù)據(jù)中心以及功能強(qiáng)勁的服務(wù)器來運(yùn)行網(wǎng)絡(luò)應(yīng)用程序與網(wǎng)絡(luò)服務(wù),任何一個(gè)用戶可以通過合適的互聯(lián)網(wǎng)接入設(shè)備以及一個(gè)標(biāo)準(zhǔn)的瀏覽器就能夠訪問一個(gè)云計(jì)算應(yīng)用程序。”
上述定義給出了云計(jì)算兩個(gè)方面的含義:一方面描述了基礎(chǔ)設(shè)施,用來構(gòu)造應(yīng)用程序,其地位相當(dāng)于PC機(jī)上的操作系統(tǒng);另一方面描述了建立在這種基礎(chǔ)設(shè)施之上的云計(jì)算應(yīng)用,在與網(wǎng)格計(jì)算的比較上,網(wǎng)格程序是將一個(gè)大任務(wù)分解成很多小任務(wù)并行運(yùn)行在不同的集群以及服務(wù)器上,注重科學(xué)計(jì)算應(yīng)用程序的運(yùn)行,而云計(jì)算是一個(gè)具有更廣泛含義的計(jì)算平臺(tái),能夠支持非網(wǎng)格的應(yīng)用,例如支持網(wǎng)絡(luò)服務(wù)程序中的前臺(tái)網(wǎng)絡(luò)服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器三層應(yīng)用程序架構(gòu)模式,以及支持當(dāng)前Web 2.0模式的網(wǎng)絡(luò)應(yīng)用程序,云計(jì)算是能夠提供動(dòng)態(tài)資源池、虛擬化和高可用性的下一代計(jì)算平臺(tái),現(xiàn)有的云計(jì)算實(shí)現(xiàn)使用的技術(shù)體現(xiàn)了以下3個(gè)方面的 特征:
1) 硬件基礎(chǔ)設(shè)施架構(gòu)在大規(guī)模的廉價(jià)服務(wù)器集群之上,與傳統(tǒng)的性能強(qiáng)勁但價(jià)格昂貴的大型機(jī)不同,云計(jì)算的基礎(chǔ)架構(gòu)大量使用了廉價(jià)的服務(wù)器集群,特別是x86架構(gòu)的服務(wù)器,節(jié)點(diǎn)之間的互聯(lián)網(wǎng)絡(luò)一般也使用普遍的千兆以太網(wǎng)。
2) 應(yīng)用程序與底層服務(wù)協(xié)作開發(fā),最大限度地利用資源,傳統(tǒng)的應(yīng)用程序建立在完善的基礎(chǔ)結(jié)構(gòu),如操作系統(tǒng)之上,利用底層提供的服務(wù)來構(gòu)造應(yīng)用,而云計(jì)算為了更好地利用資源,采用了底層結(jié)構(gòu)與上層應(yīng)用共同設(shè)計(jì)的方法來完善應(yīng)用程序的構(gòu)建。
3) 通過多個(gè)廉價(jià)服務(wù)器之間的冗余,使用軟件獲得高可用性,由于使用了廉價(jià)的服務(wù)器集群,節(jié)點(diǎn)的失效將不可避免,并且會(huì)有節(jié)點(diǎn)同時(shí)失效的問題,為此,在軟件設(shè)計(jì)上需要考慮節(jié)點(diǎn)之間的容錯(cuò)問題,使用冗余的節(jié)點(diǎn)獲得高可用性。
通過上面的技術(shù)手段,云計(jì)算達(dá)到了兩個(gè)分布式計(jì)算的重要目標(biāo):可擴(kuò)展性和高可用性,可擴(kuò)展性表達(dá)了云計(jì)算能夠無縫地?cái)U(kuò)展到大規(guī)模的集群之上,甚至包含數(shù)千個(gè)節(jié)點(diǎn)同時(shí)處理,高可用性代表了云計(jì)算能夠容忍節(jié)點(diǎn)的錯(cuò)誤,甚至有很大一部分節(jié)點(diǎn)發(fā)生失效也不會(huì)影響程序的正確運(yùn)行,學(xué)術(shù)界其實(shí)很早就展開了針對(duì)云計(jì)算方便用戶使用方面的研究,很多學(xué)術(shù)上的研究成果遠(yuǎn)早于云計(jì)算概念提出來之前就已得出,我國(guó)的計(jì)算機(jī)研究人員遠(yuǎn)在“云計(jì)算”這個(gè)名詞提出之前就已有透明計(jì)算的構(gòu)思,透明計(jì)算體現(xiàn)了云計(jì)算的特征,即資源池動(dòng)態(tài)的構(gòu)建、虛擬化、用戶透明等,清華大學(xué)張堯?qū)W教授(中國(guó)工程院院士)早在1998年就開始從事透明計(jì)算系統(tǒng)和理論的研究,工業(yè)界很多公司則分別提出了自己針對(duì)云計(jì)算的理解,用不同的技術(shù)來實(shí)現(xiàn)上述云計(jì)算的目標(biāo)。
本文主要研究工業(yè)界3個(gè)具體的云計(jì)算實(shí)例,具體包括Google的云計(jì)算平臺(tái)以及云計(jì)算的網(wǎng)絡(luò)應(yīng)用程序、IBM公司的“藍(lán)云”平臺(tái)產(chǎn)品以及Amazon公司的彈性計(jì)算云。此外,對(duì)云計(jì)算的學(xué)術(shù)研究現(xiàn)狀也進(jìn)行了調(diào)研與分析。
1 清華大學(xué)透明計(jì)算平臺(tái)
張堯?qū)W教授領(lǐng)導(dǎo)的研究小組從1998年開始就從事透明計(jì)算系統(tǒng)和理論的研究,到2004年前后正式提出,并不斷完善了透明計(jì)算的概念和相關(guān)理論,隨著硬件、軟件以及網(wǎng)絡(luò)技術(shù)的發(fā)展,計(jì)算模式從大型機(jī)的方式逐漸過渡到微型個(gè)人計(jì)算機(jī)的方式,并且近年來過渡到普適計(jì)算上,但是用戶仍然很難獲得異構(gòu)類型的操作系統(tǒng)以及應(yīng)用程序,在輕量級(jí)的設(shè)備上很難獲得完善的服務(wù),而在透明計(jì)算中,用戶無須感知計(jì)算具體所在位置以及操作系統(tǒng)、中間件、應(yīng)用等技術(shù)細(xì)節(jié),只需要根據(jù)自己的需求,通過連通在網(wǎng)絡(luò)之上的各種設(shè)備選取相應(yīng)的服務(wù)。
圖1顯示了透明計(jì)算平臺(tái)的3個(gè)重要組成部分,用戶的顯示界面是前端的輕權(quán)設(shè)備,包括各種個(gè)人計(jì)算機(jī)、筆記本、PDA、智能手機(jī)等,被統(tǒng)稱為透明客戶端,透明客戶端可以是沒有安裝任何軟件的裸機(jī),也可以是裝有部分核心軟件平臺(tái)的輕巧性終端,中間的透明網(wǎng)絡(luò)則整合了各種有線和無線網(wǎng)絡(luò)傳輸設(shè)施,主要用來在各種透明客戶端與后臺(tái)服務(wù)器之間完成數(shù)據(jù)的傳遞,而用戶無須意識(shí)到網(wǎng)絡(luò)的存在,與云計(jì)算基礎(chǔ)服務(wù)設(shè)施構(gòu)想一致,透明服務(wù)器不排斥任何一種可能的服務(wù)提供方式,既可通過當(dāng)前流行的PC服務(wù)器集群方式來構(gòu)建透明服務(wù)器集群,也可使用大型服務(wù)器等。
圖1 透明計(jì)算系統(tǒng)的組成結(jié)構(gòu)
當(dāng)前透明計(jì)算平臺(tái)已經(jīng)達(dá)到了平臺(tái)異構(gòu)的目的,能夠支持Linux以及Windows操作系統(tǒng)的運(yùn)行,用戶具有很大的靈活性,能夠自主選擇自己所需要的操作系統(tǒng)運(yùn)行在透明客戶端上,透明服務(wù)器使用了流行的PC服務(wù)器集群的方式,預(yù)先存儲(chǔ)了各種不同的操作平臺(tái),包括操作系統(tǒng)的運(yùn)行環(huán)境、應(yīng)用程序以及相應(yīng)的數(shù)據(jù),每個(gè)客戶端從透明服務(wù)器上獲取并建立整個(gè)運(yùn)行環(huán)境以滿足用戶對(duì)于不同操作環(huán)境的需求,由于用戶之間的數(shù)據(jù)相互隔離,因此服務(wù)器集群可以選取用戶相對(duì)獨(dú)立的方式進(jìn)行存儲(chǔ),使得整個(gè)系統(tǒng)能夠擴(kuò)展到很大的規(guī)模,在服務(wù)器集群之上進(jìn)行相應(yīng)的冗余出錯(cuò)處理,很好地保護(hù)了每個(gè)用戶的透明計(jì)算數(shù)據(jù)安全性。
2 Google的云計(jì)算平臺(tái)
Google公司有一套專屬的云計(jì)算平臺(tái),這個(gè)平臺(tái)先是為Google最重要的搜索應(yīng)用提供服務(wù),現(xiàn)在已經(jīng)擴(kuò)展到其他應(yīng)用程序,Google的云計(jì)算基礎(chǔ)架構(gòu)模式包括4個(gè)相互獨(dú)立又緊密結(jié)合在一起的系統(tǒng):Google File System分布式文件系統(tǒng),針對(duì)Google應(yīng)用程序的特點(diǎn)提出的MapReduce編程模式,分布式的鎖機(jī)制Chubby以及Google開發(fā)的模型簡(jiǎn)化的大規(guī)模分布式數(shù)據(jù)庫(kù)BigTable。
·Google File System文件系統(tǒng)(GFS)
除了性能,可伸縮性、可靠性以及可用性以外,GFS設(shè)計(jì)還受到Google應(yīng)用負(fù)載和技術(shù)環(huán)境的影響,體現(xiàn)在4個(gè)方面:
1) 充分考慮到大量節(jié)點(diǎn)的失效問題,需要通過軟件將容錯(cuò)以及自動(dòng)恢復(fù)功能集成在系統(tǒng)中;
2) 構(gòu)造特殊的文件系統(tǒng)參數(shù),文件通常大小以G字節(jié)計(jì),并包含大量小文件;
3) 充分考慮應(yīng)用的特性,增加文件追加操作,優(yōu)化順序讀寫速度;
4) 文件系統(tǒng)的某些具體操作不再透明,需要應(yīng)用程序的協(xié)助完成。
圖2給出了Google File System的系統(tǒng)架構(gòu),如圖2所示,一個(gè)GFS集群包含一個(gè)主服務(wù)器和多個(gè)塊服務(wù)器,被多個(gè)客戶端訪問,大文件被分割成固定尺寸的塊,塊服務(wù)器把塊作為L(zhǎng)inux文件保存在本地硬盤上,并根據(jù)指定的塊句柄和字節(jié)范圍來讀寫塊數(shù)據(jù),為了保證可靠性,每個(gè)塊被缺省保存3個(gè)備份,主服務(wù)器管理文件系統(tǒng)所有的元數(shù)據(jù),包括名字空間、訪問控制、文件到塊的映射、塊物理位置等相關(guān)信息,通過服務(wù)器端和客戶端的聯(lián)合設(shè)計(jì),GFS對(duì)應(yīng)用支持達(dá)到性能與可用性最優(yōu),GFS是為Google應(yīng)用程序本身而設(shè)計(jì)的,在內(nèi)部部署了許多GFS集群,有的集群擁有超過1 000個(gè)存儲(chǔ)節(jié)點(diǎn),超過300T的硬盤空間,被不同機(jī)器上的數(shù)百個(gè)客戶端連續(xù)不斷地頻繁訪問著。
圖2 Google File System的系統(tǒng)架構(gòu)
·MapReduce分布式編程環(huán)境
Google構(gòu)造MapReduce編程規(guī)范來簡(jiǎn)化分布式系統(tǒng)的編程,應(yīng)用程序編寫人員只需將精力放在應(yīng)用程序本身,而關(guān)于集群的處理問題,包括可靠性和可擴(kuò)展性,則交由平臺(tái)來處理,MapReduce通過“Map(映射)”和“Reduce(化簡(jiǎn))”這樣兩個(gè)簡(jiǎn)單的概念來構(gòu)成運(yùn)算基本單元,用戶只需提供自己的Map函數(shù)以及Reduce函數(shù)即可并行處理海量數(shù)據(jù),為了進(jìn)一步理解MapReduce的編程方式,下面給出一個(gè)基于MapReduce編程方式的程序偽代碼,程序功能是統(tǒng)計(jì)文本中所有單詞出現(xiàn)的次數(shù)。
在圖3所示的map函數(shù)中,用戶的程序?qū)⑽谋局兴谐霈F(xiàn)的單詞都按照出現(xiàn)計(jì)數(shù)1(以Key-Value對(duì)的形式)發(fā)射到MapReduce給出的一個(gè)中間臨時(shí)空間中,通過MapReduce中間處理過程,將所有相同的單詞產(chǎn)生的中間結(jié)果分配到同樣一個(gè)Reduce函數(shù)中,而每一個(gè)Reduce函數(shù)則只需把計(jì)數(shù)累加在一起即可獲得最后結(jié)果。
圖4給出了MapReduce執(zhí)行過程,分為Map階段以及Reduce兩個(gè)階段,都使用了集群中的所有節(jié)點(diǎn),在兩個(gè)階段之間還有一個(gè)中間的分類階段,即將中間結(jié)果包含相同的key的中間結(jié)果交給同一個(gè)Reduce函數(shù)去執(zhí)行。
圖3 基于MapReduce框架的單詞統(tǒng)計(jì)程序舉例
圖4 MapReduce處理程序的執(zhí)行過程(M代表Map函數(shù)的執(zhí)行,R代表Reduce函數(shù)的執(zhí)行)
·分布式的大規(guī)模數(shù)據(jù)庫(kù)管理系統(tǒng)BigTable
由于一部分Google應(yīng)用程序需要處理大量的格式化以及半格式化數(shù)據(jù), Google構(gòu)建了弱一致性要求的大規(guī)模數(shù)據(jù)庫(kù)系統(tǒng)BigTable,BigTable的應(yīng)用包括Search History,Maps,Orkut,RSS閱讀器等。
圖5給出了在BigTable模型中給出的數(shù)據(jù)模型,數(shù)據(jù)模型包括行列以及相應(yīng)的時(shí)間戳,所有的數(shù)據(jù)都存放在表格單元中,BigTable的內(nèi)容按照行來劃分,將多個(gè)行組成一個(gè)小表,保存到某一個(gè)服務(wù)器節(jié)點(diǎn)中,這個(gè)小表就被稱為Tablet,圖6是整個(gè)BigTable的存儲(chǔ)服務(wù)體系結(jié)構(gòu)。
圖5 Google BigTable的數(shù)據(jù)模型
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:云計(jì)算:系統(tǒng)實(shí)例與研究現(xiàn)狀(上)
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/1083979200.html