在Azure开发平台上创建并运行一个项目

Azure开发平台上创建并运行一个项目

Azure Cloud FabricAzure存储服务不支持基于云的开发和调试操作,因此Azure SDK提供了Development FabricDF)和Development StorageDS)用于本地开发,它们会随Azure SDK一起安装,此外,Azure SDK也提供了一些示例程序和开发库以简化编程。

Development Fabric

DF包括以下可执行文件:DFAgent.exeDFLoadBalancer.exeDFMonitor.exeDFService.exeAzure SDK安装程序默认将它们安装在开发计算机的\ProgramFiles\WindowsAzureSDK\v1.0\bin\devfabric文件夹下,启动DF后,在Windows任务管理器的进程管理列表中可以看到这四个进程,启动DF的方法有三种:

1、通过开始菜单Programs\WindowsAzureSDK\Development Fabric启动DF服务和UIDFUI.exe)。

2、在任务栏通知区域DF图标上点击右键,选择“启动Development Fabric服务”,如图1所示。9915116_201006021238181.jpg

 

1 通过任务栏DF图标查看DF运行状态,启动DF服务

3、在Visual Studio中编译并运行一个Azure应用程序。

2显示了Visual Studio 2008中两个并行调试Web应用程序(叫做Service Deployments)的DFUIDF自动给这两个应用程序做了连续的编号(616617),当你停止调试后,DFUI窗口中对应的应用程序项目就会消失。9915116_201006021239111.jpg

 

2 DFUI窗口中查看Visual Studio 2008中调试的应用程序

Development Storage

Windows Azure Platform支持三种可扩展的持久化存储:

1、非结构化数据(Blob

2、结构化数据(Table

3、应用程序之间,服务之间,或应用程序与服务之间的消息(Queue

运行rundevstore.exe或在Visual Studio中运行Azure用户代码将启动这三个服务,即使你的项目只需要其中一个服务,同时还会显示DS UI窗口,如图3所示。9915116_201006021239241.jpg

 

3 DS UI窗口,可查看每个存储服务的运行状态

为了保证数据的安全,Azure云至少会在同一数据中心三个独立的容器中存储BlobTableQueueAzure基于地理位置的功能允许你将数据复制到多个微软数据中心,增强灾难恢复能力,提高特定地区的性能。

Azure服务定义和服务配置文件

运行在Development Framework中的Azure应用程序可以访问存储在本地Development Storage中的数据,也可以将数据上传到Azure云存储。

Azure项目的ServiceDefinition.csdef文件定义了一套标准的输入端点,ServiceConfiguration.cscfg文件存储了对应的设置,清单1显示了默认的ServiceDefinition.csdef内容。

清单1. 默认ServiceDefinition.csdef文件的内容

xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">

<!-- Must use port 80 for http and port 443 for https when running in the cloud --&gt

清单2显示了默认ServiceConfiguration.cscfg文件的内容

清单2. 默认ServiceConfiguration.cscfg文件的内容

<?xml version="1.0"?>

xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">

1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="/>

<!--

value="http://blob.core.windows.net" />

value="http://queue.core.windows.net" />

value="http://table.core.windows.net" />

--&gt

下面是ServiceConfiguration.csfg文件中默认配置元素的定义:

·         Instances count是当你部署应用程序时,Cloud Fabric将要创建的应用程序实例数量。

·         AccountName是你分配给托管服务的存储帐户,对于DS它是devstoreaccount1

·         AccountSharedKeyHTTP请求消息中的加密元素,叫做请求签名,它不会发送给云,对DS它是一个公共常量。

·         BlobStorageEndpoint是一个公共URI常量,对于DS它是开发计算机的环回地址(localhost = 127.0.0.1)和TCP端口10000

·         QueueStorageEndpoint是一个公共URI常量,对于DS它是环回地址和TCP端口10001

·         TableStorageEndpoint是一个公共URI常量,对于DS它是环回地址和TCP端口10002

Azure Table服务

DevelopmentStorage.exe打开的窗口中,选择“工具”*Table服务属性”,选择一个SQL Server数据库名字,rundevstore.exe默认创建的数据库是ServiceHostingSDKSamples,本文将使用OakLeaf演示系统Azure Table服务示例项目的SampleWebCloudService数据库,如图4所示。

9915116_201006021239361.gif

 

4 选择SampleWebCloudService数据库

关系数据库管理系统(RDBMS)可以通过集群实现高可靠,提高运行RDBMS的服务器性能叫做向上扩展,通过数据复制实现更多的并发访问叫做向外扩展,但数据复制通常存在一致性问题,也就是关系数据库必须遵循的ACID原则。Google BigTable,亚马逊的SimpleDB数据库,都可以通过数据复制轻松实现向外扩展,但多个分区之间数据一致性会有一段延迟时间,在对一致性要求不严格的应用中,可以利用这种特性提高系统的并发负载能力。

5显示了在SQL Server Management Studio 2005Northwind数据库Customers表导入到Azure CustomerTable后的列(属性),PartitionKeyRowKey属性组成一个混合实体(对象)标识符,看作主键,新增或更新实体(行)时RDBMS更新Timestamp值,AzurePartitionKeyRowKeyString)和TimestampDate)的值看作元数据,所有表中都需要这些属性,元数据值不显示,包括NextRowKeyNextPartitionKey,应用程序用它们进行数据分页。9915116_201006021239511.jpg

 

5 Azure CustomerTable的列

Table支持HTTP GETPUTMERGEPOSTDELETE操作,使用GET方法从云存储返回一个Table的基础URIhttp://AccountName.table.core.windows.net/Tables(’TableName’),查询表达式返回过滤的实体集,如http://AccountName.table.core.windows.net/TableName$filter=QueryExpression)ADO.NET数据服务定义了查询表达式的语法,.NET客户端库(System.Data.Services.Client.dll)允许你使用LINQ标准查询操作符的子集产生包含查询表达式的URI,查询最多返回1000个实体,超过1000个实体的需要使用NextContainerKeyNextRowKey进行分页。

注意这里需要使用127.0.0.1:10002/devstoreaccount1替换AccountName.table.core.windows.net,因为我们还在DS上开发。

6显示了OakLeaf系统Azure Table服务示例项目在DF中显示的Web页面,显示了12CustomerTable实体和用户为新的BOGUS实体输入的数据。

9915116_201006021240031.jpg

 

6 运行在DFOakLeaf系统Azure Table服务示例项目的Default.aspx页面

Azure Blob服务

Blob存储二进制数据,如图像,XML文档,压缩文件和其它在容器内任意排列的字节,容器是用户定义的一套只有一个属性的Blob集,它包含一串Blob,容器不直接存储数据。

下面的GET URI从名叫ContainerName的容器中返回所有的Blobhttp://AccountName.blob.core.windows.net/ContainerName$comp=list。使用http://AccountName.blob.core.windows.net/ContainerName/BlobName读取或下载特定的Blob,包括元数据和用户定义的属性。

注意我们在DS中应使用127.0.0.1:10000/devstoreaccount1替换AccountName.blob.core.windows.net

PUT Blob操作中你可以上传最大64MB的数据创建一个Blob,通过上传连续块可以创建大于64MBBlob,块最大只能是4MB

7显示了OakLeaf系统Azure Blob服务Test Harness应用程序从Windows Live SkyDrive上传三个位图文件和四个位图压缩文件,从一个Web页面上传一个HTML文件后的默认页面,HTTP头,元数据和用户定义的属性值作为GridView控件的数据源。

9915116_201006021240151.jpg

 

7 运行在DFOakLeaf系统Azure Blob服务Test Harness应用程序的Default.aspx页面

其中“Upload Time”列是将Blob数据转换成文件流所用的时间(单位秒),“Create Time”是从文件流创建Blob所用的时间。

Azure Queue服务

Azure Queue中的消息尺寸最大为8KB,它有一个REST API,与Blob类似,下面的GET URI从账号名为AccountName的存储账号中返回所有的Queuehttp://AccountName.queue.core.windows.net$comp=list。使用http://AccountName.queue.core.windows.net/QueueName检索一条或多条消息。另外可以指定numofmessages参数检索2到最大32条消息。

DS中我们应该使用127.0.0.1:10001/devstoreaccount1替换AccountName.queue.core.windows.net

Put Message操作向Azure Queue中增加消息,通过http://AccountName.queue.core.windows.net/QueueName/messages URI调用POST方法,请求主体包括一个或多个类似下面这样的XML片段:

message-content

这里的message-content是一个可能是UTF-8编码的字符串,二进制内容必须是Base64编码的。

8显示了Photo Gallery Azure Queue服务Test Harness应用程序的默认页面,“Queue Name”是数字型的日期/时间,自动按照创建时间顺序进行降序排列,“Type”是message-contentMIME类型,“ETag”是用于支持乐观一致性的日期/时间代码。

9915116_201006021240261.jpg

 

8 运行在DFPhoto Gallery Azure Queue服务Test Harness应用程序的Default.aspx页面

 

 

fj.png图1.jpg

fj.png图2.jpg

fj.png图3.jpg

fj.png图4.gif

fj.png图5.jpg

fj.png图6.jpg

fj.png图7.jpg

fj.png图8.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9915116/viewspace-664226/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9915116/viewspace-664226/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值