160 likes | 289 Views
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.
E N D
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 • 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 • workflow documentale: automazione e gestione di particolari documenti (pratiche) • agente: qualunque entità, sia umana che software, che interagisce con il documento Agent2 Agent5 Agent1 Agent4 Agent3
Descrizione del modello • Idea: una classe di documenti condivide oltre ad uno schema anche una descrizione di flusso Document Class Schema XFlow Instance
Schema 1 Header n 1 Form n 1 1 1 Log 1 n 1 XFlow Descrizione del modello Instance
Receive From + Permission * Agent Action + WebService * Send To + Struttura di XFlow • Un iter documentale è descritto dal punto di vista degli agenti. • Ogni agente può ricevere, elaborare ed inviare documenti ad altri agenti. XFlow
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> Creazione del modulo Archiviazione 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> …
Min Max Sum Append … Action=“ActionType”> Merging • Problemi relativi alla fusione di documenti <Select Nodeset=“XPathExp” From=“AgentName”>
Architettura • Autenticazione • Privacy • Integrità Sicurezza • Requisiti Controllo • Log • Statistiche Tolleranza ai guasti • Backup • Ripristino • Possibili architetture Centralizzata Distribuita
Autenticazione Selezione documenti Elaborazione Agente Firma Utente Agente SW Controllo stato Soluzione centralizzataCasi d’uso
Soluzione CentralizzataFunzionalità del motore Server XSLT DOM DBMS Java Client1 Client2 Client3
MissionHeader.xml PacketCreator.xsl SelectAgentBefore.xsl MissionXFlow.xml Packet.xml Agent.xsl Mission.xml XSLT XSLT XSLT Agent.xml MissionForm.xml XFormsCreator.xsl XForm.xhtml XSLT Soluzione centralizzata Un esempio di trasformazioni XSLT effettuate dal motore
Conclusioni • Possibili sviluppi • Creazione di una applicazione distribuita basata su agenti mobili • Implementazione di strumenti Case per la creazione di iter documentali • Obiettivi raggiunti • Definizione di un modello per rappresentare iter documentali • Realizzazione di un prototipo per gestire un workflow documentale