42
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ Tehnologii Tehnologii Web Web <?xml version=“1.0” ?> <curs desc=“…” /> Tehnologii Web Dr. SabinCorneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Iasi, Romania http://www.infoiasi.ro/~busaco/

Web - XML design patterns

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Tehnologii Web

Dr. Sabin­Corneliu BuragaFacultatea de Informatica

Universitatea “A.I.Cuza” – Iasi, Romania

http://www.infoiasi.ro/~busaco/

Page 2: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Marcarea datelor pentru <Web />

Sabloane de proiectare XML

Detalii in [TX, 177‐189]

Page 3: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Sabloane de proiectare XMLPunerea problemeiTipuri & caracteristici

Exemplificari

cuprins

Page 4: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

O problema – oricare ar fi aceasta –poate aparea frecvent

intro

Page 5: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Cei experimentati au gasit diverse solutiipentru problema in cauza, reusind sa recunoasca

problema si sa aleaga solutia (optima)care poate fi aplicata intr‐un anumit context

intro

Page 6: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Apare astfel un sablon (pattern) de proiectare (design, solutionare,…) a problemelor

intro

Page 7: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Pattern (sablon) ≡ regula ce exprima o relatiedintre un context, o problema si o solutie

(Christopher Alexander, 1979)Initial, folosit in arhitectura

definitii

Page 8: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Pattern (sablon) ≡ regula ce exprima o relatie dintre un context, o problema si o solutiePattern‐uri utilizate in proiectarea software(object­oriented software design):pattern ≡ “mind sized” chunk of information

lucrarea de referinta:“Design Patterns” (E. Gamma et al., 1995)

definitii

Page 9: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Pattern (sablon) ≡ regula ce exprima o relatie dintre un context, o problema si o solutiePattern‐uri de proiectare folosite, ulterior, in IA (Information Architecture)design & interactiuneWeb

definitii

Detalii in cadrul cursului“Interactiune om‐calculator” (anul III)

Page 10: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Un pattern poate descrie cunostintele unui expert(pe baza experientei sale personale)

in domeniul problemei in ceea ce privesterecunoasterea problemei, a contextului si a solutiei

la acea problema

caracteristici

Page 11: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Un pattern nu reprezinta o regula ferma

uneori nu trebuie aplicat! anti­patterns

caracteristici

Page 12: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Este necesara adoptarea unui vocabular comuncorespunzator domeniului problemei

pattern language

caracteristici

Page 13: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Pattern‐uri privitoare la:proiectarearhitecturaanaliza

dezvoltarestructura

comportament…

tipuri

Page 14: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

“Recunoaşterea” unui pattern poate avea loc la diverse niveluri, precum:nivelul de prezentare a datelornivelul de procesare (business logic)nivelul de integrare a componentelor

tipuri

Page 15: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Sablon de specificare a unui pattern:Numele

RezumatulProblemaContextulSolutia

ExempleleUtilizarile

specificare

Page 16: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Exemple (studii de caz):Sabloane de proiectare a documentelor XML

(XML design patterns)www.XMLpatterns.org

Sabloane de utilizabilitate Web(Web usability patterns) 

www.welie.com/patterns

sabloane

Page 17: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

In cazul nostru, ne intereseaza familia XMLIntrebari:

Cum trebuie structurat un document XML pentru a modela (stoca) anumite date sau meta‐date?

Cum trebuie proiectata o aplicatie ce utilizeaza XML ca limbaj de specificare, stocare si/sau prezentare a datelor?

sabloane

Page 18: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Recurgerea la pattern‐uri structurale pentruproiectarea structurii unui document XML:

Lungimea documentuluiUsurinta folosirii marcajelor (ease of authoring)Usurinta procesarii (ease of processing)Usurinta validariiFlexibilitateaConsistentaGradul de abstractizare

sabloane: xml

Page 19: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Sabloane de proiectare a documentelor XMLOportunitatea folosirii tehnologiei XML: Use XMLReutilizarea tipurilor de documente existente: 

Reuse Document TypeAlegerea elementului/elementelor radacina: 

Multiple Document Types, Multi Root Document TypesStabilirea gradului de abstractizare: Envelope, 

Short Understandable Names, Domain Element, Container Element, Collection Element,…

sabloane: xml

Page 20: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Sabloane de proiectare a documentelor XMLAsocierea de meta‐date: Separate Metadata & Data, 

Metadata in Separate Document, Head-Body, Metadata First

Organizarea documentuluiReferentierea unor constructii: 

Declare Before First UseAceeasi informatie referentiata in locuri multiple: 

FlyweightArbore (ierarhie) versus graf: Marketplace

sabloane: xml

Page 21: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Sabloane de proiectare a documentelor XMLExtinderea ulterioara: 

Catch-All Element, Role Attribute, Extensible Content Model

Asigurarea consistentei: Common Attributes, Consistent Element Set

sabloane: xml

Page 22: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Use XMLDetermina situatia in care XML este solutia viabilade reprezentare a informatiei (semi‐)structurate

Existenta unor reprezentari multiple: binar, CSV, HTML, baze de date relationale, obiecte serializate, XML

sabloane: xml

Page 23: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Use XMLXML poate fi o solutie adecvata cind:

continutul (datele) trebuie separate de formataredatele trebuie partajate intre aplicatii, organizatii,...reprezentarea sa poata fi inteleasa si de oamenireprezentarea sa poata fi usor procesata de calculator, independent de platforma si de limbaj

sabloane: xml

Page 24: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Use XMLFactori ce trebuie considerati: simplitatea, extensibilitatea, inter‐operabilitatea, existenta instrumentelor de procesare, transformarea in alte reprezentari, usurinta validarii, standardizarea,…

sabloane: xml

Page 25: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Use XMLXML vazut ca limbaj pentru reprezentarea atit a datelor, cit si a meta‐datelor

<rdf:Descriptionrdf:about="http://www.infoiasi.ro/studenti?matricol=33">

<html:div class="vcard"><html:span class="first-name">Andrei</html:span><s:orar> <s:zi tip="luni">... </s:zi> </s:orar>

</html:div></rdf:Description>

sabloane: xml

Page 26: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Short Understandable NamesNumele elementelor & atributelor trebuie sa fie scurtesi usor de inteles atit de autori, cit si de dezvoltatoriisoftware‐ului de procesat documentul

Pattern‐ul poate fi utilizat pentru orice tip dedocument XML

sabloane: xml

Page 27: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Short Understandable NamesNumele prea scurte sunt dificil de inteles,dar reduc lungimea documentelor

Conventii de numire: <nume_tag>, <NumeTag>, <numeTag>,...

Exemple: <b> <ul> versus <img /> <table>

<DescriereaEchipamentului CodulEchipamentului="…" />versus <desec c="…" />

sabloane: xml

Page 28: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Content ElementUn container grupeaza elemente (copil) inruditeProblema: numeroase elemente care apar pe acelasi nivel in document si care pot fi divizate in grupuri distincte

Pattern‐ul ajuta la structurarea documentului, dar este foarte general – pot exista pattern‐urimai specializate, derivate din acesta

sabloane: xml

Page 29: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Content ElementAdauga un nivel de abstractizare,gruparea elementelor oferind informatii semanticesuplimentare – e.g., asocierea de meta‐date unui grup de elemente

Pattern‐uri inrudite: Head-Body, Collection Element

sabloane: xml

Page 30: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Content Element

sabloane: xml

<config><ram>2048</ram><hdd tip="...">180</hdd><parser limbaj="Java">

Xerces</parser><editor>vim</editor><parser limbaj="Perl">

Expat</parser></config>

<config><hardware>

<ram>2048</ram><hdd tip="...">180</hdd>

</hardware><software>

<parser limbaj="Java">Xerces</parser>

<parser limbaj="Perl">Expat</parser>

<editor>vim</editor></software>

</config>

Page 31: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Collection ElementRecurge la un element al carui model de continutpermite doar instante de singur tip(suport pentru incapsulare)

Problema: exista un element care trebuie repetat la acelasi nivel al documentului

Context: gruparea pe categorii a elementelor, existenta multor “frati” (siblings), asocierea de meta‐date etc.

sabloane: xml

Page 32: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Collection ElementSolutie: crearea unui element continind mai multeelemente de acelasi tip

Structura rezultata este mult mai facil de procesat

Daca volumul de meta‐date ce pot fi atasate este mare, se va putea utiliza pattern‐ul Head-Body

Exemple: XHTML, RDF, DocBook,...

sabloane: xml

Page 33: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

EnvelopeOfera un tip de document care va desemna un “plic” in care se vor putea stoca date XML arbitrare

Problema: diferite seturi de date trebuie livrateunui sistem, intr‐o maniera consistenta

Context: structura datelor din “plic” poate varia si nu este cunoscuta la momentul crearii sistemului

sabloane: xml

Page 34: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

EnvelopeSe permite separarea diferitelor tipuri de continuturi,oferindu‐se un mecanism de livrare a datelor XML;plicul nu interfereaza cu continutul propriu‐zis al mesajului transmis

Exemplu: SOAP

sabloane: xml

Page 35: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

FlyweightCind aceeasi informatie este inclusa in diferite locuriin document, atunci ea poate fi plasata o singura datasi referita in locuri multiple

Problema: plasarea repetata a acelorasi date in locuridiferite poate cauza erori si dificultati in mentenantadocumentului; de asemenea, creste nejustificatlungimea documentului

sabloane: xml

Page 36: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

FlyweightSolutie: utilizarea entitatilor XML (externe), folosirea datelor “scufundate” via XLink,utilizarea atributelor ID & IDREF etc.

Pattern‐ul mareste gradul de mentenanta simodularizare, dar poate afecta abilitatea deintelegere a documentului

sabloane: xml

Page 37: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

<?xml version="1.0" ?><!DOCTYPE Titlu [

<!ENTITY titlu "Situl lui Tux">]><html><head>

<title>&titlu;</title><meta name="description" content="&titlu;" />

</head><body>

<h1>&titlu; :: Salut!</h1></body>

</html>

sabloane: xml

Flyweight– un exemplu

Page 38: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Role AttributeProblema: unui element ii trebuie precizat rolul(i.e. caracteristica definitorie)

Solutie: se poate folosi un atribut specificind rolulValorile atributului trebuie sa fie mutual exclusive (pentru un element XML, nu pot apareade mai multe ori atribute avind acelasi nume)<departament rol="cercetare">…</departament>

Se poate reduce si numarul elementelor definiteExemplu: microformate

sabloane: xml

Page 39: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Modelarea datelor (de la implicit la explicit)

sabloane: xml

<preferintetema="aqua" rezolutie="1024x768"browser="Firefox 2.0"

/>

Conventii de reprezentare

ce nu pot fi deduseexplicit!

Daca trebuie stocatao lista de 

navigatoare?

Page 40: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Modelarea datelor (de la implicit la explicit)

sabloane: xml

<preferinte> <tema>aqua</tema><rezolutie>

<latime unit="px">1024</latime><lungime unit="px">768</lungime>

</rezolutie><browser versiune="2.0">Firefox</browser>

</preferinte>

O solutiemai buna…

Page 41: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Sabloane de proiectare XMLPunerea problemeiTipuri & caracteristici

Exemplificari

rezumat

Page 42: Web - XML design patterns

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

??