WindowsAzure存储服务(StorageService)简介_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > WindowsAzure存储服务(StorageService)简介

WindowsAzure存储服务(StorageService)简介

 2013/11/5 9:37:08  抛物线  博客园  我要评论(0)
  • 摘要:作为应用程序以及其他类型在线服务的核心平台,WindowsAzure除了针对云计算基础建设、营运与管理部份特别设计并支持外,它也必须要具有应用程序及其他为基础开发服务的相关支持,以一个操作系统来说,除了硬件与运算资源的分配与控管外,对软件最直接最基本的支持,非存储功能莫属。如果没有存储功能的话,操作系统只能执行运算,而不能利用近端的媒体来存储信息,因此操作系统必须要有存储的能力,才能够达到开放给应用程序发展的最低限度服务。在WindowsAzure上开放了三种不同的存储功能,分别为BLOB
  • 标签:Windows Service ORA 简介 服务

  作为应用程序以及其他类型在线服务的核心平台,Windows Azure 除了针对云计算基础建设、营运与管理部份特别设计并支持外,它也必须要具有应用程序及其他为基础开发服务的相关支持,以一个操作系统来说,除了硬件与运算 资源的分配与控管外,对软件最直接最基本的支持,非存储功能莫属。如果没有存储功能的话,操作系统只能执行运算,而不能利用近端的媒体来存储信息,因此操 作系统必须要有存储的能力,才能够达到开放给应用程序发展的最低限度服务。在 Windows Azure 上开放了三种不同的存储功能,分别为 BLOB、Queue 以及 Table 三种存储功能,统称为 Storage Service

  BLOB(大型二进制对象)服务是用来存储档案与二进制数据用的,它的作用与一般计算机上的文件系统相当,可以存放不同的二进制文件(包含文本 文件),外界可以使用它所开放的 REST API 或是 .NET Framework 的 Data Services API 来存取它,以下载或上传不同的档案数据。目前 Windows Azure 在 BLOB 支持上又多了两个新功能,一个是可作业内容提供商的内容散布网络(Content Delivery Network, CDN),另一个则是可将 BLOB 空间模拟成磁盘驱动器的 Windows Azure Drive,这两个新功能都可以更加扩大 BLOB 的使用范围。

  Queue(队列)服务是用来暂存来自应用程序的不同要求信息,以 FIFO(先进先出)方式由背景应用程序处理的一种数据存储功能,与 MSMQ 类似,应用程序可以将自定义的数据结构或对象以串行化方式转存到 Queue 中,并由处理队列数据的背景服务将 Queue 中的数据依序取出并处理,适合应用在需要快速响应的客户端应用程序,而伺服端也可以因为应用程序的要求都进入了 Queue,减少出现资源互斥或锁定发生的机率。

  Table(表格)服务是用来存储小型的信息,就像是将数据存储在数据库的表格一样,Table 是一种具弹性且可以不限数量(只受账户可用的存储空间大小限制)的数据存储,非常适合用来存储应用程序数据,如果应用程序不大,不需要使用到像 SQL Azure 这样的云端关系数据库的话,Table 服务应该就足够满足小量数据存储的需求。

  Windows Azure 的存储服务是基于账户的一种服务,每个账户依照申请 Windows Azure 时所配给的存储空间,来使用前述的三种存储服务。而且每个服务的对外入口都不同。相对的,若是在本机开发应用程序的话,在 Development Storage 也是使用不同的入口,藉以明确区隔不同的服务功能:

  因此在开发使用 Windows Azure 存储功能时,需要注意在服务 URL 上的变化,但微软还是对于 .NET 的开发人员投以关怀的眼神,这些 URL 的变化都会由 Windows Azure SDK 中所使用的 Microsoft.WindowsAzure.StorageClient.dll 在背后帮开发人员做掉了,开发人员只需要针对服务的功能开发程序即可,不需要关注这些细节内容。当然,Visual Studio Tools for Windows Azure 也相当程度了支持开发人员简化这些设定。在云端项目中的任一个应用程序角色上编辑项目内容,可以在配置文件(Settings)中,以简易的方式设定要连 到 Windows Azure 存储的服务联机字符串。

  NOTE

  服务联机字符串(Service Connection String)是要连接到 Windows Azure 存储服务时必须要设定的联机字符串,与 ADO.NET 的数据库联机字符串概念类似,它的格式是:

  DefaultEndpointsProtocol=[http|https];AccountName=[StorageServiceAccountName];AccountKey=[StorageServiceAccountKey]

  这些信息都可以在 Windows Azure 的项目管理页面中取得。若只是要连接到本机的 Development Storage,只要使用 UseDevelopmentStorage=true 就可以了。

  不论是 BLOB、Queue 还是 Table,它们都会以 REST API 的方式让外界可以存取,同时也因为是 REST API,因此客户端程序只要可以存取 HTTP 就能使用这些服务,所以不论是微软的 .NET 平台,或是 PHP/Java/Perl/Ruby 等开发平台,都能够存取 Windows Azure 的存储服务。当然微软给了 .NET 的开发人员最充份的支持,Windows Azure SDK 中内含了数个 Microsoft.WindowsAzure.*.dll,包装了这些 REST API,以及和 ADO.NET Data Services Framework 的 API 并用,让 .NET 平台的开发人员得以顺畅简单的发展应用程序。

  NOTE

  现在除了 .NET 平台外,也有许多开发人员针对 PHP/Ruby 与 Java 开发 SDK 与工具,以让这些程序语言开发的应用程序得以存取 Windows Azure 存储服务,若想知道这些 SDK 与工具的详细信息,请参考:

  Azure SDK for Java:http://www.interoperabilitybridges.com/projects/windows-azure-sdk-for-java.aspx

  Azure SDK for PHP:http://www.interoperabilitybridges.com/projects/php-sdk-for-windows-azure.aspx

  Windows Azure Tools for Eclipse:http://www.interoperabilitybridges.com/projects/windows-azure-tools-for-eclipse.aspx

  申请存储服务账户

  以 Windows Azure 账户管理的设定,每一个申请使用 Windows Azure 的 Live ID Account,可以拥有建立 5 个存储账户的权利,这有助于将存储要求分散给不同的 VM 来处理,避免都集中在同一个 VM 群处理,以提升存储服务的处理效率。即便如此,这 5 个存储账户所使用的空间都一样会共享总配额(如果申请的是有免费配额量的话),超过的配额部份会计费,所以在设定存储账户时应先分析与确认自己的需求,再 决定要申请几个账户。

  当申请完成后,即可在该服务的管理页面中找到 AccountName 与 AccountKey,可用来建立服务联机字符串。

  NOTE

  若想进一步了解应用程序或存储服务帐户申请的过程,可以参考下列文章:

  http://www.dotblogs.com.tw/regionbbs/archive/2010/02/18/vs2010.and.azure.platform.create.azure.service.aspx

  NOTE

  对于 Storage 服务而言,一个应用程序只能设定使用一支 AccountKey 来连接 Storage 服务,但有时应用程序可能会需要同时存取不同的 Storage 服务,因此,Windows Azure 对每一个 Storage 账户都提供两组 AccountKey 以备不时之需,大多数的情况下,只需要 Primary Access Key 即可。

发表评论
用户名: 匿名