Upload
sabin-buraga
View
1.598
Download
1
Embed Size (px)
DESCRIPTION
Citation preview
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Tehnologii Web
Dr. SabinCorneliu BuragaFacultatea de Informatica
Universitatea “A.I.Cuza” – Iasi, Romania
http://www.infoiasi.ro/~busaco/
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]
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Sabloane de proiectare XMLPunerea problemeiTipuri & caracteristici
Exemplificari
cuprins
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
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
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
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
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(objectoriented software design):pattern ≡ “mind sized” chunk of information
lucrarea de referinta:“Design Patterns” (E. Gamma et al., 1995)
definitii
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)
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
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! antipatterns
caracteristici
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
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Pattern‐uri privitoare la:proiectarearhitecturaanaliza
dezvoltarestructura
comportament…
tipuri
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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>
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
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
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
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
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
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
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
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
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?
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…
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Sabloane de proiectare XMLPunerea problemeiTipuri & caracteristici
Exemplificari
rezumat
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
??