WACEL – Windows Azure Cache Extension Library
Windows Azure Cache Extension Library o WACEL es una librería que implementa diferentes estructuras de datos que se guardan en la nube y pueden ser compartidos entre los Servicios en la Nube, Web Sites o Aplicaciones de la Tienda de Windows 8.
Esto suena muy bien, pero ¿Qué es exatamente?
WACEL implementa estructuras de datos de alto nivel que pueden ser compartidas entre tus aplicaciones y servicios. La manera en la que se utilizan esas estructuras en como si fueran locales, es decir, almacenadas en la memoria local, pero están sincronizadas en la nube.
Las estructuras que WACEL ofrece actualmente son, arrays, table,s circulas buffers y cubos OLAP. Todas estas estructuras están almacenadas en Windows Azure Cache, Windows Azure Table Storage o en algunos casos en los dos sitios en base a tus necesidades de rendimiento y persistencia.
En resumen:
- Estructuras comunes como Arrays, Circulas Buffers, Queue, Dictionaries y Multi-dimensional Cubes. Nuevas estructuras se agregaran en el futuro en las siguientes releases.
- Un modelo de programación muy fácil. Puedes usar estas estructuras como si fueran locales sin necesidad de hacer nada especial. WACEL tiene en cuenta diferentes cosas por ti como:
- Cachea automáticamente todos los datos de para un mayor rendimiento.
- Tiene un soporte integrado de manejo de errores.
- Soporta trabajo en batch y compresión automática para una mejor salida de datos.
- Diseño sin estado para soportar alta escalabilidad.
- Puedes balancear entre rendimiento y alta disponibilidad.
- Obtener la librería de Nuget
- Configurar la conexión con los servicios de Azure como Windows Azure Cache o Windows Azure Storage.
- Especificar las estructuras y empezar a trabajar con ellas de manera natural.
Como compartir un Array en la nube.
1: //allowcate a large array on a Windows Azure Cache
2: cluster
3: CachedArray<int> array = new
4: CachedArray<int>("my_array", long.MaxValue);
5: //operate array as if it was a local array
6: array[12345] = 200;
7: Console.WriteLine("Array member: " + array[12345]);
Así es como se crea un Cubo multidimensional para escenarios comunes de BI:
1: //create a Cube with a Time dimension and a Value dimension
2: Cube cube = Cube.GetSimpleCube("UseDevelopmentStorage=true");
3: //Add two more dimensions. The WebSite dimension is a free dimension, which allows
4: //you to use any strings as members without expliciting defining them.
5: cube.AddDimension(Dimension.CreateFreeDimension("WebSite"));
6: cube.AddDimension(Dimension.CreateFlatDimension("StatusCode",
7: new string[] { "200", "404", "500" }));
8: //Update the cube
9: cube.Update(new { Time = DateTime.Now, WebSite =
10: "blog.haishibai.com", StatusCode = "200", Value = 200.0 });
11: //Query back monthly summary data
12: var monthlySummary = cube.Query(new { Time = "Nov", WebSite =
13: "blog.haishibai.com", StatusCode = "200" });
14: Console.WriteLine("Monthly average: " +
15: monthlySummary.Average);
16: //Drill-down from the month to daily details
17: var days = cube.Drilldown(monthlySummary, "Time");
18: foreach (var day in days)
19: Console.WriteLine(day.Coordinates[1].Name + " = " + day.Value);
Proyecto de CodePlex: https://wacel.codeplex.com/
NuGet: https://www.nuget.org/packages/WACEL/
Si tienes alguna duda o feedback, por favor ponte en contacto conmigo.
Luis Guerrero.
Technical Evangelist Windows Azure.