Sistemi informativi/Workflow Management Coalition
WfMC(Workflow management coalition) è un consorzio formatosi per definire gli standard di interoperabilità tra workflow management system. Dalla sua fondazione l'utilizzo di XML si è sempre più diffuso e, ad oggi, utilizzato per la definizione del linguaggio XPDL, un linguaggio per l'interscambio di file di definizione di processi. Un altro standard in uso oggi è il Wf-XML.
XPDL (XML Process Definition Language)
[modifica | modifica sorgente]Un linguaggio basato su XML per la definizione di un processo, sviluppato dalla WfMC. L'obiettivo di XPDL è quello di memorizzare e scambiare diagrammi di processo, per consentire a tools di modellare un diagramma di processo, oppure per leggere e modificare lo schema stesso, oppure ancora per eseguire il modello del processo su un motore XPDL-compliant BPM, e così via. Per questo motivo, XPDL non è un linguaggio di programmazione eseguibile, ma un formato di progettazione che rappresenta letteralmente il "disegno" della definizione del processo. Proprio per questo utilizza coordinate 'XY' o coordinate vettoriali, assieme a linee e punti che definiscono i flussi di processo. Ciò consente a un XPDL di memorizzare una rappresentazione realistica di un diagramma di processo BPMN. Per questo motivo, XPDL è effettivamente il formato di file o "serializzazione" di BPMN.
Wf-XML
[modifica | modifica sorgente]WF-XML è stato progettato e implementato come un'estensione dell' Asynchronous OASIS Service Access Protocol (ASAP). ASAP fornisce un modo standardizzato per avviare e monitorare un programma che potrebbe richiedere molto tempo per essere completato. Inoltre fornisce la possibilità di monitorare il servizio in esecuzione, e di essere informato dei cambiamenti nel suo stato. WF-XML estende questo standard, fornendo ulteriori operazioni di servizio web che permettono l'invio e il recupero del "programma" o la definizione del servizio che viene fornito.
Workflow Reference Model
[modifica | modifica sorgente]Questo modello di riferimento è stato sviluppato identificando le interfacce delle generiche strutture applicative del workflow per permettere l'interoperabilità dei prodotti del workflow a vari livelli. Questa interoperabilità necessita di un set di interfacce standardizzate e di un formato di scambio dei dati.
Workflow Engine
[modifica | modifica sorgente]Il workflow engine è un software o engine che gestisce l'ambiente run-time di un'istanza di workflow. Tipicamente un workflow engine ha dei servizi che gli permettono di gestire:
- l'interpretazione della process definition
- il controllo degli stati di un processo(attivazione, sospensione,...)
- la navigazione attraverso le varie attività di un processo
- includere o escludere un particolare partecipante
- l'individuazione di workitems per l'utente e di un'interfaccia per supportare le interazioni degll'utente stesso
- la manutenzione dei workflow control data e dei workflow relevant data e il passaggio dei workflow relevant data da/a applicazione e utente
- un'interfaccia per la chiamata di applicazioni esterne ed il collegamento dei workflow relevant data
- azioni di supervisione, amministrazione e controllo degli scopi aziendali
Workflow Enactment Service
[modifica | modifica sorgente]Il Workflow Enactment Service si occupa dell'ambiente run-time nel quale abbiamo istanze di processo, utilizzando uno o più workflow management engines, responsabili dell'interpretazione e dell'attivazione di parte o di tutto il processo e dell'interazione con le risorse esterne necessarie al corretto funzionamento delle varie attività del processo. Nel modello adottato c'è una netta separazione tra le attività di controllo logico, che fanno parte del workflow enactment service, e i tools applicativi e i tasks a disposizione degli utenti che invece costituiscono i trattamenti associati a ciascuna attività. Questa separazione permette di avere tools applicativi standard o specifici perfettamente integrati con una particolare applicazione di workflow.
L'interazione con risorse esterne è possibile tramite l'utilizzo di una tra queste interfacce:
- client application interface, attraverso la quala un workflow engine si interfaccia con un gestore di worklist
- invoked application interface, che permetta al workflow engine di attivare direttamente un tool per svolgere una specifica attività
Un'architettura del genere rispecchia i WES centralizzati. Nei WES distribuiti si hanno più workflow engines, ognuno dei quali controlla una parte del processo attivo e si relazione con i tools applicativi e con gli utenti strettamente collegati con la parte di processo che controlla. Nei WES distribuiti si ha necessariamente bisogno di protocolli specifici per lo scambio di informazione e la sincronizzazione delle attività svolte dai vari workflow engine.