您的位置:知识库 » .NET技术

云平台的简短介绍

作者: Abbott zhao  来源: 博客园  发布时间: 2009-03-13 23:44  阅读: 13118 次  推荐: 0   原文链接   [收藏]  
[1] 什么是云平台
[2] 云平台的特点
[3] 从即时需要平台到云平台
[4] 云应用程序服务

从即时需要平台到云平台

顺着正在描述的即时需要平台,这个普通的模式正好也可以用来思考云平台。既然即时需要和云平台放在一块使用,那么,重要的是要理解二者是如何相互工作的。图3举例说明了这个新的境况。


图3:即时需要平台和云平台被认为是相似的方法,它们也可以被放在一起使用


正如图所示,云应用程序被构建在云功能上,正如一个即时需要应用程序被构建在即时需要功能上一样。两种类型的应用程序都可以访问由即时需要和云提供的应用程序服务和基础结构,正如即时需要平台支持今天的应用程序一样,云平台为我们明天想构建的应用程序提供服务。

考察云平台

理解云平台意味着着眼于它们的每个部分:云基础、云基础结构服务和云应用程序服务。本节娓娓道来这三个领域,使用今天比较明显的云平台技术作为例子。

我们开始之前,有一个重要的说明:通过相同的镜头,都有益于云平台和即时需要的,不进行区分。当平台功能转移到云时,它们有时的变化是很深远的。例如,即时需要平台被设计来支持(至多)企业等级的应用程序。于此对比,放在云上的应用程序,潜在的运作可以是Internet级别的。当相同类型的平台功能在两个情况下都需要时,施加在云平台上这些功能提供达到这个高的可度量性的可能性,会用完全不同的方法。下来所述,期望搞清楚与即时需要世界里的不同。

云基础

像即时需要的姊妹,云基础提供应用程序需要的基础本地功能。这些可能包括下面的操作系统和本地化支持。然而,提供这些服务的云平台与我们已经使用的有何不同,正如本节展现的。

操作系统

从平台的角度看,操作系统提供了一批应用程序使用的基础接口。到目前为止,云里的操作系统,是众所周知的Amazon 的Elastic Compute Cloud(EC2)。EC2提供运行在虚拟机器(VM)里的客户明确的Linux实例。从技术角度看,更准确地说,EC2作为一个VM平台,而不是操作系统。尽管如此,一个开发者领会了操作系统接口,而且作为轻量级看待,这里会更有意义。

每个开发团队自由地使用这个VM支持的任何一种本地化支持---Amazon不关心的。例如,当另一组使用Rail上面的Ruby时,一个应用程序的创建者可以选择Java EE应用程序服务和MySQL。EC2客户甚至自由地创建许多Linux实例,然后,大量的分布式负载平行地穿插在它们之间,像科学程序那样。当EC2提供的服务是相当的基础时,也是非常概括,所以,可以被用在许多不同的方法中。

本地支持

在即时需要平台里(EC2里),一个开发者可以混合着搭配她认为合适的一部分功能。例如,选择使用Windows上的.NET框架,不强求使用特定的数据库。相似地,同构建在Java EE服务器上应用程序,使用.NET框架的即时需要应用程序访问下面的Windows操作系统是轻松的。

在今天的领导型的云基础里的本地支持不用这种方法工作。而是,一个云本地化支持技术通常包括它自己的存储,它隐藏了下面操作系统可能做的事情。一个开发者选择一个特定的本地化支持选择,必须接受它施予影响的限制。

当然,这些限制有更好的理由。除了使构建在云基础之上处理Internet规模加载的应用程序需要用一些方法来限制之外,使云计算更有吸引力的事情之一是,它的可度量性更具有潜力。通过使本地支持功能更专业化,在今天的云基础里的每一批本地化支持功能更关注支持一个特定类型的应用程序。

例如,Google的AppEngine为运行的Python Web应用程序提供本地化支持。随同标准的Python运行时一起,AppEngine也包括了一个带有自己的查询语言的分等级数据存储。提供本地化支持的云平台的另外一个例子是由Salesforce.com提供的Force.com。那么,相对于把普通的Web应用程序作为目标而言,Force.com瞄准的是创建面向数据的业务应用程序。朝着这个目的,提供了它自己的数据存储支持。而不是采用已存在的编程语言,这个平台的创建者发明了他们自己的语言,叫做Apex。

微软也为应用程序提供了云的本地化支持,是由它的CRM Live提供的一部分。基于前面提到的Dynamics CRM,这个技术的目标是面向数据的业务应用程序,更像Force.com。而且像Force.com和AppEngine二者,包括运行时应用程序支持和数据存储。微软也发表了它在这个领域的未来计划,将会拥支持标准的.NET开发语言和工具。目的是,微软说,允许应用程序和开发者技能在公司的即时需要基础和它的云基础之间方便转换。

云基础结构服务

无论是运行在即时需要上或者云里,一些应用程序不需要功能之外的任何事情。但,许多应用程序可以从分布式存储,公共识别和其它基础结构服务上收益。今天,我们习惯了占有被即时需要提供的服务,但,云服务也提供相似的服务。

正如图3所显示,云基础结构服务也可以被运行在即时需要基础上和云基础上的任何一个所访问。最初,大部分云基础结构服务的普通用户将是即时需要的,因为至今没有多少应用程序构建在云基础上。随着时间的推移,期望这个会发生改变,会越来越多的基于云的应用程序也会使用云基础结构服务。

存储

应用程序一般下会使用一些本地存储的类型,是因为存储是即时需要和云基础的一部分。这样的服务在即时需要的世界所显示的那样,云存储也是有好处的。从而,在云里提供存储服务,吸引大部分的应用程序,这样的期望也是合理的。

正如即时需要平台,云里的远程存储会流行起不同的类型。例如,Amazon的简单存储服务(S3)提供了基础的非结构化的远程存储。它暴露给开发者的模式是直接的:对象,正好可以和字节绑定,可以存储为块。应用程序可以创建、读取和删除对象和块。对象不能被刷新,但是—它们可以被整体代替。这是平台服务如何必须改变成支持Internet刻度的用法的另外一个例子,Amazon很直接关注的一些事情。这是简单而且被限制存储服务使可度量性更容易,而不是充满提供的所有特征。这个交换是明确的:应用程序开发者获取廉价的云里存储,而他们不需要做更多的工作,使它使用更有效果。

云存储的其他方法是支持更多的结构化数据。在微软的SQL Server数据服务(SSDS)里,例如,一个容器包括一个或更多的实体,它们的每一个保持一些数量的属性,如在图4中所示,一个应用程序用操作符(如,==,!=,<,>,AND, OR, 和NOT)可能发布了不包含在容器的数据的查询。

图4 在SQL Server 数据服务中,一个容器包含带有属性的实体

要重点注意,这不是一个关系数据库,查询语言也不是SQL。再一次,我们明白了,当它们移到云上时,应用程序平台技术是如何变化的。这简单的方法比关系数据库很容易使用起来 --- 不需要在前端定义一个结构 --- 也容易进行度量。

Amazon的 SimpleDB提供了云结构化存储价值的更多例证。SimpleDB组织信息的方法相似于SSDS --- 域(domain)、项(item)和值(value)--- 也提供了一个非SQL查询语言。类似于SSDS,没有前端结构定义需求,所以,这个方法提供了灵活而可度量的解决方法。

集成

遗留下来的任何一个应用程序,不能责怪它同伴中的任何一个?可连接的应用程序逐渐成为计算的主要成分,而且供应商也提供了过多的即时需要基础结构来处理它。这些范围包括从简单的技术,像消息队列,到十分复杂的集成服务。

当集成服务转移到云上时,技术的范围也在逐渐显现。例如,Amazon的简单队列服务(SQS,Simple Queue Service)提供正如它名称所表示那样:在云里,通过队列,使应用程序交换消息的一个直接的方法。如今,SQS再次证明了,在相似的即时需要被转换为云服务时,发生了什么。因为SQS通过多种队列复制消息,从一个队列中读取的应用程序不保证很清楚指定读取请求的所有队列找的消息的含义。SQS也不承诺是按顺序、极正确地传送。这些简化让Amazon使SQS更容易度量,但它们也意味着,开发者必须接受SQS异于即时需要队列技术的差异化。

BizTalk Service提供了另外一个基于云集成的例子。优于使用消息队列,BizTalk Service实现了一个云内的传播器服务,让应用程序通过防火墙通信。基于云的集成,如在不同组织里连接应用程序,通常需要穿透防火墙,所以,解决这个问题是重要的。BizTalk Service也提供了简单的工作流的支持,这个支持需伴随着一个方法来注册到它暴露的服务的应用程序,那么,让这些服务被任何其它权限允许的应用程序可以调用。

进而,期望看到更多的由云提供的集成服务。假设集成的重要性等同于即时需要服务,集成功能逐渐成为云基础结构的一部分,就不令人惊讶。

识别

无论一个应用程序是运行在即时需要或者云里,通常都需要知道一些有关它使用的事情。朝向这个结果,应用程序一般化需要,每个用户提供一个数字识别,一串描述用户的字节。基于这些字节包含的内容,它们是如何识别的,应用程序可以确定一些事情,如这个用户是谁,它们允许做什么。

今天的许多即时需要应用程序依赖即时结构服务,如,活动目录,可以提供这些识别信息。然而,当一个用户访问一个云应用程序时,或者一个即时需要应用程序访问一个云服务时,即时需要识别通常不需要使用。构建在云基础上的应用程序有如何呢?它从哪里获取识别信息?

云里的识别服务致力于解决这些问题。因为它提供了数字识别,可以用于人、即时需要应用程序和云应用程序,一个云识别服务可以被应用在不同的场景里。事实上,这种类型的识别服务的一个重要迹象是,在今天,大量的云识别是可用的。比如,当使用Google AppEngine请求一个Google账户时,访问Amazon云服务(如,EC2或者S3)需要提交一个Amazon定义的识别。微软提供了 Windows Live ID,可以用于微软应用程序及其它,同时,BizTalk Service也提供了他自己的识别服务,可以与其他人联合。开发者不需要完全的自主 --- 云平台也经常特定的识别提供者 – 但作为一个云服务的识别需要是清晰的。

0
0

.NET技术热门文章

    .NET技术最新文章

      最新新闻

        热门新闻