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)?
Názory k článku
Cocoon v příkladech: Úvod
Konkrétne projekty
celé vláknoRe: Konkrétne projekty
celé vláknoSkus 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:)
Re: Konkretne projekty
celé vláknoKrome 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.
Re: Konkrétne projekty
celé vláknoNeviem ci este, ale Internet banking SLSP bezal na Coconome.
rychlost
celé vláknozajimavy 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?
Re: rychlost
celé vláknoTake 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.
Re: rychlost
celé vláknoVe 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 !
Re: rychlost
celé vláknoChtel 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.
DOM a SAX
celé vláknoNezná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.
Re: DOM a SAX
celé vláknoSTX 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
celé vláknoPokud chcete pouzivat cocoon ke generovani statickych
stranek, reseni muze byt apache forrest, http://xml.apache.org/forrest.
Re: Forrest
celé vláknoForrest 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.
Podekovani
celé vláknoDiky za tento clanek. Jako internetovy programator pracujici v PHP zavistive posilhavam po Jave a vzdy s velkym zajmem ctu podobne clanky.
Konecne ;-)
celé vláknoKonecne...
Cocoon je tu uz dlouho a nikdo se tomu zatim nevenoval... ;-)
Jiné jazyky než java
celé vláknoLze 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 :-(.
Re: Jine jazyky nez java
celé vláknoPochybuju, 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).
dik za objasnenie
celé vláknopred 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)
Priklad
celé vláknoJe to docela zajimave. Vzhledem k nazvu clanku (serie) je to asi zbytecny dotaz, ale bude i nejaky priklad? Nejlepe takovy, ktery vznikne z niceho a na konci dela neco, a ktery by si clovek mohl zopakovat u sebe.
Re: Priklad
celé vláknoAno, presne takove priklady si predstavuju. Jen necekejte nic komplexniho - vzhledem k moznemu rozsahu to budou priklady opravdu primitivni, ktere ukazou nejakou vlastnost nebo postup. Tak se nechte prekvapit pristim pokracovanim :-)

