90 likes | 201 Views
Modellazione dei processi con WFDL (WIDE-like). WFDL. WFDL (WorkFlow Definition Language) è un linguaggio per descrivere processi WIDE (visto a lezione) è un esempio di sistema che usa WFDL In questa esercitazione si modellerà il processo di revisione di un articolo scientifico con WFDL.
E N D
WFDL • WFDL (WorkFlow Definition Language) è un linguaggio per descrivere processi • WIDE (visto a lezione) è un esempio di sistema che usa WFDL • In questa esercitazione si modellerà il processo di revisione di un articolo scientifico con WFDL
Il processo (1) Si consideri il processo di revisione di un articolo scientifico sottomesso per la pubblicazione ad una rivista. Ogni volta che l’editor riceve un lavoro lo invia ad un insieme di revisori che devono esprimere un giudizio (rifiuto od accettazione) entro 60 giorni. ....
Il processo (2) Ottenuta risposta dalla maggioranza dei revisori, l’editor decide se pubblicare o meno il lavoro. Si modelli il processo con WFDL, progettando per ciascun task come dati temporanei e permanenti vengono manipolati
Metodo di soluzione Metodo top-down per raffinamenti successivi • Nel primo schema di raffinamento si usano sole primitive elementari e non viene considerata l’interazione con i database • Nel secondo schema viene progettato uno skeleton del database e si dettagliano con precisione tutti i task
J Dispatch J Reject Primo schema Paper receival J Collect Reports K approved() = yes otherwise Accept
Exists (select * from IncomingPaper) Paper receival Editor receives the paper and decides the number of referee Get Paper; get NumberOfReferees; insert into Submission values (Paper.Author, Paper.Title, Paper.Number, “Evaluation”); delete from IncomingPaper where IncomingPaper.Author = Paper.Author IncomingPaper[Title,Author] Paper[Title,Author,Number] Submission[Title,Author,Number,Status] Referee[Name,Number] UnderRevision[PaperNumber,Reviewer,Evaluation] Secondo schema precondizioni nome e descrizione del task azioni eccezioni
NumberOfReferees NumberOfReferees Dispatch Editor sends the manuscript to each referee CollectReports Each referee evaluates the paper he receives, and submits his vote; a secretary enters the vote get Referee; insert into UnderRevision values (Paper.Number,Referee.Number,NULL); get Vote, Referee.Number; update UnderRevision set Evaluation = Vote where Reviewer = Referee.Number and PaperNumber = Paper.Number; NumberOfReferees RefereeQuorum
Accept Editor accepts the paper and notifies the author Reject Editor rejects the paper and notifies the author update Submission set Status = “Accepted” where Number = Paper.Number; delete from UnderRevision where PaperNumber = Paper.Number; update Submission set Status = “Rejected” where Number = Paper.Number; delete from UnderRevision where PaperNumber = Paper.Number; approved() = yes otherwise