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
Scarica

Milano