Apache Cocoon

Da Wikipedia, l'enciclopedia libera.

Apache Cocoon, spesso chiamato semplicemente Cocoon, è un framework di sviluppo web costruito intorno ai concetti di separazione dei componenti di un'applicazione web. Il framework si basa sulla tecnologia XML ed è costruito utilizzando il linguaggio Java. La flessibilità offerta dall'XML consente una rapida pubblicazione dei contenuti in diversi formati come HTML, PDF e WML. Un potente Content Management System, Apache Lenya, si può associare al framework, anche se negli ultimi periodi sono nati altri CMS compatibili con Cocoon. Cocoon è anche usato come strumento di data warehouse o come middleware per trasferire dati tra sistemi eterogenei.

Sitemap[modifica | modifica wikitesto]

La sitemap è il cuore di Cocoon. È qui che lo sviluppatore configura i differenti componenti di Cocoon e definisce le interazioni Client/Server in quello che Cocoon indica come la Pipeline.

Componenti[modifica | modifica wikitesto]

I componenti all'interno di Cocoon sono raggruppati per funzione.

Matchers[modifica | modifica wikitesto]

I matchers sono usati per abbinare le richieste degli utenti come URL o cookie con wildcard o espressioni regolari. Ogni richiesta utente percorre la pipeline finché non trova un abbinamento. È da questo punto che la particolare richiesta è processata.

Generators[modifica | modifica wikitesto]

I generators creano degli stream di dati xml sotto forma di eventi SAX. Tale stream può essere generato da un documento XML esistente oppure vi sono dei generators che possono creare XML from scratch che rappresentano ad esempio una struttura di directory o i dati relativi a delle immagini.

Transformers[modifica | modifica wikitesto]

I transformers prendono uno stream di eventi SAX e li trasformano in qualche modo. Le trasformazioni più comuni sono eseguite con XSLT per trasformare un formato xml in un altro. Ma vi sono anche transformers che eseguono altri tipi di trasformazioni (SQL ad esempio, che esegue query su un database).

Serializers[modifica | modifica wikitesto]

Un serializer prende uno stream di eventi SAX e lo invia al client dopo averlo trasformato in un formato compatibile con il client. Vi sono serializers che permettono di inviare i dati in molti formati differenti inclusi HTML, XHTML, PDF, RTF, SVG, WML e plain text, ad esempio.

Selectors[modifica | modifica wikitesto]

I selectors offrono le stesse capacità dei matcher, ma con un approccio più simile a quello di un'istruzione switch (o if-else). Sono capaci di selezionare particolari elementi della request arrivata dal client e scegliere se una determinata parte della pipeline (ad esempio una specifica trasformazione) debba essere eseguita o meno.

Views[modifica | modifica wikitesto]

Le view consentono di "interrompere" la pipeline in un punto preciso della sua esecuzione. Si usano principalmente per fare test (ad esempio per vedere l'XML prima e dopo una determinata trasformazione).

Readers[modifica | modifica wikitesto]

I reader passano uno stream di dati (quindi senza alcun parsing XML) direttamente al client. Sono utilizzati per le immagini od altri file statici.

Azioni[modifica | modifica wikitesto]

Le actions sono classi java che eseguono business logic.

Pipeline[modifica | modifica wikitesto]

La Pipeline è usata per definire come i differenti componenti di Cocoon devono interagire con le differenti richieste per produrre una risposta da inviare al client.

Collegamenti esterni[modifica | modifica wikitesto]