El cambio de visión: desacoplamiento y reusabilidad

Para una visión pragmática de SOA vs. las arquitecturas tradicionales basta un ejemplo que compara las dos soluciones. Una aplicación de extracción de dinero es un proceso del negocio financiero.



En el ejemplo ilustrado se describen los procesos de extracción sobre dos operatorias: Cuentas Corrientes y Caja de Ahorros, y se explican sobre dos canales, realizados desde una sucursal y desde un cajero automático. En una arquitectura tradicional esto representaría cuatro programas, que realizan las mismas funciones.

Si la visión cambia al proceso, éstos son iguales y realizan pasos similares. Es factible entonces construir un código que tenga la particularidad de poseer interfases estándares que le permitan dialogar universalmente y construir servicios para ser usados por todas las aplicaciones del sistema.



Así, existe un servicio de canal que es solicitado para cualquier transacción con origen o destino en ese canal, y posteriormente actúan los servicios que permiten llevar adelante el proceso solicitado. Los requerimientos que SOA impone en el desarrollo de un servicio es que sea estandarizado, de tal forma que pueda ser usado por cualquier aplicación; no posea ni guarde estado de manera de ser ejecutado aisladamente; no posea bifurcaciones lógicas; y sea independiente de cualquier otra estructura, no generando relación alguna con algún otro servicio.

La flexibilidad de la arquitectura dada por el diseño permite:

  • Realizar modificaciones de las funcionalidades, sólo modificando el servicio que corresponda.

  • Generar nuevas funcionalidades, generando el nuevo servicio que lo realice.

  • Eliminar los acoplamientos por la independencia de los servicios.

  • Ahorrar significativamente en los tiempos de desarrollo por la reusabilidad del código.

  • Posibilitar un manejo multicanal simple, sencillo y homogéneo.

  • Otorgar velocidad a nuevos desarrollos y facilitar el mantenimiento y las modificaciones.

  • Disminuir sensiblemente los tiempos de testeo y prueba.


Ver también:

La administración de los procesos (BPM) y la orquestación