|
Módulos del SistemaezContent se compone de varios módulos, la mayoria de los cuales son reemplazables, ya que estan definidos por interfaces y aunque se ofrece una implementación por default, no hay realmente dependencia entre ellos. AutentificaciónEste módulo define las interfaces necesarias para manejar autentificacion dentro del CMS. Es bastante sencillo pero poderoso, pues maneja el esquema de usuarios-grupos-permisos, en el cual un usuario puede pertenecer a varios grupos, cada uno de los cuales puede tener asignados varios permisos. Un permiso simplemente es una definicion de algo que se puede hacer en el sistema, cada permiso tiene un nombre único. DocumentosEste módulo define las interfaces para el manejo de documentos. Un documento es un objeto con un título, texto, archivos anexos, imágenes, referencias a otros documentos, ligas al exterior (otros sitios) y que reside dentro de un tema. Los temas forman una estructura jerárquica similar a un filesystem, donde un tema puede tener N subtemas pero solamente un tema padre. WorkflowEste módulo define interfaces para manejar un flujo de trabajo sobre distintos objetos, en la forma de acciones que se deben realizar sobre los mismos. Se pueden definir distintos tipos de acciones, entre las cuales se definen los flujos, teniendo una accion inicial especial, la cual tiene varias acciones siguientes (consideras las verdaderas acciones iniciales), y cada una de ellas tiene acciones siguientes, etc). Una accion es la encarnación de un tipo de acción, la cual tiene un usuario asignado (el cual debe realizar esta acción), un objeto asignado (sobre el cual debe realizarse la acción), un status y una fecha de terminación (si es que ya fue realizada). ezContent ofrece una implementación de estas interfaces, en el paquete net.ezcontent.impl.eos, utilizando Hibernate 2.1. DAO (Data Access Objects)Se definen tres objetos para acceso a datos: uno para los objetos de autentificación, uno para los documentos, y otro para acciones. Tambien existe una interfaz que define un DAO genérico; esta interfaz la extienden los tres DAO's concretos. La implementación de los DAO's por lo general va ligada con la implementación de los objetos de negocio. ezContent ofrece una implementación de estas interfaces, en el paquete net.ezcontent.impl.dao, utilizando Hibernate 2.1 en conjunto con Spring 1.0 (La implementación directa del DAO es con Hibernate, pero se usan interceptores y clases de Spring para manejar las sesiones de Hibernate). BackendEste módulo es una aplicación completa hecha con Tapestry 3.0 y Spring 1.0, la cual permite la edición de documentos, manejo del flujo de trabajo, administración de usuarios/grupos/permisos, y además se puede extender sin mucho problema, para acomodar nuevas secciones, tipos de documentos, etc. Gracias al manejo de beans que ofrece Spring, el backend no depende de la implementación default de ezContent; se puede hacer una implementación nueva utilizando JDO o algun otro ORM (o construir un ORM minimo propio, con una implementación interna usando JDBC directamente). Tampoco depende del application server ni de la base de datos utilizada. Solamente hay que editar el archivo applicationContext.xml para definir ahi los beans necesarios (siempre deben ser los mismos, cuando menos) y con eso se pueden usar distintas implementaciones. La única dependencia real del backend son las interfaces de ezContent, el uso de Tapestry y de Spring. | |||||||||||||||||||||||||