Esquema de selección del motor de proceso y especificación BPMN2.0
Hola a todos, soy Bittao. Este artículo presenta principalmente brevemente el contenido de la especificación BPMN2.0, lo que permite a los lectores comprender rápidamente el contenido principal y los estilos gráficos cubiertos por BPMN2.0. También explica en detalle cómo dibujar un diagrama de flujo estándar y cómo implementar funciones de procesos comerciales y selección de tecnología a nivel de software.
1. Conceptos básicos
Hay una gran cantidad de procesos comerciales en nuestras vidas, que van desde casarse y comprar una casa hasta pedir permiso para comprar un boleto. Todos deben seguir el proceso prescrito. Si el proceso es relativamente simple, podemos dibujar algunos bocetos para que todos lo entiendan. Pero cuando el negocio es demasiado complicado, si no hay una especificación de un diagrama de flujo comercial, puede ser difícil de entender para las personas y las máquinas. Con el fin de unificar varios diagramas de flujo de negocios en todo el mundo, ha surgido el estándar BPMN (Business Process Model and Notation), que se ha convertido en uno de los estándares ISO ( descarga estándar ).
BPMN2.0 regula principalmente los gráficos, al igual que los diagramas UML, es decir, podemos entender la lógica del flujo de negocios cuando vemos los diagramas. La forma en que el sistema real realiza la operación de control de acuerdo con los gráficos es lo que tiene que hacer el motor de flujo de trabajo. Por ejemplo, el modo de control en la operación de flujo de trabajo tiene que referirse a Patrones de flujo de control . Lo que debe enfatizarse es que los conocidos motores de flujo de trabajo: Activiti, Flowable, Camunda y el doméstico Yanhuang Yingdong, etc., afirman admitir la especificación BPMN2.0. De hecho, su lógica operativa, identificación de atributos y estructura de almacenamiento son aproximadamente las mismas, pero existen ligeras diferencias que no se pueden usar en todos los motores de procesos. Por ejemplo, el formato XML del evento de inicio conforme a la especificación BPMN2.0 generalmente se denomina <startEvent>
, pero la definición interna del motor de puerta de enlace no es la misma, y algunos motores de flujo de trabajo ni siquiera usan el formato XML para almacenarlo en el formato JSON. Entonces, el llamado motor de proceso admite BPMN2.0, pero la función y la apariencia siguen el estándar. La realización en el nivel de software real se puede hacer de acuerdo con las propias necesidades. Para aquellos que están expuestos por primera vez a la especificación BPMN2.0, es muy importante distinguir este concepto.
2. Importancia de BPMN
El significado de usar especificaciones gráficas es hacer que todo sea comprensible, como el lenguaje en nuestra realidad. Además, en esta era de la información, tenemos demasiados negocios de software para lidiar con procesos complejos en la realidad. Como el sistema de oficina OA, el sistema de gestión de almacenes WMS, el sistema de gestión logística TMS, OMS, SRM, el sistema de gestión de pedidos CRM, etc. Estos procesos comerciales suelen ser muy complejos, si no están limitados por las especificaciones, podemos usar nuestros propios símbolos para dibujarlos. Me temo que es fácil pisar el pozo y no es fácil formar estándares de nivel comercial y acumulación de experiencia. Luego, a través de la especificación BPMN2.0, podemos administrar el diagrama de flujo en gran medida, el control de riesgos y la inspección de cumplimiento.
La figura anterior es una instancia de modelo BPMN simple y el proceso es un modelo de un puesto de contratación. Según nuestra observación, no es difícil entender el significado, aunque es posible que no conozca los términos profesionales de cada módulo en este diagrama, puede comprender cuál es el proceso de este diagrama. Entonces, BPMN todavía está haciendo un buen trabajo en términos de comprensión visual, que es lo que admiro: el mejor producto es un producto sin instrucciones .
3. Elementos principales
En BMPN2.0, los componentes se dividen principalmente en cuatro categorías: actividades, puertas de enlace, eventos y auxiliares. Aquí hay un diagrama resumido del modelo de proceso comercial y la especificación de símbolos para su rápida comprensión.
3.1 Actividades
Las actividades son equivalentes a las entidades, se puede decir que la definición del modelo de entidad del diagrama de flujo se compone principalmente de actividades. Los componentes se muestran en la siguiente figura:
Tarea
Las actividades más utilizadas son las tareas. Para distinguir varios tipos de tareas, generalmente se agregan íconos a los componentes de la tarea para ilustrar:
no existe una especificación uniforme para el color, el estilo y los íconos de los componentes, y se pueden adaptar de acuerdo con el color principal del sistema durante desarrollo. Solo mantén la forma general.
subproceso
Pero nuestro proceso es demasiado complejo, necesitamos abstraer el diagrama de flujo. De esta manera, las minucias y las partes relativamente independientes pueden extraerse en un proceso separado y luego introducirse en el proceso general.
actividad de llamadas
Los subprocesos y tareas generales son parte del diagrama de flujo y no se pueden usar solos. En la mayoría de los casos, sin embargo, una actividad debería poder reutilizarse en varios diagramas de flujo. BPMN proporciona 调用活动
construcciones para esto. Cuando se invoca una actividad global o un subproceso, se indica con un borde grueso.
subproceso de evento
A diferencia de los procesos normales, los subprocesos temporales no son activados por flujos de secuencia. Más bien, es un proceso diseñado por eventos desencadenados por el flujo de mensajes durante la ejecución del programa.
asuntos
Al igual que el concepto de transacción en la base de datos, una transacción puede ejecutarse por completo o no ejecutarse en absoluto. Si algo sale mal, la transacción debe revertirse.
3.2 Puerta de enlace
La puerta de enlace es equivalente a un componente de procesamiento comercial, la actividad (entidad) es solo para explicar lo que hay allí, y la puerta de enlace puede definir sus reglas a través de la conexión con la actividad. Los componentes se muestran en la siguiente figura:
puerta de enlace exclusiva
Secuencialmente juzga y ejecuta la primera rama que es Verdadera, otras ramas no son juzgadas y no ejecutadas.
Portal de inclusión
Seleccione o combine una o más rutas, como si seleccionamos varias etiquetas para filtrar la lista.
puerta de enlace paralela
Como sugiere el nombre, una puerta de enlace paralela es una puerta de enlace que se puede bifurcar y ejecutar en paralelo.
puerta de enlace de eventos
Las tres puertas de enlace anteriores son puertas de enlace exclusivas basadas en datos (XOR), pero necesitamos puertas de enlace de eventos para tomar rutas diferentes para los datos que se procesan. Es decir, una puerta de enlace basada en eventos que no enruta en función de los datos, sino en función de lo que sucede a continuación. Considere un flujo de negocios en el que pedimos una pizza y esperamos a que llegue. Solo podemos comer cuando llega la pizza, pero ¿y si la pizza no ha llegado después de 60 minutos? ¡Haremos una llamada ansiosa y listo! Podemos modelar esto con una puerta de enlace de eventos:
puerta de enlace compleja
Complex Gateway: Complex Gateway permite dividir rutas personalizadas y algoritmos de recuperación de acuerdo con las necesidades de escenarios comerciales específicos.
3.3 Eventos
Los diagramas de flujo solo se pueden usar para describir procesos comerciales estáticos, pero el mundo real está superpuesto por varios factores inciertos. Cuando se ejecuta un proceso, consume y crea datos, información, archivos, documentos, etc. El flujo de secuencia de una actividad a otra suele ir acompañado del paso de datos. Diferentes datos causarán diferentes eventos.Necesitamos capturar varios eventos al igual que escribir un programa, para garantizar la integridad y confiabilidad del sistema.
Al dibujar, se deben considerar dos aspectos: la causa del evento (disparador) y el impacto del evento en el diagrama de flujo.
Los eventos más utilizados son los siguientes tres, entre ellos, el evento de inicio y el evento final son los más críticos, y también son elementos que todo diagrama de flujo debe tener, se agregan eventos intermedios según sea necesario. Cabe señalar que los diferentes símbolos que aparecen en medio de los tres iconos de eventos se utilizan para expresar diferentes significados.
Hay muchos tipos de eventos, así que aquí hay un ejemplo práctico para observar:
evento de inicio
Los eventos condicionales son los procesos que se activan cuando las condiciones son verdaderas; los eventos de señal se refieren al monitoreo de eventos de transmisión global; los eventos múltiples se refieren a la combinación de múltiples eventos, siempre que ocurra uno de los eventos, se iniciarán; eventos paralelos múltiples eventos requieren todos los eventos Ambos tienen que suceder para que comience.
evento final
El evento final predeterminado es un círculo negro acentuado, que está en blanco; el símbolo del sobre del evento del mensaje se rellenará en negro; el evento final final es negro puro, lo que no solo elimina un único token, sino que finaliza todo el proceso.
evento intermedio
Los eventos intermedios pueden enviar y recibir señales y, por lo general, se usan en las siguientes dos situaciones:
- Activar eventos en relación con otros eventos en el proceso (por ejemplo, enviar mensajes o señales);
- Reaccionar a eventos en el proceso (por ejemplo, cuando se recibe un mensaje o se alcanza un cierto punto en el tiempo).
3.4 Auxiliar
En la especificación BPMN2.0, los gráficos más utilizados son las actividades, puertas de enlace y eventos mencionados anteriormente. Pero para expresar negocios complejos con mayor claridad, BPMN también propone el uso de algunos componentes auxiliares. Nota: estos componentes auxiliares son solo para expresar mejor el modelo comercial y no son necesarios.
conexión
Los diferentes componentes se pueden asociar con varias formas de línea, y las diferentes líneas tienen diferentes significados, que se pueden dividir aproximadamente en las siguientes cuatro líneas:
Diagrama de carril
Como se muestra en la figura a continuación, el diagrama de carril de natación puede dividir diferentes flujos comerciales en diferentes carriles. Son similares a dividir la piscina en diferentes carriles, y cada competidor en la competencia de natación solo puede nadar en su propio carril.
Notas y Grupos
Las anotaciones son principalmente para la ilustración complementaria del diagrama de flujo, podemos aplicar anotaciones y grupos de la forma que queramos, incluso a través de los límites de la piscina. Las anotaciones y los grupos no afectan la semántica de ejecución, así que no los confunda con subprocesos, etc. Nota: Se puede distinguir por el color.
almacenamiento de datos
Cuando se ejecuta el diagrama de flujo, si desea resaltar la dirección de su flujo de datos, puede expresarlo a través de objetos de datos y bases de datos.
La siguiente figura muestra un ejemplo de flujo de datos:
Cuarto, el tipo de gráfico.
Esta sección presenta principalmente cómo construir un modelo de proceso claro cuando se enfrenta a escenarios complejos.
4.1 Diagrama de disposición
Cuando se requiere que varias empresas interactúen, como conectar sus sistemas de información de una manera que automatice por completo la colocación y el cumplimiento de pedidos y otras transacciones comerciales, cada empresa debe ser responsable de sus propios procesos.
La imagen de arriba es un diagrama de colaboración, pero no hay manera de expresar una expresión más detallada: los eventos y el orden lógico en el flujo de mensajes. El diagrama de disposición es para resaltar el intercambio de mensajes en sí, como se muestra en la siguiente figura:
el diagrama de disposición se divide en tres columnas, y las columnas superior e inferior representan a los participantes respectivamente. En la imagen de ejemplo: el color oscuro es el receptor y el color blanco es el iniciador.
4.2 Gráfico de sesión
Un gráfico de sesión proporciona una descripción general de qué actores en un área colaboran en qué tareas. En la imagen de abajo, se pueden ver tres sesiones. Al procesar pedidos de inserción, un cliente trabaja con una agencia de publicidad y varios planificadores de comidas. Por otro lado, un cliente y una agencia de publicidad pueden trabajar juntos en una campaña publicitaria. Para ello, colaboran con varios medios. Un diseñador también puede formar parte de las actividades de otra empresa: junto con una editorial, un diseñador gestiona los pedidos de ilustraciones.
5. Selección de tecnología
En la actualidad, el lugar más utilizado de BPMN2.0 es el motor de procesos. Las personas usan los símbolos estipulados por los estándares para dibujar diagramas de flujo reconocidos mundialmente. Luego, en su propio sistema, se ejecuta para realizar la visualización de la lógica empresarial compleja. A continuación, se enumeran las tecnologías de front-end y back-end necesarias para realizar el proceso comercial, y puede elegir de acuerdo con las condiciones de su propio proyecto:
5.1 Parte delantera
BPMN.JS
Kit de herramientas de renderizado BPMN 2.0 y modelador web. Está escrito en JavaScript, incrusta diagramas BPMN 2.0 en el navegador y es independiente del backend, lo que también facilita su incrustación en aplicaciones web de tareas: puede usarse de forma independiente o integrarse en el medio de su aplicación.
flujo lógico
De código abierto de Didi, LogicFlow es un marco de edición de diagramas de flujo que proporciona una serie de funciones necesarias para la interacción y edición de diagramas de flujo, así como una personalización de nodos simple y flexible, complementos y otros mecanismos de expansión, para que podamos cumplir rápidamente el flujo de clases en el gráfico del sistema empresarial necesita. Concéntrese en el marco de edición de diagramas de flujo personalizado para el negocio, admita varios escenarios de edición de diagramas, como mapas mentales, diagramas ER, UML, flujo de trabajo, etc.
Hormiga X6
Abierto por Ali, X6 es un motor de edición de gráficos bajo AntV. Proporciona capacidades de personalización de nodos fáciles de usar y componentes interactivos listos para usar, lo que nos permite crear rápidamente diagramas de flujo, diagramas DAG, diagramas ER y otras aplicaciones de diagramas.
5.2 Antecedentes
actividad
Una plataforma liviana de flujo de trabajo y administración de procesos comerciales (BPM) para empresarios, desarrolladores y administradores de sistemas. En su núcleo se encuentra un motor de procesos BPMN 2 ultrarrápido y sólido como una roca para Java. Es de código abierto y se distribuye bajo la licencia Apache. Activiti se puede implementar en cualquier aplicación, servidor o clúster de Java.
fluido
Una plataforma compacta y eficiente de flujo de trabajo y gestión de procesos empresariales (BPM) para desarrolladores, administradores de sistemas y usuarios empresariales. Flowable es un motor de flujo de trabajo de código abierto escrito en Java que puede ejecutar procesos comerciales descritos en BPMN 2.0. Es una bifurcación mantenida activamente de Activiti.
Flujo de compilación
compileflow es un motor de proceso muy ligero, de alto rendimiento, integrable y extensible. Este motor es uno de los motores TBBPM de flujo de trabajo de Taobao. Es un motor de proceso sin estado que se enfoca en la ejecución pura de la memoria. Convierte los archivos de proceso en código Java para la compilación y ejecución, lo cual es simple y eficiente. Actualmente, es el motor de proceso de múltiples sistemas centrales, como las transacciones comerciales de nivel medio de Alibaba. compileflow permite a los desarrolladores diseñar sus propios procesos comerciales a través del editor de procesos, visualizar lógica comercial compleja y construir un puente entre los diseñadores comerciales y los ingenieros de desarrollo.
6. Resumen
Finalmente, me gustaría hablar sobre mis propios pensamientos sobre la especificación BPMN: si es una herramienta o una especificación. Es todo para satisfacer nuestras necesidades reales Al desarrollar e implementar, no debemos ser demasiado rígidos. Debe mejorarse, optimizarse y ampliarse de acuerdo con la situación actual. Por ejemplo, en la especificación BPMN, no se permite la conexión de varios flujos de datos a una actividad (excepto los pines de varios pines), y se requiere la función de una puerta de enlace en el medio. Pero en el proceso de desarrollo real, cuando encontramos que hay demasiadas puertas de enlace que afectan la visualización y legibilidad de los gráficos, podemos usar medios técnicos para simplificar y optimizar las especificaciones relacionadas. Por lo tanto, no recomiendo seguir las normas por cumplir con las normas, sino hacer los ajustes apropiados según la situación real para desarrollar productos más prácticos.