martes, 2 de mayo de 2017

SOA Governance

Hablar de SOA, es fácil relacionarlo con servicios web, aplicaciones, SOAP, REST, etc. Es más es muy común oir decir a las personas que cuando usan servicios ya están usando SOA de manera perfecta. ¿Es esto cierto?

Lo que quiero tratar de explicar en este pequeño blog es un poco de lo que trata SOA y qué es esto de SOA Governance ¿por qué es importante?

Tengo cerca de 5 años de experiencia viendo proyectos de SOA y unos 4 años viendo temas de Gobierno SOA, con lo cual puedo decir exactamente lo qué es o al menos lo que trata de ser.

PRIMERO LO PRIMERO: SOA
SOA como ya es de saber está relacionado a una arquitectura orientada a servicios, donde son las aplicaciones quienes se comunican entre sí a través de servicios.

Estos servicios pueden ser SOAP Web Services o REST (este último es muy usado en la actualidad), la idea es tener interfaces de comunicación entre aplicaciones en las que estas puedan exponer funcionalidades que puedan ser luego reutilizadas por cualquier otra aplicación.

Si queremos saber más de lo que es SOA y/o servicios, recomiendo mucho leer la biblioteca de libros de Thomas Earl, es muy bueno y explica desde las características de un servicio hasta distintos tipos de arquitectura.

GOBIERNO SOA
Siempre que dicto algún curso o taller de gobierno soa me gusta decir esta analogía que compartiré con uds:

"Cuando ustedes están en sus casas saben muy bien que se deben cumplir ciertas normas o políticas que bien son impuestas por uds o sino por sus padres. Qué es lo que pasa si el hijo llega tarde? Pues se le castiga porque no cumple con la norma que el padre ha impuesto"

El mismo concepto es el que trata Gobierno SOA: La creación de políticas para las mejores prácticas de SOA que incluyen desde la creación de un servicio hasta su mantenimiento una vez puesto en producción.

Es importante tomar en cuenta, qué puede sonar muy simple en su concepto, pero en su práctica es lo más díficil que se puede ver en todo este mundo SOA. Esto lo digo porque suele ocurrir que ya se tienen políticas de implementación o de desarrollo de software implementados en una organización y, que lleguen más normas para crear unicamente servicios a veces suele ser muy engorroso y, por tanto difícil de poner en práctica.

Lo que se recomienda mucho entonces, es crear en primer lugar, un ente que se encargue de la creación y evangelización de estas normas llamado Centro de Excelencia SOA o Gobierno SOA.

Este grupo de personas tiene que encargarse de dar a conocer cada una de estas políticas a toda la organización y que se pongan en práctica.

Otro punto importante, es que este Centro de Excelencia tiene que tener como respaldo la aprobación de una autoridad de gran "peso" en la organización pues de nada sirve que ellos creen alguna norma si nadie con decisión lo pueda avalar. Esto es muy importante.

En el próximo post comentaré ejemplos y casos de uso de Gobierno SOA, pues la mayoría de literaturas al respecto son muy rígidas e incluso muy utópicas.

Hasta la próxima.