2009-05-18 13 views
6

Estamos en el proceso de reescribir un gran sistema heredado que hace un uso (des) extensivo de un motor de flujo de trabajo. En el futuro, me gustaría considerar alternativas a un motor de flujo de trabajo para la nueva aplicación. Una posibilidad muy interesante es un motor de reglas Space-based architecture +. ¿Qué otros paradigmas existen?¿Cuáles son algunas alternativas a un motor de flujo de trabajo?

Mencionaré que esta aplicación organiza complejos flujos de trabajo de publicación de documentos con muchos ajustes diferentes según el país/región/etc., pero me gustaría mantener las respuestas más generales si es posible.

Editar: He añadido una recompensa a esta pregunta para obtener más comentarios. Me gustaría saber de alguien que realmente ha implementado una alternativa de flujo de trabajo. Si no se produce nada, aceptaré la respuesta BPEL, aunque no estoy muy entusiasmado con la tecnología en sí.

+0

ni idea respecto al aspecto de programación, pero no nos fijamos en WWF (Windows Workflow Foundation)? http://msdn.microsoft.com/en-us/netframework/aa663328.aspx – balexandre

+0

No estoy buscando una aplicación de flujo de trabajo, sino más bien una alternativa al patrón de flujo de trabajo – rcampbell

+1

La razón de la falta de respuestas es que no lo hiciste t describe el problema real que estás tratando de resolver. La descripción se reduce a "lo que son alternativas a los flujos de trabajo para la aplicación que orquesta flujos de trabajo", lo que imposibilita cualquier respuesta más allá de "flujos de trabajo". – ima

Respuesta

2

Parece que una respuesta tan obvia, pero nadie más lo ha elevado, así que aquí va : ¿ha considerado el software de gestión de documentos (o contenido)?

0

NetBpm (un puerto de .Net jbpm) proceso basado

+0

No estoy pidiendo implementaciones alternativas de flujo de trabajo, sino alternativas a los motores de flujo de trabajo completamente – rcampbell

2

BPEL es una opción. Usted iría por esa ruta si imaginaba aprovechar las futuras herramientas de BPEL para el trabajo. De lo contrario, BPEL es un desastre complicado (como todas las soluciones generales de "todos se pueden enchufar").

Algo simple es darse cuenta de que el flujo de trabajo a menudo se trata de colas en lugar de flujo de trabajo. Es decir, se trata más de poner algo en el escritorio de alguien en lugar de dirigir el flujo del trabajo de acuerdo con un patrón rígido. En ese contexto, algo que tiene una cola, que es una etapa definida de trabajo, y luego se vincula a otros posibles trozos de trabajo de una manera flexible. Hay un proceso general, pero hay excepciones a ese proceso. Un motor de reglas puede mover cosas entre colas como una cuestión de proceso general (y poner en marcha procesos externos según sea necesario), con la opción de que un usuario mueva arbitrariamente cosas a la cola "correcta" cuando las reglas definidas no la cortan.

1

Bueno, ya ha mencionado el procesamiento basado en reglas. Un modelo de procesamiento basado en eventos es algo similar, pero está menos formalmente limitado en términos de respuesta a eventos. En general, no creo que uno deba adherirse exclusivamente a un modelo específico.

(Por ejemplo, un front-end basado en eventos -> basado en reglas de orquestación -.> Específica (lineal) de procesamiento de flujo de trabajo)

1

Si miras desde 30.000 pies de altura, tiene dos opciones:

  • un proceso de control encuestas colas y los almacenes de datos de cheques lo que es dónde, y que se mueven las cosas en base a un conjunto de reglas.
  • Un sistema que espera ser notificado de los eventos y los maneja según un conjunto de reglas.

En ambos casos las "reglas" se pueden definir en flujos de trabajo/orquestaciones, un motor de reglas o código.

Hemos elegido implementa sistemas basados ​​en los siguientes criterios:

  • reglas simples relativos, impemented directamente en el código
  • lógica compleja en el flujo de trabajo.Para que podamos mostrárselo al cliente, preguntarles si esto es lo que quieren decir, y saber que está bien, ya que lo que están mirando es lo que se ejecuta.
  • orquestación pub/sub para mover las cosas en base a un conjunto de reglas

trabajo con la tecnología EM por lo que para el tipo de sistema que describes, yo hubiera puesto en práctica en Sharepoint, que tiene una gestión de documentos flujos de trabajo integrados y del sistema para la gestión de documentos. La licencia Sharepoint de nivel de entrada Windows Sharepoint Services está incluida en el sistema operativo.

1

Desde una perspectiva de flujo de trabajo beso es nada más que las colas y las reglas del motor son sólo si los demás - tenemos un sistema de documentos para los que tenemos el flujo de trabajo como el procesamiento. Consideramos el flujo de trabajo de websphere y también WLI desde weblogic, pero uno simple con JMS (MDBs y consers de activación) con almacenamiento persistente ha funcionado muy bien para nosotros sin ningún problema. Creo que estás tomando el camino correcto aquí - ¡buena suerte!

2

que podría hacerlo estrictamente como un motor de máquina de estados finitos que se genera de forma dinámica en función del usuario o la cultura o lo que sea. Debería persistir el autómata particular como estado para las transacciones de larga ejecución. Luego, cuando el usuario recuerda el estado o toma otra "acción" (básicamente modelada como una transición de estado), permite que las transiciones tengan salida (máquina Mealy) o en el nuevo estado (máquina Moore).

-1

Se puede considerar Apache Camel. Es EIP y la mayoría de los Langugae de flujo de trabajo como si, la opción es compatible, pero tiene que escribir el código para ello.

Cuestiones relacionadas