【正文】
es to IT industry has been a longheld dream. Cloud puting with its efficiency, reliability, scalability and high load capacity, has been more and more widely accepted. The cloudbased applications have brought a significant change to the development of the industry through a variety of cloud service models. In this paper, by the introduction of the SAP cloud puting applications DMOC products, firstly, we explore the current popular cloud service model, leads to the reason why the DMOC product uses the specified cloud service model by analyzing the advantages and disadvantages of the different service models。作為計算應用的新模式,為IT行業(yè)的發(fā)展帶來重大變革從始至終一直是人們對云計算持有的夢想。學位論文作者簽名: 導師簽名:本人聲明所呈交的學位論文是本人在導師指導下進行的研究工作及取得的研究成果。除了文中特別加以標注和致謝的地方外,論文中不包含其他人已經發(fā)表或撰寫過的研究成果,也不包含為獲得 浙江大學 或其他教育機構的學位或證書而使用過的材料。學位論文作者簽名: 簽字日期: 年 月 日本學位論文作者完全了解 浙江大學 有權保留并向國家有關部門或機構送交本論文的復印件和磁盤,允許論文被查閱和借閱。簽字日期: 年 月 日 簽字日期: 年 月 日浙江大學碩士學位論文 摘要摘要隨著云計算產業(yè)的不斷發(fā)展,云計算的概念在不斷的被否認與被認可中走向清晰。云計算以其高效性、可靠性、可擴展性和高負載能力也越來越多的被企業(yè)和個人采納利用。 Secondly, through the study of the cloud puting technology and the detailed exploration of application technology on the DMOC product development required, derive the product framework and put them into practice。當今世界,正在以前所未有的速度由傳統(tǒng)IT基礎架構向云計算解決方案遷移。SAP公司基于這一現(xiàn)狀,在云計算發(fā)展迅速的當下,以已有產品為基礎,結合云計算技術,研發(fā)并推出了云計算解決方案DMOC(Data Management on Cloud)。研發(fā)過程中,本人主要負責產品服務器端的研發(fā)和部署工作。云計算平臺中的服務器既可以是由專業(yè)人員部署的物理服務器,也可以是虛擬服務器?;诖硕x,可以將云計算的優(yōu)勢概括為兩個方面: 一方面針對基礎設施的選擇,既可以選用昂貴高效的大型機,又使虛擬服務器或者廉價服務器的使用成為可能;另一方面針對構建于基礎設施之上的云計算應用,其支持范圍更加廣泛,可以實現(xiàn)按需開發(fā),隨需而變。同時,通過集群技術,云計算能夠容忍節(jié)點的錯誤, 通過節(jié)點間的冗余,即使有很大一部分節(jié)點發(fā)生失效也不會影響程序的正確運行。但隨著時間的推移,其劣勢也逐漸顯現(xiàn)??傊瑢τ趥鹘y(tǒng)數(shù)據(jù)中心[22],由于缺乏對資源部署的統(tǒng)一規(guī)劃,導致異構的計算資源和存儲資源難以進行有效整合與擴展,從而會給企業(yè)和用戶帶來資源浪費、管理困難以及維護成本高昂等弊端。第一是降低運營成本,提升業(yè)務管理效果;第二點就是提高可靠性和承載能力,采用云計算之后,單點故障被消除,可靠性得到提升,我們可以把多臺計算機連接在一起,實現(xiàn)網絡資源、計算資源、存儲資源的共享;第三就是集群應用,實現(xiàn)規(guī)模效應、彈性擴展,能夠提供更靈活便捷的服務。云計算起源于亞馬遜和Google兩個公司,它們最早使用了“Cloud Computing”[23]的表述方式。由于Google在搜索引擎技術上的積累是其他IT企業(yè)無可匹敵的,Google憑此優(yōu)勢,在云計算技術上一直處于領先的地位。IBM 公司于2007年底宣布了云計算計劃,云計算的概念出現(xiàn)在大眾面前。其特點主要體現(xiàn)在虛擬機以及對于大規(guī)模數(shù)據(jù)處理軟件 Apache Hadoop的使用。Amazon的云計算平臺—彈性計算云(elastic pute cloud,簡稱EC2)[20],是一個可以提供給軟件開發(fā)人員或者其他應用開發(fā)商遠程服務的云計算服務平臺。本文研究的云計算產品也將在后續(xù)的發(fā)展中借助Amazon彈性云平臺,為用戶提供更多商業(yè)用途。 云計算的機遇云計算發(fā)展至今,對它的認識和定義一直存在激烈地爭辯和分歧,但是不可否認,云計算給整個IT行業(yè)帶了了新的機遇。其次,云計算的目標是使得用戶可以隨時隨地獲取自己的數(shù)據(jù),不管數(shù)據(jù)量有多大。只保留終端就可以對持有數(shù)據(jù)進行訪問操作。新增的角色,比如硬件提供商、云服務提供商、基礎軟件提供商、運維商、云提供商等或新增,或給予之前存在的角色進行新的變革,他們都將借助云計算的發(fā)展得到更加長足的進步[2]。直至今日,對于云計算安全的擔憂依然是云計算面臨的最大問題。云端要保證準確無誤,并且及時迅速地對海量數(shù)據(jù)進行有效處理。雖然云計算發(fā)展中,安全等會成為其制約因素,但是這些必將會被克服和不斷完善。 研究目標通過對云計算服務模式的研究,比較不同云服務模式的優(yōu)劣,得出DMOC使用PaaS結合SaaS的理由;通過對集群技術的研究,設計并實現(xiàn)云應用部署中負載均衡和消息轉發(fā);通過對單點登錄技術的研究,有效實現(xiàn)云計算安全性中對用戶隱私的保護;通過對云部署項目的架構研究,展現(xiàn)云應用部署的整體框架和規(guī)模。通過對幾大典型云計算平臺的分析,引出當前云計算發(fā)展的幾大方式,進而引出本文所研究的Data Management on Cloud產品。該方案提供了一個完整獨立的數(shù)據(jù)處理平臺,可以在一系列涉及SAP或者非SAP的應用中充當標準的數(shù)據(jù)集成和數(shù)據(jù)質量管理工具。數(shù)據(jù)管理項目幾乎支持所有商業(yè)版本數(shù)據(jù)庫。其次,通過用戶或者軟件提供方,對作業(yè)的不同設計,相應的能夠實現(xiàn)不同的數(shù)據(jù)處理功能。 DM產品局限性雖然,作為一個實現(xiàn)ETL功能的數(shù)據(jù)處理工具,DM已經具備相對出色齊全的各種功能,但是,隨著企業(yè)和IT技術的發(fā)展,企業(yè)對于該類產品的需求又有所改變。通常情況下,DM產品并未關注到非IT人員需求,許多操作需要相當?shù)臉I(yè)務知識和輸入,操作界面也顯得過于技術化。同時,隨著項目的不斷龐大,產品的維護和開發(fā)成本也越來越高,無法支持自動化管理是DM產品的巨大劣勢。以上劣勢,都使得開發(fā)一款可以繼承DM產品主流功能,并可以實現(xiàn)統(tǒng)一維護管理的產品的需求提上日程。這里的優(yōu)化亦是對開發(fā)者的挑戰(zhàn),目的是將一個本地化實現(xiàn)數(shù)據(jù)管理功能的產品移植到云端,在云平臺實現(xiàn)數(shù)據(jù)管理功能。其余的作業(yè)設計,數(shù)據(jù)源和目標數(shù)據(jù)源的管理都可以由運行維護項目組進行控制。 同時, 云計算系統(tǒng)通過共享計算機資源,以及整合了有效可用資源的大規(guī)模云計算平臺處理數(shù)據(jù),這樣,對于當前流行的大數(shù)據(jù)處理需求,云計算可以完美實現(xiàn)。(2)負載均衡。DMOC的服務器軟件被部署于多個服務器上,這些服務器以集群的方式,通過負載均衡,實現(xiàn)對不同客戶端的管理和服務。DMOC部署方案使用該軟件實現(xiàn)對服務器之間以及服務器和客戶端之間的消息的確認、傳輸以及跟蹤。NFS就是用以存儲服務器端秘鑰的公共文件系統(tǒng)。這一技術,可用于實現(xiàn)用戶登錄的認證與服務器分離,用單獨的身份認證服務器來存儲用戶信息,并做身份認證可以更好的保證訪問安全,以及實現(xiàn)統(tǒng)一維護。 PaaS云服務模式PaaS模式是云計算的典型應用,它可以將軟件開發(fā)平臺作為一種服務,通過互聯(lián)網交付,同時還可以使開發(fā)的應用像SaaS模式一樣,用戶可以通過瀏覽器享用到開發(fā)的應用軟件提供的功能[9]。 IaaS云服務模式所謂IaaS是指云計算服務商向用戶提供例如虛擬主機、存儲、網絡等虛擬的硬件資源。使用這一服務方式的好處顯而易見。通過這種服務模式,同樣可以達到靈活性、高可用性以及高擴展性的目的。 三種云服務模式的在靈活性上的比較綜上看來,PaaS是介于SaaS和IaaS之間的一種云服務模式。 DMOC的JPaaS模式DMOC采用的服務模式為基于PaaS平臺的SaaS模式,為了實現(xiàn)跨平臺,DMOC基于Java進行開發(fā),所以其開發(fā)平臺也可以稱為JPaaS模式。PaaS服務能發(fā)揮“群眾的集體智慧”, 能為更多的軟件編程人員提供優(yōu)良的土壤,能使軟件的使用成本降低。它基于分布式框架,支持通用的Web應用開發(fā)語言,具有極好的擴張性。應用程序被注冊到在PaaS平臺,也就是托管在PaaS管理的云基礎設施中之后,在借助其提供的平臺運行時,用戶可以便捷地開發(fā)和部署應用程序,不用將經歷分散于平臺搭建和維護工作,可以大大縮短應用程序開發(fā)周期、降低運行和維護成本。這兩種單點登錄技術模型都是為了實現(xiàn)用戶通過網絡進行商務活動時更加安全便捷而提出的。用戶訪問網絡時,對于那些需要認證的網站,只需作一次身份認證隨后就可以對被授權的資源進行訪問而無需多次輸入自己的認證信息。這里的安全用戶聲明的產生就需要有一種標準的語言進行描述,SAML就是為了實現(xiàn)這一目的而產生的基于XML格式的安全標記語言。SAP也開發(fā)了基于SAML的單點登錄技術,即由IDS(SAP ID Service)在訪問SAP NetWeaver Cloud提供的單點登錄服務。單點登錄服務器為系統(tǒng)提供了一個集中的單點登錄管理平臺,這里是進行用戶信息認證的唯一場所,用戶訪問目的站點的用戶信息如用戶名、密碼或者角色類型都將通過一定的存儲方式,映射[12]在單點登錄服務上。IDS采用了兩者結合的辦法,實現(xiàn)自身的單點登錄服務。但是隨著對Linux服務器的依賴,對其可靠性,負載能力以及數(shù)據(jù)處理能力也提高了要求[14]。實質上,這樣一個集群是由多臺Linux或者UNIX機器互連部署形成的計算機群。許多應用程序提供的服務都需要服務器能夠提供24小時不間斷的運轉。負載均衡集群的設計是基于有效分配系統(tǒng)負載的需求提出的。當然,完成合理分配是具有一定難度的,需要根據(jù)系統(tǒng)現(xiàn)狀,采用合適的負載均衡算法實現(xiàn)負載均衡的目的。這一技術的關鍵是不同機器可以在象征性的“同時”的狀態(tài)下完成計算工作。 負載均衡集群本文重點研究負載均衡集群。負載均衡調度算法包括輪叫算法、連接算法、系統(tǒng)監(jiān)測算法等。當然,基于輪叫算法,又產生了一種“加權輪叫”算法。調度服務器可以自動更新真實服務器的負載情況,并動態(tài)地調整其權值[6]。使用JMS,可以實現(xiàn)松耦合、消息異步處理和保證可靠性的目的。當一個JMS客戶發(fā)送出一條消息后,它依然可以繼續(xù)消息發(fā)送的操作,而無需等待響應。這種消息傳遞模式是一對一的,所以被稱為點對點的消息傳遞模式。ActiveMQ是Apache的一款非常流行和功能強大的消息傳遞和集成服務器。 ActiveMQ與集群集群是一個較大的概念,對不同的對象具有不同的含義。當我們在網絡中使用單獨一個broker進行消息代理時,當這一個broker因為某些原因停止工作,那么就必須等待broker重新啟動之后才能使得消息繼續(xù)被處理。當master因為硬件故障或者其他原因停止工作時,消息將很快的被放置于其中一個slave進行處理,這時候處理消息的slave也就隨即變成了master,消息得到處理而且并沒有丟失。 master/slave的部署模型圖。 slave成為master模型 本章小結本章主要對云計算平臺部署實現(xiàn)需要的應用技術進行了詳細介紹和分析。本地包括本地客戶端的安裝以及用戶由本地發(fā)出數(shù)據(jù)處理請求。其次,用戶可以使用服務提供方提供的用戶,登錄到DMOC網絡服務界面,下載并安裝客戶端到本地,同時將客戶端注冊到DMOC界面,并可以監(jiān)管客戶端狀態(tài)。用戶在后續(xù)對數(shù)據(jù)進行的管理都需要經過客戶端的job server進行處理。這一組件負責對服務器端注冊的多個客戶端進行管理。HANA DB利用主存儲器(RAM)的低成本優(yōu)勢,它使用多核處理器的數(shù)據(jù)處理能力和針對固態(tài)硬盤的快速數(shù)據(jù)存取相對傳統(tǒng)的硬盤驅動器具有非常大優(yōu)勢,HANA具有更好的數(shù)據(jù)處理性能,可提供更好的事務性分析。 DMOC服務器架構,DMOC服務器應用的三個部分分別具有不同的分工,客戶端管理也就是Agentmanager用來對客戶端的消息進行處理分發(fā),交給web應用,由組成這一部分的核心作業(yè)處理引擎處理數(shù)據(jù)ETL作業(yè)。首先,用戶不能完全確定商業(yè)公司提供的云計算服務是否可信,是否可以將自己持有的商業(yè)機密放心托管給云服務提供商;其次,云計算時通過網絡實現(xiàn)部署的,那么其賴以生存的網絡無法保證持續(xù)安全,服務持續(xù)不中斷;最后,云計算的服務器部署大多依賴軟硬件的大規(guī)模結合來實現(xiàn)高可用和高效率,無法保證硬件設施的時刻安全也是用戶對云計算的安全性的顧慮所在。 數(shù)據(jù)庫設計DMOC的數(shù)據(jù)庫設計采用SaaS安全架構設計中的共享數(shù)據(jù)庫單獨模式。不同于以往將所有的用戶信息和數(shù)據(jù)都放置于同一個數(shù)據(jù)庫中,DMOC根據(jù)用戶權限和部署環(huán)境的不同,將用戶信息以及作業(yè)信息分別存儲于不同的數(shù)據(jù)庫中,這樣既保證了數(shù)據(jù)的安全性,又對數(shù)據(jù)的多樣性有了很好的保持。System Repository則是針對最高權限用戶—超級用戶設計的數(shù)據(jù)庫。下圖是需要實現(xiàn)的JMS的流程圖。通過