webml modellazione concettuale di applicazioni web · »webmlfornisce un approccio strutturato per...
TRANSCRIPT
1
Henry MucciniUniversità degli Studi dell'[email protected]://www.HenryMuccini.comEngineering | IgTechnology | Imola
Informatica | Maggioli Informatica |Micron Technology | Neta | Nous Informatica | ObjectWay SED |TechnoLabs | Taiprora
Master in Web TechnologyIV Edizione 2007/08 Dipartimento di InformaticaUniversità degli Studi dell’Aquila
WebMLModellazione concettuale di applicazioni Web
http://www.webml.org
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications2 http://www.webml.org
Copyright» Il materiale presentato nel seguito consiste in
una rielaborazione delle slide in italiano ed inglese disponibile sul sito www.webml.org
» Si ringraziano gli autori di WebML ed il Politecnico di Milano per aver messo a disposizione tale materiale
Henry Muccini
Copyright © Politecnico di MilanoMarch 2003
2
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications3 http://www.webml.org
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications4 http://www.webml.org
Modellazione in WebML
» WebML fornisce un approccio strutturato per il design di applicazioni Web data-intensive
» Fornisce un insieme integrato di modelli per la produzione di applicativi Web ad alta qualita’
» WebML (Web Modeling Language) – http://webml.org
> Modellazione del contenuto informativo
> Modellazione dell’ipertesto
> WebRatio: un tool di sviluppo per WebML –http://www.webratio.com
3
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications5 http://www.webml.org
Applicazioni Web data-intensive» Sistemi per il Web, il cui scopo principale è gestire e pubblicare
grandi quantità di dati» WebML non e’ l’approccio adatto per:
> Small Web sites (Homepages, …)> Static Web sites
Esempi:» Commercio: cataloghi elettronici, e-mall, aste elettroniche, ... » Contenuto: quotidiani online, biblioteche elettroniche, siti
istituzionali ...» Servizi: e-banking, prenotazioni, monitoraggio degli ordini, ...» Comunità: portali tematici, forum, ...» Contesto: portali di ricerca, directories,...
Tutte gestiscono e pubblicano grandi quantità di dati
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications6 http://www.webml.org
Alcuni modelli concettuali» Prime proposte per la modellazione di applicazioni ipermediali (Communication of
ACM, August 1995)
> HDM (1993)
> OO-HDM (1995)
> RMM (1995)
» Proposte successive, per la modellazione di applicazioni Web
> ARANEUS (1998)- ADM (Araneus Data Model)
> Strudel (1998)- UGM (Unified Graph Model) + StruQL (Strudel Query Language)
> Web Modeling Language – WebML (1998)- Modello ER per il contenuto + Primitive visuali per l’ipertesto
- Supportato da uno strumento CASE commerciale (http://www.webratio.com)
» Estensione di UML per il Web (Jim Conallen, “Buidling Web Applications withUML”, Addison Wesley, 2000)
4
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications7 http://www.webml.org
The WebML models
» Models:> Structure Model: data organization
- + Derivation: redundant data definition
> Hyptertext Model:- Composition: definition of site pages as set of subpages and
elementary publishing units - Navigation: definition of links between pages and between
units
> Presentation: positioning of the units in the page and definition of graphical appearance
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications8 http://www.webml.org
WebML – concetti di baseApplicazione Web=
Dati + Ipertesto + Presentazione
struttura del contenuto
entità,relazioni
composizione + navigazione+ personalizzazione
unità, pagine, link, site view
presentazione
stili
StructureModel
HypertextModel
5
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications9 http://www.webml.org
Structure Model (1)» Q: what are the objects published in the site and how
they are related?
» A:> Entity: an object type in the application domain> Attribute: scalar property of an entity> Relationship: A connection between entities> IS-A hierarchy: classification and grouping
» Compatible with Entity-Relationshipand UML class diagrams
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications10http://www.webml.org
Structure Model (2)
» Simplified Entity-Relationship model> Binary relationships between entities
> IS-A hierarchies
> Simple typedattributes in entities
> Derivation model can be applied forredundant data
Book
Author Genre
BestSeller
6
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications11http://www.webml.org
Derivation Model
» Redundant data can be easily specified using a WebML-OQL (Object Query Language).
» E.g.:> Author.BooksNumber = count(self.Author2Book)
> BestSeller := Book where Book.Sales > 50,000
BookAuthor
BestSeller
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications12http://www.webml.org
•Q1: what information is published in the hypertext nodes? •Q2: how are the hypertext nodes connected?•Q3: how is the hypertext divided into pagesserved to the user?
•A1: content units (Composition)•A2: links (Navigation)•A3: pages (Composition)
Hypertext Model
7
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications13http://www.webml.org
DATAUNIT
INDEXUNIT
content
content
Composition: examples of Content Units description
To publish information about A SINGLE object(e.g. AuthorDetail)
To publish a list of objects (e.g. IndexOfAuthors)
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications14http://www.webml.org
DATAUNIT
INDEXUNIT
Composition: examples of Content Units rendering
Authorfirst name:XXXlast name:YYYphoto:
Index of Authors
•S. Ceri•P. Fraternali•O.Versand
Author
Author
8
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications15http://www.webml.org
Navigation Model: Links
entity:author
Book[ author2book ]
• Semantics of a link: 1. Moving from one place to another2. Transporting information from one place to
another (navigation context)3. Activating a computation (side effect)
AuthorIDis transported
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications16http://www.webml.org
Composition:PagesA Page is a structured container of units and links
> Possibly structured in and/or sub-pages
> Abstraction of screen, frame, card, deck...
> Permits one to cluster related information for more efficientcommunication
E.g.:
AuthorAuthor
The index of authors and the selected author are shown together in the same page
9
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications17http://www.webml.org
Types of links
» Contextual links> Between units
> Context transported
» Non-contextual links> Between pages
> No context transported
Voyages Books
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications18http://www.webml.org
Write access: WebML operations
» Some predefined operations are provided
» Customized operation can be defined
» E.g.:
delete of
an Author
Create Op. X
AuthorAuthor
Delete
10
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications19http://www.webml.org
Siteviews
» A Siteview is a set of pages that the user can experience as a whole Web site
» Different site views can be defined for different devices and different groups of users
» Thus, access control and multi-devices delivery is achieved
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications20http://www.webml.org
Presentation
» Presentation dealt with along two lines:
> Gallery of default presentation styles applicableto site views or single pages (with elementary unitpositioning on a grid)- each presentation style is an XSL stylesheet
> Compatibility with best selling tools forpresentation editing, for advanced page design- E.g., WebML extensions for Dreamweaver 3 & 4
11
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications21http://www.webml.org
WebRatioSite Development Studio
Functionalities:» Structure model design» Data derivation (Derivation Wizard)» Hypertext model design (siteviews)» Consistency checks (warnings)» Structure Mapping onto a datasource» Elementary units positioning in the pages» Automatic web site generation with default
presentation styles
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications22http://www.webml.org
Structure modelling
Entity
ISA hierarchy
Relationship
Attribute
12
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications23http://www.webml.org
Hypertext modelling
Operation units
Links
Page/alternative
WebML units
Siteviews
Allowed
operations:
» New siteview creation
» Add/remove pages, units, links
» Edit elementsproperties(panel)
» Cut&paste
Henry MucciniUniversità degli Studi dell'[email protected]://www.HenryMuccini.comEngineering | IgTechnology | Imola
Informatica | Maggioli Informatica |Micron Technology | Neta | Nous Informatica | ObjectWay SED |TechnoLabs | Taiprora
Master in Web TechnologyIV Edizione 2007/08 Dipartimento di InformaticaUniversità degli Studi dell’Aquila
Modello dei Dati in WebML
http://www.webml.org
13
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications25http://www.webml.org
Copyright
Copyright © Politecnico di MilanoMarch 2003
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications26http://www.webml.org
Obiettivi» Tipiche domande:
> Quali sono gli oggetti informativi da pubblicare tramite l’applicazione?
> Quali sono le proprietà che li caratterizzano?> In che modo i vari oggetti sono correlati?
» Primitive del modello Entità-Relazioni:» Entità: una classe di oggetti nel dominio
dell’applicazione> Attributo: una proprietà di una entità> Relazione: una connessione tra entità> Gerarchia IS-A: costrutto utilizzato per classificare o raggruppare
» Compatible con Entity-Relationshipe UML class diagrams
14
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications27http://www.webml.org
Look and FeelMODELLO DEI DATI
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications28http://www.webml.org
Notazione grafica
Entità2Entità1
SottoEntità
attributo1
MODELLO DEI DATI
Le Entita’ sono dei box, con il nome dell’entita’ in altoGli attributi si trovano nel secondo compartimentoLe relazioni sono rappresentate tramite linee continue tra due boxGerarchie ISA sono denotate tramite un simbolo di generalizzazione
15
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications29http://www.webml.org
Ruoli e cardinalità delle relazioni
» Il ruolo di una relazione è una delle due “direzioni” in cui una relazione può essere interpretata
pubblica
pubblicato_da
LibroAutore
Pubblicazione
MODELLO DEI DATI
0..N 1..N
Per ogni ruolo, possono essere specificati vincoli di cardinalità
Attenzione: WebRatio usa notazioni differenti
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications30http://www.webml.org
Attributi composti» Attributi con una struttura interna (per es., un indirizzo
può includere diversi campi)
» Rappresentati per mezzo di una entità e una relazione
» Es.: una persona ha uno o più indirizzi,ognuno formato da numero, via, città, provincia, stato
Indirizzo
ViaNumeroCittàProvinciaStato
Persona 0..1
1..1
MODELLO DEI DATI
16
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications31http://www.webml.org
MODELLO DEI DATI
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications32http://www.webml.org
Relazioni con attributi
» Rappresentate da una entità centrale e due relazioni
» Es.: il voto preso da uno studente nell’esame di un certo corso
VotoValore:integer
Studente 0..N
1..1Corso1..1
0..N
MODELLO DEI DATI
17
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications33http://www.webml.org
Relazioni N-arie
» Relazioni che coinvolgono N entità (N>2)> Es.: la fornitura di componenti ad un dipartimento
da parte di una ditta
» Rappresentabili da una combinazione di entità e N relazioni binarie
Ditta 0..N
1..1Dipartimento1..1
0..N
Componente
1..10..N
Fornitura
MODELLO DEI DATI
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications34http://www.webml.org
Gerarchie IS-A» Le sotto-entità ereditano gli attributi e le relazioni di una
super entità
» Le sotto-entità possono anche avere proprietà localmentedefinite
» Le sotto-entità modellano collezioni
Cantante
nomecognomebiografia
CantantePop CantanteJazz
strumento
MODELLO DEI DATI
Alcune ipotesi restrittive in WebML:• Non è permessa l’ereditarietà
multipla [vedi su WebRatio]• E’ possibile definire solo gerarchie
esclusive• Ogni entità può apparire al massimo
in una gerarchia
18
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications35http://www.webml.org
Esempio Catalogo Elettronico della ditta ACME» ACME: una medio-piccola impresa di mobili, che vende i suoi
prodotti attraverso punti vendita sparsi in tutto il mondo»Necessità di sviluppare un sito Web per pubblicare il
catalogo dei suoi prodotti.
» Il sito deve pubblicare informazioni su:> prodotti> offerte speciali: combinazioni di prodotti venduti ad un
prezzo scontato> punti vendita> Ogni prodotto ha una sua scheda tecnica e diverse
immagini> I prodotti sono raggruppati in categorie
CASO DI STUDIO
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications36http://www.webml.org
ACME – Schema dei datiCASO DI STUDIO
Store
Location: stringMap: imageEmail: URLFoto: image
Product
Code: integerName: stringPrice: floatDescription: textThumbnail: imageHighlighted: boolean
Combination
Code: integerName: stringPrice: floatDescription: textPhoto: imageStartDate: dateEndDate: dateHighlighted: boolean
Tech record
Colors: imageSizes: text
Big image
Description: textPhoto: image
0:N
1:10:1
0:N
1:1
1:N
Category
Category: string
1:10:N
19
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications37http://www.webml.org
Oggetti derivati
» La derivazione permette di:
> Arricchire il contenuto di un’entità, aggiungendo sia attributi calcolati, sia attributi importati da oggetti correlati.
> Definire la popolazione di entità o di relazioni, sulla base di alcune proprietà degli oggetti coinvolti.
MODELLO DEI DATI
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications38http://www.webml.org
WebML OQL» La derivazione si specifica scrivendo espressioni
chiamate “query di derivazione”
» WebML OQL (Object Query Language): un linguagigo per esprimere query di derivazione
» Concetti derivabili:> Entità, relazioni, attributi
» Le query di derivazione sono automaticamentetrasformate in viste SQL installate nella base di dati
MODELLO DEI DATI
20
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications39http://www.webml.org
Entità derivate
» La popolazione di Sotto-Entità nelle gerarchie IS-A può essere specificata per mezzo di query OQL
» Es.: “Un’autore italiano è un autore nato in Italia”» WebML OQL: value = “Autore as A where A.LuogoNascita contains ‘Italia’”
AutoreItaliano
AutoreISA
MODELLO DEI DATI
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications40http://www.webml.org
Attributi derivati
» Quattro tipi di attributi derivati:> Attributi costanti
> Attributi Importati
> Attributi Calcolati
> Attributi Aggregati
MODELLO DEI DATI
21
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications41http://www.webml.org
Lancia WebRatio
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications42http://www.webml.org
Attributi Costanti
Value=“Politecnico di Milano”
DipendentePoli
Affiliazione
22
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications43http://www.webml.org
Attributi importati
DonnaUomo maritocognome cognomeAcquisito
MODELLO DEI DATI
Value=“Self.marito.cognome”
» La variabile Self denota l’entità corrente in cui sivuole definire l’attributo
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications44http://www.webml.org
Attributi calcolati e aggregati
» Prezzo totale dell’ordine come somma dei prezzi delle singole linee d’ordine:1. prezzoTotale in “Dettaglio” come attributo calcolato:
Self.prezzo * Self.qta
2. prezzoTotale in “Ordine” come attributo aggregato: Sum (Self.Ordine_Dettaglio.prezzoTotale)
» Il numero di linee d’ordine per un certo ordineCount (Self.Ordine_Dettaglio)
Ordine prezzoTotalenumLineeOrd
DettaglioOrdine_DettaglioprezzoqtaprezzoTotale
MODELLO DEI DATI
23
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications45http://www.webml.org
Relazioni Derivate
Le relazioni possono essere derivate in due modi:
» Definendo restrizioni e/o composizioni di relazioni pre-esistenti
» Definendo nuove relazioni tra coppie di oggetti in base a condizioni (concatenazione)
MODELLO DEI DATI
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications46http://www.webml.org
24
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications47http://www.webml.org
Relazioni derivate: restrizione
Restrizione di relazioni pre-esistenti:
Value=“Self.Autore_Libro as L where L.date > ‘01/01/07’”
LibroAutore
Autore_Libro
Autore_LibroRecente
MODELLO DEI DATI
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications48http://www.webml.org
Relazioni derivate: concatenazione
Concatenazione di relazioni:
value=“Self.Capitolo_Libro.Libro_Autore”
AutoreLibro Libro_Autore
Capitolo_LibroCapitolo Capitolo_Autore
MODELLO DEI DATI
25
Henry MucciniUniversità degli Studi dell'[email protected]://www.HenryMuccini.comEngineering | IgTechnology | Imola
Informatica | Maggioli Informatica |Micron Technology | Neta | Nous Informatica | ObjectWay SED |TechnoLabs | Taiprora
Master in Web TechnologyIV Edizione 2007/08 Dipartimento di InformaticaUniversità degli Studi dell’Aquila
Modello di ipertesto in WebML
http://www.webml.org
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications50http://www.webml.org
Copyright
Copyright © Politecnico di MilanoMarch 2003
26
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications51http://www.webml.org
Look and Feel
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications52http://www.webml.org
1. Motivazioni e Concetti di Base
27
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications53http://www.webml.org
Modello di Ipertesto:obiettivi
Modellazione ad alto livello del front-end di una applicazione Web dinamica e delle interazioni con la logica e i dati del back-end
Utilizzo di una notazione visuale semplice ma formale
Generazione automatica di template di pagine dinamiche e di interrogazioni per l’accesso e la manipolazione dei dati
MODELLO DI IPERTESTO
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications54http://www.webml.org
• Domande tipiche• In che modo l’utente deve fruire del contenuto pubblicato tramite il sito?
•Quali sono le pagine nell’ipertesto, tramite cui l’utente può accedere ai contenuti?
•Quale informazione deve essere pubblicata in ogni pagina?•In che modo i nodi dell’ipertesto sono collegati tra loro?
• Primitive del modello di Ipertesto•Unità di contenuto (o unit) •Link •Pagine•Site view
Modellazione dell’Ipertesto:Domande Tipiche
MODELLO DI IPERTESTO
28
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications55http://www.webml.org
Unità di contenuto
» Una unita’ di contenuto in WebML è l’elementoatomico per la pubblicazione dell’informazione
» Corrisponde ad una “vista” definita su di un contenitore di oggetti:> Tutte le istanze di un’entità sorgente> Le istanze di una entità che soddisfano una condizione
di selezione chiamata selettore
unitX
Sorgente[Selettore]
MODELLO DI IPERTESTO
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications56http://www.webml.org
DATAUNIT INDEXUNIT MULTIDATAUNIT
SCROLLERUNIT
Sorgente[Selettore]
Unità di Contenuto di Base
Sorgente[Selettore]
Sorgente[Selettore]
Sorgente[Selettore]
MULTICHOICE
Sorgente[Selettore]
HIERARCHICAL
Sorgente[Selettore]
MODELLO DI IPERTESTO
29
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications57http://www.webml.org
Significato delle unità di contenuto
DATAUNIT
Autorefirst name:XXXlast name:YYYphoto:
MULTIDATAUNIT
Tutti gli Autori
SCROLLERUNIT
Esplora gli Autori
5/12: vai a
978 :
1/12
MODELLO DI IPERTESTO
INDEXUNIT
Indice di tutti gli Autori
•S. Ceri•P. Fraternali•A.S. Tanenbaum•O.Versand
MULTICHOICE
Scegli gli AutoriCeriFraternaliVersandTanenbaum
HIERARCHICAL
Autori&Libri1. S. Ceri
Web TechnologiesAdvanced Databases
2. P. FraternaliWeb Technologies
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications58http://www.webml.org
Input e output delle unita’
» Ogni unit può avere parametri di input e output
» I parametri in input sono necessari per calcolare la unit
> Parametri richiesti dal selettore della unit
» I parametri in output possono essere utilizzati per la computazione di una o più unit che dipendono dalla unitcorrente
unitX
entità[selettore (ParIN)]
ParIN ParOUT
MODELLO DI IPERTESTO
30
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications59http://www.webml.org
2. Unit di Contenuto
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications60http://www.webml.org
DataUnit
» Pubblica informazione circa UNA SINGOLA ISTANZAUNA SINGOLA ISTANZA
» Contenitore: una entità, più (opzionalmente) un selettore » Parametri in input:
> OID dell’oggetto che deve essere pubblicato, OPPURE
> Parametri richiesti dalla computazione del selettore» Parametri in output:
> L’OID dell’oggetto pubblicato, più ogni suo attributo
Entità[Selettore(parametri)]
parametri OID
MODELLO DI IPERTESTO
31
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications61http://www.webml.org
ACMEEsempio di DataUnit
Informazione su di un prodotto specifico
CASO DI STUDIO
Product
ProductDetails
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications62http://www.webml.org
MultiDataUnit
• Presenta istanze multiple di una entità ((insiemeinsieme di di oggettioggetti))
• Contenitore: una entità, più (opzionalmente) un selettore• Parametri di input: quelli richiesti per la computazione del
selettore• Parametri di output:
•L’insieme di OID degli oggetti pubblicati (più gli attributidegli oggetti)
Entità[Selettore(parametri)]
parametri {OID}
MODELLO DI IPERTESTO
32
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications63http://www.webml.org
IndexUnit
» Pubblica una lista di elementi ((insiemeinsieme di di oggettioggetti))
» Contenitore: una entità, più (opzionalmente) un selettore
» Parametri di input: quelli richiesti per la computazione del selettore
» Parametri in output:- OID dell’oggetto selezionato dall’utente (più tutti i suoi attributi)
Entità[Selettore(parametri)]
parametri OIDSel
MODELLO DI IPERTESTO
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications64http://www.webml.org
ACME: IndexUnit nella paginaProducts
L’utente puòaccedere ai singoliprodotti cliccandosu uno deglielementi dellalista
CASO DI STUDIO
Product
OIDSelAll
Products
33
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications65http://www.webml.org
MultichoiceUnit
» Pubblica indici di elementi ((insiemeinsieme di di oggettioggetti)) tra cui l’utente seleziona uno o più elementi (tramite checkbox)
» Contenitore: una entità, più (opzionalmente) selettore e pre-selettore» Parametri in input: quelli richiesti per la computazione dei selettori» Parametri in output: OID degli oggetti marcati dall’utente (più tutti i suoi
attributi)
Entità[Selettore(parametri)]
[Preselettore(parametri)]
parametri {OIDSel}
MODELLO DI IPERTESTO
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications66http://www.webml.org
HierarchicalUnit
» Pubblica una lista di oggetti (appartenenti a più entità) organizzati gerarchicamente in base a relazioni definite tra le entità
» Contenitore: un insieme di entità e le relazioni che le associano, più(opzionalmente) selettori ad ogni livello
» Parametri in input: quelli richiesti dalla computazione dei selettori» Parametri in output: OID dell’oggetto selezionato dall’utente (più tutti i
suoi attributi)
{OIDSel}
Entita1[Selettore1(Parametri)
NEST Entita2 [Entita1_Entita2]
[Selettore2(Parametri)]
Parametri
MODELLO DI IPERTESTO
34
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications67http://www.webml.org
HierarchicalUnit: Esempio
•Tables•Kitchen
•Korla KJD54•Chairs
•Stools•Roy LKR34•OddVar JSQ87
•Office•Jess RLT45
CategoriaNEST SottoCategoria
[Categoria_SottoCategoria]NEST Prodotto
[SottoCategoria_Prodotto]
MODELLO DI IPERTESTO
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications68http://www.webml.org
HierarchicalUnit: Esempio
•Tables •Kitchen
•Korla KJD54•Chairs
•Stools•Roy LKR34•OddVar JSQ87
•Office•Jess RLT45
MODELLO DI IPERTESTO
Categoria
SottoCategoria
Prodotto
35
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications69http://www.webml.org
HierarchicalUnit: link uscenti
» Ogni link è visualizzato come un ancora ad un opportuno livello della gerarchia
» Il livello a cui il link è posizionato dipende dal tipo dei parametri sul link
•Tables link a•Kitchen link b
•Korla KJD54 link c•Chairs link a
•Stools link b•Roy LKR34 link c•OddVar JSQ87 link c
•Office link b•Jess RLT45 link c
CatSotto_Cat
Prod
link a
link b
link c
CategoriaSottoCategoria
[Categoria_SottoCategoria]Prodotto
[SottoCategoria_Prodotto]
MODELLO DI IPERTESTO
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications70http://www.webml.org
ScrollerUnit
» Permette di definire il browsing in un insieme di oggetti:
> Visualizza link al primo, al precedente, al prossimo, all’ultimo oggetto nell’insieme
» Block factor = numero di oggetti visualizzati in blocco in un passo di navigazione
» Contenitore: una entità, più (opzionalmente) un selettore» Parametri in input: quelli richiesti per la computazione dei selettori» Parametri in output: l’insieme di OID del blocco di oggetti corrente
Entità[Selettore(parametri)]
parametri {OIDSel}
MODELLO DI IPERTESTO
36
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications71http://www.webml.org
3. Link e parametri
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications72http://www.webml.org
Link contestuali
• Connessioni orientate tra due unit (sorgente e destinazione), la cui presentazione corrisponde ad ancore o bottoni “submit”• Permettono all’utente di navigare tra nodi diversi
dell’ipertesto• Trasportano informazione di contesto• Attivano una computazione (effetto collaterale)
AutoreAutore
Sorgente Destinazione
MODELLO DI IPERTESTO
37
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications73http://www.webml.org
Parametri sui link
Libro[Autore_Libro(A)]
• Il contesto è trasportato dai link attraverso l’uso di parametri definiti sui link
• Un parametro sui link ha un Nome.
• Il contenuto del parametro è un attributo della unit sorgente del link
Autore[OID=…]
A:Autore.OID
MODELLO DI IPERTESTO
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications74http://www.webml.org
Parametri sui link: default
Autore[OID= …]
Libro[Autore_Libro]
• Quando è possible, i parametri sui link sono inferiti dal diagramma, senza bisogno di essere specificati esplicitamente
• I diagrammi acquistano maggiore chiarezza
MODELLO DI IPERTESTO
38
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications75http://www.webml.org
Selettori: Default
• Quando possibile, i selettori e i loro parametri sono inferiti dal diagramma, senza dover essere specificati esplicitamente
Autore Libro[Autore_Libro]
Libro
MODELLO DI IPERTESTO
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications76http://www.webml.org
Link automatici
• Passano il contesto alla target unit immediatamente dopo la visualizzazione della source unit, senza la necessità di un intevento dell’utente
• Successivamente, l’utente può cambiare il contesto passato, scegliendo un oggetto differente tramite l’ancora (o le ancore) che rappresentano il link
AutoreAutore
sorgente destinazione
MODELLO DI IPERTESTO
A
39
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications77http://www.webml.org
Link di trasporto
AutoreLibro
[autore_libro]
• Un link di trasporto passa il contesto alla unit di destinazione immediatamente dopo la visualizzazione della unit sorgente, senza la necessità dell’intevento dell’utente
• L’utente non può cambiare il contesto trasportato dal link; il link non è visualizzato tramite un ancora
Sorgente Destinazione
MODELLO DI IPERTESTO
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications78http://www.webml.org
4. Pagine, Aree, Site view
40
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications79http://www.webml.org
Pagine
» Una pagina è un contenitore di una o più unità di contenuto mostrate all’utente contemporaneamente
Home Page Indice dei Libri
MODELLO DI IPERTESTO
Login
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications80http://www.webml.org
» Link definiti tra pagine
» Non trasportano alcuna informazione di contesto
» L’utente naviga da una pagina all’altra per mezzo di un’ ancora (es: >>Indice dei Libri)
Link non contestuali
HomePage Indice dei libri
MODELLO DI IPERTESTO
41
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications81http://www.webml.org
Home Page
» É la pagina principale di un sito> La prima a cui l’utente accede
» Ogni site view deve contenere un pagina marcata come “Home”
HomePage H Indice dei libri
MODELLO DI IPERTESTO
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications82http://www.webml.org
Pagine Landmark
» Pagine globalmente visibili. L’utente può saltare ad esse daogni altra pagina della site view
» Equivalenti a link non contextuali definiti da ogni altrapagina della site view verso la pagina landmark
Autori
Indice dei Libri
L
InfoLibro
Negozi
MODELLO DI IPERTESTO
AutoriInfoLibri
NegoziIndice dei Libri
Lancia WebRatio
42
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications83http://www.webml.org
Aree
» Insiemi di pagine logicamente omogenee> Sezioni di un portale: Sport, Musica, Tecnologia, …
» Le aree possono contenere sotto-aree annidate
» Ogni area può includere una pagina (o unasottoarea) di default
Area
MODELLO DI IPERTESTO
CatalogoLibri
Indice dei Libri
D
InfoLibriHomePage
Pagina1 Pagina2
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications84http://www.webml.org Lancia WebRatio
43
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications85http://www.webml.org
Site View
» Un insieme di pagine e/o aree che forniscono una vista coerente del sito
» Sullo stesso schema dei dati è possibile definire diverse site view
» Necessità di pubblicare ipertesti diversi per diversitipi di utenti o per diversi tipi di dispositivi di output> Es.:
- Site view pubblica: accesso concesso ad ogni utente
- Site view private: accesso protetto tramite password
MODELLO DI IPERTESTO
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications86http://www.webml.org
ACME Modellazione delle site view
» Due site view sullo stesso schema dei dati> Customer: pubblica, per i clienti
> Admin: privata, per amministratori e gestori di contenuto
CASO DI STUDIO
44
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications87http://www.webml.org
ACMESite View Customer
» Scopo: permettere al cliente di accedere ai contenutipubblicati tramite il sito
» Struttura:> Due aree principali: Products e Offers
> Due pagine Landamark: HomePage, Store
CustomerProducts Area
Stores
Offers Area
HomePage
CASO DI STUDIO
LL
H
LL
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications88http://www.webml.org
Offers AreaProducts Area
ACMEOrganizzazione delle Aree
» D: quali sono le pagine principali?
Products Combinations
Q: quali altre pagine sono necessarie?
Images
SearchCombinationBy Price
CASO DI STUDIO
ProductSearch
ByCategoryD L
L
L L D
45
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications89http://www.webml.org
ACMEComposizione della Home Page
CASO DI STUDIO
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications90http://www.webml.org
ACME Pagina dei Prodotti
CASO DI STUDIO
46
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications97http://www.webml.org
Personalizzazione» 2 aspetti
> Controllo degli accessi: operazioni di login/logoutper il riconoscimento di utenti. Accessibilità alle site-view basata sul gruppo di appartenenza- ES: gruppo Admin accede alle siteview:
PublicSV e AdminSV
> Personalizzazione dei contenuti: pubblicazioni di contenuti dipendenti dall’utente o dal gruppo di appartenenza. - ES: libri preferiti dall’utente
- ES: informazioni più rilevanti per un certo gruppo
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications99http://www.webml.org
Operazioni di Login/ Logout» Una siteview può contenere una form per consentire login
» Ogni siteview privata dovrebbe consentire logout
» E’ consentito per un utente il cambio di ruolo durante la navigazione
Entry Unit
MODEL
Login
Logout
ChangeGroupEntry Unit
47
Henry MucciniUniversità degli Studi dell'[email protected]://www.HenryMuccini.comEngineering | IgTechnology | Imola
Informatica | Maggioli Informatica |Micron Technology | Neta | Nous Informatica | ObjectWay SED |TechnoLabs | Taiprora
Master in Web TechnologyIV Edizione 2007/08 Dipartimento di InformaticaUniversità degli Studi dell’Aquila
Modello delleOperazioni in WebML
http://www.webml.org
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications110
http://www.webml.org
Copyright
Copyright © Politecnico di MilanoMarch 2003
48
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications111
http://www.webml.org
1. Operazioni
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications112
http://www.webml.org
Integrazione di ipertesti e logica applicativa
» Esempi di siti che fanno uso di servizi backback--endend 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
MODEL
49
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications113
http://www.webml.org
Operation UnitMODEL
» 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 links)
» 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 à sonosonoposizionateposizionate allall’’esternoesterno delledelle paginepagine
OperationUnit
Entità[Selettore]
KO
OK
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications114
http://www.webml.org
Operazioni predefinite (Built-in)
MODEL
» WebML fornisce un insieme di operazioni predefinite per la gestione dei contenuti (istanze dei dati pubblicati sulsito)
» Operazioni tradizionali di gestione di basi di dati: create, delete, modify, create relationship, delete relationship
» Il loro comportamento è predefinito, e consenteconsente didigestiregestire le le istanzeistanze didi entitentitàà e e relazionirelazioni dichiaratedichiarate nelnelmodellomodello deidei datidati
» E’ possibile arricchire tale insieme con altre operazionidefinite dall’utente
50
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications115
http://www.webml.org
Operazioni predefinite per la gestione dei contenuti
Delete Unit
Entità[Selettore]
Create Unit
Entità
Modify Unit
Entità[Selettore]
CREATE DELETE MODIFY
DisconnectUnit
Relazione[Selettore]
ConnectUnit
Relazione[Selettore]
CONNECT DISCONNECT
MODEL
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications116
http://www.webml.org
Create Unit
Create Unit
Entità
valore1→ attributo1
valore2 → attributo2
OID del nuovo oggetto
MODEL
KO
OK
Niente
» Riceve i valori da assegnare agli attributi del nuovo oggetto creato
» Restituisce l’identificativo dell’oggetto creato(se la creazione ha successo)
51
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications117
http://www.webml.org
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications118
http://www.webml.org
Esempio di creazione
Lancia WebRatio
52
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications119
http://www.webml.org
Modify unit
valore2 → attributo1 valore1 → attributo2
OIDs degli oggetti modificati
Modify Unit
Entità[Selettore]
MODEL
KO
OK
OIDs degli oggettinon modificati
OIDs degli oggetti da modificare
» Riceve i valori da assegnare agli attributi da modificare» Nota: le 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
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications120
http://www.webml.org
Esempio di modifica
Lancia WebRatio
53
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications121
http://www.webml.org
Delete unit
NullaOIDs degli oggetti da cancellare
Delete Unit
Entità[Selettore]
MODEL
KO
OK
OIDs degli oggetti non cancellati
» 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
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications122
http://www.webml.org
Esempio di cancellazioneMODEL
54
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications123
http://www.webml.org
Connect unit
OIDs connessi
OIDs degli oggetti sorgente (es. A)
OIDs degli oggetti destinazione(es. B)
MODEL
KO
OK
OIDs per cui la connessione è fallita
ConnectUnit
relazione(es. A_B)
» Riceve l’elenco degli oggetti da collegare (sorgente e destinazionedella 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
Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications124
http://www.webml.org
Esempio di connectMODEL