En el origen mismo de SOA está la reutilización. La tantas veces prometida reutilización de los componentes software, la misma que dice que nunca más volveremos a rescribir las mismas rutinas y los mismos programas.

Todos los paradigmas de programación la han prometido en estas últimas cinco décadas: la programación estructurada y modular, la orientación a objetos… pero nunca se ha llevado realmente a la práctica. Menos aún cuando en una gran empresa conviven varios sistemas operativos, varios lenguajes, varias máquinas en incluso varias arquitecturas (mainframe, sistemas distribuidos, etc. etc.)

¿que hay de diferente ahora con SOA entonces? pues que parece que esta vez va a en serio. Y no digo que se logre de esta vez, ni mucho menos que sea fácil, pero parece que al menos tenemos todas las herramientas a nuestro alcance para hacerlo posible. Tal vez lo único que pueda faltar es la voluntad de hacerlo.

¿por que digo esto? porque por un lado la industria del software ha dejado atrás la epoca de las tecnologías incompatibles y se ha unido para definir un estándar. Un estańdar de definición de servicio web y también un estándar de definición de “bloques” o componentes reutilizables: SCA (Service Componente Architecture).

SCA es precisamente un grupo de especificaciones pensadas para desarrollar aplicaciones bajo el paradigma SOA y básicamente define el interfaz de los pequeños bloques con los se puede construir el software (de la misma manera que piezas de lego que se engarzan ente sí para formar una pieza más compleja).

SCA contempla varias tecnologías como pueden ser lenguajes de programación, frameworks y herramientas que cuando se usan convenientemente pueden ayudar a la empresa a minimizar su esfuerzo en desarrollo, reducir la curva de aprendizaje y facilitar la reutilización de los servicios.

SCA también es una forma de abstraernos de los detalles de la implementación de un componente. El programador se abstrae de los detalles técnicos y se concentra en la lógica de negocio y en el interfaz que va a proporcionar al resto de componentes para que puedan ser integrados o combinados entre sí. Así por ejemplo, en un caso practico, si queremos hacer un módulo de envío de email reutilizable. Haríamos un componente SCA, con un interfaz bien definido que hace el trabajo de envío con el protocolo SMTP. Otro componente de negocio, por ejemplo, el de “gestionar notificaciones al cliente” puede hacer uso de este componente de manera sencilla gracias a su interfaz estándar. Si posteriormente se necesita que otra aplicación use este componente de envío de email, podemos hacer un “export” del SCA a web services. Es decir, se le dota al SCA de una implementación concreta con la que puede ser consumida mediante SOAP/http. Podemos hacer varias clases de export o implementaciones, tantas como soporte el ESB, manteniendo una única lógica de negocio.

Conclusión: por primera vez tenemos al alcance de la mano la tecnología y las herramientas necesarias para alcanzar la reutilizacion, al fin, del software. No desaprovechemos la oportunidad.

Comparte esta entrada:
Share

Anuncios