Azure開發者任務之三:理解Azure應用程序(上)

 

做爲Windows Azure的託管服務被設計和開發的應用程序由這兩部分組成:windows

1,託管代碼安全

2,XML配置文件網絡

託管代碼對應不一樣的角色app

XML文件對應不一樣的配置設置異步

咱們能夠看一下下面這張圖,它詳細說明了在Windows Azure應用程序中主要包含哪些組件:操作系統

注意:這是Windows Azure SDK中的一張圖。線程

接下來,咱們會一個一個地仔細分析上面這張圖中提到的每個組件。設計

首先是角色blog

有三種類型的角色進程

1,Web角色

2,Worker角色

3,VM角色

Web角色

1,這是一個爲IIS定製的角色。

2,若是咱們選擇了這種類型的角色,IIS會被自動地配置好。

3,這個角色主要用於獲取輸入。

4,這個角色已經針對HTTP請求作好相應的配置了。

5,它包含被IIS支持的Web站點或其餘的代碼。

6,它會包含一些ASPX頁面,或者,它也可能會包含一些WCF服務。被IIS支持的任何應用程序均可以做爲Web角色來使用。

7,任何一個應用程序均可以做爲Web角色來使用,只要它支持HTTP協議就能夠了。

8,當咱們在Windows Azure中把WCF服務做爲Web角色來使用的時候,咱們須要確保在WCF服務中使用的綁定是「basicHttpBinding」。把WCF服務做爲Web角色來使用,咱們不能 使用其餘的綁定。

Windows Azure SDK 1.3中Web角色的改進

1,支持IIS的所有功能。

2,Web應用程序和站點徹底運行在IIS之下。

3,Web角色用和IIS徹底同樣的方式來使用應用程序域。

最大的改進是如今咱們可讓把多個站點或應用程序當作一個Web角色了。

在建立Azure項目的時候,咱們能夠選擇咱們想爲這個應用程序添加的Web角色的類型。已經安裝的模板包括:

1,ASP.Net Web Role

2,ASP.Net MVC Web Role

3,WCF Service Web Role

4,CGI Web Role

在剛剛建立好的Windows Azure項目中,你能夠看到,嚮導會爲你自動地建立兩種類型的配置文件。

在ServiceConfiguration.cscfg文件中,咱們能夠指定Web角色的實例數:

Worker角色

它主要用於後臺任務。值得注意的是,Worker角色不支持IIS。因此,它能夠處理任何類型的應用程序,包括非託管代碼。Worker角色不用直接和用戶進行交互,因此,當遇到那些異步的,須要很長時間才能完成的處理任務的時候,它就能夠大顯身手了。

Worker角色的主要用途

1,用於那些無需用戶進行等候的任務。

2,用於那些異步的任務。

3,用於運行非HTTP服務(例如:TCP服務)。

4,託管不須要用戶進行輸入的應用程序。

Worker角色和Web角色之間的區別

讓咱們理解一下Web角色和Worker角色之間的區別:

1,Web角色是一個Web應用程序,它能夠獲取來自於用戶的HTTP輸入,它被IIS支持。Worker角色不支持IIS。這是Web角色和Worker角色之間的主要區別。

2,Web角色面向用戶界面,而Worker角色獲取來自於Web角色的輸入,主要用於異步執行批量的操做。

3,在Web角色中,線程是經過IIS來管理的,而在Worker角色中,線程是開發者或者咱們本身來管理的。

4,在Worker角色中,咱們必須提供Run方法來啓動這個進程。

5,Web角色和Worker角色的安全參數並不相同。

6,對於IIS和網絡服務來講,默認是支持基於證書的ACL(Access Control List)的,而在Worker角色中,必須由開發者本身來管理。

在csdef文件中,Worker角色的定義以下,在下面這個配置文件中,這個Worker角色的名字是「WokerRole1」:

<WorkerRole name="WorkerRole11">

<Imports>

<import modulename="Diagnostics" />

</Imports>

</WorkerRole>

Worker角色類主要包含兩個方法:

VM角色

第三種類型的角色是VM角色。這是很是特殊的一種角色,它主要用於虛擬機中的操做系統升級。

Web角色和Worker角色運行在一個虛擬機上,而VM角色是一個虛擬機,它能夠全面控制虛擬機上的各類操做。

咱們可使用VM角色來控制虛擬機中的操做系統和升級,而操做系統是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

相關文章
相關標籤/搜索