对于企业用户来说,与其购买和维护自己的机器系统,不如利用网络上提供的资源,这包括数据资源也包括计算资源,这就是云计算的实质含义。云计算是一 项可有望大幅降低成本的新兴技术,因而云计算也成为计算市场的必然趋势,受到越来越多公司的追捧。微软在上月推出了名为“Windows Azure”的云计算平台,官方描述:Windows Azure云服务操作系统,它可以作为开发,服务接待和服务管理的环境。但究竟Windows Azure工作界面以及技术原理如何?可能只有真正接触到的人才会了解其中奥妙。
对于某些应用程序来说,它们的代码和数据都可能存在于云中,由别人进行管理和维护系统,用户直接使用这些程序无论是通过台式机或者移动设备上运行的应用程序,都同样可以使用云的服务跨越许多不同系统。所以,想微软官方说的一样:“利用云的能力,可以改善我们的世界。”
微软的Azure服务平台是一组云技术,每个应用软件开发商提供一个特定位置的服务。正如图1表明,Azure服务平台可被作为应用在程序运行的云系统或者本地系统。
![]() |
图1:Azure服务平台提供的应用是可以运行在云中或本地系统中。
在更细致的水平时, Windows Azure更容易理解一些:这是一个平台上运行Windows应用程序和存储数据的云层。下图显示Windows Azure的主要组成部分。
![]() |
图2 :基于Windows计算和存储服务的云应用。
正如数字表明,Windows Azure上的程序是真正的运行在了大量的设在微软数据中心且可访问因特网的系统。通过一个共同的Windows Azure平台来处理这些调用指令,使其成为一个统一的整体。Windows Azure的计算和存储服务都是建立在这种结构之上。
2008年秋天微软公司在技术社区上发表了Windows Azure的技术预览版(CTP)上,开发人员可以创建以.NET为基础的软件应用,如ASP.NET应用程序和Windows通讯基础(WCF)构建服 务。要做到这一点,他们可以使用C#或其他的. NET语言,同时也可使用传统的开发工具,如Visual Studio系列。而许多开发商有可能利用这一最初版本的Windows Azure创建云计算或WEB应用,Azure不仅仅是一个网络平台,它还支持后台进程独立运行。
Windows Azure应用程序及on-premises 应用程序都可以访问Windows Azure的存储服务,它们使用相同的REST方式。基本的数据存储不是微软SQL Server ,事实上,Windows Azure存储系统并不是一个相关的系统,其查询语言也不是SQL。因为它的主要目的是支持在Windows Azure的应用程序,它提供更简单,可扩展性的存储。因此,它可以存储二进制大对象(块),提供队列与Windows Azure应用软件之间的通信元件,甚至提供了一个可以直接进行查询的表。
运行在云中的应用程序和存储服务中的数据有明显的优势。例如,一个组织它无需去购买,安装和运行自己的系统,依靠云服务提供商他们就可以直接使 用。此外,客户只支付其使用部分的计算和存储的费用,而无需为了高峰压力时的巨大负荷购买大量服务器。应用程序就可以轻松地利用云提供商提供的巨大的数据 中心。
然而,实现这些好处,需要有效的管理。在Windows Azure,每个申请配置文件,如图2所示,通过改变文件中的手动或编程信息就可以使运行在Windows Azure结构上的应用保持良好运行的理想状态。
运行在云中的应用程序最重要的一个方面是云计算。在Windows Azure,微软提供了一个平台,这样做,可以通过一种方式来存储应用数据。Windows Azure有两个主要原素:它运行的应用和存储的数据。
一、运行的应用程序:
Windows Azure应用程序通常在多种情况下,每一个副本可分别运行全部或部分应用程序的代码。所有这些情况下运行在它自己的虚拟机(VM)。这些虚拟机运行在64位Windows Server 2008之上,他们所提供的程序是专门为应用于云而设计的。
然而,在Windows Azure应用程序不能也不需要真正看到虚拟机的运行,也不需要担心保持这种复制的Windows操作系统会带来任何不安因素。相反,CTP版本允许开发商创造的.NET 3.5的Web应用程序。图3显示它如何实现:
![]() |
图3:在CTP版本,Windows Azure每个实例运行在它自己的虚拟机上。
对于开发人员来说,架构一个Windows Azure应用看起来很像传统的.NET应用程序开发。微软提供的Visual Studio 2008项目模板可以创建Windows Azure的应用组合。开发人员可以自由地使用任何一个.NET语言(虽然它的公平地说,微软最初一直以C#主要工具用于Windows Azure程序编写)。
二、访问数据
应用程序与存储数据的工作有许多不同的方式。有时人们需要的只是简单的块,而其他情况下则要求有条理的方式来存储信息。在某些情况下,人们真正需要的是一种不同部分之间的交换数据指令。Windows Azure存储方案解决所有这三个方面的要求,图4显示:
![]() |
图4 :Azure允许的Windows数据存储块,表格和队列,所有通过HTTP进入同样的REST方式
在Windows Azure存储中最简单的存储数据方式来是使用块(blobs)。正如图4表明,有简单的层次:一个存储帐户可以有一个或多个集装箱,而每个集装箱拥有一 个或多个块。每个块可以大到5千字节一个,传输这样的大块,使大块更有效率,且每个可分为区块。如果发生故障,可以恢复最近的区块,而不是把整个过程重复 一次。
为了让应用程序与数据库中配合的更为精细, Windows Azure存储提供了表格。不要被表这个我们熟知的名称所误导,这些表都不是关联的表。事实上,即使它们是所谓的“统计表” ,该数据实际上包含的是储存在一个简单层次结构的实体。表格没有明确的架构,而是性质可以有不同类型,如整数,字符串,布尔,或日期时间。它不是使用 SQL ,而是应用程序访问一个表的数据使用查询语言与LINQ语法。一个表可以相当大,数十亿的实体持有万亿字节的数据传输,而Windows Azure存储分区它可以跨越多台服务器。



