domingo, 18 de mayo de 2014

Introducción al Worker Role

Un Worker Role es un proceso que corre en segundo plano. Sería el equivalente a un servicio de Windows en la plataforma Windows Azure.
Un worker role se puede comunicar con los servicios de almacenamiento y de colas de Windows Azure, incluso puede comunicarse directamente con otros roles.

Cómo crear un Worker Role

Al crear un nuevo proyecto aparecerá un asistente que permite añadir roles al proyecto de Windows Azure. Pueden añadirse tantos roles de tipo ASP.NET Worker Role o Worker Role como necesite la aplicación a desarrollar, tal y como se puede ver en la siguiente figura.

Figura 1.- Crear nuevo proyecto
Una vez creado el proyecto, podremos ver el código fuente generado y ver el comportamiento básico es un Worker Role. Dentro del bucle while se incluiría la lógica necesaria para realizar las tareas que se requieran realizar de forma periódica.
 public override void Run()
  {
  // This is a sample worker implementation. 
  //Replace with your logic. 
  Trace.WriteLine("WorkerRole1 entry point called", "Information");
  while (true)
   {
    Thread.Sleep(10000);
    Trace.WriteLine("Working", "Information");
   }
  }

Endpoints de un Worker Role

Los worker roles, a diferencia de los web roles, permiten tener tantos "endpoints" como necesite y atender peticiones entrantes y salientes tanto en el protocolo HTTP, HTTPS como TCP/IP.
En la configuración del rol se pueden establecer los protocolos y puertos dónde el rol podrá atender peticiones, indicando también el tipo de endpoint; de entrada o interno.
Un endpoint de tipo "entrada" permite recibir peticiones desde clientes que están fuera de Windows Azure, mientras que los endpoints internos sólo pueden emplearse para comunicaciones dentro de Windows Azure. Este segundo caso se utiliza típicamente para poder comunicar roles entre sí.

Figura 2.- Configuración Worker Role

No hay comentarios.: