Sobre la reutilización en una estrategia SOA

por

La reutilización del software ha estado siempre en mente de cualquiera que se dedicara a desarrollar software de una forma profesional. Todos hemos intentado orientar el diseño de nuestro software a un nivel de abstracción y encapsulamiento que nos permitiera reutilizarlo en futuros proyectos con nulos o mínimos cambios. Funciones, macros, clases, interfaces de usuario, controles, sistemas de ayuda, etc. La Orientación a Objetos trasladó el concepto de reutilización de su estado de “buena práctica” al estado de “principio básico y objetivo de diseño”. De hecho la OO supuso una explosión de entusiasmo en la industria porque por fin parecía factible pensar en grandes bibliotecas de clases, con grandes jerarquías de herencia cubriendo amplios ámbitos de alcance, que podrían ser masivamente reutilizados en multitud de proyectos, transformando para siempre el desarrollo de software hacia un modelo ideal.

Lamentablemente todos sabemos que esto nunca llegó a ser una realidad, pero es indudable que la OO elevó la reutilización a un nivel de principio básico que todo lo que vino después ha tomado como punto de partida incuestionable.

En una estrategia SOA la reutilizacion es condicion necesaria, pero no suficiente

 

En SOA la reutilización juega un papel muy destacado. Está en el núcleo de sus objetivos, por su aportación para desacoplar los sistemas de información, homogeneizar el mapa de sistemas de la organización, y reducir drásticamente los costes de los proyectos IT. El mero uso adecuado de estándares, otro de los principios de SOA, incide positivamente en la reutilización de los servicios.

Pero es fácil dejarse llevar por la fiebre de la reutilización, y eso es un problema. En una estrategia SOA, es un problema porque suele ser síntoma de servicios muy abstractos, demasiado abstractos. Y dificulta el alcance de cualquier sistema de monitorización del negocio. Y fuera de una estrategia SOA, la reutilización suele ser una excusa para abusar del concepto SOA.

Que una utilidad o componente sea reutilizable, no implica que estemos en un escenario SOA. En algunas corrientes de opinión que he visto por la red y de algunos profesionales TIC, parece que la reutilización es el mayor objetivo y exponente de una estrategia SOA, cuando no es así. Normalmente quien opina así suele estar en la idea errónea de que SOA está más cerca de la tecnología de lo que realmente está.

Podemos decir que la reutilización es una condición necesaria en una estrategia SOA, pero no suficiente.

Un ejemplo muy claro: todos los sistemas operativos, por definición, incluyen una serie de componentes destinados claramente a ser reutilizados cuantas veces sea necesario, desde distintas aplicaciones. Por ejemplo, un driver de impresora. ¿Eso significa que los sistemas operativos son SOA?. Pues no. Es más, desde mi punto de vista afirmar esto incurre en un error de base: bajar SOA a un nivel puramente tecnológico, lo cual es en sí mismo una contradicción cuando en los principios de una estrategia SOA está el desligar el negocio de la tecnología.

Y no deja de ser totalmente cierto que un driver de impresora, como de cualquier otro dispositivo, es totalmente reutilizable, claro que lo es. Totalmente (y si no lo es, menudo driver). Hay infinidad de ejemplos en muchos campos de elementos reutilizables: todas las APIs de cualquier lenguaje de programación, todos los drivers de todos los dispositivos que pueden conectarse a un ordenador, las apps de los sistemas operativos móviles como iOS o Android… etc, etc.

Pero forzar el uso de la etiqueta SOA para estos casos es forzar demasiado y confunde al personal. La reutilización de los servicios de negocio en una estrategia SOA es una de las consecuencias que mayor impacto tiene en la organización donde se implanta la estrategia, al homogeneizar los componentes que implementan los procesos de negocio a lo largo de todo el mapa de sistemas, y reducir los costes de los proyectos IT, tanto para nuevos sistemas de información, como para mantenimiento correctivo o evolutivo. Es una de las mejoras que conlleva una estrategia SOA con mayor impacto en el ROI de la propia estrategia. Pero por sí solo, NO define una estrategia SOA.

En una estrategia SOA la reutilizacion se produce desde los procesos de negocio, para los procesos de negocio

 

Y entonces ¿cuál es el índice de reutilización correcto a buscar en una estrategia SOA? Pues depende. Básicamente en una estrategia SOA hay que estar a lo que diga el negocio. Si los procesos de negocio muestran que un patrón o proceso o evento se repite tres veces en toda la organización, pues ya está. Si se repite veinte veces, pues ya está. Y si se trata de eventos core del negocio, servicios de infraestructura, o similares, se tendrá que reutilizar cada vez que sea necesario. Aquí la clave está, de nuevo, en la Gobernanza SOA. Es desde ahí desde donde se debe estudiar cada caso y mantener el enfoque correcto y la granuralidad adecuada.

 

Te puede interesar

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Sigueme en las redes

Share This