820 likes | 912 Views
Dataudveksling og XML. η επικοινωνία είναι δύσκολη. Udveksling af information er stort set det, IT (Informationsteknologi) drejer sig om! Mængden af information der udveksles, stiger eksplosivt Hvor meget information udveksler du på én dag?. Hvad udveksler vi?. Dokumenter. Alt muligt!
E N D
η επικοινωνία είναι δύσκολη • Udveksling af information er stort set det, IT (Informationsteknologi) drejer sig om! • Mængden af information der udveksles, stiger eksplosivt • Hvor meget information udveksler du på én dag? RHS – Informationsteknologi
Hvad udveksler vi? Dokumenter • Alt muligt! • Efter Internettes fremkomst er mængden af udvekslet data blevet enorm • Hvor meget data rummer Internettet…? • Ingen ved det… Men det anslås, at det hvert år genereres 100 milliarder milliarder bytes! Lyd Billeder Video SMS RHS – Informationsteknologi
Hvad er dit forbrug? • Hvor mange e-mails/dag? • Hvor mange SMS/dag? • Hvor mange MMS/dag? • Hvor meget download/dag? • Hvor meget kopiering/dag? • Hvor meget surf/dag? RHS – Informationsteknologi
Hvad er information egentlig? • Information er data… • Lidt mere detajleret, information er: • Data selv • Data om data • Det sidste kaldes også for meta-data Arrrhhh, sådan noget forbandet kommunist-sludder!!! RHS – Informationsteknologi
Meta-data??? • ”Data om data” lyder lidt tåget… • Forestil dig, at en person kommer hen til dig og siger ”44” – og ikke andet • Hvad i alverden mener han!? • Vedkommende har givet dig et stykke data, men har ikke fortalt meningen med data – han har ikke givet dig ”data om data” RHS – Informationsteknologi
Meta-data??? • Data om data – meningen med data. • Personen burde i stedet have sagt ”Mit skonummer er 44” • ”44”: er data • ”Mit skonummer er”: er meta-data • Meta-data giver os en ”kontekst” for selve data, så vi kan forstå meningen med det. RHS – Informationsteknologi
Meta-data i sproget - 1 • Vi bruger formen med data og meta-data hele tiden i vores sprog • ”Skoene koster800 kroner” • ”Min hund hedderVagn” • ”Jonas’ bil er enOpel Kadett” • Data • Meta-data RHS – Informationsteknologi
Meta-data i sproget - 2 • Men ofte er vi meget upræcise og indforståede i vores formuleringer • ”Skoene koster800 kroner” – hvilke sko? • ”Min hund hedderVagn” – ”min”, men hvem er du selv? • ”Jonas’ bil er enOpel Kadett” – hvem er Jonas, og hvilken type Opel Kadett er det? RHS – Informationsteknologi
Computerer kan ikke lide indforståethed… Huh!?!? ”Syntax error detected at line 3, insufficient memory” Øhmm, start lige det der, øhhh, program-halløj til at lave regn-skab i, eller noget… RHS – Informationsteknologi
Præcis kommunikation • Hvordan kan vi fortælle en computer – eller rettere, et program til en computer – noget, så den kan regne meningen af det vi siger ud? • Prøv at give et bud på, hvordan du entydigt kan fortælle en computer, hvilken adresse du bor på – du må kun bruge almindelig tekst… RHS – Informationsteknologi
Markeringssprog (markup language) • Hvis vi skal kunne fortælle en computer noget meningsfuldt, skal computeren have et vist ordforråd. • For adresse kunne det være • Postnummer • By • Vejnavn • Husnummer RHS – Informationsteknologi
Markeringssprog • Hvis computeren har et vist ordforråd, kan vi sende meningsfyldt data (data + metadata) til den. • Vi skal dog også blive enige om en syntaks for data, så computeren kan forstå data. • Syntaks: Den sproglige opbygning, som data har • Vi kan også bruge termen ”format” RHS – Informationsteknologi
Markeringssprog • I et markeringssprog anvender man en ”markering” til at fortælle noget om data selv. • Eksempel; hvis jeg vil have et ord i en sætning til at blive skrevet med fed skrift, kunne jeg f.eks markere dette ved at skrive: Det FED(andet) ord er med fed skrift • Markeringen FED(…) fortæller, at det inden i parentesen skal skrives med fed RHS – Informationsteknologi
Typer af markeringssprog • Mange programmer definerer sit eget, ”lukkede” markeringssprog, som ikke uden videre kan bruges af andre. • Eksempel er (lidt ældre versioner af) Office-programmer; et word-dokument kan ikke bare åbnes med Notepad. • Word-dokument er et eksempel på et binært format, hvor man bruger sin egen standard for at gemme meta-data. RHS – Informationsteknologi
Enter the XML… • Andre typer markeringssprog er mere ”åbne”, og kan nemmere benyttes af andre • Meget stor fordel at have en standard for åbne markeringssprog • Kun en standard at lære (og følge) • Programmer kan meget nemmere kommunikere, selv på tværs af ”platforme” (Windows, Mac, Linux,…) • Den p.t. fremherskende standard for (åbne) markeringssprog er XML RHS – Informationsteknologi
What is XML…? • eXtensible • Markup • Language Lær det! RHS – Informationsteknologi
eXtensible Markup Language • XML er – overordnet set – en meget simpel standard for definition af data og meta-data. • XML er ikke ”født” med noget ordforråd som sådan – er ”bare” en beskrivelse af syntaks for data og meta-data • Man kan selv definere sit ordforråd – men afsenderen skal være enig med modtageren om, hvad de enkelte ord betyder RHS – Informationsteknologi
At få et fælles ordforråd er ikke altid så let… ..og Fluks Drog Jeg Min Økse med Tvende Ægge, og Kløvede Hans Pandebrask, så Marsken Vædedes og Tidsel samt Sorturt Besudledes Omfg lolz u r0x0r m8 – u shd l2p cs asap for pwnage RHS – Informationsteknologi
Adresse som XML <Adresse> <Vejnavn>Skolevej</Vejnavn> <Husnummer>12</Husnummer> <Postnummer>4000</Postnummer> <Bynavn>Roskilde</Bynavn> </Adresse> RHS – Informationsteknologi
Ej, hvor ser det tosset ud… Suk – det hedder XML, din ¤#&!!@* bamsegøglerklovn… Nøj, Kylling, hvor ser det der ÆgsEmÆl altså mærkeligt ud… BORKK! RHS – Informationsteknologi
Adresse som XML - igen <Adresse> <Vejnavn>Skolevej</Vejnavn> <Husnummer>12</Husnummer> <Postnummer>4000</Postnummer> <Bynavn>Roskilde</Bynavn> </Adresse> Vi har: Data (det vi egentlig gerne vil fortælle) Meta-Data (meningen med det vi fortæller) Kontroltegn/Koder (for at skille data fra meta-data) RHS – Informationsteknologi
Elementer i XML • <noget> betyder: Nu begynder jeg på noget data af typen ”noget” • </noget> betyder: Nu er jeg færdig med noget data af typen ”noget” • Imellem <noget> og </noget>: her kommer selve data • Selve data kan så have en simpel type, eller en mere sammensat type RHS – Informationsteknologi
Dataloger elsker rekursion… RHS – Informationsteknologi
Rekursion…? • Rekursion betyder – løst sagt – at noget består af nogle dele, som selv kan være af samme type som helheden. • I XML: En sammensat type kan bestå af dele, som selv er af en simpel type eller en sammensat type. B.S. ville aldrig bruge ordet rekursion RHS – Informationsteknologi
Adresse som XML – igen, igen Adresse er en sammensat type: Består af Vejnavn, osv… <Adresse> <Vejnavn>Skolevej</Vejnavn> <Husnummer>12</Husnummer> <Postnummer>4000</Postnummer> <Bynavn>Roskilde</Bynavn> </Adresse> Postnummer er en simpel type: er bare et tal RHS – Informationsteknologi
Person som XML Person er en sammensat type: består af Navn og Adresse <Person> <Navn> Hans Jensen </Navn> <Adresse> <Vejnavn>Skolevej</Vejnavn> <Husnummer>12</Husnummer> <Postnummer>4000 </Postnummer> <Bynavn>Roskilde</Bynavn> </Adresse> </Person> Adresse er en sammensat type: Består af Vejnavn, osv… RHS – Informationsteknologi
XML er hierakisk • I XML beskrives ting i et hierarki: en ting (f.eks en Person) rummer dele (f.eks Navn, Adresse,…), som igen kan rumme ting, og så videre… • Kan sammenlignes lidt med tabeller og felter i en database (hvis felter så selv kunne være tabeller) RHS – Informationsteknologi
Øvelse i XML • Prøv at beskrive din familie i XML • Du kan selv vælge det ordforråd du vil benytte • Tip; hvis flere elementer af samme type forekommer, skrives de blot efter hinanden: <Familie> <Familiemedlem> …</Familiemedlem> <Familiemedlem> …</Familiemedlem> … </Familie> RHS – Informationsteknologi
XML kontra HTML • Hvad er HTML? • HyperText Markup Language • Dette er sproget, som langt de fleste web-sider er skrevet i. • Hvis man laver en web-site i FrontPage, laver FrontPage en masse HTML-kode for en • HTML kom før XML, men HTML er faktisk bare en speciel type af XML… RHS – Informationsteknologi
XML kontra HTML XML, jeg vælger deeeeej! • Hvad er så forskellen på HTML og XML? • HTML bruges primært til at beskrive, hvordan data skal præsenteres. • I HTML kan man f.eks skrive Det <b>andet</b> ord er med fed skrift • Her betyder markeringen, at det mellem <b> og </b> skal skrives med fed (eng.: bold) skrift RHS – Informationsteknologi
XML kontra HTML • Med andre ord – i HTML er der ingen information om meningen med data, kun information om præsentationen af data RHS – Informationsteknologi
Hvem har spist min XML?? • Fint, jeg kan lave noget XML nu – men hvem skal jeg give det til…? • Den som skal ”forbruge” det XML vi har lavet, skal • Forstå XML i det hele taget (syntaks) • Have et ordforråd, som gør det muligt at forstå indholdet i vores XML • Men bemærk; modtageren behøver ikke have præcis det samme ordforråd som os! RHS – Informationsteknologi
Fordøjelse af XML • Første trin i at fordøje noget modtaget XML, er at sende det gennem en parser • Hvad er en parser? En stump program-kode, som laver det modtagne XML om til data inden i det modtagende program? • Når modtageren modtager XML, er det jo bare et stykke tekst, derfor er dette første led i fordøjelsen nødvendigt RHS – Informationsteknologi
Fordøjelse af XML Afsender af XML Modtager af XML XML Parser Noget XML… Data, som modtageren kan forstå Her er data bare noget tekst ”Ahh, det var noget XML der kom”, tænker parseren… RHS – Informationsteknologi
Familie Medlem Medlem Medlem Navn Hobbyer Alder Og så videre… XML ligger godt i maven… • Parseren laver XML om til data, som modtageren kan forstå. • Da XML er hierakisk, vil det data parseren laver have en tilsvarende hierakisk struktur • Tænk på en hierakisk struktur som et slags ”træ” RHS – Informationsteknologi
Nu kommer der noget smart… • Modtageren af vores XML kan nu løbe data igennem, og behandle de dele der er relevante for præcis denne modtager. • Hvorfor er det smart? Fordi vi og modtageren kun behøver være enige om ordforrådet for netop denne del. • Det er ikke forbudt at sende data til modtageren, som modtageren ikke ved hvad betyder… RHS – Informationsteknologi
Nu kommer der noget smart… Kunne f.eks være et offentligt register Afsender af XML (ved alt muligt om personer) Modtager af XML (vil gerne udregne et gennemsnit for alder) Noget XML med persondata • Modtager ved kun at: • Hver person har én alder • Alder markeret med <alder> RHS – Informationsteknologi
On a need-to-know basis <person> <navn>…</navn> <adresse>…</adresse> <alder>…</alder> <børn> <person>…</person> <person>…<person> </børn> <job>…</job> <hospitalshistorik> <indlæggelse>…</indlæggelse> </hospitalshistorik> </person> Modtager behøver kun kende <person> og <alder> Afsender ved alt dette om en person RHS – Informationsteknologi
Hvad er det smarte…? • Det smarte er, at modtager og afsender ikke behøver vide særligt meget om hinanden • Afsender behøver ikke kende modtager • Mange modtagere kan bruge data fra samme afsender, og bruge dem til forskellige formål • Afsender kan ændre på typen af data der afsendes, uden at modtager skal bekymre sig om det • Generelt anses det for en stor fordel mht udveksling af data, at systemerne er så ”løst koblede” som muligt RHS – Informationsteknologi
En afsender, mange modtagere System til alders-statistik XML Afsender af XML (ved alt muligt om personer) System til adresselister XML XML System til analyse af hospitalsindlæggelser XML Samme data sendes til alle modtagere System til (og så videre…) RHS – Informationsteknologi
Præsentation af XML-data • Hvis vi åbner en fil med XML-data i Internet Explorer, ser det nogenlunde sådan her ud: • Men har vi ikke lige sagt, at XML ikke rummer oplysninger om præsentation af data…? RHS – Informationsteknologi
Præsentation af XML-data • XML beskriver ikke i sig selv, hvordan data skal præsenteres – måske skal det ikke præsenteres overhovedet! • Der skal noget mere til… • Dette ”mere” er en samling regler for, hvordan hver type element skal præsenteres • Sådan en samling regler beskrives ofte i et sprog kaldet XSLT (eXtensible Stylesheet Language Transformations) RHS – Informationsteknologi
Ingen panik! • Vi skal ikke lære noget om XSLT – det er ret kompliceret… • Hvad kan XSLT? Det kan trans-formere XML-data til en anden form, som specificeres ved hjælp af en samling regler. • Denne ”anden form” kan være alt muligt, blandt andet HTML RHS – Informationsteknologi
Løs kobling igen… • Lad os udvide tabellen fra før med XSLT: • Kombinationen af XML og XSLT giver os både mening og præsentation – men uafhængigt! RHS – Informationsteknologi
<Vigtigt> • I HTML kan vi for eksempel skrive en sætning på denne måde: Brug <b>altid</b> sikkerhedsbriller! • Altså har vi valgt, at vi benytter fed skrift (husk at <b> betyder bold (fed) i HTML) for at frem-hæve noget vigtigt… • …men så har vi ”bundet” os til denne måde at fremhæve noget vigtigt på. RHS – Informationsteknologi
Her er det vigtige • I XML kan vi skrive samme sætning på denne måde: Brug <vigtigt>altid</vigtigt> sikkerhedsbriller! • Dette siger ikke noget om, hvordan vi vælger at noget vigtigt skal fremhæves • I en XSLT kan vi så definere, at <vigtigt> <b> eller <vigtigt><i> RHS – Informationsteknologi
</Vigtigt> • Ved at skille data og præsentation ad, har vi meget større fleksibilitet med hensyn til, hvordan vi vil præsentere data • På en meget simpel måde kan præsentation ændres radikalt. • Leverandøren af data skal ikke bekymre sig om præsentationen af data RHS – Informationsteknologi
En XML, mange XSLT • En smart ting er således, at man ved hjælp af forskellige samlinger af regler (skrevet som XSLT) kan transformere samme XML-data til flere forskellige formater, alt efter formål • Dette giver meget stor fleksi-bilitet i brugen af XML data til flere former for præsentation RHS – Informationsteknologi
Eksempel: Facebook-data • De data der vises på Facebook, ligger i en (meget stor) database. • Når data for en person trækkes ud fra data-basen, skal det laves om (transformeres) til HTML, så det kan vises i en browser (f.eks Internet Explorer) • Denne transformation kunne meget vel være lavet i XSLT RHS – Informationsteknologi