Descrizione e gestione di workflow documentali con una applicazione basata su XML Dott. Oreste Signore Dott. Andrea Marchetti Ing. Maurizio Tesconi Obiettivi • Definizione di un modello concettuale per descrivere un iter documentale. • Realizzazione di un sistema per la gestione di workflow documentali. Ambiente di riferimento Knowledge Management Semantic Web Web Services E-governement AIPA (Autorità per l’Informatica nella Pubblica Amministrazione) Italia.gov.it (gestione delle Pratiche OnLine) Open source Open-Flow, PAFlow Tecnologie di riferimento • • • • • Rappresentazione dei flussi Formato documenti Interfaccia utente Firma (lato client) Motore • Autenticazione UML XML XForms, Web XML-Signature XSLT, DOM, JAVA SSL XML XForms XML-Signature Descrizione del modello Agent2 Agent1 Agent4 Agent5 Agent3 • workflow documentale: automazione e gestione di particolari documenti (pratiche) • agente: qualunque entità, sia umana che software, che interagisce con il documento Descrizione del modello Document Class Schema Instance XFlow • Idea: una classe di documenti condivide oltre ad uno schema anche una descrizione di flusso Descrizione del modello Schema 1 n 1 Instance n Form Header 1 1 1 1 n 1 XFlow Log Struttura di XFlow Receive + From * XFlow + Agent Permission Action * WebService Send + To • Un iter documentale è descritto dal punto di vista degli agenti. • Ogni agente può ricevere, elaborare ed inviare documenti ad altri agenti. L’elemento Action <Action> <WebService action=“ServiceName” /> <Permission nodeset=“XpathExp” attribute=“value” /> attribute può valere: • readonly • required • relevant </Action> Istruzioni condizionali • <if test=“XPathExp”> … </if> • <choose> <when test=“XPathExp”> … </when> <otherwise> … </otherwise> </choose> Esempio (missione) Creazione del modulo Archiviazione Utente Ammin. Capo Sez Merging non approvato non approvato Ufficio Pers. Direttore approvato approvato … Esempio (missione) <Agent Name="Direttore"> <Receive> <From>Merging</From> </Receive> <Action> <Permission nodeset="//Richiedente/*|//DescrizioneMissione/* |//CapoSezione/*|//Amministrazione/*" readonly="true()"/> <Permission nodeset="//Direttore/Approvato" required="true()"/> </Action> <Send> <choose> <when test="//Direttore[Approvato='true']"> <To>UfficioPersonale</To> </when> <otherwise> <To>Utente</To> </otherwise> </choose> </Send> </Agent> … Merging • Problemi relativi alla fusione di documenti Min <Select Nodeset=“XPathExp” From=“AgentName”> Action=“ActionType”> Max Sum Append … Architettura • Requisiti Sicurezza • • • Autenticazione Privacy Integrità Controllo • • Log Statistiche Tolleranza ai guasti • • Backup Ripristino • Possibili architetture Centralizzata Distribuita Soluzione centralizzata Casi d’uso Autenticazione Selezione documenti Agente Elaborazione Firma Controllo stato Utente Agente SW Soluzione Centralizzata Funzionalità del motore Server XSLT DOM Java Client1 DBMS Client2 Client3 Soluzione centralizzata Un esempio di trasformazioni XSLT effettuate dal motore MissionHeader.xml Mission.xml PacketCreator.xsl XSLT SelectAgentBefore.xsl MissionXFlow.xml XSLT Agent.xsl Packet.xml XSLT MissionForm.xml XFormsCreator.xsl XSLT Agent.xml XForm.xhtml Conclusioni • Obiettivi raggiunti – Definizione di un modello per rappresentare iter documentali – Realizzazione di un prototipo per gestire un workflow documentale • Possibili sviluppi – Creazione di una applicazione distribuita basata su agenti mobili – Implementazione di strumenti Case per la creazione di iter documentali