0
Dr. Sabin-Corneliu Buraga
             Facultatea de Informatică
Universitatea “Alexandru Ioan Cuza” – Iași, România

    ...
„Lucrurile nu sunt grele de făcut,
ceea ce este greu este să fim în stare să le facem!”


               Constantin Brâncu...
Cum modelăm (reprezentăm) datele?
datele: mai importante decât aplicațiile




    Procesare   Date proprietare    Publicarea    Modelare      Modelare
   (...
datele: mai importante decât aplicațiile




    Procesare   Date proprietare    Publicarea    Modelare      Modelare
   (...
Ce model de reprezentare a datelor
        alegem pentru…

    stocarea datelor eterogene,
    provenind din surse multipl...
Ce model de reprezentare a datelor
        alegem pentru…

   informații care evoluează rapid?
Ce model de reprezentare a datelor
        alegem pentru…

  reprezentarea limbajului natural?
Dorim să modelăm și să procesăm
       date privitoare la…

         antologii de poezii,
cataloage de produse ale unui e-...
o soluție


Folosim HTML pentru modelarea datelor
și – eventual – CSS pentru prezentarea lor
o soluție


   Folosim HTML pentru modelarea datelor
   și – eventual – CSS pentru prezentarea lor

<p><strong>Prietenii m...
Nu putem defini propriile noastre marcaje!?
Necesitate:
un limbaj de marcare explicită a datelor
Necesitate:
   un limbaj de marcare explicită a datelor

datele modelate pot fi practic nelimitate (unbound)
             ...
Necesitate:
   un limbaj de marcare explicită a datelor

               ar fi de dorit ca datele
să se poată „explica” pe ...
Necesitate:
   un limbaj de marcare explicită a datelor

               ar fi de dorit ca datele
să se poată „explica” pe ...
Necesitate:
modelul adoptat să se preteze arhitecturilor
navigaționale actuale, bazate pe hipertext

suport pentru specifi...
Am putea recurge la sau specifica
 un nou format de document?
Documente:

    formate particulare (proprietare)

                  versus

formate generice (deschise, standardizate)
definiție


    Marcaj – adnotare, codare, mark-up

      orice actiune de a interpreta explicit
          o porțiune de t...
definiție


    Marcaj – adnotare, codare, mark-up

      orice actiune de a interpreta explicit
          o porțiune de t...
definiție


              Limbaj de specificare
            (de adnotare, de marcare)

            set de convenții de mar...
definiție


              Limbaj de specificare
            (de adnotare, de marcare)

            set de convenții de mar...
Extensible Markup Language

   meta-limbaj de marcare

   permite definirea de limbaje
Extensible Markup Language

descendent simplificat al SGML destinat
  utilizării în Internet (1996–prezent)
Extensible Markup Language

standard al Consorțiului Web (W3C)

    www.w3.org/TR/REC-xml
Extensible Markup Language

o tehnologie + o familie de limbaje

       www.w3.org/XML/
Asigură inter-operabilitatea la nivel de date


are suport pe orice platformă hardware/software,
       inclusiv în cadrul...
Asigură inter-operabilitatea la nivel de date


    procesoarele XML sunt implementate
      în toate limbajele de program...
Asigură inter-operabilitatea la nivel de date


        procesoarele XML sunt implementate
          în toate limbajele de...
Asigură inter-operabilitatea la nivel de date


recurge la Unicode – independent de codificare
Soluție pentru reprezentarea conținutului
  resurselor Web identificate de URI/IRI
exemplu


     Reprezentarea unei antologii de poezii
<?xml version="1.0" ?>
<antologie>
       <poem>
               <tit...
exemplu


       Specificarea unui catalog de produse
<produse>
  <produs tip="promo">
    <nume>Ping Uinix</nume>
    <of...
exemplu


       Specificarea unui catalog de produse
<produse>
  <produs tip="promo">
    <nume>Ping Uinix</nume>
    <of...
exemplu


       Specificarea unui catalog de produse
<produse>
  <produs tip="promo">
    <nume>Ping Uinix</nume>
    <of...
exemplu


              Informații despre o persoană
          via vocabularul FOAF (Friend Of A Friend)
<foaf:Person rdf:...
exemplu


               Informații despre o persoană
          via vocabularul FOAF (Friend Of A Friend)
<foaf:Person rdf...
exemplu


               Informații despre o persoană
          via vocabularul FOAF (Friend Of A Friend)
<foaf:Person rdf...
sintaxa
XML (Extensible Markup Language)
  modelul de date XML (abstract)
  XML Information Set – Infoset
  transformări/p...
Structurarea/formatarea conținutului
       (formate de prezentare a datelor)

   în navigatorul Web: (X)HTML – Extensible...
Reprezentarea diferitelor tipuri de conținut

              expresii matematice: MathML
              multimedia sincroniz...
Reprezentarea diferitelor tipuri de conținut

 documentații: DocBook (Documentation Book)
      informații prelucrate de s...
Multe alte limbaje la

http://xml.coverpages.org/
Așadar, până la urmă, ce este XML?
XML unifică tehnologii privind:

         procesarea documentelor

stocarea și prelucrarea tradițională a datelor

       ...
Internet




          XML
 Baze                Docu-
de date              mente
XML se pretează pentru stocarea
(reprezentarea) datelor semi-structurate
XML se pretează pentru stocarea
(reprezentarea) datelor semi-structurate

sistemele tradiționale (e.g., bazele de date rel...
XML se pretează pentru stocarea
(reprezentarea) datelor semi-structurate

sistemele tradiționale (e.g., bazele de date rel...
XML se pretează pentru stocarea
   (reprezentarea) datelor semi-structurate

datele de pe Web sunt descentralizate, eterog...
XML se pretează pentru stocarea
   (reprezentarea) datelor semi-structurate

datele de pe Web sunt descentralizate, eterog...
Direcții de interes:
comunicatii și interacțiune
Direcții de interes:
     comunicatii și interacțiune

           person-to-person

instant messaging – e.g., Jabber via X...
Direcții de interes:
     comunicatii și interacțiune

        computer-to-person

      syndication – via RSS/Atom
recoma...
Direcții de interes:
      comunicatii și interacțiune

        computer-to-computer

servicii Webaplicații hibride (mash...
Twitter + Google EarthTwittEarth
Direcții de interes:
publicare deschisă a datelor
Direcții de interes:
      publicare deschisă a datelor

      modelare (semi)structurată
utilizare de formate/vocabulare ...
Direcții de interes:
       publicare deschisă a datelor

procesare independentă de platformă/limbaj
Direcții de interes:
      publicare deschisă a datelor

   prezentări multiple ale conținutului,
în diverse formate, pe s...
Direcții de interes:
modelarea proceselor (de afaceri, mai ales)
Direcții de interes:
modelarea proceselor (de afaceri, mai ales)

            dataflow/workflow

  BRML (Business Rules Ma...
Analizoare (procesoare, parsers)
         Apache Xerces, Expat, libxml,…

       Vizualizatoare și editoare structurale
Fi...
Firefinder – folosirea interogărilor XPath în cadrul Firebug
Instrumente de convertire
                 Tidy

         Instrumente de arhivare
                 XMill

Sisteme de gesti...
Există bune practici
privind utilizarea și/sau modelarea
       documentelor XML?
Cum trebuie structurat un document XML
        pentru a modela (stoca)
      anumite date sau meta-date?
Recurgerea la șabloane de proiectare
         (design patterns)
definiție


               Pattern (șablon)

           regulă ce exprimă o relație
   dintre un context, o problemă și o ...
Uzual, pattern-urile sunt utilizate
            în proiectarea de aplicații
        (object-oriented software design)


  ...
Șabloanele de proiectare au fost folosite, ulterior,
      în cadrul interacțiunii om-calculator

      context: IA – Info...
folosirea șabloanelor de interacțiune
Un șablon poate descrie cunoștințele unui expert
       (pe baza experienței sale personale)
    în domeniul problemei în ...
Un șablon nu reprezintă o regulă fermă


uneori nu trebuie aplicatanti-patterns
Este necesară adoptarea unui vocabular comun
     corespunzător domeniului problemei

            pattern language
Șabloane privitoare la:

     proiectare
     arhitectură
       analiză
     dezvoltare
      structură
   comportament
Ne interesează modelarea datelor
       pe baza familiei XML
Recurgerea la șabloane structurale pentru
proiectarea structurii unui document XML:

          lungimea documentului
     ...
exemplu


                    Use XML

determină situația în care XML este soluția viabilă
de reprezentare a informațiilor...
exemplu


                     Use XML

               reprezentări multiple:
   binar, CSV (Comma-Separated Values), HTML...
exemplu


                    Use XML

   XML poate fi o soluție adecvată atunci când:

datele (conținutul) trebuie separa...
exemplu


                      Use XML

   XML poate fi o soluție adecvată atunci când:

datele trebuie partajate între a...
exemplu
exemplu


                  Use XML

 XML poate fi o soluție adecvată atunci când:

           reprezentarea resurselor
  ...
exemplu


                    Use XML

   XML poate fi o soluție adecvată atunci când:

reprezentarea trebuie procesată fa...
exemplu


         Short Understandable Names

     numele marcajelor (elemente și atribute)
trebuie să fie scurte și ușor...
exemplu


        Short Understandable Names

     numele prea scurte sunt dificil de înțeles,
       dar reduc lungimea d...
exemplu


      Short Understandable Names

           convenții de numire:

              <nume_tag>
              <NumeT...
exemplu


               Content Element

    problemă: numeroase elemente care apar
pe același nivel în document și care ...
exemplu


               Content Element

        adaugă un nivel de abstractizare,
gruparea elementelor oferind informați...
exemplu


          Content Element

          șabloane înrudite:
              Head-Body
          Collection Element
exemplu


                     Content Element
                              <config>
<config>                         <ha...
exemplu


                   Envelope

oferă un tip de document care va desemna un „plic”
   în care se vor putea stoca da...
exemplu


                       Envelope

oferă un tip de document care va desemna un „plic”
   în care se vor putea stoc...
exemplu


                    Envelope

permite separarea diferitelor tipuri de conținuturi,
oferindu-se un mecanism de li...
exemplu


                 Envelope

         exemplu tipic de utilizare:
protocolul SOAP folosit la vehicularea datelor
 ...
exemplu


          Envelope
exemplu


               Role Attribute

                   problemă:
     unui element îi trebuie precizat rolul
        ...
exemplu


               Role Attribute

                   problemă:
     unui element îi trebuie precizat rolul
        ...
exemplu


                 Role Attribute

valorile atributului trebuie să fie mutual exclusive



        pentru un eleme...
exemplu


               Role Attribute

exemple de utilizare în cadrul microformatelor

           www.microformats.org

...
Alte șabloane

reutilizarea tipurilor de documente existente:
            Reuse Document Type
Alte șabloane

alegerea elementului/elementelor rădăcină:
        Multiple Document Types
       Multi Root Document Types
Alte șabloane

          referențierea unor construcții:
             Declare Before First Use
referențierea aceleiași inf...
Alte șabloane

   facilitarea extinderii:
    Catch-All Element
      Role Attribute
Extensible Content Model
Alte șabloane

asigurarea consistenței:
  Common Attributes
Consistent Element Set
Alte șabloane

   asocierea de meta-date:
  Separate Metadata & Data
Metadata in Separate Document
          Head-Body
   ...
studiu de caz


Modelarea datelor (de la implicit la explicit)

      specificarea preferințelor utilizatorului
          ...
studiu de caz


 Modelarea datelor (de la implicit la explicit)

       specificarea preferințelor utilizatorului
        ...
studiu de caz


 Modelarea datelor (de la implicit la explicit)

       specificarea preferințelor utilizatorului
        ...
studiu de caz


 Modelarea datelor (de la implicit la explicit)

       specificarea preferințelor utilizatorului
        ...
studiu de caz


 Modelarea datelor (de la implicit la explicit)
     recurgând la șabloaneo soluție mai bună
<preferinte>...
Resurse bibliografice

        S. Buraga, Tehnologii XML, Polirom, 2006

S. Buraga (coord.), Programarea în Web 2.0, Polir...
Situri Web de interes

             Consorțiul Web: www.w3.org

 Șabloane de proiectare XML: www.XMLPatterns.com

        ...
Ă
Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML
Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML
Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML
Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML
Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML
Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML
Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML
Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML
Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML
Upcoming SlideShare
Loading in...5
×

Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

2,203

Published on

An introduction to XML (Extensible Markup Language), including several considerations regarding the use of design patterns in the context of semi-structural data modeling.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,203
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML"

  1. 1. Dr. Sabin-Corneliu Buraga Facultatea de Informatică Universitatea “Alexandru Ioan Cuza” – Iași, România www.purl.org/net/busaco @busaco
  2. 2. „Lucrurile nu sunt grele de făcut, ceea ce este greu este să fim în stare să le facem!” Constantin Brâncuși
  3. 3. Cum modelăm (reprezentăm) datele?
  4. 4. datele: mai importante decât aplicațiile Procesare Date proprietare Publicarea Modelare Modelare (programe) (baze de date, datelor (semi) conceptuală suite de birou) pe Web structurată (RDF, OWL) (HTML) (XML) “Data is less “Data is as “Data is more important important important than code” as code” than code” 1945 -1970 1970 - 1994 1994 - 2000 2000 - 2003 2003 - evoluția conceptului de “dată” (Daconta et al., 2003)
  5. 5. datele: mai importante decât aplicațiile Procesare Date proprietare Publicarea Modelare Modelare (programe) (baze de date, datelor (semi) conceptuală suite de birou) pe Web structurată (RDF, OWL) (HTML) (XML) “Data is less “Data is as “Data is more important important important than code” as code” than code” 1945 -1970 1970 - 1994 1994 - 2000 2000 - 2003 2003 - evoluția conceptului de “dată” (Daconta et al., 2003)
  6. 6. Ce model de reprezentare a datelor alegem pentru… stocarea datelor eterogene, provenind din surse multiple?
  7. 7. Ce model de reprezentare a datelor alegem pentru… informații care evoluează rapid?
  8. 8. Ce model de reprezentare a datelor alegem pentru… reprezentarea limbajului natural?
  9. 9. Dorim să modelăm și să procesăm date privitoare la… antologii de poezii, cataloage de produse ale unui e-shop, depozite de rețete gastronomice, chestionare, rețele sociale etc.
  10. 10. o soluție Folosim HTML pentru modelarea datelor și – eventual – CSS pentru prezentarea lor
  11. 11. o soluție Folosim HTML pentru modelarea datelor și – eventual – CSS pentru prezentarea lor <p><strong>Prietenii mei:</strong></p> <ul> <li><a href="http://twitter.com/pinguinulvesel"> Dragoș</a></li> <li><a href="mailto:tux@pinguin.info"> Tux</a></li> </ul>
  12. 12. Nu putem defini propriile noastre marcaje!?
  13. 13. Necesitate: un limbaj de marcare explicită a datelor
  14. 14. Necesitate: un limbaj de marcare explicită a datelor datele modelate pot fi practic nelimitate (unbound) și necunoscute
  15. 15. Necesitate: un limbaj de marcare explicită a datelor ar fi de dorit ca datele să se poată „explica” pe ele însele (self-explanatory)
  16. 16. Necesitate: un limbaj de marcare explicită a datelor ar fi de dorit ca datele să se poată „explica” pe ele însele (self-explanatory) ce reprezintă triplul ("Sabin", "Buraga", 33)?
  17. 17. Necesitate: modelul adoptat să se preteze arhitecturilor navigaționale actuale, bazate pe hipertext suport pentru specificarea adreselor Web – URI-uri
  18. 18. Am putea recurge la sau specifica un nou format de document?
  19. 19. Documente: formate particulare (proprietare) versus formate generice (deschise, standardizate)
  20. 20. definiție Marcaj – adnotare, codare, mark-up orice actiune de a interpreta explicit o porțiune de text (conținut)
  21. 21. definiție Marcaj – adnotare, codare, mark-up orice actiune de a interpreta explicit o porțiune de text (conținut) exemple: semnele de punctuație pentru limbile scrise, deliminatorii folosiți în codul-sursă
  22. 22. definiție Limbaj de specificare (de adnotare, de marcare) set de convenții de marcare utilizate pentru codificarea datelor
  23. 23. definiție Limbaj de specificare (de adnotare, de marcare) set de convenții de marcare utilizate pentru codificarea datelor specifică mulțimea de marcaje obligatorii, modul de identificare și de structurare a marcajelor
  24. 24. Extensible Markup Language meta-limbaj de marcare permite definirea de limbaje
  25. 25. Extensible Markup Language descendent simplificat al SGML destinat utilizării în Internet (1996–prezent)
  26. 26. Extensible Markup Language standard al Consorțiului Web (W3C) www.w3.org/TR/REC-xml
  27. 27. Extensible Markup Language o tehnologie + o familie de limbaje www.w3.org/XML/
  28. 28. Asigură inter-operabilitatea la nivel de date are suport pe orice platformă hardware/software, inclusiv în cadrul navigatoarelor Web
  29. 29. Asigură inter-operabilitatea la nivel de date procesoarele XML sunt implementate în toate limbajele de programare
  30. 30. Asigură inter-operabilitatea la nivel de date procesoarele XML sunt implementate în toate limbajele de programare metode uzuale de procesare obiectuală: DOM (Document Object Model) secvențială bazată pe evenimente: SAX (Simple API for XML) simplificată: Simple XML
  31. 31. Asigură inter-operabilitatea la nivel de date recurge la Unicode – independent de codificare
  32. 32. Soluție pentru reprezentarea conținutului resurselor Web identificate de URI/IRI
  33. 33. exemplu Reprezentarea unei antologii de poezii <?xml version="1.0" ?> <antologie> <poem> <titlu>...</titlu> <strofa> <vers>...</vers> <vers>...</vers> ... </strofa> </poem> <!-- mai multe poeme… (acesta e un comentariu) --> </antologie>
  34. 34. exemplu Specificarea unui catalog de produse <produse> <produs tip="promo"> <nume>Ping Uinix</nume> <ofertant>http://www.pinguin.info</ofertant> </produs> <produs> <!-- un soi de portocale albastre --> <nume>Blue Ory</nume> <descriere /> <!-- un element având conținut vid --> </produs> <produs>…</produs> </produse>
  35. 35. exemplu Specificarea unui catalog de produse <produse> <produs tip="promo"> <nume>Ping Uinix</nume> <ofertant>http://www.pinguin.info</ofertant> </produs> <produs> <!-- un soi de portocale albastre --> <nume>Blue Ory</nume> <descriere /> <!-- un element având conținut vid --> </produs> <produs>…</produs> </produse>
  36. 36. exemplu Specificarea unui catalog de produse <produse> <produs tip="promo"> <nume>Ping Uinix</nume> <ofertant>http://www.pinguin.info</ofertant> </produs> <produs> <!-- un soi de portocale albastre --> <nume>Blue Ory</nume> <descriere /> <!-- un element având conținut vid --> </produs> <produs>…</produs> </produse> date semi-structurate
  37. 37. exemplu Informații despre o persoană via vocabularul FOAF (Friend Of A Friend) <foaf:Person rdf:ID="busaco"> <foaf:name>Sabin Buraga</foaf:name> <foaf:mbox rdf:resource="mailto:busaco@infoiasi.ro"/> <foaf:homepage rdf:resource="http://www.purl.org/net/busaco"/> </foaf:Person>
  38. 38. exemplu Informații despre o persoană via vocabularul FOAF (Friend Of A Friend) <foaf:Person rdf:ID="busaco"> <foaf:name>Sabin Buraga</foaf:name> <foaf:mbox rdf:resource="mailto:busaco@infoiasi.ro"/> <foaf:homepage rdf:resource="http://www.purl.org/net/busaco"/> </foaf:Person> <foaf:Image rdf:about="http://www.flickr.com/.../foto.jpg"> <dc:date rdf:datatype="xsd:date">2010-05-12</dc:date> <dc:title xml:lang="ro">Prezentare la Summer Web 2010</dc:title> <foaf:depicts rdf:resource="#busaco"/> <foaf:maker rdf:resource="#tux"/> </foaf:Image>
  39. 39. exemplu Informații despre o persoană via vocabularul FOAF (Friend Of A Friend) <foaf:Person rdf:ID="busaco"> <foaf:name>Sabin Buraga</foaf:name> <foaf:mbox rdf:resource="mailto:busaco@infoiasi.ro"/> <foaf:homepage rdf:resource="http://www.purl.org/net/busaco"/> </foaf:Person> <foaf:Image rdf:about="http://www.flickr.com/.../foto.jpg"> <dc:date rdf:datatype="xsd:date">2010-05-12</dc:date> <dc:title xml:lang="ro">Prezentare la Summer Web 2010</dc:title> <foaf:depicts rdf:resource="#busaco"/> <foaf:maker rdf:resource="#tux"/> </foaf:Image> spații de nume
  40. 40. sintaxa XML (Extensible Markup Language) modelul de date XML (abstract) XML Information Set – Infoset transformări/prezentări de date XSL (Extensible Stylesheet Language) interogarea datelor XQuery – împreună cu XPath
  41. 41. Structurarea/formatarea conținutului (formate de prezentare a datelor) în navigatorul Web: (X)HTML – Extensible HTML formulare electronice: XForms grafică vectorială: SVG (Scalable Vector Graphics) lumi tridimensionale: X3D (Extensible 3D Graphics) în medii fără fir: XHTML-MP (Mobile Profile), Tiny SVG
  42. 42. Reprezentarea diferitelor tipuri de conținut expresii matematice: MathML multimedia sincronizată: SMIL (Synchronized Multimedia Integration Language) informații vocale: VoiceXML componente ale interfeței-utilizator: XUL (Extensible User-interface Language) informații cartografice: KML (Keyhole Markup Language)
  43. 43. Reprezentarea diferitelor tipuri de conținut documentații: DocBook (Documentation Book) informații prelucrate de suite de birou – e.g., Open Office: ODF (Open Document Format) mediatizare (syndication) – fluxuri de știri: RSS (Really Simple Syndication), Atom reguli de specificare a proceselor de afaceri: BRML (Business Rules Markup Language)
  44. 44. Multe alte limbaje la http://xml.coverpages.org/
  45. 45. Așadar, până la urmă, ce este XML?
  46. 46. XML unifică tehnologii privind: procesarea documentelor stocarea și prelucrarea tradițională a datelor accesul la Internet (Web)
  47. 47. Internet XML Baze Docu- de date mente
  48. 48. XML se pretează pentru stocarea (reprezentarea) datelor semi-structurate
  49. 49. XML se pretează pentru stocarea (reprezentarea) datelor semi-structurate sistemele tradiționale (e.g., bazele de date relaționale) necesită specificarea unei scheme rigide în vederea stocării/accesării datelor
  50. 50. XML se pretează pentru stocarea (reprezentarea) datelor semi-structurate sistemele tradiționale (e.g., bazele de date relaționale) necesită specificarea unei scheme rigide în vederea stocării/accesării datelor …un punct de vedere în general centralizat
  51. 51. XML se pretează pentru stocarea (reprezentarea) datelor semi-structurate datele de pe Web sunt descentralizate, eterogene și pot fi, deseori, accesate – chiar modificate – de către oricine
  52. 52. XML se pretează pentru stocarea (reprezentarea) datelor semi-structurate datele de pe Web sunt descentralizate, eterogene și pot fi, deseori, accesate – chiar modificate – de către oricine resursele disponibile la un moment dat nu sunt cunoscute a-priori
  53. 53. Direcții de interes: comunicatii și interacțiune
  54. 54. Direcții de interes: comunicatii și interacțiune person-to-person instant messaging – e.g., Jabber via XMPP micro-blogging – exemplu: Twitter
  55. 55. Direcții de interes: comunicatii și interacțiune computer-to-person syndication – via RSS/Atom recomandare de conținut – e.g., Zemanta integrare de sisteme sociale
  56. 56. Direcții de interes: comunicatii și interacțiune computer-to-computer servicii Webaplicații hibride (mash-up-uri)
  57. 57. Twitter + Google EarthTwittEarth
  58. 58. Direcții de interes: publicare deschisă a datelor
  59. 59. Direcții de interes: publicare deschisă a datelor modelare (semi)structurată utilizare de formate/vocabulare standardizate DCMI (Dublin Core Metadata Initiative), FOAF (Friend Of A Friend), DOAP (Description Of A Project), …
  60. 60. Direcții de interes: publicare deschisă a datelor procesare independentă de platformă/limbaj
  61. 61. Direcții de interes: publicare deschisă a datelor prezentări multiple ale conținutului, în diverse formate, pe sisteme eterogene
  62. 62. Direcții de interes: modelarea proceselor (de afaceri, mai ales)
  63. 63. Direcții de interes: modelarea proceselor (de afaceri, mai ales) dataflow/workflow BRML (Business Rules Markup Language), BPEL4WS (Business Process Execution Language for Web Services)
  64. 64. Analizoare (procesoare, parsers) Apache Xerces, Expat, libxml,… Vizualizatoare și editoare structurale Firefox, Open Office, 4Suite, <oXygen />, Serna etc. Formatatoare – e.g., procesoare XSLT/XSL-FO Apache FOP, libxslt, Saxon,…
  65. 65. Firefinder – folosirea interogărilor XPath în cadrul Firebug
  66. 66. Instrumente de convertire Tidy Instrumente de arhivare XMill Sisteme de gestiune a bazelor de date XML Berkeley DB XML, eXist, Sedna etc.
  67. 67. Există bune practici privind utilizarea și/sau modelarea documentelor XML?
  68. 68. Cum trebuie structurat un document XML pentru a modela (stoca) anumite date sau meta-date?
  69. 69. Recurgerea la șabloane de proiectare (design patterns)
  70. 70. definiție Pattern (șablon) regulă ce exprimă o relație dintre un context, o problemă și o soluție Christopher Alexander, 1979
  71. 71. Uzual, pattern-urile sunt utilizate în proiectarea de aplicații (object-oriented software design) pattern  “mind sized” chunk of information lucrarea de referință: E. Gamma et al., Design Patterns, Addison-Wesley, 1995
  72. 72. Șabloanele de proiectare au fost folosite, ulterior, în cadrul interacțiunii om-calculator context: IA – Information Architecture resurse esențiale: J. Tidwell, Designing Interfaces, O’Reilly, 2005 www.hcipatterns.org www.welie.com/patterns
  73. 73. folosirea șabloanelor de interacțiune
  74. 74. Un șablon poate descrie cunoștințele unui expert (pe baza experienței sale personale) în domeniul problemei în ceea ce privește recunoașterea problemei, a contextului și a soluției la acea problemă
  75. 75. Un șablon nu reprezintă o regulă fermă uneori nu trebuie aplicatanti-patterns
  76. 76. Este necesară adoptarea unui vocabular comun corespunzător domeniului problemei pattern language
  77. 77. Șabloane privitoare la: proiectare arhitectură analiză dezvoltare structură comportament
  78. 78. Ne interesează modelarea datelor pe baza familiei XML
  79. 79. Recurgerea la șabloane structurale pentru proiectarea structurii unui document XML: lungimea documentului ușurința folosirii marcajelor ușurința procesării flexibilitatea consistența gradul de abstractizare
  80. 80. exemplu Use XML determină situația în care XML este soluția viabilă de reprezentare a informațiilor (semi-)structurate
  81. 81. exemplu Use XML reprezentări multiple: binar, CSV (Comma-Separated Values), HTML, baze de date relaționale, obiecte serializate, XML,…
  82. 82. exemplu Use XML XML poate fi o soluție adecvată atunci când: datele (conținutul) trebuie separat(e) de formatare
  83. 83. exemplu Use XML XML poate fi o soluție adecvată atunci când: datele trebuie partajate între aplicații, organizații,...
  84. 84. exemplu
  85. 85. exemplu Use XML XML poate fi o soluție adecvată atunci când: reprezentarea resurselor trebuie să poată fi înțeleasă și de oameni
  86. 86. exemplu Use XML XML poate fi o soluție adecvată atunci când: reprezentarea trebuie procesată facil de calculator, independent de platformă și de limbaj
  87. 87. exemplu Short Understandable Names numele marcajelor (elemente și atribute) trebuie să fie scurte și ușor de înțeles atât de autori, cât și de dezvoltatorii software-ului care va procesa documentul XML
  88. 88. exemplu Short Understandable Names numele prea scurte sunt dificil de înțeles, dar reduc lungimea documentelor <DescriereaEchipamentului CodulEchipamentului="…" /> versus <desec c="…" /> <b> <ul> versus <video /> <table> <title>
  89. 89. exemplu Short Understandable Names convenții de numire: <nume_tag> <NumeTag> <numeTag>
  90. 90. exemplu Content Element problemă: numeroase elemente care apar pe același nivel în document și care pot fi divizate în grupuri distincte un container grupează elemente (copil) înrudite
  91. 91. exemplu Content Element adaugă un nivel de abstractizare, gruparea elementelor oferind informații semantice suplimentare – e.g., asocierea de meta-date unui grup de elemente
  92. 92. exemplu Content Element șabloane înrudite: Head-Body Collection Element
  93. 93. exemplu Content Element <config> <config> <hardware> <ram>4096</ram> <ram>4096</ram> <hdd tip="...">500</hdd> <hdd tip="...">500</hdd> </hardware> <parser limbaj="Java"> <software> Xerces</parser> <parser limbaj="Java"> <editor>vim</editor> Xerces</parser> <parser limbaj="Perl"> <parser limbaj="Perl"> Expat</parser> Expat</parser> </config> <editor>vim</editor> </software> </config>
  94. 94. exemplu Envelope oferă un tip de document care va desemna un „plic” în care se vor putea stoca date XML arbitrare
  95. 95. exemplu Envelope oferă un tip de document care va desemna un „plic” în care se vor putea stoca date XML arbitrare problemă: diferite seturi de date trebuie livrate unui sistem, într-o manieră consistentă context: structura datelor din „plic” poate varia și nu este cunoscută la momentul creării sistemului
  96. 96. exemplu Envelope permite separarea diferitelor tipuri de conținuturi, oferindu-se un mecanism de livrare a datelor XML „plicul” nu interferează cu conținutul propriu-zis al mesajului transmis
  97. 97. exemplu Envelope exemplu tipic de utilizare: protocolul SOAP folosit la vehicularea datelor dintre servicii Web și clienți
  98. 98. exemplu Envelope
  99. 99. exemplu Role Attribute problemă: unui element îi trebuie precizat rolul (i.e. caracteristica definitorie)
  100. 100. exemplu Role Attribute problemă: unui element îi trebuie precizat rolul (i.e. caracteristica definitorie) soluție: se poate folosi un atribut specificând rolul
  101. 101. exemplu Role Attribute valorile atributului trebuie să fie mutual exclusive pentru un element XML, nu pot apărea de mai multe ori atribute având același nume <departament rol="cercetare">…</departament>
  102. 102. exemplu Role Attribute exemple de utilizare în cadrul microformatelor www.microformats.org vezi direcția POSH (Plain Old Semantic HTML)
  103. 103. Alte șabloane reutilizarea tipurilor de documente existente: Reuse Document Type
  104. 104. Alte șabloane alegerea elementului/elementelor rădăcină: Multiple Document Types Multi Root Document Types
  105. 105. Alte șabloane referențierea unor construcții: Declare Before First Use referențierea aceleiași informații în locuri multiple: Flyweight arbore (ierarhie) versus graf: Marketplace facilitează organizarea structurii documentului XML
  106. 106. Alte șabloane facilitarea extinderii: Catch-All Element Role Attribute Extensible Content Model
  107. 107. Alte șabloane asigurarea consistenței: Common Attributes Consistent Element Set
  108. 108. Alte șabloane asocierea de meta-date: Separate Metadata & Data Metadata in Separate Document Head-Body Metadata First
  109. 109. studiu de caz Modelarea datelor (de la implicit la explicit) specificarea preferințelor utilizatorului în contextul navigării pe Web
  110. 110. studiu de caz Modelarea datelor (de la implicit la explicit) specificarea preferințelor utilizatorului în contextul navigării pe Web <preferinte tema="aqua" rezolutie="1024x768" browser="Firefox 3.6" />
  111. 111. studiu de caz Modelarea datelor (de la implicit la explicit) specificarea preferințelor utilizatorului în contextul navigării pe Web <preferinte tema="aqua" convenții de reprezentare ce nu pot fi deduse explicit rezolutie="1024x768" browser="Firefox 3.6" />
  112. 112. studiu de caz Modelarea datelor (de la implicit la explicit) specificarea preferințelor utilizatorului în contextul navigării pe Web <preferinte tema="aqua" rezolutie="1024x768" browser="Firefox 3.6" dacă trebuie stocată o listă de navigatoare? />
  113. 113. studiu de caz Modelarea datelor (de la implicit la explicit) recurgând la șabloaneo soluție mai bună <preferinte> <tema>aqua</tema> <rezolutie> <latime unit="px">1024</latime> <lungime unit="px">768</lungime> </rezolutie> <browser versiune="3.6">Firefox</browser> </preferinte>
  114. 114. Resurse bibliografice S. Buraga, Tehnologii XML, Polirom, 2006 S. Buraga (coord.), Programarea în Web 2.0, Polirom, 2007 B. Daum, U. Merten, System Architecture with XML, Elsevier Science, 2003
  115. 115. Situri Web de interes Consorțiul Web: www.w3.org Șabloane de proiectare XML: www.XMLPatterns.com XML.org: www.XML.org Instrumente XML open source oferite de fundația Apache: xml.apache.org
  116. 116. Ă
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×