《計(jì)算及其實(shí)踐教程(第二版)》第三章WindowsAzure云平臺(tái)教學(xué)課件_第1頁
《計(jì)算及其實(shí)踐教程(第二版)》第三章WindowsAzure云平臺(tái)教學(xué)課件_第2頁
《計(jì)算及其實(shí)踐教程(第二版)》第三章WindowsAzure云平臺(tái)教學(xué)課件_第3頁
《計(jì)算及其實(shí)踐教程(第二版)》第三章WindowsAzure云平臺(tái)教學(xué)課件_第4頁
《計(jì)算及其實(shí)踐教程(第二版)》第三章WindowsAzure云平臺(tái)教學(xué)課件_第5頁
已閱讀5頁,還剩93頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

WindowsAzure云平臺(tái)內(nèi)容3.1微軟云計(jì)算服務(wù)概述3.2WindowsAzure平臺(tái)簡介3.3云操作系統(tǒng)WindowsAzure3.4SQLAzure3.5AzureAppFabric

3.1微軟云計(jì)算服務(wù)概述3.1.1面向消費(fèi)者的云服務(wù)3.1.2面向企業(yè)的云服務(wù)3.1.3微軟云計(jì)算參考架構(gòu)3.1.4平臺(tái)發(fā)展目標(biāo)微軟云戰(zhàn)略微軟云戰(zhàn)略包括三大部分,為客戶和合作伙伴提供三種不同的云計(jì)算運(yùn)營模式(1)、微軟運(yùn)營微軟自己構(gòu)建及運(yùn)營公共云的應(yīng)用和服務(wù),同時(shí)向個(gè)人消費(fèi)者和企業(yè)客戶提供云服務(wù)。例如,微軟向最終使用者提供的OnlineServices和WindowsLive等服務(wù)。其特點(diǎn)是:共享基礎(chǔ)設(shè)施虛擬化,動(dòng)態(tài)化高穩(wěn)定性,可用性量入為出(Payasyougo)(2)、伙伴運(yùn)營ISV/SI等各種合作伙伴可基于WindowsAzurePlatform開發(fā)ERP、CRM等各種云計(jì)算應(yīng)用,并在WindowsAzurePlatform上為最終使用者提供服務(wù)。其特點(diǎn)是:租用服務(wù)器較少的控制權(quán)限較少的靈活性較少前期投入(3)、客戶自建客戶可以選擇微軟的云計(jì)算解決方案構(gòu)建自己的云計(jì)算平臺(tái)。微軟可以為用戶提供包括產(chǎn)品、技術(shù)、平臺(tái)和運(yùn)維管理在內(nèi)的全面支持。其特點(diǎn)是:用自己的服務(wù)器完全自己控制穩(wěn)定的性能大量的前期投入3.1.1面向消費(fèi)者的云服務(wù)Live解決方案是微軟針對消費(fèi)者提供的云計(jì)算解決方案。該方案具體包括WindowsLive、OfficeLive、LiveMessenger、BingXboxLive等在內(nèi)的多種服務(wù)WindowsLive的登錄窗口登錄后的WindowsLive窗口3.1.2面向企業(yè)的云服務(wù)Online解決方案是微軟針對企業(yè)提供的云計(jì)算解決方案,全稱為MicrosoftOnlineServices。這是一套企業(yè)在線辦公和溝通協(xié)作為主的解決方案,它能夠幫助企業(yè)大大提高自己的業(yè)務(wù)經(jīng)營效率,而無需企業(yè)自己維護(hù)和管理復(fù)雜的IT系統(tǒng)。該方案主要包括ExchangeOnline,SharepointOnline,OfficecommunicatorOnline,OfficeLiveMeeting,DynamicsCRMOnline等。微軟的云計(jì)算積累3.1.3微軟云計(jì)算參考架構(gòu)微軟的軟件+服務(wù)戰(zhàn)略“軟件+服務(wù)”模式“軟件+服務(wù)”可以簡單描述為兩種模式:(1)軟件本身架構(gòu)模式是軟件加服務(wù)。例如,殺毒軟件本身部署在企業(yè)內(nèi)部,但是殺毒軟件的病毒庫更新服務(wù)是通過互聯(lián)網(wǎng)進(jìn)行的,即從云中獲取。

(2)企業(yè)的一些IT系統(tǒng)由自己構(gòu)建,另一部分向第三方租賃、從云中獲取服務(wù)。例如,企業(yè)可以直接購買軟硬件產(chǎn)品,在企業(yè)內(nèi)部自己部署ERP系統(tǒng),而同時(shí)通過第三方云計(jì)算平臺(tái)獲取CRM、電子郵件等服務(wù),而不是自己建設(shè)相應(yīng)的CRM和電子郵件系統(tǒng)。3.1.4平臺(tái)發(fā)展目標(biāo)微軟的發(fā)展目標(biāo)是實(shí)現(xiàn)同一個(gè)應(yīng)用程序既可以在WindowsAzure平臺(tái)上運(yùn)行又可以在WindowsServer上運(yùn)行,不同平臺(tái)之間的遷移應(yīng)用程序不需要修改代碼而只需要修改XML配置文件。這樣用戶可以根據(jù)企業(yè)業(yè)務(wù)的發(fā)展階段自由決定是采用微軟這樣的第三方公有云服務(wù)還是運(yùn)行在自己的服務(wù)器平臺(tái)上面。3.2WindowsAzure平臺(tái)簡介在云計(jì)算時(shí)代,有三個(gè)平臺(tái)非常重要,即開發(fā)平臺(tái)、部署平臺(tái)和運(yùn)營平臺(tái)。WindowsAzurePlatform是微軟的云計(jì)算平臺(tái),其在微軟的整體云計(jì)算解決方案中發(fā)揮關(guān)鍵作用。它既是運(yùn)營平臺(tái),又是開發(fā)、部署平臺(tái);上面既可運(yùn)行微軟的自有應(yīng)用,也可以開發(fā)部署用戶或ISV的個(gè)性化服務(wù);平臺(tái)既可以作為SaaS等云服務(wù)的應(yīng)用模式的基礎(chǔ),又可以與微軟線下的系列軟件產(chǎn)品相互整合和支撐WindowsAzurePlatformWindowsAzurePlatform是一個(gè)為應(yīng)用程序提供托管和運(yùn)行的平臺(tái),它包括:云計(jì)算操作系統(tǒng)(WindowsAzure)、云關(guān)系型數(shù)據(jù)庫(SQLAzure)一個(gè)為開發(fā)者提供的服務(wù)集合或云中間件(WindowsAzureplatformAppFabric)WindowsAzurePlatformWindowsAzure不是傳統(tǒng)意義上的操作系統(tǒng),但是它履行了資源管理的職責(zé),只不過它管理的資源更為宏觀,數(shù)據(jù)中心中的所有服務(wù)器、存儲(chǔ)、交換機(jī)、負(fù)載均衡器,甚至是機(jī)架上的電源開關(guān)等都接受它的管理。未來的數(shù)據(jù)中心會(huì)越來越像一臺(tái)超級(jí)計(jì)算機(jī),因此WindowsAzure也會(huì)越來越像一個(gè)超級(jí)操作系統(tǒng)。SQLAzure是云中的關(guān)系型數(shù)據(jù)庫;AppFabric則是一個(gè)基于Web的開發(fā)服務(wù),它可以把現(xiàn)有應(yīng)用和服務(wù)與云平臺(tái)的連接、用戶認(rèn)證和互操作變得更為簡單。WindowsAzurePlatform3.3云操作系統(tǒng)WindowsAzure3.3.1概述3.3.2WindowsAzure計(jì)算服務(wù)3.3.3WindowsAzure存儲(chǔ)服務(wù)3.3.4WindowsAzureFabric控制器3.3.5WindowsAzure應(yīng)用場景3.3.1概述WindowsAzure作為基礎(chǔ)平臺(tái)的調(diào)度和管理軟件,它是構(gòu)建高效、可靠、可動(dòng)態(tài)擴(kuò)展應(yīng)用的重要平臺(tái),主要由四大部分組成:計(jì)算服務(wù)、存儲(chǔ)服務(wù)、管理服務(wù)以及開發(fā)環(huán)境在WindowsAzure的四個(gè)組成部分中,只有開發(fā)環(huán)境是安裝在用戶的計(jì)算機(jī)上的,用于用戶開發(fā)和測試WindowsAzure的應(yīng)用程序,其余三部分都是WindowsAzurePlatform的一部分而安裝在微軟數(shù)據(jù)中心組成3.3.2WindowsAzure計(jì)算服務(wù)WindowsAzure的計(jì)算服務(wù)目前主要通過成為WebRole和WorkerRole的方式來分配的WindowsAzure角色是指在云中運(yùn)行的可單獨(dú)縮放的組件,云中的每個(gè)角色實(shí)例都分別對應(yīng)于一個(gè)虛擬機(jī)(VM)實(shí)例。有兩種類型的角色:Web角色(WebRole)輔助角色(WorkerRole)Web角色是運(yùn)行于IIS上的ASP.NET或PHPWeb應(yīng)用程序。該角色可通過HTTP或HTTPS終結(jié)點(diǎn)訪問。Web角色就是ASP.NETWeb應(yīng)用程序項(xiàng)目,本質(zhì)上可以是一個(gè)網(wǎng)站。輔助角色是一個(gè)可運(yùn)行任意.NET代碼的后臺(tái)處理應(yīng)用程序。它也能夠公開面向Internet的終結(jié)點(diǎn)和內(nèi)部終結(jié)點(diǎn)角色可以單獨(dú)設(shè)置每個(gè)角色的實(shí)例數(shù),例如三個(gè)Web角色實(shí)例和兩個(gè)輔助角色實(shí)例,相應(yīng)地,在運(yùn)行Web角色的云中有三個(gè)VM,以及在運(yùn)行輔助角色的云中有兩個(gè)VM。一種比較常見的架構(gòu)設(shè)計(jì)方式是使用WebRole來處理展示邏輯,而通過WorkerRole來進(jìn)行業(yè)務(wù)邏輯處理。WebRole負(fù)責(zé)客戶端的HTTP請求,為了支持應(yīng)用的擴(kuò)展,WebRole上的應(yīng)用一般會(huì)設(shè)計(jì)為無狀態(tài)的,從而使得系統(tǒng)可以方便的增加WebRole實(shí)例數(shù)量,提高應(yīng)用的并發(fā)處理能力角色WindowsAzureFabric控制器當(dāng)應(yīng)用程序部署完后,WindowsAzureFabric控制器便開始監(jiān)控應(yīng)用的狀態(tài),以保證應(yīng)用程序的正常運(yùn)行。為了使控制器能夠?qū)崟r(shí)獲取應(yīng)用和運(yùn)行實(shí)例的狀態(tài),所有Role實(shí)例,也即虛擬機(jī)實(shí)例中都預(yù)先安裝了代理程序,F(xiàn)abric控制器就是通過這些代理來實(shí)時(shí)獲取相應(yīng)的狀態(tài)信息。虛擬機(jī)角色(VMRole)虛擬機(jī)大小CPU內(nèi)核數(shù)內(nèi)存每小時(shí)成本特小共享768MB$0.02小11.75GB$0.12中23.5GB$0.24大47GB$0.48特大814GB$0.96WindowsAzure提供的五種虛擬機(jī)規(guī)格3.3.3WindowsAzure存儲(chǔ)服務(wù)WindowsAzure提供的存儲(chǔ)不是一個(gè)關(guān)系型數(shù)據(jù)系統(tǒng),并且它的查詢語言也不是SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語言),它主要被設(shè)計(jì)用來支持建于WindowsAzure上的應(yīng)用,它提供更簡單容易擴(kuò)展的存儲(chǔ)分類WindowsAzure主要提供了三種數(shù)據(jù)存儲(chǔ)方式以滿足應(yīng)用程序的不同需求,這三種存儲(chǔ)方式分別為Blob、Table、Queue。WindowsAzure為了提升兼容性而提供的Drive存儲(chǔ)方式,其底層實(shí)現(xiàn)實(shí)際上就是Blob的一種。大型的二進(jìn)制對象BLOB(簡稱Blob):BLOB為存儲(chǔ)大型的二進(jìn)制對象而設(shè)計(jì),例如:圖片、視頻和音樂文件。表Table:該表存儲(chǔ)類型提供了結(jié)構(gòu)化存儲(chǔ)能力,可以用來存儲(chǔ)數(shù)量巨大、而結(jié)構(gòu)相對簡單的數(shù)據(jù)。消息隊(duì)列Queue:消息隊(duì)列是為可靠的異步消息傳遞而設(shè)計(jì)的存儲(chǔ)類型。云服務(wù)內(nèi)部署的應(yīng)用程序可以使用消息隊(duì)列實(shí)現(xiàn)異步通訊。WindowsAzureDrive:提供了一個(gè)存儲(chǔ)在WindowsAzure的虛擬硬盤,可以讓用戶像操作NTFS硬盤一樣存儲(chǔ)和讀寫數(shù)據(jù)。分類REST所有這幾種存儲(chǔ)服務(wù)都可以通過標(biāo)準(zhǔn)的REST(RepresentationalStateTransfer,表述性狀態(tài)轉(zhuǎn)移)API來訪問REST(RepresentationalStateTransfer)是HTTP協(xié)議的作者RoyFielding博士在其博士論文中提出的一種互聯(lián)網(wǎng)應(yīng)用構(gòu)架風(fēng)格。相比SOAP和XML-RPC的Web服務(wù)的實(shí)現(xiàn)方式,REST以其簡潔性和高擴(kuò)展性而受到關(guān)注。REST使用RESTAPI訪問存儲(chǔ)服務(wù)1)Blob存儲(chǔ)Blob的抽象概念Blob存儲(chǔ)的四級(jí)層次結(jié)構(gòu)最高一級(jí)是存儲(chǔ)賬戶。它是這些blob的命名空間的根節(jié)點(diǎn)。其次是容器。每個(gè)賬戶可以包含多個(gè)容器,容器提供了分組的功能。第三是blob對象。一個(gè)容器中,可以有多個(gè)blob對象。每個(gè)blob都可以進(jìn)行唯一性標(biāo)識(shí),其中最多可保存50GB的數(shù)據(jù)。第四是分塊或分頁對象(BlockBLOB與PageBLOB)。為了對上傳和下載進(jìn)行優(yōu)化(尤其對于那些非常大的文件),還可以將blob分解成塊。這樣,每個(gè)傳輸請求都只針對一個(gè)較小部分的數(shù)據(jù)(如4MB),這樣整個(gè)事務(wù)就會(huì)較少受到瞬間網(wǎng)絡(luò)錯(cuò)誤的影響。BLOB存儲(chǔ)WindowsAzure的BLOB存儲(chǔ)服務(wù)有兩種對象,一種是BLOBContainer,用來收納BLOB對象之用,可以將它當(dāng)成一個(gè)文件夾來看待。而另一種則是BLOB對象,代表實(shí)體的數(shù)據(jù)結(jié)構(gòu)體。BLOB對象又可以分為BlockBLOB與PageBLOB兩種,前者針對流工作負(fù)載,后者針對隨機(jī)寫工作負(fù)載BlockBLOB是以區(qū)塊(block)存儲(chǔ)的二進(jìn)制數(shù)據(jù),每一個(gè)block的大小是4MBPageBLOB則是以空間長度設(shè)定的二進(jìn)制數(shù)據(jù),它的單位是以一個(gè)數(shù)據(jù)范圍(range)來設(shè)定,就像一般的二進(jìn)制文件讀寫。PageBLOB非常適合用來處理實(shí)時(shí)性讀寫的數(shù)據(jù),WindowsAzureDrive就要求BLOB空間必須要是PageBLOBBLOB存儲(chǔ)2)Table存儲(chǔ)Blob適用于部分應(yīng)用,但它存儲(chǔ)的數(shù)據(jù)缺乏結(jié)構(gòu)化,為了讓應(yīng)用能夠以更易獲取的方式來使用數(shù)據(jù),WindowsAzure存儲(chǔ)服務(wù)提供了TableTable提供大規(guī)??蓴U(kuò)展結(jié)構(gòu)化存儲(chǔ),一個(gè)Table就是包含一組屬性的一組實(shí)體,應(yīng)用程序可以操作這些實(shí)體,并可以查詢存儲(chǔ)在Table中的任何屬性。Table存儲(chǔ)盡管Table存儲(chǔ)與關(guān)系表有些概念上的相似,但是它們還是有相當(dāng)大的差別的。Table存儲(chǔ)既不強(qiáng)制要求模式,也不支持使用SQL作為查詢語言,其管理系統(tǒng)不支持連接(JOIN)、外鍵、觸發(fā)器或存儲(chǔ)過程等特性。Table存儲(chǔ)Table的結(jié)構(gòu)3)Queue存儲(chǔ)與Blob和Table都是用于長期存儲(chǔ)數(shù)據(jù)不同,Queue的主要功能是提供一種WebRole實(shí)例和WorkerRole實(shí)例之間異步通信的方式Queue(隊(duì)列)為應(yīng)用程序消息提供可靠的存儲(chǔ)和投遞,在應(yīng)用程序不同組件(角色)之間建立松散的連接和可伸縮的工作流Queue存儲(chǔ)隊(duì)列可以為應(yīng)用提供一個(gè)異步通信和協(xié)調(diào)的機(jī)制。對于一個(gè)通過高延遲鏈路鏈接的分布在不同地點(diǎn)的應(yīng)用來說,這是一個(gè)非常重要的需求。同步通信會(huì)嚴(yán)重影響性能,并帶來穩(wěn)定性方面的風(fēng)險(xiǎn)。與blob和table一樣,隊(duì)列也與一個(gè)存儲(chǔ)賬戶相關(guān)聯(lián)。隊(duì)列保存的是一組線性的XML消息。每個(gè)隊(duì)列中的消息數(shù)量沒有限制,但如果消息在七天內(nèi)(也可設(shè)為更早)沒有得到處理,就會(huì)從隊(duì)列中刪除。Queue存儲(chǔ)Queue的一種典型用法Queue存儲(chǔ)無論數(shù)據(jù)以Blob、Table、Queue或Drive任何方式存儲(chǔ),WindowsAzure存儲(chǔ)服務(wù)都會(huì)將所有數(shù)據(jù)復(fù)制三次,如果有一份拷貝出現(xiàn)問題,存儲(chǔ)服務(wù)能自動(dòng)恢復(fù)出一份新的拷貝,保證應(yīng)用能夠準(zhǔn)確及時(shí)讀取原始數(shù)據(jù)信息。3.3.4WindowsAzureFabric控制器WindowsAzureFabric控制器被比作是WindowsAzure的大腦,它負(fù)責(zé)平臺(tái)中各種資源的統(tǒng)一管理和調(diào)配。開發(fā)人員通過WindowsAzure開發(fā)工具(比如VisualStudio2010和相應(yīng)的SDK)開發(fā)的應(yīng)用程序一般分為兩大部分。一部分是應(yīng)用程序代碼,也稱服務(wù)代碼,另一部分是應(yīng)用的配置文件也稱服務(wù)模型。每個(gè)應(yīng)用包括兩個(gè)配置文件:服務(wù)定義文件(ServiceDefinition.csdef)和服務(wù)配置文件(ServiceConfiguration.cscfg)。這兩個(gè)配置文件中會(huì)包含應(yīng)用程序在WindowsAzure上運(yùn)行和發(fā)布的一些信息,如認(rèn)證信息,服務(wù)端口,服務(wù)角色,需要的實(shí)例數(shù),自定義變量等。ServiceConfiguration.cscfg文件比如,附錄實(shí)驗(yàn)二中打開ServiceConfiguration.cscfg文件,將haoMvcWebRole1的運(yùn)行實(shí)例改為3,如下列代碼:<?xmlversion="1.0"encoding="utf-8"?><ServiceConfigurationserviceName="WindowsAzureProject1"xmlns="/ServiceHosting/2008/10/ServiceConfiguration"osFamily="1"osVersion="*"><Rolename="haoMvcWebRole1"><Instancescount="3"/><ConfigurationSettings><Settingname="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"value="UseDevelopmentStorage=true"/></ConfigurationSettings></Role></ServiceConfiguration>ServiceDefinition.csdef文件附錄實(shí)驗(yàn)二中ServiceDefinition.csdef文件的代碼如下:<?xmlversion="1.0"encoding="utf-8"?><ServiceDefinitionname="WindowsAzureProject1"xmlns="/ServiceHosting/2008/10/ServiceDefinition"><WebRolename="haoMvcWebRole1"><Sites><Sitename="Web"><Bindings><Bindingname="Endpoint1"endpointName="Endpoint1"/></Bindings></Site></Sites><Endpoints><InputEndpointname="Endpoint1"protocol="http"port="80"/></Endpoints><Imports><ImportmoduleName="Diagnostics"/></Imports></WebRole></ServiceDefinition>WindowsAzureFabric控制器當(dāng)用戶通過開發(fā)者門戶把應(yīng)用程序上傳到WindowsAzure平臺(tái)的時(shí)候,其中的配置文件則由WindowsAzureFabric控制器來讀取,然后由其根據(jù)配置文件中指定的方式進(jìn)行服務(wù)部署。3.3.5WindowsAzure應(yīng)用場景用戶通過WebRole實(shí)例訪問Table里的數(shù)據(jù),WebRole和WorkerRole之間的消息傳遞是通過Queue來實(shí)現(xiàn)的,而WorkerRole則訪問了Blob里的大數(shù)據(jù)WindowsAzure應(yīng)用場景WebRole和WorkerRole之間的消息傳遞是通過Queue來實(shí)現(xiàn)的,而WorkerRole則訪問了Blob里的大數(shù)據(jù)WindowsAzure應(yīng)用場景用戶通過WebRole實(shí)例訪問Table里的數(shù)據(jù)。附錄一中實(shí)驗(yàn)四(編寫Table存儲(chǔ)服務(wù)應(yīng)用程序)就是該應(yīng)用場景。3.4SQLAzure3.4.1概述3.4.2SQLAzure數(shù)據(jù)庫體系結(jié)構(gòu)3.4.3SQLAzure數(shù)據(jù)庫和SQLServer數(shù)據(jù)庫服務(wù)對比3.4.1概述SQLAzure的概念是相對比較好理解的,它是一個(gè)部署在云端的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。SQLAzure除了提供最基礎(chǔ)的關(guān)系型數(shù)據(jù)庫服務(wù)之外,同時(shí)還提供更多的數(shù)據(jù)相關(guān)的功能,例如數(shù)據(jù)同步、報(bào)表,商業(yè)智能?;跀?shù)據(jù)同步的功能,能夠與SQLServer數(shù)據(jù)庫同步,實(shí)現(xiàn)了傳統(tǒng)應(yīng)用與云端應(yīng)用的整合與并存。由于SQLAzure支持SQLServer的絕大多數(shù)功能,因此它具有良好的應(yīng)用兼容性。SQLAzure提供的功能SQLAzure提供功能示意圖3.4.2SQLAzure數(shù)據(jù)庫體系結(jié)構(gòu)SQLAzure承載在Microsoft數(shù)據(jù)中心中運(yùn)行SQLServer技術(shù)的服務(wù)器上。從體系結(jié)構(gòu)角度來看,存在四個(gè)不同的抽象層:客戶端層(ClientLayer),服務(wù)層(ServiceLayer)、平臺(tái)層(PlatformLayer)基礎(chǔ)結(jié)構(gòu)層(InfrastructureLayer)SQLAzure數(shù)據(jù)庫體系結(jié)構(gòu)客戶端層是最接近應(yīng)用程序的一層,應(yīng)用程序使用該層直接與SQLAzureDatabase進(jìn)行通信。服務(wù)層充當(dāng)客戶端層和數(shù)據(jù)所在的平臺(tái)層之間的網(wǎng)關(guān)。服務(wù)層提供三種功能:供應(yīng)(Provisioning)、計(jì)費(fèi)和計(jì)量(BillingandMetering)以及連接路由(ConnectionRouting)。平臺(tái)層包含支持服務(wù)層的物理服務(wù)器和服務(wù)。平臺(tái)層包含許多SQLServer實(shí)例,每個(gè)實(shí)例由SQLAzureFabric(結(jié)構(gòu))進(jìn)行管理基礎(chǔ)結(jié)構(gòu)層表示針對支持服務(wù)層的物理硬件和操作系統(tǒng)進(jìn)行的IT管理。TDSSQLAzure數(shù)據(jù)庫服務(wù)器和客戶機(jī)之間通過專用的TDS(TabularDataStream)表格數(shù)據(jù)流協(xié)議來通信數(shù)據(jù)訪問接口(1)問題最初,企業(yè)和政府等組織機(jī)構(gòu)通常使用單獨(dú)的某一種DBMS,并使用專為某種數(shù)據(jù)庫編寫的應(yīng)用程序來操作此數(shù)據(jù)庫。例如要訪問Oracle數(shù)據(jù)庫中的數(shù)據(jù),可以使用PL/SQL或SQL*Plus。但是隨著業(yè)務(wù)發(fā)展,組織機(jī)構(gòu)開始使用各種不同類型的DBMS,從一種DBMS改變到另一種意味著需重寫應(yīng)用程序以處理新格式的數(shù)據(jù)。這就產(chǎn)生了所謂的“更換DBMS的問題”。數(shù)據(jù)訪問接口(2)為了解決更換DBMS的問題,人們考慮了如下的解決方案:首先,將應(yīng)用程序和數(shù)據(jù)庫之間的實(shí)際通信分隔開,以創(chuàng)建能和不同數(shù)據(jù)庫通信的應(yīng)用程序。其次,應(yīng)用程序應(yīng)該可以用自己特定的方式發(fā)出操作數(shù)據(jù)庫的SQL命令。最后,使用獨(dú)立于應(yīng)用程序和DBMS的“翻譯器”將SQL命令“翻譯”成特定的某個(gè)DBMS能識(shí)別的格式,從而可以和數(shù)據(jù)庫進(jìn)行通信數(shù)據(jù)訪問接口(3)這種獨(dú)立于應(yīng)用程序和DBMS的“翻譯器”就是各種數(shù)據(jù)訪問方法

數(shù)據(jù)訪問接口(4)簡單地說,數(shù)據(jù)訪問接口能完成下列三件事:與一個(gè)數(shù)據(jù)庫建立連接;向數(shù)據(jù)庫發(fā)送SQL語句;處理數(shù)據(jù)庫返回的結(jié)果。最早的數(shù)據(jù)訪問方法是微軟的ODBC(開放數(shù)據(jù)庫連通性,OpenDatabaseConnectivity),隨后在其基礎(chǔ)上發(fā)展出來了JDBC(JavaDatabaseConnection)、ADO(ActiveX

數(shù)據(jù)對象)、

ADO.NET等其它許多方法SQLAzure數(shù)據(jù)庫體系結(jié)構(gòu)中采用了ODBC、ADO.NET等數(shù)據(jù)訪問接口。3.4.3SQLAzure數(shù)據(jù)庫和SQLServer數(shù)據(jù)庫服務(wù)對比SQLAzure數(shù)據(jù)庫和SQLServer數(shù)據(jù)庫對比包含兩個(gè)方面,首先是SQLAzure的優(yōu)勢,其次是相比SQLServer數(shù)據(jù)庫,SQLAzure目前仍不能實(shí)現(xiàn)的功能。SQLAzure的優(yōu)勢自主管理SQLAzure提供了企業(yè)級(jí)數(shù)據(jù)中心的規(guī)模和功能,省去了日常管理本地SQLServer實(shí)例的支出 高可用性服務(wù)會(huì)在多個(gè)物理服務(wù)器上復(fù)制多份數(shù)據(jù)冗余拷貝以維持?jǐn)?shù)據(jù)可用性和業(yè)務(wù)持續(xù)性。如果一臺(tái)硬件出故障,SQLAzure提供了自動(dòng)的故障切換來確保您的應(yīng)用程序的可用性可拓展性隨著數(shù)據(jù)增長,數(shù)據(jù)庫也需要縱向拓展和橫向拓展熟悉的開發(fā)模式SQLAzure提供了與SQLServer一致的TDS協(xié)議和ADO.NET數(shù)據(jù)接口關(guān)系型數(shù)據(jù)模型SQLAzure對于開發(fā)者和管理員來說應(yīng)該很容易上手,因?yàn)镾QLAzure使用相似的關(guān)系型數(shù)據(jù)模型SQLAzure功能的不足特性SQLServer(本地)SQLAzure數(shù)據(jù)存儲(chǔ)大小無大小限制當(dāng)您的使用到達(dá)分配的大小

(1GB或

10GB),只有

SELECT和

DELETE語句會(huì)被執(zhí)行。

UPDATE和

INSERT語句會(huì)拋出錯(cuò)誤。

版本·

Express·

Workgroup·

Standard·

Enterprise·

Enterprise版本TSQL支持支持某些

TSQL命令完全支持。一些部分支持,另一些不支持.“USE”命令支持不支持事務(wù)復(fù)制支持不支持日志傳輸支持不支持?jǐn)?shù)據(jù)鏡像支持不支持SQLAgent支持SQLAzure上無法運(yùn)行SQLagent/jobs微軟數(shù)據(jù)存儲(chǔ)技術(shù)的比較3.5AzureAppFabric3.5.1概述3.5.2服務(wù)總線3.5.3訪問控制服務(wù)3.5.4分布式緩存3.5.1概述WindowsAzurePlatformAppFabric在WindowsAzure平臺(tái)的開發(fā)初期被稱為.NETServices。它包括三個(gè)部件:服務(wù)總線、訪問控制、分布式緩存要注意的地方是,雖然這里講的AppFabric與前面提到的Fabric控制器在名稱中都有Fabric,但是它們是完全不同的組成部分,沒有直接聯(lián)系。組成WindowsAzureAppFabric的主要功能示意圖AzureAppFabric要解決哪些問題?第一,企業(yè)內(nèi)部服務(wù)對外開放難度很大。由于企業(yè)內(nèi)部網(wǎng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、防火墻的設(shè)置、DNS的設(shè)置等問題,企業(yè)內(nèi)部服務(wù)與外部云服務(wù)的互聯(lián)互通有困難。第二,服務(wù)的安全性難于控制。由于安全機(jī)制不統(tǒng)一,并且需要繼承一些現(xiàn)有的其它權(quán)限控制,企業(yè)暴露出來的服務(wù)需要進(jìn)行訪問安全控制。第三,分布式緩存的問題。目前Windows平臺(tái)的分布式緩存產(chǎn)品相對較少,企業(yè)自己實(shí)現(xiàn)分布式緩存難度、代價(jià)較高,因此需要云平臺(tái)上的分布式緩存。組成AzureAppFabric的三個(gè)組成部分解決了上述問題。首先,ServiceBus(服務(wù)總線)易于將企業(yè)內(nèi)部服務(wù)開放給外部用戶。其次,AccessControl(訪問控制)統(tǒng)一了服務(wù)的安全驗(yàn)證并集成現(xiàn)有的安全驗(yàn)證機(jī)制。第三,Caching(分布式緩存)提供了云端的、Windows平臺(tái)的分布式緩存。3.5.2服務(wù)總線ESB的定義和功能AppFabric的服務(wù)總線數(shù)據(jù)交換平臺(tái)的通信機(jī)制為了要實(shí)現(xiàn)數(shù)據(jù)共享與交換,最簡單的方式是完全“點(diǎn)對點(diǎn)”的數(shù)據(jù)引用,即兩個(gè)不同系統(tǒng)間的直接交換和共享對方所需的數(shù)據(jù)。“點(diǎn)對點(diǎn)”的數(shù)據(jù)通信模式在需要對較少應(yīng)用進(jìn)行集成時(shí)具有顯著優(yōu)勢,實(shí)現(xiàn)簡單,開發(fā)速度快。但隨著規(guī)模的擴(kuò)大,缺點(diǎn)也變得非常明顯,包括如下幾種:維護(hù)成本高剛性難于擴(kuò)展設(shè)計(jì)的思路—總線機(jī)制總線機(jī)制應(yīng)該滿足如下兩方面的功能:一方面,要求建立一個(gè)統(tǒng)一的數(shù)據(jù)格式集合,而由各個(gè)應(yīng)用系統(tǒng)依照集合中的各個(gè)數(shù)據(jù)格式來設(shè)置與自己的數(shù)據(jù)格式之間的匹配關(guān)系。另一方面,要求建立傳輸具有統(tǒng)一格式的數(shù)據(jù)的通信機(jī)制?;诳偩€機(jī)制的一種新軟件架構(gòu)“企業(yè)服務(wù)總線(EnterpriseServiceBus,ESB)”已經(jīng)出現(xiàn),它可成為政府和企業(yè)采用的、基于標(biāo)準(zhǔn)的、作為構(gòu)建應(yīng)用中樞神經(jīng)系統(tǒng)骨干的技術(shù)。ESB的定義和功能ESB的定義:它是由中間件技術(shù)實(shí)現(xiàn)并支持SOA的一組基礎(chǔ)架構(gòu)功能,支持異構(gòu)環(huán)境中的服務(wù)、消息以及基于事件的交互,并且具有適當(dāng)?shù)姆?wù)級(jí)別和可管理性。這樣的定義稍顯抽象,簡單地說,ESB就是試圖將應(yīng)用服務(wù)器上的多種邏輯層面遷移到總線以及連接點(diǎn)上,從而降低企業(yè)內(nèi)部信息共享的成本。

ESB的定義和功能ESB產(chǎn)品一般應(yīng)該實(shí)現(xiàn)以下功能:基于標(biāo)準(zhǔn)的消息通信架構(gòu)(即JMS,JavaMessageService),實(shí)現(xiàn)數(shù)據(jù)的可靠通信和傳輸?;跇?biāo)準(zhǔn)的互聯(lián)如Web服務(wù)、J2EE和.NET適配器,實(shí)現(xiàn)數(shù)據(jù)的分布性、自治性,并提供二次開發(fā)的靈活性?;跇?biāo)準(zhǔn)的數(shù)據(jù)轉(zhuǎn)換引擎(即XSLT和Xquery),保證信息孤島問題中數(shù)據(jù)格式的一致性,解決數(shù)據(jù)的異構(gòu)性和數(shù)據(jù)轉(zhuǎn)換問題。應(yīng)用部署SOA方式,提供靈活可變的應(yīng)用模式,從而方便的實(shí)現(xiàn)適應(yīng)客戶需求的可變的業(yè)務(wù)流程?;跇?biāo)準(zhǔn)的安全性(即LDAP和SSL),保證業(yè)務(wù)以及數(shù)據(jù)的安全。企業(yè)服務(wù)總線AppFabric的服務(wù)總線WindowsAzureplatformAppFabric的服務(wù)總線與傳統(tǒng)SOA中的企業(yè)服務(wù)總線(ESB)在概念上有相似的地方,但是在范圍和功能上是不一樣的。這里的服務(wù)總線是專門針對互聯(lián)網(wǎng)上的服務(wù)相互調(diào)用的而不僅限于企業(yè)內(nèi)部。換言之,WindowsAzurePlatformAppFabric提供了一個(gè)互聯(lián)網(wǎng)上的系統(tǒng)總線,幫助我們能夠?qū)⒉煌膽?yīng)用服務(wù)基于系統(tǒng)總線有效的連接起來。NAT和防火墻大多數(shù)企業(yè)都擁有自己的局域網(wǎng),為了解決IP地址不足的問題,通常都設(shè)置了網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT),因此每臺(tái)服務(wù)器對外都沒有一個(gè)確定的地址。同時(shí),出于安全性考慮,防火墻往往都限制了大多數(shù)的端口。這就使得要在互聯(lián)網(wǎng)上訪問部署在內(nèi)網(wǎng)的服務(wù)變得相當(dāng)困難。服務(wù)總線解決NAT和企業(yè)防火墻問題服務(wù)總線正是為了解決網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)和企業(yè)防火墻問題而產(chǎn)生的。服務(wù)總線作為一個(gè)中間人,用戶的服務(wù)和使用服務(wù)的客戶端全都作為服務(wù)總線的客戶端與它進(jìn)行交流服務(wù)總線不存在網(wǎng)絡(luò)地址轉(zhuǎn)換的問題它對防火墻的要求可以說是相當(dāng)?shù)偷某R姺?wù)及其端口號(hào)AppFabric服務(wù)總線的注冊和訪問過程:第一步,機(jī)構(gòu)B要暴露的服務(wù)向服務(wù)總線注冊一個(gè)或多個(gè)服務(wù)總線的終端(endpoint)。第二步,要訪問機(jī)構(gòu)B服務(wù)的機(jī)構(gòu)A的應(yīng)用到服務(wù)總線發(fā)現(xiàn)終端。第三步,機(jī)構(gòu)A的應(yīng)用通過服務(wù)總線與機(jī)構(gòu)B的服務(wù)建立調(diào)用關(guān)系,訪問機(jī)構(gòu)B的服務(wù)。AppFabric服務(wù)總線的注冊和訪問過程如何使用ServiceBusQueue通過在ServiceBus命名空間中建立消息隊(duì)列,可以讓不同云應(yīng)用通過發(fā)送和接受消息來達(dá)到互相通信的目的。這對應(yīng)用整合來說意義重大。3.5.3訪問控制服務(wù)認(rèn)證和授權(quán)是應(yīng)用安全最為基礎(chǔ)的兩個(gè)方面。身份認(rèn)證是許多分布式應(yīng)用的基礎(chǔ),然后基于用戶的身份信息,應(yīng)用系統(tǒng)將決定該用戶的操作權(quán)限。WindowsAzureplatformAppFabric中提供的訪問控制服務(wù)為開發(fā)人員提供了一個(gè)在應(yīng)用中使用的認(rèn)證和授權(quán)服務(wù)聲明(Claim)身份認(rèn)證的解決方案更多的采用基于聲明(Claim)的方式進(jìn)行?;诼暶鞯恼J(rèn)證模型允許應(yīng)用程序?qū)⒄J(rèn)證與授權(quán)交給外部的服務(wù)來完成,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論