Compartir
Contenidos contratados por la marca que se menciona

AppFabric Cache

AppFabric Cache
Guardar
0 Comentarios
Publicidad
\"The \"Prueba \"Conviértete

El desarrollo en la Cloud de Microsoft es prácticamente igual que si estuviera haciendo una aplicación Web, pero hay ligeros matices que hay que tener muy en cuenta. Tengo las tres reglas del modelo de programación que exige la SLA de Azure y que comenté en un post anterior y que tiene particularidades a la que muchos programadores de asp.net no estamos muy acostumbrados.

Por ejemplo, lo normal es utilizar la memoria del IIS para almacenar las variables de sesión, y es sumamente sencillo el utilizarlas. Es más, lo ideal es encapsularlas en una propiedad, utilizando el patrón null object para tener perfectamente controlado su funcionamiento.

Pero cuando he desplegado en Azure mi Web Rol, la cosa no es tan sencilla ya que, recuerda, cualquiera de las instancias puede ser apagada en algún momento por el Fabric Controller. O que nos envíe al navegante a la instancia más conveniente. Por lo cual si tengo mi variable de sesión en la memoria de mi instancia, si el usuario fuera redirigido a otra, perdería su contenido.

Es evidente que este inconveniente lo voy a tener no solamente con la información que almaceno en la memoria de la instancia, sino que también lo tengo con todo aquello que almaceno en el storage local. Como por ejemplo, las hojas de estilo css o las librerías de javascript. Y por ello es importante tenerlo en cuenta al desarrollar aplicaciones que van a ser desplegadas en Windows Azure y que van a ser escaladas en varias instancias.

La Cache de AppFabric

Una de las formas que podríamos resolver el problema de nuestras variables de sesión sería almacenándola directamente en las cookies o en la base de datos. Pero para cualquier programador ambas soluciones son insatisfactorias; la primera tiene el gran inconveniente que los usuarios pueden bloquear el uso de las cookies, dejándonos sin estado; y el guardarlo en la base de datos o en el storage va a dar problemas de latencia que, además, crecerán según más escale la aplicación y los usuarios concurrentes.

Pensando en ello Microsoft Windows Azure ofrece el servicio de AppFabric Caché. Que, para mí como cliente, es una caché en memoria que es compartida con todas las instancias de la suscripción. Con ello me quito los problemas de latencia y no dependo de la configuración del navegador para poder mantener esa información que ha de ser persistida.

Entre las grandes facilidades que obtengo utilizando AppFabric Cache está el que me permite utilizar proveedores ASP.NET para la cache de las páginas servidas y el estado de sesión, sin tener que modificar el código de la aplicación, me permite cachear prácticamente cualquier objeto administrado y se integra fácilmente en las aplicaciones existentes.

Niveles de abstracción

Para utilizar la AppFabric Cache tengo dos niveles de abstracción. El primero es programando directamente contra el API, atacando a los WCF del servicio, lo cual me da el control total sobre qué, cuándo y cómo almaceno la información y la extraigo de esta memoria temporal. El segundo nivel está por encima y es utilizar el proveedor de estado de sesión de ASP.NET, el cual es el que se encarga de realizar el trabajo pesado de interactuar con las API del servicio de cache; sin tener que añadir ni una línea de código a la aplicación ya que trabajo con las variables de sesión como si estuviera con mi IIS.

Creo que por ahora tengo bastante para pasarme unas cuantas horillas practicando y aprendiendo.

Vía: MSDN Magazine

Publicidad

También te puede gustar

Ver más artículos