Azure开发者任务三:关于Azure应用程序的理解
发布日期:2016-3-25 13:3:29
Azure开发者任务三:关于Azure应用程序的理解 作为Windows Azure的托管服务被设计和开发的应用程序由这两部分组成: 第1部分:托管代码 第2部分:XML配置文件 托管代码对应不同的角色 XML文件对应不同的配置设置 我们可以看一下下面的这张图,它详细说明了在Windows Azure应用程序中主要包含哪些组件(注意:这是Windows Azure SDK中的一张图。): 接下来,我们会一个一个地仔细分析上面这张图中提到的每一个组件。 首先是角色 有三种类型的角色,分别如下所述: 1、Web角色 2、Worker角色 3、VM角色 关于Web角色,介绍如下: 1)、如果我们选择了这种类型的角色,IIS会被自动地配置好。 2)、这是一个为IIS定制的角色。 3)、这个角色已经针对HTTP请求做好相应的配置了。 4)、这个角色主要用于获取输入。 5)、它包含被IIS支持的Web站点或其他的代码。 6)、任何一个应用程序都能够作为Web角色来使用,只要它支持HTTP协议就可以了。 7)、它会包含一些ASPX页面,或者,它也可能会包含一些WCF服务。被IIS支持的任何应用程序都可以作为Web角色来使用。 8)、当我们在Windows Azure中把WCF服务作为Web角色来使用的时候,我们需要确保在WCF服务中使用的绑定是“basicHttpBinding”。把WCF服务作为Web角色来使用,我们不能 使用其他的绑定。 Windows Azure SDK 1.3中Web角色的改进 1,Web应用程序和站点完全运行在IIS之下。 2,支持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,用于运行非HTTP服务(例如:TCP服务)。 2,托管不需要用户进行输入的应用程序。 3,用于那些无需用户进行等候的任务。 4,用于那些异步的任务。 如下图所示: Worker角色和Web角色之间的区别,如下所述: 让我们理解一下Web角色和Worker角色之间的区别: 1,Web角色面向用户界面,而Worker角色获取来自于Web角色的输入,主要用于异步执行批量的操作。 2,Web角色是一个Web应用程序,它可以获取来自于用户的HTTP输入,它被IIS支持。Worker角色不支持IIS。这是Web角色和Worker角色之间的主要区别。 3,在Web角色中,线程是通过IIS来管理的,而在Worker角色中,线程是开发者或者我们自己来管理的。 4,Web角色和Worker角色的安全参数并不相同。 5,在Worker角色中,我们必须提供Run方法来启动这个进程。 6,对于IIS和网络服务来说,默认是支持基于证书的ACL(Access Control List)的,而在Worker角色中,必须由开发者自己来管理。 在csdef文件中,Worker角色的定义如下,在下面这个配置文件中,这个Worker角色的名字是“WokerRole1”,主要如下图所示: Worker角色类主要包含两个方法,如下图所示: VM角色 第三种类型的角色是VM角色。这是非常特殊的一种角色,它主要用于虚拟机中的操作系统升级。 Web角色和Worker角色运行在一个虚拟机上,而VM角色是一个虚拟机,它可以全面控制虚拟机上的各种操作。 我们可以使用VM角色来控制虚拟机中的操作系统和升级,而操作系统是VM角色的实例。这个角色最适合用来迁移要作为托管服务在Windows Azure中运行的应用程序。 一个VM角色的定义主要如下图所示: 配置文件 到现在为止,我们已经搞清楚了三种不同类型的角色。接下来,让我们看一看Windows Azure应用程序中包含的两种类型的配置文件。如下图所示: ServiceConfiguratiobn.cscfg 不需要停止Azure服务,也能够更新配置文件。这个文件主要包含下面这些信息: 1,角色的实例数 2,不同类型设置的值。如下图所示: 1,实例数是指将要运行的Web角色或Worker角色的实例的数量。 2,在上面这个配置文件中,我们看到这个应用程序是使用本地开发存储器的。 ServiceDefinition.csdef 这个文件包含下面这些信息: 1),这个服务使用的各种角色。 2),关于这个服务使用的“Certificates”的信息。 3),这个服务的“Input End Point”和“Internal End Point”。 4),这个服务需要的本地磁盘存储器。 5),不同的角色使用的配置设置。 这个配置定义了Web角色或Worker角色。让我们一个一个地来理解这个文件中的每个小节。主要如下图所示: 这个小节包含站点和Web应用程序的定义。这些站点和Web应用程序都是托管在IIS 7中的。主要如下图所示: 在这个配置文件中,有两种类型的“End Point”,“Input End Point”和“Internal End Point”。 “Input End Point”包含用于联系托管服务的“End Point”的定义。 “Internal End Point”包含用于角色之间彼此进行通信的“End Point”的定义。 name ="" permissionLevel ="" storeLocation ="" storeName ="" /> 这个小节包含角色需要的证书。 这个小节包含导入规则的定义。 存储服务 Azure应用程序的最后一个组成部分是Azure Storage Service。有三种类型的Azure服务: 类型1:针对结构化数据(TABLES) 类型2:针对非结构化数据(BLOBS) 类型3:针对应用程序和服务之间的消息传递(QUEUES) BLOBS主要用于大型的数据存储。有两种类型的BLOB存储,“Block BLOB”和“PAGE BLOB”。“Azure Table”用于存储结构化的数据。CRUD(Create,Retrieve,Update,和Delete)操作能够使用ODATA协议来实现,或者,也可以使用和WCF Data Service一样的语法来实现。在“Azure Table”中的每一行通过“Row Key”和“Partition Key”来唯一标识。 SQL Azure 要达到存储的目的,也可以使用SQL Azure。 结论 在这篇文章中,我们对一个Windows Azure应用程序做了简单的介绍。本文更侧重于理论。在这个系列的下一篇文章中。我们会用演练的方式来研究Windows Azure应用程序。感谢您的阅读。 原文名:Windows Azure for Developers Task 3: Understanding Windows Azure Application 作者:Dhananjay Kumar
|