云中应用服务平台的研究

更新时间:2023-10-06 02:41:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

云中应用服务平台的研究

软件项目名管理2班 常逸瑶

Windows Azure Platform AppFabric是微软云的基础架构服务。在云计算中存储数据与运行应用都重要,但是还需要一个基于云的基础架构服务,这个基础架构服务应该既可以被客户自有软件应用,又能被云服务应用。Windows Azure platform AppFabric就是这样一个基础架构服务。它是基于Web的开发服务,可以把现有应用和服务与云平台的连接和互操作变得更为简单,为本地应用和云中应用提供了分布式的基础架构服务,目前主要提供互联网服务总线(Service Bus)和访问控制(Access Control)服务.

Windows Server AppFabric。它与Windows Azure platform AppFbric在功能定位上非常类似,都属于中间件层次,只不过Windows Server AppFabric是针对Windows Server平台的。随着时间的推移,我们将看到两个AppFabric在功能上也有越来越多的相似性。还有一个要注意的地方是,虽然这里讲的两个AppFabric与前面提到的Fabric控制器在名称中都有Fabric,但是它们是完全不同的组成部分,没有直接联系。

在云上运行应用是云计算的一个重要服务,但这只是其中一个方面。Windows Azure平台还能提供更多基于云的服务,这种服务能被传统的自有应用或云计算平台上的应用调用。这正是Windows Azure platform AppFabric服务的目标。在创建分布式应用时,通过Windows Azure platform AppFabric服务可以解决普遍存在的基础架构方面的问题。图1.11展示了其核心的组件:服务总线和访问控制服务。

图1. Windows Azure AppFabric的主要功能

<一>.服务总线(Service Bus)

1.1服务总线的定义

Service Bus for Windows Server 是一组可安装组件,用于在 Windows 上提供

Windows Azure Service Bus 的消息功能。使用 Service Bus for Windows Server 可以在自托管环境和开发人员计算机中构建、测试和运行松耦合的消息驱动应用程序。Service Bus 队列提供可靠的消息存储和检索以及协议和 API 选择。Service Bus 主题在与队列相同的基础之上构建,可以提供丰富的发布/订阅功能,从而允许多个同时执行操作的订户独立检索已发布消息流的筛选或未筛选视图。

1.2服务总线的作用

Windows Azure platform AppFabric的服务总线与传统SOA中的企业服务总线(ESB)在概念上有相似的地方,但是在范围和功能上是不一样的。这里的服务总线是专门针对互联网上的服务相互调用的而不仅限于企业内部。将传统的应用服务部署到互联网上比大多数人想象的要难得多,服务总线的目标就是使其变得简单化。无论是传统的自有应用还是云应用,都可以通过服务总线互相访问对方的Web服务。服务总线为每个服务端点分配一个固定的URI地址,从而帮助其他应用定位和访问。

另外,服务总线还可处理网络地址转换(NAT)和企业防火墙所带来的挑战。服务总线可以将企业内网的服务暴露给互联网。大多数企业都拥有自己的局域网,为了解决IP地址不足的问题,通常都设置了网络地址转换,因此每台服务器对外都没有一个确定的地址。同时,出于安全性考虑,防火墙往往都限制了大多数的端口。这就使得要在互联网上访问部署在内网的服务变得相当困难。 服务总线正是为了解决这一问题而产生的。服务总线作为一个中间人,用户的服务和使用服务的客户端全都作为服务总线的客户端与它进行交流。因为服务总线不存在网络地址转换的问题,所以用户的服务和服务客户端都很方便地能与它通信。在最简单的场合下,服务总线只需要用户的服务器暴露出站(Outbound)服务的80或443端口,也就是只需要用户的服务器能够以HTTP/HTTPS协议访问互联网,用户的服务就能连上服务总线。由于服务的访问是由用户服务端向服务总线发起出站网络连接的,因此它对防火墙的要求可以说是相当低的。 当用户的服务连接到服务总线以后,可以注册成为一个互联网的服务。尽管该服务是托管在内网中的,总线服务将会分配一个互联网上的URI地址。此时该服务已经和总线服务建立了连接,其他应用只需要访问这个URI地址,服务总线将会负责将请求转发给内网中的服务,并将该服务的应答转发给客户端。 从本质上讲,Windows Azure platform AppFabric提供了一个基于互联网的服务总线,帮助用户把不同的应用服务在互联网上高效地连接起来。熟悉企业应用架构的开发者和架构师应该能够更加灵活地使用总线功能,构建出面向服务的互联网应用。

<二>.访问控制服务(Access Control Service,ACS)

认证和授权是应用安全最为基础的两个方面。身份认证是许多分布式应用的基础,然后基于用户的身份信息,应用系统将决定该用户的操作权限。Windows Azure platform AppFabric中提供的访问控制服务为开发人员提供了一个在应用中使用的授权服务,开发人员可以使用这个访问控制服务来认证应用的用户而不需要自己编写代码来实现。访问控制服务不仅简化了利用已有的企业内部身份认证系统的方式,还使应用可以方便地使用Google、Windows Live、Yahoo和FaceBook等互联网上流行的身份认证系统。

经过几十年的演变,身份认证的解决方案更多的采用基于声明(Claim)的方式进行。基于声明的认证模型允许应用程序将认证与授权交给外部的服务来完成,外部的服务可以集中管理和维护身份信息,并提供更专业的身份管理控制服务。Windows Azure platform AppFabric中提供的访问控制服务就是一个基于声明的认证模型。利用基于声明的认证模型,开发人员可以通过访问控制服务完成多种方式的认证和授权。通过访问控制的配置,企业客户端可以通过活动目录联合服务器(ADFS v2)提供的登录凭据,完成访问控制服务的认证。这样基于访问控制服务的云端应用就可以接受这一认证,实现多种认证模式并存的方式。

<三>.分布式缓存

在金融危机的时候,有一句话很流行“现金为王”。在计算机领域,如果要提升性能同样有一个很流行的说法“缓存为王”。我们可以在不同的计算机层次中看到各种不同缓存技术的使用。在Windows Azure平台中,为了提升应用程序的性能,除了前面讲到的内容分发网络(CDN)外,Windows Azure platform AppFabric还提供了分布式缓存功能。该缓存服务为Windows Azure 应用程序提供了基于内存的分布式缓存功能,并提供访问缓存的API库,如图1.12所示。

图1.12 分布式缓存示意

该缓存服务在应用程序的每个角色实例上保存一份本地缓存。如果本地缓存没有所需要的数据,它会自动去访问缓存服务提供的共享缓存。如图1.12所示,缓存数据分散到多个实例上,每个实例保存不同的缓存数据。对应用程序而言这种缓存是透明的,也就是说,应用程序只管请求数据,AppFabric的缓存功能将会自动找到和返回数据。最近被访问的数据不会被自动缓存,应用程序需要通过API专门把数据添加到缓存中。对于运行在Windows Azure上的ASP.NET应用程序,可以通过配置的方式把会话数据保存到缓存服务中,这样可以不用修改任何代码就可以加快它的运行。

与Windows Azure AppFabric对等的本地Windows Server AppFabric(注:其最开始的开发项目代号是Velocity)也有缓存服务,其实两者非常相似。与Windows Server AppFabric不同的是,Windows Azure AppFabric Caching是一个服务,它不需要去专门配置管理服务器,它的服务会自动处理。同时缓存服务是多租户的,每个使用它的应用程序都有自己的实例。由于应用程序在实例上必须通过验证,因此其他的应用程序访问不到不属于自己的缓存数据。

Windows Azure AppFabric是Windows Azure 上的一个Application Server开发平台,Windows Azure Platform AppFabric是实作Windows Azure 上,可建构具有服务导向架构(Service-Oriented Architecture)之企业级应用程序的核心服务,让应用程序开发人员得以利用Windows Azure 实作出可支援云端或本地端应用程序显露出服务的服务总线(service bus),并且藉由访问控制功能(access control)来管制应用程序的存取权限。它提供Access Control 以及Service Bus 两种服务。可以使用AppFabric Service Bus服务总线AppFabric Access Control 构建分布式应用程序和联合应用程序,以及跨网络和组织边界运行的服务。从简单的事件方案到复杂的协议隧道,开发人员可以通AppFabric 服务总线灵活为自己的应用程序选择通信方式,还可以解决由防火墙、NAT、动态 IP 和分散标识系统造成的难题。AppFabric Access Control 为联合各种标识提供程序的REST式Web 服务启用简单而安全的授权。下面分别对Service Bus和Access Control进行介绍.

<四> .结语

AppFabric Service Bus 服务总线帮助开发者提供松散耦合的服务和应用程序的安全连接,使它们能使用多种通信方式通过防火墙和网络边界。在服务总线上注册的服务能很容易通过各种网络拓扑被发现和访问。

本文来源:https://www.bwwdw.com/article/v6pd.html

Top