Candidato: Maurizio Tesconi Università degli Studi di Pisa Tesi di Laurea Descrizione e gestione di workflow documentali con una applicazione basata su XML Candidato: Maurizio Tesconi Relatori Prof. Andrea Tomasi Prof Gianluca Dini Dott. Oreste Signore Dott. Andrea Marchetti
Obiettivi Ambiente di riferimento 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
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 Receive From + Action Permission WebService * XFlow Agent + Send To + 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) <?xml version=“1.0”?> <Missione> <Richiedente/> <Descrizione/> … </Missione> Archiviazione Creazione del modulo Utente Capo Sez Ammin. 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 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 Autenticazione Selezione documenti Agente Controllo stato Firma Elaborazione Utente Agente SW
Soluzione Centralizzata Funzionalità del motore Server XSLT DOM DBMS Java 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