Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
Francesco MAGNI
Matricola n. 711327
Francesco MAGNI
Student Id n. 711327
This work deals with the complete generation of web applications from
extended process models.
The purpose is to provide some tools which can support the development
of the application in all its phases, from the requirements specification to the
design and the final deployment.
The proposed method is based on a model-to-model trasformation; this
mechanism starts from the business process model and produces a simplified
web application model. Workflow diagrams are represented using the BPMN
notation. This notation has been extended with a new property, called
typization, in order to specify the action type of activities. This new feature
brings to a more precise definition of application models.
In addition, this work deals with the problem of the process status control;
a workflow control panel has been designed and implemented in order to
monitor the system status.
The result of this master thesis is an automatic method for generating
model-driven web applications, based on BPMN diagrams. Some special
WebML components set the hypertext model free from process management
tasks; for this reason the model obtained is more readable and easier to
mantain. The generated web applications are based on workflow constraits,
and allow users to execute the activities and monitor the system status.
i
Sommario
ii
Ringraziamenti
iii
Indice
1 Introduzione 1
2 Background 4
2.1 Workflow e BPMN . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 Eclipse BPMN Modeler . . . . . . . . . . . . . . . . . 8
2.2 WebML e WebRatio . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 BPMN Modeler in WebRatio . . . . . . . . . . . . . . 13
2.3 Tecnologie di trasformazione . . . . . . . . . . . . . . . . . . . 15
3 Da BPMN a WebML 18
3.1 Trasformazione da BPMN a WebML . . . . . . . . . . . . . . 22
3.1.1 Specifica dei requisiti . . . . . . . . . . . . . . . . . . . 22
3.1.2 Progettazione . . . . . . . . . . . . . . . . . . . . . . . 24
3.2 Tipizzazione delle attività . . . . . . . . . . . . . . . . . . . . 35
3.2.1 Specifica dei requisiti . . . . . . . . . . . . . . . . . . . 37
3.2.2 Progettazione . . . . . . . . . . . . . . . . . . . . . . . 38
3.3 Cruscotto di controllo processi . . . . . . . . . . . . . . . . . . 43
3.3.1 Specifica dei requisiti . . . . . . . . . . . . . . . . . . . 44
3.3.2 Progettazione . . . . . . . . . . . . . . . . . . . . . . . 45
4 Implementazione 55
4.1 Trasformazione da BPMN a WebML . . . . . . . . . . . . . . 56
4.2 Tipizzazione nel BPMN Modeler . . . . . . . . . . . . . . . . . 57
4.3 Tipizzazione in WebRatio . . . . . . . . . . . . . . . . . . . . 60
iv
INDICE v
5 Caso di studio 68
5.1 Generazione dello scheletro dell’applicazione . . . . . . . . . . 69
5.2 Generazione basata su tipizzazione delle attività . . . . . . . . 72
5.3 Raffinamento del modello . . . . . . . . . . . . . . . . . . . . 74
5.4 Salvataggio e riuso dei nuovi tipi . . . . . . . . . . . . . . . . 76
6 Lavori correlati 78
Bibliografia 84
Capitolo 1
Introduzione
1
CAPITOLO 1. INTRODUZIONE 2
Background
4
CAPITOLO 2. BACKGROUND 5
• processo: astrazione del lavoro che deve essere eseguito; insieme di tutte
le operazioni da svolgere e delle informazioni sull’ordine in cui vanno
effettuate;
• attività: indica l’unità di lavoro che deve essere eseguita; l’insieme delle
attività e dei collegamenti tra loro vanno a costituire il processo;
Modelli di workflow
Esistono diversi modelli in grado di descrivere il flusso di lavoro in modo
rigoroso; i più usati sono UML, XPDL e BPMN.
CAPITOLO 2. BACKGROUND 6
• eventi (events):
3
Un gateway è un elemento che consente di controllare il workflow, ovvero come e
quando il processo si suddivide e si ricongiunge.
CAPITOLO 2. BACKGROUND 9
contenitori dei dati che vengono offerti all’utilizzatore. Le unit sono dei con-
tenitori atomici di informazioni, utilizzati per pubblicare i dati descritti nel
data model. Esistono sette tipi predefiniti di unit in WebML: Data, Multi-
Data, Index (con le sue varianti Multichoice e Hierarchical), Entry e Scroller.
Ogni unit è associata ad un’entità sottostante, dalla quale viene prelevato il
contenuto informativo. In alcuni casi è utile associare alla unit un selettore,
per specificare quali istanze delle entità devono essere considerate. La navi-
gazione del sito è specificata attraverso i collegamenti. Questi possono essere
definiti tra le unit interne ad una singola pagina, tra unit posizionate in pa-
gine diverse e tra le pagine stesse. Le informazioni trasportate attraverso un
link sono chiamate contesto di navigazione, o più semplicemente contesto. I
collegamenti che trasportano il contesto sono chiamati contestuali, gli altri
non contestuali. In figura 2.4 un esempio di specifica di un ipertesto.
Il modello di presentazione è necessario per definire l’aspetto delle pagine.
WebML non include un modello specifico per esprimere la presentazione a
livello concettuale, ma utilizza approcci standard, più familiari agli esper-
ti di grafica e comunicazione. Dato che le specifiche WebML possono essere
rappresentate usando XML [27], la presentazione è considerata come una tra-
sformazione di un documento WebML in una pagina scritta con un linguaggio
di implementazione concreto, come JSP o ASP.NET. Di conseguenza, la pre-
sentazione in WebML è gestita applicando dei fogli di stile XSL alle pagine,
alle unit e ai sotto-elementi di queste. I fogli di stile XSL hanno come input le
CAPITOLO 2. BACKGROUND 12
• a partire dal modello dei dati viene generato il database fisico. Vice-
versa è anche possibile connettersi ad un database già esistente e rico-
struire automaticamente il corrispondente modello dei dati. E’ possibile
definire più di un database fisico per la propria applicazione;
5
Gli strumenti CASE (Computer-Aided Software Engineering, ovvero ingegneria del
software assistita dal computer) sono particolari programmi che supportano lo sviluppo
del software attraverso interfacce grafiche e librerie di funzionalità.
CAPITOLO 2. BACKGROUND 13
basate sul flusso di lavoro è quello di estendere il modello WebML con delle
nuove primitive7 in grado di gestire le attività ed i case, recuperare le infor-
mazioni necessarie per l’esecuzione delle attività e tenere traccia dello stato
del processo. In questo modo la gestione del flusso di lavoro viene delegata
a queste nuove unit, che si occupano di tutti gli aspetti legati al workflow.
Queste unit possono essere considerate delle macro8 in grado di farsi carico
della gestione dei processi. Utilizzando questo approccio è comunque neces-
sario estendere il modello dei dati per consentire di rendere persistenti i dati
utilizzati dalle nuove primitive.
Le prime due soluzioni citate hanno però diverse controindicazioni:
Per questi motivi, come punto di partenza per lo sviluppo del presente
lavoro, è stato scelto il terzo tipo di approccio, vale a dire quello che prevede
l’estensione del modello WebML con nuove primitive orientate al workflow.
Capitolo 3
Da BPMN a WebML
18
CAPITOLO 3. DA BPMN A WEBML 19
In figura 3.1 si può vedere uno schema riassuntivo delle fasi attraver-
so le quali avviene la trasformazione. Nella figura vengono evidenziate le
operazioni che non richiedono l’intervento dell’utente ma vengono svolte in
automatico.
Nel primo caso, dato che le attività sono strettamente legate alle politiche
aziendali, non è possibile in fase di modellazione BPMN consentire all’ana-
lista business di scegliere tra attività già pronte. Sarà dunque necessario
modellare manualmente i moduli richiesti. L’aspetto innovativo, in questo
caso, riguarda la possibilità di salvare i moduli implementati in apposite li-
brerie, in modo da renderli riusabili al momento della modellazione di altri
processi contenenti attività analoghe.
Nel secondo caso, con attività ad esempio quali “Ricerca esame” o “Scel-
ta appello”, i moduli corrispondenti sono tipici del contesto universitario e
quindi spesso utilizzati. Dare la possibilità di scegliere all’interno di una li-
breria di attività già implementate, al momento della creazione del diagram-
ma nel tool BPMN, rappresenta un’innovazione che rende la generazione
dell’applicazione finale più semplice e veloce.
E’ possibile inoltre ottenere il risultato finale come combinazione tra i due
approcci citati: se per processi precedenti sono già stati implementati i modu-
li personalizzati propri del contesto dell’azienda, questi saranno selezionabili
nel diagramma BPMN cosı̀ come quelli predefiniti.
In questo capitolo si spiega attraverso quali passaggi viene effettuata
la trasformazione e quali vantaggi vengono offerti dalle nuove funzionalità
progettate ed implementate.
CAPITOLO 3. DA BPMN A WEBML 22
3.1.2 Progettazione
Modello dei dati
– name: nome del case (ad esempio “Richiesta prestito Mario Rossi”
per il processo “Richiesta prestito”)
– status: attuale stato del case; gli stati possibili sono i seguenti:
1. Instantiated: il case è stato creato ma non è ancora entrato
in esecuzione
2. Executing: il case è attualmente in esecuzione (almeno la
prima attività ha avuto inizio)
1
il diagramma ER, o entità-relazione, è un modello per la rappresentazione concettuale
dei dati; per ulteriori informazioni si veda [34].
2
Rappresentano classi di oggetti che hanno proprietà comuni ed esistenza autonoma ai
fini dell’applicazione di interesse. Un’occorrenza di un’entità è un oggetto della classe che
l’entità rappresenta [34].
CAPITOLO 3. DA BPMN A WEBML 25
• Module: per Module si intende una particolare site view, ovvero una
serie di pagine eventualmente collegate tra loro ma non con il resto
dell’applicazione. La suddivisione in moduli (o site view) è utile per la
gestione degli accessi degli utenti. Gli attributi sono:
Una volta che è stato fissato il modello dei dati del WebML finale, è possi-
bile definire i passaggi attraverso i quali avviene il cuore della trasformazione,
ovvero la generazione del modello.
Nella figura 3.5 è rappresentato un esempio di diagramma BPMN creato
con il Modeler in ambiente WebRatio. Un esempio simile verrà trattato in
dettaglio nel capitolo 5, dalla fase di creazione del diagramma di workflow
alla generazione del modello con attività tipizzate e cruscotto di controllo.
Attraverso la trasformazione verrà generato un modello web contenente il
data model trattato nel paragrafo precedente ed una module view necessaria
alla gestione del flusso. In questa module view saranno presenti un modulo
per ogni attività presente nel diagramma (vedi figure 3.6 e 3.7) ed uno per
ogni gateway (vedi figura 3.8).
attività manuali, o ad una Operation Unit fittizia (che non effettua alcuna
operazione) per quelle automatiche. Gli elementi interni di un modulo devono
essere in generale trattati dal designer in modo da ottenere tutto il necessa-
rio (pagine, link, unit, script...) per l’esecuzione dell’attività corrispondente.
Nel paragrafo 3.2 si analizzeranno tuttavia dei metodi per trattare in modo
automatizzato anche i contenuti dei moduli.
Gateway
Sincronizzazione
3.2.2 Progettazione
Entriamo ora nel dettaglio di come è stato progettato il processo di
tipizzazione.
CAPITOLO 3. DA BPMN A WEBML 39
Quando tutti i moduli sono stati completati, si può passare alla fase di
generazione dell’applicazione web vera e propria (vedi capitolo 4).
I moduli personalizzati che sono stati salvati saranno poi utilizzabili al pa-
ri dei moduli predefiniti. In figura 3.14 si può vedere come nella lista dei tipi
disponibili sia stato inserito il tipo “Controllo piano di studi”, implementato
e salvato dal designer.
Sincronizzazione
Come anticipato nella specifica dei requisiti, il problema della sincronizza-
zione richiede una particolare attenzione. Infatti le attività tipizzate possono
creare dei problemi quando il diagramma BPMN viene modificato e si cerca
di aggiornare successivamente il modello WebML.
CAPITOLO 3. DA BPMN A WEBML 42
Al fine di poter tenere sotto controllo tutto quello che sta avvenendo in
un determinato momento è utile rappresentare in modo veloce ed intuitivo
il numero di case e di attività in esecuzione. Deve essere possibile accede-
re rapidamente al log degli eventi attivi e ai dati sugli utenti e sui gruppi
attualmente impegnati. E’ inoltre molto utile avere informazioni temporali,
come i tempi di esecuzione, e numerici, come il numero di entità in stato di
esecuzione.
3.3.2 Progettazione
Il cruscotto di controllo processi è stato progettato come una particolare
site view, inseribile nei modelli WebML basati sul workflow attraverso un
plug-in di WebRatio. Una volta generato il modello web sarà possibile, at-
traverso tale plug-in, aggiungere la site view chiamata WorkflowControlPanel
(vedi figure 3.15 e 3.16).
L’inserimento della site view prevede una serie di controlli, al fine di
garantire che il modello web rispetti i requisiti dei modelli generati attraverso
la trasformazione. Affinché il cruscotto possa essere aggiunto è necessario che:
• tale web project abbia un data model coerente con quello dei progetti
generati attraverso la trasformazione;
3. Search
Prima di procedere con i dettagli sulle aree, è opportuno aprire una paren-
tesi sullo strumento utilizzato per la rappresentazione dinamica dei grafici:
Google Chart API 10 . La Google Chart API è un tool estremamente sempli-
ce che permette di creare facilmente un diagramma partendo da una serie
di dati e di inserirlo in una pagina web. Si includono i dati e i parametri
di formattazione in una richiesta HTTP, e Google restituisce un’immagine
PNG del diagramma. Sono supportati molti tipi di grafico, e collocando la
richiesta in un tag di un’immagine si può includere il diagramma in una pa-
gina web in modo semplice [12]. All’interno delle pagine di dettaglio, che
verranno analizzate nei paragrafi successivi, è stata sfruttata questa API per
tutti i tipi di rappresentazione grafica.
Entriamo ora nelle specifiche progettuali delle aree del cruscotto. Per
ognuna delle seguenti aree è stata inserita l’immagine di una delle pagine
modellate, a titolo esemplificativo.
10
La Application Programming Interface (API), o Interfaccia di Programmazione di
un’Applicazione, è un insieme di procedure disponibili al programmatore, di solito
raggruppate per formare un set di strumenti specifici per un determinato compito [33].
CAPITOLO 3. DA BPMN A WEBML 49
Sono poi presenti le seguenti pagine, di cui si elencano gli elementi prin-
cipali:
• User details (vedi figura 3.19, descritta alla fine di questa sezione):
contiene i dettagli sull’utente e sui gruppi di appartenenza, i collega-
menti alle attività assegnate all’utente e alcune informazioni statistiche:
le attività in esecuzione, sospese e terminate e la media dei tempi di
esecuzione;
CAPITOLO 3. DA BPMN A WEBML 52
La pagina in figura 3.19 ruota intorno alla Data Unit contenente i det-
tagli sull’utente (“User Details”). Oltre ai dati sui gruppi e sulle istanze di
attività relative all’utente, alcune Query Unit e una Script Unit si occupano
di ricavare ed elaborare i dati necessari per il riempimento di una Entry Unit
contenente alcune informazioni di tipo statistico sull’utente, come il numero
di attività divise per stato ed il tempo medio di esecuzione delle attività.
Search
Implementazione
55
CAPITOLO 4. IMPLEMENTAZIONE 56
1
Un Operation Module è un modulo composto di sole operazioni.
2
Un Hybrid Module è composto sia da Operation Unit che da Content Unit.
CAPITOLO 4. IMPLEMENTAZIONE 57
Tale codice rappresenta la porzione del modello WebML finale da cui par-
tirà la creazione dell’applicazione. Dato che questo codice contiene soltanto
lo stub del modulo, e viene generato dinamicamente per tutte le attività
non tipizzate (con elementi diversi a seconda che esse siano manuali o auto-
matiche), nella trasformazione viene sfruttata l’assegnazione dinamica degli
identificatori delle unit. A seconda del numero di attività presenti e delle
CAPITOLO 4. IMPLEMENTAZIONE 58
unit già implementate nel progetto web, le classi che si occupano della tra-
sformazione lasciano a WebRatio il compito di stabilire gli identificatori di
unit e link.
Nel caso in cui invece viene sfruttata la tipizzazione, il discorso è diverso:
dato che i moduli devono essere implementati in base a quelli salvati nelle
librerie, gli identificatori degli elementi presenti al loro interno dovranno es-
sere rappresentati in modo univoco e senza la possibilità di creare collisioni
dovute alla non unicità di uno di essi. Per questo, i moduli predefiniti saran-
no dotati di id speciali, formati secondo delle regole precise in base al nome
del file e della libreria in cui sono contenuti. In figura 4.2 si può vedere un
esempio di come viene generata dinamicamente una unit nel caso di attività
non tipizzata e di come la stessa unit venga trattata all’interno del file XML
di un modulo tipizzato.
2. si controlla quali entità e quali relazioni presenti nel modello dei da-
ti sono necessarie per garantire il funzionamento delle unit interne al
modulo;
L’uso del nome della libreria come prefisso per gli identificatori delle entità
e delle relazioni consente di evitare collisioni nel momento in cui si cerca di
tipizzare due attività, scegliendo tra i tipi di una stessa libreria, che fanno uso
di entità o relazioni comuni. In questo modo, ad esempio, l’entità “Esame”,
essendo comune alle attività “Ricerca esame” e “Iscrizione esame”, non verrà
inserita due volte all’interno del modello dei dati.
CAPITOLO 4. IMPLEMENTAZIONE 62
parte destra, invece, vengono visualizzati gli attributi scelti e le entità a cui
appartengono e vengono definite le condizioni. Il codice corrispondente alla
pagina di ricerca avanzata viene generato a partire da quanto rappresentato
in figura 3.20. Il risultato di questa query viene visualizzato in un’apposita
pagina (vedi figura 4.7); in questa pagina sono presenti anche i collegamenti
per raggiungere le pagine di dettaglio delle entità prodotte come risultato
della query.
Caso di studio
68
CAPITOLO 5. CASO DI STUDIO 69
I due moduli rappresentati nelle figure saranno presi come riferimento per
mostrare i passaggi successivi alla prima trasformazione nei prossimi para-
CAPITOLO 5. CASO DI STUDIO 70
dati. Nel caso del tipo “Inserimento dati utente”, bisogna inserire l’entità
“Nuovo utente” (rappresentata in figura 5.8).
Figura 5.9: Pagina generata dal modulo “Inserimento dati utente” dopo la
tipizzazione
Figura 5.12: Pagina generata dal modulo “Inserimento dati iscrizione” dopo
la tipizzazione
Figura 5.13: Nuovo diagramma BPMN con attività comuni a quelle salvate
Lavori correlati
In [5] sono citati molti dei progetti che affrontano l’argomento di integra-
zione tra il design di applicazioni web e i processi di business. La motivazione
dell’esistenza di cosı̀ tanti gruppi di ricerca che si occupano della stessa pro-
blematica si basa sulla convinzione, comune e giustificata, che il paradigma
dell’interazione basata su web sia quello più indicato per l’implementazione
dell’interfaccia utente nel contesto dei processi aziendali.
Il PML (Process Modeling Language [19]) è una notazione molto imme-
diata per la descrizione di schemi di flusso di lavoro, molto simili a quelli
espressi attraverso la notazione BPMN. Nell’articolo citato viene spiegato
come una specifica espressa in PML possa essere tradotta in una semplice
web application che consente agli utenti di partecipare al processo ed ese-
guirne le attività. Gli ipertesti che vengono definiti sono concettualmente
molto vicini a quelli del presente lavoro. Ci sono tuttavia alcune differenze
sostanziali che distinguono l’approccio basato su PML da quello di questa
tesi:
78
CAPITOLO 6. LAVORI CORRELATI 79
82
CAPITOLO 7. CONCLUSIONI E SVILUPPI FUTURI 83
predefiniti per consentire una scelta più ampia al momento della tipizzazione,
in modo tale da rendere necessario il design solo nei casi più particolari. Il
terreno della generazione automatica di contenuti è ancora poco esplorato:
è dunque necessario verificare le sue reali potenzialità in maniera più appro-
fondita. Inoltre, il cruscotto di controllo rappresenta soltanto uno spunto
per la progettazione di sistemi di controllo più complessi, presumibilmente
parametrici e personalizzabili in base alle esigenze del contesto aziendale in
cui vengono collocati. Infine, sarà importante mettere in atto tutte le funzio-
nalità proposte e progettate in casi di utilizzo reale, per evidenziarne i punti
deboli e per ricavare i requisiti delle migliorie che sarà necessario apportare.
Bibliografia
[1] Roberto Acerbis, Aldo Bongio, Marco Brambilla, and Stefano Butti.
Webratio 5: An eclipse-based case tool for engineering web applications.
International Conference on Web Engineering (ICWE), 2007.
[2] Roberto Acerbis, Aldo Bongio, Marco Brambilla, Stefano Butti, Stefano
Ceri, and Piero Fraternali. Web applications design and development
with webml and webratio 5.0. TOOLS Europe, 2008.
[5] Marco Brambilla, Stefano Ceri, Piero Fraternali, and Ioana Manolescu.
Process modeling in web applications. ACM Transactions on Software
Engineering and Methodology (TOSEM), 2006.
[6] Marco Brambilla, Sara Comai, Piero Fraternali, and Maristella Matera.
Designing web applications with webml and webratio. Modeling and
Implementing Web Applications (Human-Computer Interaction Series),
2007.
84
BIBLIOGRAFIA 85
[9] dom4j.
http://www.dom4j.org.
[13] Groovy.
http://groovy.codehaus.org.
[15] Nora Koch and Andreas Kraus. The expressive power of uml-based
engineering. Second International Workshop on Web Oriented Software
Techonlogy (CYTED), 2002.
[16] Nora Koch, Andreas Kraus, Cristina Cachero, and Santiago Melia. In-
tegration of business processes in web application models. Journal of
Web Engineering, 2004.
[17] Fernando Lyardet, Gustavo Rossi, and Hans Albrecht Schmidt. Engi-
neering business processes in web applications: Modeling and naviga-
tion issues. Third International Workshop on Web Oriented Software
Technology, 2003.
[24] Gustavo Rossi and Hans Albrecht Schmidt. Modeling and designing
processes in e-commerce applications. IEEE Internet Computing, 2004.
[25] Victoria Torres and Vicente Pelechano. Building business process driven
web applications. Business Process Management, 2006.
[26] Olga De Troyer and Sven Casteleyn. Modeling complex processes for
web applications using wsdm. Third International Workshop on Web
Oriented Software Technology, 2003.