středa 28. dubna 2004

Výkon webových aplikací s použitím XSLT

Motivem k napsání tohoto spotu bylo několik událostí, které spolu na první pohled nesouvisí. Petr Bříza se v úvodním článku k XSLT mimo jiné zmiňuje o opomíjení této technologie.

Osobně si nemyslím, že by XSLT bylo opomíjeno ba naopak, XSLT si své místo našlo a jedná se o velice slibnou technologii. Na druhou stranu si nemyslím a to jsem také vyjádřil v diskuzi pod článkem, že by se XSLT hodilo na všechny druhy serverových úloh. Trochu nešikovně jsem zmínil případ generování dynamického obsahu s každým požadavkem.

Rád bych svoje tvrzení uvedl na pravou míru. Jiří Kosek v té samé diskusi argumentuje využitím XSLT jako prezentační vrstvy mnoha webových aplikací, kde se opravdu s každým požadavkem generuje nová stránka. S tímto argumentem souhlasím a dokonce mi přijde řešení prezentační vrstvy tímto způsobem jako vhodné, na druhou stranu si nedokážu představit situaci, kdy v rámci například PHP hostingu používalo XSLT transformaci několik desítek vývojářů. V takovém případě by totiž docházelo k obrovskému vytíženi serveru a neúměrnému prodlužování doby odezvy serveru.

Na výkonnostní problémy ohledně XSLT lze nahlížet z několika úhlů. Čas potřebný k provedení XSLT transformace je dán velikostí vstupních XML dat a provedením XSLT šablony, kde záleží například na složitosti XPath výrazů. Výkonnostní problémy lze řešit optimalizací XSLT šablony, použitím Transletu, navýšením hardwaru atd. možností je několik. Nedokážu si představit, že by se ale takto ladilo v rámci hostingu a několika desítek nebo stovek vývojářů.

Pokud bych to měl shrnout, XLST jako prezentační vrstva webových aplikací ano, ale zvážit především výkonové důsledky takového nasazení. Poslední události, která mě přiměla k tomuto spotu byl článek Pavla Sýkory Cocoon v příkladech (11): Výkonnost a nasazení v jiných servletových kontejnerech neboť základem aplikací vystavěných na aplikačním serveru Cocoon je právě XSLT transformace.

Související články