Indice General
Total Page:16
File Type:pdf, Size:1020Kb
i Indice general 4. Apache Lenya 1.4: Arquitectura 1 4.1. Introduccion .................................... 1 4.1.1. Arquitectura del sistema ......................... 1 4.1.2. Arquitectura del gestor de contenidos ................. 2 4.2. Conceptos basicos ................................ 4 4.2.1. Modulos .................................. 4 4.2.2. Polimor smo de las publicaciones .................... 4 4.2.2.1. El protocolo fallback:// .................... 6 4.3. La capa de presentacion ............................. 6 4.3.1. Los sitemaps de Lenya .......................... 6 4.3.1.1. El espacio de URIs ....................... 6 4.3.1.2. Proceso de una peticion .................... 8 4.4. La capa de gestion ................................ 11 4.4.1. Marco de casos de uso .......................... 11 4.4.1.1. Introduccion .......................... 11 4.4.1.2. Descripciondel funcionamiento ................ 13 4.4.1.3. Implementacionde un caso de uso .............. 13 4.4.2. Control de acceso ............................. 16 4.4.2.1. De niciones basicas ...................... 17 4.4.2.2. Componentes .......................... 18 4.4.2.3. Los mecanismos de autorizaciony autenticacion ...... 19 4.4.3. Flujo de trabajo ............................. 19 4.4.3.1. La de niciondel ujo de trabajo ............... 21 4.4.3.2. Personalizaciondel ujo de trabajo ............. 23 4.4.4. Noti caciones ............................... 23 4.5. La capa de repositorio .............................. 24 4.5.1. Acceso al repositorio ........................... 24 4.5.1.1. Control optimista de concurrencia .............. 24 4.5.1.2. Check-In y Check-Out ..................... 25 4.5.2. Control de versiones ........................... 25 4.6. Arquitectura fsica ................................ 25 4.6.1. Estructura de directorios de una publicacion ............. 25 4.6.2. Estructura de directorios de un modulo ................ 27 ii 4.6.2.1. Adicionde un nuevo modulo ................. 28 4.6.2.2. El chero module.xml ..................... 29 4.6.3. Estructura de directorios de la aplicacion ............... 29 1 Captulo4 Apache Lenya 1.4: Arquitectura 4.1. Introduccion Apache Lenya estaconstruido sobre la arquitectura de publicacionde Apache Cocoon a la que se le han a~nadidocomponentes propios para aportar funcionalidades de gestionde contenidos, como, por ejemplo: Edicionde contenidos: Para ello se han integrado varios editores WYSIWYG, y se han creado modulospara soportar los protocolos WebDAV y Neutron (OSR-101). Gestiondel sitio: Funcionalidades para crear documentos, moverlos, eliminarlos, etc. Mecanismos de plani caciony noti cacion Control de acceso Gestionde ujo de trabajo Motor de busquedas: Proporciona busquedasen los campos de contenido de cheros XML basadas en Apache Lucene. En los proximos apartados de este captulode niremos algunos conceptos basicos y analizaremos algunos de los aspectos masimportantes de cada una de las capas que constituyen la arquitectura funcional de Lenya. Para nalizar, describiremos brevemente la arquitectura fsicadel mismo. 4.1.1. Arquitectura del sistema La arquitectura de un sistema basado en Lenya serapor tanto la que se muestra en la gura 4.1. Como podemos ver, se trata de un sistema tremendamente exible tanto en los formatos de publicacion,los medios de ediciony repositorios de contenidos a elegir. Apache Lenya soporta publicacionmulticanal y permite disponer de una amplia variedad de clientes 2 CAPITULO 4. APACHE LENYA 1.4: ARQUITECTURA Figura 4.1: Arquitectura de un sistema basado en Apache Lenya 1.4 de CMS, desde navegadores web hasta programas de dise~noavanzados como Dreamweaver. Tambienexiste una gran exibilidad en cuanto al repositorio de contenidos, pudiendose elegir entre el sistema de archivos, bases de datos con conector JDBC, bases de datos XML, etc. Tambiense proporciona integracioncon repositorios JCR, aunque estaes aunlimitada y previsiblemente la integraciontotal se lleve a cabo en la version1.6. Esta gura nos permite observar ademaslas futuras lneasde dise~node Lenya. Se han dado ya los primeros pasos para soportar el protocolo Neutron (OSR-101) y para la integracioncon repositorios que sigan la especi cacionJSR-170. Con esto se persigue conseguir un sistema como el de la gura 4.2. Sin embargo, como ya hemos comentado, esto constituye una lneade futuro y aun estasujeta a discusiondentro de la comunidad de desarrolladores de Lenya. Por ejemplo, la limitaciondel repositorio a repositorios JSR-170 es un tema muy debatido. 4.1.2. Arquitectura del gestor de contenidos La losofadetrasdel dise~node la arquitectura de Lenya podraresumirse en los siguientes puntos: Facilidad de migracionde portales basados en Cocoon. Reutilizacionde componentes de codigoabierto de probada e ciencia: Ant, Quartz Scheduler, Log4j... 4.1. INTRODUCCION 3 Figura 4.2: Futura arquitectura de un sistema basado en Apache Lenya Descentralizacion:Sistema de bloqueo de cheros mientras estansiendo modi cados. Respeto a los patrones de dise~node Avalon y Cocoon. Modularizacion:Las distintas funcionalidades de Lenya se implementan mediante modulos. Polimor smo de las publicaciones: Las publicaciones pueden sobreescribir funcionali- dades implementadas por el nucleocon compatibilidad con futuras versiones garanti- zada. La arquitectura funcional de Lenya permite una divisionen tres capas, segunvemos en la gura 4.3. La capa de presentaciones la encargada de generar la interfaz CMS, interactuar con los programas de ediciony mostrar la publicacion. La capa de gestionse encarga del control de acceso, del ujo de trabajo, la gestion de la plani caciony las transacciones de la logica de negocio. La capa de repositorio actuacomo interfaz con los repositorios de contenidos. Su funciones engloban la generacionde metadatos, el control de versiones y las transacciones de sistema. 4 CAPITULO 4. APACHE LENYA 1.4: ARQUITECTURA Figura 4.3: Arquitectura de capas de Lenya 4.2. Conceptos basicos 4.2.1. Modulos Un modulo es un paquete que que proporciona un conjunto de recursos o una funcionalidad. Por ejemplo, un modulopuede utilizarse para proporcionar un nuevo tipo de recurso, una implementacionde repositorio o un conjunto de hojas de estilo XSLT. Algunos de los modulosincluidos en la distribucionde Lenya son: lucene: Proporciona funcionalidades de busqueda. lenyadoc: A~nadeel protocolo lenyadoc://. administration: Proporciona la funcionalidad de gestionde usuarios. links: Tipo de recurso para gestionar listas de vnculos. 4.2.2. Polimor smo de las publicaciones Apache Lenya delega la personalizaciondel nucleodel gestor a las publicaciones. Esto signi ca que desde las publicaciones se pueden sobreescribir o extender las funciona- lidades que ofrece el nucleo.Gracias a esta caracterstica, las modi caciones de aspectos del nucleorequeridas por algunas publicaciones podranser realizadas sin afectar al resto. Ademas,se tendrala garantade que dichos cambios serancompatibles con futuras versiones de Lenya. Veamos comoes posible esto. La API de Lenya se divide en nucleoe implementacion.El nucleo comprende aque- llas interfaces y algunas clases muy concretas que de nen el comportamiento de Lenya como gestor de contenidos y que puede garantizarse que serancompatibles con futuras versiones. La implementaciondel nucleo,por su parte, estaformada por modulosque implementan 4.2. CONCEPTOS BASICOS 5 Figura 4.4: Plantillas de publicacion funcionalidades de nidas por dichas interfaces. Para proporcionar una funcionalidad con- creta, ademasde las clases de Java que implementan las interfaces correspondientes, los modulostambienpueden contener un sitemap, hojas de estilo XSLT, JXTemplates, etc. Las publicaciones pueden sobreescribir cualquiera de los cheros que forman par- te de los modulos,incluidas las clases de Java. Si dentro de alguna publicacionse desea modi car algun chero de un moduloen particular, habraque ubicarlo en PUB HOME/lenya/modules/<nombre modulo>/ruta-relativa-hacia- chero Gracias a este mecanismo, las publicaciones podranreemplazar las implementa- ciones del nucleopor otras personalizadas, con la garantade que se mantendrala com- patibilidad con futuras versiones. Esto ultimoseracierto siempre y cuando se respeten las interfaces de nidas en el nucleode la API. As,podramodi carse la forma en que se al- macenan los datos de los usuarios para que en lugar de guardarse en el sistema de cheros se guardasen en una base de datos. Ademasde la posibilidad de sobreescribir o extender el nucleoque ya existaen la version1.2, la version1.4 extiende estos mecanismos a las propias publicaciones. En la nueva version,las publicaciones pueden compartir propiedades arbitrarias ( cheros XSLT, cheros de con guracion, cheros de cuentas de usuarios, tipos de recursos, etc.). En efecto, toda publicacionpuede ser empleada como plantilla para una nueva publicacion,creandosede este modo publicaciones derivadas de estaque se denominan "instancias". No existe limitacionen cuanto al nivel de anidacion.De esta forma, se posibilita la creacionde portales corporativos con una apariencia consistente de forma sencilla y evitando redundancias. Las publicaciones derivadas pueden sobreescribir los cheros heredados de la publi- cacionplantilla simplemente replicando la estructura de directorios y el nombre del chero 6 CAPITULO 4. APACHE LENYA 1.4: ARQUITECTURA en cuestion.Si un chero es sobreescrito, los cambios en el chero original almacenado en la publicacionplantilla no tendranningunefecto sobre el chero sobreescrito de la publicacion derivada. 4.2.2.1. El protocolo fallback:// Estos