Apache není jen úspěšný webový server

Apache Software Foundation (ASF) je neúnavným iniciátorem nových projektů, jejichž výsledkem jsou nástroje pro zpracov...


Apache Software Foundation (ASF) je neúnavným iniciátorem nových projektů,
jejichž výsledkem jsou nástroje pro zpracování, ukládání a dynamickou tvorbu
obsahu webu. Portfolio těchto produktů dnes sahá od základních nástrojů
podporujících XML a Javu až po komplexní nástroje pro publikování XML a správu
obsahu (Content Management).
Webový server Apache je vedle Linuxu považován za jeden z nejúspěšnějších
produktů s otevřeným zdrojovým kódem. Apache je nespornou jedničkou na trhu a
podle údajů Netcraftu měl v březnu 2002 celosvětově takřka 54% podíl na
instalovaných webových serverech. Server Apache už však dokáže mnohem víc, než
jen dodávat stránky v HTML. Četné moduly, které využívají jeho architektury
podporující plug-iny, jej rozšiřují, a vytvářejí tak vlastní aplikační
platformu. Funkční rozsah takových doplňkových modulů sahá od emulace Microsoft
Frontpage Server Extensions (mod_frontpage) přes autentizaci a MP3 streaming až
po četné jazykové interprety (jejich přehled najdete na adrese
modules.apache.org).

Java
Velké podpoře vývojářů webových stránek se těší také další volně šiřitelné
technologie Perl a PHP. Systém označovaný s trochou humoru jako Lamp (Linux + +
Apache + MySQL + PHP/Perl/Python) přitom tvoří významnou alternativu
internetovým produktům Microsoftu.
Pro ASF i nadále hraje ústřední roli další vývoj serveru HTTP. To dokládá i
nedávné zveřejnění jeho zbrusu nové verze s číselným označením 2.0. Tento
update byl od základu přepsán a přináší řadu nových funkcí. Jako přednosti nové
architektury serveru uvádějí vývojáři snadnou přenositelnost na systémy, které
nejsou založeny na Unixu, lepší podporu Windows a jednodušší konfiguraci.
Přehled všech funkcí nového produktu se nachází na webových stránkách ASF.
Vedle webového serveru, kterým celý projekt Apache začal, nabývají stále
většího významu také dvě další iniciativy uvnitř ASF. Jde o Jakartu,
zastřešovací projekt pro řadu aktivit souvisejících s Javou, a o XML Project,
jehož název je samovysvětlující.
Výchozím bodem pro produkt Jakarta bylo poskytnutí kódu společností Sun
Microsystems. Ta svěřila ASF svoji referenční implementaci pro javové servlety.
Z tohoto základu zanedlouho vznikl nástroj Tomcat, engine pro servlety a JSP
(Java Server Pages). V současné době existuje ve verzi 4 a podporuje
specifikace pro servlety 2.3 a JSP 1.2.
Mezi referenčními implementacemi má Tomcat výsadní postavení. Zatímco Sun
přikládá těmto realizacím jen demonstrativní charakter, nástroj pro Apache byl
vytvořen s důrazem na podporu stability a rychlosti vývojového prostředí. V
neposlední řadě i proto je Tomcat nejpoužívanějším J2EE serverem a mnozí
výrobci jej dodávají jako součást svých vývojových nástrojů.
Relativní samostatnost Tomcatu oproti webovému serveru Apache se neprojevuje
jen tím, že má k dispozici vlastní stack HTTP a může pro menší instalace
fungovat i jako webový server. Jako nástupce produktu Jserv navíc Tomcat
rozšiřuje o podporu servletů a JSP nejen vlastní HTPP server ASF, ale také
produkty firem Microsoft a Iplanet.

Žádný chaos
Podobně jako webový server, který pracuje jako centrální informační zdroj pro
ostatní vývojové projekty s otevřenými zdrojovými kódy, také Tomcat se postupně
vyvinul v základnu projektů zaměřených na vývoj aplikací s otevřeným kódem.
Zatímco většina modulů Apache vznikla mimo ASF, stále více javových projektů se
usazuje pod střechou Jakarty. Nevládne tu přitom zřejmě žádný divoký růst,
který by vedl k chaosu. ASF sice jako zastřešující organizace pro open source
projekty nemůže sledovat konkrétní softwarovou strategii, ale je schopna
strategického usměrňování, aniž by musela nezávislé vývojáře k určité dělbě
práce příliš přemlouvat.
Na základě své přitažlivosti pro nezávislé týmy se mnohé z nich tlačí pod
střechu ASF, která si zase může vybrat projekty, které se jí hodí. Mnohé záměry
open source vznikly ve skutečnosti nejprve ve vlastní režii a později se
setkaly s ASF. V poslední době k nim patří například vyhledávací nástroj Lucene
a XML databáze Xindice, která byla dříve vyvíjena pod označením dbXML.
Koordinace
V praxi se koordinační činnost ASF projevuje tím, že se vznikající programy
doplňují tak, aby byly schopny fungovat společně např. jeden jako nadstavba
druhého. Cílem přitom je vytvoření komplexní platformy pro poskytování obsahu.
V rámci projektu Jakarta je vznikající software hierarchicky členěn do tří
kategorií: do první patří knihovny, nástroje a API, do druhé frameworky a
enginy a do třetí serverové aplikace. XML projekt nedělí své aktivity
explicitně podle tohoto vzoru, prakticky však sleduje podobné uspořádání. Za
základní nástroje zde platí ani ne tak kódové knihovny, ale mnohem spíše
parsery Xerces a Crimson, stejně jako XSLT procesor Xalan. Ty nacházejí použití
ve většině komplexních aplikacích projektu XML.
Jakarta vykazuje ve srovnání s XML vyšší počet projektů a přináší také více
základních nástrojů. Nástroje primární úrovně nejsou ještě tak silně zaměřeny
na zpracování obsahu, jako je tomu u aplikací. Řada nástrojů vznikla jako
vedlejší produkty vývoje softwaru, které se postupně rozšířily i mimo oblast
ASF. Patří k nim například testovací nástroje Jmeter, Watchdog nebo Cactus. I
projekt Taglibs je zařazen do oblasti nástrojů, přísluší mu však zvláštní
význam. Jde o pokus vytvořit otevřenou repository pro JSP CT (Custom Taglibs).
Ty nabízejí možnost definovat vlastní tagy XML, které se využívají v aplikacích
JSP jako zástupci pro funkce Javy. Tímto způsobem se dá zabránit nutnosti
vkládat do HTML stránek velké bloky kódu. Pro rozšíření JSP by mohl tento
projekt možná plnit podobný úkol jako Cpan-Archiv pro Perl. Na rozdíl od
zdrojově otevřeného textového jazyka však Java disponuje díky bohatým
standardním API mnohem větším rozsahem funkcí, a nepotřebuje proto tak naléhavě
volně dostupné moduly.
Projekty jako Taglibs a celá řada projektů Jakarty ukazují, že programátoři,
kteří preferují otevřené zdrojové kódy, změnili svůj postoj vůči Sunu a Javě.
Na základě počáteční restriktivní politiky viděly mnohé nezávislé týmy v
javových produktech především proprietární software. Poté co však Sun dává i
jiným firmám a zastáncům open source možnost podílet se prostřednictvím JCP
(Java Community Process) na dalším vývoji jeho technologie, zdá se, že si
získal sympatie vývojářů.

Pro uživatele
Zatímco projekty nižší a střední úrovně vyvíjejí primárně software, který je
zaměřen na programátory, a používá se proto i uvnitř ASF, jsou programy
deklarované jako serverové aplikace zamýšleny pro uživatele. Již delší dobu tam
patří e-mailový server James, portálový software Jetspeed nebo Alexandria,
nástroj pro vyhledávání a použití zdrojových kódů a dokumentace. Správa obsahu
V rámci obsahové platformy, kterou dnes Apache prezentuje, má největší význam
správa obsahu. Systém, který tuto činnost umožňuje, nese název Slide. Jde o
relativně nový projekt, který byl teprve nedávno dokončen ve verzi 1.0. Ačkoliv
je zapsán mezi aplikace, vývojáři jej označují jako komplexní rámec
(framework). Produkt nabízí jednotné rozhraní pro autorskou činnost i pro
uložení definic dokumentů. Ze strany klienta používá Slide standard vydaný
sdružením IETF (Internet Engineering Task Force): Distributed Authoring and
Versioning na bázi webu (WebDAV), který je rozšířením HTTP. Tento protokol již
podporují četné editory, mezi jiným také poslední verze Office firmy Microsoft.
Velký význam má tento projekt ve spojení s operačním systémem Windows XP, který
obsahuje vlastní síťový redirektor, takže k systému mohou přistupovat i staré
aplikace bez podpory WebDAV.

Publikování
Zatímco Slide spadá organizačně pod projekt Jakarta, publikační framework
Cocoon, vytvořený rovněž na bázi Javy, je zařazen v kategorii XML. To ukazuje,
že vytvoření hranice mezi oběma zastřešujícími projekty je obtížné, a to
především proto, že téměř všechny XML produkty ASF jsou napsány v Javě a
standardně předpokládají Tomcat jako servletový engine. Většina javových
projektů navíc používá XML a vrací se k parserům a XSLT procesorům Xerces a
Xalan.
Tým pracující na Cocoonu nedávno představil verzi 2 svého produktu. I zde jde o
zcela přepracovaný software. Oproti svému předchůdci se vyznačuje značně vyšší
rychlostí zpracování dat. Cocoon podporuje nejrůznější výstupní formáty
dokumentů XML při použití řady koncových zařízení. Hlavní roli při konverzi XML
dat hraje XSLT. Technologie Extensible Server Pages (XSP) umožňuje, že
dokumenty procházejí několika procesory (včetně proprietárních javových
procedur), dokud nedosáhnou požadovaného cílového formátu. Pro konverzi dat
XSL-FO do formátu PDF nabízí Cocoon software FOP, který je součástí projektu
Apache. Tento renderovací engine podporoval jako jeden z prvních nástrojů plný
rozsah doporučení XSL-FO, které konsorcium W3C schválilo v říjnu 2001.
I když mnohé produkty z portfolia ASF oslovují hlavně programátory, aplikace
nejvyšší úrovně reprezentují pro uživatele téměř úplnou platformu pro
poskytování internetového obsahu. Přední pozici zaujímají webové servery s
bohatou nabídkou funkcí a Tomcat, který nabízí podporu servletů a JSP. Na
uvedených základech staví Slide, CMF (Content Management Framework), nástroj
pro fulltextové vyhledávání Lucene, portálový software Jetspeed a produkt pro
publikování XML Cocoon. Připojení dbXML k ASF pod označením Xindice dodává
platformě ještě navíc backendovou XML databázi.

Vybrané projekty ASF
Projekt HTTPD: vyvíjí webový server Apache a plug-iny
Projekty Jakarta
- Common: repository pro opakované použití prvků kódu, které jsou užitečné pro
některé projekty Jakarty lECS (Element Construction Set): Java API pro
vytváření prvků pro různé značkovací jazyky; přímá podpora pro HTML 4 a XML
- Jmeter: desktopová javová aplikace pro testování zátěže a měření rychlosti
- Log4j: javová knihovna pro logovací funkce
- Lucene: nástroj pro fulltextové vyhledávání v Javě
- Struts: framework pro vytváření webových aplikací se servlety a JSP (Java
Server Pages)
- Jetspeed: portálový systém konfigurovatelný uživatelem
- Slide: systém pro správu obsahu, podporuje WebDAV
- Tomcat 3: oficiální referenční implementace specifikace Servlet 2.2 a Java
Server Pages 1.1
- Tomcat 4: oficiální referenční implementace specifikace Servlet 2.3 a Java
Server Pages 1.2

Projekty XML
- Xerces: XML parser v Javě a C++
- Crimson: XML parser, vrací se k Project X
- Xalan: XSLT procesor v Javě a C++
- Cocoon: nástroj pro publikování XML v Javě
- Batik: javový toolkit pro SVG (Scalable Vector Graphics)









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.