miércoles, octubre 10, 2012

Introducción a Tecnologías Microsoft para Sistemas Distribuidos y SOA Parte 1

 

Centralized-Decentralized-And-Distributed-System

En nuestras empresas es muy común tener una gran diversidad de sistemas los cuales se necesita conectar de alguna manera. Por ejemplo, es común hacer la inversión de un ERP, pero aun es necesario conectarlo con otros sistemas. Para eso podemos usar varios patrones de integración,  herramientas y arquitecturas como SOA y Service Bus.

Pero antes de hablar de patrones y arquitecturas seria útil conocer que tecnologías existen en la plataforma Microsoft que nos pueden ayudar en la integración de dichos sistemas, por lo que menciono algunas acá y espero mas adelante poder hablar un poco mas de cada una de ellas.

Windows Comunication Foundation (WCF) :

Fue introducido en el Framework 3.0. El objetivo fundamental era introducir un Framework que permitiera la construcción de aplicaciones distribuidas que unificara varias tecnologías, como: Web Services, MSMQ, Remoting y que fuera consistente con con una plataforma de comunicación orientada a servicios (SOA).

Esta plataforma abstrae los detalles de la comunicación (incluyendo el transporte, codificación, encripción y autenticación) de la lógica de implementación. Gracias a esta abstracción se puede modificar el comportamiento de un servicio a través de los cambios en un archivo de configuración, sin impactar la lógica existente o compilar código.

La construcción de Servicios Web en nuestros proyectos debería ser sustituida con la adopción de WCF de ahora en adelante ya que este controla la implementación de WS-*, transacciones distribuidas, seguridad y serialización en una forma manejable.

Los aspectos fundamentales de configuración de WCF se basan en lo que se denomina “El ABC de WCF”.

Address: Cuando un servicio WCF esta ejecutándose esta es la dirección destino donde se escucha para recibir peticiones. Esta locación es creada y monitoreada por el proceso hospedador que esta ejecutando el servicio de WCF. Típicamente este es IIS o un servicio Windows personalizado.

Binding: Representa como el servicio se comunica con los sistemas externos en términos de transporte, seguridad, protocolo y otras opciones. Dentro de los bindings se definen behaviors que gobiernan lo que sucede cuando la información es recibida. Esto puede involucrar como se serializa la información, como se encripta/desencripta esta, o realizar cualquier otra lógica necesaria cuando se recibe la información.

Contract: Este delimita el patrón de intercambio y específicamente que información va a intercambiar el servicio. Este lista las operaciones disponibles del servicio y el tipo de dato.

Usos Típicos:

Es el Framework de implementación a elegir para escenarios basados en servicios distribuidos (SOA) . Las soluciones basadas en WCF ofrecen flexibilidad completa en los patrones de comunicación usados en todos los servicios dado su enfoque basado en archivos de configuración. Este nos permite crear la misma implementación del servicio en diferentes escenarios como una aplicación cliente sin inscripción, dentro de la red con inscripción, sobre internet totalmente seguro, sin cambiar el código del servicio. Este es drásticamente diferente a los servicios ASMX tradiciones que dependen bastante de IIS o de una aplicación escrita para Remoting. Mientras que los servicios WCF se hospedan comúnmente dentro de IIS, esto no es un requerimiento.

Workflow Foundation (WF)

WF fue introducido al mismo tiempo que WCF, fue diseñado para permitir de una forma fácil la generación de aplicaciones basadas en Workflows dentro de Windows. Los Workflows son típicamente definidos por un flujo de tareas ejecutadas en forma secuencial. WF soporta el modelado de otros tipos de Workflows mas complicados como State Machine (antes de .Net 4.0) y Flowchart (.Net 4.0) . Los Workflows State Machine contienen un flujo de control basado en eventos, basándose en el estado del flujo permite mover el bloque de ejecución a otro y de vuelta nuevamente. El Workflow Flow Chart es usado para definir un flujo de proceso estático, no secuencial.

Anteriormente WF carecía de un entorno de hospedaje robusto y características impresionantes out-of-the-box, pero mejoro con la liberación del Framework 3.5 y 3.5 SP1 agregando nuevas características como Workflow Services que permiten exponer los Workflows como servicios WCF, correlación básica y persistencia. Pero aun faltaban características que permitieran tener un entorno de hospedaje escalable. Estas dudas acerca de la ventaja de utilizar WF se disiparon con la liberación del framework 4.0. y los cambios hechos al Windows Server que agrego mejoras al Windows Application Role para permitir el hospedaje escalable de WCF y WF.

Ventajas:

Resolución de problemas Designer-based: El diseñador dentro de Visual Studio provee una plataforma común para el desarrollo de Workflows, lo que permite que cualquiera que conozca WF pueda leer y entender cualquier proceso de Worfklow, como el modelo es grafico la curva de aprendizaje es mas fácil según se van haciendo tareas mas complejas.

Mecanismo consistente para la resolución de problemas: Una vez que un Workflow especifico o una custom activity es escrita, puede ser reutilizada si la implementación es la misma. Lo que diferencia esto de una solución personalizada es que el desarrollador no necesita saber mucho acerca de la solución para entender su uso en el Workflow ya que es un modelo UI-based.

Apoyo en el Framework: Usando las activities proporcionadas se minimiza la cantidad de código personalizado, reduce el tiempo de desarrollo y pruebas.

Workflow Services: Los workflows pueden ser expuestos como servicios WCF. Esto combina el poder y flexibilidad de WCF con las características de WF.

Usos Típicos:

WF provee los fundamentos para crear procesos basados en Workflows usando un esquema model-driven a través de una rica experiencia del diseñador visual incluido en Visual Studio. Los procesos de los Workflows usualmente son procesos de duración larga que interactúan con diferentes sistemas internos y externos y algunas veces requieren la intervención de humanos para aprobar o rechazar pasos específicos en el proceso. Estos procesos se pueden crear con WF y hospedar en una aplicación .Net personalizada, Sharepoint o en una aplicación de consola simple. Esto abstrae la lógica principal del Workflow de la aplicación host. Un Workflow es una base o fundamento, otras aplicaciones pueden ser construidas sobre este reutilizando la funcionalidad este provee. Nuevas características agregadas al Windows Server permiten el hospedaje robusto de servicios de WF conocido como AppFabric.

un buen recurso para saber mas acerca de WF es este whitepaper:

http://www.davidchappell.com/TheWorkflowWay--Chappell.pdf

En las siguiente entregas hablaremos acerca de

Windows AppFabric, SSIS , SSB, Biztalk Server y Azure

Les dejo algunos recursos sobre SOA:

http://www.servicetechbooks.com

http://www.soaglossary.com

http://www.soaschool.com

http://www.servicetechmag.com

http://www.soapatterns.org

Hasta la próxima.

No hay comentarios.:

Publicar un comentario