Capitolo 4:
Modello di gestione dei
contenuti
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
MODEL
Integrazione di ipertesti e logica
applicativa
• Esempi di siti che fanno uso di servizi backend o remoti:
– Reservation Web site: richiesta di prenotazione,
annullamento o modifica di prenotazione
– Altri esempi: gestione contenuti,carrello della
spesa di siti e-commerce, gestione del profilo
personale, ...
• PROBLEMA:
– Come modellare la chiamata di operazioni?
• SOLUZIONE:
– Inserendo le chiamate di operazioni come nuove
primitive di ipertesto
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
MODEL
Operation Unit
• Descrive una generica operazione esterna o predefinita
• Riceve input da uno o più link entranti (di cui uno deve
essere un normal link, mentre gli altri saranno transport
KO
links)
Operation
Unit
OK
Entità
[Selettore]
•
•
Due tipi di link di uscita:
– OK link: seguito nel caso in cui l’operazione si conclude con successo
– KO link: seguito nel caso in cui l’operazione fallisce
Le operazioni non hanno scopo di pubblicare informazione  sono
posizionate all’esterno delle pagine
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
MODEL
Operazioni predefinite (Built-in)
• WebML fornisce un insieme di operazioni
predefinite per la gestione dei contenuti (istanze dei
dati pubblicati sul sito)
• Operazioni tradizionali di gestione di basi di dati:
create, delete, modify, create relationship, delete
relationship
• Il loro comportamento è predefinito, e consente di
gestire le istanze di entità e relazioni dichiarate nel
modello dei dati
• E’ possibile arricchire tale insieme con altre
operazioni definite dall’utente
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
MODEL
Operazioni predefinite per la
gestione dei contenuti
CREATE
DELETE
MODIFY
Create Unit
Delete Unit
Modify Unit
Entità
[Selettore]
Entità
[Selettore]
Entità
CONNECT
DISCONNECT
Connect Unit
Disconnect
Unit
Relazione
[Selettore]
Relazione
[Selettore]
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
MODEL
Create Unit
valore1 attributo1
KO
Niente
Create Unit
OK
valore2  attributo2
OID del nuovo
oggetto
Entità
• Riceve i valori da assegnare agli attributi del
nuovo oggetto creato
• Restituisce l’identificativo dell’oggetto creato
(se la creazione ha successo)
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Esempio di creazione
ArtistCreationPage
ArtistEntry
CreationResultsPage
FName:FirstName
LName: LastName
CreateArtist
ArtistDetails
OK
KO
Artist
<FirstName := FName>
<LastName := LName>
Artist
KO
ArtistCreation
CreationResults
CREATE ARTIST
CREATION RESULTS
FirstName: Celine
LastName: Dion
Press OK
to create
FirstName:
Celine
LastName:
Dion
OK
OK
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
MODEL
Modify unit
OIDs degli oggetti
non modificati
valore1  attributo2
valore2  attributo1
KO
Modify Unit
OK
OIDs degli oggetti da
modificare
OIDs degli
oggetti modificati
Entità
[Selettore]
• Riceve i valori da assegnare agli attributi da modificare
• Nota: gli istanze da modificare possono essere
selezionate per mezzo di OID o per mezzo di selettore
• OK: Restituisce l’identificativo degli oggetti modificati (tutti
quelli che erano stati richiesti)
• KO: Restituisce l’identificativo degli oggetti che non si è
riusciti a modificare
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Esempio di modifica
ModifyArtist
BioData
KO
Result
ModifyBio
BioData
OK
Artist
BioEntry
Bio: BiographyField
Artist
<BiographicInfo := Bio>
Artist
KO
ModifyArtist
Result
EDIT BIOGRAPHY
ModifyArtist
BIOGRAPHY
Celine Dion
EDIT BIOGRAPHY
Celine Dion
Celine Dion was born in
1968, the youngest of
fourteen children.
OK
OK
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Celine Dion
Bio: Celine Dion was born in
1968, the youngest of
fourteen children.
OK
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
MODEL
Delete unit
OIDs degli oggetti
non cancellati
KO
OIDs degli oggetti
da cancellare
Delete Unit
OK
Nulla
Entità
[Selettore]
• Riceve l’elenco degli oggetti da cancellare
• Nota: le istanze da cancellare possono essere
selezionate per mezzo di OID o per mezzo di selettore
• OK: non restituisce nulla perchè gli oggetti non esistono
più!!
• KO: Restituisce l’identificativo degli oggetti non cancellati
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
MODEL
Connect unit
OIDs degli
oggetti sorgente
(es. A)
OIDs per cui la
connessione è fallita
KO
Connect Unit
OK
OIDs degli
oggetti destinazione
(es. B)
OIDs connessi
relazione
(es. A_B)
• Riceve l’elenco degli oggetti da collegare (sorgente e destinazione
della relazione)
• OK: restituisce gli oggetti collegati
• KO: restituisce gli oggetti non collegati
• Se uno dei parametri di input è un insieme, tutti gli oggetti vengono
collegati
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
MODEL
Esempio di connect
Result
ReviewPage
Rev: Review.OID
NewReview
ArtistDetails
KO
OK
AssignReview
Rev: OID
Review
Art: Artist.OID
Rev: Review.OID
Artist
[OID = Art]
Art:OID
AllArtists
ReviewDetails
ArtistToReview
[Artist.OID = Art ]
[Review.OID = Rev ]
Artist
Review
[OID=Rev]
KO
ReviewPage
NEW REVIEW
One of the most
romantic and
expressive artists
of the nineties.
Result
ARTISTS
Select an artist to assign
the review:
° Beatles
* Dion
° Prince
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
OK
ARTIST
REVIEW
First name:
Celine
Last name:
Dion
Review:
One of the most
romantic and
expressive artists
of the nineties.
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
MODEL
Operazioni esterne
(custom operations)
• E’ possibile arricchire l’insieme di operazioni
predefinite con altre operazioni definite dall’utente
• Esempi:
– SendMail operation
– VerifyCreditCard operation
–…
• Per ogni operazione l’utente deve fornire:
– Interfaccia di input / output (parametri attesi in ingresso e
forniti in uscita)
– Descrizione dell’operazione (icona, eventuali proprietà,
…)
– Implementazione
• Nota: anche login e logout sono operazioni!!
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
MODEL
Catene di operazioni
• E’ possibile definire catene di operazioni da
eseguire una dopo l’altra
• Esempio: creazione di un Album e
collegamento con l’autore (un artista
esistente)
• Collegamento diretto attraverso OK-link
Operaz1
Operaz2
OK
OK
KO
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
KO
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
MODEL
Transazioni
• PROBLEMA: garantire che una catena di operazioni non
venga mai eseguita in modo parziale
• SOLUZIONE: introduzione del concetto di TRANSAZIONE
• TRANSAZIONE = sequenza di operazioni eseguita in
modo atomico, cioè in modo che o tutte le operazioni sono
eseguite con successo, o l’intera sequenza di operazioni
viene annullata.
• (concetto di basi di dati, per cui valgono le proprietà ACID)
• Rappresentazione: un rettangolo attorno alla catena
atomica di operazioni (con eventuale KO link)
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
MODEL
Pattern di content management:
create&connect
Review
ReviewPage
ArtistData
ReviewEntry
Celine Dion
Review text:
OK
Txt: TextField
Auth:AuthorField
Artist
Her albums always include
some of her most loved hits as
well as ...
Author:
J. Smith
Connect
CreateReview
Press OK
to create
OK
ArtistToReview
KO
KO
OK
Review
<Text := Txt>
<Author := Auth>
ErrorPage
Progettazione di dati e applicazioni per il Web
S. Ceri, P. Fraternali, A. Bongio, M. Brambilla, S. Comai, M. Matera
Copyright © 2003 - The McGraw-Hill Companies, srl
Contenuto per concessione del Politecnico di Milano
Scarica

Modello di gestione dei contenuti