云计算浅谈之三:微软云计算服务介绍

     任何技术的发展都是渐进的,不会凭空产生一个新的巨变,包括云计算。这对于程序员们是一个好消息,因为根据我使用微软云计算的经验,对于一个有经验的.net程序员来讲,感谢微软的开发环境及充分考虑了程序员需求的服务设计,我们所需改变不大。

     本讲介绍四点内容

  • Windows Azure 
  • Sql Azure
  • AppFabric
  • Windows lives

 

  1.Windows Azure 

  Windows azure是微软的云计算操作系统,属于平台层服务。对于一个操作系统来讲,肯定要包括三个基本服务:计算,存储和管理。

  • 计算

  Windows azure 提供基于64位windows 2008 server托管服务,平台安装IIS7,用于部署你的web服务。这里你可以简单理解它为一个虚拟主机。Windows azure支持系统虚拟化技术Hyper-v,因此可以根据用户的要求动态扩展或伸缩服务。比如发布系统时,你可以通过webRole的属性窗口来修改配置文件,选择虚拟机的大小。

  • 存储

  Windows azure支持三类存储:

    • Blob
      存放视频,图像,音乐等二进制数据,每一个Blob最大50GB。
    • Queue
      用来存放消息最大8KB,在不同应用,不同运行实例间异步通信通道
    • Table
      存放结构性数据,比如你可以创建Table,包含多条记录Entity,每个记录有很多列Property。并通过LinQ查询。

  在你的应用中如果需要使用这些存储,需要开发环境中安装Windows azure sdk(如果你使用的是VS2010就不需要了),Project中需要添加对Microsoft.WindowsAzure.ServiceRuntime,Microsoft.WindowsAzure.StorageClient,

Microsoft.WindowsAzure.Diagnostics程序集的引用。SDK可以从微软网站http://www.microsoft.com/windowsazure/下载;初学者最好还是多看例子,你可以下载微软的Windows Azure Platform Training Kit http://www.microsoft.com/downloads/en/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&displaylang=en,这里有很多好的例子,我就不多讲了。我们之前的一个项目mindv在早期没有选择云计算平台,使用的是文件服务系统。不过我们预先考虑到要移植到云计算平台之上,所以将涉及读写文件部分都集中到业务层的FileProcess类中,后期决定移植到云计算平台上,只是将这个类替换掉,所需工作非常小。

  • 管理

  管理服务为Windows azure云计算服务提供自动化基础架构和服务管理功能:自动启动虚拟机并部署服务到其中;根据用户定义,配置Switch,访问Routers,负载平衡;维护服务的正常运行;无间断,无干扰现有服务的同时升级服务;支持自定义日志和服务使用情况监测。

  例如:下图为Windows azure Host server管理界面,在这里你可以发布,升级,暂停,配置,删除你的Web应用。

  2.Sql Azure

  Windows Sql azure是微软应开发人员的强烈要求增加的服务,属于平台服务层。

  • 关系数据存贮

  对于我们开发人员来讲,我们可以认为Sql azure就是Sql server的一个子集。比如它支持传统意义上的Table,Index,views,Stored procedure,

triggers。但不支持:分布式查询, 分布式事务处理,不能使用TSQL查询修改物理资源比如:文件组的引用,SQL Server 2008的Resource Governor。

比如我在移植Sql server脚本时,就做了如下处理:

a.创建索引不能引用文件组:

CREATE NONCLUSTERED INDEX [IX_SendLogSubscribe] ON [dbo].[LetterSendLog]
(
 [SubscribeGuid] ASC

--ON [PRIMARY] ---注视掉
GO

b.存储过程中如果有参数或变量:
--@ErrorMessage nvarchar(max)  ---注视掉
@ErrorMessage ntext --替换为

c.存储过程不能在编译时加密

   基本上我们的数据库脚本做以上几类修改,就可以在Sql azure上通过编译了。如此简单,这一点怕是让很多开发人员大感意外了,没有想到微软云计算如此之为开发人员着想。太让人感动了!!

  最后可能朋友还要问如何连接数据库,这不用担心,在数据库管理界面可以生成数据库连接字符串,你只需修改连接密码,其他同使用任何一个Sql server数据库没有区别,以下是连接字符串样式:

Server=tcp:xxxxxxxxx.database.windows.net;Database=xxxxx;User ID=xxxx@xxxxxx;Password=xxxxx;Trusted_Connection=False;Encrypt=True;

  • 数据同步

  微软的Microsoft Sync Framework可以将数据在不同的位置间(企业,合作者,消费者设备)同步。开发人员就可以使用Sql server 2008的导入导出功能进行数据备份或发布。

  • 管理

  作为一个云计算平台层服务,还有计量,计价,负载平衡,故障转移和安全的功能。

  • 数据访问

  客户端的访问Sql azure支持Ado.net,Entity framework,Ado.net data service,ODBC,JDBC,Linq clients。

  3.AppFabric
  AppFabric为中间件服务层,提供了分布式系统间连接性和消息传递的功能
  • Access control(访问控制)
    是一个抽象了的验证授权流程的云计算服务,用户可以定义基本规则,授权角色的访问。从而为多个系统提供统一的访问控制。
  • Service Bus(企业服务总线)
    AppFabric较企业服务总线范围更广,因为它已经是互联网范围,跨企业,跨云。Service bus为分布系统间提供消息交换,模式有:
    • 发布/订阅
    • 点对点
    • 消息队列
  4.Windows lives
  按照第一讲中,云计算服务分四层,微软提供的云计算服务除了平台层,中间层外,还有企业服务层(share point, dynamic crm)和消费层服务windows lives.
企业服务层(share point, dynamic crm)以后有机会再讲。这里讲一下平时少人注意的windows lives服务,包括如下多个服务:
  •  Mesh服务  Mesh服务目前是一个免费的服务,只需你有一个windows live id。Mesh有一个客户端软件,安装后可以添加设备到Mesh,并在Mesh中的设备间同步数据。Mesh有5GB的免费存储空间,用来存放设备要同步的数据。开发人员可利用Live Mesh迅速构建一些应用,以加强设备间的文件共享与同步功能。未来你在办公司修改一个文件,保存到Mesh;回到家中打开家中电脑可以继续修改;如果在旅途,打开手持设备,仍然可以修改同一个文件。这个文件可以是你开发应用的特定文件。我个人觉得利用Mesh服务的功能可以开发出非常多的小应用出来。
  • 目录服务  主要是存放Mesh中设备间的关系。
  • 存储服务  登陆你的hotmail,就可以使用Sky drive,那里有25GB的免费存储空间,主要用来存放office文档,照片。这些文档可以选择共享或私有。只可惜微软不可能提供Sky Drive的SDK,要不然,很多程序就可以使用这25GB的免费空间了。
  • 标示服务  也就是Windows live id 服务,或者再早以前的passport服务。一个网站可以将用户登录验证的工作交给windows live id服务,以便用户可以快速登陆你的网站,而不用重新注册一个新的ID,记忆一个新的password。而这会给用户非常好的体验。如图中,用户注册时,可以不用创建新的login id,而是直接使用现有windows live id,注册,以后登录时,会由hotmail验证,然后网站允许你登录。

  当然网站就必须调用windows live id服务,为此需要在https://live.azure.com/Cloud/Provisioning/New.aspx?OfferID=585ba985-1472-4732-a52c-f050e0505b9f这个网站申请application id。并且开发一个页面liveAuthHandler.aspx ,来接收并处理Windows live id服务验证完用户的响应。

Application ID: 00000000xxxxxxxx
Domain(s): xxxxx.com 
Return URL: http://xxxx.com/liveAuthHandler.aspx
Secret Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

  • 通信  也就是Windows Live Messenger了,我相信很多人都在用。
  • 搜索  使用Bing搜索服务你可以在你的程序中集成下列功能:
    • 从Internet上获取有用的信息
    • 在你的应用程序中添加广告内容
    • 提高和增强搜索功能
    • 查找特定位置信息
    • 翻译条款和文本块

  如果你的应用中希望使用Bing搜索服务,可以在http://cn.bing.com/developers 申请AppID,并获得一切所需资料。在我们的mindv项目中就使用了bing搜索服务,为用户查找图片并嵌入思维导图中。

   本讲给大家介绍了微软的云计算服务,我想说的是,应用云计算服务对于一个.net程序员来讲学习的成本非常小,如果你没有被云计算的概念炒晕,吓怕,其实就那点东西,都是我们可以轻松驾驭的。祝愿大家轻松上路!
  下一讲介绍云计算的一个实例mindv。
  云计算实例思维导图工具Mindv演示,了解更多内容访问http://www.mindv2.com/(中国),http://www.mindv.com/(国际)

 Mindv支持发布功能:

原文地址:https://www.cnblogs.com/xianzhong/p/windowazure.html