微软Azure云计算的SDK

来源:百度文库 编辑:神马文学网 时间:2024/06/03 06:27:09
http://publish.itpub.net/focus/200904/windowsazure/index.html
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包含了很多有用的信息(尽管它还在预发布状态)。