• 1
  • 2
  • 3
  • 4
  • 5
阿里云应用开发 首 页  »  帮助中心  »  云服务器  »  阿里云应用开发
Azure开发者任务之三:理解Azure应用程序(1)
发布日期:2016-7-27 10:7:39

  作为Windows Azure的托管服务被设计与开发的应用程序由这两部分组成:

  (1)托管代码

  (2)XML配置文件

  托管代码对应不同的角色

  XML文件对应不同的配置设置

  我们可看一下下面这张图,它详细说明了在Windows Azure应用程序中主要包含哪些组件,如图1所示:


  图1

  注意:这是Windows Azure SDK中的一张图。

  接下来,我们会一个一个地仔细分析上面这张图中提到的每一个组件。

  首先是角色

  有三种类型的角色,分别是:

  (1)Web角色

  (2)Worker角色

  (3)VM角色

  1、Web角色

  (1)这是一个为IIS定制的角色。

  (2)如果我们选择了这种类型的角色,IIS会被自动地配置好。

  (3)这个角色已针对HTTP请求做好相应的配置了。

  (4)这个角色主要用于获取输入。

  (5)它包含被IIS支持的Web站点或其他的代码。

  (6)它会包含一些ASPX页面,或者,它也可能会包含一些WCF服务。被IIS支持的任何应用程序都可以作为Web角色来使用。

  (7)任何一个应用程序都可以作为Web角色来使用,只要它支持HTTP协议就可以了。

  (8)当我们在Windows Azure中把WCF服务作为Web角色来使用的时候,我们需要确保在WCF服务中使用的绑定是“basicHttpBinding”。把WCF服务作为Web角色来使用,我们不能 使用其他的绑定。

  2、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


  图2

  在刚刚创建好的Windows Azure项目中,你可以看到,向导会为你自动地创建两种类型的配置文件。


  图3

  在ServiceConfiguration.cscfg文件中,我们可以指定Web角色的实例数:

  图4


  3、Worker角色

  它主要用于后台任务。值得注意的是,Worker角色不支持IIS。所以,它可以处理任何类型的应用程序,包括非托管代码。Worker角色不用直接和用户进行交互,所以,当遇到那些异步的,需要很长时间才能完成的处理任务的时候,它就可以大显身手了。

  Worker角色的主要用途

  (1)用于那些无需用户进行等候的任务。

  (2)用于那些异步的任务。

  (3)用于运行非HTTP服务(例如:TCP服务)。

  (4)托管不需要用户进行输入的应用程序。


  图5

  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角色类主要包含两个方法:


  图6

  5、VM角色

  第三种类型的角色是VM角色。这是非常特殊的一种角色,它主要用于虚拟机中的操作系统升级。

  Web角色与Worker角色运行在一个虚拟机上,而VM角色是一个虚拟机,它可全面控制虚拟机上的各种操作。

  我们可以使用VM角色来控制虚拟机中的操作系统和升级,而操作系统是VM角色的实例。这个角色最适合用来迁移要作为托管服务在Windows Azure中运行的应用程序。

  一个VM角色的定义如下所示:

  

<VirtualMachineRole name="MachineRole" vmsize="Medium">

 

<Imports>

 

<Import moduleName="RemoteAccess" />

 

<Import moduleName="RemoteForwarder" />

 

</Imports>

 

</VirtualMachineRole>