NServiceBus en entornos distribuidos

Después de un largo proceso de evolución desde su surgimiento, las aplicaciones distribuidas de hoy necesitan basarse en los principios de la mensajería asincrónica para tener éxito.  Durante todo este tiempo hemos aprendido que no todo tiene que ser “al momento”. Desde hace años se vienen implementando diferentes soluciones basadas en procesamiento a través de colas (como MSMQ de Microsoft), lo que permite establecer una variedad de entorno y soluciones altamente escalables.

NServiceBus3Mientras se podría intentar construir una infraestructura propia de este tipo partiendo de los principios fundamentales y aplicando soluciones basadas en la práctica diaria, es mucho mejor apoyarse en la experiencia de expertos de este campo. NServiceBus es una infraestructura que brinda una eficiente  API de mensajería asincrónica y mucho más.

Para trabajar con NServiceBus utilizaremos Visual Studio como herramienta de desarrollo complementada por los correspondientes paquetes de NuGet.

Aunque pudiese parecer algo complicado, todo lo que necesitamos para construir una solución de este tipo crearemos:

  • Un mensaje: esta será la unidad primaria de información. Es el elemento que “recorrerá” la infraestructura que se desarrolle. Este mensaje puede ser una solicitud de creación de un usuario, como por ejemplo:NServiceBus2
  • Un Extremo de Servicio (Service EndPoint): Es una clase con código programada para interpretar el contenido del mensaje.
  • Un Manejador de mensajes (Message Handler): Este código estará dentro del Extremo de Servicio (Service EndPoint) y es el encargado de procesar el mensaje recibido. Basados en la definción del mensaje anterior, un Punto de servicio con un Manejador de mensajes podría ser similar a este ejemplo:

NServiceBus

El entorno de ejecución de este tipo de soluciones son Servicios hospedados (Hosted Services) bajo plataformas de cualquier tipo, lo que lo hace muy útil en entornos distribuidos utilizando la infraestructura de Windows Azure. Sí, una vez más la Nube está presente en nuestro camino. Y bienvenida sea!

A partir de estos principios será posible construir diversas soluciones de integración con las particularidades y operativa definidas en el negocio al que se aplique. Existen patrones avanzados que permiten la persistencia de los datos, la ejecución prolongada de procesos sin perder calidad y consistencia de la información.

También es una plataforma que ofrece la posibilidad de extender sus funcionalidades y que poder ser utilizada desde diferentes tipos de aplicaciones como aplicaciones web MVC, Aplicaciones Windows o Aplicaciones móviles,

NServiceBus se presenta como una alternativa muy eficiente para entornos distribuidos en los cuales no es aconsejable la utilización de otras plataformas más completas como Microsoft BizTalk Server.

Sogeti puede ayudarle con esta y otras tecnologías Microsoft. Si quiere saber cómo, visite nuestra web.

Ernesto TellezErnesto Téllez Acosta ha desempeñado su carrera durante 25  años como desarrollador, consultor y arquitecto de soluciones de Software, especializándose en los últimos 18 años en tecnologías Microsoft. Desde 2008 trabaja en Sogeti como Arquitecto de Soluciones Microsoft, aportando su experiencia en diferentes entornos de trabajo y colaborando activamente en las consultorías y procesos de pre-venta.

Autor: ITblogsogeti

Sogeti es una compañía tecnológica perteneciente al Grupo Capgemini y especialista en: Testing y Calidad de Software; Soluciones Microsoft y High Tech Consulting. En Sogeti entendemos la importancia de obtener el máximo valor empresarial de sus sistemas de IT, por ello somos líderes mundiales en Testing & QA.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s