Lemahieu_Hoofdstuk_4_(2012-13)

advertisement
Grondslagen v/d beleidsinformatica
Hoofdstuk 4: Gestructureerde gegevens: XML
4.1 OVERZICHT
HTML heeft XML nodig
--> XML geeft structuur aan webdocumenten
Hierdoor kan men een reeks kwaliteitscontroles mogelijk maken
XML moet well-formed en alle noodzakelijk elementen moeten aanwezig zijn (valid)
Aan de basis van XML ligt de vorm van een woordenboek
--> namespaces: geven elementen in XML de juiste betekenis in een context
4.2 WAT WLLEN WE MET DIT HOOFDSTUK BEREIKEN
4.3 INHOUD
ZIE PAGINA 51 - 52
4.4 WAAROM XML
4.4.1 HTML: werking en beperkingen
HTML voorziet de meeste webdocumenten van opmaak via <TAGS>
Een traditioneel webdocument: tekst met layout specificaties
De documenten staan op de server en worden geladen in de browser
HTML blijft echter een markup taal
--> men markeert tekst met tags
Een element bestaat uit een start-tag, de inhoud en vaak ook een eind-tag
HTML is vastgelegd , de tags zijn vast bepaald
Probleem: HTML is niet geschikt voor machinale verwerking door computersystemen
Een computersysteem moet het document kunnen begrijpen en niet van layout vorzien
! HTML is een ongestructureerde tekst voor een computersysteem
4.4.2 Wat is een XML-document
XML is ook een markup-taal maar met uitbreidingen:
- Uitbreidbaarheid: men kan zelf tags definiëren (niet vastgelegd)
- Structuur: men beschrijft de structuur en niet de layout
- Validatie: men kan de structuur valideren via een type-definitie (vastgelegd in XML-schema)
XML bestand start met de declaratie van de versie
Deze staat tussen <? ... ?>
Voorbeeld: <?xml version=”1.0”?>
De andere zaken in het document zin de elements
--> er is echter wel nood aan één root-element (bevat andere elementen)
1
Jeroen De Koninck – HIRB – 2012-2013
Het root-element bevat andere elementen: child-elements
--> er is een hiërarchie
Het element start met een start-tag: <naam>
Het element eindigt met een eind-tag: </naam>
De naam omschrijft de inhoud van het element
De inhoud van het element bevat content of andere child-elements
Hierdoor ontstaat een hiërarchische boomstructuur
De tags omschrijven de inhoud v/h element
--> we noemen dit: metadata (metagegegevens)
Geven de betekenis v/d individuele onderdelen
Software kan zo na gaan wat de inhoud betekend
Metadata bevat attributen (de tags)
Data bevat attribuutwaarden (de content)
Voorbeeld: <Title>My Life And Times</Title>
<Title>: metadata
My Life And Times: data
XML is bijgevolg een meta-markuptaal
De verzameling van tags noemt men een tag set die steeds voor dezelfde content hetzelfde is
Tags moeten zich houden aan bepaalde regels rond de naam:
- De naam bestaat uit minstens 1 letter (a-z, A-Z, ‘_’ of ‘:’)
- Na deze eerste letter mogen cijfers, letters, min-tekens, underscres, punten, ... volgen
--> moeten in de unicode staan
- De naam mag niet XML zijn
- De naam mag ook leeg zijn door gebruik te maken van <naam/>
- Men kan commentaarregels toevoegen in de vorm van <!-- ... -->
Door deze tags krijgt men een gestructureerd document met individuele velden
XML kan men ook bekijken in de browser
Het bestandtype is .XML en men kan werken met een dropdown systeem
2
Jeroen De Koninck – HIRB – 2012-2013
4.5 KWALITEITSCONTROLE VOOR XML-DOCUMENTEN
XML moet well-formed zijn
--> kan gecontroleerd worden via een XML-PARSER
Dit controleert op XML-syntaxis
Well-formed regels:
- Exact 1 root element
- Een start- en eind-tag voor elk element (of een leeg element)
- XML is hoofdlettergevoelig (<Naam> is niet gelijk aan <naam>)
- Er moet een correct geneste structuur zijn
! Bij een fout valt alle betekenis weg
--> bij een eind-tag die niet gelijk is aan de start-tag zal men een foutmelding krijgen
4.6 TAGS EN NAMESPACES
4.6.1 Tags en attributen
Men kan ook attributen toevoegen aan tags
Dit doet men door bij de naam een attribuut toe te voegen gevolgd door=”inhoud”
Men sluit zo’n tags af met />
Voorbeeld: <Book Title=”My Life And Times” Author=”Paul McCartney”/>
De centrale vraag is: wanneer attributen en wanneer losstaand definiëren?
--> geen antwoord (moet men zelf bepalen via afspraken)
4.6.2 Namespaces
Iedereen kan tags definiëren
--> hoe kan men de tags uniek houden
Op internationaal niveau is dit onmogelijk, maar binnen een bedrijf zou dit moeten lukken
--> men gaat tags van meer “betekenis” voorzien via namespaces (soort verklarend woordenboek)
Men voegt een prefix toe aan de tags
Voorbeeld: betaling aan klant en betaling aan bedrijf
<klant:betaling> ... </klant:betaling>
<bedrijf:betaling> ... </bedrijf:betaling>
Vaak gaat men de prefix linken aan een website
ZIE VOORBEELD PAGINA 61
Dit doet men via urls
3
Jeroen De Koninck – HIRB – 2012-2013
4.7 XML SCHEMAS
Men gaat er vanuit dat er altijd twee XML bestanden zijn
- XML SCHEMA (geeft aan welke elementen er in het Instance Document zitten)
- XML Instance Document (bevat de eigenlijke informatie)
Het XML-schema is en bestand dat de definitie v/e documenttype vastlegt
! XML schema is zelf ook een XML bestand
--> werd gestandariseerd
Het XML schema schrijft dus de structuur van alle andere XML-bestanden
--> XML schema is optioneel
Well-formed: XML bestanden met begin en eindtags die correct zijn
Valid: XML bestanden die voldoen aan een XML schema
Een validator controleert of er een XML schema is
Men gebruikt in schema’s de prefix xsd
--> men definieert alle elementen in het schema (beginnend met het root-element)
Via minOccurs=”1” geven we aan dat er verplichte aanwezigheid is
Via maxOccurs=”1” geven we aan dat er slechts één keer dezelfde tag mag voorkomen
Men zal een schema opslaan onder de extensie .xsd
Alle bestanden worden in de root definieerd
ZIE PAGINA 63-64 ONDERAAN EN BOVENAAN
De validator zal een error geven waneer het XML bestand zaken bevat dit niet in het schema staan
4.8 XML TRANSFORMATIONS: XSLT
XSL staat voor eXtensible Stylesheet Language
--> verzamelnaam voor twee talen
- XSL-fo
- XSLT
We behandelen alleen XSLT(ransformations)
XSLT wordt gebruikt om tagged documenten om te zetten
Zo kan men XML omzetten naar HTML of XML naar een ander XML document
In XSLT kan men verschillende templates opnemen
De templates worden opgenomen in een stylesheet
Men voegt een bestand in dat via een XSLT PROCESSOR zal omgezet worden naar een nieuwe vorm
--> omzetting gebeurd op basis v/d stylesheet
4
Jeroen De Koninck – HIRB – 2012-2013
Er zijn twee belangrijke toepassingen bij omzettingen
- POP: Presentation Oriented Publishing
--> bruikbaar binnen browsers en editors
--> ideaal voor het tonen van gegevens
--> transformeert in goede afbeelding
- MOM: Message Oriented Middleware
--> bruikbaar voor machine-to-machine uitwisseling
--> voornamelijk bij B2B toepassingen
--> transformeert gegeven van ene documentmodel naar andere
4.8.1 Presentation Oriented Publishing
XML: presentatie en inhoud zijn gescheiden
--> XML bevat geen informatie over layout
De layout wordt wel vastgelegd via stylesheets
XSL: standaard stylesheet voor XML
Men kan dit uitbreiden voor eigen visualisatie
Men kan via verschillende stylesheets één XML-document op verschillende manieren weergeven
(interessant voor verschillende doelgroepen of verschillende applicaties zoals PC, GSM, iPad, ...)
Men kan gegevens op verschillende manieren benaderen
--> steeds geen nieuwe connectie met webserver nodig
- bespaard netwerkverkeer
- bespaard serverbelasting
XSLT-documenten zijn op hun beurt ook XML-documenten
Men geeft de stylesheet aan via
<?xml-stylesheet type=”text/xsl” href=”....xsl”?>
Scheiding tussen content en layout wordt toegepast op veel tekstverwerkingsoftware
Zo was vroeger .doc één bestand met alles in
Nu gebruikt men .docx dat een ZIP-bestand is met verschillende XML-bestanden
4.8.2 Message Oriented Middleware
Middleware: software dat verschillende applicaties aan elkaar koppelt of laat communiceren
--> MOM zorgt dat applicaties berichten naar elkaar kunnen sturen
De ontvangende applicatie verwerkt het bericht (en antwoordt eventueel)
Voorbeelden: bestelorders, personeelsgegevens, uitslagen, ...
MOM ziet het bericht echter als een reeks bytes
--> het formaat gaat verloren
Dankzij XML kan het bericht zichzelf omschrijven
Vaal zal de applicatie een andere documentenstructuur verwachten
--> werken met XSLT om alles om te gieten naar de vorm die wordt verwacht
5
Jeroen De Koninck – HIRB – 2012-2013
Per toepassing gebruikt men een andere stylesheet
POP is meer gericht op de visualisatie voor de mens
MOM is meer gericht op de visualisatie voor de machine
POP maakt gebruik van HTML-document
MOM maakt gebruik van XML-documenten
--> soms gaat er ook structuur veranderen
4.9 XML ALS BUSINESS LINGUA FRANCA
XML is een taal die andere talen definieert
--> XML is een meta-taal
XML-formaten worden meer en meer gebruikt om zakentransacties uit te voeren
--> B2B interactie
Specifieke XML-taal
MathML
CML
GML
SMIL
SVG
XBRL
ebXML
NewsML
LegalXML
Open eBook
Doel van de XML-taal
Wiskundige bewerkingen
Moleculaire informatie
Geografische informatie
Multimedia elementen informatie
Vector graphics informatie
Financiële informatie
Business informatie
Nieuws componenten informatie
Juridische informatie
Tekst publicaties informatie
4.9.1 De voorloper: EDI (Electronic Data Interchange)
B2B werd voorgelopen door EDI (Electronic Data Interchange) (jaren ’70)
--> men gebruikt hier leased lines (gehuurde, vaste communicatielijnen ! geen internet)
EDI specifieerde formaten van elektronische gestructureerde berichten zoals factoren, orders, ...
! EDI is zeer gedetailleerd --> complex --> weinig flexibel --> kostelijk
EDI is enkel voor erg grote bedrijven
4.9.2 XML als opvolger voor EDI
XML heeft geen vaste tagsets en geen vaste layout
! Wel mogelijkheid tot afspraken via de XML-schema’s
4.9.3 SOAP: Interactie tussen webservices
Men ging XML-messages anders gebruiken
--> niet meer werken met echte documenten
--> wél met het oproepen van software componenten
SOAP: Simple Object Access Protocol
--> gebruikt waarbij XML-message een aanroep doet tussen twee software programma’s op het web
6
Jeroen De Koninck – HIRB – 2012-2013
Men noemt deze componenten webservices
XML-bericht stelt een aanroep voor de webservice en zet parameters
--> gebeurd overheen http-protocol
SOAP is aan het groeien tot de standaard voor B2B over web
! Ook internet gebruik mogelijk voor communicatie tussen interne software componenten
De aanroeper moet de interne werking niet kennen
4.9.4 Publiceren van en zoeken naar webservices
Webservice: “onafhankelijke softwarecomponenten die een welbepaalde functionaliteit aanbieden
op het Web en die door andere services of applicaties kunnen aangeroepen worden”
Het zijn gedistribueerde componenten over het web
--> Extern: men ziet enkel een interface waar men operaties kan oproepen
--> Intern: de implementaties v/d opgeroepen operaties
De koppeling blijft zeer los (omdat het gaat om uitwisseling van XML-messages)
SOAP kan men gebruiken voor
- interactie tussen verschillende programmeertalen
- Interactie tussen verschillende frameworks
- Interactie tussen verschillende besturingssystemen
Er zijn twee varianten voor webservices
- Method invocations: XML-tags omschrijven een methode-aanroep en de paramters
- Business documents: XML-messages stellen bedrijfsdocumenten voor (facturen, orders, ...)
Vaak gebruikt men beide zaken door elkaar
Webservies zijn naast SOAP ook gebaseerd op:
- UDDI: Universal Description, Discovery and Integration
- WSDL: Web Service Description Language
Zorgen dat webservices vindbaar zijn en aangesproken kunnen worden
UDDI is een soort gids van webservices
--> vormt een repository (soort van opzoeklijst)
Bevat informatie over de webservices en de manier van aanbieden
Via UDDI kan een bedrijf zijn eigen services adverteren
Daarnaast biedt UDDI een zoekfunctie
--> bedrijven kunnen zo zoeken in de UDDI-repository naar hun gezochte webservices
De UDDI-repository bevat een WDSL-beschrijving
--> bevat een verzameling XML-tags die om een interface te beschrijven
Men vertelt wat men kan opsturen en wat men kan terugverwachten
(Toepassen van XML schemas)
7
Jeroen De Koninck – HIRB – 2012-2013
UDDI wordt gezien als yellow pages v/d webservice
WSDL wordt gezien als de green pages v/d webservice (de technologische omschrijving)
WSDL-documenten zijn XML-documenten die men kan ophalen en vertellen hoe je een webservice
kan aanspreken
De informatie in UDDI en WSDL zijn beide in XML-vorm
De UDDI is daarnaast zelf ook nog een webservice
--> hierdoor kan men UDDI-repository integreren op basis van SOAP-berichten
UDDI was oorspronkelijk bedoelt op wereldschaal
--> werd praktisch onmogelijk door de hoeveelheid gegevens
Daarom UDDI beperkt tot een bepaalde bedrijfstak of groep bedrijven
4.9.5 Automatiseren van bedrijfsprocessen via webservices
Webservices steeds meer basis van geautomatiseerde bedrijfsprocessen
Bedrijfsproces: opeenvolging van (manuele of geautomatiseerde) taken die bijdragen tot het
eindproduct of resultaat
Taken kunnen gelijktijdig gebeuren of sequentieel verlopen
Niet elke taak moet door hetzelfde bedrijf worden voorzien
Een bedrijfsproces omschrijft de uitvoering v/d taken en de volgorde
Door XML en webservices kan men dit proces automatiseren
Hiervoor gebruikt men WS-BPEL: Web Services Business Process Execution Language
WS-BPEL is een XML-document dat taken beschrijft
--> geeft de volgorde aan
--> geeft de noodzakelijke gegevens aan
--> geeft aan wie men moet aanroepen voor de taak
De partij die wordt aangeroepen is zelf een webservice
De webservice wordt aangeroepen via een SOAP-gericht met WSDL-beschrijving v/d service
Het uitvoeren v/e bedrijfsproces is het uitvoeren v/h project in een WS-BPEL document
--> WS-BPEL documenten worden gelezen door een BPEL ENGINE
Zorgt dat op gepaste momenten de juiste SOAP berichten worden verstuurd naar webservices
Hierdoor werd de coördinatie v/h proces, aanspreken v/d participanten en het uitvoeren
geautomatiseerd
<sequence> wijst op taken met sequenteel verloop
<flow> wijst op taken die tijdens gelijk mogen gebeuren
partnerlink wijst op een bepaalde webservice
<invoke> wijst op aanroep v/d service
8
Jeroen De Koninck – HIRB – 2012-2013
De webservices worden nu bouwstenen v/h geautomatiseerd proces
Men kan ook zaken hierdoor outsourcen
9
Jeroen De Koninck – HIRB – 2012-2013
Download