Pregunta

Mi cliente está buscando una Gestión de Procesos de Negocio (BPM) de la solución.Lo que se necesita es un simple documento de enrutamiento y un sistema de aprobación.¿Cuáles son los controladores para la implementación de un sistema BPM?¿Cuál es el umbral en el que un desarrollador debe sugerir la implantación de una solución BPM versusuna herramienta de flujo de trabajo o desarrollo a medida?

Cuando hace jBPM ajuste?Cuando se hace un estado de la máquina, construido en una aplicación en forma?¿Qué problemas deben existir las que determinan que usted necesita para ir con una solución similar a la jBPM?

Estoy buscando algunos ejemplos del mundo real de "tratamos de construir la solución de nosotros mismos, pero terminó yendo con AquaLogic/jBPM/Lombardi porque de _".Por favor llene el espacio en blanco.

¿Fue útil?

Solución

Escribí un motor de flujo de trabajo, porque mi empleador quería ser dueño de la IP, modelada después de JBPM. Ahora, la razón por la que usa una herramienta de este tipo, en lugar de crear su propia máquina de estado finito, es acomodar cambios sin alterar la persistencia y apoyar los casos de los procesos de flujo de trabajo como lo explicaré.

Acomodar los cambios sin alterar la persistencia

Su típica, o tal vez es mejor llamarlo "ingenuo", la implementación de la máquina de estado finito presenta un conjunto de tablas de base de datos estrechamente acopladas a los datos administrados y el proceso que fluye. Puede haber una manera de mantener las versiones pasadas y rastrear quién tomó qué acción también durante el proceso. Donde esto se encuentra con problemas de cambios en los datos y la estructura del proceso. Luego, esas tablas bien acopladas deben alterarse para reflejar la nueva estructura y pueden no ser compatibles con la vieja.

Un motor de flujo de trabajo supera este desafío de dos maneras, utilizando la serialización para representar los datos y el proceso, y abstraer los puntos de integración, en particular la seguridad. El aspecto de serialización significa que los datos y el proceso pueden moverse juntos a través del sistema. Esto permite que las instancias de datos del mismo tipo sigan procesos completamente diferentes hasta el punto de que el proceso puede alterarse en tiempo de ejecución, agregando un nuevo estado, por ejemplo. Y nada de esto requiere cambiar el almacenamiento subyacente.

Los puntos de integración son medios para inyectar algoritmos en el proceso y lazos con las tiendas de autenticación (es decir, los usuarios que deben tomar medidas). Los algoritmos inyectados pueden incluir determinaciones de si se completa o no un estado, mientras que el ejemplo de las tiendas de autenticación es LDAP.

Ahora la compensación es una búsqueda difícil. Por ejemplo, debido a que los datos se serializan, generalmente no es posible consultar información histórica, aparte de recuperar los registros, deserializar y analizar el uso del código.

Casos de borde

El otro aspecto de una herramienta de flujo de trabajo es la experiencia incrustada en su diseño y funcionalidad que probablemente no considerará rodar el suyo y puede vivir para arrepentirse cuando lo necesita. Los dos casos que se me ocurren son tareas cronometradas y rutas de ejecución paralela.

Las tareas cronometradas están asignando una responsabilidad del actor de los datos después de que haya pasado una cierta duración. Por ejemplo, digamos que un comunicado de prensa se escribe y se envía para su aprobación, y luego se sienta durante una semana sin revisión. Lo que probablemente desee que haga su sistema es identificar ese documento persistente y llamar la atención de las partes apropiadas.

Las rutas de ejecución paralelas son poco comunes en mi experiencia (sistemas de gestión de contenido), pero sigue siendo una situación que surge con suficiente frecuencia. Es la idea de que se envía una pieza dada de dos rutas diferentes de revisión o procesamiento, solo para recombarse en algún momento posterior. Este tipo de problema requiere tener algoritmos de fusión útiles y la capacidad de representar los datos multiplicados simultáneamente. Tejer eso en una solución casera después del hecho es mucho más complicado de lo que parece, especialmente si desea realizar un seguimiento de los datos históricos.

Conclusión

Si no es probable que su sistema cambie, rodar el suyo puede ser una solución más fácil, particularmente si los cambios pueden romper la información anterior. Pero si sospecha que necesita ese tipo de durabilidad o experimentará algunos de estos escenarios poco comunes pero espinosos, una herramienta de flujo de trabajo proporciona mucha más flexibilidad y seguro que no se pintará en una esquina como procesos de datos y comerciales cambio.

Otros consejos

Prueba de ácido BPM (del modelado de procesos comerciales esenciales de Michael Havey, publicada por O'Reilly).

... BPM es adecuado solo para aplicaciones con un sentido esencial de estado o proceso, es decir, aplicaciones que están orientadas a los procesos. Una aplicación pasa la prueba de ácido BPM si está legítimamente orientada al proceso. La aplicación de la agencia de viajes, por ejemplo, pasa la prueba porque se entiende mejor en términos de estado del itinerario y se define en todo momento hasta cuán lejos ha llegado el itinerario. Otras características típicas de una aplicación orientada al proceso incluyen las siguientes:

  • Long -Running -

De principio a fin, el proceso abarca horas, días, semanas, meses o más.

  • Estado persistido -

Debido a que el proceso es de larga vida, su estado persiste a una base de datos para que supera el servidor que lo aloja

  • Bursty, duerme la mayor parte del tiempo -

El proceso pasa la mayor parte del tiempo dormido, esperando que ocurra el próximo evento desencadenante, momento en el que se despierta y realiza una oleada de actividades.

  • Orquestación del sistema o comunicaciones humanas -

El proceso es responsable de administrar y coordinar las comunicaciones de varios actores de sistemas o humanos.

... Por ejemplo, en una máquina cajera automatizada, que permite a los usuarios consultar el saldo de su cuenta, retirar efectivo, depositar cheques y efectivo, y pagar facturas, cualquier sentido de proceso es fugaz e inessencial; Un cajero automático es un procesador de transacciones en línea, no una aplicación orientada a procesos.

Tal vez hacer algunas preguntas podría ayudar.

¿Cambiarán los procesos? ¿Vivirá una versión anterior de un proceso mientras se producirá una versión más nueva del proceso? ¿Se debe medir el tiempo de ejecución de los procesos (y cada paso)?

¿Se trata de procesos comerciales (que orquesta el estado de múltiples recursos) o ciclos de vida de recursos (solo el estado de un solo documento/recurso)? ...

Lo siento si no es una gran respuesta.

Me gustaría echar un vistazo más de cerca a la necesidad de negocio que impulsa su esfuerzo (es decir,"caso de negocio").En mi comprensión de BPM/workflow puede tener uno o más de los siguientes objetivos:

1.Automatizar acciones

Este es usualmente requerida para reemplazar humano con la máquina a través de la automatización de tareas, tales como la creación de documentos, archivo de información, notificar a los usuarios, etc.

2.El seguimiento de cada uno de los procesos

Las empresas necesitan establecer seguimiento cuando hay un número significativo de procesos y negocios a los usuarios a perder la pista de ellos como de los que habitualmente se ejecuta en documentos de office, correos electrónicos.Cada solicitud externa para el estado (por ejemplo,desde un cliente) se convierte en una investigación.

3.Establecer el control

Para los gerentes es generalmente importante para obtener una vista de alto nivel para el proceso de estudio y estadísticamente:a ver si los Kpi se mantienen a, retrasos, excepciones, etc

4.Gestionar en el proceso de intercambio de documentos y la colaboración

BPMs a menudo sirven como un documento de cambio de herramienta, ya que a menudo el interruptor de activación del correo electrónico y la comunicación verbal a una trazabilidad de cambio en BPM

5.Automatizar el intercambio de datos entre los sistemas de la empresa

Esto es un puro integración de casos y generalmente se exige en el caso de un número de acciones que se han realizado ya con (o por) los diferentes sistemas, y hay una necesidad de automatizar el intercambio de información entre ellos.


Ahora, completo listo para usar BPMs son buenas para 2, 3 y a veces 4.jBPM y otros motores de flujo de trabajo son buenas para 1 y 3, pero con una importante salvedad - que requieren una compleja configuración/desarrollo.

SOA basada en la orquestación de procesos motores (a veces llamado BPM demasiado!) son buenas para (5) y (3).

Por favor, siéntase libre de agregar a la lista y discutir!He publicado esto como mi blog y elaboraron un poco más aquí: http://processmate.net/do-you-need-a-bpm-or-a-workflow/

En última instancia, todos los sistemas comerciales que tratan con el procesamiento de la información relacionada con el negocio son BPM o sistemas de flujo de trabajo. El procesamiento de información de cualquier empresa se puede describir en términos de flujos de trabajo o "procesos comerciales", que involucran roles y actividades.

El hecho de que estas actividades comerciales a menudo se describan en Java, C# u otros lenguajes de programación es básicamente el resultado de la automatización sin la tecnología madura para la prescripción y la descripción de los procesos comerciales con agentes automáticos.

El énfasis ha estado en el crecimiento, el tiempo hasta el mercado, etc., y la informatización se llevó a cabo sin un pensamiento adecuado sobre el mantenimiento y la flexibilidad a largo plazo. El 99% de lo que está en código ahora no debería ser.

Por el contrario, los sistemas de control en tiempo real, los videojuegos, la computación de alto rendimiento, el pronóstico, la inteligencia empresarial y el análisis matemático son ejemplos de problemas que no se prestan a la descripción gráfica del flujo de trabajo. Estas son cosas que deben hacer las computadoras y mantenidas por expertos en computadoras.

Los procesos comerciales deben ser prescritos, descritos y legibles para los expertos en operaciones comerciales. Las ganancias de flexibilidad se reconocerán cada vez más a medida que la tecnología que permite que esta (sistemas de flujo de trabajo) mejore y más ampliamente aceptada a medida que la economía mundial desestimen el "crecimiento".

  • Cuando desea proporcionar flexibilidad (cambios fáciles) al proceso, incluso para ejecutar procesos.
  • Cuando desea que los usuarios comerciales controlen el proceso. Esos son los expertos en dominios que poseen y definen los procesos. Al usar una solución BPM, les permite controlar el proceso utilizando herramientas de modelado en lugar de lenguajes de programación. Esto es esencial.
  • Cuando desea que el sistema escala fácilmente. Normalmente, los administradores del sistema tendrían la posibilidad de monitorear y operar el sistema. Si esto fuera posible también para los usuarios comerciales, entonces BPM podría ser una buena opción.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top