Windows Azure AppFabric云中间件解析

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

▲图1. Windows Azure AppFabric的主要功能

  名词辨析:

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

  服务总线(Service Bus)

  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是一个服务,它不需要去专门配置管理服务器,它的服务会自动处理。同时缓存服务是多租户的,每个使用它的应用程序都有自己的实例。由于应用程序在实例上必须通过验证,因此其他的应用程序访问不到不属于自己的缓存数据。

时间: 2024-09-05 05:36:46

Windows Azure AppFabric云中间件解析的相关文章

Windows Azure AppFabric 入门教学系列 (五):初探Access Control Service

本文是Windows Azure AppFabric入门教学的第五篇文章.本文会对AppFabric中的Access Control Service(ACS)做初步的讲解.为了使后续的学习顺利进行请确保已浏览本教程的第一篇文章,并以按照该文完成了AppFabric项目和命名空间的创建.我们知道,AppFabirc由Service Bus 和 Access Control Service组成,在前一篇教程中我们已介绍过Service Bus,所以本文将简略的介绍如何使用ACS服务来确保安全性. 同

Windows Azure AppFabric 入门教学系列 (三):LABS环境

本文是Windows Azure AppFabric入门教学的第三篇文章.我们会介绍一下LABS环境. 微软AppFabric团队与2010年3月11日推出了AppFabric LABS环境.AppFabric团队会用其展示一些早期特性,并从社区获得反馈.用户无需为该环境的使用付费. AppFabric LABS 使得用户能够测试并使用实验性的AppFabric技术.对于那些激动人心的功能和特性,我们希望从用户那里尽快的获得反馈.LABS环境并没有SLA协议的支持,但您可以获得AppFabric

Windows Azure AppFabric 入门教学系列 (四):SWT 和OAuth WRAP介绍

本文是Windows Azure AppFabric入门教学的第四篇文章.我们知道AppFabric中的Access Control Service在验证授权过程中会使用到SWT 和OAuth WRAP,所以为了更好的了解ACS其内部原理,我们会在本教程中简单地介绍SWT 和OAuth WRAP协议. Simple Web Token (SWT) SWT简介: Simple Web Token (SWT)定义了传输简单声明的格式,其兼容性和格式能够轻易的被放入例如HTTP等协议的头部.一个简单的

Windows Azure AppFabric 入门教学系列 (二):一个简单的Service Bus例子

本文是Windows Azure AppFabric入门教学的第二篇文章,可以说是正式的开始学习AppFabric了.为了使后续的学习顺利进行请确保已浏览本教程的第一篇文章,并以按照该文完成了AppFabric项目和命名空间的创建.我们知道,AppFabirc由Service Bus 和 Access Control Service组成.本篇教学以一个简单的Echo程序来向大家简单的介绍一下Service Bus,让大家能有一个初步了解. 该程序演示了Client向Service发送消息,ser

Windows Azure AppFabric 入门教学系列 (六):Message Buffer之初体验

本文是Windows Azure AppFabric入门教学的第六篇文章.本文会介绍一下Service Bus中一个非常有用的特性-MessageBuffer.该特性类似于Queue Storage,作为一种小型的,临时的信息缓冲区,能够应用于多种场景.本例中,我们会简单的模拟一下订单系统:下单,查看订单,处理订单. 前置条件 为了使后续的教程能够顺利进行,请确保如下软件或组件已被安装: ·       Microsoft .NET Framework 3.5 SP1 ·       Micro

Windows Azure真实案例:Invensys Operations Management -公司使用Windows Azure AppFabric 实现动态节能的智能电网

Invensys Operations Management Invensys Operations Management 决定要使得美国的小型电力公司更简便的,以及花费更少资金来参与智能电网(美国政府支持的能源现代化方案).电力公司需要高性能的,低价的方式来向用户发布实时的电费数据,这能让用户最初更明智的消费决策. Invensys使用Service Bus 和Access Control Service (皆为Windows Azure平台的一部分)创建了一个智能电网通信平台.智能电网通信平

Windows Azure助力云+端 微软BizSpark大赛广州拉开帷幕

旨在为创业公司提供支持的微软 BizSpark 大赛5月 3 日在广州拉开帷幕,本次活动的主题是"云 + 端".BizSpark 大赛旨在通过提供软件.技术支持.市场以及融资渠道等资源,帮助从事软件开发和互联网服务的新创企业在早期发展阶段快速取得成功.今年 BizSpark 大赛提供激励措施也包括价值 6500 美元的年度权益. 近两年,"云"和"创业公司"这两个词越来越常出现在同一句话里.曼切斯特商学院今年采访千余位英美企业管理者后发布了一份关

《微软云计算Windows Azure开发与部署权威指南》——6.2 Azure平台AppFabric概述

6.2 Azure平台AppFabric概述 Windows Azure AppFabric是一套全面的云端中间件,服务于开发.部署和管理Windows Azure平台应用.它在Windows Azure开发模型上提供一套Paas(平台即服务)层面的服务,从而提高了开发效率.同时,它可以提供安全的通道来跨越网络和地理位置的界限,将已有的应用程序接入到云端.并且,它维持了Windows Azure和Windows Server上一致的开发模型. Windows Azure AppFabric通过在

云应用的开发被Windows Azure作为首要任务

根据大家一致的期望,在PDC10大会第一天上午的Keynote中,Windows Azure上云应用的开发过程很集中的被展示.这话题一直被广大开发人员所关注,云计算来了,接下来开发人员该怎么做?微软今天就这个问题进行了解答. 首先,在Windows Azure上的云应用开发,采用了开发模式是模块化的,是把大部分经常用到,但是比较繁琐复杂的应用模块固化在Azure平台上,可以更方便的让开发者们进行调用.这就像多年前Visual Basic的流行一样,当年VB的控件绝无仅有,今天,Azure上的模块