Azure開發(fā)者任務(wù)之三:理解Azure應(yīng)用程序(上)
原創(chuàng)作為Windows Azure的托管服務(wù)被設(shè)計(jì)和開發(fā)的應(yīng)用程序由這兩部分組成:
1,托管代碼
2,XML配置文件
托管代碼對(duì)應(yīng)不同的角色
XML文件對(duì)應(yīng)不同的配置設(shè)置
我們可以看一下下面這張圖,它詳細(xì)說明了在Windows Azure應(yīng)用程序中主要包含哪些組件:
注意:這是Windows Azure SDK中的一張圖。
接下來,我們會(huì)一個(gè)一個(gè)地仔細(xì)分析上面這張圖中提到的每一個(gè)組件。
首先是角色
有三種類型的角色
1,Web角色
2,Worker角色
3,VM角色
Web角色
1,這是一個(gè)為IIS定制的角色。
2,如果我們選擇了這種類型的角色,IIS會(huì)被自動(dòng)地配置好。
3,這個(gè)角色主要用于獲取輸入。
4,這個(gè)角色已經(jīng)針對(duì)HTTP請(qǐng)求做好相應(yīng)的配置了。
5,它包含被IIS支持的Web站點(diǎn)或其他的代碼。
6,它會(huì)包含一些ASPX頁面,或者,它也可能會(huì)包含一些WCF服務(wù)。被IIS支持的任何應(yīng)用程序都可以作為Web角色來使用。
7,任何一個(gè)應(yīng)用程序都可以作為Web角色來使用,只要它支持HTTP協(xié)議就可以了。
8,當(dāng)我們?cè)赪indows Azure中把WCF服務(wù)作為Web角色來使用的時(shí)候,我們需要確保在WCF服務(wù)中使用的綁定是“basicHttpBinding”。把WCF服務(wù)作為Web角色來使用,我們不能 使用其他的綁定。
Windows Azure SDK 1.3中Web角色的改進(jìn)
1,支持IIS的全部功能。
2,Web應(yīng)用程序和站點(diǎn)完全運(yùn)行在IIS之下。
3,Web角色用和IIS完全一樣的方式來使用應(yīng)用程序域。
最大的改進(jìn)是現(xiàn)在我們可以讓把多個(gè)站點(diǎn)或應(yīng)用程序看成一個(gè)Web角色了。
在創(chuàng)建Azure項(xiàng)目的時(shí)候,我們可以選擇我們想為這個(gè)應(yīng)用程序添加的Web角色的類型。已經(jīng)安裝的模板包括:
1,ASP.Net Web Role
2,ASP.Net MVC Web Role
3,WCF Service Web Role
4,CGI Web Role
在剛剛創(chuàng)建好的Windows Azure項(xiàng)目中,你可以看到,向?qū)?huì)為你自動(dòng)地創(chuàng)建兩種類型的配置文件。
在ServiceConfiguration.cscfg文件中,我們可以指定Web角色的實(shí)例數(shù):
Worker角色
它主要用于后臺(tái)任務(wù)。值得注意的是,Worker角色不支持IIS。所以,它可以處理任何類型的應(yīng)用程序,包括非托管代碼。Worker角色不用直接和用戶進(jìn)行交互,所以,當(dāng)遇到那些異步的,需要很長(zhǎng)時(shí)間才能完成的處理任務(wù)的時(shí)候,它就可以大顯身手了。
Worker角色的主要用途
1,用于那些無需用戶進(jìn)行等候的任務(wù)。
2,用于那些異步的任務(wù)。
3,用于運(yùn)行非HTTP服務(wù)(例如:TCP服務(wù))。
4,托管不需要用戶進(jìn)行輸入的應(yīng)用程序。
Worker角色和Web角色之間的區(qū)別
讓我們理解一下Web角色和Worker角色之間的區(qū)別:
1,Web角色是一個(gè)Web應(yīng)用程序,它可以獲取來自于用戶的HTTP輸入,它被IIS支持。Worker角色不支持IIS。這是Web角色和Worker角色之間的主要區(qū)別。
2,Web角色面向用戶界面,而Worker角色獲取來自于Web角色的輸入,主要用于異步執(zhí)行批量的操作。
3,在Web角色中,線程是通過IIS來管理的,而在Worker角色中,線程是開發(fā)者或者我們自己來管理的。
4,在Worker角色中,我們必須提供Run方法來啟動(dòng)這個(gè)進(jìn)程。
5,Web角色和Worker角色的安全參數(shù)并不相同。
6,對(duì)于IIS和網(wǎng)絡(luò)服務(wù)來說,默認(rèn)是支持基于證書的ACL(Access Control List)的,而在Worker角色中,必須由開發(fā)者自己來管理。
在csdef文件中,Worker角色的定義如下,在下面這個(gè)配置文件中,這個(gè)Worker角色的名字是“WokerRole1”:
<WorkerRole name="WorkerRole11">
<Imports>
<import modulename="Diagnostics" />
</Imports>
</WorkerRole>
Worker角色類主要包含兩個(gè)方法:
VM角色
第三種類型的角色是VM角色。這是非常特殊的一種角色,它主要用于虛擬機(jī)中的操作系統(tǒng)升級(jí)。
Web角色和Worker角色運(yùn)行在一個(gè)虛擬機(jī)上,而VM角色是一個(gè)虛擬機(jī),它可以全面控制虛擬機(jī)上的各種操作。
我們可以使用VM角色來控制虛擬機(jī)中的操作系統(tǒng)和升級(jí),而操作系統(tǒng)是VM角色的實(shí)例。這個(gè)角色最適合用來遷移要作為托管服務(wù)在Windows Azure中運(yùn)行的應(yīng)用程序。
一個(gè)VM角色的定義如下所示:
<VirtualMachineRole name="MachineRole" vmsize="Medium">
<Imports>
<Import moduleName="RemoteAccess" />
<Import moduleName="RemoteForwarder" />
</Imports>
</VirtualMachineRole>
原文名:Windows Azure for Developers Task 3: Understanding Windows Azure Application 作者:Dhananjay Kumar
本文接《Azure開發(fā)者任務(wù)之三:理解Azure應(yīng)用程序(下)》
【本文乃51CTO精選譯文,轉(zhuǎn)載請(qǐng)標(biāo)明出處!】
【編輯推薦】
- 微軟公布云計(jì)算平臺(tái)Azure收費(fèi)模式細(xì)節(jié)
- 云計(jì)算意在長(zhǎng)遠(yuǎn),微軟云計(jì)算服務(wù)Windows Azure已經(jīng)啟用
- 技術(shù)透析:Windows Azure Platform框架與組成
- 微軟Windows Azure Platform技術(shù)解析
- 走近微軟云:SQL Server到Azure數(shù)據(jù)同步
- 當(dāng)微軟Azure遭遇亞馬遜EC2:五大關(guān)鍵區(qū)別
- Windows Azure云計(jì)算平臺(tái)新增五大功能
- 云計(jì)算前途光明 Azure用戶數(shù)突破31000
- 如何把應(yīng)用程序部署到Windows Azure中
- 挑戰(zhàn)有何不同!云環(huán)境中開發(fā) vs 云環(huán)境中管理