Domanda

Attualmente abbiamo un'applicazione basata su un motore di flusso di lavoro sviluppato interno con DSL basato su YAML. Stiamo cercando di spostare parti su Java.

Ho scoperto una serie di soluzioni Java come Intalio, JBPM, Drools Expert, Drools Flow ecc. Sembrano rivolti alle aziende in cui l'analista aziendale crea i flussi di lavoro usando un editor grafico e li invia al motore del flusso di lavoro. Sembrano orientati verso la facilità d'uso per le persone non tecniche piuttosto che per gli sviluppatori con particolare attenzione all'interazione umana.

I flussi di lavoro tendono a sembrare.

Discover-a-file        -\
                         -> join -> process-file -> move-file -> register-file 
Discover-some-metadata -/

In caso di fallimento del passaggio, dobbiamo riprovarlo x volte. Dobbiamo anche essere in grado di fermare il sistema ed essere in grado di riavviarlo e farlo continuare da dove si trovava (durevole).

Alcuni dei nostri flussi di lavoro possono essere definiti da una serie di obiettivi che dobbiamo raggiungere, quindi le regole all'indietro di Jess che concavano i suoni interessanti ma non è open source.

Potrebbe essere che quello che stiamo cercando sia un motore a macchina a stato finito o solo un bus di servizio aziendale e fare tutto come code JMS.

Esiste un buon motore di flusso di lavoro open source che è sia basato su standard ma anche orientati agli sviluppatori. Non vogliamo particolarmente utilizzare un progettista grafico del flusso di lavoro o scrivere risme di XML e dovrebbe essere idealmente in Java o agnostico del linguaggio (fa richiedere le chiamate di riposo/sapone a servizi esterni).

Grazie, Tom

È stato utile?

Soluzione

Tutti e due Attiviti e Bonita sono open source e basati su standard (BPMN2). Vedi ad esempio questo post sul blog.

Ruote non è basato su standard ma sembra vicino al tuo approccio DSL e funziona su un JVM grazie a JRUBY.

Altri suggerimenti

Intaloi Un motore BPM open source che offre un designer BPMN-support e un motore BPEL. È scritto in Java.

JBPM 5 (Open Source, ASL, BPMN2) è appena rilasciato ed è il meglio del flusso di Shrools e JBPM 4. È leggero ma può anche integrarsi profondamente con il motore delle regole Drools per prendere decisioni.

Camunda BPM è un motore di flusso di lavoro open source adatto agli sviluppatori che si basa sugli standard aperti BPMN 2.0, DMN 1.1 e CMMN 1.1.

Mentre viene fornito con un file comodo designer di flusso di lavoro grafico viene anche spedito con a API fluente per costruire flussi di lavoro a livello di livello. Camunda è scritta in Java, ma può anche essere invocata da altre lingue tramite il suo API REST E può Effettua le chiamate di riposo/sapone a servizi esterni.

Per chiunque cerchi una soluzione di grado aziendale basato su Python.

Zengine, è un framework basato sul flusso di lavoro GPL3 BPMN con tornado, AMQP di coniglio, autorizzazioni avanzate, caratteristiche di impalcature estensibili e altro ancora.

Costruito sopra i seguenti componenti principali;

  • Spiffworkflow: potente motore del flusso di lavoro con supporto BPMN 2.0.
  • Tornado: Tornado è un framework Web Python e una biblioteca di networking asincrona.
  • Pyoko: Django Esque Orm per Riak KV Store. RabbitMQ: server AMQP Fast, UltraSharp scritto con il leggendario Erlang Lang.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top