技术开发 频道

微软Azure云计算的SDK

  【IT168 专稿】

 
Azure是微软为了进入云计算领域和Amazon.com和谷歌等竞争的产物。它由eWEEK实验室开发。

  微软已经开发出一套运行于其开发的分布式数据中心的软件系统。微软Windows平台下的Azure 开发包已经可以使用了。这个开发包可以在技术社区找到,并且可以用于应用开发。

  这是几篇关于微软2008年发布的云计算平台Azure文章中的第一篇。Azure相当庞大,在明年就可以看到几本完整的关于Azure的书。也就是说,目前还无法给出全面介绍Azure的文章。但不管怎样,我确实想让大家了解下Azure,并且带领大家一起运行Azure。所以在第一篇文章中,我将带领大家使用软件开发包中的简单例子,并且解释相关概念。

  为了运行Azure,必须要事先安装具有服务包1的Vista操作系统或Windows Server 2008操作系统,其次还要安装Visual Studio 2008(或者Visual Studio 2008, Visual Web Developer 2008 Express Edition)。最后,还需要安装数据库SQL Server 2005 Express或者 SQL Server 2008 Express。最后,还需要为Visual Studio安装Azure SDK(软件开发工具包)和Azure工具。这两个工具可以分别从这里和这里获得。

  Azure的基本原理

  Azure(以及其它许多的云计算平台)的基本原理之一是地理学分布式服务的概念。它允许世界各地的用户都能下载或使用在地理上与用户隔离的服务器。这样做有明显的好处,比如有更快的响应时间和最小的数据交换量。

  当你基于Azure开发软件时,所开发的软件就以所谓的“计算服务”的形式存在,这是软件在Azure平台下运行的主要部分,因为服务器端的代码(比如ASP.NET)都运行于Azure平台。

  微软使用单词“角色”来表示可运行的一个代码组件。比如,我们可以创建一个ASP.NET应用程序作为“角色”,称为“网络角色”。更进一步,你可以为后台程序创建附加模块,这些模块被称着“工人角色”。综合起来,一个或多个角色组成了一个计算服务。

  在把软件真正上传到Azure云计算平台之前,我们可以使用SDK(软件开发工具包)中的两个工具来辅助在自己的环境中实现云计算。这两个工具模拟了Azure的服务功能,其中第一个为Development Fabric,另一个是Development Storage.

  Development Fabric主要在本地模拟了Azure,并且包含一个用于管理运行服务的工具。

  Development Storage模拟了服务端的存储服务。Azure提供了两种存储数据的方式,你可以根据实际需要来决定采用何种方式。首先,你可以通过SQL数据服务来访问传统的关系型数据库,也就是云计算版的SQL Server。其次,你还可以访问称之为平面存储系统Storage Services的非关系型数据库。开发工具中,Development Storage模拟了后一种存储方式。

  相对于其它的平台,比如Amazon.com的AWS(Amazon Web Services)和Google的Web应用软件,安装Azure的SDK是很繁琐的。首先要下载相当大的SDK以及Visual Studio的相关工具。(我发现网上各种在线论坛中许多人都忽略了第二部分——Visual Studio工具,所以当他们无法安装成功时就会很失落)

  在很多情况下,即使已经安装了SQL Server 2005和2008,我仍然需要安装SQL Server 2008 Express,因为这显然是必须的组件。(我说“显然”是因为这篇文档暗示了尽管SQL Server 2008 Express是需要的,而你仍然可能在没有它的基础上进行工作。事实上我做不到这一点。)

  装上了所有的软件后Azure平台就可以很好地运行。我们的第一步是进行云计算的简单设置。(如果你也想试验这一步,可以参考在线文档中的“如何:使用Visual Studio创建和测试Web角色”)

  在简单地创建一个Web云服务类型的新项目的同时,实际上创建了两个项目。一个是云计算项目,另一个是ASP.NET项目。云计算项目包含你所创建的服务的信息。

  起初,这个项目并不能做什么,因为它只是个初始。尽管如此,如果在调试器下运行这个项目,你会有一些发现。首先,你会看到一条消息问你是否想要创建数据库。按“YES”后,会有一段时间的停顿用来创建运行于SQL Server Express的数据库。(尽管Development Storage是非关系型的,但在后台中它存储于SQL Server Express数据库中。)下一步,上面所提到的两个工具Development Fabric和Development Storage将会启动。除了可以得到系统运行时的图标,以及一个一闪而过的消息弹出来表示系统已经启动外,你无法得到系统运行的更多迹象。

  接下来,IE浏览器将会打开一个空白页。这个网页由运行于Development Fabric的ASP.NET应用程序产生。

  现在,如果你想完成文档中的第一步,你将会看到树状图的链接。这个文档的最初版本需要些修改,因为它使得树状图看起来在网页中是必须的,而事实上并不是这样。这些文档实际上涉到Development Fabric的图形用户界面。为了能看到它,右击Development Fabric托盘中的小图标(看起来像是两个齿轮)并且点击“显示Development Fabric 界面”。这个界面用于显示服务器的运行信息和输出的日志。

  第一个例子并没有做什么,下一步我将给出更复杂的例子。

  SDK的默认目录是“C:\Program Files\Windows Azure SDK\v1.0”, “samples.zip”位于这个目录下。将它解压后你会发现有九个例子,他们分别了描述了Azure SDK的不同方面。我极力推荐大家编译运行每个例子并熟悉它们,这是学习Azuer很好的方法。我要使用的例子是个人网站,它位于PersonalWebSite目录下。

  Azure SDK包含一条命令行,向Azure中所有工具提供路径。这些例子可以通过这条命令行使用例子自带的批处理文件来构建,也可以通过一个批处理文来构建所有的例子。虽然可以任意选择使用哪种方法,但我还是推荐大家使用每个例子自带的可在Visual Studio中打开的解决方案来构建例子。这种方式下你可以看到例子的各个部分。

  我打开PersonalWebSite.sln的例子并对它了做些操作。(当你跟我一样打开这个项目时,你可能会看到一个安全警告。这是很正常的,所以你只要点击“加载项目”即可)当运行这个项目时,你会觉得它很熟悉,它与普通的ASP.NET个人网页的开始界面很相似。

  但你他细看看这些代码,你会发现一个叫AspProviders的项目,它包含一些可方便使用的C#文件的集合,可以辅助Azure各个方便的工作。这些类是对Azure API最基本的包装。从ASP.NET的角度来看,这些类可以使Azure变得很容易使用。比如一些类可以使用存储服务来进行成员资格验证和角色控制,还有一些类可被重用于自己基于云计算开发的软件。

  我对这些类特别看重的一个原因是,在我看来,这种机制在Amazon.com的AWS中并不存在。AWS中的用户认证方式与Azure中的很不相同,AWS中必须要自己编码实现用户认证。AWS中也有安全机制并且工作得很好,但是用户认证并没有嵌入其中,至少是没有实现与ASP.NET中的成员资格验证相同的能力。如果你跟我一样已经使用ASP.NET进行了很多开发,你应该知道ASP.NET 2.0中引入的用户认证类是多么地健壮和有用。这些类包括成员和角色控制,并且效果很好。所以使用AWS时在这方面我总有点失望。

  当然,公平地讲,AWS的体系结构与Azure不同,你可以在AWS中分配Windows服务器并且运行ASP.NET,于是你就可以使用ASP.NET自带的用户认证机制。但是,这种机制与AWS中使用HTTP调用来实现请求认证大不相同。所以,我个人更喜欢Azure例子中的这些类。

  在这里,我还是劝你们仔细研究下这些例子并且仔细看看其中的代码,特别注意所用到的命名空间,以及Azure SDK安装目录下文件夹“bin”和“ref”中例子的组合。当然,不要忘了文档目录下的文档,其中的Window帮助文档a.chm包含了很多有用的信息(尽管它还在预发布状态)。

0
相关文章