Solo hay un beneficio real, pero es enorme: la
separación de preocupaciones .
Entonces, en lugar de que la lógica de orquestación del proceso se incruste en nuestro sistema, se convierte en una configuración externa. Un mapa, básicamente. Puede cambiarlo (mucho más) de forma independiente, puede tener múltiples procesos, múltiples versiones de procesos, múltiples versiones de múltiples procesos ejecutándose al mismo tiempo, y eso es todo listo para usar en cualquier solución decente.
Históricamente, el concepto de SoC ha ganado muchas veces, comenzando por el principio de Unix "haz una cosa, pero hazlo bien", y se aplica una y otra vez, como tener componentes de servidor dedicados como ESB, diferentes sistemas de persistencia, almacenamiento en caché, equilibrio de carga , monitoreo, como dividir CSS de HTML, etc.
Su proceso de negocio y sus reglas de flujo a menudo son ortogonales a sus datos, "pantallas" de IU o "jerarquía" de usuarios. Por lo tanto, tiene mucho sentido desarrollarlo y cambiarlo por separado de los otros aspectos del sistema. Esa fue la premisa en la que BPM apareció a principios de la década de 1990.
Desde entonces, muchas de las herramientas y lenguajes se crearon para admitir este concepto, y el más conocido es BPMN , un lenguaje gráfico para crear "diagramas de flujo" que se asignan directamente a los procesos. Si bien la gente se queja de que es grande y difícil de manejar (que tiene más de 100 símbolos en el vocabulario), y aboga por enfoques modernos como S-BPM (tiene solo 5 símbolos básicos), la práctica actual de la industria es apegarse a BPMN o sus derivados, subconjuntos o hermanos.
No pareces satisfecho con BPMN:
Los programadores aquí parecen estar haciendo una gran cantidad de trabajo en la capa de líneas y cuadros, lo que para mí parece un lenguaje de programación visual realmente horrible y básico.
Pero no es tan malo) Hay una teoría detrás de esto. Y la versión 2.0 tomó una buena idea de las deficiencias 1.0.
Si vas a llegar tan lejos, ¿por qué no usar algún tipo de lenguaje de script?
Los paradigmas imperativos y los lenguajes de script no siempre son la mejor respuesta. Como probablemente haya visto en lenguajes declarativos (como HTML, CSS, SQL, Drools o internos de Nginx, Graddle y Maven, Puppet, etc.), el código resultante puede ser mucho más pequeño y limpio que una versión escrita en " lenguaje decente " . como Java o C ++ ".
En cuanto a su otro punto:
Por lo que puedo decir, son lenguajes de programación visual en este punto, completos con condicionales y bucles.
¿Has mirado en los eventos y disparadores ? BPMN es un idioma y debe aprenderlo antes de usarlo, o al menos familiarizarse con él.
Bajo el capó, BPMN es XML, por lo que puede editarlo a mano o generarlo. Y puede controlarlos por versión, porque XML está basado en texto. Sin embargo, el simple hecho de tener un XML que pueda traducirse en diagramas de flujo no parece que vaya a ayudarlo, y eso es correcto: escribir su propio analizador o editor es una tarea difícil y costosa con beneficios cuestionables.
Afortunadamente, ya existen herramientas en el mercado que hacen exactamente eso.
Activiti es gratis y bastante popular entre los desarrolladores y propietarios de negocios, debido a su precio inicial ( cero ), disponibilidad de información y humildad. El último punto es realmente único, ya que Activi solo se enfoca en administrar sus procesos comerciales, sin tratar de vincularlo con soluciones de paquete completo. Además, está abierto, por lo que solo necesita conocer Java y REST para ponerlo en funcionamiento. El inconveniente es que el lado del cliente, la integración y la lógica de aplicaciones / negocios y toda la arquitectura se dejan al desarrollador, por lo que si su equipo de desarrollo es débil, prepárese para el fracaso. El costo total de propiedad puede ser sorprendentemente alto para una herramienta gratuita ;)
En el otro lado del espectro está Pega (Pega PRPC), el rey reinante de los sistemas BPM (según Gartner y Forester), que se ve sorprendentemente bien para su edad. Este gigante de fregadero y cocina es incluso capaz de CRM, OCR y (si no me equivoco) capacidades de reconocimiento de voz, análisis predictivo, gestión de reglas comerciales y editor de interfaz de usuario WYSIWYG. Sin embargo, viene con una etiqueta de precio seria. No solo cuesta una fortuna, sino que todo el desarrollo se realiza dentro de una aplicación web, lo que significa que debe usar el navegador, que es IE8 (más algunos complementos, más hacks feos, como usar Excel para editar tablas de datos). Además, la edición de Java, Javascript o HTML / CSS también se está haciendo dentro del navegador web, así que despídase de las pruebas unitarias, el resaltado del código IDE, la refactorización y todos sus juguetes de programación que le han encantado.
Buen lado de eso? puede implementar un sistema complejo DENTRO DE SEMANAS [ PDF , consulte la página 22]. Y sí, el resultado no está garantizado.
IBM haber algo recientemente (accoring al ritmo de tiempo de la empresa) han comprado Lombardi, y ahora está ofreciendo una solución muy competitiva (pero entonces usted tendrá que comprar todo lo IBM , you'know). Appian es un proveedor joven que tiene ideas interesantes y comentarios positivos, pero la forma en que están escritos (dos lenguajes DSL adicionales además del visual) simplemente no me atrae.
Hay otros jugadores y sus soluciones. La mayoría de ellos son simplemente horribles. Me gusta: tus ojos, cerebro y corazón sangrarían literalmente cuando simplemente los miras. Por lo tanto, confíe en sus agallas y no haga que sus desarrolladores y usuarios lo odien.
Nota de cierre:
El sistema BPM es el mismo para los procesos, lo que Photoshop es para las imágenes. No tengas miedo de que sea visual. No haga que haga el trabajo que no le conviene (¿recuerda los sitios web creados completamente en Photoshop, que eran casi imposibles de editar?). Mantenlo simple y no hagas errores;)