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
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.
7.5 - 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.
7.5.1 - 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
45
invoeren van een ino:id, onderneemt de GetFromTamino macro de volgende stappen: • maken HTTP ActiveXObject • Laden van URL in het HTTP object (URL: http:\\localhost\tamino\myDb\Journalist\Article_?xql=/Article[@ino:id=" + 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
7.5.2 - 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
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.
7.6 - Workflow & Storage Deze paragraaf behandelt: • • • • •
Authorisation Version Control Query uitvoeren op de database Opslag Indexing
7.6.1 - 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.
7.6.2 - 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
7.6.3 - 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
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.
7.6.4 - 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
• 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.
7.6.5 - 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
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
7.7 - 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
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 http:\\java.sun.com\j2se) • Java Servlet Development Kit 2.0 (http://java.sun.com/products/servlet/archive.html • Apache webserver die geschikt is voor Tamino (onderdeel van de Tamino distribution kit of kan gedownload worden op http:\www.\apache.org) • Apache JServ 1.1 ( http://java.apache.org/jserv/index.html ) • SAX 1.0 Java Core (onderdeel van de Tamino distribution kit of kan gedownload worden op http://www.megginson.com/SAX) • XT (onderdeel van de Tamino distribution kit of kan gedownload worden op http://www.jclark.com/xml/xt.html) 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: http://localhost/servlet/styler/tamino/mydb/mycollection?_xql(1,10)=mydoctype&_xsls 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
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.
8.1 - 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 http://jakarta.apache.org/slide/index.html 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.
8.2 - Aan de slag met de Tamino WebDAV Server Dit hoofdstuk beschrijft de installatie van de Tamino WebDAV Server en het gebruik ervan.
8.2.1 - Installatie Tamino WebDAV Server
52
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 "http:\\localhost\taminowebdavserver". 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
8.2.2 - 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 http:\\localhost\taminowebdavserver\Administration\configuration. Dit bestand moet eruit zien zoals het bestand mycoll.xml in http:\\localhost\taminowebdavserver\Administration\etc. Dit document bevat gegevens over de Tamino collectie, zoals de URL van de Tamino XML Server (http://localhost/tamino ), de naam van de database, de naam van de collectie en nog
53
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.
8.2.3 - 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
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.
8.2.4 - 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
9 - X-Hive/DB 2.0 9.1 - Inleiding Dit document beschrijft de evaluatie van de X-Hive/DB 2.0. Wij hebben op de homepage van de X-Hive corporation, www.x-hive.com 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.
9.2 - Algemene Informatie 9.2.1 - 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 email 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.
9.2.2 - 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
9.2.3 - 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
Figuur 10-1: X-Hive DB/Admin
9.3 - 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.
9.3.1 - 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
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.
9.3.2 - 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.
9.3.3 - 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.
9.4 - Authoring In de X-Hive DB Admin, zit een beperkte mogelijkheid om zelf content te creëren en
59
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.
9.4.1 - 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.
9.4.2 - 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
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.
9.5 - Workflow & Storage X-Hive ondersteunt een groot aantal Workflow en Storage taken. De beschikbare taken worden besproken.
9.5.1 - 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
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.
9.5.2 - 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
• 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(*)
9.5.3 - 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.
9.5.4 - Opslag
63
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.
9.5.5 - 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
Explicit locking Explicit locking is van toepassing, wanneer een gebruiker het document locked, voordat hij er enige wijziging in aanbrengt.
9.5.6 - 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
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.
9.5.7 - Indexing
66
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
• 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
9.5.8 - 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
met het gebruik van "" 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])"
9.5.9 - 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 1.3.2.1 aangemaakt.
69
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 1.3.2.2 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.
9.6 - 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
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
10 - Tamino versus X-Hive In dit hoofdstuk proberen we de verschillen tussen Tamino en X-Hive aan te geven.
10.1 - 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
10.2 - 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
10.3 - 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
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
10.4 - 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
10.5 - 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
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.
11.1 - 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.
11.1.1 - 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.
11.1.2 - 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
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:
11.2 - Workflow & Storage 11.2.1 - 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
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.
11.3 - Publishing Het document is opgeslagen in Tamino. Het document is benaderbaar via de Tamino Webdav Server met de URL http://localhost/taminowebdavserver/Journalist/Article/Document_7.xml We kunnen ook direct de Tamino XML Server aanspreken en ons document opvragen met de URL http://localhost/tamino/myDb/Journalist/Article?_xql=/Article[Title~="Onderzoek%20n 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.
11.3.1 - 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
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 0.20.3 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:
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
Hoofdstuknummering ligt iets ingewikkelder. Ons XML document heeft grofweg de volgende structuur:
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
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:
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
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.
12.1 - 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.
12.2 - Handleiding Een producent van televisie heeft een handleiding laten samenstellen. Deze
80
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 . 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
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.
13.1 - 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.
13.2 - 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
voorbeelden hiervan zijn boeken, e-mails, 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.
13.3 - 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.
13.4 - Tamino versus X-Hive
83
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.
13.5 - 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.
13.6 - 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
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
14 - Bronnen 14.1 - Productomschrijvingen • Apache Cocoon http://www.apache.com/cocoon • Astoria http://www.chrystal.com/product/astoria/index.html • B-Bop Xfinity XML Server http://www.b.bop.com/products.html • Birdstep Database Engine http://www.birdstep.com/products/products_index.php3 • Content@ http://www.xyenterprise.com/contenta.asp • CMS http://www.sorman.se/products/cms/index.asp • DB/XML Vision http://www.datamirror.com/products/dbxmlvision/default.asp • DOM-Safe http://www.ellipsis.nl • Engenda http://www.ebt.com/products/engenda/index.html • EXist http://www.sourceforge.net • e-XML Repositiry http://www.e-xmlmedia.com/english/products_repositiry.html • Expressroom http://www.starbase.com/products/tools.asp • GMD-IPSI XqL engine http://xml.darmstadt.gmd.de/xql/index.html • GoXML http://www.xmlglobal.com • Icoya http://www.struktur.de/english • Indusa Content Manager http://www.indusa.com • Infonyte http://www.infonyte.com/prod_db.html • Iore http://www-db.stanford.edu/Iore/home/index.html • Ipedo XML Database
86
http://www.ipedo.com • Lasso http://www.blueworld.com/prod/lasso • Merlin Server http://www.abriasoft.com/products/product16.php#features • Merrant http://www.merrant.com • Metabase http://www.phpclasses.upperdesign.com/browse.html/package/20 • NeoCore XML Management System http://www.neocore.com/products/products.html • ODBC2XML http://www.intsysr.com • Oracle XSQL servlet http://technet.oracle.com/tech/xml/xsql_servlet • RhythmyX http://www.percussion.com/rhythmyx/content.htm • Roxen http://www.roxen.com/products/platform • SiberSafe XML Author http://www.siberlogic.com/products/xml • Sigmalink http://www.step.de/sigmalink.html • SIM Content Server http://www.sim.com/aboutsim.html • Socrates XML http://www.socratesXML.com • Stellent Content Management System http://www.stellent.com • Tamino http://www.softwareag.com/tamino • TEXTML Server http://www.ixiasoft.com/index.asp • Tridion DialogServer http://www.tridion.com/Product/overview.asp • Vasont http://www.target2000.com • Visual Net Server http://www.cnet.se/visualnetservereng.vns • X-HIVE http://www.xhive.com • XIS
87
http://www.exceloncorp.com/platform/index.shtml • XML Canon http://www.tibco.com/prodcuts.extensibility/solutions/xml_canon.html • XMLcmNOW http://www.nfrese.net/software/xmlcmnow • XMLFolio http://www.pyrenean.com
14.2 - Informatieve naslagwerken • About XML http://www/projectcool.com/developer/xmlz/xmldtd/index.html • Content Mangement Tools http://www.nwc.com/shared/buyersfull.html • Database Systems with specific support for XML utilities http://www.xmlsoftware.com/database/ • JISC TechWatch Report: Content Management Systems http://www. • Native XML Databases http://www-106.ibm.com/developerworks/library/x-xdnat.html • Native XML vs. XML-enabled, by Michael Champion http://www.softwareag.com/xml/library/champion_nativexml.html • Why XML? http://www.simonstl.com/whyxml.html • XML and Databases, by Ronald Bourret http://www.rpbourret.com/xmlanddatabases • XML-based systems for Documents and Content Management http://www.xmlsoftware.com/dms/document.html • XML Database products, by Ronald Bourrett http://www.rpbourret.com/xmldatabaseprods.html • XML in de database, door Ing R.Claassens
14.3 - Internet bronnen • • • • • • • • •
www.arbortext.com www.docbook.org www.ibm.com www.intellor.com www.oracle.com www.projectcool.com www.perfectxml.com www.rpbourret.com www.simonstl.com
88
• • • • • • •
www.softwareag.com www.w3c.org www.xml.com www.xml.org www.xml2day.com www.xmlglobal.com xml.pagina.nl
89
Bijlage 1, Plan van Aanpak
Plan van aanpak Onderzoek / evaluatie XML content management tools
Datum : Versie : Status : Auteurs:
18-6-02 2.0 Definitief Vincent Fleur Dennis Heij
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Datum: 15-03-02
Versiebeheer Versie 1.0 1.1
Status Concept Concept
Datum 12-02-02 15-02-02
2.0
Definitief
04-03-02
Opmerkingen Initiële versie na overleg stagebegeleiders Na overleg met dhr P. Pettinga
1
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Datum: 15-03-02
Inhoudsopgave
1. INLEIDING................................................................................................................................... 3 AANLEIDING VOOR HET PROJECT..................................................................................................... 3 UITGANGSDOCUMENTATIE .............................................................................................................. 3 FUNCTIE PLAN VAN AANPAK ........................................................................................................... 3 ACCORDERING EN BIJSTELLING ....................................................................................................... 4 2. OPDRACHTFORMULERING ..................................................................................................... 5 DOELSTELLING EN VERWACHTE RESULTATEN .................................................................................. 5 ONDERZOEKSVRAGEN .................................................................................................................... 6 PROJECTRISICO'S .......................................................................................................................... 7 KENNIS.......................................................................................................................................... 7 BESCHIKBAARHEID BETROKKENEN .................................................................................................. 8 COMMUNICATIEMOGELIJKHEDEN ..................................................................................................... 8 HULPMIDDELEN .............................................................................................................................. 8 VOORZIENE PROBLEMEN ................................................................................................................ 8 4. PRODUCTEN .............................................................................................................................. 9 BESCHRIJVING OP TE LEVEREN PRODUCTEN .................................................................................... 9 5. AANPAK ................................................................................................................................... 11 UIT TE VOEREN ACTIVITEITEN / BESCHRIJVING OP TE LEVEREN PRODUCT PER ACTIVITEIT ................. 11 VOORONDERZOEK ....................................................................................................................... 11 AANPAK ONDERZOEK ................................................................................................................... 12 PLANNING VAN DE ACTIVITEITEN.................................................................................................... 13 URENPLANNING PER PERSOON ..................................................................................................... 14 LITERATUUR ................................................................................................................................ 15 6. PROJECTORGANISATIE......................................................................................................... 16 BETROKKENEN ............................................................................................................................ 16 CORRESPONDENTIE ADRESSEN .................................................................................................... 16 TAAKVERDELING, VERANTWOORDELIJKHEDEN EN BEVOEGDHEDEN ................................................. 17 PROCEDURE EN BETROKKENEN TBV BEOORDELING EN PRESENTATIE PRODUCT ............................... 17 VOORTGANGSBEWAKING EN RAPPORTAGE. ................................................................................... 17
2
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Datum: 15-03-02
1. 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
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Datum: 15-03-02
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
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Datum: 15-03-02
2. 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
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Datum: 15-03-02
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
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Datum: 15-03-02
3. 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:
Door te weinig communicatie de verkeerde weg inslaan bij het uitwerken van de opdracht
Maatregel:
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.
Risico:
Beschikbaarheid betrokkenen
Maatregel:
Niet afwachten maar zelf tijdig afspraken plannen wanneer we bepaalde mensen willen spreken.
Risico:
Softwarematige beperkingen
Maatregel:
Zo nodig andere software installeren, mits die beschikbaar is binnen Thales.
Risico:
Wijzigingen m.b.t. criteria waar ons onderzoek op is gebaseerd
Maatregel:
Zo nodig deze nieuwe criteria toevoegen aan de dan bestaande lijst met criteria en deze nieuwe criteria toetsen in de praktijk.
Risico:
Doelstellingen niet halen
Maatregel:
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
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Datum: 15-03-02
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 e-mail 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 2000. 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 2000. 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
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Datum: 15-03-02
4. 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 Stage
Afstuderen Reflectie Afronding
inhoud · persoonlijke leerdoelen · scholingsoverzicht · organisatiebeschrijving · probleemafbakening · plan van aanpak producten uit doelstelling van het plan van aanpak reflectieverslag presentatie & verdediging
termijn 4 weken
15 weken 2 weken 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
·
Scholingsoverzicht
Hier worden minimaal 5 leerdoelen beschreven, waaraan de student gedurende alle periodes speciale aandacht besteedt. 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
·
Organisatiebeschrijving
Dit document is naast een “contract” ook onderdeel van het afstudeerverslag. De organisatie wordt beschreven zoals de studenten aangereikt tijdens het vak Bestuurlijke Informatie Voorziening.
9
Afdeling ICT Opdracht: Onderzoek XML-content management tools
·
Probleemafbakening
·
Vooronderzoek
·
Resultaten
·
Conclusie en aanbevelingen
Datum: 15-03-02
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. Hier wordt beschreven hoe we het onderzoek gaan uitvoeren. Dit gedeelte vormt de kern van het afstudeerverslag en beschrijft de resultaten van het onderzoek. 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
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Datum: 15-03-02
5. 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
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Datum: 15-03-02
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 XHIVE, 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(http://docbook.org/tdg/) 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
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Planning van de activiteiten tot Activiteit Week van
Op te leveren producten VR
15-Feb
Inwerken / start opstellen PvA Opstellen PvA, organisatiebeschrijving
18-Feb
22-Feb
probleemafbakening
VR VR
6
4.3
4-Feb
9-Feb
7
4.4
11-Feb
8
Datum: 15-03-02
Plan van Aanpak + VR
9
4.5
25-Feb
1-Mar
start vooronderzoek
10
4.6
4-Mar
8-Mar
11
5.1
11-Mar
15-Mar
vooronderzoek VR vooronderzoek + bepalen welke tools nader te onderzoeken VR
12
5.2
18-Mar
22-Mar
Uitvoeren onderzoek
VR
13
5.3
25-Mar
29-Mar
VR
14
5.4
1-Apr
5-Apr
Uitvoeren onderzoek Start voorbereiden proefpresentatie + onderzoek
15
5.5
8-Apr
12-Apr
VR
16
5.6
15-Apr
19-Apr
Uitvoeren onderzoek proefpresentatie + uitvoeren onderzoek
17
6.1
22-Apr
26-Apr
VR
29-Apr
3-May
VR
proefpresentatie + VR
19
6.2
6-May
10-May
20
6.3
13-May
17-May
21
6.4
20-May
24-May
22
6.5
27-May
31-May
23
6.6
3-Jun
7-Jun
Uitvoeren onderzoek Opstellen concept afstudeerverslag + onderzoek afronden concept afstudeerverslag + onderzoek Voorbereiden Presentatie + afronden onderzoek Opstellen definitief afstudeerverslag opstellen definitief afstudeerverslag afronden definitief afstudeerverslag
24
7.1
10-Jun
14-Jun
voorbereiden presentatie
presentatie + VR
25
7.2
17-Jun
21-Jun
bedrijfspresentatie
bedrijfspresentatie
26
7.3
24-Jun
28-Jun
presentatie
presentatie
18
VR concept afstudeerverslag + VR VR VR VR definitief afstudeerverslag
*VR = Voortgangsrapportage
13
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Datum: 15-03-02
Urenplanning per persoon Activiteit Inlezen / inwerken opdracht verzamelen literatuur over XML bestuderen literatuur over XML Opstellen PvA Organisatiebeschrijving Probleemafbakening vooronderzoek verzamelen literatuur bestuderen literatuur bestuderen XML editor opstellen onderzoeksvragen CMS opstellen XML test bestanden inventarisatie tools bestuderen eisen tools opstellen onderzoeksplanning bepalen te onderzoeken tools
Uren Vincent 30 8 24 55
Uren Dennis 30 8 24 43 24
30 6 10 16 10
6 14 10
70
8
70 6 6 8
Onderzoek bestuderen handleidingen instaleren tools beantwoorden onderzoeksvragen
20 90 280
80 20 290
voorbereiden proefpresentatie proefpresentatie
20 1
20 1
opstellen afstudeerverslag
40
40
voorbereiden presentatie presentatie
40 1
40 1
voortgangsformulieren
20
40
Totaal uren per persoon
779
781
Totaal uren
1560
14
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Datum: 15-03-02
Literatuur De volgende bronnen zullen we bij het uitwerken van de opdracht gebruiken: www.xml.com www.xml.org www.docbook.org www.rpbourret.com xml.pagina.nl www.arbortext.com www.thales-nederland.nl www.projectcool.com www.simonstl.com www.perfectXML.com www.softwareag.com www.intellor.com www.xmlglobal.com www.oracle.com www.ibm.com Managing XML documents in object-relational databases Auteurs: Meike Klette, Holger Meyer
15
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Datum: 15-03-02
6. Projectorganisatie Betrokkenen De volgende personen zijn bij dit project betrokken. Naam
Hoedanigheid
Telefoon
Dennis Heij Vincent Fleur Peter Pettinga Chris Scholten Jan Swets
Stagiair / afstudeerder Stagiair / afstudeerder Begeleidend docent IJselland Stagecoördinator IJselland Opdrachtgever, stagebegeleider Thales Tweede stagebegeleider Thales Stagecoördinator Thales
074-2483301 074-2483301 0570-663190 0570-663191 074-2482539
[email protected] [email protected] [email protected] [email protected] [email protected]
074-2483796 074-2483388
[email protected] [email protected]
Andre van de Voort Marcella RulofVeldkamp
Correspondentie adressen Thales Nederland Zuidelijke Havenweg 40 7554 RR Hengelo Saxion Hogeschool IJselland Postbus 501 7400 AM Deventer Vincent Fleur Broekheurnerweg 44 7513 ES Enschede Dennis Heij Amerstraat 38 7417 CM Deventer
16
Afdeling ICT Opdracht: Onderzoek XML-content management tools
Datum: 15-03-02
Taakverdeling, verantwoordelijkheden en bevoegdheden Hieronder een overzicht van de taken en verantwoordelijkheden van de betrokkenen bij dit project. Opdrachtgever:
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.
Stagebegeleider:
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).
Stagiair:
Student van de faculteit I&I, die belast is met de uitvoering van de opdracht.
Begeleidend docent:
De docent die belast is met de begeleiding en bewaking van het leerproces van de student.
Stage coördinator:
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
Bijlage 2, Inventarisatie Content Management tools
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
XML- Databases Ipedo XML Database Versie:
2.0
Ontwikkelaar: Ipedo Inc Adres: www.ipedo.com 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: 3.6.5 Ontwikkelaar: Blue World Communications Adres: www.blueworld.com/prod/lasso 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: 0.7.1 Ontwikkelaar: Wolfgang M. Meier Adres: www.sourceforge.net 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.
Tamino Versie: 3.1.1 Ontwikkelaar: Software AG Adres: www.softwareag.com/tamino 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: www.ellipsis.nl 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.
e-XML Repository Versie: 1.3 Ontwikkelaar: e-XMLMedia Adres: www.e-xmlmedia.com/english/products_repository.htm 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: www.socratesXML.com 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: www.xmlglobal.com 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.
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: 1.0.2 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: www.datamirror.com/products/dbxmlvision/default.asp 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: 2000-01-18 Ontwikkelaar: Manual Lemos Adres: www.phpclasses.upperdesign.com/browse.html/package/20 Platformen: Hardware: Metabase biedt een pakket met classes voor de PHP scripting taal aan, waardoor toegang en management van de XML database mogelijk is.
Merlin Server Versie: 1.0 Ontwikkelaar: Abriasoft Adres: http://www.abriasoft.com/products/product16.php#features 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: www.neocore.com/products/products.htm 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: www.birdstep.com/products/products_index.php3 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.
IXIASOFT Content Server (TEXTML Server) Versie: 2.0 Ontwikkelaar: IXIASOFT Adres: www.ixiasoft.com/index.asp?To=text&from=xmlsoftware 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: http://www.datamirror.com/products/dbxmlvision/default.asp 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.
X-Hive/DB Versie: 2.0 Ontwikkelaar: X-Hive corporation Adres: http://www.xhive.com/ 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
XMLFolio Versie: 1.4 Ontwikkelaar: Pyrenean inc. Adres: www.pyrenean.com/ Platformen: Windows 95, 98, Me, NT, 2000 Hardware: Applicatie om ODBC database data te veranderen in het XML formaat. Infonyte Versie: 1.3.8 Ontwikkelaar: Infonyte GmbH Adres: www.infonyte.com/prod_db.html 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: www.infonyte.com/prod_db.html 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: 1.0.1.0 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.
EXtensible Information Server (XIS) Versie: 3.1 Ontwikkelaar: Excelon Corporation Adres: http://www.exceloncorp.com/platform/index.shtml 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.
XML-Content Managers Icoya. Versie: 2.1 Ontwikkelaar: struktur AG Adres: www.struktur.de/englisch/ 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.
SIM (Structured Information Manager) Versie: 3.0 Ontwikkelaar: RMIT Multimedia Information Systems Adres: www.simdb.com/ 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: www.sorman.se/products/cms/index.asp 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.
Engenda Versie: 4.7 Ontwikkelaar: eBT Adres: www.ebt.com/products/engenda/index.html 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: www.siberlogic.com/products/xml/ 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: www.tridion.com/Product/overview.asp 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.
Astoria Versie: 3.6 Ontwikkelaar: Chrystal Software Adres: www.chrystal.com/product/astoria/index.htm 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.
Content@ Versie: 3.0 Ontwikkelaar: XyEnterprise Adres: www.xyenterprise.com/contenta.asp 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. Content@ 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: www.nfrese.net/software/xmlcmnow/ 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.
Vasont Versie: 7 Ontwikkelaar: Progressive Information Technologies Adres: www.target2000.com/ 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: www.b-bop.com/products.htm 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, e-mail 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
Visual Net Server (VNS) Versie: 4.0 Ontwikkelaar: CNET Sweden Adres: www.cnet.se/visualnetservereng.vns 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: www.percussion.com/rhythmyx/content.htm 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: www.step.de/sigmalink.htm Platformen: -. Document management systeem met SGML/XML support. Gebaseerd op relationele databases. Biedt oa versiebeheer, workflow en FOSI aan.
XML Canon Versie: 1.2 Ontwikkelaar: TIBCO Software Inc. Adres: www.tibco.com/products/extensibility/solutions/xml_canon.html 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: www.starbase.com/products/tools.asp?ID=1400 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: www.roxen.com/products/platform/ Platformen: Windows (NT, 2000), Solaris, LINUX. Een op Java gebaseerd content management systeem met support voor XML en XSLT.
Indusa Content Manager Versie: Ontwikkelaar: Indusa Technical Corporation Adres: www.indusa.com 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: www.stellent.com Platformen: Windows (NT 4.0, 2000) Linux 6.2, HP-UX 11, IBM AIX 4.3.3. 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
Apache Cocoon Versie: 2.0.1 Ontwikkelaar: Apache Adres: www.apace.com/cocoon 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.