Onderzoek native XML databases

Maat: px
Weergave met pagina beginnen:

Download "Onderzoek native XML databases"

Transcriptie

1 Onderzoek native XML databases Vincent Fleur Dennis Heij

2 Voorwoord Dit onderzoeksrapport is geschreven door Dennis Heij en Vincent Fleur. Beide zijn laatstejaars student van de opleiding kort Bedrijfskundige Informatica aan het instituut I&I van de Saxion Hogeschool IJselland te Deventer. Dit document is het resultaat van een afstudeerperiode van februari 2002 tot juli 2002 bij Thales Nederland B.V. te Hengelo. We willen een aantal mensen danken, welke hebben bijgedragen aan het tot stand komen van dit document. Allereerst danken we Jan Swets, onze begeleider bij Thales. Jan heeft ons veel nuttige adviezen gegeven en ons bij ons onderzoek begelied. Speciale dank gaat uit naar Gerrit te Vaarwerk die met een positieve kijk op de situatie ons wist te motiveren en te stimuleren. Hij kwam regelmatig op onze kamer een kopje koffie drinken en bracht af en toe zijn eigen werk mee. Gerrit heeft ons geholpen bij het vormgeven van dit document en daarvoor zijn we hem uiterst dankbaar. Als laatste danken we u als lezer, omdat u interesse toont in ons werk. Vincent Fleur Juni 2002 Dennis Heij

3 Samenvatting Dit document is het resultaat van een onderzoek naar de functionaliteit, mogelijkheden en toepassingsgebieden van native XML-databases ten opzichte van de functionaliteit van traditionele databases. Native XML databases zijn speciaal ontwikkeld voor de opslag van XML documenten. Evenals andere databases ondersteunen ze de meest gangbare functies. Het verschilt per systeem welke functies er ondersteund worden. Het grote verschil met traditionele databases is, dat het interne model is gebaseerd op XML en niet op bijvoorbeeld een relationeel model. Dit brengt grote voordelen met zich mee die zich voornamelijk uiten in snelheid en mogelijkheden. Ook zijn er voor native XML databases specifieke query talen, die beter inspringen op de structuur van een XML document. De keuze voor een native XML database of voor een traditionele database, hangt af van de situatie. Als men veel met data-centric XML documenten werkt, is het verstandiger om voor een traditionele database te kiezen. Wordt er meer met document-centric documenten gewerkt, dan kan er beter voor een native XML database gekozen worden. We hebben twee Content Management Systems in de praktijk getest en onderzocht. Tamino XML Server, van Software AG en X-Hive, van X-Hive. Het bleek dat deze twee CMS's meer hadden te bieden dan anderen en waren daarom een nader onderzoek waard. Tamino wordt geïnstalleerd met een aantal applicaties van waaruit de mogelijkheden die het programma biedt zijn te gebruiken. Bij X-Hive wordt er maar een applicatie geinstalleerd, van waaruit een beperkt aantal mogelijkheden te gebruiken zijn. De overige mogelijkheden van X-Hive worden toegepast door middel van Java Classes. Creatie van content is mogelijk vanuit de applicatie die bij X-Hive geïnstalleerd wordt, maar is zeer beperkt. Bij Tamino is er geen mogelijkheid om content te creëren. Via WebDAV is integratie mogelijk met XML editors als Xmetal en XML-Spy. In X-Hive kan elk soort document in elke Library van de database worden opgeslagen. Als men valid XML documenten in X-Hive wil opslaan, dan moet er in het document zelf een verwijzing naar het DTD staan. Tamino maakt voor het opslaan van documenten geen gebruik van Libraries, maar van Collections. Bij Tamino is het mogelijk om d.m.v. de Scheme Editor, schema's van een DTD toe te wijzen aan zo'n Collection, valid XML documenten die conform dat schema gemaakt zijn, kunnen in die Collection worden opgeslagen. Well-formed en non-xml documenten, worden door Tamino respectievelijk in de Collections ino:etc en ino:nonxml opgeslagen. Beide CMS's beschouwen SGML data als non-xml. Indexing moet bij Tamino worden aangegeven in het schema dat bij een Collection hoort. Bij X-Hive gebeurt indexing door Java Classes. Bij beide de CMS's zijn verschillende niveaus waarop kan worden geindexeerd. Indexing bevordert het gemak en de snelheid waarmee queries op de database worden uitgevoerd. Het is dus aan de gebruiker om goed na te denken wat van belang is om geindexeerd te worden. X-Hive ondersteunt locking op library level, XLink en Branching. Tamino doet dit niet.

4 Tamino kent wel een mogelijkheid waarmee grote hoeveelheden data tegelijk opgeslagen kunnen worden. De Pass-thru servlet, is een onderdeel van Tamino, waarmee verschillende publishing varianten mogelijk zijn. Bij X-Hive gebeurt dit door middel van Java Classes.

5

6 Inhoudsopgave Voorwoord 2 Samenvatting 3 Lijst van afkortingen Inleiding Thales Nederland B.V Doelstelling van de opdracht Vooronderzoek Taken en activiteiten Resultaten vooronderzoek XML testbestanden Inventarisatie Over Content Management Systems in het algemeen Authoring Workflow en Storage Publishing Omvang van een Content Management Systeem XML en databases Data versus Documenten Opslaan en opvragen van data Opslaan en opvragen van documenten Native XML databases Wat is een native XML database Native XML database architecturen De features van native XML databases Normalisatie, referentiële integriteit en scalability Native XML database versus traditionele databases WebDAV De WebDAV standaard De voordelen van WebDAV Tamino XML Server Inleiding Algemene Informatie Aan de slag met Tamino Authoring Integratie van Tamino met XML editors Workflow & Storage Publishing Tamino WebDAV Server Tamino WebDAV Server Aan de slag met de Tamino WebDAV Server X-Hive/DB Inleiding Algemene Informatie Aan de slag met X-Hive Authoring Workflow & Storage X-Hive Publishing Tamino versus X-Hive 72 6

7 Installatie Interface Authoring Workflow & Storage Publishing XML publicatiestraat Authoring Workflow & Storage Publishing Toepassingsgebieden van XML en databases Vliegtuigmaatschappij Handleiding Conclusie Content Management Systems XML en databases WebDAV Tamino versus X-Hive XML publicatiestraat Aanbevelingen Bronnen Productomschrijvingen Informatieve naslagwerken Internet bronnen...88 Bijlage 1, Plan van Aanpak Bijlage 2, Inventarisatie XML Content Management tools 7

8 Lijst van afkortingen API Application Programming Interface ASP Active Server Pages BLOB Binary Large OBject CDATA Character Data CMS Content Management SYstem CSS Cascading Stylesheet CVS Concurrent Versioning System DOM Document Object Model DTD Data Type Definition FTP FIle Transfer Protocol HTML Hyper Text Markup Languiage HTTP Hyper Text Transfer Protocol IETF Internet Engeneering TaskForce IIS Internet Information Server JDBC Java DataBase Connectivity JRE Java Runtime Environment JSDK Java Servlet Development Kit JSP Java Server Pages JVM Java Virtual Machine ODBC 8

9 Open DataBase Connectivity OLE DB Object Linking and Embediing for DataBases PCDATA Parsed Character Data PDF Portable Document Format PHP Hypertext Pre Processor RADAR Radio Detection and Ranging RDBMS Relational Database Management System SGML STandard Generalized Markup Language SMH System Management Hub (Administratie applicatie van Tamino) SQL Structured Query Language URL Unified Resource Locater WAP Wireless Acces Protocol WebDAV Webbased Distribution Auhtoring and Versioning WML Wireless Markup Language Xlink XML Link XML EXtensible Markup Language XSL Xml Stylesheet Language XSLT XML Stylesheet Language Transformation XSQL XML Structured Query Language XQL XML Query Language 9

10 1 - Inleiding Thales Nederland B.V. Thales Nederland B.V. is in 1922 begonnen onder de naam "NV Hazemeijers Fabriek van Signaalapparaten". Deze fabriek produceerde wapenbesturingssystemen. In 1947 werd de naam veranderd in "Hollandse Signaalapparaten N.V." In samenwerking met Philips werd begonnen aan het ontwikkelen van digitale RADAR systemen. Signaal integreerde zijn radar systemen met de wapenbesturingssystemen en was daarmee de concurrentie een stap voor. De kerntaken van Signaal verschoven van het mechanische deel, naar het elektrotechnische gebied. In 1992 is Signaal overgenomen door het Franse Thompson-CSF. In 2000 werd de naam veranderd in "Thales Nederland B.V." Thales Nederland is een grote speler op de wereldmarkt, zeker als het gaat om zogenaamde Naval Combat Systems. Voornamelijk overheden zijn klant bij Thales. Zo heeft de Nederlandse Marine veel van haar fregatten voorzien van apparatuur van Thales. In totaal heeft Thales sinds 1970 ongeveer 200 schepen van apparatuur voorzien. Naast de levering van producten voorziet het programma van Thales ook in uitgebreide service en onderhoud. Ook is er een trainingscentrum waar klanten worden opgeleid om met het Thales product te werken en dit te onderhouden. Thales wereldwijd heeft ongeveer medewerkers daarvan werken bij Thales Nederland B.V. waarvan de hoofdvestiging zich in Hengelo (OV) bevindt. Naast deze vestiging is er een kleine vestiging in Delft, waar men zich voornamelijk bezighoudt met optische systemen Doelstelling van de opdracht Kern van de opdracht is het uitvoeren van een onderzoek naar de functionaliteit, mogelijkheden en toepassingsgebieden van native XML-databases ten opzichte van de functionaliteit van traditionele databases. Om deze doelstelling te bereiken hebben we een aantal onderzoeksvragen opgesteld, welke in ons Plan van Aanpak zijn na te lezen. Dit plan hebben we als bijlage bijgevoegd. We hebben een vooronderzoek gedaan om meer inzicht te krijgen in het onderwerp. De resultaten hiervan komen in het volgende hoofdstuk aan de orde. 10

11 2 - Vooronderzoek Wat moet er nu daadwerkelijk onderzocht worden? Waarop moeten we de pakketten testen, welke pakketten moeten we eigenlijk onderzoeken en hoe testen we een pakket? Om op die vragen een antwoord te vinden, voeren we eerst een vooronderzoek uit Taken en activiteiten Hieronder volgt een lijst van activiteiten die in dit vooronderzoek aan de orde komen. Opstellen criteria waaraan een content manager moet voldoen Opstellen criteria waaraan een native XML-database moet voldoen Opstellen testomgeving, welke moet bestaan uit: XML bestanden DTD's en/of schema's XSL stylesheets Inventariseren native XML-databases die we gaan onderzoeken Inventariseren hard- en softwarematige eisen van geselecteerde native XML-databases Opstellen onderzoeksplanning Resultaten vooronderzoek Uit het vooronderzoek zijn de volgende resultaten gekomen Onderzoeksvragen Algemene Vragen Welke van de onderdelen (authoring, workflow, storage, publishing) biedt het CMS aan? Wat zijn de eisen van het pakket aan de infrastructuur? Voor welke toepassing is het CMS volgens de fabrikant ontworpen? Welke content formaten kan het CMS importeren/ exporteren? Welke documentatie wordt bij het CMS geleverd? Vragen die betrekking hebben op het onderdeel Authoring Hoe is de aansluiting van de content creatie omgeving op de overige onderdelen van het CMS en wat merken auteurs daarvan? Hoe strikt is de scheiding tussen content en publicatie? Hoe is multi-user authoring geregeld? Welke eisen stelt het CMS aan content? Hoe gaat het CMS om met XML, XSLT, DTD's en XML namespaces? Hoe wordt metadata vastgelegd, gebeurt dit bijvoorbeeld door indexes? Hoe wordt omgegaan met links en wat merken auteurs daarvan? Welke kennis hebben auteurs nodig om met het systeem te werken? Welke inspanning is nodig voor het creëren van content? 11

12 Welke inspanning is vereist voor het importeren van SGML content? Vragen die betrekking hebben op het onderdeel Workflow en Storage Op welke wijze wordt content door het CMS opgeslagen, is dat in een relationele database, een traditionele database of als XML-files? Hoe wordt door het CMS omgegaan met version control? Hoe is de beveiliging van het CMS? Kan het CMS samenwerken met andere applicaties? Tot in welke mate verzorgt het CMS administratieve rapporten? Welke query language gebruikt het CMS, XPath, XQL, XQuery of XSQL? Vragen die betrekking hebben op het onderdeel Publishing Hoe flexibel kan het CMS omgaan met stylesheets? Op welke wijze worden stylesheets toegepast? Naar welke formaten kan het CMS content publiceren en zijn die volgens een standaard gedefinieerd? XML testbestanden We hebben met de tool XMetal van Softquad een aantal XML bestanden gemaakt. XMetal is een tool, waarvan de user interface naar wens aanpasbaar is. Zo kunnen er eigen menu's en toolbars gedefinieerd worden en kan er vanuit de ResourceManager (onderdeel van XMetal) repeterende elementen in een document worden ge-dragged and dropped. De opzet is zodanig, dat een programmeur de tool en omgeving configureert, zodat een auteur er als in MS Word mee kan werken. Onze testdocumenten zijn conform het Journalist DTD, welke een subset van de DocBook DTD is. We hebben voor de Journalist DTD gekozen, omdat XMetal belangrijke elementen als stylesheets en macro's bevat die voor deze DTD gemaakt zijn. Het kost ons te veel tijd om XMetal zodanig te configureren, dat het met DocBook uit de voeten kan. Het zal voor ons onderzoek weinig verschil uitmaken, of we nu met de DocBook zelf of een subset daarvan werken. Voor onze testset, hebben wij gebruik gemaakt van: XML bestanden conform het Journalist DTD, XSL bestanden en van een DTD Inventarisatie De inventarisatie bestaat uit het globaal onderzoeken wat de mogelijkheden zijn die het product volgens de fabrikant biedt. Dit heeft een document opgeleverd waarin onze bevindingen staan. Dit document is als bijlage toegevoegd aan ons verslag. Na de inventarisatie hebben we ervoor gekozen, om drie producten nader te onderzoeken. Helaas zijn wij er niet aan toegekomen om er daadwerkelijk drie te testen. Dit vanwege tijdgebrek. Uiteindelijk hebben we twee systemen nader onderzocht. Dit zijn geworden Tamino XML Server en X-Hive. Voor die keuze hebben we de volgende motivatie: Uitgebreide documentatie en specificatie Er was over beide producten veel informatie te vinden op het internet. Hierdoor kregen we al snel een globale eerste indruk van de mogelijkheden van beide producten. 12

13 Gebruik van native XML database Gebruik van WebDAV WebDAV is een uitbreiding van het HTTP protocol, hierdoor kunnen gebruikers gezamenlijk bestanden bewerken en opslaan op een webserver. Verdere uitleg over WebDAV volgt verderop in het verslag. Naamsbekendheid / aanbeveling van Jan Swets Uit verschillende essays op het internet, waarin kleine vergelijkingen naar voren kwamen, werden Tamino en X-Hive aanbevolen. Ook onze stagebegeleider van Thales Nederland BV, was zeer geïnteresseerd in de mogelijkheden van deze twee producten. 13

14 3 - Over Content Management Systems in het algemeen Content Management bestaat globaal uit vier onderdelen: Authoring Workflow Storage Publishing In dit verslag proberen we continu onderscheid te maken tussen bovenstaande vier onderdelen. Workflow en storage hangen nauw met elkaar samen, daarom bespreken we deze ware het een onderdeel Authoring Onder authoring wordt in het algemeen verstaan het creëren van content. Om als gebruiker/auteur zelf content te creëren, moet deze de beschikking hebben over een DTD en over een content creatie tool, waarmee uitgebreide editting opties mogelijk zijn. Door het document conform een DTD te maken, wordt het document een valid XML-document. Het is niet verplicht een document conform een DTD te maken, in dit geval wordt gesproken van een well formed XML-document Workflow en Storage Met workflow bedoelen we de automatisering van de levenscyclus van een content element. Het gaat hier dan om het managen van taken tussen het creëren van content en het opslaan van content. Voorbeelden van dit soort taken zijn: link checking, validatie aan DTD, zorgdragen van goedkeuring van content door een bovengeschikte en indexing. Indexing houdt in dat een Content Management Systeem een index van de elementen van een XML document maakt en deze vastlegt in een apart bestand. Als er vervolgens bijvoorbeeld een query op het document uitgevoerd wordt, wordt er in de index gezocht i.p.v. dat het hele document doorzocht wordt. Dit scheelt aanzienlijk in tijd. Wij bedoelen met storage niet het daadwerkelijke schrijf proces, maar het proces dat zorg draagt voor de opslag van documenten. Opslag vindt plaats als record in een database of als XML file. Het is dus niet zo dat het daadwerkelijke schrijven een onderdeel van een CMS is. Bij storage hoort ook versioning van content, zodat meerdere individuen tegelijkertijd aan hetzelfde document kunnen werken en dat oudere versies van een doocument hersteld kunnen worden Publishing Publishing is een algemene term die wij gebruiken voor het publiceren van content. Onder de content vallen de XML documenten die opgeslagen zijn in de database. Een belangrijke vraag die hierbij een rol speelt is naar welke formaten er gepubliceerd kan worden. Voorbeelden van die formaten zijn: HTML en PDF. 14

15 3.4 - Omvang van een Content Management Systeem De onderdelen die een CMS minimaal moet bevatten zijn workflow en storage. Eventuele andere onderdelen die een CMS kan aanbieden zijn: user management Dit zijn taken m.b.t. gebruikersbeheer zoals het toewijzen van rechten. user interfaces Een applicatie voor administratie van het CMS en de content. data sources De locatie waar content wordt opgeslagen. Dit kan zijn een relationele database of XML files. Hier vindt het daadwerkelijke schrijfproces plaats. applications Deze applicaties integreren de content met bestaande data en voeren softwarematige manipulaties uit op content om de consistentie te waarborgen. Een dergelijke applicatie is meestal een formulier waarmee de publicatie van content centraal geregeld wordt. Voorbeelden hiervan zij indexing en searching, maar ook middleware dat er zorg voor draagt dat database records gebruikt kunnen worden in dynamische web-pagina's. Voorbeelden van die middleware zijn: ODBC, JDBC, ASP, Perl en PHP. 15

16 4 - XML en databases In dit hoofdstuk wordt ingegaan op de relatie tussen XML en databases. We zullen duidelijk maken wat het verschil is tussen traditionele databases en native XML-databases Data versus Documenten XML kan op verschillende manieren gebruikt worden. Zo kan XML dienen als data-transport tussen een database en een (non-xml) applicatie. Of XML kan integraal gebruikt worden zoals bijvoorbeeld met DocBook documenten of XHTML. Hoewel er vele overeenkomsten zijn tussen twee soorten XML documenten, wordt er toch onderscheid gemaakt tussen data-centric documents en document-centric documents omdat de verschillen van belang zijn voor de wijze van opslag in een database Data-centric XML documenten Data-centric XML documenten zijn documenten die XML gebruiken als data transport. Ze zijn bedoeld om door een computer verwerkt te worden. Het maakt voor een applicatie niet uit dat de data voor een bepaalde tijd in een database is opgeslagen. Voorbeelden van data-centric documenten zijn verkooporders, vluchtschema's, wetenschappelijke data en beurskoersen. Kenmerkend voor data-centric XML documenten zijn de regelmatige structuur en de weinige of geen gemengde content. Onder gemengde content verstaan we elementen die meerdere soorten inhoud bevatten, bijvoorbeeld een element dat een ander element en tekst bevat. De volgorde waarin elementen staan is vaak niet belangrijk tenzij het document gevalideerd wordt. Data-centric documenten kunnen m.b.v. een XSL stylesheet worden getransformeerd tot een voor publiek leesbaar document. Elke website die momenteel gebruik maakt van dynamisch gegenereerde HTML pagina's (templates die gevuld worden met database data) kan waarschijnlijk worden vervangen door een serie van data-centric XML documenten en één of meer XSL Stylesheets. Het onderstaande sales order document is data-centric: 16

17 <SalesOrder SONumber="1234"> <Customer CustNumber="543"> <CustName>Grolsch breweries</custname> </Customer> <OrderDate>170502</OrderDate> <Item ItemNumber="1"> <Part PartNumber="123"> <Price>9,95</Price> </Part> <Quantity>12</Quantity> </Item> </SalesOrder> Document-centric XML documenten Document-centric XML documenten zijn het meest geschikt als communicatiemiddel. Voorbeelden zijn boeken, s, advertenties en eigenlijk elk hand geschreven XHTML document. Kenmerkend zijn de onregelmatige structuur en de diversiteit van de betreffende content. De volgorde van de elementen is meestal erg belangrijk. Onderstaande product omschrijving is document-centric: 17

18 <Product> <Name>Notebook</Name> <Developer>Asus</Developer> <Description> <Para>Notebook with finger-print security on BIOS and Windows. You are the only one with access to your pc. The notebook comes with a P MHz processor and 512 MB RAM. With the 15 inch TFT screen and DVD player you can watch movies anywhere you like</para> <Para>You can:</para> <List> <Item><Link URL="order.html">Order this notebook</link></item> <Item><Link URL="specs.html.">Read the technical specifications</link></item> <Item><Link URL="search.html">Search for another notebook</link></item> </List> </Descriotion> </Product> Data, documenten en databases Het onderscheid tussen data-centric en document-centric XML documenten is niet altijd even duidelijk aan te geven. Ondanks dat is er toch een soort algemene regel wat betreft het type document en de bijbehorende database. Deze regel is afgeleid uit de tendens op de markt. Data-centric XML documenten worden opgeslagen in traditionele databases, zoals relationele, object-georienteerde of hierarchische databases. Document-centric XML documenten worden opgeslagen in een native XML database (een database speciaal ontworpen voor het opslaan van XML). Uiteraard is deze regel niet een wet van Meden en Perzen, want data kan opgeslagen worden in een native XML database en documenten in een traditionele database. Tevens beginnen de grenzen tussen traditionele databases en native XML databases te vervagen, beide nemen toepassingsmogelijkheden van elkaar over Opslaan en opvragen van data Elk type database slaat data op een bepaalde manier op. XML data wordt aangeboden aan de database. Een bepaald stuk software is hiervoor verantwoordelijk. Die software moet een XML document naar de database vervoeren en vice versa. Deze software kan deel uitmaken van het database systeem, in dat geval spreken we van een XML-enabled database. 18

19 Data transport Bij transport van een data-centric XML document naar een database is het vaak acceptabel om informatie over het document, zoals de naam en het DTD weg te gooien. Het gaat tenslotte om de data en de overige zaken zijn van ondergeschikt belang. De fysieke structuur zoals entiteiten definities en gebruik, de wijze waarop binary data wordt opgeslagen, CDATA secties en encoding informatie kan weggegooid worden. Het is zelfs acceptabel om de logische structuur, bepaalde processing instructies en de volgorde van elementen en attributen te vergeten. Bij transport van data uit een database naar een XML document is het wenselijk dat het document geen CDATA en entiteit gebruik bevat (afgezien van standaard entiteiten als lt, gt, amp, apos en quot). Een CDATA sectie is een sectie waarin het gebruik van markup genegeerd wordt. In het geval van een data-centric XML document zijn CDATA secties nutteloos. Het bevat namelijk geen data die ook echt als data behandeld wordt. Entiteiten dienen gedeclareerd te worden, dit kan in een DTD of direct in een XML document. De standaard entiteiten behoeven geen aparte declaratie. Als er stukkken data uit een data-centric XML document gehaald worden en deze stukken bevatten andere dan standaard entiteiten, dan moet er altijd een entiteit declaratie aan het stuk informatie toegeveogd worden. Dit maakt het werken met entiteiten onhandig en is dus niet gewenst. Het is gewenst dat de hiërarchische strucuur van de XML en de positie van elementen in die structuur dezelfde is als de volgorde van de elementen zoals die in de database zit. Er is dan geen tussenstap vereist die de data in gewenste volgorde in het XML document plaatst. Ook het model daarvoor is dan overbodig. Om bovenstaande beweringen toe te lichten geven we een voorbeeld waarin XML data gebruikt wordt om data te transporteren tussen twee databases. We nemen het geval van de sales order. Het maakt niet uit of het sales order number is opgeslagen in een CDATA sectie, een externe entiteit, een attribuut of direct als PCDATA. Het gaat erom dat de data van de ene database wordt getransporteerd naar de andere. De data transport software moet zich bezig houden met de hierarchische structuur (zodat informatie over een bepaalde sales order wordt gegroepeerd) en verder weinig andere zaken. Het nadeel van het weglaten van informatie over een document is dat wanneer het document weer wordt opgevraagd uit de database het resultaat een ander document is. Het bevat de juiste data, maar daar is alles mee gezegd. In sommige gevallen is dit geen probleem, dit is afhankelijk van de behoefte Mapping van documenten op de database Software die data tussen XML documenten en een database transporteren zijn gebaseerd op mapping tussen het document en de database. Bijvoorbeeld het <SalesOrder> element naar de SalesOrders tabel en het <OrderDate> element op de kolom SalesOrders.OrderDate. Dergelijke mappings zijn te verdelen in vier catagorieen: model-driven template-driven 19

20 table-based object-relational Model-driven mapping Hierbij wordt XML data aan de hand van een voorgedefinieerd model gemapt op de database. Omdat het model vooraf gedefinieerd is, is dit systeem minder flexibel dan Template-diven mapping. Figuur 4-1: Model-driven mapping Vaak wordt gebruik gemaakt van XSLT, omdat XML documenten mogelijk niet aan het model voldoen. Hiermee wordt iets van de flexibiliteit van Template-driven mapping teruggevonden. 20

21 Template-driven mapping In plaats van voorgedefinieerde mapping worden product specifieke commando's in een template aangeleverd. Deze worden door de data transmissie software verwerkt. Bijvoorbeeld een SELECT statement wordt opgenomen tussen <SelectStm> tags. Bij het verwerken van het aangeboden XML document wordt het SELECT statement vervangen door het resultaat van de query. Het volgende voorbeeld is een template die een SELECT statement heeft opgenomen in een <SelectStm> element: <?xml version="1.0"?> <FlightInfo> <Introduction>The following fligths have available seats: </Introduction> <SelectStm>SELECT Airline, FltNumber, Depart, Arrive FROM Fligths</SelectStm> <Conclusion>We hope one of these meets your needs</conclusion> </FlightInfo> Wanneer bovenstaand document wordt verwerkt door de data-transport software, wordt het SELECT statement vervangen door de resultaten en levert bijvoorbeeld onderstaand document op: 21

22 <?xml version="1.0"?> <FlightInfo> <Introduction>The following fligths have available seats: </Introduction> <Flights> <Row> <Airline>ACME</Airline> <FltNumber>123</FltNumber> <Depart>Dec 12, :43</Depart> <Arrive>Dec 13, :21</Depart> </Flights> <Conclusion>We hope one of these meets your needs</conclusion> </FlightInfo> Template-driven mapping wordt bijna altijd toegepast om data van relationele databases uit te voeren in XML documenten. Table-based mapping Hierbij wordt een XML document als een tabel of set van tabellen gemodelleerd. Table-based mapping wordt meestal gebruikt om relationele data uit te wisselen. Het kan niet worden gebruikt voor XML documenten die niet aan het tabel-model voldoen. Het tabel-model ziet er uit als: <Database> <Table> <Row> <column1>... </column1> <column2>... </column2> </Row> <Row> <column1>... </column1> <column2>... </column2> </Row> </Table> </Database> 22

23 Object-relational mapping Hierbij wordt de data in een XML document als objecten gemodelleerd. In dit model worden element types met atributen, element inhoud weergegeven als classes. Element typen met puur PCDATA, attributen en PCDATA worden weergegeven als scalar properties. Het model wordt dan gemapt op een database waarbij classes worden gemapt op tabellen, scalar properties op kolommen en object-value properties op primary keys en/of foreign keys Opslaan van data in een native XML database Data in XML documenten kan ook worden opgeslagen in een native XML database. Voor die keuze zijn een aantal argumenten. Semi-gestructureerde data resulteert in een groot aantal kolommen met NULL waardes of tabellen in een relationele database Native XML databases zijn over het algemeen sneller met het verkrijgen van data dan relationele databases Native XML databases hebben XML specifieke mogelijkheden Als de data semi-gestructureerd is, d.w.z. een regelmatige structuur, maar genoeg afwijkingen zodat opslag in een relationele database een groot aantal kolommen met NULL waardes of veel tabellen oplevert. Ondanks dat semi-gestructureerde data opgeslagen kan worden in object-georienteerde en hierarchische databases is het ook mogelijk om die data op te slaan in een native XML database in de vorm van een XML document. De retrieval snelheid is de tijd die nodig is om data uit de database te halen. Afhankelijk van hoe een native XML database data fysiek opslaat, kan er een flinke snelheidswinst geboekt worden in vergelijking met een relationele database. De reden hiervoor is dat een native XML database fysiek gezien complete documenten opslaat of fysieke pointers tussen delen van documenten gebruikt. Dit heeft als resultaat dat documenten kunnen worden opgevraagd zonder joins of met fysieke joins, wat beide sneller is dan logische joins die door relationele databases gebruikt worden. 23

24 Figuur 4-2: Fysieke pointer Figuur 4-3: Fysiek groeperen 24

25 Figuur 4-4: Logische pointer Neem bijvoorbeeld het sales order document. In een relationele database wordt dit opgeslagen in vier tabellen: SalesOrders, Items, Customers en Parts. Opvraging van het document vereist joins over deze vier tabellen. In een native XML database wordt het gehele document op een enkele plaats op de disk opgeslagen. Opvraging van het document of een deel daarvan vereist een enkele zoekactie en een enkele leesactie om de data te lezen. Een relationele database heeft vier zoekacties en tenminste vier leesacties nodig om de data te verkrijgen. Het voordeel van de snelheid geldt echter alleen, als het gaat om data opvraging in de volgorde zoals het op de disk is opgeslagen. Als er een andere view verzocht wordt, zoals een lijst van customers waarop de sales orders betrekking hebben, dan is de performance van een native XML database slechter dan die van een relationele database. De keuze voor een native XML database op basis van de snelheid geldt alleen, als er een view domineert in de applicatie. Native XML databases bieden XML specifieke mogelijkheden, zoals het uitvoeren van XML queries. Slechts weinig data-centric applicaties vereisen dit en relationele databases implementeren steeds meer XML query languages, dus deze reden is minder overtuigend Opslaan en opvragen van documenten Als er gewerkt wordt met document-centric documenten is er vaak behoefte aan een manier om deze op te slaan en op te vragen, evenals manieren om de documenten te converteren naar andere formaten. Deze paragraaf bespreekt opslag en opvraging van XML documenten met: een file-system een relationele database een native XML database 25

26 Simpele document opslagsystemen De gemakkelijkste manier om documenten op te slaan is in een file system. Er kunnen dan tools als grep aan te pas komen om queries uit te voeren. Deze full text searches zijn niet bijzonder efficient maar acceptabel als het gaat om kleine hoeveelheden documenten. Is er behoefte aan basis transaction control, dan kunnen documenten worden opgeslagen in een versie beheer systeem als CVS. Een andere optie is om documenten als BLOB op te slaan in een relationele database. Dit geeft de voordelen van de database, zoals transaction control, beveiliging, multi-user access, etc. Veel relationele databases hebben uitgebreide zoekfuncties of zijn zelfs XML-bewust gemaakt, wat voorkomt dat XML documenten als full text worden doorzocht. Als XML documenten als BLOB worden opgeslagen is het gemakkelijk om zelf XML-bewuste indexing te realiseren, zelfs als de database XML niet kan indexeren. Een manier om dit te doen is twee tabellen te creëren, een index tabel en een document tabel. De document tabel bevat een primary key en een BLOB kolom waarin het document wordt opgeslagen. De index tabel bevat een kolom met de waarde die geindexeerd moet worden en een foreign key die naar de primary key van de document tabel verwijst. Een adere mogelijkheid is om XML documenten op te slaan in een native XML database. In het volgende hoofdstuk zullen we toelichten wat een native XML database is en wat de mogelijkheden zijn. 26

27 5 - Native XML databases Native XML databases zijn speciaal ontwikkeld voor de opslag van XML documenten. Evenals andere databases ondersteunen ze functies als transactions, security, multi-user acces, API's, query languages, etc. Het verschil met andere databases is, dat het interne model is gebaseerd op XML en niet op bijvoorbeeld het relationele model. Native XML databases zijn het meest geschikt om document-centric documents op te slaan. Dit komt omdat een native XML database zaken als document order, processing instructies, commentaar en entiteit gebruik vastleggen. XML-enbabled databases doen dit niet. Native XML databases ondersteunen XML query talen. Hiermee kunnen vragen worden gesteld als: geef me alle documenten waar het eerste wood van de derde paragraaf vetgedrukt is. Een dergelijke query is lastig uit te voeren in een taal als SQL Wat is een native XML database De term "native XML database" is voor het eerst gebruikt tijdens de marketingcampagne van het product Tamino van Software AG. Mede door het succes van die campagne is het een algemeen gebruikte term geworden. Het nadeel van een term uit een marketingcampagne is, dat er geen specifieke technische definitie voor bestaat. Een mogelijke definitie zoals die door de leden van de XML:DB mailing list is bedacht luidt, dat een native XML database: een (logisch) model voor een XML document definieert en documenten volgens dat model opslaat en opvraagt. Het model dient minimaal elementen, attributen, PCDATA en document order bevatten. heeft een XML document als fundamentele opslag, zoals een relationele database een rij in een tabel als fundamentele opslag heeft. hoeft geen specifieke onderliggende fysieke opslaglaag te hebben. Het kan gebouwd zijn op een relationele, hierarchische of object-georienteerde database of kan gebruik maken van opslag als geindexeerde en gecomprimeerde bestanden Native XML database architecturen Om de verschillen tussen traditionele databases en native XML databases toe te lichten, kijken we naar de architectuur van een native XML database. Er zijn twee categorieen van native XML databases: text-based en model-based Text-based native XML databases Een text-based native XML database slaat XML op als tekst. Dit kan een file in het file system zijn of BLOB in een relationele database of een ander tekstformaat. Alle text-based native XML databases maken gebruik van indexes. Dit maakt het mogelijk voor de query engine om snel en gemakkelijk naar een willekeurig punt in elk XML document te springen. Dit geeft een groot snelheidsvoordeel als er complete of delen 27

28 van documenten opgevraagd worden. Dit voordeel komt voort uit het feit, dat de database een enkele index lookup doet, de schrijf- en leeskop van de harddisk eenmalig positioneert en, ervan uitgaande dat het benodigde fragment in volgorde is opgeslagen op de disk, een enkelvoudige leesactie uitvoert. Dit in tegenstelling tot een relationele database, waarbij meerdere index lookups en leesacties nodig zijn. Zowel een text-based native XML database als een hierarchische database kunnen een relationele database qua performance verslaan, dit geldt echter alleen als het gaat om een vooraf gedefinieerd model. Er komen problemen als een text-based native XML database en een hierarchische database de data in een andere hierarchy moeten opslaan en opvragen. In dat geval presteert een relationele database waarschijnlijk beter. Dat is te danken aan het gebruik van logische pointers, die alle queries van dezelfde complexiteit met dezelfde snelheid uitvoeren Model-based native XML databases Model-based native XML databases slaan een XML document niet op als tekst, maar bouwen een intern object model van het document en slaan dat op. Hoe het model wordt opgeslagen verschilt per database, sommige slaan het model op in een relationele database, of een object-oriented database. DOM staat voor Document Object Model en is een W3C standaard voor het construeren en manipuleren van de informatie set van een XML document. Die informatie set wordt de XML Infoset genoemd en is een W3C standaard data-model voor de "tree-structured" informatie-elementen in een XML document. Het opslaan van de DOM in bijvoorbeeld een relationele database kan resulteren in tabellen als Elements, Attributes, PCDATA, Enitities en EntityReferences. Andere databases gebruiken een ander opslag formaat dat is geoptimaliseerd voor hun model. Model-based native XML databases die bovenop een andere database zijn gebouwd, presteren waarschijnlijk zo goed als die onderliggende database, om de simpele reden dat de native XML database afhankelijk is van de onderliggende database. Echter de ruimte voor variaties is voor een native XML database die bovenop een relationele database is gebouwd groot. Bijvoorbeeld als een database puur object-relational mapping van de DOM gebruikt, dan resulteert dat in een systeem dat meerdere SELECT statements moet uitvoeren om de children van elke node op te vragen. Dit argument is onderuit te halen omdat veel van dergelijke databases inmiddels hun interne opslag model en opvraag software optimaliseren. Model-based native XML databases die een eigen opslag formaat gebruiken hebben een performance die vergelijkbaar is met die van text-based native XML databases. Reden hiervoor is dat de meeste van dergelijke databases fysieke pointers gebruiken tussen nodes, om een performance te bereiken die vergelijkbaar is met die van het opvragen van tekst. Uiteraard is het afhankelijk van het output formaat wat sneller is. Het is wel zeker, dat text-based native XML databases sneller zijn in het ophalen van documenten als tekst en model-based native XML databases sneller in het ophalen van documenten volgens een model. Evenals text-based native XML databases presteren model-based native XML databases mider goed als er data in een andere vorm dan waarin die is opgeslagen opgevraagd wordt. We hebben geen duidelijkheid of er tussen beide typen databases een snelheidsverschil zit. 28

29 5.3 - De features van native XML databases In deze paragraaf geven we een opsomming van een aantal features van native XML databases. Omdat het slechts bedoeld is om een beeld te geven van wat er vandaag de dag op de markt is, zullen we niet alles uitgebreid toelichten. Het is afhankelijk van de native XML database of een feature wordt ondersteund Document collections Een collectie speelt een vergelijkbare rol als een tabel in een relationele database of een directory in een file system. Voor bijvoorbeeld alle sales orders kan een collectie SalesOrder gedefinieerd worden. Queries over sales orders kunnen zo beperkt worden tot die collectie. Stel dat een bedrijf handleidingen van producten wil opslaan in een native XML database. Er kan dan een hiërarchie van collecties gemaakt worden. Voor elk product kan er een collectie zijn, met daarbinnen een collectie voor elk hoofdstuk van de handleiding Query talen De meest populaire query languages zijn XPath en XQuery. Er is nog geen query-taal die aan alle eisen van het W3C voldoet. De behoefte daaraan is echter groot en het zal daarom geen jaren meer duren voordat er zo'n standaard bestaat. Er wordt gewerkt aan een taal XML Query Language (XQL) die de standaard moet gaan worden. Tot die tijd wordt er in XML land voornamelijk gewerkt met XPath en XQuery. Het W3C streeft bij het ontwikkelen van XQL de volgende doelen na ("XML Query Languages (XQL)" van het W3C) XQL strings shall be compact. XQL shall be easy to type and read. XQL syntax shall be simple for the simple and common cases. XQL shall be expressed in strings that can easily be embedded in programs, scripts, and XML or HTML attributes. XQL shall be easily parsed. XQL shall be expressed in strings that can fit naturally in URLs. XQL shall be able to specify any path which may occur in an XML document and specify any set of conditions for the nodes in the path. XQL shall be able to uniquely identify any node in an XML document. XQL queries may return any number of results, including 0. XQL queries are declarative, not procedural. They say what should be found, not how it should be found. This is important because a query optimizer must be free to use indexes or other structures in order to find results efficiently. XQL query conditions may be evaluated at any level of a document, and are not expected to navigate from the root of a document. XQL queries return results in document order with no repeats of nodes. 29

30 XPath XPath is een door het W3C gestandardiseerde taal, voor het addresseren van elementen in een XML documenten volgens de hiërarchische structuur van dat document. Als XPath als query taal gebruikt wordt, selecteert het informatie uit de tree-structuur van de XML Infoset. De positie en volgorde van componenten in de XML Infoset wordt document order genoemd. Om dit toe te lichten geven we een voorbeeld. Stel dat we van het Sales-order document de CustName willen selecteren. We addresseren het element met de expressie /SalesOrder/CustName Een dergelijke expressie is een zogenaamde path expressie. XPath zal in de XML Infoset van het document op zoek gaan naar elementen CustName, die een child zijn van SalesOrder. Om waarden van attributen te selecteren moet de naam van het attribuut voorzien worden van een at-sign. Stel dat we het CustNumber willen selecteren, we gebruiken dan de volgende expressie: Op elk niveau kunnen we een filter aan de expressie toevoegen om zodoende nog specifieker naar informatie te zoeken. Stel dat we van de SalesOrders alle CustName's willen weten van Customer met een CustNumber hoger dan 540: Het is dus met XPath mogelijk om heel exact te verwijzen naar bepaalde stukken XML. XPath is echter niet ontworpen als query-taal en is dat eigenlijk ook niet. Het voldoet niet aan de wensen van het W3C, waarbij het belangrijkste is, dat er geen joins mogelijk zijn. Een query heeft altijd betrekking op slechts één document. XQuery XQuery is een query-taal die veel te danken heeft aan andere query-talen. Van XPath heeft het de path expressies geleend en de SLECT-FROM-WHERE constructie is afkomstig uit SQL. Daarnaast heeft XQuery 'variable binding' overgenomen van XML-QL. XML-QL maakt gebruik van 'element patterns' om elementen te matchen en 'variable binding' om het resultaat van de query aan een variabele toe te wijzen. De volgende XQuery expressie selecteert de CustName van CustomerNumber 543 van SalesOrder met SONumber 123: 30

31 FOR $s in document("sales.xml")/salesorder> $c in $s/customer $n in $c/custname WHERE AND RETURN <Customer number="543"> <CustomerName> $n </CustomerName> </Customer> XQuery is een krachtige query-taal en van alle XML query-talen tot nu toe het meest compleet Updates en deletes Er is een wijd scala aan strategieën voor het updaten en deleten van documenten. Dit varieert van wijzigingen die hele documenten betreffen tot wijzigingen middels een DOM tree en talen die specificeren hoe fragmenten van documenten gewijzigd kunnen worden Transacties, locking en concurrency Bijna alle native XML databases ondersteunen transacties en waarschijnlijk ook rollbacks. Locking gebeurt vaak op document niveau, zodat multi-user concurrency redelijk laag is. In de toekomst zullen database producten locking op element niveau aanbieden Application Programming Interfaces (APIs) Bijna alle native XML databases bieden programmeerbare APIs aan. Meestal is dit in de vorm van een ODBC-achtige interface, met methoden om te verbinden met de database, metadata te bekijken, queries uit te voeren en results te ontvangen. In de meeste gevallen zijn de resultaten in de vorm van een XML string of een DOM tree. Een interessante mogelijkheid voor data-centric applicaties is het koppelen van applicatie variabelen aan specifieke elementen of attributen in result documenten. De applicatie hoeft nu niet de result XML te parsen om zo een intern data object te maken, maar kan direct met de result XML aan de slag. Dit scheelt processortijd en betekent dus een snelheidswinst. Naarmate XML data-binding technieken zich meer 31

32 en meer ontwikkelen, zal dit vaker ondersteund worden. Veel native XML databases hebben de mogelijkheid om queries uit te voeren en de resultaten te tonen via HTTP Round-tripping Een belangrijke feature van native XML databases is Round-tripping van XML documenten. Dit houdt in, dat je een XML document kan opslaan in een native XML database en "hetzelfde" document weer terug kan krijgen. Dit is belangrijk voor document-centric documenten, waarbij zaken als CDATA secties, entity gebruik, commentaar en processing intructies een onlosmakkelijk deel van het document zijn. Ook voor medische applicaties is dit belangrijk, want de wet vereist dat er exacte kopieën van documenten worden bewaard. Alle native XML databases kunnen round-trippen op het niveau van elementen, attributen, PCDATA en document volgorde. Hoeveel meer zij kunnen round-trippen verschilt per product. Als algemene regel kan gesteld worden dat text-based native XML databases exacte XML documenten round-trippen en model-based native XML databases dit doen op document-model niveau Remote data Sommige native XML databases hebben de mogelijkheid om remote data in te voegen in documenten die zijn opgeslagen in de database. Deze data wordt meestal verkregen uit een relationele database via ODBC, OLE DB of JDBC en vervolgens d.m.v. table-based mapping of object-relational mapping gemodeleerd. Of die data live is, zodat updates in de native XML database direct doorgevoerd worden in de remote database, hangt af van de gebruikte native XML database. Er wordt verwacht, dat bijna alle native XML databases live remote data zullen ondersteunen Indexes Nagenoeg alle native XML databases indexeren elementen en attributen. Evenals in non-xml databases worden indexes gebruikt om queries zo snel mogelijk uit te kunnen voeren Normalisatie, referentiële integriteit en scalability Zaken die betrekking hebben op de wijze van data opslag spelen in de wereld van relationele databases een grote rol. We zullen hier bespreken hoe een native XML database met deze zaken omgaat Normalisatie Normalisatie is in algemene zin, het creatie proces van een database ontwerp waarbij een stuk data slechts eenmaal voorkomt. Voordelen hiervan zijn o.a. het reduceren van benodigde disk space en de mogelijkheid tot inconsistente data uitsluiten. 32

33 Het is zinvol te vermelden dat normalisatie voor veel document-centric documenten niet van belang is. Denk hierbij bijvoorbeeld aan een collectie met documenten die de producten van een bedrijf beschrijven. De hoeveelheid algemene data (copyrights, bedrijfsnaam, logo, etc.) is zo klein in verhouding met de totale hoeveelheid data, dat normalisatie niet de moeite waard is. Evenals in relationele databases is er niets in een native XML database dat de gebruiker verplicht om te normaliseren. Het is dus belangrijk om voor het opslaan van documenten in een database te bedenken, volgens welke structuur dat moet gebeuren. Native XML databases hebben hierbij een voordeel ten opzichte van relationele databases. Omdat native XML databases geen schema's kennen, kunnen documenten met meerdere schema's in de database worden opgeslagen. Het is nog wel noodzakelijk om queries te maken en bestaande documenten te converteren, maar het kan het transitie proces wel vergemakkelijken. Om bovenstaande toe te lichten gebruiken we het voorbeeld van de sales order. Dit document bevat header informatie zoals het sales order number, date, customer number en daarnaast een of meer items die bestaan uit een part number, quantity en price. In een relationele database moet de header informatie gescheiden van de items worden opgeslagen, omdat er meerdere items per header zijn. In een native XML database kan alle informatie zonder redundantie worden opgeslagen in een enkel document, omdat de hierarchische natuur van XML toestaat om een parent element meerdere children te geven. Helaas is normalisatie in werkelijkheid niet altijd even gemakkelijk. Want wat gebeurt er als de sales order ook customer informatie als contactpersonen en adressen moet bevatten. Er zijn dan twee keuzes. Al die customer informatie kan in elke sales order worden opgeslagen, wat tot redundantie leidt. De customer informatie kan ook apart worden opgeslagen en de sales order voorzien van een XLink naar de customer informatie of de twee documenten samenvoegen op het moment dat de data opgevraagd wordt. Het is dan een vereiste dat de native XML database XLink ondersteund of het gebruik van joins door de query taal. Ondersteuning voor beide mogelijkheden is er nog niet, maar wordt snel verwacht in de toekomst. In de praktijk zijn er geen duidelijke antwoorden. In werkelijkheid is relationele data vaak niet genormaliseerd vanwege performance redenen, wat niet genormaliseerde XML data niet zo slecht maakt als het klinkt. Als er document-centric documenten moeten worden opgeslagen en deze kunnen tot een acceptabel niveau genormaliseerd worden, dan is een native XML database een goede keus. Zeker omdat er gebruik gemaakt kan worden van XML query talen die andere databases niet hebben. Als er data-centric documenten moeten worden opgeslagen en de mogelijkheden van een native XML database verbeteren de prestaties van de applicatie, dan is een native XML database ook een goede keus. Maar als het er uiteindelijk op neer komt, dat er een relationeel model gebouwd wordt binnen de native XML database, dan was een relationele database een verstandiger keuze Referentiële integriteit Referentiële integriteit is de geldigheid van verwijzingen naar gerelateerde data en is noodzakelijk om de database consistent te houden. Een sales order met een customer number die verwijst naar customer informatie is waardeloos, als die 33

34 customer informatie niet bestaat. In een relationele database komt referentiële integriteit erop neer, dat een foreign key moet verwijzen naar een geldige primary key. In een native XML database wordt referentiële integriteit gerealiseerd door XLink of andere linking technieken. Momenteel ondersteunen slechts een aantal native XML databases referentiële integriteit. Dat komt omdat slechts weinig native XML databases linking technieken ondersteunen. In de toekomst wordt linking ondersteuning in veel database producten verwacht Scalability Het begrip scalability laat zich niet in een woord vertalen. Het best in de buurt komt een omschrijving, bijvoorbeeld: schaalbaarheid van de database om tot een zo goed mogelijke performance te komen. Schaalbaarheid heeft dan betrekking op de database grootte, aantal users, locatie van de database, toegang tot de database en daaraan gerelateerde zaken. Evenals hierarchische en relationele databases gebruiken native XML databases indexes om data op te zoeken. Het localiseren van documenten en document fragmenten hangt dus samen met de index omvang, niet met document grootte of het aantal documenten. Native XML databases kunnen het begin van een document of fragment even snel vinden als andere databases die van dezelfde index techniek gebruik maken. In dit opzicht "scalen" native XML databases dus net zo goed als elk andere database. In tegenstelling tot relationele databases linken hierarchische en native XML databases de data vaak fysiek. Text-based native XML databases groeperen gerelateerde data fysiek en model-based native XML databases gebruiken opslag systemen die gebruik maken van fysieke pointers naar groepen gerelateerde data. Omdat fysieke links sneller in het gebruik zijn dan logische links, kunnen native XML databases data sneller verkrijgen dan relationele databases. Scalability is gerelateerd aan een enkele index lookup en niet aan meerdere die nodig zijn door een relationele database. Native XML databases zijn dus beter scalable dan relationele databases. We moeten hierbij wel vermelden dat ook relationele databases in staat zijn om fysieke links aan te brengen in de vorm van geclusterde indexes. Maar het gaat dan om linking tussen individuele tabellen en niet om complete hiërarchien. Evenals hierarchische databases heeft fysieke linking bij native XML databases betrekking op een hiërarchie. Verkrijgen van data in die hiërarchie gaat snel, maar dezelfde informatie opzoeken in een andere hiërarchie niet. Stel dat we de customer informatie opslaan in elk sales order document. Het verkrijgen van alle sales order documenten gaat snel, omdat dit de volgorde is waarin we de documenten hebben opgeslagen. Maar als we alle sales order van een gegeven customer willen hebben dan zal dit niet snel gaan, omdat de fysieke links niet meer van toepassing zijn. Om het probleem uit de vorige alinea uit de weg te helpen, maken veel native XML databases hevig gebruik van indexes. Hoewel dit de opvraagtijd aanzienlijk ten goede komt, kost het updaten van de database een stuk meer tijd. Dit kan een probleem vormen in een omgeving met veel transacties. 34

35 In het geval van het zoeken naar ongeindexeerde data zijn native XML databases een stuk minder scalable dan een relationele database. Beide typen databases moeten de data lineair doorzoeken, maar omdat een relationele database vaak beter is genormaliseerd, presteert deze beter. We willen bijvoorbeeld een sales order van een bepaalde datum zoeken en de dates in onze documenten zijn niet geindexeerd. Bij een relationele database komt dit neer op het doorlopen van alle waarden in de OrderDate kolom, terwijl een native XML database elk sales order document moet laden en de waarde van het <OrderDate> element uitlezen. Niet alleen de waarde van dit element wordt gelezen, maar het gehele document. In het slechtste geval moet een text-based native XML database de tekst parsen en converteren naar een date format om het te vergelijken met de gezochte datum. Met betrekking tot scalability kan concluderend worden gesteld, dat als het gaat om document-centric documents scalability geen probleem zal zijn. Als de view van de data niet vaak hetzelfde zal zijn, dan is scalability hoogstwaarschijnlijk een probleem Native XML database versus traditionele databases Concluderend zijn er de volgende verschillen tussen een traditionele database en een native XML database te vermelden: Traditionele database Native XML database data-centric XML documenten document-centric XML documenten mapping naar tabellen of objecten geen mapping voor XML geschikt gemaakte query talen XML specifieke query talen Langzamer met het verkrijgen van data Sneller met het verkrijgen van data Het is duidelijk dat de keuze voor een database volkomen afhankelijk is van de situatie. 35

36 6 - WebDAV Dit hoofdstuk is een korte toelichting op de WebDav standaard en de voordelen van WebDAV. De informatie in dit hoofdstuk is nodig bij volgende hoofdstukken waar WebDav meerdere malen te sprake komt De WebDAV standaard WebDAV staat voor Web-based Distributed Authoring and Versioning. Het is een set uitbreidingen op het HTTP-protocol, waarmee gebruikers gezamenlijk bestanden op web servers kunnen bewerken en managen. WebDAV is een open IETF Proposed Standard. De ontwikkeling en deelname daaraan wordt gereguleerd door de IETF WebDAV Working Group. Naast andere zaken omvat de WebDAV specificatie (IETF RFC 2518) drie belangrijke aspecten, die van groot belang zijn bij gedistribueerde productie omgevingen: Collections: In tegenstelling tot HTTP's directe toegang tot een enkel bestand, biedt WebDAV de mogelijkheid om individuele resources te organiseren in collecties. Een collectie kan ruwweg vergeleken worden met een file system directory. Collecties bieden efficiënte manieren om resources te benaderen en te structureren. Locking: WebDAV biedt verschillende manieren om resources die door meerdere gebruikers tegelijkertijd benaderd worden, te locken. Dit concept biedt een oplossing voor het "lost-update" probleem. Dit is het probleem van verloren data, omdat er door twee gebruikers aan hetzelfde document wordt gewerkt. De wijzigingen van de ene gebruiker gaan verloren, doordat de andere gebruiker het document overschrijft. Properties: Individuele resources kunnen worden voorzien van properties; metadata. Over een bestand van een willekeurig type kan data worden vastgelegd. Deze mogelijkheid is een uitkomst voor uitgebreide zoekmechanismen en het mangenen van resources. Een property bestaat uit een name/value-paar. Voor meer gedetaileerde en achtergrond informatie over de WebDAV standaard verwijzen we naar de volgende websites: De voordelen van WebDAV In de praktijk levert WebDAV een boel gebruikersgemak op. Dit wordt mogelijk gemaakt door WebDAV enabled clients zoals bijvoorbeeld Microsoft Office2000TM, Windows Explorer, Adobe Photoshop 6 en XML Spy. Genoemde producten zijn in 36

37 staat gebruik te maken van WebDAV. De groep producten die WebDAV ondersteunt groeit snel. Vanuit een WebDAV enabled client kunnen bestanden worden benaderd alsof ze lokaal zijn opgeslagen. Het beheren van bestanden op een WebDAV server kan zoals gebruikers dat gewend zijn in bijvoorbeeld de Windows Explorer. Er zijn geen lange commando's meer nodig, maar er kan gebruik worden gemaakt van dragging and dropping. De voordelen van bestanden op een webserver opslaan zijn o.a. dat andere gebruikers gemakkelijk toegang hebben tot die bestanden en dat het updaten van bijvoorbeeld een webpagina zonder omslachtige handelingen gedaan kan worden. Deze manier van werken kan in de praktijk een hoop en FTP verkeer voorkomen. 37

38 7 - Tamino XML Server Inleiding Dit hoofdstuk beschrijft de evaluatie van de Tamino XML Server. Onze bedrijfsmentor, Jan Swets, heeft in het verleden een XML starterskit besteld bij Software AG. Deze starterskit bestaat uit een CD met documentatie- en presentatiemateriaal en een CD met software, waaronder versie van de Tamino XML Server. We proberen in dit document antwoorden te geven op de onderzoeksvragen, welke we in het vooronderzoek hebben opgesteld. Voor een deel hebben we antwoorden gevonden in literatuur, het overige deel is uit praktijk gebleken. We geven aan wat we gedaan hebben en welke problemen we hebben ondervonden. We proberen op deze manier een beeld te schetsen van de inspanning die nodig is voor het uitvoeren van bepaalde taken Algemene Informatie Installatie Tamino XML Server draait op Windows NT, Windows 2000, Sun Solaris en Red Hat Linux. Daarnaast zijn 150 MB schijfruimte, 128 MB RAM een een 300 Mhz processor vereist. Naast deze hardwarematige eisen stelt Tamino de volgende eisen aan de software omgeving. Er is een webserver vereist, zoals Apache of Microsoft IIS. Tevens is er een Java Virtual Machine vereist. Zowel Microsoft als Sun hebben een JVM die door Tamino gebruikt kan worden. De installatie handleiding raadt aan dit voor Tamino te installeren, omdat Tamino automatisch wijzigingen doorvoert in de configuratie van de webserver. Wij beschikken over een PC voorzien van een Intel Pentium Ghz processor, 512 MB RAM en 18,9 GB schijfruimte. Op deze PC is Windows NT 4 SP6 geinstalleerd. Daarnaast is Apache geïnstalleerd als webserver en hebben we de JVM van Microsoft geïnstalleerd. De CD met documentatie bevat onder meer de volgende documenten: Installation Guide Releasenotes Tutorials Diverse naslagwerken over algemene onderwerpen Presentatie over XML en Tamino Reference Glossary Archief, waarmee men op alfabetische volgorde kan zoeken naar verschillende onderwerpen De installatie van Tamino moet gebeuren onder een administrator account. De CD 38

39 start automatisch en na het doorlopen van een aantal schermen gaat Tamino installeren. Voor verdere details omtrent de installatie verwijzen we naar de Tamino Installation Guide. Software AG, de ontwikkelaar van Tamino heeft de Tamino XML server speciaal ontworpen voor het bouwen van applicaties waarbij het van essentieel belang is dat XML documenten betrouwbaar en snel opgeslagen en uitgewisseld kunnen worden Interface Tamino is een webbased applicatie. Het CMS wordt door applicaties via HTTP benaderd. Een aantal applicaties worden tijdens de installatie geïnstalleerd. We zullen deze applicaties kort bespreken System Management Hub De administratie van Tamino gebeurt met de System Management Hub (SMH). Dit is een webbased applicatie die benaderbaar is vanuit de programmagroep die tijdens de installatie door Tamino is aangemaakt in het Start menu van Windows NT. Standaard administrator van Tamino is het account waaronder de installatie is uitgevoerd. Onderstaande taken neemt de SMH voor zijn rekening: Database administration Omvat database-taken als create, start, stop, move, delete, backup, check and repaire, modify, etc. Administration of database locations Omvat database location-taken als add, rename, delete, move, define default, modify, etc. Job monitoring Omvat Job-taken als display job monitor information, display pending alerts, delete job records. SQL Catalog administration Omvat SQL-taken als display information about schemas ans tables, load data into table, administrate users. Data Map administration Omvat taken als, add webserver en delete webserver. Tamino security Omvat security-taken als Authorization, Administrators Administration considerations Omvat zaken als space management en problem reporting De interface bestaat uit een browserscherm met daarin drie frames. Linksboven is een Explorer-achtige boomstructuur, waarin bovenstaande taken staan gerangschikt. Na het klikken op een node in de boom, verschijnen in het frame linksonder de acties die bij het gekozen onderwerp uitgevoerd kunnen worden. Wordt er bijvoorbeeld in de boom op een bepaalde database geklikt, dan verschijnen een aantal knoppen waaronder "Start database" en "Stop database". 39

40 Figuur 7-1: System Management Hub Bij elke taak die uitgevoerd kan worden is een "Help" knop aanwezig. Een druk op die knop opent een nieuw browser venster met daarin een pagina met uitleg over het gewenste onderwerp. Voor specificaties van de functies die beschikbaar zijn, verwijzen we naar Tamino documentatie Tamino Interactive Interface De Tamino Interactive Interface is een browser-based interface om in de Tamino XML database transacties uit te voeren. Deze interface omvat de volgende transacties: Een schema definiëren in een gekozen collectie XML instanties van een schema in de database laden Queries uitvoeren op de database XML instanties uit de database verwijderen Schema's en collecties verwijderen Een verzoek aan de Tamino XML database wordt beantwoord in een XML document. Het is dus noodzakelijk om een browser te gebruiken die in staat is XML documenten weer te geven Tamino Schema Editor De Tamino Schema Editor wordt gebruikt om schema's te creëren in Tamino. Het 40

41 gebruik van de editor is relatief eenvoudig, er hoeft door de gebruiker geen gebruik gemaakt te worden van het schema language syntax. Met behulp van invulvelden wordt een schema gemaakt. De kans op fouten is daardoor kleiner. Schema's kunnen nieuw gemaakt worden, samengesteld aan de hand van een bestaand DTD of XML schema en bestaande Tamino schema's kunnen worden gewijzigd. XML schema's dienen conform de W3C standaard te zijn Aan de slag met Tamino Nu Tamino succesvol is geïnstalleerd kunnen we aan de slag. We zullen beschrijven hoe we te werk zijn gegaan, welke problemen dit opleverde en welke resultaten het heeft gehad Aanmaken Adminstrator Account Om in te loggen op de System Management Hub konden we alleen het administrator account van de PC gebruiken, omdat Tamino onder dat account geïnstalleerd was. In de SMH hebben we een administrator account aangemaakt. Problemen bij het aanmaken van een Administrator Account Het is niet mogelijk om een willekeurige username te gebruiken. De administrator die toegevoegd wordt, moet bekend zijn bij Windows. Mocht de user die administrator wordt, tot een domein behoren, dan moet dat in de username voor de SMH worden aangegeven. Bij Thales Nederland hebben we een Tamino administrator aangemaakt met als username "HENGELO\dh765". Het is niet noodzakelijk dat de administrator van Tamino ook Windows administrator is Aanmaken Database Om data op te slaan en te managen met Tamino moet er een database aangemaakt worden. Dit gebeurt in de System Management Hub. Het aanmaken van een database bestaat uit tien stappen, waarin een profiel van de database aangegeven moet worden. Er wordt gevraagd om de volgende gegevens: Naam van de database Backup medium en/of bestand Log locatie Log archief locatie Tijdelijke werklocatie Reserve locatie Backup locatie Database size (small, medium, large) Database dynamics (few write operations, many write operations) User acces (few users, many users) Database spaces (Data space, Index space, Journal space aan te geven in MB's) Properties van Server, SQL, XML en Ports 41

42 Afgezien van de database naam, hebben we ervoor gekozen om een database aan te maken naar de defaults van Tamino. Deze voldeden wat ons betreft prima aan onze testomgeving. Bovendien zijn zaken als Database spaces naderhand aan te passen. Na het doorlopen van de tien stappen wordt een Job Monitor weergegeven en maakt Tamino de database aan. De evaluatie versie van Tamino is beperkt tot database space van 50MB. Problemen bij het aanmaken van een database Het aanmaken van een database verloopt vlekkeloos. Het is jammer dat de database space bij de evaluatie versie beperkt is, omdat we nu niet meer dan 50MB aan data kunnen managen. Graag hadden we willen ondervinden hoe Tamino met grote bestanden om zou gaan. Daarbij denken we aan bestanden met een grootte van bijvoorbeeld 100 MB Starten van een database Na het aanmaken van de database, volgt het starten van de database. Na het klikken op "Start database" verschijnt wederom de Job Monitor. De database wordt gestart. Problemen bij het starten van een database Bij het starten van de door ons aangemaakte database stuitten we op problemen. De Job Monitor gaf een aantal errors en startte de database niet. De eerste error meldde dat er een aantal JVM libraries niet geladen konden worden. De uitleg bij de error die in de error-reference gegeven werd gaf geen duidelijkheid over de acties die ondernomen moesten worden. Op het developersforum van Software AG werd door meerdere mensen melding gedaan van "onze" error. De oplossing bestond uit het installeren van de nieuwste JVM en het goed verwijzen naar de locatie van de JRE (Java Runtime Environment) in de Registry van Windows NT. We hebben de eerder geinstalleerde JVM van Microsoft vervangen door de nieuwste JSDK van Sun en de verwijzingen in de Registry doorgevoerd. Na bovenstaande wijzigingen aan ons systeem startte de database zonder problemen op Authoring Standaard wordt er bij Tamino geen content creatie tool geleverd. Tamino ondersteunt voor het creëren van content wel de meest gangbare XML editors. Enkele daarvan zijn Xmetal van Softquad en XML-Spy van Altova. Beide hebben wij gebruikt in samenwerking met Tamino. Verderop in dit verslag wordt het gebruik ervan in combinatie met Tamino uitgebreid behandeld. Tevens is het mogelijk om content te bewerken middels MS Word Het voordeel van het bewerken van content met behulp van MS Word, is dat gebruikers in een vertrouwde omgeving werken. Voor dit onderzoek hebben wij niet kunnen werken met MS Word, omdat wij een oudere versie van MS Word op ons systeem hebben staan. Deze versie is niet 42

43 WebDAV-enabled, zoals MS Word 2000 dat wel is. Tamino wordt dus niet met een standaard editting tool geleverd. De tools die wij gebruikten, sloten probleemloos aan op Tamino. Auteurs die met de besproken editors gaan werken, zullen vertrouwd moeten raken met de editting tools. De snelheid waarmee het laden, bewerken en opslaan van documenten gebeurt, is afhankelijk van de snelheid en de kracht van het systeem van de auteur Definiëren van een schema Tamino gebruikt een schema om te bepalen hoe data wordt weggeschreven en gezocht kan worden in de database. Een schema kan gemaakt worden met de Tamino Schema Editor. De XML documenten die we in Tamino willen opslaan zijn gemaakt conform het Journalist DTD. In de Schema Editor openen we dat DTD en er wordt automatisch een schema van gemaakt. Als collectie naam kiezen we "Journalist". Vervolgens updaten we dat schema naar onze database en op dat moment is er een collectie genaamd Journalist beschikbaar. Een collectie is een verzameling XML documenten. Deze behoren tot een bepaald schema. In een collectie kunnen meerdere schema's voorkomen. Problemen bij het definiëren van een schema De verbinding tussen de Tamino Schema Editor en de database verloopt via HTTP. In eerste instantie kon de Schema Editor geen verbinding maken met de database. Het probleem zat hem in de configuratie van de webserver. Een aparte module van Apache die door Tamino wordt geleverd, draagt zorg voor de afhandeling van requests naar Tamino. In de configuratie ontbrak een verwijzing naar het URL van de database en de verwijzing naar de Apache module. In de installation guide staat beschreven wat aan de configuratie file van Apache moet worden toegevoegd. Na het correct configureren van de Apache webserver kon de Tamino Schema Editor verbinding maken met onze database en het schema definiëren Invoeren van XML data in de database Met de Tamino Interactive Interface kunnen we een XML document invoeren in onze database. De URL van de database moet worden ingevoerd evenals de collectie waarvan het XML document een instantie is. Met een "blader"-knop kan op de harde schijf worden gezocht naar het XML document. We kiezen een document dat conform de Journalist DTD is gemaakt. Een druk op de knop "Process" zet Tamino aan het werk en het XML document wordt aan de database toegevoegd. In het onderste frame van de Interactive Interface verschijnt onderstaande respons van Tamino: 43

44 <?xml version="1.0" encoding="iso "?> <ino:response xmlns:ino=" xmlns:xql=" <ino:message ino:returnvalue="0"> <ino:messageline>document processing started</ino:messageline> </ino:message> <ino:object ino:collection="journalist" ino:doctype="article" ino:id="1" /> <ino:message ino:returnvalue="0"> <ino:messageline>document processing ended</ino:messageline> </ino:message> </ino:response> Het respons vertelt ons dat Tamino is begonnen met het verwerken van een document. Het document, hier object genoemd, behoort tot de collectie Journalist, is van DOCTYPE Article en heeft ino:id 1 gekregen. Het ino:id is een uniek nummer dat Tamino zelf toekent aan documenten. Het wordt als attribuut toegevoegd aan het root-element van een document, in ons geval is dat <Article>. Vervolgens meldt het <ino:response> document, dat het verwerken van het document is gestopt. Hieruit blijkt, dat het respons aan het begin van een commando aan Tamino wordt aangemaakt en gaandeweg wordt gevuld. Als er grote hoeveelheden documenten ingevoerd moeten worden in Tamino, dan kan daarvoor de Mass Data Loader gebruikt worden. Het programma wordt aangeroepen vanaf een command prompt. De Mass Loader prepareert de documenten offline en laadt ze daarna in Tamino. Er zijn een aantal restricties en voorwaarden bij het gebruiken van de Mass Loader: Er dienen een collectie en DOCTYPE gedefiniëerd te zijn in Tamino voordat de Mass Loader begint Alle XML documenten dienen in een input file te staan De Mass Loader locked de gehele collectie waar data ingevoerd wordt Mass Loading van non-xml formaten is niet mogelijk Mass Loading gebeurt niet via de webserver. Webserver security wordt dus ontweken Wij hebben ook onderzocht wat de mogelijkheden en de beperkingen zijn om SGML-data in te voeren. Het invoeren van SGML-data gaat op dezelfde manier als met het invoeren van XML data, alleen behandelt Tamino de SGML documenten als non-xml. Dit brengt als nadeel met zich mee dat er niet d.m.v. queries gezocht kan worden binnen een SGML document. Er zijn verder ook geen speciale voorzieningen om SGML documenten te managen, zoals die ervoor XML documenten wel zijn. Problemen bij het invoeren van XML data in de database Het processen van een XML bestand verliep zonder problemen. Het invoeren van een well-formed XML document is mogelijk. Daarvoor wordt de collectie "ino:etc" 44

45 gebruikt. Het verschil tussen een well-formed, zoals hier beschreven en een valid XML document, is dat valid XML documenten gemaakt zijn aan de hand van een DTD Integratie van Tamino met XML editors De documentatie van Tamino belooft, dat Tamino kan worden geïntegreerd met producten van andere leveranciers. Het lijkt ons handig dit eens te testen. We kiezen voor integratie met Softquad's XMetal. Dit is een XML editor, die volledig door een programmeur kan worden geconfigureerd, zodat een auteur er als in een tekstverwerker als MS Word mee kan werken. Op de website van Softquad kan een 30 dagen werkende versie gedownload worden. Op de starterskit staat ook de tool XML Spy van Altova. Ook dit is een 30 dagen werkende versie. Nadat de evaluatie periode van XMetal verlopen was, zijn we met XML Spy aan de slag gegaan Tamino in combinatie met XMetal XMetal kan worden uitgebreid met zogenaamde macro's. Dit zijn stukken JScript of VB code die bepaalde taken verrichten. Zo kan bijvoorbeeld het invoeren van specifieke stukken XML code vergemakkelijkt worden. XMetal heeft naast een XML editor ook een Form Editor. Met de Form Editor kunnen formulieren gemaakt worden, die vanuit een macro opgeroepen kunnen worden. De integratie van Tamino met XMetal verloopt via macro's. Tussen de demo bestanden die Software AG meelevert met Tamino bevindt zich ook een demonstratie die betrekking heeft op een integratie met XMetal. De demonstratie bestaat uit een ZIP bestand met daarin voorbeeld XML documenten en enkele macro bestanden. De ZIP file moet worden uitgepakt in de directory waarin XMetal is geïnstalleerd. Enkele originele bestanden van XMetal worden overschreven. In de readme van de demo staat, dat als er al wijzigingen zijn gemaakt in de standaard XMetal macro's deze moeten worden geïntegreerd met het macro bestand dat bij de demo zit. Na het uitpakken van het ZIP bestand, starten we XMetal. Zoals verwacht staan de nieuwe macro's in het lijstje. Het gaat om drie belangrijke macro's, te weten: "GetfromTamino", "SavetoTamino" en "UpdatetoTamino". Problemen bij de integratie van Tamino met XMetal We hebben nogal wat problemen ondervonden bij het integreren van Tamino met XMetal. De macro's zijn specifiek voor de demo gemaakt en variabelen in die macro's die gegevens bevatten over de database locatie en de te gebruiken collectie klopten niet met onze omgeving. Dit hebben we opgelost door gebruik te maken van de macro editor van XMetal en enkele variabelen te wijzigen. De GetfromTamino macro hebben we als eerste uitgevoerd. Deze vraagt aan de gebruiker om een ino:id, dit is het unieke ID van een document in Tamino. Omdat we zelf de macro hadden aangepast, wisten we dat het de collectie Journalist betrof en bestanden met als root node <Article> (ino:id is een atribuut van <Article>). Na het 45

46 invoeren van een ino:id, onderneemt de GetFromTamino macro de volgende stappen: maken HTTP ActiveXObject Laden van URL in het HTTP object (URL: + ino:id + "]") openen nieuw document aan de hand van een XMetal Template laden van responsexml uit HTTP object in nieuw document object Er treedt hierbij een probleem op, omdat de response XML de complete response is van een query op de Tamino database. Zoals al eerder beschreven, is de root node daarvan <ino:respons>. Deze respons XML kan niet in een Article Template document geplaatst worden, omdat de XML niet conform de Journalist DTD is. Standaard wordt een nieuw document door XMetal geopend in de zogenaamde "tags-off view". Het document wordt weergegeven alsof het een tekstverwerker als MS Word betreft. In deze view wordt de XML elk moment gevalideerd aan het bijbehorende DTD. We hebben dit opgelost door het nieuwe document te openen in de "Plain Text View". In deze view wordt de XML als tekst getoond en kan de response XML zonder problemen worden ingevoegd. De response XML van Tamino is dus niet wat we willen. Door aanpassing van de macro is het natuurlijk mogelijk om via het Document Object Model en bijbehorende properties en methods de gewenste nodes te selecteren. Wegens gebrek aan kennis van VBScript is het ons niet gelukt de macro aan te passen. Volgend probleem wat optreedt bij het importeren van documenten uit Tamino in XMetal zijn de unieke ID's die Tamino toekent als attribuut aan het DOCTYPE. In ons geval resulteerde dat in een <Article ino:id="1">. Inconsistentie met de DTD treedt op. De macro's "Save to Tamino" en "Update to Tamino" maken gebruik van dit ino:id. De meest praktische oplossing bestaat uit het aanpassen van de DTD, zodat ino:id een geldig atribuut is. Omdat de "Get form Tamino" macro niet naar behoren werkte hebben we het DTD niet aangepast Tamino in combinatie met XML Spy De integratie van XML Spy met Tamino verloopt via WebDav. Zodoende kunnen XML documenten die in Tamino zijn opgeslagen benaderd worden alsof ze in het file system staan. Dit vergemakkelijkt het ophalen van documenten uit de Tamino database aanzienlijk. Via een dialoogvenster kan door de Tamino database gebladerd worden. Een bestand openen is niet meer dan een dubbele muisklik op het gewenste bestand. Vervolgens kan het met de "Save"-button in XML Spy in Tamino worden opgeslagen. Het openen en opslaan van documenten van en naar Tamino verloopt zogezegd zonder problemen. Verder is XML Spy een uitgebreide XML editor. Er zijn evenals in XMetal diverse views waarin gewerkt kan worden. Om het idee van een tekstverwerker te verwezenlijken moet een zogenaamde "Configuration File" toegewezen worden aan een XML-document. Een configuratie file bevat informatie over hoe de elementen in een XML document weergegeven moeten worden. Met de XSLT editor van XML Spy kan een configuratie file worden gemaakt. Per element 46

47 moet de lay-out worden aangegeven. Naast een configuration file wordt er ook een XSLT Stylesheet gemaakt. Na parsing levert dit een HTML document op. Het kost aanzienlijk wat tijd om voor een DTD als het Journalist een configuratie file te maken. Het invoeren van de lay-out gegevens vereist door een overvloed aan tabbladen veel klikwerk. Voor een groot DTD als het DocBook is het maken van een configuration file in onze ogen een monnikenwerk, ware het niet dat het resultaat het werken met XML Spy voor XML-leken mogelijk maakt. Het "ino:id" wat Tamino toekent aan een document zien we in XML Spy niet terug. Dat wijst erop dat het ino:id metadata is die Tamino gebruikt. Er is dus geen wijziging van het DTD noodzakelijk, dit in tegenstelling tot XMetal. Een van de voordelen die WebDAV bied, is het remote locken van documenten. In XML Spy is dit mogelijk met behulp van "Source Control". Er is daarvoor een Source Control Provider nodig, XML Spy noemt zelf Microsoft SourceSafe. Het blijkt dat dit een onderdeel is van Microsoft Visual Studio. Op dit moment beschikken we niet over Microsoft Visual Studio, dus we kunnen het locken en unlocken vanuit XML Spy niet testen Workflow & Storage Deze paragraaf behandelt: Authorisation Version Control Query uitvoeren op de database Opslag Indexing Authorisation Bij Tamino is er rekening gehouden met de mogelijkheid dat bepaalde gebruikers onderdelen van een document niet mogen bewerken of zelfs inzien. Tamino biedt daarom de mogelijkheid om een document, of bepaalde delen ervan te beveiligen. Om dit te bewerkstelligen, dienen gebruikers onderverdeeld te worden in groepen. Per groep kan er vervolgens bepaald worden welke rechten er toegestaan zijn. Deze functie is een onderdeel van de System Management Hub Version control Version control wordt door de huidige versie van Tamino niet ondersteund. Deze service zal wel beschikbaar zijn in de volgende versie van Tamino, die in het laatste kwartaal van het jaar 2002 verschijnen zal. Met version control is het mogelijk dat meerdere gebruikers gelijktijdig aan hetzelfde document werken, zonder dat men elkaars werk overschrijft. Er ontstaan zo verschillende versies van een document die allemaal onder dezelfde URL opgeslagen kunnen worden. Elk document wordt geïdentificeerd door een uniek label. Als een gebruiker vervolgens zijn versie van het document oproept, wordt de juiste versie van het document door Tamino geselecteerd d.m.v. de "Revision Selection Rule". Deze bepaalt welk document bij welke gebruiker hoort. 47

48 Query uitvoeren op de database Nu er data in de database zit, moet die data er ook weer uit kunnen komen. Met de Tamino Interactive Interface kunnen we queries uitvoeren op de database. De query expressies worden ingevoerd in een veld en als er op de knop "Query" geklikt wordt, wordt de query uitgevoerd. Het resultaat wordt in het onderste frame van de Interface getoond. De query taal die Tamino gebruikt is Tamino X-Query, wat is gebaseerd op XPath. X-Query heeft een aantal functionaliteiten die niet in XPath geïmplementeerd zijn, zoals een aantal extra operatoren. Een query moet bestaat uit een locatie path en optioneel criteria. Het is dus vereist om kennis te hebben van de hiërarchie van een document. De eenvoudigste query die wij kunnen uitvoeren bestaat uit het opvragen van alle documenten in de collectie Journalist. De query expressie luidt: "*". Dit levert een XML document van het type <ino:response>. Hierin wordt de query expressie weergegeven en de resultaten daarvan. Problemen bij het uitvoeren van een query We hebben geen problemen ondervonden bij het uitvoeren van queries op de database. We hebben wel enkele nadelen geconstateerd. Er is kennis vereist van de Tamino X-Query taal. Een uitgebreid naslagwerk dat bij de starterskit wordt geleverd, biedt uitkomst. Er is kennis vereist van de hiërarchie van een document. De Schema Editor kan helpen inzicht te geven in die hiërarchie. Een query wordt uitgevoerd binnen een bepaalde collectie in een database Navraag bij Tamino vertelt ons dat het niet mogelijk is om een query uit te voeren over meerdere collecties (DTD's) tegelijk Opslag Via de Tamino Interactive Interface is het mogelijk om XML documenten te importeren in de Tamino database. De opslag van documenten in de Tamino database beperkt zich echter niet tot alleen XML documenten. Als de WebDAV server is geïnstalleerd, kan men met gebruik van Windows Explorer elk willekeurig bestand in de Tamino database zetten. De Tamino database kan bestanden opslaan tot een maximale grootte van 1 GB. Van compressie van bestanden in de database maakt Tamino nog geen gebruik. Ook dit staat gepland voor de volgende versie. Het moet dan mogelijk zijn om documenten in de Tamino database te comprimeren. De compressie sterkte kan door de gebruiker zelf aangegeven worden. De factor variëert op een schaal van 1 tot 10. Er geldt wel dat hoe sterker de compressie, hoe trager het systeem zal functioneren. De gebruiker kan ook kiezen om standaard een compressie toe te passen tijdens opslag van een document. Er zijn hier de volgende drie standaarden voor: 48

49 Smart compressie Tamino bepaalt zelf de comprimeersterkte en zoekt naar een middenweg tussen de snelheid van het systeem en de sterkte van comprimeren. Always Documenten zullen altijd gecomprimeerd worden. De sterkte van compressie valt vooraf in te stellen. None Documenten worden niet gecomprimeerd Indexing Tamino indexeert XML documenten die aan de hand van een schema worden opgeslagen. Well-formed XML documenten worden opgeslagen in de ino:etc collectie, waarbij alleen gebruik gemaakt kan worden van full-text retrieval van het gehele document. Documenten die volgens een schema worden opgeslagen komen in aanmerking voor indexing. Daarvoor zijn een aantal zaken die in het schema worden aangegeven. Structure Index bepaalt voor het DocType of nodes die voorkomen in instanties van dat DocType, maar niet zijn gemapt in het schema moeten worden opgenomen in de repository. Obj-type Geeft het type content van een node aan. Multiplicity Indicator voor het aantal voorkomens van een node. Search-type TEXT De node wordt geïndexeerd voor full text-retrieval. STANDARD Standaard indexing, vaak voor het gebruik met Data-typing, waarbij aan nodes een bepaald data-type wordt toegekend. Bijvoorbeeld aan een node Salaris wordt als data-type numeric gegeven. blank Er wordt geen indexing gebruikt. Options Waarbij aangegeven kan worden of de node ge-update kan worden via Tamino. Map-type Geeft aan of en hoe een node in Tamino opgeslagen wordt: Native De node wordt in Tamino opgeslagen. Constant De node bevat een constante. De waarde wordt aangegeven in het 49

50 Constant-attribuut Het is aan de gebruiker om goed na te denken over wat van belang is om geïndexeerd te worden. Afhankelijk van de meest voorkomende queries moeten keuzes gemaakt worden, wat te indexeren en wat niet. De nodes en trees van nodes die erg belangrijk zijn bij het opvragen van data moeten geïndexeerd worden. Nodes en trees van nodes die totaal niet van belang zijn bij het verkrijgen van data uit Tamino hoeven niet geïndexeerd te worden. Onderstaand figuur illustreert de samenhang tussen een XML document, DTD, schema en collectie Figuur 7-2: Indexing en validate van een XML document Publishing Naast het feit dat Tamino documenten als XML uitvoert, is er ook de mogelijkheid om Tamino de documenten te laten parsen en derhalve andere output te krijgen. Standaard worden de functionaliteiten daarvoor niet geïnstalleerd. Met een add-on voor de webserver, de pass-thru servlet, kunnen XSL stylesheets worden gekoppeld aan XML documenten. Op het moment dat zo'n document wordt opgevraagd, wordt de XSL stylesheet door de pass-thru servlet toegepast en wordt bijvoorbeeld een HTML bestand naar de gebruiker gestuurd. Omdat de XSL stylesheet die gebruikt moet worden, meegegeven wordt in de URL van het verzoek, kan de pass-thru servlet elke XSL stylesheet in Tamino op elk document toepassen. 50

51 De pass-thru servlet wordt niet standaard geïnstalleerd, maar staat wel op de CD-ROM. Er zijn nog een aantal andere componenten nodig: Java 2 Runtime Environment (onderdeel van de Tamino distribution kit of kan gedownload worden op Java Servlet Development Kit 2.0 ( Apache webserver die geschikt is voor Tamino (onderdeel van de Tamino distribution kit of kan gedownload worden op Apache JServ 1.1 ( ) SAX 1.0 Java Core (onderdeel van de Tamino distribution kit of kan gedownload worden op XT (onderdeel van de Tamino distribution kit of kan gedownload worden op Omdat we de Tamino WebDAV Server geïnstalleerd hebben, beschikten wij al over al deze componenten, uitgezonderd van de JSDK. Om de pass-thru servlet aan het werk te krijgen, moet de configuratie van Apache JServ aangepast worden. Vervelend is daarbij dat de beschrijving in de Tamino handleiding vergeet, dat Tamino alles een eigen naam geeft. Zo heet de configuratie file zoals die in de Tamino handleiding genoemd wordt jserv.conf, maar de in de Tamino installatie heet de file xdav-apache.conf. Het gebruik van de pass-thru servlet is verbazingwekkend simpel. Via een URL wordt de servlet aangesproken. Deze haalt de gewenste gegevens uit de Tamino database en transformeert ze met de aangegeven XSL Stylesheet. Een URL ziet er uit als: rc=myxslcollection/myxsldoctype/mystylesheet.xsl localhost staat voor de hostname van de te benaderen server servlet/styler is de server-alias om de pass-thru server te bereiken. Deze alias moet worden geconfigureerd in de Apache JServ file zone.properties (in ons geval tomcat.properties) tamino/mydb is de locatie van de database mycollection?_xql(1,10)=mydoctypeis de query die op mycollection moet worden uitgevoerd &_xslsrc=myxslcollection/myxsldoctype/mystylesheet.xsl is de verwijzing naar mystylesheet.xsl van mydoctype in mycollection 51

52 8 - Tamino WebDAV Server We zullen in dit hoofdstuk de Tamino WebDAV Server bespreken. De versie die wij gebruikt hebben was beschikbaar op de starterskit CD van Software AG Tamino WebDAV Server De Tamino WebDAV Server vertegenwoordigt het intermediar component van een three tier omgeving. Onderstaande afbeelding verduidelijkt de plaats van de Tamino WebDAV Server en geeft tevens de onderdelen van de Tamino WebDAV Server weer. Figuur 8-1: Structuur Tamino WebDAV Server Een inkomend verzoek van een client wordt ontvangen door een Apache of IIS server die is uitgebreid met een onafhankelijk draaiende Tomcat servlet container. Tomcat voorziet in ondersteuning voor de methoden die HTTP uitbreiden naar WebDAV. Als servlet container biedt Tomcat de benodigde infrastructuur om de WebDav Servlet te huisvesten. Deze implementeert Apache's Jakarta Slide Technology (zie voor meer informatie). Het verzoek van de client wordt verwerkt door de WebDAV Servlet en doorgegeven aan Tamino. Hierbij wordt gebruik gemaakt van de Tamino API. Kort gezegd is de taak van Jakarta Slide om een raamwerk te bieden voor WebDAV enabled content management en integratie met Apache's Tomcat mogelijk te maken Aan de slag met de Tamino WebDAV Server Dit hoofdstuk beschrijft de installatie van de Tamino WebDAV Server en het gebruik ervan Installatie Tamino WebDAV Server 52

53 De installatie verloopt via een setup programma. Deze installeert Apache Tomcat en wat documentatie en wijzigt de configuratie van de Apache webserver die reeds geïnstalleerd was. De Tomcat installatie is reeds dusdanig geconfigureerd, dat er een "WebDav" store is bereikbaar via de url " Tamino heeft een WebDAV collectie genaamd "Administration" gemaakt. Deze collectie bevat configuratie en statistiek bestanden. De hiërarchie van de Administration collectie is: Administration configuration etc repairer voor elke WebDAV enabled Tamino collection een collectie security actions manage read write users root statistics voor elke WebDAV enabled Tamino collection een collectie Collecties benaderen via WebDAV Voordat documenten in Tamino via WebDAV benaderd kunnen worden, dienen deze geschikt gemaakt te worden voor WebDAV, het zogenaamde WebDAV enabled maken van een Tamino collectie. Kort gezegd komt dat neer op het maken van metadata betreffende de collectie en de bijbehorende documenten. Er zijn twee methoden die gebruikt kunnen worden om een Tamino collectie te enablen, een "Check and Repair Tool" die via de WebDAV interface opereert en een tool die via een command prompt kan worden aangeroepen. Wij hebben de Check and Repair tool gebruikt omdat die via de WebDAV interface opereert. Zodoende verkrijgen we meer inzicht in het WebDAV principe. We willen onze Journalist collectie WebDAV enablen. Om een Tamino collectie WebDAV enabled te maken, dient er een XML document met de naam van de gewenste WebDAV collectie geplaatst te worden in Dit bestand moet eruit zien zoals het bestand mycoll.xml in Dit document bevat gegevens over de Tamino collectie, zoals de URL van de Tamino XML Server ( ), de naam van de database, de naam van de collectie en nog 53

54 enkele configuraties als het wel of niet toestaan van non-xml documenten. Wanneer de Tamino WebDAV Server opnieuw gestart wordt, zal er een WebDAV collectie genaamd "Journalist" aangemaakt worden. Deze collectie bevindt zich op het niveau van de collectie Administration. Gelijktijdig zijn in de Administration collecties "repairer" en "statistics" collecties met de naam Journalist aangemaakt. Onze Journalist collectie is met bijvoorbeeld de Windows Explorer te benaderen. Tenslotte dient er in de collectie Administration/repairer/Journalist het bestand StartRepairer.xml geplaatst te worden. Dit bestand bevindt zich in Adminstration/etc. StartRepairer voert op de achtergrond een "Check and Repair"-proces uit en wordt daarna vervangen door een log-file. Wat er exact gebeurt, is niet te achterhalen, maar het komt erop neer, dat metadata over de betreffende Tamino collectie wordt gecontroleerd en, wanneer niet aanwezig, wordt gemaakt. Figuur 8-2: Tamino WebDAV Server als Webfolder in de Windows Explorer Vanaf dit moment is onze collectie Journalist WebDAV enabled. We zien in de Windows Explorer dat er in de collectie Journalist een collectie Article is aangemaakt. Article is het DOCTYPE van onze documenten. In de collectie Article bevinden zich onze documenten Locking via WebDAV WebDAV biedt mogelijkheid om resources te locken. De actie om documenten te locken moet uitgaan van een WebDAV client. Windows Explorer heeft geen mogelijkheid om documenten via WebDAV te locken. XML Spy heeft Microsoft SourceSafe nodig om te locken. Dat hebben we niet tot onze beschikking, maar we wilden het locken van documenten via WebDAV toch proberen. We hebben via 54

55 Webdav.org een kleine applicatie, genaamd DAVExplorer, gevonden. Deze Java applicatie kan verbinding maken met elke willekeurige WebDAV server. Naast een overzicht van collecties en bestanden heeft DAVExplorer de mogelijkheid om bestanden te locken en unlocken. We hebben een document in de Journalist collectie gelocked met de DAVExplorer. Hetzelfde document kunnen we openen met XML Spy. Op het moment dat XML Spy het document via WebDAV wil opslaan, krijgen we een HTTP PUT error. Opslaan is dus niet mogelijk en het document is dus daadwerkelijk gelocked Properties via WebDAV WebDAV biedt de mogelijkheid om aan resources metadata toe te voegen. Bij het enablen van een Tamino collectie wordt metadata gemaakt. Deze metadata wordt door de Tamino XML Server opgeslagen in een collectie "xdav:metadata". Via de Tamino Interactive Interface kunnen we de metadata bekijken. Dat de metadata ook wordt bijgehouden is te zien aan de property "getlastmodified". Wanneer we ons document vanuit XML Spy via WebDAV opslaan en we bekijken nogmaals de metadata van het document, dan zien we, dat de waarde van "getlastmodified" is veranderd. XML Spy heeft geen mogelijkheden om iets met de metadata van een document te doen. Het programma DAVExplorer heeft de mogelijkheid om metadata te bekijken, toe te voegen en te verwijderen. Ook van onze documenten in de Journalist collectie kunnen we de metadata bekijken en aan passen. 55

56 9 - X-Hive/DB Inleiding Dit document beschrijft de evaluatie van de X-Hive/DB 2.0. Wij hebben op de homepage van de X-Hive corporation, een evaluatie versie gedownload. Met de evaluatie versie, wordt ondermeer een uitgebreide manual en de X-Hive DAV-server geleverd. We proberen in dit document antwoord te geven op de onderzoeksvragen, welke we in het vooronderzoek hebben opgesteld. Voor het grootste deel hebben we de antwoorden uit de literatuur gehaald. We geven aan wat we gedaan hebben en welke problemen we hebben ondervonden. We proberen op deze manier een beeld te schetsen van de inspanning die nodig is voor het uitvoeren van bepaalde taken Algemene Informatie Installatie X-Hive draait op Windows 2000, Sun Solaris 2.6, 7 en 8, HP/UX 11, AIX 4.3 en Red Hat Linux. Op Windows NT draait de applicatie ook, maar de X-Hive corporation heeft het programma nog niet uitgebreid getest op dit systeem. Via hebben wij aan de makers van X-Hive gevraagd of zij het afraden om X-Hive te testen op Windows NT. Men verwachtte geen problemen. Windows NT, 256 MB RAM, 30 MB schijfruimte voor de installatie van X-Hive en minimaal 300 MB schijfruimte per database zijn de hardwarematige eisen die X-Hive aan de omgeving stelt. Over processorkracht wordt niets vermeld. De Sun Java Development Kit (JDK 1.3) of een volledig compatible Java Virtual Machine dienen voor de daadwerkelijke installatie van X-Hive geïnstalleerd te zijn. De installatie van X-Hive moet gebeuren onder een administrator account. Men dient vervolgens het programma setup.exe te starten. Na het doorlopen van de verschillende schermen wordt X-Hive geïnstalleerd. Indien er een vorige versie van X-Hive geïnstalleerd is op het systeem, dient deze verwijderd / uninstalled te worden X-Hive DAV Server Ook bij X-Hive wordt een WebDAV Server geleverd. Helaas kregen wij de installatie van de X-Hive DAV Server niet voor elkaar. Dit omdat wij deze handmatig moesten installeren. Tijdens de installatie van de Tamino WebDAV Server, deed Tamino dit zelf en volledig automatisch. Echter bij X-Hive wordt er zeer beperkte en ingewikkelde informatie geleverd met betrekking tot de installatie van de WebDAV Server, waardoor wij er niet in geslaagd zijn om de installatie te voltooien. Hierdoor zijn wij niet in staat om onderdelen die X-Hive biedt waarvoor WebDAV vereist is te testen. We zullen wel die onderdelen die belangrijk genoeg zijn om te onderzoeken vermelden in dit verslag. 56

57 Interface De functies binnen X-Hive zijn benaderbaar door middel van Java Classes. Hierdoor is het mogelijk om zelf in bijvoorbeeld de taal Java een eigen programma te bouwen om de verschillende functies die X-Hive biedt uit te voeren. De verschillende Java Classes zijn te vinden in de X-Hive manual. Deze Java Classes worden gebruikt voor de verschillende mogelijkheden die X-Hive biedt. Tijdens de installatie van X-Hive wordt er al een applicatie toegevoegd, waarmee een aantal van de functies die X-Hive biedt te regelen zijn. We zullen deze applicatie kort beschrijven. X-Hive DB Administrator De administratie van X-Hive gebeurt door middel van de X-Hive DB Administrator. Deze applicatie is benaderbaar vanuit de programmagroep die tijdens de installatie van X-Hive is aangemaakt in het start menu van Windows NT. Standaard administrator van X-Hive is het account waaronder de installatie is uitgevoerd. Deze applicatie is gebaseerd op een aantal Java Classes die X-Hive biedt. Hierdoor neemt de X-Hive DB Administrator de volgende taken voor zijn rekening: Database administatie Omvat database taken als create, delete, connect, disconnect. Group management Omvat authorisation taken voor alle groepen, ondermeer add, remove en edit group en change group authority. User management Omvat authorisation taken voor alle gebruikers, ondermeer add, remove en edit user, query control en change user authority. Extensions Omvat de database extensies en paths. Root library Omvat taken als append document, parse document, store files as BLOB en execute query. De interface van de X-Hive DB Adminstrator, bestaat uit een window met daarin twee frames. Aan de linkerzijde zijn de bovenstaande taken gerangschikt. Klikken we met de rechtermuisknop op een van de taken, dan verschijnt er een nieuwe takenlijst met de functies die voor de desbetreffende taak beschikbaar zijn. Klikken we met de linkermuisknop op een taak, bijvoorbeeld op users, dan verschijnt in het rechtervenster alle users die tot dan toe toegevoegd zijn. Voor uitgebreide specificaties verwijzen we naar de X-Hive manual. 57

58 Figuur 10-1: X-Hive DB/Admin Aan de slag met X-Hive Nu X-Hive is geïnstalleerd, zullen beschrijven hoe we verder te werk zijn gegaan, welke problemen dit opleverde en welke resultaten het heeft gehad Aanmaken Database Om data op te slaan en te managen met X-Hive, moet er een database aangemaakt worden. Het aanmaken van de database gebeurt via de X-Hive DB Admin. Het aanmaken van de database bestaat uit een paar stappen waarin enkele gegevens van de te maken database opgegeven dienen te worden. We doen dit door in het file menu op de optie "Database" te klikken en vervolgens "Create database" te selecteren. Vervolgens verschijnt er een nieuw window waarin om de volgende gegevens gevraagd wordt: Database naam Superuser password Administrator password Herhaling van administrator password Standaard worden er met de database drie database extensions toegevoegd. Deze extensions zijn de "Paths" van de database. In de eerste extension worden de 58

59 indexes opgeslagen, in de tweede de queries die door verschillende gebruikers gemaakt worden op documenten uit de database en in de derde extension wordt de library van de database opgeslagen. Er worden geen standaard groepen aangemaakt, wel is de administrator de standaard user. De root-library is vanzelfsprekend nog leeg Starten van de database Om met de database te kunnen werken, dienen we deze te starten. Dit gebeurt ook vanuit de X-Hive DB Admin. Het starten van de database kan op twee manieren gebeuren. We kunnen in het File menu op "Connect" klikken, of we kunnen direct op de "Connect" knop klikken. In beide gevallen verschijnt er een nieuw venster waarin om de volgende gegevens gevraagd wordt: Database naam Username Password Bij het veld waar de naam van de database ingevuld dient te worden, vullen we logischerwijs de naam van een van de beschikbare databases in. Voor username en password, gelden de waarden die zijn opgegeven tijdens het aanmaken van de database. Als men later door middel van User management extra users toekent aan de database, is het ook mogelijk om onder deze user in te loggen op de database Verwijderen van de database In X-Hive bestaat ook de mogelijkheid om een reeds aangemaakte database te verwijderen, dit kan alleen gedaan worden door de Superuser. Dit gebeurt vanuit de X-Hive DB Admin. Hiervoor klikt men in het menu bovenin op de optie "Databases" en selecteert men uit het drop-down menu de optie "Delete database". Er verschijnt een nieuw menu waarin men de naam van de database en het superuser password op moet geven. Na op OK geklikt te hebben, verschijnt er een nieuw window waarin om een bevestiging gevraagd wordt. Door op Yes te klikken, wordt de procedure in gang gezet en wordt de database verwijderd. Aandachtspunten bij het starten en verwijderen van de database Er is een klein aandachtspuntje dat het vermelden waard is. Als we de database willen starten of verwijderen, is het niet mogelijk om uit een lijst de beschikbare databases te selecteren. De volledige naam van de database dient hier ingetypt te worden. Ook moeten we er op letten dat we de naam van de database correct invullen, de applicatie is namelijk hoofdlettergevoelig. Het kan natuurlijk voorkomen dat men de naam van de applicatie vergeet, er moet dan in de extension paths gezocht worden naar de juiste database naam Authoring In de X-Hive DB Admin, zit een beperkte mogelijkheid om zelf content te creëren en 59

60 op te slaan conform een gespecificeerd DTD. Het editing tool dat men daarvoor dient te gebruiken is uiterst beperkt, er kunnen alleen gegevens ingetypt worden en daar houdt het mee op. Om door middel van de X-Hive DB Admin zelf een document te maken en op te slaan, moeten de volgende stappen worden uitgevoerd: Document aanmaken We selecteren in de Root Library met de rechtermuisknop de optie "Append document". Vervolgens moeten gegevens over het document ingevoerd worden, dit zijn onder andere document naam en document omschrijving. X-Hive maakt vervolgens het document aan in de database. Document aanpassen Het aangemaakte document kan men vervolgens selecteren in het linkervenster van de X-Hive DB Admin. In het rechtervenster verschijnt dan de informatie over het document. Door op het tabblad "edit" te klikken, wordt de inhoud van het document weergegeven in tekstvorm, deze is te wijzigen. Verwijzing naar DTD Willen we het document later opslaan conform een DTD, dan moeten we in het document een verwijzing naar dit DTD maken. Opslaan van document Voordat we op de "Save" button klikken, vinken we de optie "Validate" aan. Als we daarna op de "Save" button klikken, wordt het document gevalideert aan het DTD en opgeslagen in de database als Valid XML-document Validatie aan een DTD Het is mogelijk om XML documenten conform een DTD op te slaan. We moeten hiervoor in het document dat we willen opslaan aangeven volgens welk DTD het gemaakt is en waar het zich bevindt. Tijdens opslag van het document kan de functie "Validate" aangevinkt worden. X-Hive valideert dan het document aan de opgegeven DTD. Is het document niet correct, dan geeft X-Hive aan waar de fout zit en biedt het de keuze het document te editen of alsnog op te slaan Invoeren van XML data in de database. Met de X-Hive DB Admin kunnen we een XML document invoeren in onze database. We kunnen door middel van bladeren de exacte locatie van het document opgeven. De volgende stappen zijn nodig, om het document aan de database toe te voegen. Het document dat wij kiezen, is gemaakt conform het Journalist DTD. Parse Document selecteren Door in het linkerscherm in de X-Hive DB Admin op de optie "Root library"te klikken, verschijnt er een nieuw menu in het linkervenster. In dit menu kunnen we er onder andere voor kiezen om een XML document te parsen en op te slaan. Zodra we dit doen, dan verschijnt er in het rechtervenster een nieuw menu. Document selecteren In het menu in het rechtervenster, kan men door op de "Add" button te klikken het gewenste XML-document op harde schijf gaan zoeken en selecteren. Dit 60

61 zoeksysteem heeft hetzelfde uiterlijk als u gewend bent in Windows. Document opslaan Nu het document geselecteerd is, kan ervoor gekozen worden om het document op te slaan conform het DTD waaraan het gemaakt is. Hiervoor moet de optie "Validate" aangevinkt worden. X-Hive leest dan het desbetreffende DTD in en controleert aan de hand daarvan het XML-document. Klikken we vervolgens op "ok" dan wordt het bestand als valid XML-document opgeslagen. Kiezen we niet voor validation, dan slaat X-Hive het document op als well formed. Naast het valideren van het XML-document, zijn er nog een aantal opties die voor de daadwerkelijke opslag uitgevoerd kunnen worden op een XML-document, namelijk: Use namespaces De namespaces in het document worden behouden. Keep whitespaces De door de gebruiker ingevoerde witregels worden dan behouden Normalize Data uit een XML-document wordt genormaliseerd. De gedachte hier achter is, dat overeenkomende data dat meerdere malen in verschillende documenten voorkomt, gefilterd wordt. Dit beperkt opslagruimte. Ignore public ID Omit entity references Hiermee worden alleen de waarden van de entiteiten van het document opgeslagen. Aandachtspunten bij het invoeren van XML data in de database Om een XML document op te slaan in de X-Hive database conform een DTD, dan dient van te voren in het document aangegeven te worden waar het DTD zich bevindt. Dit kan door de Doctype declaratie regel in het XML-document toe te voegen. Doen we dit niet en wordt er gekozen voor validatie tijdens het opslaan van het document, dan verschijnt er een foutmelding waarin aangegeven staat dat X-Hive de Doctype declaratie niet in het document kan vinden Workflow & Storage X-Hive ondersteunt een groot aantal Workflow en Storage taken. De beschikbare taken worden besproken Authorisation Bij X-Hive is er rekening gehouden met de mogelijheid dat bepaalde gebruikers documenten niet mogen bewerken of zelfs niet mogen inzien. Authorisation kan op verschillende niveaus geregeld worden: Groep niveau 61

62 Er kunnen meerdere groepen in de database aangemaakt worden. Per groep kan er aangegeven worden wat de rechten zijn. Er kan gekozen worden uit een combinatie van read, write, execute en none. De rechten die aan een groep gegeven worden, gelden voor alle documenten in de database. Document niveau Per document kan de authority gewijzigd worden. Er kan per document gekozen worden welke groep er welke soort toegang tot het document heeft. Er kan gekozen worden uit een combinatie van de volgende authorities, read, write, execute en none. Dit kan dus betekenen dat een bepaalde groep geen toegang heeft tot het document en dat een andere groep het document kan bekijken en wijzigen. Een ander voorbeeld is dat er een groep aangemaakt wordt die alleen maar read rechten heeft over de database. Dan kan er op document niveau aangegeven worden dat diezelfde groep over dat document ook write rechten heeft. Gebruiker niveau Nadat er gebruikers zijn aangemaakt in de X-Hive DB Admin, moeten deze toegewezen worden aan groepen. Op groep niveau regelt men dan de rechten Version control X-Hive ondersteunt version control of versioning zoals men dat bij X-Hive noemt. Versioning maakt het mogelijk om meerdere (oudere) versies van een document op te slaan onder dezelfde URL. Dit maakt het gemakkelijker om wijzigingen in een document bij te houden en oude versies van een document te herstellen. Zoals al eerder gemeld, maakt X-Hive gebruik van Java Classes. Om een versie van een document op te slaan in database van X-Hive, wordt er gebruik gemaakt van zo'n Class. Wij gaan uit van het volgende voorbeeld. We hebben het valid XML-document, "document.xml" reeds conform het Journalist DTD opgeslagen in de X-Hive database. We wijzigen het document in een willekeurige XML-editor. Willen we het document opslaan in de database en gebruik maken van versioning, dan dienen we de volgende Java Class te gebruiken: XhiveDocumentIf doc = (XhiveDocumentIf)docmentLIB.get("document.XML"); doc.makeversionable(); Als een document met gebruik van versioning opgeslagen wordt, geeft X-Hive aan de betreffende versie een ID mee. Dit ID is uniek X-Hive slaat niet een volledige versie van het document op, maar slechts de wijzigingen die er ten opzichte van het originele document zijn gemaakt. Als er eenmaal een of meerdere versies van een document zijn opgeslagen, dan zijn er meerdere toepassingen die uitgevoerd kunnen worden op de database met betrekking tot de verschillende documenten. Zo kan men opvragen hoeveel verschillende versies er van een document zijn, er wordt dan een lijst gegenereerd waar de ID's van de verschillende documenten bijstaan. Per ID kan er de volgende informatie opgevraagd worden. Opslagdatum, label en auteur. Hiervoor gebruikt men respectievelijk de volgende methodes: 62

63 Genereren van een lijst met ID's van document.xml. System.out.printIn("id :" + version.getid ( * ) ); Genereren van datum laatste wijziging van document. System.out.printIn("creation date: " + version.getdate ( * ) ); Genereren van het label van de betreffende versie van het document. System.out.printIn("label :" + version.getlabel ( * ) ); Genereren van de gegevens van de auteur van het document. System.out.printIn("created by : " + version.getcreator ( * ) ); * = het gewenste ID. Het ophalen van een versie van het document gaat ook via een Java methode, er zijn een paar standaard methodes om dit te doen: Zo wordt de laatste versie van document.xml opgeroepen. getxhiveversion(document.xml) De een na laatste versie van document.xml wordt opgeroepen. getpreviousversion(document.xml) Op de plaats van de * plaatst men het ID van een versie van document.xml. Alle latere versies worden dan opgehaald. getnextversion(*) Query uitvoeren op de database Nu er data in de database zit, moet die data er ook weer uit kunnen komen. Met de X-Hive DB Admin, kunnen we queries uitvoeren op de database. X-hive ondersteunt de querytaal XPath. Een query kan op een document uitgevoerd worden door met de rechtermuisknop op het desbetreffende document in de database te klikken. Er verschijnt dan een nieuw menu, van waaruit de optie "Execute query" te kiezen valt. Zodra deze optie wordt geselecteerd, verschijnt er een nieuw window waarin we de query kunnen invoeren. Zodra een gebruiker van X-Hive een query uitvoert op een document in de X-Hive database, worden deze query en uitkomst hiervan opgeslagen in het profiel van de gebruiker. Het voordeel hiervan is dat een gebruiker al eerder gebruikte queries kan hergebruiken zonder dat deze de query opnieuw ingevoerd hoeft te worden. Een andere mogelijkheid binnen X-Hive is, om vooraf al queries aan een gebruiker toe te kennen. Wederom heeft dit het voordeel dat de gebruiker deze queries niet hoeft in te voeren. Een query aan een gebruiker toekennen wordt geregeld in de X-Hive DB Admin. We klikken hiervoor met de rechtermuisknop op de desbetreffende gebruiker en kiezen voor de optie "Add query ". Vervolgens verschijnt er een nieuw window, waarin we een query aan de gebruiker kunnen toevoegen Opslag 63

64 Via de X-Hive DB Admin is het mogelijk om XML documenten te importeren en op te slaan in de X-Hive database. De opslag van documenten beperkt zich echter niet alleen tot XML documenten. Als de X-Hive DAV Server is geïnstalleerd, kunnen we met gebruik van Windows Explorer elk willekeurig bestand in de X-Hive database zetten. Wij hebben dit al in de praktijk ervaren tijdens de evaluatie van de Tamino WebDAV Server. Zoals eerder genoemd in dit document, zijn wij er niet in geslaagd om de WebDAV server van X-Hive te installeren. Er bestaat ook een andere manier om bestanden in de X-Hive database op te slaan. Dit gaat net zoals met XML documenten via de X-Hive DB Admin. Het is mogelijk om elk type bestand op te slaan in de database van X-Hive, hiervoor kiezen we de optie "Store files as BLOB's". BLOB staat voor Binary Large Object. Wij bedoelen hier alle bestanden van een non-xml formaat, zoals JPG, MP3, WAV, PDF etc. Hiervoor dienen de volgende stappen ondernomen te worden: Store files as BLOB's aangeven Door in het linkervernster met de rechtermuisknop op de Root Library te klikken, verschijnt er een nieuw menu, waarin we "Store files as BLOB's" kunnen selecteren. Zodra dit gedaan is, verschijnt er een nieuw window van waaruit het bestand op te slaan is. Bestand selecteren Nu bestaat er de mogelijkheid om op de harde schijf te bladeren en te zoeken naar het desgewenste bestand. Opslaan van document Als het bestand geselecteerd is, hoeft er alleen op de knop "Add" gedrukt te worden en het bestand wordt aan de database toegevoegd. Wat opvalt, is dat X-Hive onderscheid maakt tussen XML documenten en non-xml bestanden door middel van het icoontje dat voor de bestandsnaam aangegeven is in de Root Library. Beide soorten bestanden maken gebruik van hetzelfde symbool. Alleen bij non-xml documenten is de inhoud van het icoontje gevuld met een 1 en een 0. Hierdoor wordt Binary aangegeven Locking X-Hive locked data op Library level. Dit houdt in dat als een gebruiker een document locked, niet het hele document gelocked wordt, maar de Library waarin het document staat. Dit is dus inclusief de andere documenten en child-libraries die in dezelfde library zitten. X-Hive beschikt over twee methodes van locken. Implicit en Explicit. Als een lock in werking treedt, betekent dit niet dat een document niet meer gelezen kan worden door een andere gebruiker. Het document kan alleen niet meer gewijzigd worden door een andere gebruiker. Implicit locking Deze manier van locken wordt toegepast, zodra een gebruiker daadwerkelijk een document uit de database wijzigt. De lock treedt in werking zodra de eerste wijziging gedaan wordt op een document. Dit betekent dat een document niet van te voren al gelocked is. 64

65 Explicit locking Explicit locking is van toepassing, wanneer een gebruiker het document locked, voordat hij er enige wijziging in aanbrengt Database back-ups. Het creëren van back-ups van de X-Hive database wordt ook ondersteund door X-Hive. Back-ups maken van databases is aan te raden, voor het geval er zich een systeemcrash voordoet. X-Hive maakt hiervoor gebruik van back-up sets. Wij lichten dit toe aan de hand van een voorbeeld. We willen elke vrijdag een back-up van de database maken. Deze back-ups moeten per maand bij elkaar bewaard worden. Er wordt hiervoor een back-up set gecreëerd met bijvoorbeeld de naam mei. Elke vrijdag wordt er een back-up in de set opgeslagen, de eerste back-up van de maand mei noemen we vrijdag_week_1. De back-up sets en de back-ups dienen een unieke naam te hebben. Een set kan bijvoorbeeld wel dezelfde naam hebben als een van de back-ups die deze bevat, maar niet dezelfde naam als een andere set. Een back-up in een set, kan niet dezelfde naam hebben als een andere back-up binnen dezelfde set, maar wel dezelfde naam als een back-up in een andere set van bijvoorbeeld de maand april. Het maken van een back-up gebeurt door middel van een Java Class. Voor het maken van een back-up, kan er uit verschillende levels gekozen worden. Level 0 staat voor een volledige back-up. Maken we een back-up met level 1, dan worden alleen de clusters van de database opgeslagen sinds de meest recente level 0 back-up. Dit gaat door tot en met level 9, het level valt handmatig in te stellen. Als men bijvoorbeeld voor level 6 kiest en er is nog geen level 5 back-up geweest, dan wordt automatisch naar level 4 en lager gezocht. Er kan ook voor level N worden gekozen, dan zoekt X-Hive zelf naar het laagste level van back-up. Bij elke back-up moet de opslagplaats en een volumenaam worden opgeven. Het opgeven van een volumenaam is alleen nodig voor het geval de back-up niet op de gekozen schijf past. Achter de volumenaam wordt dan een numerieke waarde geplaatst en de gebruiker wordt gevraagd om een nieuwe plaats op een schijf aan te wijzen om de volgende volume van de back-up te bewaren. 65

66 Figuur 10-2: Back-up Om een back-up te creëren volgens het voorbeeld dat eerder genoemd is, dient men de volgende stappen te ondernemen: creëren van back-up set oocreateset -set backup_maand_mei creëren van back-up oobackup -set backup_maand_mei -backup vrijdag_week1 -volume backup_week1 -device c:\backup -level 0 Om de back-up terug te zetten in de database, dient men de volgende Java Class te gebruiken: oorestore -set backup_maand_mei -backup vrijdag_week1 -volume backup_week1 -device c:\backup -exists ask Exists wordt gebruikt voor het geval dat data vanuit de back-up dezelfde naam bevat als de data die in de database zelf zit. Wordt er als waarde ASK ingevuld, dan wordt de gebruiker gevraagd of er overschreven mag worden. Er kan ook gekozen worden voor NO, de data wordt dan niet overschreven, voor DELETE, de data wordt overschreven en voor QUIT, dan wordt het herstellen van de back-up afgesloten Indexing 66

67 X-Hive ondersteunt het gebruik van indexing. Als indexing toegepast wordt, geldt dat voor de hele Library. X-Hive gebruikt meerdere methodes van indexing: Library indexes Library indexes verbeteren de prestaties van child libraries (XML documenten, libraries, nodes etc). Deze Indexes zijn "Live", dat wil zeggen dat de indexes automatisch worden ge-update zodra library children worden toegevoegd, vervangen of verwijderd. Er zijn twee soorten Library indexes namelijk Library ID index en Library Name index. Library ID index XhiveIndezListIf indexlist = Library.getIndexList(); String idindexname = "Library ID Index"; XhiveIndexIf idindex = indexlist.addlibraryidindex(idindexname); Library Name index String nameindexname = "Library Name Index"; XhiveIndexIf nameindex = indexlist.addlibrarynameindex(nameindexname); ID attribute indexes Deze index methode slaat de ID's van elementen op. De ID's worden in het bijbehorende DTD gespecificeerd. Ook deze indexen zijn "Live". XhiveIndexListIf indexlist = document.getindexlist(); String indexname = "ID Attribute Index"; XhiveIndexIf index = indexlist.getindex(indexname; if (index == null) { index = indexlist.addidattributeindex(indexname); Element name indexes Bij deze methode worden elementen op hun naam opgeslagen. Dit bevordert de snelheid van een query waarbij op element niveau gezocht wordt. Ook deze manier van indexing is "Live" XhiveLibraryIf lib = rootlibrary.createlibrary(xhivelibraryif.optimized); Value indexes Value indexes slaan elementen op op de waarde er van. Ook deze manier van indexing is "Live" en vergroot de snelheid van een query waarmee op waarde van een element gezocht wordt. Er wordt onderscheid gemaakt tussen drie soorten value indexes. Value indexes die elementen opslaan op element waarde XhiveIndexIf nameindex = indexlist.addvalueindex(nameindexname, null, "NAME", null, null); Value indexes die elementen opslaan op attribuut waarde XhiveIndexIf nameindex = indexlist.addvalueindex(idindexname, null, null, null, "ID"); Value indexes die elementen opslaan op element en attribuut waarde XhiveIndexIf personbyfatherindex = indexlist.addvalueindex(personbyfatherindexname, null, "PERSON", null, "FATHER"); 67

68 Context indexes Zo worden in de index nodes van het document opgeslagen. Welke nodes worden opgeslagen, wordt door de gebruiker bepaalt. Er wordt een filter gemaakt waarin de gebruiker zelf kan aangeven welke nodes wel en niet opgenomen worden. Deze methode is niet "Live". XhiveIndexListIf indexlist = united_nations_db.getindexlist(); String indexname = "Index of even numbered chapters"; XhiveCCIndexIf index = (XhiveCCIndexIf) indexlist.getindex(indexname); if ( index!= null ) {indexlist.removeindex(index);} index = (XhiveCCIndexIf) indexlist.addnodefilterindex("samples.manual.sampleindexfilter"); Full-text indexes Een manier van indexing waardoor de prestaties van een text-retrieval query verbeterd worden. Deze index methode is niet "Live". XhiveDatabaseIf database = transaction.getdatabase(); database.createfulltextindex(); Onderstaand figuur illustreert de samenhang tussen XML document, DTD en Library Figuur 10-3: Indexing en validate van een XML document XLink XLink is een W3C recommendation dat ervoor zorgt dat er links gemaakt kunnen worden tussen XML documenten. XLinks kunnen onder andere vergeleken worden 68

69 met het gebruik van "<A>" in HTML, alleen zijn de mogelijkheden met XLink uitgebreider. Zo kan men met XLink onder andere bepalen hoe de target informatie gepubliceerd moet worden en kan er naar een specifiek element van een XML document een verwijzing gemaakt worden. X-Hive ondersteunt het gebruik van X-Link van documenten die opgeslagen zijn in de X-Hive database. Dit ondersteunen houdt in dat als een gebruiker een XML document opent waar een XLink in zit, deze link ook daadwerkelijk werkt. Een declaratie van een XLink gebeurt in het XML-document. Hieronder een voorbeeld: xlink:href="un Charter/UN Charter - Chapter 4#xpointer(/chapter[1]/title[1])" Met meerdere gebruikers werken aan een document Het kan voorkomen dat meerdere personen werken aan hetzelfde document. X-Hive hanteert hievoor "Branching". Deze methode lijkt veel op wat er al is uitgelegd over versioning of version control, zoals dat ook wel genoemd wordt. Echter het verschil is dat Branching expliciet gaat over het werken aan een document door meerdere gebruikers. Branching en het verschil daartussen met versioning wordt uitgelegd aan de hand van het volgende voorbeeld.: Figuur 10-4: Branching Een team van auteurs werkt tezamen aan een document met de titel "Thales". Het document bevat een hoofdstuk en is ondertussen drie keer opgeslagen, door het gebruik van versioning is de laatste versie van het document versie 1.3. Hoofdstuk twee gaat over de toekomst van Thales. Ze komen tot de conclussie dat de toekomst van Thales afhangt van een grote beslissing die het bestuur volgend jaar neemt. De beslissing is of Thales verder gaat in de zgh. "head branch" of in de "Free Market Branch". Ze besluiten om de groep op te splitsen in twee groepen. De eerste groep verdiept zich in de Head Branch en maakt daarover een subhoofdstuk van hoofdstuk twee. De tweede groep verdiept zich in de Free Market Branch en maakt daarover ook een subhoofdstuk van hoofdstuk twee. De eerste groep heeft haar stuk af en slaat het document op. Versie 1.4 van het document wordt gecreëerd in de database. Vervolgens gaat dezelfde groep verder met het volgende hoofdstuk, hoofdstuk 3. De tweede groep heeft haar stuk van hoofdstuk twee ook afgerond en wil dat vervolgens opslaan. Omdat zij werkten vanuit versie 1.3 van het document dat inmiddels al een opvolger heeft, versie 1.4, wordt door X-Hive branching toegepast. Er wordt dan voor het document van de tweede groep gebruikers versie aangemaakt. 69

70 Als de eerste groep weer verder gaat met haar stuk en ze slaan dat op, wordt versie 1.5 aangemaakt. Gaat de tweede groep verder met haar stuk, wordt versie aangemaakt enz. Helaas hebben we Branching niet daadwerkelijk in de praktijk kunnen testen. Dit vanwege het probleem met de X-Hive DAV Server. Als de DAV Server geïnstalleerd zou zijn, dan was het voor ons mogelijk om tegelijk een document te openen en er aan te werken. Vervolgens zouden we kunnen zien of Branching in de praktijk precies zo te werk zou gaan, of dat we nog tegen problemen aan zouden lopen X-Hive Publishing X-Hive ondersteunt de mogelijkheid om XML documenten te publiceren naar een ander formaat. Het is mogelijk om naar de volgende formaten te publiceren: HTML WAP/WML PDF X-Hive bevat een transformatie engine, dat gebruik maakt van XSLT Stylesheets. Door middel van XSLT Stylesheets is het mogelijk om XML te transformeren naar formaten zoals hierboven aangegeven. Om een document dat zich in de X-Hive database bevindt te transformeren, moet het document aan drie voorwaarden voldoen. XML document moet valid zijn Het document moet gemaakt zijn conform het DTD en moet zijn gevalideerd. Gekoppeld zijn aan XSLT Stylesheet In het XML document moet zich een declaratie bevinden met daarin het path naar waar het XSLT document zich bevindt dat gebruikt dient te worden. XSL document moet zich in de database bevinden Het XSL moet zich net als het XML document in de database van X-Hive bevinden en in dezelfde Library. Om dan de daadwerkelijke transformatie plaats te laten vinden, beschikt X-Hive over een aantal Java Classes. In deze classes wordt eerst dexslt Stylesheet geparsed. We gaan uit van een voorbeeld XSL, genaamd publish2html.xsl. De onderstaande class is nodig om dmv de publish2html.xsl het voorbeeld document document2.xml te transformeren naar HTML: Parsen van XSL: Document xsldocument = charterlib.parsedocument( new File(baseDirectory + "/publish2html.xsl").tourl( ), XhiveLibraryIf.PARSER_NO_VALIDATION XhiveLibraryIf.PARSER_NAMESPACES_ENABLED); Daadwerkelijke transformatie: XhiveTransformerIf transformer = XhiveDriverFactory.getDriver( ).gettransformer( ); 70

71 Document firstdocument = (document2.xml); String result = transformer.transformtostring( firstdocument, xsldocument); De bovenstaande code kan in combinatie met elk XSL gebruikt worden, behalve om naar PDF te publiceren. Om te publiceren van XML naar PDF, maakt X-Hive gebruik van een andere Java Class. We gaan weer uit van document2.xml en publish2pdf.xsl: Parsen van XSL: Document xsldocument = charterlib.parsedocument( new File(baseDirectory + "/publish2pdf.xsl").tourl( ), XhiveLibraryIf.PARSER_NO_VALIDATION XhiveLibraryIf.PARSER_NAMESPACES_ENABLED); Daadwerkelijke transformatie: XhiveFormatterIf formatter = XhiveDriverFactory.getDriver( ).getformatter( ); String result = formatter.formataspdf(rootlibrary, firstdocument, xsldocument); File pdffile = new File(baseDirectory + "/document2.pdf"); FileWriter fw = new FileWriter(pdfFile); PrintWriter pw = new PrintWriter(fw); pw.println(result); fw.close( ); 71

72 10 - Tamino versus X-Hive In dit hoofdstuk proberen we de verschillen tussen Tamino en X-Hive aan te geven Installatie De installatie procedure van beide programma's verschilt niet veel van elkaar. De installatie verliep in beide gevallen zonder problemen. Er is een Windows Administrator nodig om de installatie uit te voeren. Tamino X-Hive Windows NT en 2000, Sun Solaris, Red Hat Linux Windows NT en 2000, Sun Solaris 2.7, 7 en 8, Red Hat Linux, HP/UX 1.1, AIX 4.3 JVM vereist JVM vereist Apache of MS IIS webserver vereist geen webserver vereist Interface Na de installatie zijn er een aantal componenten geïnstalleerd. Tamino levert verschillende applicaties voor verschillende doeleinden. X-Hive levert slechts één applicatie, de X-Hive DB/Admin. Tamino X-Hive Webbased Administration Administration d.m.v. Java Applicatie X-Hive DB/Admin Tamino Interactive Interface om queries uit te voeren Queries uitvoeren vanuit X-Hive DB/Admin Tamino Scheme Editor om schema's te creëren in Tamino Authoring Het creëren van content behoort niet tot de functionaliteiten van beide programma's. Daarvoor kunnen XML editors als XML Spy of XMetal gebruikt worden. Integratie verloopt bij beide databases het gemakkelijkst via WebDAV. 72

73 Tamino X-Hive Geen content creatie tool Content creatie mogelijk vanuit X-Hive DB/Admin DTD als schema laden in Tamino DTD toewijzing in XML document, om documenten conform DTD op te validatie op moment van opslag aan slaan toegewezen DTD XML documenten processen vanuit XML documenten processen vanuit Tamino Interactive Interface X-Hive DB/Admin Workflow & Storage Tamino X-Hive Geen version control Version control mogelijk SGML wordt behandeld als non-xml SGML wordt opgeslagen als BLOB Well-formed XML komt in de collectie ino:etc Well-formed XML komt in aangegeven library XML Mass loader geen mass loader Tamino XQuery, gebaseerd op XPath met extra functionaliteiten XPath Locking niet mogelijk, tenzij via WebDAV Locking op library level Geen informatie over indexing Indexing op library, ID attribuut, Element naam of value niveau Geen informatie over XLink XLink ondersteuning Geen branching-achtige functies Branching Publishing Tamino X-Hive Output als XML Output als XML Pass-thru servlet (uitbreiding op webserver) parsed XML en XSL Stylesheet Parsen d.m.v. Java class 73

74 11 - XML publicatiestraat Doelstelling van dit onderzoek is ook het realiseren van een XML publicatiestraat. Met een XML publicatiestraat bedoelen we het maken van een document, het invoeren van tekst, het opslaan in een database en het uitvoeren naar een bepaald formaat. Dit document is de verwezenlijking van die doelstelling. We zullen in dit hoofdstuk beschrijven, hoe dit document tot stand is gekomen en welke middelen we daarvoor hebben gebruikt Authoring Wij hebben gebruik gemaakt van het Journalist DTD, dat een subset is van het veel gebruikte docbook DTD. Om content te creëren en te bewerken, hebben wij een evaluatie versie van het programma XML Spy gedownload van Internet. Het betreft hier XML Spy versie 4.3. Deze versie is 30 dagen vrij te gebruiken, daarna is de evaluatieperiode voorbij. XML Spy maakt hiervoor gebruik van een evaluatiecode, die als er wat persoonlijke gegevens worden ingevoerd op het internet te verkrijgen is. Aangezien wij XML Spy langer dan 30 dagen willen gebruiken, hebben wij na de eerste evaluatieperiode een nieuwe code aangevraagd op het internet. We gaan er in het verloop van het document vanuit dat XML Spy al is geïnstalleerd en dat het programma is opgestart Creëren van een XML document Door in het menu links bovenin te klikken op "File" en dan "New" te selecteren, kunnen we beginnen met het maken van een nieuw XML document. Er verschijnt vervolgens een nieuw menu waarin er gekozen kan worden wat voor document we willen gaan maken. Wij kiezen hier voor een XML document, maar er kan ook gekozen worden voor onder andere ASP, HTML, JSP, DTD of XSL. Een nieuw menu verschijnt en er wordt gevraagd of XML-Spy automatisch een DTD of schema moet toewijzen aan het nieuw te maken document. Ook is het mogelijk om geen DTD of schema toe te wijzen aan het document en dit later te doen. Wij selecteren de optie DTD en bevestigen dit door op de OK button te klikken. XML Spy komt nu met de vraag welk DTD er gebruikt moet worden en er kan door middel van een zoeksysteem gezocht worden op de harde schijf van de gebruiker naar het gewenste DTD Wij kiezen voor het Journalist DTD. Door weer op de OK button te klikken komen we in het menu, waar we het document kunnen voorzien van wat content. We zien dat de doctype declaratie naar de Journalist DTD zich ook in ons document bevindt Creëren van content Tijdens het maken van het document hebben wij ervoor gekozen om conform het Journalist DTD te gaan werken. Het journalist DTD bestaat uit het element Article, met daaronder in een boomstructuur verschillende elementen als Sect1, Sect2, Sect3 en Sect4. Elk Sect-element beschikt over het element Title. Sect-elementen kunnen vergeleken worden met headers in bijvoorbeeld MSWord. De lettergrootte 74

75 van een titel in een Sect1 element is groter dan die van een titel in een Sect2 element. Nadat we de titel hebben gedeclareerd, kunnen we verschillende paragrafen toevoegen. Hiervoor gebruiken we het Para-element. Binnen een Para element zetten we de informatie die we voor het betreffende gedeelte van het document in gedachten hebben. De content van Para-elementen hebben allemaal dezelfde grootte, ongeacht binnen welk Sect-element de Para-elementen staan. Elk Element dient afgesloten te worden. Hieronder een voorbeeld van de structuur zoals ons document eruit kan zien conform het Journalist DTD, inclusief de verwijzing naar de Journalist DTD: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE Article SYSTEM "C:\WINNT\Profiles\dh766\Desktop\journalist.dtd"> <Article> <Title>Dit is de Titel van het document</title> <Sect1> <Title>Dit is de Titel van het eerste hoofdstuk/paragraaf</title> <Para>Hier komt de tekst voor de eerste paragraaf/hoofdstuk.</para> <Sect2> <Title>Dit is de Titel van het tweede hoofdstuk/paragraaf</title> <Para>Hier komt de tekst voor de tweede paragraaf/hoofdstuk.</para> </Sect2> </Sect1> </Article> Workflow & Storage Opslaan van documenten Documenten kan men vanzelfsprekend opslaan op de eigen harde schijf. Dit gaat op een vergelijkbare methode als in bijvoorbeeld MSWord, door op het save symbool te drukken. Heeft men het document conform een DTD gemaakt, dan zal XML Spy het document eerst controleren aan de hand van dat DTD. Bevat het document fouten, dan wordt daar melding van gemaakt en wordt er aangegeven waar de fout zich bevindt. Men kan er dan voor kiezen om de fout te laten zitten en het document alsnog op te slaan, of de fout te herstellen en opnieuw te laten controleren en dan op te slaan. Is het document conform het DTD goedgekeurd, dan kan men aangeven waar het document op de harde schijf opgeslagen moet worden. 75

76 Wij hebben gebruik gemaakt van de Tamino XML Server om onze XML documenten op te slaan. Via de Tamino WebDav Server, konden wij direct vanuit XML Spy onze documenten opslaan in de Database van Tamino. Dit gaat door in plaats van op het save symbool te klikken, links boven in het menu op File te klikken en dan "Save to URL" te selecteren. Vervolgens wordt er een nieuw window geopend, waarin de locatie van de Tamino WebDav Server aangegeven kan worden. De collecties zijn te benaderen als ware directories. Ook tijdens deze actie controleert XML Spy of het document conform het DTD is. Mocht een document gelocked zijn, dan geeft XML Spy een "HTTP PUT Error". Verder wordt de error niet gespecificeerd. Het opslaan van documenten vergt niet veel tijd Publishing Het document is opgeslagen in Tamino. Het document is benaderbaar via de Tamino Webdav Server met de URL We kunnen ook direct de Tamino XML Server aanspreken en ons document opvragen met de URL ative%20xml-databases"] %20 staat voor een spatie Voor beide manieren geldt, dat de naam of titel van het document bekend moet zijn. Uiteraard zijn via de Tamino Interactive Interface diverse queries uit te voeren, om de titel van het document te achterhalen Stylesheets Bij het Journalist DTD die we hebben gebruikt, hebben we twee XSL stylesheets; een om HTML te genereren en een om FO te genereren. Deze stylesheets werden geleverd bij de XML editor XMetal. Met de FO kunnen we een PDF file maken. Omdat we de pass-thru servlets van Tamino niet geïnstalleerd hebben, kunnen we van Tamino geen andere formaten dan XML verwachten. Van XML naar HTML Het genereren van HTML is in XML Spy erg gemakkelijk. In het menu "XSL" is er een functie waarmee aan een XML document een XSL toegewezen kan worden. Vervolgens parsed XML Spy met een druk op de knop "XSL" ( in de toolbar ) het actieve document volgens de toegewezen XSL stylesheet. De XML parser die XML Spy gebruikt, kan worden ingesteld in de "options" in het "Tools" menu. Standaard wordt MSXML gebruikt, maar naar wens kan eventueel het pad naar een andere parser worden opgegeven. De HTML die d.m.v. de XSL transformatie gemaakt is, wordt in XML Spy een nieuw document. Dit document wordt getoond in de "Browser view", waarvoor Microsoft Internet Explorer gebruikt wordt. Minimaal is voor de browser-view Microsoft Internet 76

77 Explorer 5 nodig. MSXML 4 wordt aangeraden, omdat deze parser vrijwel alles van de W3C XSLT Recomendation ondersteunt. Van XML naar PDF Om van XML een PDF bestand te maken, is eerst een FO file nodig. FO staat voor Formatting Objects. Van een FO bestand maakt een Formatting Object Processor een ander bestand, bijvoorbeeld een PDF file. De FOP parser die wij gebruiken, is van Apache en wordt ontwikkeld door het Apache XML project. De versie van FOP die wij gebruiken is en ondersteunt de XSL-FO Version 1.0 W3C Recommendation. Het genereren van FO is wat lastiger. In het options-menu moet het pad naar "fop.bat" worden opgegeven. Een druk op de knop "XSL:FO" zet de FOP parser aan het werk. Er moet uiteraard wel een juiste XSL toegewezen worden. Na de druk op de knop krijgen we een foutmelding. Deze melding heeft betrekking op de output van de "external processor" en vertelt ons dat: "The filename, directory name, or volume label syntax is incorrect". Met deze foutmelding kunnen we niet veel beginnen en de help-functie van XML Spy kan ons ook niet helpen. We kunnen FOP ook via de command prompt aanroepen. Het batch bestand fop.bat heeft als parameters een XML bestand, een XSL bestand en een locatie voor het output bestand nodig. In ons geval ziet de aanroep eruit als: fop -xml eindverslag.xml -xsl Journalist_FO.xsl -pdf eindverslag.pdf FOP gaat nu de XML met behulp van de XSL transformeren naar FO en maakt daar vervolgens een PDF file van. De tussen-fo wordt niet bewaard. Voorwaarde hierbij is, dat eventuele afbeeldingen in het document, zich in dezelfde directory als het XML bestand moeten bevinden. FOP is niet in staat om afbeeldingen uit bijvoorbeeld een database te halen. XSL en XSL:FO De FO stylesheet die bij het Journalist DTD zijn geleverd, voldoen niet aan onze eisen. We willen een document dat is voorzien van pagina nummers, een inhoudsopgave, hoofdstuknummering en andere minder omvangrijke wensen. Om het document aan onze eisen te laten voldoen, is er een wijziging nodig in de stylesheet. In de volgende paragrafen bespreken we de XSL die nodig is voor respectievelijk het genereren van pagina nummers, hoofdstuknummering en een inhoudsopgave. Het voert te ver om XSL:FO te bespreken. Daarvoor verwijzen we naar XSL-FO Version 1.0 W3C Recommendation. Pagina nummers worden toegevoegd met het element: <fo:page-number /> Dit element hebben we in het footer-gebied geplaatst en op elke pagina laten terug komen. FOP vult dan op elke pagina het paginanummer in op de plaats van het element. 77

78 Hoofdstuknummering ligt iets ingewikkelder. Ons XML document heeft grofweg de volgende structuur: <Article> <Sect1> <Title>Hoofdstuk</Title> <Para></Para> <Sect2> <Title>Sub-hoofdstuk</Title> <Para></Para> <Sect3> <Title>Paragraaf</Title> <Para></Para> </Sect3> </Sect2> </Sect1> </Article> Elke Title-element van een <Sect1> moet een volgnummer krijgen. Elk sub-hoofdstuk moet een nummer als 2.3 krijgen, waarbij het getal voor de punt correspondeert met het volgnummer van de bovenliggende Sect1-node en het tweede getal een volgnummer is. Op die manier moet een paragraaf een nummer als krijgen. Om dat te bewerkstelligen hebben we de volgende code in de XSL stylesheet geplaatst: Hoofdstuk <xsl:number count="//sect1" level="any" /> Sub-hoofdstuk <xsl:number count="//sect1" level="any" />.<xsl:number count="//sect1/sect2" /> Paragraaf <xsl:number count="//sect1" level="any" />.<xsl:number count="//sect1/sect2" level="any" />.<xsl:number count="//sect1/sect2/sect3" /> De waarde van het count attribuut specificeert wat er geteld moet worden. Het retourneert een getal dat de positie van het element dat is gedefinïeerd in de waarde van count weergeeft. De eerste <Sect1> heeft de waarde 1, de tweede <Sect1> heeft waarde 2, etc. De waarde van het level attribuut is op any gezet, zodat geteld wordt op alle elementen van dezelfde soort. In het geval van hoofdstukken moeten de volgnummers door het gehele document doorlopen. In het geval van sub-hoofdstukken, moet binnen elk hoofdstuk opnieuw de sub-hoofdstukken worden geteld. Dat is ook het geval bij paragrafen. 78

79 Een inhoudsopgave moet worden gegenereerd uit de titels van hoofdstukken en sub-hoofdstukken. De code die we daarvoor in de stylesheet hebben geplaatst, heeft de volgende opbouw: Van elke <Sect1>-node wordt de waarde van de <Title> in een lijst geplaatst. Binnen elke <Sect1>-node wordt naar elke <Sect2> elementen gezocht. Als er een <Sect2> element gevonden is, wordt er een nieuw item gemaakt in de lijst en de waarde van de <Title> wordt hierin geplaatst. Voor elke Sect1 en Sect2 wordt naast de waarde van de Title ook een pagina nummer opgenomen. In de XSL ziet dat eruit als: <fo:page-number-citation /> De waarde van ref-id verwijst naar het Id-attribuut van de betreffende node. Deze 'Id' hebben we zelf in XML Spy toegevoegd. Het DTD staat alleen unieke waarden voor Id toe. Problemen met de XSL:FO Misschien zijn u tijdens het lezen van dit rapport bepaalde zaken opgevallen. U heeft wellicht gemerkt, dat de paginanummers in de inhoudsopgave niet netjes zijn uitgelijnd. Dat was ons uiteraard ook opgevallen. De lijn tussen de titel van het hoofdstuk en zijn paginanummer wordt uitgevuld. Dat wil zeggen, dat de lijn tussen de hoofdstuktitel en zijn paginanummer zo lang wordt, dat het nummer rechts is uitgelijnd. Het blijkt echter dat het resultaat niet is, wat het zou moeten zijn. De paginanummers staan niet op één lijn. Waar dat door komt is onduidelijk. Als we in de inhoudsopgave de tekst rechts uitlijnen, dan komt alle tekst rechts, maar staan de paginanummers nog niet op één lijn. We hebben alle tekst in de inhoudsopgave dezelfde grootte gegeven, maar dit mocht ook niet baten. Als de lijnen allemaal uit punten bestaan of allemaal een gesloten lijn zijn, staan de paginanummers nog niet goed. Ook diverse combinaties van uitlijning, letter-groottes, lijnen en ook stijlen binnen stijlen hebben niet geleid tot een mooie, nette inhoudsopgave. Een ander probleem wat we tegenkomen, is dat de FO Processor de tekst over pagina's verdeelt. Daarbij wordt geen rekening gehouden met titels van hoofdstukken, sub-hoofdstukken en paragrafen. Het komt dus voor, dat er onderaan een pagina een titel staat, terwijl de tekst op de volgende pagina begint. Dit staat niet mooi op papier, maar het is ook vervelend lezen. Naslag in de specificaties van FO, leverde op dat er een attribuut "keep-with-next" bestaat. Dit zorgt ervoor dat een bepaald element met het volgende voorkomende element op én pagina gehouden wordt. Dit attribuut hebben we toegevoegd aan de Title elementen. Dit gaf echter geen goed resultaat. In de lijst van attributen die door FOP ondersteund worden staat "keep-with-next (broken)". Daar ligt zeer waarschijnlijk de oorzaak van het probleem. Het attribuut wordt slecht ondersteund, waaar het wel werkt is ons niet duidelijk geworden. 79

80 12 - Toepassingsgebieden van XML en databases Uit voorgaande hoofdstukken kunnen we concluderen, dat de keuze voor een traditionele of een native XML database afhangt van de situatie. In dit hoofdstuk geven we een aantal situaties waarin sprake is van XML en database gebruik. We geven onze visie op de database die volgens ons het best gebruikt kan worden. Dit kan zijn een relationele of een native XML database. Een belangrijke eigenschap van XML is dat het alleen gegevens vastlegt. De vorm waarin die gegevens worden gepresenteerd staat los van een XML document, bijvoorbeeld in een XSL Stylesheet. Door transformatie (XSLT) wordt een XML document omgevormd tot een ander document: in bijvoorbeeld HTML, PDF, RTF, WML of iets anders. Een transformatie kan ook een ander XML document opleveren waarin de hiërarchie en structuur van gegevens totaal anders is, dan in het origineel. Voor de volgende voorbeelden is het van belang deze eigenschap te kennen Vliegtuigmaatschappij Een vliegtuigmaatschappij heeft een website waarop het vluchtinformatie aanbiedt. Deze vluchtinformatie is afkomstig uit het interne informatiesysteem. Dit informatiesysteem wordt gebruikt door medewerkers die vluchten invoeren en boeken via een applicatie. De informatie per vlucht bestaat altijd uit de volgende gegevens: vluchtnummer, toestel, aantal zitplaatsen, vertrektijd en aankomsttijd. Het is duidelijk dat XML documenten met vluchtinformatie een structuur hebben die altijd gelijk is. We kunnen concluderen dat het hier data-centric XML documenten betreft. Het is gemakkelijk om de data te mappen op een relationele database, omdat elk document dezelfde elementen bevat. Er is dus slechts één model nodig. Er zijn geen XML specifieke query talen nodig om de vluchtgegevens uit de database te halen. Publicatie gebeurt in twee vormen, op de website en in de applicatie. In het geval van de website wordt de data opgevraagd uit de database en d.m.v. een XSLT getransformeerd naar HTML. In het geval van de applicatie behoeven de gegevens hoogstwaarschijnlijk geen transformatie. De vliegtuigmaatschappij kan vluchtgegevens van een andere maatschappij verkrijgen via het Internet. Deze bevatten dezelfde gegevens, echter wel in een andere structuur. Om deze data toch in de database te zetten, kan er een ander mapping model gebruikt worden. Wat gemakkelijker is, is om de data van de andere maatschappij te transformeren d.m.v. XSLT. Zo kan zonder problemen hetzelde model worden gehanteerd. Het is niet gemakklijk, maar in het geval van de vliegtuigmaatschappij raden wij een relationele database aan. Een relationele database draagt beter zorg voor de integriteit van de data dan een native XML database. Met XML specifieke query talen kan in dit geval minder worden bereikt dan met de uitgebreide functies van SQL. Een relationele database biedt in dit geval meer voordelen dan een native XML database Handleiding Een producent van televisie heeft een handleiding laten samenstellen. Deze 80

81 handleiding bevat zowel tekst als afbeeldingen. Vanuit de tekst zijn verwijzingen naar afbeeldingen, zogenaamde cross-references. Daarnaast is er redelijk veel gemengde content, waarbij nodes niet een type inhoud hebben, maar bijvoorbeeld #PCDATA en elementen bevatten. De publicatie van de handleiding is in de vorm van een PDF document. D.m.v. een XSL:FO stylesheet wordt de XML getransformeerd naar FO en een FO Processor maakt er een PDF bestand van, wat op zijn beurt geschikt is om af te drukken. De XSL:FO stylesheet is zo gemaakt, dat de afbeeldingen automatisch genummerd worden en dat die nummers ingevuld worden op plaatsen waar naar de afbeelding wordt verwezen. Het invoegen van een figuur levert dus geen probleem. hetzelfde geldt voor hoofdstuknummering. Het wordt automatisch gegenereerd. Een hoofdstuk meer of minder resulteert in een aangepaste nummering. Eventueel is er een XSL stylesheet beschikbaar die van de XML HTML maakt. Zodoende kan de handleiding ook via Internet worden aangeboden. We hebben hier te maken met een document-centric XML document. We denken dan als eerste aan opslag in een native XML database. Het probleem schuilt hier in de gemengde content, waardoor het lastig wordt om het document te mappen op een relationele database. Daarnaast bieden XML query talen meer voordeel als bijvoorbeeld SQL. Een probleem wat we niet hebben kunnen oplossen is als volgt: de cross-reference naar een afbeelding gebeurt door een tag <Ref Id="1" To="Afbeelding1"/>. Het Id-attribuut is in dit geval de ID van de reference en het To-attribuut duidt het ID van het element waarnaar verwezen wordt aan. In het geval dat het ID van Afbeelding 1 veranderd wordt in bijvoorbeeld plaatje1, dan is de cross-reference waardeloos geworden. We kunnen ons voorstellen dat er in een relationele database een tabel voor het element Afbeeldingen is met daarin een kolom voor het attribuut ID. Op het moment dat we een UPDATE doen op deze tabel, kan er een trigger zijn die gaat zoeken naar cross-references naar dat ID en deze direct aanpast aan de nieuwe situatie. Hoewel dit wat tijd kost voor de database, is de consistentie van de data gewaarborgd. Hoe dit in een native XML database gerealiseerd kan worden, hebben we niet kunnen achterhalen. We vermoeden dat dit (nog) niet mogelijk is, anders was er door diverse producenten groots mee geadverteerd. 81

82 13 - Conclusie In dit hoofdstuk blikken we terug op ons project. We geven hier conclusies die uit ons onderzoek naar voren zijn gekomen en doen aanbevelingen over hoe er in de toekomst een eventueel vervolgproject aangepakt moet worden Content Management Systems Content Management bestaat globaal uit vier onderdelen: Authoring Workflow Storage Publishing De onderdelen Workflow en Storage zijn de twee onderdelen van een CMS die minimaal vertegenwoordigt moeten zijn. Workflow is de levenscyclus van een content element en Storage het proces dat zorg draagt voor de opslag van documenten. Een CMS hoeft dus niet altijd uitgerust te zijn met een database. Als aanvulling kan een CMS ook de volgende onderdelen aanbieden: User management Voor taken als gebruikersbeheer. User interfaces Een applicatie voor administratie en beheer van het CMS en haar content. Data sources Een locatie voor de opslag van content, bijvoorbeeld een database. Applications Zorgdragen consistentie van ciontent en voor integratie met middleware. Het kiezen voor een bepaalde CMS, hangt af van de eisen en wensen van een gebruiker XML en databases De belangrijkste eigenschap van XML is dat het alleen gegevens vastlegt. De vorm waarin het wordt gepresenteerd, staat los van het XML document. De manier waarop het wordt gepresenteerd, staat bijvoorbeeld in XSL Stylesheet. Voor de opslag van XML documenten, wordt er onderscheid gemaakt tussen data-centric documenten en document-centric documenten. Dit onderscheid wordt gemaakt omdat de verschillen van belang zijn voor de wijze van opslag in een database. Data-centric documenten zijn documenten die XML gebruiken als data transport. Ze zijn bedoeld om door een computer verwerkt te worden, voorbeelden hiervan zijn verkooporders, vluchtschema's en beurskoersen. Kenmerkend voor data-centric documenten zijn de regelmatige structuur en de weinig of geen gemengde content. Document-centric documenten zijn het meest geschikt als communicatiemiddel, 82

83 voorbeelden hiervan zijn boeken, s, advertenties en eigenlijk elk handgeschreven XHTML document. Kenmerkend voor document-centric documenten zijn de onregelmatige structuur en de diversiteit van content. Het onderscheid tussen data-centric en document-centric XML documenten is niet altijd even duidelijk aan te geven. Toch is er een algemene regel voor wat betreft het type document en de bijbehorende database. Voor data-centric documenten, wordt gekozen voor een traditionele database en voor document-centric documents voor een native XML database. Tevens beginnen de grenzen tussen traditionele en native XML databases te vervagen, beide nemen toepassingsmogelijkheden van elkaar over. De verschillen tussen een native XML database en een traditionele database ligt niet alleen in de opslag van data-centric en document-centric documenten. De software die de data tussen XML documenten en de database transporteren zijn gebaseerd op mapping tussen het document en de database. Er zijn meerdere soorten mapping. Het verschil met een native XML database, is dat deze XML documenten niet hoeft te mappen, waar traditionele databases dat wel doen. Native XML databases beschikken over specifieke voor XML gemaakt query talen, waar traditionele alleen gebruik kunnen maken van voor XML geschikt gemaakte query talen. Dit alles heeft als resultaat dat native XML databases sneller zijn met het verkrijgen van data WebDAV WebDAV staat voor Web-based Distributed Authoring and Versioning. WebDAV is een set uitbreidingen op het HTTP-protocol, waarmee gebruikers gezamenlijk bestanden op web servers kunnen bewerken en managen. WebDAV omvat drie belangrijke aspecten, die van belang zijn bij een gedistributeerde productie omgeving: Collections Hierdoor biedt WebDav de mogelijkheid om individuele recources te organiseren in collections. Collections bieden een efficiënte manier om recources te benaderen en te structureren. Locking Een verscheidenheid aan manieren om recources die door meerdere gebruikers gebruikt worden te locken. Dit concept biedt een oplossing voor het "Lost Update" probleem. Properties Over een willekeurig type bestand kan metadata worden vastgelegd. De voordelen van WebDAV zijn veel gebruikersgemak. Dit door WebDAV enabled clients als Microsoft Office 2000, Windows Explorer en XML Spy. Vanuit een WebDAV enabled client, kunnen bestanden worden benaderd alsof ze lokaal zijn opgeslagen. Bijvoorbeeld het beheren van bestanden op een WebDAV server, kan zoals gebruikers dat gewend zijn in bijvoorbeeld Windows Explorer Tamino versus X-Hive 83

84 Om een goed beeld te krijgen van CMS's die gebruik maken van een native XML database, hebben wij Tamino XML Server van Software AG en X-Hive DB van X-Hive in de praktijk onderzocht. De twee CMS's maken beide in meer en in mindere mate gebruik van de mogelijkheden van een native XML database. Zo ondersteund X-Hive version control en doet Tamino dit niet. Tamino wordt geleverd met een aantal applicaties, van waaruit verschillende functies toe te passen zijn. X-Hive wordt geïnstalleerd met maar een applicatie, van waaruit een groot deel van de door X-Hive ondersteunde functies te gebruiken zijn. Van de rest van de functies kan men gebruik maken d.m.v. Java Classes. Bij beide CMS's is het gebruik van WebDAV mogelijk XML publicatiestraat Onze publicatiestraat bestaat uit het maken van een document, het invoeren van tekst, het opslaan in een database en het uitvoeren naar een bepaald bestandsformaat. Voor de XML publicatiestraat, hebben wij gebruik gemaakt van een aantal XML documenten, DTD's en Stylesheets. Voor het maken van een XML document, hebben wij gebruik gemaakt van de XML editor XML-Spy. XML-Spy biedt veel mogelijkheden voor content creatie. Omdat XML-Spy een WebDAV enabled client is, konden wij onze XML documenten in de Tamino database zetten en vervolgens weer oproepen. Door middel van Stylesheets kunnen we de door ons gemaakte XML documenten publiceren naar onder andere HTML en PDF. Om van alle functies en mogelijheden gebruik te maken, hebben we dus een content creatie tool, DTD, database en stylesheets nodig. Dit zijn allemaal losse componenten. Er is geen tool beschikbaar die dit alles in een heeft Aanbevelingen Beoordelen welk type database geschikter is voor XML, is eigenlijk onmogelijk, als de situatie waarin XML gebruikt wordt onbekend is. Wij hebben een verschil gemaakt tussen data-centric XML documenten en document-centric XML documenten, maar we hebben ook aangegeven dat dat verschil niet altijd even duidelijk is. Als er een keuze gemaakt moet worden voor een CMS, dan raden wij aan nogmaals onderzoek te doen. Het is gebleken dat de keuze voor een traditionele database of een native XML database erg moeilijk is. Iedere situatie brengt andere kenmerken, eisen en wensen met zich mee. We raden aan, om de situatie goed te beschrijven en aan de hand daarvan te onderzoeken welk type database het meest geschikt is. De ontwikkeling van native XML databases staat niet stil en het is in de toekomst zeker de moeite waard om te kijken naar de volgende features: Linking Verwijzingen binnen documenten en tussen documenten zorgen voor veel problemen. In de toekomst zullen er CMS's zijn, die mechanismen hebben om verwijzingen consistent te houden. Versioning 84

85 Van de twee databases die wij bekeken hebben in dit onderzoek, was er slechts één die versioning ondersteunde. Voor een multi-user omgeving is versioning uiterst belangrijk. In de toekomst zullen meer native XML databases versioning ondersteunen. Locking In de toekomst wordt verwacht, dat locking op een lager niveau dan hele collecties of libraries plaats vindt, bijvoorbeeld op element niveau. Query talen Welke query taal zal in de toekomst de standaard worden voor XML databases? Kent deze taal ook zaken als joins, die nu nog niet toegestaan zijn. Indexing Op welk niveau wordt indexing ondersteund? Ook die techniek zal in de nabije toekomst zeker worden verbeterd. WebDAV Wij verwachten in de toekomst veel van de WebDAV technologie. Meer databases en tools zullen WebDAV gaan ondersteunen. Voor Thales is het interessant om in de gaten te houden, of er CMS's ontwikkeld worden, die zowel XML als SGML kunnen managen. Veel van de houdige data bij Thales is in de vorm van SGML in een database systeem vastgelegd. Misschien kan de SGML m.b.v. XSL Stylesheets worden getransformeerd naar XML. Misschien kan de SGML in huidige vorm met een native XML database op element niveau gemanaged worden. Mocht Thales besluiten om XML te gebruiken op de afdeling ILS, dan moet men zich bewust zijn van de vier onderdelen van Content Management: Authoring, Workflow, Storage en Publishing. Bij Thales hebben per onderdeel mensen met een andere achtergrond te maken. Er zijn IT mensen voor het beheer, maar authoring gebeurt door auteurs. Die hoeven niet per definitie kennis te hebben van XML of XML editors. De gebruikersomgeving moet gemakkelijk zijn. Maar waarschijnlijk moet er ook op een andere manier gewerkt gaan worden. XML vereist een bepaalde structuur die moet worden aangegeven. Dat kan problemen geven. 85

86 14 - Bronnen Productomschrijvingen Apache Cocoon Astoria B-Bop Xfinity XML Server Birdstep Database Engine Content@ CMS DB/XML Vision DOM-Safe Engenda EXist e-xml Repositiry Expressroom GMD-IPSI XqL engine GoXML Icoya Indusa Content Manager Infonyte Iore Ipedo XML Database 86

87 Lasso Merlin Server Merrant Metabase NeoCore XML Management System ODBC2XML Oracle XSQL servlet RhythmyX Roxen SiberSafe XML Author Sigmalink SIM Content Server Socrates XML Stellent Content Management System Tamino TEXTML Server Tridion DialogServer Vasont Visual Net Server X-HIVE XIS 87

88 XML Canon XMLcmNOW XMLFolio Informatieve naslagwerken About XML Content Mangement Tools Database Systems with specific support for XML utilities JISC TechWatch Report: Content Management Systems Native XML Databases Native XML vs. XML-enabled, by Michael Champion Why XML? XML and Databases, by Ronald Bourret XML-based systems for Documents and Content Management XML Database products, by Ronald Bourrett XML in de database, door Ing R.Claassens Internet bronnen

89 xml.pagina.nl 89

90 Bijlage 1, Plan van Aanpak

91 Plan van aanpak Onderzoek / evaluatie XML content management tools Datum : Versie : 2.0 Status : Definitief Auteurs: Vincent Fleur Dennis Heij

92 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Versiebeheer Versie Status Datum Opmerkingen 1.0 Concept Initiële versie 1.1 Concept na overleg stagebegeleiders 2.0 Definitief Na overleg met dhr P. Pettinga 1

93 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Inhoudsopgave 1. INLEIDING... 3 AANLEIDING VOOR HET PROJECT... 3 UITGANGSDOCUMENTATIE... 3 FUNCTIE PLAN VAN AANPAK... 3 ACCORDERING EN BIJSTELLING OPDRACHTFORMULERING... 5 DOELSTELLING EN VERWACHTE RESULTATEN... 5 ONDERZOEKSVRAGEN... 6 PROJECTRISICO'S... 7 KENNIS... 7 BESCHIKBAARHEID BETROKKENEN... 8 COMMUNICATIEMOGELIJKHEDEN... 8 HULPMIDDELEN... 8 VOORZIENE PROBLEMEN PRODUCTEN... 9 BESCHRIJVING OP TE LEVEREN PRODUCTEN AANPAK UIT TE VOEREN ACTIVITEITEN / BESCHRIJVING OP TE LEVEREN PRODUCT PER ACTIVITEIT VOORONDERZOEK AANPAK ONDERZOEK PLANNING VAN DE ACTIVITEITEN URENPLANNING PER PERSOON LITERATUUR PROJECTORGANISATIE BETROKKENEN CORRESPONDENTIE ADRESSEN TAAKVERDELING, VERANTWOORDELIJKHEDEN EN BEVOEGDHEDEN PROCEDURE EN BETROKKENEN TBV BEOORDELING EN PRESENTATIE PRODUCT VOORTGANGSBEWAKING EN RAPPORTAGE

94 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Inleiding Dit plan van aanpak is geschreven door Dennis Heij en Vincent Fleur. Beide zijn 2de jaars student van de opleiding kort Bedrijfskundige Informatica aan de instituut I&I van de Saxion Hogeschool IJselland te Deventer. Het beschrijft de stappen die we zullen nemen om de afstudeeropdracht te volbrengen, welke meetpunten er zullen zijn en wat de op te leveren producten zijn. Aanleiding voor het project Thales Nederland BV maakt op dit moment veelvuldig gebruik van SGML. Ze vragen zich echter af, wat XML voor hen kan betekenen. Thales is met name geïnteresseerd in XML content managers die gebruik maken van een native XML database. Uitgangsdocumentatie Het uitgangsdocument is de opdrachtomschrijving zoals die door Jan Swets, onze bedrijfsmentor van Thales Nederland BV. is opgesteld. Functie Plan van Aanpak Dit Plan van Aanpak zal gebruikt worden als richtlijn waarin beschreven staat hoe we als afstudeerders de opdracht bij Thales Nederland gaan organiseren. Hierin is te vinden wat de opdracht inhoudt, welk traject we zullen afleggen om de opdracht uit te voeren en welke tussenproducten daarbij opgeleverd worden. 3

95 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Accordering en bijstelling Alvorens dit Plan van Aanpak gebruikt mag gaan worden ter ondersteuning van het project zal het eerst goedgekeurd moeten worden door onderstaande personen. Naam Handtekening Jan Swets (Stagebegeleider en opdrachtgever) Peter Pettinga (begeleidend docent) Vincent Fleur (Stagiair / Afstudeerder) Dennis Heij (Stagiair / Afstudeerder) 4

96 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Opdrachtformulering In dit hoofdstuk wordt nader ingezoomd op de te realiseren opdracht. Doelstelling en verwachte resultaten Kern van de opdracht is het uitvoeren van een onderzoek naar de functionaliteit, mogelijkheden en toepassingsgebieden van native XML-databases ten opzichte van de functionaliteit van traditionele databases. De volgende producten dienen opgeleverd te worden: Onderzoeksrapport Hierin moeten o.a. de volgende punten aan de orde komen: 1) Lijst met criteria gerelateerd aan verschillende toepassingsgebieden waarop een XML content management tool geselecteerd kan worden 2) Lijst met eigenschappen, verschillen, sterke en zwakke punten van op de markt beschikbare native XML-databases 3) Noodzakelijkheid van een XML-database om XML-content te managen 4) Meerwaarde native XML-database t.o.v. traditionele databases 5) Hanteerbaarheid van diverse DTD s / schema s 6) Bruikbaarheid van native XML-database om SGML data te managen XML publicatiestraat 7) XML-bestanden 8) Content management met een van de geëvalueerde producten 9) Publicatie naar diverse uitvoerformaten Opmerkingen: De hierboven genoemde punten komen qua volgorde één op één overeen met de punten genoemd in het hoofdstuk Onderzoeksvragen en Aanpak onderzoek. Het onderzoeksrapport heeft de hoogste prioriteit. Als, na overleg met de stagebegeleider en begeleidend docent, blijkt dat er te weinig tijd is om de XML publicatiestraat te realiseren, dan komt dit product te vervallen. Dit keuzemoment is in de weken 14 en 15. 5

97 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Onderzoeksvragen Hieronder staan een aantal onderzoeksvragen die tijdens het onderzoek beantwoord dienen te worden. Tijdens het onderzoek kunnen echter wijzigingen plaatsvinden m.b.t. de onderzoeksvragen. Deze wijzigingen kunnen bijvoorbeeld inhouden dat er nieuwe relevante criteria bijkomen m.b.t. het onderzoek. Deze kunnen komen van ons zelf of van dhr J. Swets en/of Andre van der Voort. De voorwaarde voor deze evt. Wijzigingen is, dat ze wel betrekking hebben op dit onderzoek. Dit zijn projectrisico s en zijn uitgebreider beschreven in het hoofdstuk projectrisico s. 1) Welke criteria kunnen, gerelateerd aan de mogelijke toepassingsgebieden, worden geformuleerd om tot een eventuele selectie te komen? 2) Wat zijn de eigenschappen van de op de markt beschikbare native XML-databases en waarin verschillen ze? Wat zijn hun sterke kanten? 3) Is toepassing van een XML-database noodzakelijk om XML-content te managen en waarom? 4) Wat is de meerwaarde van native XML-database ten opzichte van traditionele databases? 5) Kunnen diverse DTD s / Schema s worden gehanteerd? Hoe groot is de inspanning die daarvoor noodzakelijk is? 6) Kan een native XML-database ook worden gebruikt om SGML-data te managen? Wat zijn de eventuele belemmeringen? Onderzoeksvragen die op de XML-publicatiestraat van toepassing kunnen zijn: 7) Aan welke eisen moeten demonstratie XML-bestanden voldoen? 8) Welk pakket wordt gebruikt om de publicatiestraat te demonstreren? 9) Welke uitvoeringsformaten zijn gewenst? 6

98 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Belemmerende en bevorderende factoren In dit hoofdstuk wordt beschreven met welke bekende belemmerende en bevorderende factoren we rekening kunnen houden. Projectrisico's Hier is beschreven met welke risico s we rekening moeten houden gedurende komende periode en welke maatregelen genomen kunnen worden om deze te beperken. Risico: Maatregel: Risico: Maatregel: Risico: Maatregel: Risico: Maatregel: Risico: Maatregel: Door te weinig communicatie de verkeerde weg inslaan bij het uitwerken van de opdracht Een realistisch Plan van Aanpak opstellen en tijdig en elke twee weken terugkoppelen met de opdrachtgever of inhoudelijk begeleider zodat deze op de hoogte is van onze bezigheden en hier ook achter staat. Beschikbaarheid betrokkenen Niet afwachten maar zelf tijdig afspraken plannen wanneer we bepaalde mensen willen spreken. Softwarematige beperkingen Zo nodig andere software installeren, mits die beschikbaar is binnen Thales. Wijzigingen m.b.t. criteria waar ons onderzoek op is gebaseerd Zo nodig deze nieuwe criteria toevoegen aan de dan bestaande lijst met criteria en deze nieuwe criteria toetsen in de praktijk. Doelstellingen niet halen Een realistische planning maken en deze aanpassen als blijkt dat het onmogelijk is ons aan die planning te houden. Kennis De kennis die benodigd is voor het uitvoeren van deze opdracht kunnen we vergaren door ons voldoende in te lezen in de theorie die beschikbaar is. Daarnaast kunnen we terecht bij dhr J. Swets en zijn collega dhr A. van der Voort. Eventueel kunnen we, in overleg met de stagebegeleider en begeleidend docent, kennis vergaren bij externe organisaties. 7

99 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Beschikbaarheid betrokkenen Dhr J. Swets en A. van der Voort zijn in principe elke werkdag beschikbaar. Wij geven er de voorkeur aan om op afgesproken momenten terug te koppelen. Dit geeft beide partijen de gelegenheid om er de tijd voor te nemen en eventueel voor te bereiden. Communicatiemogelijkheden Gezien het feit dat een en ander plaats vindt in een professionele werkomgeving is er de beschikbaarheid over telefoon, interne en interne post. Natuurlijk is direct contact ook mogelijk. Hulpmiddelen Naast een PC met printer kan er op enkele plaatsen gebruik worden gemaakt van Internet. De PC s met Internet aansluiting zijn niet aangesloten op het interne netwerk. Voorziene problemen Er zijn misschien bepaalde native XML-database pakketten die alleen geïnstalleerd kunnen worden op Windows In dit geval moet er geïnformeerd worden of Windows 2000 beschikbaar is binnen Thales. Als wij deze bepaalde native XMLdatabase pakketten daadwerkelijk willen gaan testen, dan zullen wij de beschikking moeten krijgen over een werkstation met Windows Dit zullen wij dan via dhr J. Swets bij de ICT-afdeling van Thales Nederland BV. moeten regelen. Als er evaluatie versies door leveranciers ter download worden aangeboden, moeten deze via mail vanaf de Internet PC naar de werkplek worden verstuurd. Het maximum aantal bytes dat verstuurd / ontvangen kan worden via mail, kan een probleem vormen. 8

100 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Producten In dit hoofdstuk wordt beschreven welke producten opgeleverd gaan worden. De tijd die we bij Thales doorbrengen bestaat uit vier perioden, ieder met bijbehorende producten. Het overzicht hieronder geeft slechts een beeld van de tijd die voor elke periode staat. De volgorde van uitvoering staat niet vast en periodes kunnen parallel met elkaar lopen. periode inhoud termijn Stage persoonlijke leerdoelen 4 weken scholingsoverzicht organisatiebeschrijving probleemafbakening plan van aanpak Afstuderen producten uit doelstelling van het plan van aanpak 15 weken Reflectie reflectieverslag 2 weken Afronding presentatie & verdediging 1 week Gedurende alle periodes leveren we een voortgangsrapportage op. Beschrijving op te leveren producten Persoonlijk startdocument einde stageperiode Dit document bevat twee onderdelen: persoonlijke leerdoelen Hier worden minimaal 5 leerdoelen beschreven, waaraan de student gedurende alle periodes speciale aandacht besteedt. Scholingsoverzicht Mocht er voor het uitvoeren van de opdracht bepaalde scholing nodig zijn, dan wordt dit beschreven in dit document. Ook zelfstudie wordt hierin beschreven. Afstudeerverslag einde afstudeerperiode Dit document bevat o.a. de volgende onderdelen: Plan van Aanpak Dit document is naast een contract ook onderdeel van het afstudeerverslag. Organisatiebeschrijving De organisatie wordt beschreven zoals de studenten aangereikt tijdens het vak Bestuurlijke Informatie Voorziening. 9

101 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Probleemafbakening Dit document beschrijft de opdracht en de samenhang ervan in de organisatie. O.a. wie er binnen Thales Nederland BV te maken hebben met het probleem en op welke processen het van toepassing is. Vooronderzoek Hier wordt beschreven hoe we het onderzoek gaan uitvoeren. Resultaten Dit gedeelte vormt de kern van het afstudeerverslag en beschrijft de resultaten van het onderzoek. Conclusie en aanbevelingen Hier wordt beschreven wat onze conclusies m.b.t. het onderzoek en de resultaten zijn en doen we aanbevelingen voor de toekomst. Voortgangsrapportage wekelijks Wekelijks geven we aan in een voortgangsrapport hoe het met de voortgang van het project gesteld is en tegen welke dingen we zijn aangelopen. Deze voortgangsrapporten zijn gerelateerd aan dit Plan van Aanpak. Reflectieverslag week 19 (6.2) Dit verslag is een terugkoppeling op het persoonlijk startdocument. Presentatie afronding Ter afronding van het afstuderen worden op school een presentatie en een verdediging gehouden. Dit is een openbare presentatie. Daarnaast zal er voor geïnteresseerden binnen Thales een presentatie gehouden worden. Deze is niet van belang m.b.t. de eindbeoordeling. 10

102 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Aanpak In dit hoofdstuk zullen we aangeven hoe we de verschillende activiteiten gepland hebben. Omdat we nog niet een heel duidelijk beeld hebben, van de tijd die een activiteit vergt, is het mogelijk dat de planning gedurende het uitvoeren van de opdracht aangepast wordt. Uit te voeren activiteiten / Beschrijving op te leveren product per activiteit Hieronder een overzicht van de activiteiten die moeten worden ondernomen. Een beschrijving van de op te leveren producten is te vinden in hoofdstuk vier, Producten. Activiteit Opstellen PvA Bestuderen Literatuur Gesprekken voeren met betrokkenen Vooronderzoek Onderzoek Opstellen persoonlijk startdocument Opstellen afstudeerverslag Opstellen reflectieverslag Voorbereiden bedrijfspresentatie Op te leveren product Plan van Aanpak Vooronderzoekrapport Onderzoekrapport Persoonlijk startdocument Afstudeerverslag Reflectieverslag Presentatie Vooronderzoek Om een gedegen onderzoek te waarborgen is het noodzakelijk een vooronderzoek te doen. Dit vooronderzoek vormt de rode draad voor het eigenlijke onderzoek. Taken en activiteiten Hieronder volgt een lijst van activiteiten die in dit vooronderzoek aan bod komen. Opstellen criteria waaraan een content manager moet voldoen Opstellen criteria waaraan een native XML-database moet voldoen Opstellen testomgeving, welke moet bestaan uit: XML bestanden DTD s en/of schema s XSL stylesheets Inventariseren native XML-databases die we gaan onderzoeken Inventariseren hard- en softwarematige eisen van geselecteerde native XMLdatabases Opstellen onderzoeksplanning 11

103 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Aanpak onderzoek 1) Door bestuderen van literatuur over content management kunnen we een lijst van criteria opstellen, waar een content management pakket in het algemeen aan moet voldoen. Deze lijst kunnen we eventueel aanvullen door gesprekken met o.a. Jan Swets en Andre van de Voort. 2) Van diverse op de markt beschikbare native XML-databases, zoals bijvoorbeeld X- HIVE, IPEDO, 4Suite en Tamino, kunnen we evaluatie versies downloaden. Door deze pakketten te testen en de product informatie van de leveranciers te bestuderen kunnen we de verschillen bepalen. Ook bestaat de mogelijkheid dat er literatuur beschikbaar is waarin verschillende versies al met elkaar vergeleken zijn. In dat geval zal deze literatuur bestudeerd worden. 3) We gaan product informatie van leveranciers van zowel native XML-databases als ook traditionele databases die XML-enabled zijn, bestuderen. Met die informatie en eventueel andere literatuur kunnen we de noodzakelijkheid van een native XMLdatabase om XML-content te managen beoordelen. 4) Uit punt 3 zal ook de eventuele meerwaarde van native XML-databases t.o.v. traditionele databases te bepalen zijn. 5) Productinformatie en handleidingen van diverse pakketten kunnen ons helpen bij het bepalen of diverse DTD s / schema s gebruikt kunnen worden. Een praktijktest wijst uit hoe moeilijk / makkelijk dit gaat. 6) Om te bepalen of SGML data gemanaged kan worden met een native XMLdatabase, bestuderen we de productinformatie en handleidingen van diverse pakketten. Daarnaast zal uit een praktijktest blijken hoe dit in zijn werk gaat. 7) Jan Swets en Andre van de Voort kunnen ons een globaal overzicht geven aan welke eisen een voorbeeld XML-bestand moet voldoen. Daarnaast kunnen we eventueel op Internet beschikbare voorbeeld XML-testbestanden gebruiken. 8) Uit het onderzoek zullen we concluderen welk pakket het meest geschikt is om XMLcontent te managen. Dit pakket zullen we gebruiken ter demonstratie. 9) We gebruiken XML-bestanden die conform de docbook-xml DTD( zijn gemaakt. De docbook-xml DTD is een datamodel voor het schrijven van boeken, documenten, rapporten of verslagen. Voor het uitvoeren van transformaties van docbook-xml naar diverse uitvoeringsformaten zijn stylesheets en tools public domain op het internet beschikbaar. Deze public tools zullen geïnstalleerd worden, zodat wij ze kunnen testen. Ook de handleidingen zullen aandachtig bestudeerd worden. Dit niet alleen zodat wij weten hoe deze tools te gebruiken, maar ook omdat er uit de handleiding duidelijk kan worden waar de desbetreffende tool tot in staat is en waarin niet. 12

104 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Planning van de activiteiten Week van tot Activiteit Op te leveren producten Feb 9-Feb Inwerken / start opstellen PvA VR Opstellen PvA, Feb 15-Feb organisatiebeschrijving Plan van Aanpak + VR 8 18-Feb 22-Feb probleemafbakening VR Feb 1-Mar start vooronderzoek VR Mar 8-Mar vooronderzoek VR vooronderzoek + bepalen welke Mar 15-Mar tools nader te onderzoeken VR Mar 22-Mar Uitvoeren onderzoek VR Mar 29-Mar Uitvoeren onderzoek VR Start voorbereiden Apr 5-Apr proefpresentatie + onderzoek VR Apr 12-Apr Uitvoeren onderzoek VR proefpresentatie + uitvoeren Apr 19-Apr onderzoek proefpresentatie + VR Apr 26-Apr Uitvoeren onderzoek VR Apr 3-May Opstellen concept afstudeerverslag + onderzoek VR May 10-May afronden concept afstudeerverslag + onderzoek concept afstudeerverslag + VR May 17-May Voorbereiden Presentatie + afronden onderzoek VR May 24-May Opstellen definitief afstudeerverslag VR May 31-May opstellen definitief afstudeerverslag VR Jun 7-Jun afronden definitief afstudeerverslag definitief afstudeerverslag Jun 14-Jun voorbereiden presentatie presentatie + VR Jun 21-Jun bedrijfspresentatie bedrijfspresentatie Jun 28-Jun presentatie presentatie *VR = Voortgangsrapportage 13

105 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Urenplanning per persoon Activiteit Uren Vincent Uren Dennis Inlezen / inwerken opdracht verzamelen literatuur over XML 8 8 bestuderen literatuur over XML Opstellen PvA Organisatiebeschrijving 24 Probleemafbakening 30 vooronderzoek verzamelen literatuur 6 6 bestuderen literatuur bestuderen XML editor 16 opstellen onderzoeksvragen CMS opstellen XML test bestanden 70 inventarisatie tools 70 bestuderen eisen tools 6 opstellen onderzoeksplanning 6 bepalen te onderzoeken tools 8 8 Onderzoek bestuderen handleidingen instaleren tools beantwoorden onderzoeksvragen voorbereiden proefpresentatie proefpresentatie 1 1 opstellen afstudeerverslag voorbereiden presentatie presentatie 1 1 voortgangsformulieren Totaal uren per persoon Totaal uren

106 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Literatuur De volgende bronnen zullen we bij het uitwerken van de opdracht gebruiken: xml.pagina.nl Managing XML documents in object-relational databases Auteurs: Meike Klette, Holger Meyer 15

107 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Projectorganisatie Betrokkenen De volgende personen zijn bij dit project betrokken. Naam Hoedanigheid Telefoon Dennis Heij Stagiair / afstudeerder [email protected] Vincent Fleur Stagiair / afstudeerder [email protected] Peter Pettinga Begeleidend docent IJselland [email protected] Chris Scholten Stagecoördinator IJselland [email protected] Jan Swets Opdrachtgever, stagebegeleider [email protected] Thales Andre van de Voort Tweede stagebegeleider Thales [email protected] Marcella Rulof- Veldkamp Stagecoördinator Thales [email protected] Correspondentie adressen Thales Nederland Zuidelijke Havenweg RR Hengelo Saxion Hogeschool IJselland Postbus AM Deventer Vincent Fleur Broekheurnerweg ES Enschede Dennis Heij Amerstraat CM Deventer 16

108 Afdeling ICT Opdracht: Onderzoek XML-content management tools Datum: Taakverdeling, verantwoordelijkheden en bevoegdheden Hieronder een overzicht van de taken en verantwoordelijkheden van de betrokkenen bij dit project. Opdrachtgever: Stagebegeleider: Stagiair: Begeleidend docent: Stage coördinator: Degene die de opdracht verstrekt en vervolgens het plan van aanpak beoordeelt en aan het eind nagaat of in voldoende mate aan de opdracht is voldaan. Degene uit de organisatie die belast is met de (inhoudelijke) begeleiding van de student, de bewaking van de kwaliteit van het te leveren product en de beoordeling van het persoonlijk functioneren van de student (de toepassing van kennis en vaardigheden). Student van de faculteit I&I, die belast is met de uitvoering van de opdracht. De docent die belast is met de begeleiding en bewaking van het leerproces van de student. Degene die zorg draagt voor de contacten tussen de betrokken personen. Daarnaast is de stagecoördinator belast met de niet-inhoudelijk begeleiding van de stagiair. Procedure en betrokkenen tbv beoordeling en presentatie product Het afstudeerverslag zal zowel door de stagebegeleider (tevens opdrachtgever) als de begeleidend docent beoordeeld worden. Na een bezoek aan het bedrijf geeft de begeleidend docent een voorlopig oordeel. Na de presentatie en verdediging wordt voor de afstudeeropdracht een eindoordeel vastgesteld. De presentatie die bij het bedrijf gehouden wordt, telt niet mee in de beoordeling vanuit school. Voortgangsbewaking en rapportage. We leveren wekelijks een voortgangsrapportage op. Deze zal worden overlegt met de stagebegeleider en de begeleidend docent. 17

109 Bijlage 2, Inventarisatie Content Management tools

110 Inventarisatie Content Management tools. De te beoordelen tools bestaan uit 2 categorieën. XML-Databases XML-Content Managers. De opbouw van dit verslag zal dan ook volgens de twee bovengenoemde tools zijn. XML-Databases. In dit hoofdstuk worden de gevonden XML-Databases behandelt. De informatie hierover hebben wij grotendeels gevonden op internet. Per database wordt er vermeld: Naam van de database Wat de huidige versie is waar het op het moment van schrijven om gaat Wie de ontwikkelaar is Wat de link is naar de homepage van de ontwikkelaar Op welke platformen het product nog meer draait Minimaal benodigde hardware ( aangeraden door de ontwikkelaars van het desbetreffende product, voor zover beschikbaar) Een beschrijving van wat er mogelijk is met deze database XML-Content Managers. In dit hoofdstuk worden de gevonden XML-Content Managers behandelt. De informatie hierover hebben wij grotendeels gevonden op internet. Per Content Manager wordt er vermeld: Naam van de naam van de Content Manager Wat de huidige versie is waar het op het moment van schrijven om gaat Wie de ontwikkelaar is Wat de link is naar de homepage van de ontwikkelaar Op welke platformen het product nog meer draait Een beschrijving van wat er mogelijk is met deze database

111 XML- Databases Ipedo XML Database Versie: 2.0 Ontwikkelaar: Ipedo Inc Adres: Platformen: Windows NT, Windows 2000, Sun Solaris, Red Hat Linux Hardware: 50 Mb schijfruimte ruimte, 128 Mb Ram. Ipedo XML Database is een native XML database met een snelle XSLT (extensible style language transformation), dit houdt in dat een dataset omgezet kan worden naar een andere dataset. Ipedo ondersteund: - SOAP (Simple Object Access Control, een open standaard voor communicatie tussen verschillende applicaties) en HTTP - Querry s mogelijk dmv Xpath - Geïntegreerde XSLT mogelijkheid - PDOM (persistent document object model, hierdoor krijgt men een live beeld van de DOM tree, aanpassingen hieraan hebben directe wijzgingen tot gevolg in de database) - Pre-indexed data voor snellere queries - Schema based dynamic indexing Lasso Versie: Ontwikkelaar: Blue World Communications Adres: Platformen: Windows NT, Windows 95/98 Mac OS Hardware: 64 Mb Ram, 133Mhz. Lasso is voornamelijk een Web Application Server voor het bouwen en deployeren van database driven web applicaties voor inter- en intranet. EXist Versie: Ontwikkelaar: Wolfgang M. Meier Adres: Platformen: Java Hardware: - Een native XML database met pluggable storage backends en fulltext zoekfunctie. De zoekmachine is gemaakt voor snelle Xpath queries, waarbij indexing gebruikt wordt bij de nodes van elementen, text en attributen. De server is te benaderen met veel verschillende talen en applicaties. Een on-line evaluatie is beschikbaar.

112 Tamino Versie: Ontwikkelaar: Software AG Adres: Platformen: Windows NT, Windows 2000, Sun Solaris, Red Hat Linux Hardware: 150 Mb schijfruimte, 128 Mb Ram, 300Mhz. Tamino heeft een native XML database en CMS, waarbij het mogelijk is om: - XML data op te slaan, te managen en uit te wisselen, zowel wellformed- en valid XML - Andere soorten data op te slaan, zoals bijvoorbeeld MSOffice bestanden, audio, video en PDF files - Een externe databron aan te spreken en van daaruit data te importeren. Dit kan doordat de inhoud van de desbetreffende data in real time getransformeerd wordt naar XML - Nieuwe elementen op te slaan in een opgeslagen XML. Het nieuwe element wordt ook meteen opgeslagen in het bijbehorende schema. Dit scheelt tijd - Een zoek engine is aan te spreken, waarmee op verschillende types gezocht kan worden, zoals op text en elementen - Tamino heeft standaard Xpath-based queries (X-Query) mogelijkheden in combinatie met een high speed indexing technologie - Multi-channel output formaat mogelijkheden, hierdoor is het mogelijk om device onafhankelijk te publiceren. Een paar voorbeelden zijn XML, HTML, WML, PDF formaten etc - Mogelijkheden tot uitbreiding, zowel nieuw uitgebrachte uitbreidingen als zelf ontwikkelde applicaties - Gebruik te maken van Tamino s X-Application. Dit is een applicatie, ontwikkelt door Tamino, die internetpagina s koppelt aan Tamino, zonder dat er enig vorm van programmering aan te pas komt. - Webdav (webbased distributed authoring and versioning) te gebruiken. Dit is een set van uitbreidingen van het http protocol, dat het makkelijk maakt om internetpagina s XML data te benaderen. DOM-Safe Versie: 2.0 Ontwikkelaar: Ellipsis Adres: Platformen: Windows Hardware: - Dom-Safe is een native XML database waarbij de XML-nodes opgeslagen zijn als onafhankelijke objecten. Hierdoor is een snelle low-level retrieval van informatie mogelijk. Versiebeheer en locking is geïmplementeerd op node level, waardoor het voor verschillende gebruikers mogelijk is om tegelijk aan hetzelfde document te werken. Het versiebeheer mechanisme houdt alle wijzigingen bij, waardoor DOM-Safe een geschikte XML database is voor document management. DOM-Safe ondersteund alle standaard XML technologieën zoals Xpath, Xlink, Sax2 en DOM level 2 interface.

113 e-xml Repository Versie: 1.3 Ontwikkelaar: e-xmlmedia Adres: Platformen: Windows (95, 98, 2000, NT), Unix Hardware: - e-xml Repository is een tool om XML documenten op te slaan en op te vragen in een relationele database. De database is krachtiger dan de standaard databases, omdat het SQL en XML Query (Xquery) combineert. XML. e-xml Repository heeft de volgende mogelijkheden: - Persistent storage in een relationele database - Efficiënte constructie van virtuele XML documenten dmv Xquery - Flexibiliteit van documenten geladen uit de database - Integratie van XML in een traditionele database. Socrates XML Versie: - Ontwikkelaar: Cincom Adres: Platformen: Windows NT/2000, Solaris 2.6 of hoger, HP-UX 11 of hoger Hardware: - Socrates XML manipuleert en slaat de XML inhoud op als Objecten in zijn eigen database of in een externe relationele database. De Query taal is gebaseerd op een extended SQL syntax. Hierdoor hebben gebruikers de mogelijkheid om ingewikkelde data op te vragen dmv een simpele query. GoXML Versie: 2.0 Ontwikkelaar: XML Global Technologies Adres: Platformen: Windows (NT, 2000, 98), Linux, Solaris Hardware: - GoXML is een native XML database met een high performance Query engine. XML documenten worden direct opgeslagen, waardoor het niet nodig is om te berekenen hoe de data opgeslagen wordt en hoe de data te decomposen. De volgende functies worden oa ondersteund door GoXML: - Xqeury functionaliteit - Full text zoekfuncties - Opslag en manipulatie van XML documenten - Dat uitwisselen tussen GoXML en relationele databases en XML based e-business applicaties.

114 Iore Versie: 5.0 Ontwikkelaar: Stanford University Adres: www-db.stanford.edu/lore/home/index.html Platformen: Solaris, Linux Hardware: - GMD-IPSI XQL engine Versie: Ontwikkelaar: GMD-IPSI Adres: xml.darmstadt.gmd.de/xql/index.html Platformen: Java Hardware: - Een op Java gebaseerd opslag en query applicatie voor grote XML documenten. De applicatie is te benaderen via een Java API of via de command prompt. De XQL query taal is on top of de persistent Dom geïmplementeerd. DB/XML Vision Versie: 2.1 Ontwikkelaar: DataMirror Corporation Adres: Platformen: Java Hardware: - Tool om relationele database data te converteren naat XML. Er bij inbegrepen is een treestructured query tool voor data retreival. Metabase Versie: Ontwikkelaar: Manual Lemos Adres: Platformen: - Hardware: - Metabase biedt een pakket met classes voor de PHP scripting taal aan, waardoor toegang en management van de XML database mogelijk is.

115 Merlin Server Versie: 1.0 Ontwikkelaar: Abriasoft Adres: Platformen: Windows (95, 98, ME, NT, 2000), Redhat Linux (6.x, 7.0) Hardware: - De Merlin server is een compleet webdevelopment en production server. Merlin Server verzorgt een robuuste omgeving voor interactieve database driven websites. De Merlin Server heeft de volgende mogelijkheden: - Abriasoft SSL uitgave van de Apache server - Ondersteuning van MySql en PostgreSQL database servers - Ondersteuning voor PHP en PERL - Een grafische ontwikkel omgeving met een open-source e-commerce software platform - Een op templates gebaseerd web portal en nieuws systeem - Alle onderdelen zijn zo geïmplementeerd dat er een naadloze ontwikkel omgeving mogelijk is. NeoCore XML Management System (XMS) Versie: 2.0 Ontwikkelaar: NeoCore Inc. Adres: Platformen: Windows (NT, 2000), Solaris 2.7 Hardware: - Een native XML database waarbij de nadruk ligt op het gebruik als web-server. Het ondersteund alle standaard database functies zoals storage, delete, copy, Xquery voor XML documenten, insert en modify. Specifiek voor NeoCore XMS zijn Xpaths based queries, access control, session control en GUI based administratie. Birdstep Database Engine Versie: 3.0 Ontwikkelaar: Birdstep technologies AS Adres: Platformen: Win32, WinCE/PocketPC, Linux/Unix, PalmOS Hardware: - Een kleine footprint database, voor mobiele en embedded systemen. Het ondersteund relationele, object georiënteerde en XML data models databases. XML documenten worden native opgeslagen.

116 IXIASOFT Content Server (TEXTML Server) Versie: 2.0 Ontwikkelaar: IXIASOFT Adres: Platformen: Windows (NT 4.0, 2000, XP) Hardware: 40 Mb schijfruimte, 128 Mb Ram, 200 Mhz. De TEXTML Server is een is een native XML document based server met als doel het opslaan, indexeren en ophalen (retreive) van grote hoeveelheden XML documenten. Goed geschikt voor het maken van een web-based XML document. Kenmerken van TEXTML: - Gebruikers kunnen de database raadplegen vanaf internet, intranet en wireless netwerken - Toepasbaar in zowel een Two-tier als een Multi-tier omgeving - Indexing. TEXTML wordt geleverd met oa de volgende tools: - Software Development Kit, een set tools om zelf uitbreidingen voor TEXTML te schrijven - Administration Console, een tool waarmee men diverse beveiligingen op bestanden aan kan brengen en op de server zelf - Sample Document Base, bevat standaard Stylesheets - Content Mover, Waarmee bestanden gemaakt in een vorige versie van TEXTML geüpdate kunnen worden Back-up base, een tool waarmee men de back-up processen van TEXTML kan regelen. dbxml Versie: 1.0 Ontwikkelaar: dbxml Group Adres: Platformen: Java Hardware: - Een database speciaal gemaakt voor opslag van collecties van XML documenten. Koppelen aan andere tools, configureren van de database en uitbreiden ervan zijn mogelijk. Uitgerust met de standaard mogelijkheden.

117 X-Hive/DB Versie: 2.0 Ontwikkelaar: X-Hive corporation Adres: Platformen: Windows 2000, Linux 6.1, Solaris 2.6, SUN Hardware: 300 Mb schijfruimte, 256 Mb Ram, JDK 1.3. X-Hive is een native XML database. De applicatie draait wel op Windows NT, maar het gebruik ervan op NT wordt niet aangeraden door X-Hive corporation. Dit omdat er nog niet getest is met het draaien van X-Hive op NT. Hieronder de kenmerken van X-Hive: - X-Hive database kan XML documenten opslaan, zoeken en ophalen op een scalable manier - De kern van de X-Hive technologie is het opslaan van XML documenten in de parsed vorm - Heeft een open standaard voor een makkelijk integratie met andere tools - X-Hive is nadrukkelijk gebouwd voor opslag van XML documenten, inclusief alle functies die het programma biedt - X-Hive maakt gebruik van de Xpath query taal - Dankzij de ingebouwde SQL Loader die gebruik maakt van JDBC, kan er data geïmporteerd worden uit een relationele database - Maakt gebruik van CCI (Context Conditioned Indexing), waardoor de gebruiker zelf snelkoppelingen kan maken naar de nodes die hij/zij het meest gebruikt. Andere vormen van ondersteunde indexing zijn Construct Indexing, Content Indexing en Full Text Indexing - Door middel van het gebruik van Xlink, kan men oa specifieke attributen, alle beschikbare links, alle nodes die gelinkt zijn naar een specifiek attribuut ophalen - XML Pointer Language (Xpointer) ondersteund het linken naar de interne structuur van een XML document - Toegang tot de kleinste delen van grote documenten - Beschikking tot een uitgebreide toolset - De laatste standaarden van de W3C zijn toegepast oa Namespaces, DOM Level 2, Xpath, Xpointer, Xlink, XSLT, XSL-FO, Xupdate en Xquery (Q2-2002) - Door Branching is het mogelijk om meerdere versies van documenten te beheren, hierdoor kan men oudere versies van documenten altijd oproepen - Opslaan van BLOB (Binary Large Objects) is mogelijk - WebDAV implementatie is toegestaan - Integreert makkelijk met verschillende Apache tools zoals XEP en Framemaker

118 XMLFolio Versie: 1.4 Ontwikkelaar: Pyrenean inc. Adres: Platformen: Windows 95, 98, Me, NT, 2000 Hardware: - Applicatie om ODBC database data te veranderen in het XML formaat. Infonyte Versie: Ontwikkelaar: Infonyte GmbH Adres: Platformen: Java Hardware: - Infonyte biedt een lichtgewicht oplossing aan voor querying en opslag van grote XML documenten. Het is gebasseerd op de PDOM engine en de XQL engine die de XQL 98 query language ondersteund. Opslag van Well formed XML documenten en een automatische indexing zijn aangeboden mogelijkheden binnen dit tool. ODBC2XML Versie: 2.01 Ontwikkelaar: Intelligent Systems Research Adres: Platformen: Windows 95, 98, NT Hardware: - ODBC2XML importeert data van elke willekeurige ODBC data source naar XML documenten. Het accepteert well-formed XML template files. En genereert well-formed XML files met als inhoud de data uit de ODBC gecombineerd met XML text. Oracle XSQL servlet Versie: Ontwikkelaar: Oracle Adres: technet.oracle.com/tech/xml/xsql_servlet/ Platformen: Java Hardware: - Deze database maakt gebruik van de XSQL Page Processor om dynamische XML documenten te genereren in de database. In plaats van een GUI, kan de Oracle command line gebruikt worden. Oracle XSQL servlet ondersteund XML 1.0, DOM level 1, XSLT 1.0 en Namespaces.

119 EXtensible Information Server (XIS) Versie: 3.1 Ontwikkelaar: Excelon Corporation Adres: Platformen: Windows (NT, 2000, XP), Sun Solaris 2.7 Hardware: 280 Mb schijfruimte, 500Mhz, JDK 1.3. Een native XML database management system (xdbms). (Voorheen was de productnaam Excelon Portal Server). Kenmerken van XIS: - Gebruikt de DOM voor opslag - Standaard access, search en update mogelijkheden - Extensible - XML zonder DTD of Schema wordt geaccepteerd en kan worden geparsed, opgeslagen en managed zonder het te behandelen als een BLOB - Opties aangepast aan standaard conform de W3C, waaronder Xpath, XSLT, Dom level 1 en 2. - Efficiënte data access door scalability - Invoer van niet XML documenten, zoals word en html documenten is mogelijk dankzij de Content Extractor, waarna opslag in XML mogelijk is - Query support voor Xquery en Xpath - Indexing mogelijk tot op element niveau - Mogelijkheid tot bouwen van procedures en triggers - XIS kan samenwerken met andere java-based tools - Administratie transactie controle - Support voor JDK 1.3en JCA - XA transacties - Embedded XSLT processor. XIS heeft de beschikking tot de volgende visuele tools: - Stylus Studio, een WYSIWYG editor voor het maken van XML, XSLT stylesheets en DTD s, met ingebouwde debugger - Update en Query, voor het creëren en uitvoeren van query en update expressies - Cache Configuration, voor het toevoegen en/of aanpassen van cache processen - Storage Manager, waardoor men makkelijk online backups, repositories, offline replications en grote hoeveelheden XML data kan managen.

120 XML-Content Managers Icoya. Versie: 2.1 Ontwikkelaar: struktur AG Adres: Platformen: Java, Windows, Linux. Icoya biedt een krachtig en flexibel content management systeem voor het managen en publiceren van XML based data. De gebruikersvriendelijkheid van de content manager stond tijdens de ontwikkelfase hoog in het vaandel. Alle documenten worden in XML formaat opgeslagen. Output in andere formaten is mogelijk, bijv. PDF, MS Word of HTTP. De technische basis is een open source platform genaamd ZOPE. Omdat het open-sourcedis, zijn er wereldwijd verschillende add-ons te verkrijgen. Ook worden er hierdoor steeds weer nieuwere add-ons ontwikkelt. Ook de service staat hoog in het vaandel. De installatie met de gewenste aanpassingen en integratie ervan met andere tools regelt het bedrijf. Ook traint men desgewenst de medewerkers en biedt men support op alle niveaus. Er worden standaard twee producten meegeleverd met het pakket. Icoya WordXML, een tool waarmee makkelijk gewerkt kan worden met MSWord formaten als input en output.. Icoya PDF Publisher, Een tool waarmee men complexe PFD documenten kan maken, met XML als basis.

121 SIM (Structured Information Manager) Versie: 3.0 Ontwikkelaar: RMIT Multimedia Information Systems Adres: Platformen: Windows NT, Unix, Solaris. Een op SGML/XML gebaseerd content management systeem. Richt zich op het opslaan en retreiven van gestructureerde informatie in veel standaard formaten zoals SGML, XML, HTML, RTF en MARC. De SIM kan als stand alone draaien en als deel van een geïntegreerde applicatie. De key features zijn: - Standards based, verzekering dat de data hergebruikt kan worden en makkelijk te transformeren is naar andere output formaten - Flexibel, dit wil zeggen dat de SIM een heleboel applicaties ondersteund en mee kan samenwerken - Hoge performance, Sim kan honderdduizenden gebruikers tegelijk behandelen. Door het gebruik van indexing, kan makkelijk omgaan met databases van enkele gigabytes - Hoge mate van aanpasbaarheid, enkele voorbeelden. Complexe indexing, aanpasbare down to word parsing rules, extensive SGML/XML support, field level security. - Index Technologie, met als doel, high performance indexing, geoptimaliseerd voor zoekfuncties, maakt gebruik van background maintenance en updates - Zoek functies, ondersteund de volgende functies Cross database searches, gebruik van boolean operators, ranking searches, zoeken op grammaticale structuur en combinaties van al het genoemde. CMS Versie: 3.0 Ontwikkelaar: Sörman Adres: Platformen: Windows (95, 98, NT 4.0), Solaris en HP-UX. SGML/XML systeem voor component-level content management. Dit systeem is flexibel genoeg om meerdere DTD s, datatypen, applicaties, custom interfaces, legacy systems (eerste generatie DBMS) en best of breed tools te hanteren. Voorheen heette dit systeem POET CMS. De documenten worden in XML opgeslagen, hierdoor blijft de structuur onaangetast en zijn er meerdere output formaten mogelijk. CMS ondersteund meerdere talen.

122 Engenda Versie: 4.7 Ontwikkelaar: ebt Adres: Platformen: Windows NT 4.0 (SP6a), Windows 2000 en Solaris 2.7 en 2.8. XML-enabled content management en workflow systeem. Heeft een MS Word en een MS Visio naar XML conversie tool, een open standard-based aanpasbare architectuur. Biedt een simpele manier om XML en HTML documenten via forms of templates te converteren naar XML en of HTML. De tool is benaderbaar vanaf elke locatie, dmv een browser-based interface. SiberSafe XML Author Versie: 2.2 Ontwikkelaar: SiberLogic inc. Adres: Platformen: Windows en Java. Een compleet XML content management systeem waarbij gebruikers zelf kunnen bepalen hoe XML documenten en Java files worden opgeslagen. DOCBOOK en OEB XML documenten kunnen in de SiberSafe Repository hiërarchisch en als gestructureerde elementen worden opgeslagen. Op deze documenten kan vervolgens versiecontrole, locking, en onafhankelijke retrieving worden toegepast. Om verschillende documenten met elkaar te vergelijken, maakt SiberSafe gebruik van SiberMerge, een speciaal hiervoor ontwikkelde tool. SiberSafe ondersteund XSLT en workflow functionaliteit. Ook is het mogelijk om verouderde versies van documenten te benaderen en om verschillende versies van documenten met elkaar te vergelijken op lay-out. Entities kunnen met dit tool bewerkt worden in een geheel document en puur al een entity. Ook kan men via de zoekfunctie zoeken op keyword, phrase, author, datum, atribuut en entities. De beschikbare entities worden alfabetisch opgeslagen en zijn zo makkelijk te bekijken. De XML documenten kunnen getransformeerd worden naar o.a. PDF, HTML, TEX, RTF en PS. Tridion DialogServer Versie: 4.4 Ontwikkelaar: Tridion Adres: Platformen: Windows (NT 4.0, 2000), UNIX. Een op XML standaarden gebaseerd content management systeem. Te gebruiken voor content creation, management, assembly en content presentation. Tridion DialogServer is een pakket dat XML-based content lifecycle management, Blueprinting, personalised content delivery en multi channel publishing biedt.

123 Astoria Versie: 3.6 Ontwikkelaar: Chrystal Software Adres: Platformen: Windows NT, Solaris 2.6, 2.7. Een content management systeem voor het maken en managen van SGML en XML documenten. De volgende opties zijn in de tool opgenomen: - access control - gedetailleerd versiebeheer - informatie recycling - een open API. Astoria kan goed omgaan met graphics, illustraties, tabellen, MSWord, spreadsheets en andere formaten. Output mogelijk naar veel verschillende document formaten. Ondersteuning van verschillende talen. De installatie van Astoria geschiedt snel en het heeft weinig onderhoud nodig. Astoria kan makkelijk worden benaderd vanaf de gebruikers favoriete editing tool. Beschikt over een flexibele zoekfunctie waarmee onder andere gezocht kan worden naar full text en keywords. Ook wordt er bijgehouden wie welke verandering maakt in welk document en wanneer. Astoria slaat documenten op in XML, deze worden dan onderverdeeld in gedeelten, waardoor het mogelijk is om makkelijk te zoeken, simultaan een document te bewerken en om rechten te geven op bepaalde delen van een document.

124 Versie: 3.0 Ontwikkelaar: XyEnterprise Adres: Platformen: Windows NT, UNIX en IBM AIX. Content en documenten management systeem, dat gestructureerde en ongestructureerde data managed in een gestructureerde omgeving. flexibele workflow omgeving. beheerd gestructureerde XML data en kan samenwerken met andere leading XML editors. Key features: - Het biedt ook een data management support voor graphics, text, audio en visuele bestanden - Een import functie vanuit Word naar Content@ is aanwezig, zodat documenten uit Word direct naar XML getransformeerd kunnen worden - Content@ managed metadata, maar ook graphics, spreadsheets, audio en video componenten, tevens is het mogelijk om dmv de ingebouwde zoekengine te zoeken naar dit soort documenten - Een andere mogelijkheid van Content@ is het maken van rapporten over inhoud, documentenstatus en gebruikers, zodat bijgehouden wordt wie waar aan werkt en wat er aan welke documenten is aangepast en wanneer - Content@ is gebaseerd op een open API, waardoor het makkelijk integreert met andere applicaties - Import van andere document formaten is mogelijk - Aanpasbare GUI - Standaard integratie met editors zoals Word, FrameMaker+SGML, EPIC, XMETAL en WORX - Output naar verschillende formaten zoals PDF en HTML. XMLcmNOW Versie: 0.21 Ontwikkelaar: Norbert Frese Adres: Platformen: Java. Een makkelijk te hanteren content management systeem gebaseerd op de SGML/XML technologie. De client-side XMLcmNOW software pikt de informatie van de webserver op via FTP, laadt de XML in een editor en genereert HTML m.b.v. XSLT en stuurt alles weer terug naar de webserver.

125 Vasont Versie: 7 Ontwikkelaar: Progressive Information Technologies Adres: Platformen: Oracle server, Windows of web browser cliënt. Voorheen heette Vasont Target2000, maar vanaf versie 7 heeft men de naam veranderd. Vasont is een XML content management systeem. Werkt goed met een object georiënteerde relationele database. Mogelijkheden zijn management, processing, versiebeheer en hergebruik van inhoud van multimedia facetten. Integreert met editors zoals Xmetal, EPIC, Framemaker, 3B2 en andere. Er wordt gebruik gemaakt van de Tag Neutral Technology, deze technologie zorgt ervoor dat tags en inhoud apart opgeslagen worden. Hierdoor is Vasont makkelijk te integreren met de huidige en toekomstige technologieën. Vasont is makkelijk in gebruik, drag and drop en check in check out mogelijkheid. De inhoud is aanpasbaar aan elk soort media of markup language. B-Bop Xfinity XML Server Versie: 2.0 Ontwikkelaar: B-Bop Associates inc. Adres: Platformen: OS: Windows NT 4.0, Solaris (2.5, 2.6, 2.7); DB: Oracle 8, SQL-server 7. Native XML data en document management systeem. Wordt geleverd met een eigen standaard XML database. Biedt integratie met andere tools zoals MS Office, management van dynamische data, XSLT en rendering engine en kan documenten automatische verzenden via het internet, en FTP. Key features: - Geoptimaliseerde storage en retreival van XML documenten - Precieze zoek en querry functie. Met querries kan men in meerdere XMl documenten zoeken. Men kan zoeken op data en structuur, zowel op documenten met en zonder een DTD - Dynamische transformatie van XML naar andere formaten. Deze output kan uit verschillende onderdelen bestaan, afkomstig van verschillende documenten - Onafhankelijk van schema s en DTD s - Opslag van elk well-formed XML documents - Support voor SAX en DOM level 2 API s - Data en transactie integriteit dmv locking en rollback - Automatisch caching van stylesheets en inhoud Systeemeisen zijn, minimaal 128 Mb Ram en 20 MB schijfruimte en Sun SDK 1.2.2

126 Visual Net Server (VNS) Versie: 4.0 Ontwikkelaar: CNET Sweden Adres: Platformen: Windows (NT, 2000), MSXML 4.0. Een server en geïntegreerde omgeving voor XML content publishing, en syndication publishing applicaties. De key features zijn: - Import van oa XML, XHTML, HTML, SQL, Excel, Word, PDF, flat files, file-, ftp en mail directories, HTTP en Unicode documenten naar XML en andersom. Zowel voor PC als Mac. - Integratie van data van verschillende bronnen - Cross media publishing - Goede performance dankzij cache technologie - Volledige ondersteuning voor XML en gerelateerde standaarden zoals SOAP en XML Schema - Overzichtelijke GUI - XSLT - Copieren van XML elementen naar andere XML documenten - Integreren met veel XML editors Rhythmyx Versie: 3.0 Ontwikkelaar: Percussion Adres: Platformen: Windows (NT, 2000), Solaris. Een native XML content manager, dat content publishing naar web sites heeft geautomatiseerd. Elk gedeelte van die site, gemanaged door Rhythmyx is gedefinieerd door een set met XML content elementen, genaamd recources. De inhoud van die recources kunnen vanuit verschillende bronnen komen, zoals auteurs, databases, repositories en externe data files. Rhythmyx kan allerlei formaten opslaan en XML in allerlei formaten als output geven. Hiervoor wordt de XSLT gebruikt. Ondersteunde output formaten zijn o.a. HTML, WML en XML dialecten. Mogelijkheid om MSWord documenten direct vanuit MSWord te bewaren in Rhythmyx. Sigmalink Versie: 1.1 Ontwikkelaar: Empolis Content Management GmbH Adres: Platformen: -. Document management systeem met SGML/XML support. Gebaseerd op relationele databases. Biedt oa versiebeheer, workflow en FOSI aan.

127 XML Canon Versie: 1.2 Ontwikkelaar: TIBCO Software Inc. Adres: Platformen: Windows (NT SP6a, 2000), Unix. Een XML repository voor XML schema s, DTD s, documenten, style sheets en verschillende files die hiermee geassocieerd worden. Te gebruiken als een ontwikkel omgeving voor elk XML of non-xml document, te gebruiken voor implementatie van XML binnen een organisatie. Deze internet-enabled server, biedt versiecontrole en management. Expressroom Versie: 6.3 Ontwikkelaar: Starbase Corporation Adres: Platformen: Java. Content management platform gemaakt voor het maken, beheren en uitvoeren van web content. Men kan makkelijk web pagina s maken dmv een gui interface en dynamische XML templates. Files zoals text, foto s. video en audio worden opgeslagen als XML objecten en daardoor makkelijk te managen. Roxen Versie: 2.2 Ontwikkelaar: Roxen Internet Software Adres: Platformen: Windows (NT, 2000), Solaris, LINUX. Een op Java gebaseerd content management systeem met support voor XML en XSLT.

128 Indusa Content Manager Versie: - Ontwikkelaar: Indusa Technical Corporation Adres: Platformen: Platform onafhankelijk. De op XML gebaseerde Indusa content manager focust op gebieden waar de inhoud van documenten dynamisch is, maar de structuur nooit veranderd. Indusa CM heeft drie belangrijke kenmerken: - XML Content Extractor, voor het transformeren van XML documenten naar andere output formaten zoals MSWord, HTML, PDF etc - XML Content Generator, hierdoor kan men verschillende input formaten zoals MSWord, HTML, PDF etc transformeren naar XML. - XML Content Maintenance, een onderhoud tool, dat zich voornamelijk richt op achtergrond onderhoudtaken, zodat het geheugen van de computer optimaal blijft wat een snellere interactie tussen de gebruiker en de computer betekent. Er is een ingebouwde GUI, hierdoor kan de gebruiker makkelijk met de verschillende tools omgaan. Een ander punt van Indusa is dat het multilanguage translation ondersteund. Makkelijk voor bedrijven die documenten in verschillende talen moeten produceren. Ook is Indusa compatible met andere programma s. Omdat Indusa is ontwikkelt met Java is het platform onafhankelijk. Om het te instaleren dient men minimaal over het volgende te beschikken: 1 Mb schijfruimte, 64 Mb Ram en 233 Mhz. Stellent Content Mangement System Versie: 5.1 Ontwikkelaar: Stellent Adres: Platformen: Windows (NT 4.0, 2000) Linux 6.2, HP-UX 11, IBM AIX Stellent is een content manager met de mogelijkheid om meer dan 225 verschillende soorten documenten te converteren van en naar o.a. XML, HTML, WML, MS word, Excel en PowerPoint, visio en PDF. De key benefits van Stellent zijn: - Makkelijk in gebruik, doordat Stellent server-based is en geen client software vereist - Integratie met andere applicaties - Scalability - Content Management sollution, waardoor de gebruiker beschikking heeft tot content contribution, editing en management. Ondersteund enterprise-level web-development - Versiebeheer met check-in en check-out mogelijkheid - Multi language support, Engels, Duits en Frans

129 Apache Cocoon Versie: Ontwikkelaar: Apache Adres: Platformen: - Apache Cocoon is een XML publishing framework dat interactie onderhoudt met filesystems zoals RDBMS, LDAP en native XML databases. Converteren van en naar oa XML, HTML, WML, PDF, en RTF. De tool is zo ontwikkeld dat het weinig geheugen in beslag neemt en een hoge schaalbaarheid heeft. Ook maakt het gebruik van caching.

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : [email protected] www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

Zelftest XML Concepten

Zelftest XML Concepten Zelftest XML Concepten Document: n1035test.fm 18/02/2010 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING Om een idee te hebben van wat we verwachten als voorkennis

Nadere informatie

Technisch Ontwerp W e b s i t e W O S I

Technisch Ontwerp W e b s i t e W O S I Technisch Ontwerp W e b s i t e W O S I WOSI Ruud Jungbacker en Michael de Vries - Technisch ontwerp Website Document historie Versie(s) Versie Datum Status Omschrijving / wijzigingen 0.1 20 nov 2008 Concept

Nadere informatie

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Wat is een database? Een verzameling van georganiseerde data Een database bestaat uit applicaties, SQL en het DBMS Watis eendbms? EenDBMS

Nadere informatie

Databases - Inleiding

Databases - Inleiding Databases Databases - Inleiding Een database is een verzameling van een aantal gegevens over een bepaald onderwerp: een ledenbestand van een vereniging, een forum, login gegevens. In een database worden

Nadere informatie

Koppeling met een database

Koppeling met een database PHP en MySQL Koppeling met een database 11.1 Inleiding In PHP is het eenvoudig om een koppeling te maken met een database. Een database kan diverse gegevens bewaren die met PHP aangeroepen en/of bewerkt

Nadere informatie

NHibernate als ORM oplossing

NHibernate als ORM oplossing NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een

Nadere informatie

Les 2 Eenvoudige queries

Les 2 Eenvoudige queries Les 2 Eenvoudige queries XAMP Apache server ( http ) mysql server PHP myadmin IAM SQL oefeningen Database phpmyadmin Import : sql_producten.sql, sql_winkel.sql, sql_festival.sql SAMS SQL in 10 minuten

Nadere informatie

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous 2006-2007 Inhoudsopgave 1 2 1.1 Programmeertaal PHP5..................... 2 1.2 MySQL database......................... 3 1.3 Adobe Flash...........................

Nadere informatie

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd. SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Relationele databases

Nadere informatie

ETIM UP Handleiding Ketenstandaard Bouw en Installatie Versie:

ETIM UP Handleiding Ketenstandaard Bouw en Installatie Versie: ETIM UP Handleiding Ketenstandaard Bouw en Installatie Versie: 25-07-17 Handleiding ETIM UP 1 Inhoudsopgave Over ETIM UP...3 1 Algemeen...4 1.1 Website...4 1.2 Toegang...4 1.3 Bestandsformaten...4 2 Dashboard...5

Nadere informatie

Datamodelleren en databases 2011

Datamodelleren en databases 2011 Datamodelleren en databases 21 Capita selecta 1 In dit college Modelleren Normaliseren Functionele afhankelijkheid 1-3N M:N-relaties, associatieve entiteittypes, ternaire relaties Weak entiteittypes Multivalued

Nadere informatie

Informatie & Databases

Informatie & Databases Informatie Wat is informatie en waaruit het bestaat? Stel op een kaart staat het getal 37 geschreven. Wat kun je dan zeggen van het cijfer 37? Niets bijzonders, toch? Alleen dat het een getal is. Gaat

Nadere informatie

We moeten de accommodaties selecteren die 3 sterren hebben, en in land met ID 10 zitten.

We moeten de accommodaties selecteren die 3 sterren hebben, en in land met ID 10 zitten. MySQL talk Trage website? Het optimaliseren van een bestaande website die een MySQL database heeft is niet altijd even makkelijk. Het probleem kan namelijk op veel verschillende plekken zitten: de database

Nadere informatie

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003 Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003 Page 1 1 Kees Vianen Senior Sales Consultant Technology Solutions Oracle Nederland Agenda Geschiedenis van Oracle Portal Portal

Nadere informatie

Flexibiliteit en Duurzaamheid: Teksttechnologie en Museumdocumentatie

Flexibiliteit en Duurzaamheid: Teksttechnologie en Museumdocumentatie Flexibiliteit en Duurzaamheid: Teksttechnologie en Museumdocumentatie Spectrum in een nieuw jasje Edward Vanhoutte & Ron Van den Branden Centrum voor Teksteditie en Bronnenstudie Koninklijke Academie voor

Nadere informatie

Kennissessie INSPIRE. Algemene vereisten & architectuur Metadata View Services Download Services Ondersteuning vanuit Geonovum.

Kennissessie INSPIRE. Algemene vereisten & architectuur Metadata View Services Download Services Ondersteuning vanuit Geonovum. Kennissessie Algemene vereisten & architectuur Metadata View Services Download Services Ondersteuning vanuit Geonovum Thijs Brentjens Inhoud Download Services Pre-defined datasets via Atom feeds Pre-defined

Nadere informatie

Thinking of development

Thinking of development Thinking of development Databases Arjan Scherpenisse HKU / Miraclethings Agenda voor vandaag Opdracht tussenstand State diagram / Observer pattern Bret Victor Databases 2/42 Opdracht tussenstand Slides

Nadere informatie

Technische nota AbiFire Rapporten maken via ODBC

Technische nota AbiFire Rapporten maken via ODBC Technische nota AbiFire Rapporten maken via ODBC Laatste revisie: 23 januari 2018 Inhoudsopgave 1 Inleiding... 2 2 Systeeminstellingen in AbiFire... 3 2.1 Aanmaken extern profiel... 3 2.2 Toewijzing extern

Nadere informatie

Standard Parts Installatie Solid Edge ST3

Standard Parts Installatie Solid Edge ST3 Hamersveldseweg 65-1b 3833 GL LEUSDEN 033-457 33 22 033-457 33 25 [email protected] www.caap.nl Bank (Rabo): 10.54.52.173 KvK Utrecht: 32075127 BTW: 8081.46.543.B.01 Standard Parts Installatie Solid Edge ST3

Nadere informatie

APEX en JasperReports

APEX en JasperReports APEX en JasperReports een Dream Team! Spreker(s) : Datum : E-mail : Vincent Deelen 28 mei 2013 [email protected] WWW.TRANSFER-SOLUTIONS.COM Outline APEX en rapporten Oracle BI publisher

Nadere informatie

Technische nota AbiFire5 Rapporten maken via ODBC

Technische nota AbiFire5 Rapporten maken via ODBC Technische nota AbiFire5 Rapporten maken via ODBC Laatste revisie: 29 juli 2009 Inhoudsopgave Inleiding... 2 1 Installatie ODBC driver... 2 2 Systeeminstellingen in AbiFire5... 3 2.1 Aanmaken extern profiel...

Nadere informatie

ContentQueryWebpart en custom XSLT. Alles wat je moet weten over het CQW

ContentQueryWebpart en custom XSLT. Alles wat je moet weten over het CQW ContentQueryWebpart en custom XSLT Alles wat je moet weten over het CQW 1 Contents Voorkennis... 3 Het CQW volgens Microsoft... 3 Algemene werking van het CQW... 3 Het werken met slots... 4 DataMappings...

Nadere informatie

DataFlex 19.0 SQL Server

DataFlex 19.0 SQL Server Connections to SQL Server 1 Agenda Connecties Aanpassingen in applicaties 2 Connecties Kort overzicht 3 SQL manier Connectie maken met een server (login) Connectie stelt je in staat om tabellen in een

Nadere informatie

Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 11 juli 2017 Linux User Group Nijmegen

Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 11 juli 2017 Linux User Group Nijmegen Elastic Search wat heb je aan data als je er niets mee doet.. Oscar Buse 11 juli 2017 Linux User Group Nijmegen Inleiding Dit praatje gaat over Elasticsearch. De onderwerpen die aan bod komen: Wat is Elasticsearch?

Nadere informatie

Zonnepanelen Hoe krijg je de data op je website?

Zonnepanelen Hoe krijg je de data op je website? Zonnepanelen Hoe krijg je de data op je website? Beste website-bezoeker, Omdat ik al heel wat vragen kreeg over het gedeelte zonne-energie op mijn website, heb ik besloten om de werkwijze die ik gevolgd

Nadere informatie

Functionele beschrijving: scannen naar Exact Globe.

Functionele beschrijving: scannen naar Exact Globe. Functionele beschrijving: scannen naar Exact Globe. Algemeen Met de KYOCERA scannen naar Exact Globe beschikt u over een efficiënte oplossing om uw documenten te scannen naar Exact Globe. Met deze oplossing

Nadere informatie

Zelftest Informatica-terminologie

Zelftest Informatica-terminologie Zelftest Informatica-terminologie Document: n0947test.fm 01/07/2015 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTIE Deze test is een zelf-test, waarmee u

Nadere informatie

SQL & Datamodelleren

SQL & Datamodelleren SQL & Datamodelleren HVA-CMD-V1-datamodelleren Algemene handleiding bij het lesprogramma 2012-2013 Inhoud Inhoud... 2 Inleiding... 3 Leerdoelen:... 3 Plaats in het leerplan:... 3 Werkwijze:... 3 Lesstof:...

Nadere informatie

Gebruikers handleiding. Lizard Configuration Manager ToolTip. Installatie. Instellen. Initieel instellen

Gebruikers handleiding. Lizard Configuration Manager ToolTip. Installatie. Instellen. Initieel instellen Gebruikers handleiding Lizard Configuration Manager ToolTip Installatie Installeer eerst het volgende: Installeer python 2.5.2; zie de map Breda\Tooltip\lcm\install\python-2.5.2.msi Ga naar dos (run/uitvoeren

Nadere informatie

Business Workflow innovaties in SAP S/4 HANA

Business Workflow innovaties in SAP S/4 HANA Business Workflow innovaties in SAP S/4 HANA Op dit moment vindt er wereldwijd een technologie gebaseerde bedrijfsrevolutie plaats die op het eerste gezicht geen grenzen kent. Met zeer grote snelheid worden

Nadere informatie

MA!N Rapportages en Analyses

MA!N Rapportages en Analyses MA!N Rapportages en Analyses Auteur Versie CE-iT 1.2 Inhoud 1 Inleiding... 3 2 Microsoft Excel Pivot analyses... 4 2.1 Verbinding met database... 4 2.2 Data analyseren... 5 2.3 Analyses verversen... 6

Nadere informatie

1. * Database worden vaak gebruikt in Client-Server architectuur.

1. * Database worden vaak gebruikt in Client-Server architectuur. Naam Studentnummer Klas Herkansing [ ] ja, nee [ ], zoja uit welk jaar? kernbegrippen relationele database Minimaal drie van de vijf vragen goed beantwoorden. 1. * Database worden vaak gebruikt in Client-Server

Nadere informatie

Acht stappen voor JSF

Acht stappen voor JSF Acht stappen voor JSF Inleiding In deze tutorial zullen we JSF (Java server faces) installeren. Wat we niet beschrijven is hoe te werken met JSF, over dit onderwerp zijn er genoeg boeken en internetsites

Nadere informatie

Multi user Setup. Firebird database op een windows (server)

Multi user Setup. Firebird database op een windows (server) Multi user Setup Firebird database op een windows (server) Inhoudsopgave osfinancials multi user setup...3 Installeeren van de firebird database...3 Testing van de connectie met FlameRobin...5 Instellen

Nadere informatie

XML Introductie. [email protected] http://www.cs.kuleuven.be/~joost

XML Introductie. joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost XML Introductie [email protected] http://www.cs.kuleuven.be/~joost extensible Markup Language Aanbrengen van extra informatie in tekst Betekenis van de tekst beschrijven Uitbreidbaar: afhankelijk

Nadere informatie

De voordelen van Drupal

De voordelen van Drupal Drupal is een open source Content Management System (CMS). Daarnaast kun je Drupal zien als een framework, dit betekent dat je modules (oftewel mini-applicaties) kunt implementeren in je installatie van

Nadere informatie

Van Big Data tot waardevolle informatie op maat van de (interne)gebruiker en de burger

Van Big Data tot waardevolle informatie op maat van de (interne)gebruiker en de burger Van Big Data tot waardevolle informatie op maat van de (interne)gebruiker en de burger Tijdens deze sessie krijgt u een inzicht in een specifieke visie over hoe men op basis van grote hoeveelheden ongestructureerde

Nadere informatie

Functionele beschrijving: scannen naar van Brug software.

Functionele beschrijving: scannen naar van Brug software. Functionele beschrijving: scannen naar van Brug software. Algemeen Met de KYOCERA scannen naar van Brug Software beschikt u over een efficiënte oplossing om uw documenten te scannen naar het Notarieel

Nadere informatie

Technisch Rapport. BAG Extract in i-bridge2.0. Versie 1.0. Datum 9 December 2010

Technisch Rapport. BAG Extract in i-bridge2.0. Versie 1.0. Datum 9 December 2010 Technisch Rapport BAG Extract in i-bridge2.0 Versie 1.0 Datum 9 December 2010 Status Final Colofon IVENT A&A CDC Madame Curielaan 4-6 Postbus 20703 2289 CA Rijswijk Contactpersoon Patrick Brooijmans Teamleider

Nadere informatie

ADVANCED DATABASES Syllabus versie 2.0

ADVANCED DATABASES Syllabus versie 2.0 ECDL-MODULE ADVANCED DATABASES Syllabus versie 2.0 Doel Dit document bevat de syllabus van de module Advanced Databases. In de syllabus worden aan de hand van leeruitkomsten de kennis en vaardigheden uiteengezet

Nadere informatie

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober 2010. A. Snippe ICT Lyceum 1

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober 2010. A. Snippe ICT Lyceum 1 Workshop 3x Analytisch vermogen Huiswerk Lestijden 10:00 12:30 Pauze 10:15 10:30 Deze les: Hiëarchische database Relationele database ODBMS Normaliseer stappen Hiëarchische database Elk record in een database

Nadere informatie

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster 4. 4. Inhoud rste BAC Toegepaste Biologische Wetenschappen Hoofdstuk 4 Databank Terminologie, Navigeren, Importeren Tabellen Records/Velden manipuleren Queries (Vragen) [Ook in SQL] sorteren filter volgens

Nadere informatie

ASRemote WebService. Via deze webservice kunt u:

ASRemote WebService. Via deze webservice kunt u: ASRemote WebService De ASRemote WebService is een SOAP Webservice die softwarematige communicatie met Exact Globe mogelijk maakt vanaf een willekeurige locatie op het internet. Via deze webservice kunt

Nadere informatie

Zo kan je linken maken tussen je verschillende groepen van gegevens.

Zo kan je linken maken tussen je verschillende groepen van gegevens. 1 1. Entity Reference Entity Reference zal ook een onderdeel zijn van Drupal 8. Het is een module van het type veld. Het is een heel krachtige module die toelaat om referenties te maken tussen verschillende

Nadere informatie

EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE

EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE The European Computer Driving Licence Foundation Ltd. Portview House Thorncastle Street Dublin 4 Ierland Tel: + 353 1 630

Nadere informatie

Een website maken met databasetoegang.

Een website maken met databasetoegang. Hoofdstuk 5 Een website maken met databasetoegang. In dit hoofdstuk gaan we het weblog dat je in hoofdstuk 4 hebt gemaakt verder uitbreiden. Een belangrijk onderdeel wordt toegevoegd aan de applicatie,

Nadere informatie

De plug-in is heel eenvoudig te installeren met een setup-programma. Waarna je een aantal menu opties in het tools menu er bij krijgt.

De plug-in is heel eenvoudig te installeren met een setup-programma. Waarna je een aantal menu opties in het tools menu er bij krijgt. Plsqldoc Genereer je documentatie Beeklaan 444 2562 BK Den Haag www.darwin-it.nl [email protected] KvK 27283780 ING 65.35.40.663 Technical Architect Net als (vrijwel) elke ontwikkelaar vind ik het documenteren

Nadere informatie

WWW.EMINENT-ONLINE.COM

WWW.EMINENT-ONLINE.COM WWW.EMINENT-OINE.COM HNDLEIDING USERS MNUL EM1016 HNDLEIDING EM1016 USB NR SERIEEL CONVERTER INHOUDSOPGVE: PGIN 1.0 Introductie.... 2 1.1 Functies en kenmerken.... 2 1.2 Inhoud van de verpakking.... 2

Nadere informatie

Functionele beschrijving: scannen naar UNIT4 DocumentManager

Functionele beschrijving: scannen naar UNIT4 DocumentManager Functionele beschrijving: scannen naar UNIT4 DocumentManager Algemeen Met de KYOCERA Scannen naar UNIT4 DocumentManager beschikt u over een efficiënte oplossing om uw documenten te scannen naar UNIT4 DocumentManager

Nadere informatie

DB architectuur. [email protected]

DB architectuur. joost.vennekens@denayer.wenk.be DB architectuur [email protected] DB - logisch perspectief - DB - fysisch perspectief - DBMS Fysische details van databank beheren Zodat gebruiker zich enkel om logische perspectief moet

Nadere informatie

Zelftest Java EE Architectuur

Zelftest Java EE Architectuur Zelftest Java EE Architectuur Document: n1218test.fm 22/03/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST JAVA EE ARCHITECTUUR Nota:

Nadere informatie

WFS 3.0 De geo-api van de toekomst. Linda van den Brink, Geonovum 13 februari #DataToBuildOn

WFS 3.0 De geo-api van de toekomst. Linda van den Brink, Geonovum 13 februari #DataToBuildOn WFS 3.0 De geo-api van de toekomst Linda van den Brink, Geonovum 13 februari 2019 @brinkwoman #DataToBuildOn Eerste versie uit 2002 https://nl.wikipedia.org/wiki/web_feature_service Web Feature Service

Nadere informatie

Documenten in en uit Apex

Documenten in en uit Apex Documenten in en uit Apex Hoe om te gaan met documenten en Oracle Apex Dick Dral, Detora Even voorstellen Oracle sinds 1988 (Ministerie van LNV) HTML sinds 1995 Oracle Webtoolkit sinds 1998 Apex sinds

Nadere informatie

ICARUS Illumina E653BK on Windows 8 (upgraded) how to install USB drivers

ICARUS Illumina E653BK on Windows 8 (upgraded) how to install USB drivers ICARUS Illumina E653BK on Windows 8 (upgraded) how to install USB drivers English Instructions Windows 8 out-of-the-box supports the ICARUS Illumina (E653) e-reader. However, when users upgrade their Windows

Nadere informatie

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat: Training Trainingscode Duur Gepubliceerd Taal Type Leermethode Kosten SF2015V8 4 dagen 02/02/2015 Nederlands & Engels Developer, basis Invidueel & klassikaal Op aanvraag Deze training richt zich op het

Nadere informatie

Organiseer uw verschillende SOAP services in één scenario

Organiseer uw verschillende SOAP services in één scenario 1 Organiseer uw verschillende SOAP services in één scenario Wouter Luijten [email protected] 2 Introductie Tijdens de implementatie van een proces heeft u vaak te maken met een veelvoud aan services.

Nadere informatie

Relationele Databases 2002/2003

Relationele Databases 2002/2003 1 Relationele Databases 2002/2003 Hoorcollege 3 24 april 2003 Jaap Kamps & Maarten de Rijke April Juli 2003 Plan voor Vandaag Praktische dingen 2.1, 2.3, 2.6 (alleen voor 2.2 en 2.3), 2.9, 2.10, 2.11,

Nadere informatie

Application interface. service. Application function / interaction

Application interface. service. Application function / interaction Les 5 Het belangrijkste structurele concept in de applicatielaag is de applicatiecomponent. Dit concept wordt gebruikt om elke structurele entiteit in de applicatielaag te modelleren: softwarecomponenten

Nadere informatie

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen. SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Op dit moment gebruiken

Nadere informatie

Installatie SQL Server 2014

Installatie SQL Server 2014 Installatie SQL Server 2014 Download de SQL Server Express net advanced Services van de website: https://www.microsoft.com/en-us/download/details.aspx?id=42299 klik op Download. Als u een 64 bit variant

Nadere informatie

Y.S. Lubbers en W. Witvoet

Y.S. Lubbers en W. Witvoet WEBDESIGN Eigen Site Evaluatie door: Y.S. Lubbers en W. Witvoet 1 Summary Summary Prefix 1. Content en structuur gescheiden houden 2. Grammaticaal correcte en beschrijvende markup 3. Kopregels 4. Client-

Nadere informatie

Temperatuur logger synchronisatie

Temperatuur logger synchronisatie Temperatuur logger synchronisatie Juni 10, 2010 1 / 7 Temperatuur logger synchronisatie Introductie Twee of meerdere ontvangers van het Multilogger systeem kunnen met de temperature logger synchronisatie

Nadere informatie

ContentSearch. Deep dive

ContentSearch. Deep dive ContentSearch Deep dive 2 Waarvoor in te zetten? Alternatief voor database queries Waar performance een issue kan zijn Daadwerkelijk frontend Site Search Mogelijk niet de beste optie maar wel goedkoop

Nadere informatie

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd. BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is

Nadere informatie

Service Pack notes CRM SPE SP1

Service Pack notes CRM SPE SP1 Service Pack notes CRM SPE SP1 Versie 1.1 INHOUD 1. Stylesheet... 3 2. Bewerken documenten... 4 2.1 Inrichting... 4 3. Opgeloste meldingen en wensen... 5 UNIT4 Software B.V. Disclaimer zoals vermeld op

Nadere informatie

Functionele beschrijving: Scannen naar AFAS Profit.

Functionele beschrijving: Scannen naar AFAS Profit. Functionele beschrijving: Scannen naar AFAS Profit. Algemeen Met de Kyocera Scannen naar AFAS Profit beschikt u over een efficiënte oplossing om uw documenten te scannen naar AFAS Profit. Met deze oplossing

Nadere informatie

INFITT01 - Internettechnologie WEEK 8

INFITT01 - Internettechnologie WEEK 8 INFITT01 - Internettechnologie WEEK 8 Programma Databases (JDBC, JNDI, ORM, JPA) MVC & Spring/Struts EJB Databases Veel web applicaties moeten informatie over langere tijd op kunnen slaan. Een voor de

Nadere informatie

Installatiehandleiding. Installatiehandleiding voor de ODBC-driver

Installatiehandleiding. Installatiehandleiding voor de ODBC-driver Installatiehandleiding Installatiehandleiding voor de ODBC-driver van UNIT4 Multivers (Accounting) Online 8.1 Copyright 2013 UNIT4 Software B.V., Sliedrecht, The Netherlands Alle rechten voorbehouden.

Nadere informatie

Object Oriented Programming

Object Oriented Programming Object Oriented Programming voor webapplicaties Door Edwin Vlieg Waarom OOP? Basis uitleg over OOP Design Patterns ActiveRecord Model View Controller Extra informatie Vragen OOP Object Oriented Programming

Nadere informatie

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1 DATAMODEL SQL Middelbare School Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1 INHOUDSOPGAVE 1. Informatiedomein 3 1.1 Informatiedomein 3 1.2 Toepassingen 3 2.

Nadere informatie

2019 SUNEXCHANGE USER GUIDE LAST UPDATED

2019 SUNEXCHANGE USER GUIDE LAST UPDATED 2019 SUNEXCHANGE USER GUIDE LAST UPDATED 0 - -19 1 WELCOME TO SUNEX DISTRIBUTOR PORTAL This user manual will cover all the screens and functions of our site. MAIN SCREEN: Welcome message. 2 LOGIN SCREEN:

Nadere informatie

Functionele beschrijving: scannen naar UNIT4 Cura Documentmanagement.

Functionele beschrijving: scannen naar UNIT4 Cura Documentmanagement. Functionele beschrijving: scannen naar UNIT4 Cura Documentmanagement. Algemeen Met KYOCERA scannen naar UNIT4 Cura Documentmanagement beschikt u over een efficiënte oplossing om uw documenten te scannen

Nadere informatie

1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model...

1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model... 1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model... 4 1.1.4. Wat is SQL?... 6 1.1.5. Verschillende categorieên

Nadere informatie

Lekker snel XML met SQL (.nl)

Lekker snel XML met SQL (.nl) Lekker snel met SQL (.nl In steeds meer opdrachten kom je als requirement tegen. Omdat het lekker makkelijk is of omdat de interface die je moet aanspreken het vereist. Dit is zeker het geval wanneer je

Nadere informatie

APEX Templates. OGH APEX dag 30 maart. Art Melssen. 31 maart 2010

APEX Templates. OGH APEX dag 30 maart. Art Melssen. 31 maart 2010 APEX Templates OGH APEX dag 30 maart Art Melssen Introductie Over de spreker 4 jaar APEX ervaring / 7 jaar Oracle 10 jaar web technologie ervaring APEX trajecten o.a. bij Centraal Boekhuis en eboekhuis

Nadere informatie

Frontend ontwikkeling

Frontend ontwikkeling Frontend ontwikkeling Mark Jansen Edwin Vlieg PHPFreakz ledendag 10 november 2007 Frontend ontwikkeling De interface is je product richting de eindgebruiker Goede PHP code met een slechte interface geeft

Nadere informatie

Gebruikers Handleiding

Gebruikers Handleiding Gebruikers Handleiding (De SQL module) Versie 2.14 Pagina 2 van 14 Versie 2.14 Inhoudsopgave NGP SQL...5 Het Menu... 6 De instellingen... 7 De database informatie... 9 Het Script... 10 Pagina 3 van 14

Nadere informatie

Activant Prophet 21. Prophet 21 Version 12.0 Upgrade Information

Activant Prophet 21. Prophet 21 Version 12.0 Upgrade Information Activant Prophet 21 Prophet 21 Version 12.0 Upgrade Information This class is designed for Customers interested in upgrading to version 12.0 IT staff responsible for the managing of the Prophet 21 system

Nadere informatie

Uitgebreid voorstel Masterproef Informatica

Uitgebreid voorstel Masterproef Informatica HoGent Uitgebreid voorstel Masterproef Informatica Titel van het project: Optimalisatie & ontwikkeling van een gegevenstransfertool voor Business Intelligence-gebruikers Datum : 01/11/2012 Naam student

Nadere informatie

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. SQL manipulatietaal We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: INSERT : toevoegen van gegevens DELETE : verwijderen van gegevens UPDATE : wijzigen van gegevens

Nadere informatie

Windchill Document Management. - Digitaliseren van documenten en processen -

Windchill Document Management. - Digitaliseren van documenten en processen - Windchill Document Management - Digitaliseren van documenten en processen - Bas Verbunt 20 November 2014 Agenda Waarom Document Management? Uitdagingen bij het beheren van documenten Uitdagingen bij het

Nadere informatie

Technical Note. API Beschrijving Aangetekend Mailen

Technical Note. API Beschrijving Aangetekend Mailen AUTHOR APPROVED Technical Note API Beschrijving Referentie: API beschrijving AM Versie: 0.0.7 Datum: 2015-07-24 Aangetekend Bellen B.V. Computerweg 5 Postbus 8307 3503 RH Utrecht T: +31 346 581 731 [email protected]

Nadere informatie

Auteur boek: Vera Lukassen Titel boek: Word Gevorderd 2010. 2011, Serasta Uitgegeven in eigen beheer [email protected] Eerste druk: augustus 2012

Auteur boek: Vera Lukassen Titel boek: Word Gevorderd 2010. 2011, Serasta Uitgegeven in eigen beheer info@serasta.nl Eerste druk: augustus 2012 Auteur boek: Vera Lukassen Titel boek: Word Gevorderd 2010 2011, Serasta Uitgegeven in eigen beheer [email protected] Eerste druk: augustus 2012 ISBN: 978-90-817910-7-6 Dit boek is gedrukt op een papiersoort

Nadere informatie

Planbord installatie instructies

Planbord installatie instructies Planbord installatie instructies Uit Comprise Wiki Inhoud 1 Basis installatie 1.1 Installeren 1.1.1 Microsoft Data Access Components 1.2 De eerste keer starten 2 Veelgestelde vragen 2.1 "Network resource

Nadere informatie

ibridge/andk the analyst s connection

ibridge/andk the analyst s connection ibridge/andk the analyst s connection ibridge / ANDK Uiteraard weet ú als criminaliteitsanalist als geen ander dat u met behulp van de Analyst s Notebook software analyseschema s handmatig kunt opbouwen

Nadere informatie

Intermax backup exclusion files

Intermax backup exclusion files Intermax backup exclusion files Document type: Referentienummer: Versienummer : Documentatie 1.0 Datum publicatie: Datum laatste wijziging: Auteur: 24-2-2011 24-2-2011 Anton van der Linden Onderwerp: Documentclassificatie:

Nadere informatie