webml modellazione concettuale di applicazioni web · »webmlfornisce un approccio strutturato per...

54
1 Henry Muccini Università degli Studi dell'Aquila [email protected] http://www.HenryMuccini.com Engineering | IgTechnology | Imola Informatica | Maggioli Informatica | Micron Technology | Neta | Nous Informatica | ObjectWay SED | TechnoLabs | Taiprora Master in Web Technology IV Edizione 2007/08 Dipartimento di Informatica Università degli Studi dell’Aquila WebML Modellazione concettuale di applicazioni Web http://www.webml.org Master in Web Technology Iv Edizione 2007/08 | Henry Muccini: UML for Web Applications 2 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 Milano March 2003

Upload: buiphuc

Post on 16-Feb-2019

215 views

Category:

Documents


0 download

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