jueves, 13 de noviembre de 2008

Enterprise Architecture Training - Día 4

Llegamos a la ultima clase, en la que Mike nos habló acerca de SOA.


Tarde o temprano, debido a la inexperiencia, complejidad, o velocidad de crecimiento de las empresas, que complica la arquitectura de sistemas, la integración entre los distintos componentes de la arquitectura empresarial termina siendo un "spaghetti".



¿Porque SOA?
La implementación de SOA, trae, al menos, los siguientes beneficios:


  • Permite reducir el costo de mantenimiento y mejora de aplicaciones

  • Los servicios soportan una integración inteligente y reutilizable

  • SOA permite tener servicios y procesos ágiles en toda la empresa

  • Los servicios permiten un procesamiento consistente a través de la empresa

  • El desarrollo federado y la independencia tecnológica acerca IT al negocio

Un poco de historia


SOA no es algo nuevo, que haya aparecido con los servicios WEB. Desde hace años hay implementaciones exitosas, como CORBA o TUXEDO, de los mismos conceptos. Al mismo tiempo, muchas otras implementaciones fallaron. Pero lo bueno es que podemos aprender de los errores anteriores, y mejorarlas en una nueva implementación.


¿Que tiene de diferente esta nueva versión de SOA? Que esta acompañada no solo por un entorno de trabajo tecnológico, sino que también aporta metodologías y herramientas para dar soporte a este marco tecnológico, de una manera mucho mas simple de lo que era antes. Por otro lado, la aparición de los estándares WS y WS+, que permiten tener servicios bien definidos de una manera agnóstica de tecnología y estándar, catapulto a SOA a ocupar el lugar que hoy tiene. Por último, una gran diferencia que tiene esta nueva visión es que busca integrar al negocio con IT, por lo que se busca que los servicios tengan significado para el negocio.


Definición


El concepto de SOA esta relacionado con la construcción independiente de servicios que pueden combinarse de forma que formen procesos de negocio de valor, y un alto nivel, para la empresa. Describe distintos aspectos de los servicios dentro de la empresa:

  • La granularidad y tipos de servicios
  • Como se construyen los servicios
  • Como se comunican los servicios, desde un punto de vista técnico
  • Como se combinan los servicios
  • Como los servicios interoperan a un nivel semántico
  • Como los servicios contribuyen a la estrategia IT y del negocio

Que es un servicio

Es una forma de encapsular una unidad de trabajo, haciendola disponible a través de un contrato.

Estar caracterizado por:

  • Binding dinámico
  • Débil acoplamiento
  • Ser modular y autocontenido
  • Componible

Es administrable:

  • SLA
  • Ciclo de vida

Composición de servicios

El principal objetivo de SOA es permitir la creación de procesos de negocio de alto nivel, creados como composición de servicios de baja granularidad.

Requiere:

  • Servicios que tienen la capacidad inherente de ser componibles, y
  • Los mecanismos para realizar la composición

Los principales requerimientos, a nivel técnico, son:

  • BUS de comunicación de servicios
  • Interface del servicio expuesta por cada servicio
  • Composición de servicio

Tipos de servicios

Existen diferentes tipos de servicios, a saber:

  • Servicios de actividades. Estos servicios implementan una función de negocio. Pueden ser de diferente granularidad, dependiendo de las necesidades.
  • Servicios de entidad. Principalmente se encargan de dar acceso a los datos relacionados con entidades de negocio. Provee un alto porcentaje de reutilización.
  • Servicios de decisión. Servicios que ejecutan reglas de negocio para proveer decisiones de negocio.

En general, los servicios de actividades realizan tareas para entregar valor. Los servicios de entidad soportan los servicios de actividades adaptando y proveyendo la información necesaria para implementar la tarea.

SOA Top 10

Para cerrar esta entrada, les dejo una lista de los top 10 de SOA, según Mike.

  1. Los servicios son el concepto central de SOA
  2. Todo servicio esta definido por un contrato formal que separa la función y los datos de la implementación interna.
  3. Los servicios solo interactúan con otros servicios a través de interfaces públicas bien definidas.
  4. Los servicios son accesibles a través de tecnologías estandarizadas, funcionales sobre un amplio rango de tecnologías.
  5. Los servicios son definidos a un nivel de abstracción que se corresponde con funciones, actividades e información de negocio reconocibles.
  6. Las interfaces son muy significativas para el consumidor. Reflejan conceptos de negocio y no proyectan conceptos legacy o de aplicaciones existentes dentro del contrato.
  7. Los servicios son débilmente acoplados.
  8. Los servicios relacionados deben usar la misma semántica de información. Idealmente, usan el mismo XML para intercambiar información.
  9. Los servicios proveen tareas discretas e interfaces simples.
  10. Los servicios proveen metadata, disponible en un repositorio, que define sus contratos, capacidades y restricciones.

0 comentarios:

Publicar un comentario