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


         任何技术的发展都是渐进的,不会凭空产生一个新的巨变,包括云计算。这对于程序员们是一个好消息,因为根据我使用微软云计算的经验,对于一个有经验的.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支持发布功能:

  • 相关阅读:
    eclipse测试链接sql server2008 数据库
    Java中的日期格式转化
    java.sql.SQLException: Field 'id' doesn't have a default value(用eclipse操作数据库时报了这种奇怪的错误)的原因与解决方法
    Java进程与线程的区别
    Java开发岗位面试题归类
    JavaScript 里,$ 代表什么?/JQuery是什么语言?/html中用link标签引入css时的中 rel="stylesheet"属性?/EL表达式是什么?
    (一)初识EasyTouch
    简单影子制作
    屏幕分辨率
    VuforiaAR 教程
  • 原文地址:https://www.cnblogs.com/xianzhong/p/windowazure.html
Copyright © 2020-2023  润新知