Apache Cocoon

De Viquipèdia
Dreceres ràpides: navegació, cerca

Apache Cocoon o Cocoon és un entorn de programació de pàgines web dinàmiques al voltant dels conceptes de procés de transformacions en seqüència (ang.: pipeline), separació d'aspectes i componentització.

L'entorn es basa en l'expressió dels elements en XML i la seva transformació mitjançant fulls d'estil XSLT.

Tot el procés es compila generant una Servlet Java per a ser emprada en un servidor Tomcat o altres servidors contenidors de Servlets.

Segons el model MVC (Modelització/Visualització/Controlador) la modelització (Accions) es fa en Java, el controlador en Flowscript (una extensió de Javascript) i la visualització és el resultat del procés de transformacions descrit anteriorment a partir de pàgines XSP (XML Server Pages) amb marcatge separador de contingut i llògica i també a partir de documents XML o de generadors d'esdeveniments SAX.

El SiteMap[modifica | modifica el codi]

El sitemap és l'element base de la configuració de Cocoon. Descriu els components emprats i la seqüència de processos (pipeline) per a cadascun dels patrons de comanda http (URI) especificats.

Seqüència de procés (pipeline)[modifica | modifica el codi]

En un sitemap poden especificar diverses pipelines.

Matchers o Encaixos de patrons 
Permeten especificar els patrons de comanda http als quals es respondrà amb la present pipeline. Cada pipeline té un únic component matcher. Els comodins dels patrons del matcher estàndard o els grups en un matcher d'expressions regulars permeten captar en variables les parts de la URI.
Accions 
Les accions permeten executar codi Java per a les requestes que comportin la modificació de les dades de sessió o l'actualització de la base de dades. Cada acció retorna un diccionari de variables utilitzable en la resta del procés. Si es retorna NULL la pipeline s'avorta. Es poden concatenar diverses accions cadascuna de les quals fondrà el seu diccionari amb el diccionari precedent.
Generadors 
Els generadors permeten generar dinàmicament documents XML com a origen de transformació, emprant entre altres paràmetres les claus dels diccionaris de les accions precedents.
Lectors 
Els lectors permeten proporcionar documents o fitxers estàtics (ex. imatges) sense transformar. Són origen i final de la pipeline.
Agregadors 
Els agregadors permeten agregar XML procedent de parts (subdocuments XML a incorporar) o subpipelines.
Selectors 
Els selectors permeten establir alternatives de transformació a partir de les variables de la pipeline.
Transformadors 
Transformen el resultat del pas anterior mitjançant un full d'estil XSLT.
Serialitzadors 
Generen la sortida en el format especificat.
Vistes 
Les vistes (views) s'utilitzen per a proves. Creen un punt de sortida a la pipeline.

El Controlador[modifica | modifica el codi]

El controlador en llenguatge Flowscript (extensió de Javascript) permet especificar el flux de treball de diverses pàgines en una rutina, mitjançant continuacions.

El mecanisme de continuacions permet continuar una rutina en un punt intermedi prèviament interromput, havent desat la pila de crides i l'entorn de variables, establint un punt d'entrada.

Les dades de continuació es desen amb les dades de sessió i el seu identificador pot ser utilitzat com a paràmetre ocult en un formulari.

Enllaços externs[modifica | modifica el codi]