Habiendo adquirido los conocimientos iniciales en aplicaciones CloudService para Windows Azure, nos centramos en el desarrollo del prototipo para adaptar el motor de generación por plantillas de Radarc a la nube, intentando optimizar su tiempo de generación.
Nada más empezar, nos encontramos con el primer problema. El motor de generación por plantillas que usa el subsistema de generación de Radarc sólo se puede ejecutar bajo el entorno de Visual Studio, por lo que en Azure no podríamos utilizarlo, ya que Visual Studio no se encuentra en la nube. La solución la encontramos en Visual Studio 2010, que incorpora una herramienta denominada "Precompiled Text Template" que nos sirvió para sustituir el motor de generación por plantillas y las plantillas de Radarc por clases generadoras de código que representen a dichas plantillas.
Diseñamos, inicialmente, la estructura de nuestro proyecto. La primera parte consta de un cliente que envía el modelo en xml y que luego recibe el resultado (las clases generadas). La segunda parte, el programa que se aloja en Azure, es un WebRole que recibe el modelo del cliente, lo adecúa para tratarlo, y lo envía al WorkerRole para que éste mediante las librerías del motor de generación por plantillas genere los assets correspondientes.
Creamos un proyecto CloudService, con un WebRole y un WorkerRole. Desde el WebRole llamamos a los métodos del WorkerRole como en un programa normal de escritorio. Creíamos que sería sencillo la comunicación entre los roles de la aplicación en Azure, pero ya en la ejecución local del programa vimos que no podía hacerse de esa manera. Por lo tanto, dedicamos el tiempo a buscar algún otro ejemplo un poco más complejo, que tuviera un WebRole y un WorkerRole, dandonos cuenta de que la comunicación entre ellos por lo general se realizaba con Blobs, Queues y Tables.
Visto los ejemplos, nos pusimos manos a la obra para adaptar el programa que ya teníamos a la comunicación mediante el Cloud Storage de Azure.
No hay comentarios:
Publicar un comentario