SOA - Arquitectura Orientada a Servicios
En todo el mundo se habla de SOA... pero qué es? para que me sirve? cómo puedo adaptarme a SOA?
Estas son las preguntas que todos en algún momento nos hemos planteado al comenzar a conocer SOA, mi idea es en esta ocasión intentar aclarar un poco de que se trata todo ésto.
Si bien SOA resurgió con el auge de los Web Services, es una filosofía que existía anteriormente basada en corba y colas de mensajes. La arquitectura orientada a servicios, implica un conjunto de servicios interactuando entre ellos, que permiten construir aplicaciones de una manera rápida y cumpliendo siempre con los principios de la Orientación a Servicios.
Existen 4 elementos fundamentales en una arquitectura SOA, la operación, el servicio, el mensaje y el proceso de negocio. La más atómica de ellos es la operación, por ejemplo, verificar si un cliente tiene deuda, luego existe el servicio, el cual engloba un conjunto de operaciones que se ofrecen a los usuarios, por ejemplo crear un cliente que implique invocar operaciones como la verificación de deuda y el alta del cliente en una base de datos, luego tenemos el concepto de mensaje, los cuales son los encargados de encapsular y transportar los datos de entrada y salida de los servicios, y por último se encuentran los procesos de negocio, los cuales son un conjunto de operaciones ejecutadas en una determinada secuencia, intercambiando mensajes entre ellas, con el objetivo de realizar una determinada tarea.
Una aplicación SOA se definiría como un conjunto de operaciones de negocio, compuestas por muchos servicios que realizan operaciones, que son invocados en un determinado órden, y que intercambian mensajes entre ellos.
Una tecnología SOA tradicional es la que se basa en el uso de Web Services: ésto significa utilizar SOAP como lenguaje de intercambio, WSDL como lenguaje para la descripción de los servicios y UDDI para la publicación o registro de los mismos.
Los principios de una arquitectura SOA (si bien no son un standard) serían estos:
- Los servicios deben ser Reusables.
- Los servicios deben proporcionar un contrato formal (WSDL).
- Los servicios deben tener bajo acoplamiento. (deben ser lo más independientes unos de otros).
- Los servicios deben permitir la composición de servicios de más alto nivel.
- Los servicios deben ser autónomos, es decir tener su propio entorno de ejecución.
- Los servicios no deben mantener un estado.
- Los servicios deben poder ser descubiertos (UDDI).
martes, 26 de febrero de 2008
Suscribirse a:
Entradas (Atom)