jueves, 6 de diciembre de 2007

SOA para los de TI

Penultima entrega del serial. Esta vez ser aborda SOA desde el punto de vista de la gente de sistemas de la empresa en la que se va a implantar.

Volvamos un poco sobre las piezas que componen la arquitectura (o modelo de referencia) SOA. Si bien SOA no es un producto o una tecnología especifica si que el modelo de referencia que proponen algunos fabricantes (1) ya aterriza alguno de los conceptos propuestos por SOA sobre ciertas tecnologías y define como son las relaciones entre cada pieza.

Basado en servicios
A pesar de que iniciativas como los ERP tratan de solucionarlo, la tecnología dentro de una organización está típicamente dirigida a resolver los problemas del proyecto o segmento que los reclama. Esto produce redundancias. Los proyectos si que compartían funcionalidad, pero lo hacían a nivel de código o componente (sobre la zona marcada como ‘Sistemas de gestión empresarial’).
Una aproximación basada en servicios cambia la manera en que TI desarrolla y da soluciones. Las funcionalidades son compartidas ahora a un nivel más alto y por toda la empresa. Esto tiene grandes beneficios, aunque va a requerir un esfuerzo extra para controlar (BMP), monitorizar (BAM) y distribuir las funcionalidades en forma de servicios.
Toda esta coordinación entre funcionalidades tan heterogéneas requiere la intervención del llamado ESB (Enterprise Service Bus). El ESB es una solución de integración distribuida, basada en los mensajes y en estándares abiertos (2). Su función es proporcionar una comunicación fiable entre los distintos recursos tecnológicos tales como aplicaciones, plataformas y servicios, que están distribuidos en múltiples sistemas por toda la empresa. Este concepto, previo a la aparición de SOA, forma parte fundamental del paradigma pero no se debe pensar en SOA como sólo un ESB.
Otra de las piezas fundamentales si orientamos nuestra arquitectura a servicios es el poder descubrir los servicios (tanto internamente para reutilizarlos, como externamente para que los usuarios fuera de nuestra empresa puedan acceder a aquellos que deseemos publicar). Esto se realiza a través del uso de un directorio de servicios.

Uso de estándares
Normalmente cada proyecto elegía la tecnología que más le convenía para satisfacer los requerimientos. Recientemente la aparición de tecnologías como XML (mensajería y configuración), Servicios Web (construcción de los servicios) y UDDI (descubrimiento y directorio de servicios), han proporcionado los estándares sobre los que se puede empezar a construir soluciones tecnológicas que sigan el paradigma SOA.

Dialogo entre TI y negocio
En casi todas las empresas, los usuarios de negocio requieren docenas de aplicaciones para llevar a cabo sus actividades diarias. Esto es una consecuencia más del enfoque tradicional de TI de diseñar producto a producto las soluciones.
El propósito de SOA es proporcionar la funcionalidad al negocio al mismo nivel al que los usuarios de negocio lo conciben, haciendo más sencillo para ellos el entender, rediseñar, probar y operar los parámetros de negocio que se ponen a su disposición desde TI (3). Esto requiere una relación muy estrecha entre negocio y TI, más de lo que ya venía siendo con la implantación de ERPs y CRMs.
Para facilitar todo esto, los fabricantes de software están trabajando en herramientas que permite conectar los dos mundos: el de los requerimientos y las reglas de negocio, con el puro desarrollo de soluciones.


En este esquema propuesto por IBM (4) podemos observar como todo el proceso se entiende como un círculo virtuoso en el que las decisiones de negocio son recogidas por los desarrolladores, aplicadas y después de ser probadas pasan de nuevo a negocio para su optimización. Esto, que no es nada nuevo y que debería ser así incluso en proyectos tradicionales, tiene como novedad que está soportado por herramientas que interconectan a todos los participantes y que el objetivo de desarrollo es el servicio propuesto por el paradigma SOA.
____
  • (1) A más alto nivel los modelos propuestos por los diversos fabricantes son muy parecidos, en este caso utilizaremos el propuesto por BEA (BEA – SOA Domain Model) uno de los principales fabricantes de este tipo de soluciones.
  • (2) Se pueden encontrar muchas definiciones de ESB, en este caso recogemos la propuesta por Tibco, uno de los fabricantes tradicionales de este tipo de soluciones (http://www.tibco.com/international/spain/resources/es_esb_for_soa.pdf).
  • (3) Computerworld – SOAs helps build dialogue between IT, Business-users (SEP06)
  • (4) IBM Business Driven Development

No hay comentarios: