SOA es más que software

La Wikipedia la define como: “un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requerimientos de software del usuario.”

Platicando con un socio me di cuenta de que sigo pensando, y cada vez me convenzo más, de que SOA no es software.

Considerar la arquitectura orientada a servicios como software exclusivamente puede hacer pensar que los sistemas van a mejorar los procesos como por arte de magia, que con la ayuda de un bus de datos podremos obtener de manera automática un descubrimiento de procesos bien documentado y listo para entrar en las carpetas del ISO.

SOA es principalmente una manera de entender la empresa. Observar a la empresa como un sistema cuyos elementos son todos proveedores y consumidores de servicios, y describir desde esta atalaya los procesos y sus posibles optimizaciones es la esencia de SOA.

En una tienda a público, por ejemplo, los clientes o visitantes son consumidores de servicios, los vendedores son proveedores de servicios, ofrecen servicios como “saludar y hacer sentir cómodos a los visitantes” que se dispara cuando un visitante entra a la tienda, “entregar información de un cierto producto” que se dispara cuando un visitante solicita información acerca de determinado producto, etc.

Una venta es un proceso en el que dos actores principales, el visitante y el comprador, realizan peticiones y entregas de servicio. No necesariamente se trata de un sistema de software, de hecho, los proveedores de servicios más comunes son humanos, por ello la preocupación de los fabricantes de soluciones SOA por este tipo de servicios. Una solución SOA que no cuente con un soporte flexible para los proveedores de servicios humanos sólo podrá tener utilidad en un entorno totalmente automatizado, donde el monitoreo típico SOA es excesivo.

Alguna vez supe de un proyecto de implantación SOA en el que la solución SOA era utilizada para manejar una serie de eventos disparadores de instancias de servicios donde todo se hacía de manera automática. La idea: ahorrar tiempo y dinero en el desarrollo o compra de un software de control de eventos automáticos. Al final, el cliente estaba muy molesto porque el software que pagó no resolvía su problema, cada instancia de proceso llevaba más de 1 segundo en el sistema, se encolaban los procesos y finalmente se ocasionaban retrasos de más de media hora en operaciones que debían tomar cuando mucho unos segundos.

Una de las diferencias de SOA con los enfoques tradicionales es la concepción de procesos. En SOA los procesos pueden ser más flexibles adecuándose a la realidad empresarial, y es que lo importante es definir bien los servicios, su consumo y su entrega. Los procesos son una consecuencia de esta definición. Ahora podemos tener varios procesos o varias alternativas a un proceso de manera más rápida puesto que se trata de encadenar proveedores y no actividades. Cada proveedor debe saber qué necesita para cumplir con el servicio que le es solicitado, hacer la solicitud de los servicios implicados y responder a su cliente. Las soluciones SOA mejoran precisamente esto, permitiéndole a los consumidores de servicio ignorar con confianza la localización o el proveedor específico de los servicios. Los consumidores que cuentan con una solución SOA sólo tienen que solicitar el servicio a un hub y este se encarga de canalizar la petición de servicio al proveedor indicado.

Debido a esta manera de ofertar los servicios, mediante un controlador central que oculta las complicaciones de direccionamiento, las soluciones SOA permiten a las empresas concentrarse en su definición de servicios, en su dominio, y olvidarse un poco del sistema. Las soluciones SOA se adaptan, de este modo, a la SOA de la empresa, a la visión sistémica de la organización, y no es la organización la que se adapta al software. Por supuesto, el problema es que si una empresa no cuenta con una visión SOA de sí misma, la adopción de una solución será difícil y el riesgo de una mala implantación es probablemente demasiado alto.

Para una correcta implantación de una solución SOA es indispensable que la empresa piense en términos de SOA acerca de sí misma, en todos sus niveles, o al menos en aquellos donde desea ver el impacto de la solución. Pero esto requiere que se entienda SOA como algo más que sólo un software caro y complicado.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s