A poco que se consulten las páginas que hablan sobre orientación a servicios, SOA, BPM, etc. nos damos cuenta que muchas veces las definiciones que se dan a estos conceptos no son sencillas, en ocasiones hay diferentes definiciones (una por página), son ambiguas, etc. En definitiva no son fáciles de asimilar, sobre todo para personas que no tiene un perfil técnico.
El objetivo de esta entrada será, pues, centralizar en un sitio las definiciones más importantes de SOA y BPM. Definiciones escritas de una manera sencilla y fácil de entender. Esta entrada tendrá carácter permanente y se irán añadiendo poco a poco los conceptos que vayamos manejando. Para ello, por supuesto, pido tu ayuda para que matices las definiciones que se vayan recogiendo a tí, proponer que se traten nuevas palabras, etc.
Con tu ayuda tendremos el dicSOAnario, que parafraseando el eslogan de Ubuntu, debería ser «el diccionario SOA para humanos». Aquí van las primeras entradas:
- BPM: automatización de los procesos de negocio de la empresa. Es decir, que los procesos se puedan «informatizar» ejecutándolos en un servidor (process server)
- orquestación: comportamiento resultante de la coordinación por parte de un controlador (director de orquesta) de varios servicios de una manera centralizada. Normalmente se implementa mediante BPEL
- coreografía: comportamiento resultante de la interacción de un grupo de servicios sin un controlador central (por el ejemplo el lenguaje WS-CDL)
- servicio: programita que hace algo útil, con unos parámetros de entrada/salida conocidos, que puede ser juntado con otros servicios para crear otro más complejo.
- SOA: 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.
¿qué definición añadirías?
Actualización 07/04/2010: incorporadas las entradas coreografía y orquestación (gracias César)
Comparte este artículo…
05/04/2010 at 19:19
Aquí van un par de ellas más…
He visto en múltiples foros, blogs, presentaciones… definiciones para dos conceptos muy similares que se han puesto de moda en el mundo SOA: Coreografía y Orquestación de servicios. Después de leer múltiples intentos de definición y comparación entre ambos conceptos (muchas veces contradictorios unos entre otros), he llegado a algunas modestas conclusiones:
Orquestación: Tiene que ver con el comportamiento resultante de la coordinación por parte de un controlador central de servicios individuales que realizan tareas independientes unas de otras. Como características principales tenemos por lo tanto:
1.Existe un conductor central.
2.Cada actor ejecuta tareas independientemente de los demás.
3.Los actores no son conscientes de la existencia de un conductor central.
Coreografía: Es el comportamiento resultante de la interacción de un grupo de entidades individuales sin ninguna autoridad central. En este caso, las características principales serían:
1.Son las entidades las que interactuan entre si.
2.No hay conductor principal por lo que no hay una gestión global de la responsabilidad.
3.Cada entidad gestiona su parte de responsabilidad.
En la orquestación se define un flujo utilizando un lenguaje como por ejemplo BPEL y existe un motor de orquestación que ejecuta dicho flujo. La coreografía, sin embargo, define interacciones coordinadas entre varias partes Un ejemplo sería el lenguaje WS-CDL.
Por último, desde la perspectiva del B2B, la orquestación sería la composición de servicios a nivel intra-organización, mientras que estaríamos hablando de coreografía cuando varias organizaciones colaboran para conseguir un resultado de negocio común.
Como he comentado, existen numerosas discusiones sobre estos dos conceptos, por lo que nuevas opiniones y/o ampliaciones serán bienvenidas.
05/04/2010 at 19:51
Me parece una definición muy buena y bastante clara, aunque tendríamos que resumirla para que forme parte del dicSOAnario 😉
05/04/2010 at 19:56
¿qué os parece?
Orquestación: comportamiento resultante de la coordinación por parte de un controlador (director de orquesta) de varios servicios de una manera centralizada. Normalmente se implementa mediante BPEL.
Coreografía: comportamiento resultante de la interacción de un grupo de servicios sin un controlador central (por el ejemplo el lenguaje WS-CDL)
06/04/2010 at 06:54
Otro candidato:
CEP: Complex Event Processing
30/08/2011 at 03:06
buenos aportes, solo una cosa, en la entrada los significados de orquestación y coreografía están al revés y están bien en los comentarios
31/08/2011 at 19:34
ya está corregido, muchas gracias