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