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