Uno de los primeros problemas que nos encontramos cuando queremos dar a conocer SOA y extender la adopción en la empresa, es darle a las personas que no están familiarizadas con este concepto una explicación sencilla y clara de qué es SOA.

Si buscamos en internet nos encontramos normalmente con definiciones demasiado técnicas o demasiado teóricas para que en un primer momento puedas entender de qué se está hablando.

Buscando una definición sencilla

Tratando de recoger una definición sencilla del término, hace algún tiempo,en este mismo blog (en la entrada DicSOAnario) me refería a SOA y a servicio como:

Forma de diseñar aplicaciones que consiste en juntar servicios (programitas) según tus necesidades. El objetivo no es programar nuevos servicios si no “componer” nuevos servicios basándose en otros más básicos ya programados.

Sin embargo, creo que para el trabajo de “evangelización” sobre SOA en la empresa necesitamos una definición un poco más completa, y si es posible, igual de sencilla.

En este sentido, me ha gustado especialmente la definición que he encontrado en el libro SOA Adoption for Dummies (un libro que distribuye Software AG de manera gratuita) que en un traducción libre quedaría más o menos así:

SOA una forma de arquitectura de mirar el mundo, y cuando se mira de esta manera todo es un servicio (el ladrillo con el que construir el edificio de SOA).

SOA, un nombre mal elegido

Por otra parte, creo sinceramente que el nombre de SOA está mal elegido si queremos que sea entendido como una forma de diseñar aplicaciones que no tiene nada que ver en el concepto con cuestiones técnicas.

Yo proponía en esta entrada el cambio del nombre de Service Oriented Architecture por el de este otro Business Driven Design (Diseño Dirigido por el Negocio) que creo que recoge más la esencia de lo que es SOA.

Conclusión:

En definitiva, creo que una definición más acertada (y sencilla) de SOA sería la siguiente:

SOA es una forma de ver y diseñar el software de una empresa. Está basada en la definición de pequeños programas de utilidad para el negocio (servicio) que se pueden combinar fácilmente para construir nuevos servicios con más funcionalidad ofreciendo a la compañía una gran flexibilidad, una reducción del time to market y una reducción de costes.

¿estás de acuerdo con esta definición? ¿cuál es la tuya?

Comparte esta entrada:
Share

Anuncios