V předchozím článku o nativních XML databázích jsem popisoval tento relativně nový druh softwarového vybavení v obecné rovině. Dále vás chci seznámit s možnostmi nativních XML databází z praktického hlediska. Začneme založením vlastní databáze, podíváme se na ukázku PHP komunikace pomocí XML-RPC a nebude chybět ani přístup k XML dokumentům pomocí SOAP standardu v .NET prostředí.

I když budou následující články založeny převážně na praktických ukázkách souvisejících právě s jednou zvolenou databází, rozhodně to neznamená, že poznatky využijete pouze za předpokladu stejné volby nativní XML databáze (dále jen NXD). Principy administrace jsou u většiny NXD shodné, někde chudší jinde bohatší, a pro komunikaci budu využívat zcela standardních protokolů, které nabízí opět většina z dostupných NXD. Jako základ jsem zvolil „open-source“ NXD Exist. Na tomto ambiciózním projektu mně zaujalo hned několik parametrů – pestrá podpora relačních databází využitelných pro „back end“, udávané výkonové parametry a v neposlední řadě široká nabídka komunikačních standardů.

Letmé seznámení

Java prostředí poskytuje NXD Exist platformní nezávislost na straně jedné a široká paleta implementovaných komunikačních standardů bortí omezení na použití v daných programovacích jazycích na straně druhé. Exist ve své dosavadní verzi 0.9 implementuje následující standardy:

  • XML:DB API (rozhraní, které využijí zejména Java vývojáři)
  • standardní HTTP protokol (rozhraní pro komunikaci s databází pomocí GET a POST předávaných parametrů)
  • XML-RPC (standard umožňující komunikaci mezi objekty běžící v jiné aplikační doméně)
  • SOAP (standard umožňující komunikaci mezi objekty běžícími v jiné aplikační doméně, tento standard je použit v pozadí webových služeb .NET platformy)
  • WebDAV (standard umožňující číst a měnit datové elementy databáze podobně jako složky a soubory souborového systému)

Tento přehled je důkazem faktu, že pro Exist neexistuje omezení platformy, aplikační domény či využitelného programovacícho jazyka. V rámci programových ukázek se budeme zabývat převážně XML-RPC, SOAP a WebDAV. Pro fyzické ukládání dat využívá Exist implicitně svoje proprietární řešení, ale v případě potřeby jej můžeme svázat s relační databází.

NXD Exist umožňuje provoz ve třech základních režimech:

  • „Standalone“ režim: databáze je spuštěna ve vlastním procesu.
  • „Embedded“ režim: databáze je přilinkována přímo ke klientské aplikaci a je spuštěna ve společném procesu.
  • „Servlet“ režim: databáze je spuštěna formou servletů a je kontrolována servlet strojem (Servlet engine).

Jednotlivé režimy ovlivňují množinu aktivních komunikačních standardů a jelikož SOAP a WebDAV protokoly jsou aktivní pouze v servlet režimu, rozhodl jsem se právě pro něj. Uživatel se nemusí obávat stížené instalace, protože v instalačním balíku je uschován také Jetty servlet engine, který vše obstará.

Instalace NXD

Pro správnou funkci NXD Exist je zapotřebí nainstalovat Java prostředí. Doporučuji zvolit cílový adresář pokud možno s krátkou cestou (například C:\j2se\), protože při spouštění Java programů jsou vytvářeny mnohdy velice spletité systémové proměnné právě s touto cestou a v případě dlouhého názvu se mohou vyskytovat problémy. To samé platí také pro instalační adresář NXD Exist.

Před samotným spuštěním NXD je potřeba vytvořit systémové proměnné $EXIST_HOME a $JAVA_HOME s danou instalační cestou, například SET JAVA_HOME=c:\j2se a SET EXIST_HOME=c:\exist.

Fyzické spuštění obstará sada dávkových souborů v adresáři $EXIST_HOME\bin\. Pro spuštění aplikace v námi zvoleném režimu je určen soubor STARTUP.BAT. Správnou funkci databáze ověříme navštívením http://localhost:8080/exist/index.xml. (Zde se také předem omlouvám všem „unix-like“ uživatelům. Články připravuji na stroji s Windows a pro lepší čitelnost textu nebudu zavádět syntaktické rozdíly mezi těmito dvěma světy. Uživatele „unix-like“ stroje si jednoduše mohou dosadit syntaktické ekvivalenty svého prostředí.)

Administrace

Pro administraci databáze je určena sada nástrojů – nástroje příkazové řádky, souborový manažer podporující WebDAV nebo můžeme použít nástroje třetích stran. Pro rychlé vyzkoušení WebDAV můžete navštívit adresu http://localhost:8080/exist/webdav/ a přímo tak provádět základní administrační úkony. WebDAV podporuje také například Windows Explorer, což můžete vyzkoušet jednoduše přidáním zmiňované adresy mezi své webové složky.

XML dbGUI

Jako zástupce nástroje třetích stran jsem si připravil aplikaci XMl dbGUI, která slouží pro administraci NXD, které podporují rozhraní XML:DB API. Opět se jedná o Java aplikaci a její instalace není nijak záludná.

Jak jsem již zmínil v předchozím článku, XML dokumenty společného zaměření se ukládají do takzvaných kolekcí. Pro náš příklad si proto vytvoříme kolekci s názvem myarticles:

XML dbGUI - kolekce "myarticles"

XML dokumenty

Pro další články jsem si připravil jednoduché DTD schéma popisující XML dokument pro psaní mini-článečků, které využijeme pro naše praktické ukázky. Všechny dokumenty budu vytvářet v kódování UTF-8.

V příštím článku se už budu zabývat rozborem dotazovacího XML jazyka a praktickou ukázkou jeho použití.

Pozn. red.: Seriál musel být předčasně ukončen, protože autor nedodal slíbená pokračování. Máte-li zájem v seriálu pokračovat vlastními články, prosíme, kontaktujte redakci.

Žádný příspěvek v diskuzi

Odpovědět