Windows Azure AppFabric Caching

Windows Azure AppFabric Caching es un sistema de caché distribuida, en memoria, que se ofrece como un servicio en la nube.

Un servicio similar ya existía para soluciones on-premise, integrado dentro de Windows Server AppFabric. Ahora tenemos las mismas capacidades y características para aplicaciones que estén en la nube. Se ofrece como un servicio en la nube, por lo que como veremos nos vamos a tener que hacer nada relacionado con las tareas de instalación, configuración o administración…simplemente hacer uso del servicio.

Esta característica la tenemos disponible en los LABS de AppFabric, a los cuáles podemos acceder desde aquí: https://portal.appfabriclabs.com

Una vez que accedamos al portal, tendremos que crear un nuevo namespace, que como seguro que ya sabéis, debe ser único.

AppFabricCache

El namespace de AppFabric nos da acceso a las características de Service Bus, Access Control y Caché, que en este post es el que nos interesa.

AppFabricCache2

Si accedemos al servicio de Caché veremos una pantalla como la siguiente, dónde se encuentra toda la información que necesitamos para poder hacer uso de este servicio desde nuestras aplicaciones; URL de la caché, puerto, token de seguridad (podemos integrar la seguridad con Access Control) y la información que necesitamos tener para poder integrar la aplicación.

AppFabricCache3

En la sección de integración no da información muy interesante para poder hacer que nuestras aplicaciones hagan uso de este caché, para que prácticamente sea copiar ciertos valores en el fichero de configuración de la aplicación.

<configSections>

  <!-- Append below entry to configSections. Do not overwrite the full section. -->

  <section name="dataCacheClient" type="Microsoft.ApplicationServer.Caching.DataCacheClientSection, Microsoft.ApplicationServer.Caching.Core"

       allowLocation="true" allowDefinition="Everywhere"/>

</configSections>



<dataCacheClient deployment="Simple">

  <hosts>

    <host name="ibongeeks.cache.appfabriclabs.com" cachePort="22233" />

  </hosts>



  <securityProperties mode="Message">

    <messageSecurity 

     authorizationInfo="XXX”
    </messageSecurity>

  </securityProperties>

</dataCacheClient>



<!-- If session state needs to be saved in AppFabric Caching service add the following to web.config 
inside system.web -->

  <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">

    <providers>

        <add name="AppFabricCacheSessionStoreProvider"

             type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache"

             cacheName="default"

             useBlobMode="false" />

     </providers>

  </sessionState>



<!-- If output cache content needs to be saved in AppFabric Caching service add the following to 
web.config inside system.web -->

  <caching>

    <outputCache defaultProvider="DistributedCache">

        <providers>

          <add name="DistributedCache"

            type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache"

            cacheName="default" />

        </providers>

      </outputCache>

    </caching>

Por ejemplo, hacer que una aplicación haga uso de este sistema para que la información de Sesión de la aplicación se haga uso de esta caché será tan sencillo como hacer caso a la información de integración y hacer un “copy-paste” de la información que te dice que tienes que copiar en tu aplicación.

Bueno y un paso más…que es añadir las referencias Microsoft.ApplicationServer.Caching.Client, Microsoft.ApplicationServer.Caching.Core y Microsoft.Web.DistributedCache al proyecto y establecer la propiedad “Copy Local” a True, ya que por defecto estos ensamblados todavía no se encuentran en las máquinas virtuales de Windows Azure.

Estas referencias están en %ProgramFiles%Windows Azure AppFabric SDKV2.0AssembliesCache

Y para próximos post, dejamos ver en detalle cómo puede hacerse uso de esta caché desde nuestra aplicación para guardar la información que consideremos.

Ibon Landa

bon Landa lleva más de 15 años dedicado al desarrollo de software. Durante este tiempo ha trabajado en diferentes empresas en las cuáles ha podido trabajar en diferentes entornos y tecnologías. Actualmente está focalizado principalmente en tareas de desarrollo, arquitectura, en las herramientas del ciclo de vida y en todo lo relacionado con la plataforma de Cloud Computing Microsoft Azure, área en el que ha sido reconocido como MVP. Participa de forma activa en la comunidad, escribiendo su blog, manteniendo un portal sobre Microsoft Azure y colaborando con Microsoft y grupos de usuarios en eventos de formación, talleres y giras de producto.

2 comentarios en “Windows Azure AppFabric Caching”

  1. Hola Ibon,

    Sigo habitualmente tu blog y me he puesto a investigar más sobre la caché de Azure. Estoy haciendo un ejemplo de consola en el que meto en el App.config el texto que me pone en el portal de Azure tal y como indicas. Creo un constructor vacio:
    “DataCacheFactory cacheFactory = new DataCacheFactory();”

    Para que tenga que leer del archivo de configuración los parámetros, pero a la hora de compilar dice que no reconoce los tags de deployment=”Simple”

    ¿Sabes que puede ser? Gracias.

  2. Hola de nuevo,

    Me respondo yo mismo, lo único que había que hacer era desinstalar AppFabric Server del ordenador ya que no es compatible con la versión azure CTP.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *