Posts etiquetados ‘worker’

Buenas lectores y lectoras, continuando con el tema de Windows Azure pasamos al siguiente tema, los Roles en Windows Azure. Este es un tema meramente para desarrolladores/as de software, por lo que es un aspecto para que lo tomen en cuenta.

¿Roles?

En Windows Azure existen 3 roles para el desarrollo de aplicaciones: Web Role, Worker Role y Virtual Machine Role. Vamos a dar principal importancia a los primeros dos.

Web Role

Un Web Role es un role de Windows Azure donde se implementan las aplicaciones web, sitios web o servicios web. Son las aplicaciones con las cuales interactúa un usuario directamente.

Un Web Role puede ser una aplicación de ASP.NET, ASP.NET MVC, Windows Comunication Foundation, etc. También puede ser un sitio web desarrollado en Node.js, Java, PHP y otros (en el siguiente post hablaré un poco sobre esta interoperabilidad con estas plataformas).

Visual Studio 2010 nos brinda 3 plantillas para Web Roles cuando creamos un proyecto Cloud: ASP.NET, ASP.NET MVC3, MVC2, Silverlight Bussiness Aplication y WCF Service.

plantillas de roles

Los Web Roles cuentan con un archivo llamado WebRole.cs, el cuál Tiene la configuración de las acciones del servicio, como los métodos OnStart, OnStop, y más que se ejecutan automáticamente cuando se levanta el rol.

Worker Role

Un Worker Role es un rol de Windows Azure que se ejecuta en background, muy parecido a los servicios del sistema operativo (hilos de procesamiento). Estos roles se ejecutan durante el tiempo que defina el usuario, pudiendo ser “infinitos” (hasta que sean eliminados). Estos sólo pueden ser desarrollados en .NET.

Visual Studio también nos brinda una plantilla para crear Worker Roles.

Un Worker Role puede ser accesado desde dentro de la Nube, como fuera de esta, mediante HTTP, HTTPS y TCP (Este solamente para los puntos de entrada internos).

Virtual Machine Role

Un Virtual Machine Role es un rol de Windows Azure que permite la ejecución de una instancia de Windows Server 2008 R2 personalizada para facilitar las pruebas y la movida de aplicaciones a entornos en la nube

Código, código

Bueno, luego de esta explicación teórica vamos a un pequeño ejemplo

Creamos un proyecto Cloud en Visual Studio 2010 (si no tienes esta opción probablemente no cuentes con el SDK, lo puedes descargar de http://www.windowsazure.com/es-es/develop/net/). Lo nombramos “DemoRoles”.

Agregamos un Web Role y un Worker Role

El solution explorer se verá de la siguiente manera

explorador de la solución del proyecto

En el Web Role, modificamos el HTML de la página Default.aspx de la siguiente manera


<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="WebRole1._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>
       Roles en Windows Azure
    </h2>
    <p>
        Esto es un Web Role
    </p>
    <p>
        Gracias por leer!
    </p>
</asp:Content>

Ahora, vamos a la clase WorkerRole.cs y modificamos el método Run() de la siguiente manera

public override void Run()
        {
            // Implementacion del método Run
            int numIteraciones = 1;
            string mensaje = "Vamos por la iteracion {0}";
            Trace.WriteLine("$projectname$ entry point called", "Information");
            while (true)
            {
                Thread.Sleep(10000);
                Trace.WriteLine(string.Format(mensaje,numIteraciones), "Information");
                numIteraciones++;
            }
        }

Cuando ejecutamos la aplicación podemos ver el Web Role desde nuestro navegador y el Worker Role desde el emulador Compute.

Web Role

demostración del web role

Worker Role

ejemplo del worker role

Bueno, hasta aquí por esta ocasión, espero que les haya gustado este primer acercamiento con código fuente y esta aplicación en la Nube. Cualquier duda, comentario o queja la puedes dejar al final. Gracias!

Jimmy Campos Blanco. Costa Rica.

PD: Para finalizar, cómo siempre, una recomendación musical, AC/DC y un gran éxito “It’s a long way to the top”.