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.
Mientras 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:
- 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:
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 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.
0 comments on “NServiceBus en entornos distribuidos”