440 likes | 708 Views
EDOC 技術與企業級中間層. 6-1. 綠色(Green)計算與雲端運算. 6-5. 公用(Utility)計算. 6-2. 平行檔案系統. 6-6. 普及計算與行動計算. 6-3. 小結. 6-7. P2P 網格運算與 JXTA. 6-4. 6.1 EDOC 技術與企業級中間層.
E N D
EDOC技術與企業級中間層 6-1 綠色(Green)計算與雲端運算 6-5 公用(Utility)計算 6-2 平行檔案系統 6-6 普及計算與行動計算 6-3 小結 6-7 P2P網格運算與JXTA 6-4
6.1EDOC技術與企業級中間層 • 雲端運算是一種分散式計算,其核心是把HPC和網格運算中慣用的Cluster資源分享技術用於商業應用。然而分散式計算技術早已在商業應用中“無所不在”【38,39】,特別是EDOC,這類技術包括早期的CORBA到目前的 .NET和Java EE,都是分散式計算技術。EDOC是專注於業務邏輯和整合,有時也關注HA群集以提高可靠性和可用性。
EDOC技術在商業應用中的主要形式就是中間層(Middleware),或叫企業應用整合(Enterprise Application Integration,EAI)中間層,以便和前文介紹過的以Clustering技術為核心的HPC和網格中間層相區分。
最早具有中間層技術思想及功能的軟體是IBM的CICS(Customer Information Control System),系統性的中間層技術還是基於CORBA、.NET和Java EE技術體系的,基於這些技術的中間層產品從20世紀90年代末以來發展迅速,是企業級中間層的“正規軍”,目前已成為一個成熟的產業。
在眾多企業級中間層的定義中,普遍被接受的是IDC表述的:中間層是一種獨立的系統軟體或服務程式,分散式應用軟體借助這種軟體在不同的技術之間共用資源。網際網路在企業應用中開始盛行,隨之產生了一個新型的中間層,也就是應用程式伺服器(Application Server),應用程式伺服器的主要基於Java EE技術,.NET技術也有應用程式伺服器的概念。
近年來,業界又推出了很多新的概念,其中鋒頭最勁的當屬SOA(服務導向的架構)。近年來,業界又推出了很多新的概念,其中鋒頭最勁的當屬SOA(服務導向的架構)。 • 基於企業級中間層和EDOC技術的EAI/ERI/EII系統和雲端運算技術的融合是企業必須關注的一個方向。
6.1.1CORBA、.NET 和Java EE • CORBA是Common Object Request Broker Architecture的縮寫,它是多年分散式計算技術發展與物件導向(Object Oriented)的設計邏輯和程式設計技術相結合的產物。目標是要使用不同的電腦語言編寫的軟體模組(Component)能夠在分散式多機環境下協同工作,在業界有很大影響。
隨著通用電腦價格的降低和性能的提高,人們開始開發能夠在通用UNIX機器上執行的類似CICS、MQ那樣的軟體系統,這些系統基本上都是用C語言實作的, C語言對模組化、構件化(Component)和服務化的架構實作難度較大,所以SOA的理念沒有得到很好的落實。 • 物件導向(Obejected Oriented,OO)技術的出現給軟體系統帶來了新的設計邏輯和技術手段。
CORBA是一種分散式計算中間層(Middleware),可以實作Client/Server的服務模式。CORBA是一種分散式計算中間層(Middleware),可以實作Client/Server的服務模式。 • 最具代表性產品就是Application Server中間層,如Java EE陣營的Weblogic Server、WebSphere Server(如圖6-5(右)所示)等產品和.NET陣營的IIS(Internet Information Server)。
.NET和Java EE技術體系和CORBA技術體系中的軟體實體有許多一一對應的關係,如CORBA中有MOM,.NET中有MSMQ,Java EE中有JMS等等。MQ與MPI的對應關係,Message(訊息)是分散式計算的一個重要概念,在企業分散式系統和HPC分散式系統中都有實作,最底層技術是Socket,包括了RPC(Remote Procedure call)、RMI(Remote Method Call)等。
企業分散式系統的發展和HPC分散式系統一直在兩條平行線上各自發展,筆者認為,這兩個分散式計算範疇(Paradigm)有相互融合的可能性和必要性。企業分散式系統的發展和HPC分散式系統一直在兩條平行線上各自發展,筆者認為,這兩個分散式計算範疇(Paradigm)有相互融合的可能性和必要性。
6.2 公用(Utility)計算 • 公用計算指的是把計算資源(包括計算、儲存和服務等)打包成設施(Utility)的使用一樣來計量,並按使用量來計費的服務形式。 • 電腦界最高獎Turing獎獲得者John McCarthy就曾預言,有一天計算資源的使用可能會像水電的使用那樣,透過按需付費來接受服務。在隨後的20多年裏,IBM等一些Mainframe製造商建立了資料中心,小型機的出現改變了那個格局,這種服務模式就消失了。
1998年HP公司成立了專門的“公用計算”部門, SUN公司在2000年宣佈了Sun Cloud服務。 • 還有一種公用計算的版本是在企業內部透過共用資源提供服務。 • 圖6-8展示了一個公用計算系統的架構,這個系統透過虛擬化技術整合計算資源,然後按SLA(Service Level Agreement,服務級別規定)分配資源提供公用計算服務。
從長遠來看,當效用計算使IT像水或電一樣,由外部廠商來供應時,企業內部IT領導人需要更多地關注如何使IT更加貼近於業務需求。從長遠來看,當效用計算使IT像水或電一樣,由外部廠商來供應時,企業內部IT領導人需要更多地關注如何使IT更加貼近於業務需求。
6.3 普及計算與行動計算 • 普及計算(Pervasive Computing)把分散式計算普及化,如圖6-9所示,是一種Ultra Large Scale(ULS)的分散式計算【40】。 • 分散式計算走向普及計算的主要標誌是行動網路(Mobile Networks)和普及網路(Ubiquitous Networks)的使用,普及計算使分散式計算去適應和融入人文環境。
普及與行動計算使分散式計算飛向雲端,Android Cloud to Device Messaging(C2DM)允許第三方開發者開發相關的應用來推送少量資料訊息到使用者的手機上,但這樣的技術意義非凡,必將開拓出廣泛的應用前景。
6.4P2P網格運算與JXTA • (Peer-to-Peer,P2P)成功地將許多有趣的分佈計算技術重新拉回到人們視線中。事實上,P2P計算的用途很廣,應該說它是網格運算的一種(P2P Grid,如圖6-12所示),也可以說它是雲端運算的一種,是分散式Cluster技術發展的產物。
JXTA(Juxtapose)是Java EE技術體系中的一個P2P實作。 • 對等(P2P)網格與傳統的C/S或基於Web的多層架構不同,其中的節點對等是彼此對等直接通信的,這種訊息交換機制無須依賴集中式伺服器或資源就可完成,透過創立“自治”的高可用性和高容錯能力的計算資源網路,P2P系統結構使真正的分散式計算成為可能。
JXTA其實並不是以字母J開頭代表Java和Jini的首字母縮寫詞,事實上,它取Juxtapose(並列)這個英文單詞之意,漂亮而優美地描繪了未來完整的P2P計算世界。JXTA其實並不是以字母J開頭代表Java和Jini的首字母縮寫詞,事實上,它取Juxtapose(並列)這個英文單詞之意,漂亮而優美地描繪了未來完整的P2P計算世界。 • JXTA P2P系統和Grid中間層技術密切結合,如圖6-13所示,實作“自治”化的高可用性和高容錯能力的計算資源的共用,也是雲端運算的一個應用和發展方向。
6.5 綠色(Green)計算與雲端運算 • San Murugesan【42】把綠色計算(Green Computing)定義為:對計算資源和輔助設備的設計、生產、使用和處置過程的研究和實務,以便最有效地達到減少和消除對環境的影響的目的。 • IDC的研究顯示,伺服器增加的時候,配套用電量將呈指數級上升。數量巨大的伺服器將會造成大量的能源消耗,這已經成為大量伺服器使用者的共識。
國際上已有一些標準和組織在進行這方面的努力。例如,IEEE 1680。波特蘭(Portland)市綠色電子委員會(Green Electronics Council)提出的EPEAT(Electronic Product Environmental Assessment Tool)。LEED(Leadership in Energy and Environmental Design)是由美國綠色建築協會(US Green Building Council)設計的。
雲端運算技術能發揮作用的地方主要是綠色計算中設備的有效使用這個環節。伺服器在空閒時的耗電量約佔峰值工作狀態時耗電量的60%以上,如果能夠透過Cluster等技術實現資源分享,充分利用空閒的計算資源,就能減少計算資源的採購,節能減碳。雲端運算技術能發揮作用的地方主要是綠色計算中設備的有效使用這個環節。伺服器在空閒時的耗電量約佔峰值工作狀態時耗電量的60%以上,如果能夠透過Cluster等技術實現資源分享,充分利用空閒的計算資源,就能減少計算資源的採購,節能減碳。
雲端運算的作業排程和系統管理等技術還能把一天不同時間段的計算負荷與計算資源相匹配,達到資源整合,節能減碳的效果。雲端運算的作業排程和系統管理等技術還能把一天不同時間段的計算負荷與計算資源相匹配,達到資源整合,節能減碳的效果。 • 總之,利用雲端運算技術,可以提高系統的整體計算能力和效率,達到節能、環保、降低企業成本的目的。
6.5.1Google 資料中心技術 • 大中型資料中心的PUE(Power Usage Effectiveness)指數普遍在2.0左右,也就是在伺服器等計算設備上耗1度電,在2009年1月宣佈,其部分資料中心2008年4季度PUE指數達到了1.16,2008年整年達到1.19(如圖6-20所示),Google的Chris Malone預計其資料中心PUE指數最終可能會達到1.10。
Google的資料中心節能降耗技術主要有自然冷卻、12V電池、伺服器整合這三大最佳實務。Google的資料中心節能降耗技術主要有自然冷卻、12V電池、伺服器整合這三大最佳實務。 • 自然冷卻。 • 專用的12V內置電池。 • 伺服器整合。
6.6 平行檔案系統 • 和計算系統本身的虛擬化一樣,儲存設備也需要虛擬化技術的幫助才能被更有效地使用。所謂虛擬儲存,就是把多個儲存媒介模組透過一定的手段集中起來管理,所有的儲存模組在一個儲存池中得到統一管理,看到的就不是多個硬碟,而是一個個分區或者卷,就好像是一個超大容量的硬碟。
磁碟陣列(RAID)是較早出現的一種虛擬儲存技術。隨著資料量不斷增加和對資料可用性要求的不斷提高,又出現了儲存區域網路(Storage Area Network,SAN)和NAS(Network-Attached Storage)等基於網路的分散式虛擬化儲存技術。 • 對於計算系統來說,檔案系統(File System)的概念極為重要,檔是各種OS存取資料的基本單元,所以各種OS都需要檔案系統的支援,有的OS支援多種檔案系統。和電腦語言一樣,檔案系統經過多年的發展目前已超過100多個【46】。
對於分散式HPC或雲端運算系統來說,平行或分散式檔案系統也是關鍵。有3種檔案系統可用於機群或群集系統:NFS、基於SAN的檔案系統、平行檔案系統(Parallel File System)或群集檔案系統(Clustered File System)。它們都屬於分散式檔案系統(Distributed File System)或網路檔案系統(Networked File System)這個大類。
6.6.1GPFS、Lustre 和 HDFS • 平行檔案系統(Parallel File System)或同時檔案系統(Concurrent File System)屬於分散式檔案系統的一類,有的同時檔案系統的名字叫分散式檔案系統,如Google的HDFS(Hadoop Distributed File System),但它們仍然屬於同時檔案系統。 • 同時檔案系統相對於一般的單機檔案系統的一個主要功能,就是要能夠把同一個檔分塊儲存在一批儲存節點上,同時讓一批計算節點同時地存取,而不出現混亂和錯誤,每個節點可以用自己的當地檔案系統,這就需要很高的同步和協同處理能力。
IBM的GPFS(General Parallel File System)是一種基於磁片共用(Shared-Disk)技術的群集檔案系統。 • GPFS採用VSD(Virtual Shared Disk)虛擬共用磁片的架構(如圖6-25所示),計算或應用節點透過IBM的SP-2高速交換機和專門負責儲存功能節點存取硬碟。 • Lustre是一個用於大規模機群計算的大規模並行(MP)分散式檔案系統,Lustre這個名字由Linux和Cluster兩個片語合而成。
Lustre系統由以下四大部分組成。 • MetaData Server(MDS)。 • Object Storage Servers(OSSs)。 • Object Storage Targets(OSTs)。 • 應用節點。 • Lustre的系統架構如圖6-27所示。
Google的同時檔案系統GFS(Google File System)是其Hadoop系統的主要支援系統之一,HDFS是GFS的一個開源版本,有很多使用者。HDFS的架構和工作原理與Lustre基本相同。 • 如圖6-29所示是GFS的工作原理圖,Client即計算節點,把資料分解後傳送一批到Chunkserver上,處理完後自己回收再合併,得出最終結果,由GFS Master協調衝突和同步等問題。
Lustre與HDFS接近,但Lustre比HDFS要通用;HDFS主要專注於Petabytes級別的大量資料處理,專用於網際網路資料的處理,特別是搜尋引擎。這裡不再做深入介紹。Lustre與HDFS接近,但Lustre比HDFS要通用;HDFS主要專注於Petabytes級別的大量資料處理,專用於網際網路資料的處理,特別是搜尋引擎。這裡不再做深入介紹。
6.7 小結 • 幾乎所有的網際網路應用都是分散式計算,分散式計算在商用領域早已經是無所不在了。然而,分散式商用計算和HPC多年來一直像兩條平行的鐵軌線一樣齊頭並進地發展。雲端運算的到來加強了兩者的互動和融合,終於使我們進入了分散式大融合(Distributed Convergence)和大整合(Grand Integration)的時代! • 一個使用頻率最高的詞就是“中間層(Middleware)”。