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?
23/12/2011 at 14:14
a que se refiere con pequeños programas de utilidad para el negocio, y como pdoria crear nuevos servicios a partir de esos programas?
23/12/2011 at 14:59
Por lo de pequeños programas me refería a los servicios. Los servicios básicos que necesita toda empresa. Una vez construidos el resto de servicios se podrán componer a partir de los existentes. Y dejaremos de programar, solo nos dedicaremos a componer… 😉
26/11/2020 at 17:10
A qué tipos servicios te refieres?
26/11/2020 at 18:23
Los servicios más atómicos, que suelen ser los transaccionales básicos como dar de alta cliente, modificar medio de pago, etc.
11/01/2012 at 20:22
Excelente esta buscando una definición sencilla para una tarea y me sacaste del apuro, felicidades por tu esfuerzo.
11/01/2012 at 20:25
Gracias. Me alegro de que te haya servido.