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 UML Formato documenti XML Interfaccia utente XForms, Web Firma (lato client) XML-Signature Motore XSLT, DOM, JAVA Autenticazione 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 XFlow Instance Idea: una classe di documenti condivide oltre ad uno schema anche una descrizione di flusso
Descrizione del modello Schema n 1 Header 1 Instance Form n 1 Log 1 XFlow n 1
Struttura di XFlow XFlow Receive From + Send To Agent Action Permission WebService * Un iter documentale è descritto dal punto di vista degli agenti. Ogni agente può ricevere, elaborare ed inviare documenti ad altri agenti.
Istruzioni condizionali 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) Utente Direttore Capo Sez Merging Ammin. Ufficio Pers. approvato non approvato Creazione del modulo Archiviazione
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 Max Sum Append … Action=“ActionType”> <Select Nodeset=“XPathExp” From=“AgentName”>
Architettura Requisiti Possibili architetture Sicurezza Controllo Autenticazione Privacy Integrità Controllo Log Statistiche Tolleranza ai guasti Backup Ripristino Possibili architetture Centralizzata Distribuita
Soluzione centralizzata Casi d’uso Agente Utente Agente SW Autenticazione Selezione documenti Elaborazione Firma Controllo stato
Soluzione Centralizzata Funzionalità del motore XSLT DOM Java DBMS Server Client1 Client2 Client3
Soluzione centralizzata Un esempio di trasformazioni XSLT effettuate dal motore Mission.xml XSLT Agent.xsl SelectAgentBefore.xsl Agent.xml MissionHeader.xml XFormsCreator.xsl XForm.xhtml MissionForm.xml MissionXFlow.xml Packet.xml PacketCreator.xsl
Conclusioni Obiettivi raggiunti Possibili sviluppi 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