Vemi ma zaujal tento článok! S myšlienkou narábania s popisovaným nástrojom sa pohrávam už fakticky 2 roky. Z reakcií užívateľov v newsoch mám však zmiešané pocity. Je mi jasné, že tento typ nástroja je vhodný skôr na "väčšie projekty", inak je to ako ísť s kanónom na zajace.
Mám ale otázku: Poznáte nejaké konkrétne webaplikácie bežiace s Coconom? A sú nejaké aj v našich končinách (ČR, SR)?
Skus sa pozriet na http://cocoon.apache.org/link/livesites-2.1.html
Vnasich koncinach som sa nestretol s extranetovou aplikaciou napisanou pre Cocoon. Hmmm asi len jedna vinimka.
Ale mozem povedat ze Cocoon je fakt skvely. Uz ho pouzivam rok a pol a zatial pokroky medzi verziami 2.0 a poslednym releasom 2.1.2 su skvele. Ale kazdy ma na Cocoona iny nazor:)
Krome vyse uvedeneho odkazu, ktery je asi nejlepsim zdrojem aplikaci "Powered by Cocoon", byla jeste zminka v jedne prezentaci na lonske konferenci vydavatelstvi O'Reilly, ze jadrem noveho portalu NASA je Cocoon. Konkretne by to mel byt tento portal: http://www.ksc.nasa.gov/ , ale nevim, zda uz ten projekt byl dokoncen.
zajimavy a podnetny clanek! diky za nej.
jen by me zajimalo, jak to realne s rychlosti podobne napsane aplikace. predpokladam ze cocoon umi asi nake predgenerovane vystupy nejak rozumne chacheovat, ale porad mi pripada, ze opravdu dynamicky generovany web vyuzivajici vice transformatoru se bude generovat ukrutne pomalu .. nebo se myslim?
Take jsem predpokladal, ze rychlost nebude nic moc, ale Cocoon je prekvapive pomerne svizny i bez cache, ale cacheovat umi take. Nezkousel jsem jej ovsem jeste pod velkou zatezi. Prilezitostne na nej pustim nejaky zatezovy test a vysledky zverejnim v nekterem z dalsich dilu.
Ve verzi Cocoonu 1 se pouzival DOM pro praci s XML/XSLT, coz bylo opravdu pomale az nepouzitelne. Od verze 2 ale funguje svizne jak casove tak pametove diky SAX a opravdove pipeline.
Rychlost by tedy mela byt dana pouzitou XSLT knihovnou. V distribuci Cocoonu bude asi Xalan, ktery nejrychlejsi nebude - nemate nekdo zkusenosti s pouzitim jinych ?
btw, JSF (Java Server Faces, XML/XSL nadstavba nad JSP) zda se pouziva DOM API, takze je na technologicke urovni cocoonu pred nejakymi tremi, ctyrmi lety:)
A diky za clanek !
Chtel bych jeste pripomenout, ze i v Cocoonu lze pro XSLT pouzit XSLTC (XSLT Compiler), ktery generuje na zaklade stylesheetu Java kod pro transformaci. Ted si ani nejsem jist, zda dokonce tento zpusob neni ve verzi 2.1.2 implicitni - nekde jsem cetl, ze pokud jsou s tim problemy (extenze apod.), ma se v mape nadeklarovat Xalan.
Take vlastni stylesheet se da napsat vice nebo mene efektivne, coz muze zaviset i na tom, jak dobre je navrzena struktura vstupnich XML dat.
Neznám JSF, ale takhle rychle bych je neodsuzoval. Cocoon používá SAX pro předávání mezi jednotlivými částmi pipeline, ale např. pro potřeby XSLT transformace se musí SAX události převést na strom (ať už DOM nebo nějakou interní strukturu XSLT procesoru -- třeba TinyTree v Saxonu), nad kterým se provádí transformace a vyhodnocují XPath dotazy. Takže ani v Cocoonu se DOMu nevyhnete. Dokonce je otázka, když bude více transformací za sebou, zda by nebylo rychlejší předávat si rovnou strom výstupu na vstup další transformace bez nutnosti serializace/deserializace přes SAX události.
Pro dosažení vyššího výkonu by bylo zajímavé použít nějakého proudového transformačního jazyka jako STX, ale nevím, zda to někdo s Cocoonem zkoušel.
STX transformator je v Cocoonu 2.1.2 take (v zakladni distribuci), ale neni jeste prohlasen za stabilni. Ale rozhodne se s nim da do budoucna pocitat. Mozna by bylo zajimave srovnat rychlosti XSLT interpretovane, XSLTC a STX. Az na to, ze Cocoon je tak flexibilni, ze zatim nemam moc predstavu, jak by takovy benchmarking mel vypadat, aby vysledky byly pouzitelne obecne a ne jen na konkretni pripad.
Forrest je jedna z moc peknych aplikaci Cocoonu. Podle mych poznatku (nezkoumal jsme posledni verzi) je skvely pro generovani stranek s technickou dokumentaci v anglictine. Vetsina retezcu je vsak (zatim?) kodovana natvrdo v XSL sheetech a logicka struktura take spise odpovida technicke dokumentaci. Nicmene, protoze je to aplikace Cocoonu, da se to pomoci nej prizpusobit. Takze vygenerovat Forrestem treba ceske fotoalbum by bylo asi dost prace, ale treba delat v nem dokumentaci k softwarovemu projektu mi prijde super. Pokud se nechcete ucit Docbook, tak Forrest je zajimava jednodussi alternativa.
Lze transformátory pro Cocoon psát i v jiných jazycích než je Java? Třeba v JavaScriptu nebo v C++?
Díky za dobrý článek. Cocoon mi do budoucna připadá mi to jako dobrá metoda pro generování statických www stránek. Ale dnes by na počítačích, které používáme v práci, těžko běžel - jsem rád, že se mi zde alespoň plouží moje programy vytvořené v Cčku :-(.
Pochybuju, ze by se na transformatory nyni dalo rozumne pouzit neco jineho nez Java (vcetne JNI), ani v tom nevidim prilis velky prinos. Spise je zde zajimava prave Java se svou obrovskou sadou knihoven. Oproti tomu XSP (rekneme, ze je to specialni druh generatoru) mohou mit logiku v Jave, javascriptu nebo Pythonu.
Na generovani statickych stranek by to snad s vykonnosti pocitace nemuselo byt tak kriticke, i kdyz operacni pamet je hodne dulezita. V nejhorsim pripade by se dalo neco pameti usetrit behem pod Linuxem bez X-Window. Je mozne, ze pak nektere transformace mohou mit problemy (SVG a PDF), ale nezkousel jsem to (Java sveho casu potrebovala obcas balik awt, ktery je zavisly na grafice, ale mozna, ze uz je to ve verzi 1.4.x opraveno).
pred rokom som sa pohraval s tymto projektom ale moc ma nezaujal. vdaka za perfektne objasnenie - presne tento system je pozadovany vo "velkych" projektoch. a hlavne system transformacie xml podporuje vymenu xml dat medzi web domenami (vysledky zapasov,pocasie,bankove kurzy ...) ak sa to v nasich koncinach rozmohne ziskame silny nastroj ktory sa aj tak vsetci pokusame napisat na vlastnu pest :o)