第3章 Windows Azure计算服务
Windows Azure在整个云计算平台中主要负责计算和存储功能,开发人员可以利用计算功能在Windows Azure上创建ASP.NET网站、WCF服务、基于.NET的后台工作进程以及基于FastCGI的PHP等应用。同时Windows Azure还提供了分布式的文件服务、类似于NoSQL的结构化数据存储服务以及分布式队列服务。但是所谓“工欲善其事,必先利其器”,要想开发基于Windows Azure的应用程序,首先需要准备好相应的开发环境。
3.1 准备Windows Azure开发环境
开发Windows Azure应用必要条件是要安装Windows Azure SDK。不过为了更方便于开发,我们可以从微软的Windows Azure官方网站下载安装Windows Azure Tool for Visual Studio。这个安装包里面不仅包含了Windows Azure SDK,还包含了开发Windows Azure的其他增强功能。
· Windows Azure SDK:包含必要的动态链接库(DLL)和插件(Plugin),以及Windows Azure本地模拟器,是开发Windows Azure应用程序的必备资源。
· 基于Visual Studio 2008/2010的Windows Azure项目模板和工具,可以帮助开发人员快速开发Windows Azure应用、一键部署以及简单的管理功能。
除此之外,开发人员还需要如下的工具来协助完成开发。
· IIS 7或以上版本;
· Visual Studio 2008或2010;
· SQL Server Express 2005或以上版本。
注意
获得最新版本的Windows Azure SDK和Windows Azure Tool for Visual Studio,请访问http://www.microsoft.com/windowsazure/ sdk/。本书的所有代码基于Windows Azure SDK 1.4 Updated April 2011版本。
下载安装了Windows Azure Tool for Visual Studio之后,在Visual Studio里面便可以看到和Windows Azure相关的模板了,如图3-1所示。稍后我们会使用此模板来创建第一个Windows Azure项目。
图3-1 Visual Studio新建项目对话框中Windows Azure的模板
Windows Azure Tool for Visual Studio里面包含的另一个非常有用的工具就是Windows Azure本地模拟器。由于Windows Azure是一个云平台,开发人员不可能直接在云端开发并测试代码,因此需要在本地计算机上开发和初步测试,在开发环境上搭建一个类似Windows Azure的环境来模拟应用程序在云端运行的效果。Windows Azure本地模拟器就是一个在开发人员的计算机上模拟Windows Azure环境的工具,它由两部分组成。
· Compute Emulator:模拟Windows Azure的计算服务,主要包括以下几种。
■ 模拟应用程序在Windows Azure运行时的生命周期模型。
■ 模拟Windows Azure上面的诊断工具Diagnostic Monitor。
■ 模拟Windows Azure平台对多个实例(Instance)提供的负载均衡特性。
· Storage Emulator:模拟Windows Azure的存储服务,主要包括以下几种。
■ 模拟Table、BLOB和Queue Storage存储服务。
■ 提供和云端存储服务一致的RESTful接口。
Compute Emulator使用本地的IIS来模拟Windows Azure项目中的Web Role,包括ASP.NET网站和WCF服务(如果这个WCF服务是寄宿在Web Role上的)。所以开发Windows Azure的计算机还需要安装7.0或更高版本的IIS。Storage Emulator部分是基于本地SQL Server进行模拟的,所以还需要安装SQL Sever 2005 Express或以上的版本。
在使用模拟器之前,Storage Emulator需要进行初始化工作,即在本地的SQL Server中创建模拟器所需的表及存储过程。执行初始化操作很简单,进入命令行窗口,然后进入本地目录C:\Program Files\Windows Azure SDK\v1.4\bin\devstore(默认安装到C盘),启动DSInit.exe程序就可以开始初始化本地Storage Emulator了。调用格式如下:
DSInit [/sqlinstance:<SQL server instance>] [/forceCreate] [/user:<Windows account name>]
其中的三个参数分别是说明如下。
· /sqlinstance:指定目标SQL Server的实例名字,如果不指定则默认使用本地SQL Express,如果使用SQL Server的话,则要指定SQL Server的实例名字。如果安装SQL Server的时候没有指定实例名字,则可以使用点号(.)代替。
· /forceCreate:强制重新初始化,即删除数据库中所有已存在的Storage Emulator数据,创建一个全新的模拟环境。
· /user:指定访问数据库的用户名。DSInit只支持Windows验证,因此需要保证有至少一个Windows用户能够访问SQL Server数据库。如果不指定则使用当前登录的用户进行访问。
一般来说如果开发环境安装的是SQL Server Express,那么直接执行DSInit即可;如果安装的是SQL Server,那么初始化命令就是DSInit.exe /sqlinstance:.。运行完毕后如图3-2所示,表明初始化操作成功。
图3-2 本地Storage Emulator初始化成功的界面