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