摘要:云計算作為一種新型的計算模式,還處于早期發展階段。眾多大小不一、類型各異的提供商提供了各自基于云計算的應用服務。本文通過介紹亞馬遜、Google、 IBM這三種典型的云計算實現,為讀者剖析在“云計算”背后所采用的具體技術,解析當前云計算的平臺建設方法以及應用構建方式。
云計算作為一種新型的計算模式,還處于早期發展階段。眾多大小不一、類型各異的提供商提供了各自基于云計算的應用服務。本文通過介紹亞馬遜、Google、 IBM這三種典型的云計算實現,為讀者剖析在“云計算”背后所采用的具體技術,解析當前云計算的平臺建設方法以及應用構建方式。
實例1: Google的云計算平臺與應用
Google的云計算技術實際上是針對Google特定的網絡應用程序而定制的。針對內部網絡數據規模超大的特點,Google提出了一整套基于分布式并行集群方式的基礎架構,利用軟件的能力來處理集群中經常發生的節點失效問題。
從2003年開始,Google連續幾年在計算機系統研究領域的最頂級會議與雜志上發表論文,揭示其內部的分布式數據處理方法,向外界展示其使用的云計算核 心技術。從其近幾年發表的論文來看,Google使用的云計算基礎架構模式包括四個相互獨立又緊密結合在一起的系統。包括Google建立在集群之上的文 件系統Google File System,針對Google應用程序的特點提出的Map/Reduce編程模式,分布式的鎖機制Chubby以及Google開發的模型簡化的大規模 分布式數據庫BigTable。
Google File System 文件系統
為了滿足Google迅速增長的數據處理需求,Google設計并實現了Google文件系統(GFS,Google File System)。GFS與過去的分布式文件系統擁有許多相同的目標,例如性能、可伸縮性、可靠性以及可用性。然而,它的設計還受到Google應用負載和 技術環境的影響。主要體現在以下四個方面:
1. 集群中的節點失效是一種常態,而不是一種異常。由于參與運算與處理的節點數目非常龐大,通常會使用上千個節點進行共同計算,因此,每時每刻總會有節點處在失效狀態。需要通過軟件程序模塊,監視系統的動態運行狀況,偵測錯誤,并且將容錯以及自動恢復系統集成在系統中。
2. Google系統中的文件大小與通常文件系統中的文件大小概念不一樣,文件大小通常以G字節計。另外文件系統中的文件含義與通常文件不同,一個大文件可能包含大量數目的通常意義上的小文件。所以,設計預期和參數,例如I/O操作和塊尺寸都要重新考慮。
3. Google文件系統中的文件讀寫模式和傳統的文件系統不同。在Google應用(如搜索)中對大部分文件的修改,不是覆蓋原有數據,而是在文件尾追加新 數據。對文件的隨機寫是幾乎不存在的。對于這類巨大文件的訪問模式,客戶端對數據塊緩存失去了意義,追加操作成為性能優化和原子性(把一個事務看做是一個 程序。它要么被完整地執行,要么完全不執行)保證的焦點。
4. 文件系統的某些具體操作不再透明,而且需要應用程序的協助完成,應用程序和文件系統API的協同設計提高了整個系統的靈活性。例如,放松了對GFS一致性 模型的要求,這樣不用加重應用程序的負擔,就大大簡化了文件系統的設計。還引入了原子性的追加操作,這樣多個客戶端同時進行追加的時候,就不需要額外的同 步操作了。
總之,GFS是為Google應用程序本身而設計的。據稱,Google已經部署了許多GFS集群。有的集群擁有超過1000個存儲節點,超過300T的硬盤空間,被不同機器上的數百個客戶端連續不斷地頻繁訪問著。
下圖1給出了Google File System的系統架構,一個GFS集群包含一個主服務器和多個塊服務器,被多個客戶端訪問。文件被分割成固定尺寸的塊。在每個塊創建的時候,服務器分配 給它一個不變的、全球惟一的64位塊句柄對它進行標識。塊服務器把塊作為linux文件保存在本地硬盤上,并根據指定的塊句柄和字節范圍來讀寫塊數據。為 了保證可靠性,每個塊都會復制到多個塊服務器上,缺省保存三個備份。主服務器管理文件系統所有的元數據,包括名字空間、訪問控制信息和文件到塊的映射信 息,以及塊當前所在的位置。GFS客戶端代碼被嵌入到每個程序里,它實現了Google文件系統 API,幫助應用程序與主服務器和塊服務器通信,對數據進行讀寫??蛻舳烁鞣掌鹘换ミM行元數據操作,但是所有的數據操作的通信都是直接和塊服務器進行 的??蛻舳颂峁┑脑L問接口類似于POSIX接口,但有一定的修改,并不完全兼容POSIX標準。通過服務器端和客戶端的聯合設計,Google File System能夠針對它本身的應用獲得最大的性能以及可用性效果。
MapReduce分布式編程環境
為了讓內部非分布式系統方向背景的員工能夠有機會將應用程序建立 在大規模的集群基礎之上,Google還設計并實現了一套大規模數據處理的編程規范Map/Reduce系統。這樣,非分布式專業的程序編寫人員也能夠為 大規模的集群編寫應用程序而不用去顧慮集群的可靠性、可擴展性等問題。應用程序編寫人員只需要將精力放在應用程序本身,而關于集群的處理問題則交由平臺來 處理。
Map/Reduce通過“Map(映射)”和“Reduce(化簡)”這樣兩個簡單的概念來參加運算,用戶只需要提供自己的Map函數以及Reduce函數就可以在集群上進行大規模的分布式數據處理。
據稱,Google的文本索引方法,即搜索引擎的核心部分,已經通過Map Reduce的方法進行了改寫,獲得了更加清晰的程序架構。在Google內部,每天有上千個Map Reduce的應用程序在運行。
分布式大規模數據庫管理系統BigTable
構建于上述兩項基礎之上的第三個云計算平臺就是Google關于將數據庫系統擴展到分布式平臺上的BigTable系統。很多應用程序對于數據的組織還是非 常有規則的。一般來說,數據庫對于處理格式化的數據還是非常方便的,但是由于關系數據庫很強的一致性要求,很難將其擴展到很大的規模。為了處理 Google內部大量的格式化以及半格式化數據,Google構建了弱一致性要求的大規模數據庫系統BigTable。據稱,現在有很多Google的應 用程序建立在BigTable之上,例如Search History、Maps、Orkut和RSS閱讀器等。
下圖2給出了在BigTable模型中的數據模型。數據模型包括行列以及相應的時間戳,所有的數據都存放在表格中的單元里。BigTable的內容按照行來劃分,將多個行組成一個小表,保存到某一個服務器節點中。這一個小表就被稱為Tablet。
以上是Google內部云計算基礎平臺的三個主要部分,除了這三個部分之外,Google還建立了分布式程序的調度器,分布式的鎖服務等一系列相關的云計算服務平臺。
Google的云應用
除了上述的云計算基礎設施之外,Google還在其云計算基礎設施之上建立了一系列新型網絡應用程序。由于借鑒了異步網絡數據傳輸的Web 2.0技術,這些應用程序給予用戶全新的界面感受以及更加強大的多用戶交互能力。其中典型的Google云計算應用程序就是Google推出的與 Microsoft Office軟件進行競爭的Docs網絡服務程序。Google Docs是一個基于Web的工具,它有跟Microsoft Office相近的編輯界面,有一套簡單易用的文檔權限管理,而且它還記錄下所有用戶對文檔所做的修改。Google Docs的這些功能令它非常適用于網上共享與協作編輯文檔。Google Docs甚至可以用于監控責任清晰、目標明確的項目進度。當前,Google Docs已經推出了文檔編輯、電子表格、幻燈片演示、日程管理等多個功能的編輯模塊,能夠替代Microsoft Office相應的一部分功能。值得注意的是,通過這種云計算方式形成的應用程序非常適合于多個用戶進行共享以及協同編輯,為一個小組的人員進行共同創作 帶來很大的方便性。
Google Docs是云計算的一種重要應用,即可以通過瀏覽器的方式訪問遠端大規模的存儲與計算服務。云計算能夠為大規模的新一代網絡應用打下良好的基礎。
雖然Google可以說是云計算的最大實踐者,但是,Google的云計算平臺是私有的環境,特別是Google的云計算基礎設施還沒有開放出來。除了開放 有限的應用程序接口,例如GWT(Google Web Toolkit)以及Google Map API等,Google并沒有將云計算的內部基礎設施共享給外部的用戶使用,上述的所有基礎設施都是私有的。
幸運的是,Google公開了其內部集群計算環境的一部分技術,使得全球的技術開發人員能夠根據這一部分文檔構建開源的大規模數據處理云計算基礎設施,其中 最有名的項目即Apache旗下的Hadoop項目。而下面的兩個云計算的實現則為外部的開發人員以及中小公司提供了云計算的平臺環境,使得開發者能夠在 云計算的基礎設施之上構建自己的新型網絡應用。其中IBM的藍云計算平臺是可供銷售的計算平臺,用戶可以基于這些軟硬件產品自己構建云計算平臺。亞馬遜的 彈性計算云則是托管式的云計算平臺,用戶可以通過遠端的操作界面直接使用。
實例2: 亞馬遜的彈性計算云
亞馬遜是互聯網上最大的在線零售商,但是同時也為獨立開發人員以及開發商提供云計算服務平臺。亞馬遜將他們的云計算平臺稱為彈性計算云(Elastic Compute Cloud,EC2),它是最早提供遠程云計算平臺服務的公司。
開放的服務
與 Google提供的云計算服務不同,Google僅為自己在互聯網上的應用提供云計算平臺,獨立開發商或者開發人員無法在這個平臺上工作,因此只能轉而通 過開源的Hadoop軟件支持來開發云計算應用。亞馬遜的彈性計算云服務也和IBM的云計算服務平臺不一樣,亞馬遜不銷售物理的云計算服務平臺,沒有類似 于“藍云”一樣的計算平臺。亞馬遜將自己的彈性計算云建立在公司內部的大規模集群計算的平臺之上,而用戶可以通過彈性計算云的網絡界面去操作在云計算平臺 上運行的各個實例(Instance),而付費方式則由用戶的使用狀況決定,即用戶僅需要為自己所使用的計算平臺實例付費,運行結束后計費也隨之結束。
彈性計算云從沿革上來看,并不是亞馬遜公司推出的第一項這種服務,它由名為亞馬遜網絡服務的現有平臺發展而來。早在2006年3月,亞馬遜就發布了簡單存儲 服務(Simple Storage Service,S3),這種存儲服務按照每個月類似租金的形式進行服務付費,同時用戶還需要為相應的網絡流量進行付費。亞馬遜網絡服務平臺使用REST (Representational State Transfer)和簡單對象訪問協議(SOAP)等標準接口,用戶可以通過這些接口訪問到相應的存儲服務。
2007 年7月,亞馬遜公司推出了簡單隊列服務(Simple Queue Service,SQS),這項服務使托管主機可以存儲計算機之間發送的消息。通過這一項服務,應用程序編寫人員可以在分布式程序之間進行數據傳遞,而無 須考慮消息丟失的問題。通過這種服務方式,即使消息的接收方還沒有模塊啟動也沒有關系。服務內部會緩存相應的消息,而一旦有消息接收組件被啟動運行,則隊 列服務將消息提交給相應的運行模塊進行處理。同樣的,用戶必須為這種消息傳遞服務進行付費使用,計費的規則與存儲計費規則類似,依據消息的個數以及消息傳 遞的大小進行收費。
在亞馬遜提供上述服務的時候,并沒有從頭開始開發相應的網絡服務組件,而是對公司已有的平臺進行優化和改造,一方面滿足了本身網絡零售購物應用程序的需求,另一方面也供外部開發人員使用。
在開放了上述的服務接口之后,亞馬遜公司進一步在此基礎上開發了EC2系統,并且開放給外部開發人員使用。
靈活的工作模式
亞馬遜的云計算模式沿襲了簡單易用的傳統,并且建立在亞馬遜公司現有的云計算基礎平 臺之上。彈性計算云用戶使用客戶端通過SOAP over HTTPS協議來實現與亞馬遜彈性計算云內部的實例進行交互。使用HTTPS協議的原因是為了保證遠端連接的安全性,避免用戶數據在傳輸的過程中造成泄 露。因此,從使用模式上來說,彈性計算云平臺為用戶或者開發人員提供了一個虛擬的集群環境,使得用戶的應用具有充分的靈活性,同時也減輕了云計算平臺擁有 者(亞馬遜公司)的管理負擔。
而彈性計算云中的實例是一些真正在運行中的虛擬機服務器,每一個實例代表一 個運行中的虛擬機。對于提供給某一個用戶的虛擬機,該用戶具有完整的訪問權限,包括針對此虛擬機的管理員用戶權限。虛擬服務器的收費也是根據虛擬機的能力 進行計算的,因此,實際上用戶租用的是虛擬的計算能力,簡化了計費方式。在彈性計算云中,提供了三種不同能力的虛擬機實例,具有不同的收費價格。例如,其 中默認的也是最小的運行實例是1.7GB的內存,1個EC2的計算單元(1虛擬的計算核以相關的計算單元),160GB的虛擬機內部存儲容量,是一個32 位的計算平臺,收費標準為每個小時10美分。在當前的藍計算平臺中,還有兩種性能更加強勁的虛擬機實例可供使用,當然價格也更加昂貴一點。
由于用戶在部署網絡程序的時候,一般會使用超過一個運行實例,需要很多個實例共同工作。彈性計算云的內部也架設了實例之間的內部網絡,使得用戶的應用程序在 不同的實例之間可以通信。在彈性計算云中的每一個計算實例都具有一個內部的IP地址,用戶程序可以使用內部IP地址進行數據通信,以獲得數據通信的最好性 能。每一個實例也具有外部的地址,用戶可以將分配給自己的彈性IP地址分配給自己的運行實例,使得建立在彈性計算云上的服務系統能夠為外部提供服務。當 然,亞馬遜公司也對網絡上的服務流量計費,計費規則也按照內部傳輸以及外部傳輸進行分開。
總而言之,亞馬遜通過提供彈性計算云,減少了小規模軟件開發人員對于集群系統的維護,并且收費方式相對簡單明了,用戶使用多少資源,只需要為這一部分資源付費即可。這種 付費方式與傳統的主機托管模式不同。傳統的主機托管模式讓用戶將主機放入到托管公司,用戶一般需要根據最大或者計劃的容量進行付費,而不是根據使用情況進 行付費,而且,可能還需要保證服務的可靠性、可用性等,付出的費用更多,而很多時候,服務并沒有進行滿額資源使用。而根據亞馬遜的模式,用戶只需要為實際 使用情況付費即可。
在用戶使用模式上,亞馬遜的彈性計算云要求用戶要創建基于亞馬遜規格的服務器映像(名 為亞馬遜機器映像即亞馬遜 Machine Image, AMI)。彈性計算云的目標是服務器映像能夠擁有用戶想要的任何一種操作系統、應用程序、配置、登錄和安全機制,但是當前情況下,它只支持Linux內 核。通過創建自己的AMI,或者使用亞馬遜預先為用戶提供的AMI,用戶在完成這一步驟后將AMI上傳到彈性計算云平臺,然后調用亞馬遜的應用編程接口 (API),對AMI進行使用與管理。AMI實際上就是虛擬機的映像,用戶可以使用它們來完成任何工作,例如運行數據庫服務器,構建快速網絡下載的平臺, 提供外部搜索服務甚至可以出租自己具有特色的AMI而獲得收益。用戶所擁有的多個AMI可以通過通信而彼此合作,就像當前的集群計算服務平臺一樣。
在彈性計算云的將來發展過程中,亞馬遜也規劃了如何在云計算平臺之上幫助用戶開發Web 2.0的應用程序。亞馬遜認為除了它所依賴的網絡零售業務之外,云計算也是亞馬遜公司的核心價值所在??梢灶A見,在將來的發展過程中,亞馬遜必然會在彈性 計算云的平臺上添加更多的網絡服務組件模塊,為用戶構建云計算應用提供方便。
實例3:IBM藍云計算平臺
IBM在2007年11月15日推出了藍云計算平臺,為客戶帶來即買即用的云計算平臺。它包括一系列的云計算產品,使得計算不僅僅局限在本地機器或遠程服務器農場(即服務器集群),通過架構一個分布式、可全球訪問的資源結構,使得數據中心在類似于互聯網的環境下運行計算。
通過IBM的技術白皮書,我們可以一窺藍云計算平臺的內部構造。“藍云”建立在IBM大規模計算領域的專業技術基礎上,基于由IBM軟件、系統技術和服務支 持的開放標準和開源軟件。簡單地說,“藍云”基于IBM Almaden研究中心(Almaden Research Center)的云基礎架構,包括Xen和PowerVM虛擬化、Linux操作系統映像以及Hadoop文件系統與并行構建。“藍云”由IBM Tivoli軟件支持,通過管理服務器來確?;谛枨蟮淖罴研阅?。這包括通過能夠跨越多服務器實時分配資源的軟件,為客戶帶來一種無縫體驗,加速性能并確 保在最苛刻環境下的穩定性。IBM新近發布的“藍云(Blue Cloud)”計劃,能夠幫助用戶進行云計算環境的搭建。它通過將Tivoli、DB2、WebSphere與硬件產品(目前是x86刀片服務器)集成,能夠為企業架設一個分布式、可全球訪問的資源結構。根據IBM的計劃,首款支持Power和x86處理器刀片服務器系統的“藍云”產品將于2008年正式 推出,并且計劃隨后推出基于System z“大型主機”的云環境,以及基于高密度機架集群的云環境。
在IBM的云計算白皮書上,我們可以看到如下的藍云計算平臺配置情況。
下圖4演示了藍云計算的高層架構??梢钥吹?,藍云計算平臺由一個數據中心: IBM Tivoli部署管理軟件(Tivoli Provisioning Manager)、IBM Tivoli監控軟件(IBM Tivoli Monitoring)、IBM WebSphere應用服務器、IBM DB2數據庫以及一些虛擬化的組件共同組成。圖中的架構主要描述了云計算的后臺架構,并沒有涉及到前臺的用戶界面。
藍云的硬件平臺并沒有什么特殊的地方,但是藍云使用的軟件平臺相較于以前的分布式平臺具有不同的地方,主要體現在對與虛擬機的使用以及對于大規模數據處理軟 件Apache Hadoop的部署。Hadoop是網絡開發人員根據Google公司公開的資料開發出來的類似于Google File System的Hadoop File System以及相應的Map/Reduce編程規范?,F在也正在進一步開發類似于Google的Chubby系統以及相應的分布式數據庫管理系統 BigTable。由于Hadoop是開源的,因此可以被用戶單位直接修改,以適合應用的特殊需求。IBM的藍云產品則直接將Hadoop軟件集成到自己 本身的云計算平臺之上。
“藍云”中的虛擬化
從藍云的結構上我們還可以看出,在每一個節點上運行的軟件棧與傳統的軟件棧一個很大的不同在于藍云內部使用了虛擬化技術。虛擬化的方式在云計算中可以在兩個 級別上實現。一個級別是在硬件級別上實現虛擬化。硬件級別的虛擬化可以使用IBM p系列的服務器,獲得硬件的邏輯分區LPAR。邏輯分區的CPU資源能夠通過IBM Enterprise Workload Manager來管理。通過這樣的方式加上在實際使用過程中的資源分配策略,能夠使得相應的資源合理地分配到各個邏輯分區。P系列系統的邏輯分區最小粒度 是1/10顆中央處理器(CPU)。
虛擬化的另外一個級別可以通過軟件來獲得,在藍云計算平臺中使用了Xen虛擬化軟件。Xen也是一個開源的虛擬化軟件,能夠在現有的Linux基礎之上運行另外一個操作系統,并通過虛擬機的方式靈活地進行軟件部署和操作。
通過虛擬機的方式進行云計算資源的管理具有特殊的好處。由于虛擬機是一類特殊的軟件,能夠完全模擬硬件的執行,因此能夠在上面運行操作系統,進而能夠保留一 整套運行環境語義。這樣,可以將整個執行環境通過打包的方式傳輸到其他物理節點上,這樣就能夠使得執行環境與物理環境隔離,方便整個應用程序模塊的部署。 總體上來說,通過將虛擬化的技術應用到云計算的平臺,可以獲得一些良好的特性。
1. 云計算的管理平臺能夠動態地將計算平臺定位到所需要的物理平臺上,而無需停止運行在虛擬機平臺上的應用程序,這比采用虛擬化技術之前的進程遷移方法更加靈活。
2. 能夠更加有效率地使用主機資源,將多個負載不是很重的虛擬機計算節點合并到同一個物理節點上,從而能夠關閉空閑的物理節點,達到節約電能的目的。
3. 通過虛擬機在不同物理節點上的動態遷移,能夠獲得與應用無關的負載平衡性能。由于虛擬機包含了整個虛擬化的操作系統以及應用程序環境,因此在進行遷移的時候帶著整個運行環境,達到了與應用無關的目的。
4. 在部署上也更加靈活,即可以將虛擬機直接部署到物理計算平臺當中。
總而言之,通過虛擬化的方式,云計算平臺能夠達到極其靈活的特性,而如果不使用虛擬化的方式則會有很多的局限。
“藍云”中的存儲結構
藍云計算平臺中的存儲體系結 構對于云計算來說也是非常重要的,無論是操作系統,服務程序還是用戶應用程序的數據都保存在存儲體系中。云計算并不排斥任何一種有用的存儲體系結構,而是 需要跟應用程序的需求結合起來獲得最好的性能提升??傮w上來說,云計算的存儲體系結構包含類似于Google File System的集群文件系統以及基于塊設備方式的存儲區域網絡SAN兩種方式。
在設計云計算平臺的存儲體 系結構的時候,不僅僅是需要考慮存儲的容量。實際上隨著硬盤容量的不斷擴充以及硬盤價格的不斷下降,使用當前的磁盤技術,可以很容易通過使用多個磁盤的方 式獲得很大的磁盤容量。相較于磁盤的容量,在云計算平臺的存儲中,磁盤數據的讀寫速度是一個更重要的問題。單個磁盤的速度很有可能限制應用程序對于數據的 訪問,因此在實際使用的過程中,需要將數據分布到多個磁盤之上,并且通過對于多個磁盤的同時讀寫以達到提高速度的目的。在云計算平臺中,數據如何放置是一 個非常重要的問題,在實際使用的過程中,需要將數據分配到多個節點的多個磁盤當中。而能夠達到這一目的的存儲技術趨勢當前有兩種方式,一種是使用類似于 Google File System的集群文件系統,另外一種是基于塊設備的存儲區域網絡SAN系統。
Google 文件系統我們在前面已經做過一定的描述。在IBM的藍云計算平臺中使用的是它的開源實現Hadoop HDFS (Hadoop Distributed File System)。這種使用方式將磁盤附著于節點的內部,并且為外部提供一個共享的分布式文件系統空間,并且在文件系統級別做冗余以提高可靠性。在合適的分布式數據處理模式下,這種方式能夠提高總體的數據處理效率。Google文件系統的這種架構與SAN系統有很大的不同。
SAN系統也是云計算平臺的另外一種存儲體系結構選擇,在藍云平臺上也有一定的體現,IBM也提供SAN的平臺能夠接入到藍云計算平臺中。圖5就是一個SAN系統的結構示意圖。
從圖5中可以看到,SAN系統是在存儲端構建存儲的網絡,將多個存儲設備構成一個存儲區域網絡。前端的主機可以通過網絡的方式訪問后端的存儲設備。而且,由 于提供了塊設備的訪問方式,與前端操作系統無關。在SAN連接方式上,可以有多種選擇。一種選擇是使用光纖網絡,能夠操作快速的光纖磁盤,適合于對性能與 可靠性要求比較高的場所。另外一種選擇是使用以太網,采取iSCSI協議,能夠運行在普通的局域網環境下,從而降低了成本。由于存儲區域網絡中的磁盤設備 并沒有與某一臺主機綁定在一起,而是采用了非常靈活的結構,因此對于主機來說可以訪問多個磁盤設備,從而能夠獲得性能的提升。在存儲區域網絡中,使用虛擬 化的引擎來進行邏輯設備到物理設備的映射,管理前端主機到后端數據的讀寫。因此虛擬化引擎是存儲區域網絡中非常重要的管理模塊。
SAN 系統與分布式文件系統例如Google File System并不是相互對立的系統,而是在構建集群系統的時候可供選擇的兩種方案。其中,在選擇SAN系統的時候,為了應用程序的讀寫,還需要為應用程序 提供上層的語義接口,此時就需要在SAN之上構建文件系統。而Google File System正好是一個分布式的文件系統,因此能夠建立在SAN系統之上??傮w來說,SAN與分布式文件系統都可以提供類似的功能,例如對于出錯的處理 等。至于如何使用還是需要由建立在云計算平臺之上的應用程序來決定。
與Google不同的是,IBM并沒 有基于云計算提供外部可訪問的網絡應用程序。這主要是由于IBM并不是一個網絡公司,而是一個IT的服務公司。當然,IBM內部以及IBM未來為客戶提供 的軟件服務會基于云計算的架構。(注: 本文受國家973計劃資助,資助號: 2007CB310900以及國家自然科學基金資助,資助號90718040)