Open Source World Conference: Nuxeo 5
-
Upload
yerbabuena-software -
Category
Technology
-
view
2.297 -
download
2
Transcript of Open Source World Conference: Nuxeo 5
![Page 1: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/1.jpg)
Nuxeo EP 5Qué es ECM
![Page 2: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/2.jpg)
¿Qué es ECM?
● Producción● Logística● Distribución● Recursos Humanos● Contabilidad● Gestión de activos● ...
1990-2000...
ERP
![Page 3: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/3.jpg)
¿Qué es ECM?
● Documentos (Registros, email, medios)● Motor de búsqueda● Archivado● Colaboración● Publicación web● Control de acceso● Cumplimiento con estándares/legalidad● ...
2000- 20...
ECM
![Page 4: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/4.jpg)
¿Qué es ECM?
● Tecnologías usadas para– Capturar
– Crear
– Gestionar
– Almacenar
– Preservar
– Reusar
– Entregar
en una empresa
![Page 5: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/5.jpg)
¿Qué es ECM?
www.iloveecm.com
![Page 6: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/6.jpg)
Nuxeo EP 5Arquitectura
![Page 7: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/7.jpg)
Nuxeo Enterprise Platform
● Una plataforma ECM– Servicios y componentes genéricos con un modelo de
extensión y customización.
● Un framework para construir aplicaciones ECM– Clientes Ligeros (Web)
– Clientes Ricos (RCP)
– Pila de Servicios ECM
● Aplicaciones ECM paquetizadas– Nuxeo EP 5 WebApp
– Nuxeo EP 5 + Apogee
![Page 8: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/8.jpg)
Nuxeo Enterprise Platform
Cliente web
Cliente Flex
Cliente RCP
Audit
Workflow
Nuxeo CoreRelations
Transformations
Search/Index
Directories
Import/Export
...
Rest/WS API
WebApp
Presentación Servicio RepositorioNuxeo Runtime.
Modelo de componentes
![Page 9: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/9.jpg)
Nuxeo EP 5 – Capas principales
● Runtime layer: Infraestructura OSGi– Provee el modelo de extensión y componentes
– Provee servicios de desplegado
● Core layer: Repositorio de documentos embebido.– Servicios extensibles orientados a almacenamiento
● Service layer: Conjunto extensible de servicios ECM.– Conjunto de servicios genéricos y configurables
● Client layer: Bloques de la interfaz gráfica– Acciones añadibles y gestión de vistas
– Basadas en Web o en Clientes ricos
![Page 10: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/10.jpg)
Nuxeo EP 5 – Claves Arquitecturales
● Transparencia en el despliegue– Plataforma OSGi (Eclipse RCP) o Plataforma JEE(JBoss
AS)
– Los componentes pueden ser desplegados en la parte del cliente o en la de servidor
● Extensibilidad– Los componentes de Nuxeo proveen de un Sistema de
Puntos de Extensión
– Los componentes pueden ser configurados y extendidos● Via XML● Via clases Java
![Page 11: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/11.jpg)
Nuxeo EP 5 – Claves Arquitecturales
● Flexibilidad– Elegir los componentes de acuerdo a las necesidades del
negocio
● Basado en estándares– JEE: EJB3, JSF, JMS, JTA
– Java: OSGi, JCR
– XML: XSD (Definición de los tipos de documento), RDF (relaciones)
– Software Libre: Lucene, Jena RDF, JackRabbit, Seam, Restlets
– Web: http y webdav
– Servicios Web: JAX-RPC, JAX-WS, XML-RPC, REST
![Page 12: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/12.jpg)
Nuxeo EP 5 – Claves Arquitecturales
● APIs para todos los gustos:– API POJO para servicios locales
– EJB3 para servicios remotos
– API de Servicios Web (JAX-WS y WS-Addressing
– REST API
– WebDAV API
– JS API para Ajax
● Sistema de empaquetado y compilación integrado– Maven 2.0 para compilar, testear y empaquetar
– Nuxeo deployer para el despliegue de los componentes
![Page 13: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/13.jpg)
Nuxeo EP 5 – Claves Arquitecturales
Open Source
![Page 14: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/14.jpg)
Nuxeo EP 5Core Framework
![Page 15: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/15.jpg)
Nuxeo EP 5 – Extensibilidad
Modelo de Seguridad
Política de Ciclos de vida
Versionado
Modelo de documentos
Sistema de Eventos
Modelo de almacenamiento
XML
XML
XML
Code
CodeXSD
![Page 16: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/16.jpg)
Nuxeo EP 5 – Nuxeo Core
Oferta de puntos de extensión
<component name="core.TypeService" version="1.0"> <implementation class="org.nuxeo.ecm.core.schema.TypeService"/> <extension-point name="schema"> <object class="org.nuxeo.ecm.core.schema.SchemaBinding-Descriptor"/> </extension-point> <extension-point name="doctype"> <object class="org.nuxeo.ecm.core.schema.DocumentType-Descriptor"/> </extension-point></component>
![Page 17: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/17.jpg)
Nuxeo EP 5 – Nuxeo Core
Contribución a través de puntos de extensión
<component name="MyTypes" version="1.0"> <extension target="core.TypeService" point="schema"> <schema name="common" src="common.xsd"/> <schema name="dublincore" src="dublincore.xsd" prefix="dc"/> </extension> <extension target="core.TypeService" point="doctype"> <doctype name="Note" extends="Document"> <schema name="common"/> ... </doctype> </extension></component>
![Page 18: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/18.jpg)
Nuxeo EP 5 – Nuxeo Core
● Servicio de Repositorio de Documentos– Diseñado para ser altamente pluggable (JCR, SQL)
– Backend de almacenamiento independiente
– Standalone o integrado con Nuxeo 5 EP
● Nuxeo EP puede usar varios repositorios al mismo tiempo
![Page 19: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/19.jpg)
Nuxeo EP 5 – Claves
● Declaración de esquemas y tipos de documentos basada en XSD– Soporte para tipos complejos
– Soporte para la herencia de esquemas y tipos de documento
● Modelo de seguridad pluggable● Versionado pluggable
– Política de versionado
– Almacenamiento del versionado
![Page 20: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/20.jpg)
Nuxeo EP 5 – Claves
● Backend de almacenamiento pluggable– JCR: Sistema de Ficheros o backend JDBC
– En desarrollo otros backend no basados en JCR (almacenamiento SQL nativo)
● Gestión del ciclo de vida configurable● Tubería Import/Export pluggable● Carga perezosa de documentos
– Pre-fetching configurable
![Page 21: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/21.jpg)
Nuxeo EP 5 – Claves
● Soporte a las consultas– Lenguaje de consultas NXQL (ex: querymodel-contrib.xml)
– Conector BIRT ODA
● API Flexible– API POJO
– API EJB3
– WS: JAX-RPC
– WebDAV API
![Page 22: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/22.jpg)
Nuxeo EP 5 – Nuxeo Core
● Esquemas● Tipos de documento● Ciclo de vida
![Page 23: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/23.jpg)
Nuxeo EP 5 – Nuxeo Core
Esquemas
<xs:schema> <xs:element name="title" type="xs:string"/> <xs:element name="description" type="xs:string"/> <xs:element name="rights" type="xs:string"/> <xs:element name="created" type="xs:date"/> <xs:element name="modified" type="xs:date"/> <xs:element name="issued" type="xs:date"/> <xs:element name="format" type="xs:string"/> <xs:element name="language" type="xs:string"/> ...</xs:schema>
![Page 24: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/24.jpg)
Nuxeo EP 5 – Nuxeo Core
<xs:schema> <xs:complexType name="baddie"> <xs:sequence> <xs:element name="surname" type="xs:string"/> <xs:element name="level" type="xs:positiveInteger"/> <xs:element name="birth" type="xs:date"/> </xs:sequence> </xs:complexType> <xs:complexType name="baddies"> <xs:sequence> <xs:element name="baddie" type="baddie" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:element name="baddies" type="baddies"/></xs:schema>
![Page 25: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/25.jpg)
Nuxeo EP 5 – Nuxeo Core
Esquemas: el equivalente XML
<baddies> <baddie> <surname>Sylar</surname> <level>38</level> <birth>1962-06-11</birth> </baddie></baddies>
![Page 26: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/26.jpg)
Nuxeo EP 5 – Nuxeo Core
Tipos de documento
<doctype name="Note" extends="Document"> <schema name="dublincore"/> <schema name="note"/> <facet name="Commentable"/> <facet name="Versionable"/> <facet name="Publishable"/></doctype>
![Page 27: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/27.jpg)
Nuxeo EP 5 – Nuxeo Core
Ciclo de vida
<lifecycle name="default" initial="project"> <states> <state name="project"> <transitions> <transition>approve</transition> </transitions> </state> <state name="approved"> <transitions> <transition>obsolete</transition> </transitions> </state> <state name="obsolete"/> </states> ...
![Page 28: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/28.jpg)
Nuxeo EP 5 – Nuxeo Core
Ciclo de vida
<lifecycle name="default" initial="project"> ... <transitions> <transition name="approve" destination="approved"> <description>Approve the document</description> </transition> <transition name="obsolete" destination="obsolete"> <description>Obsolete the document</description> </transition> </transitions></lifecycle>
![Page 29: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/29.jpg)
Nuxeo EP 5Pila de servicios
ECM
![Page 30: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/30.jpg)
Nuxeo EP 5 – Claves
● Pila de Servicios ECM de Nuxeo EP 5– Provee servicios genéricos de ECM
– Los servicios están pobremente acoplados y pueden ser utilizados independientemente
● La mayoría de los servicios proveen 2 tipos de acceso– API Local: POJO
– API Remota: EJB3
– Localización transparente del servicio a través de las Nuxeo API:
● Framework.getService()● La pila de servicios puede estar dividida en varias
JVMs
![Page 31: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/31.jpg)
Nuxeo EP 5 – Ejemplo de Servicios Web
● WorkflowService– Motor de BPM (jBPM por defecto) y Abstract Workflow
● RelationService– Motor de Abstract Relation (RDF/Jena)
● SearchService– Motor de Consultas (NXQL) e Indexación
(Compass/Lucene)
● DirectoryService– Motor de registros con soporte SQL/LDAP
● MimetypeService– Servicio de detección de Mimetypes
![Page 32: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/32.jpg)
Nuxeo EP 5 – Ejemplo de Servicios Web
● EventService– API de mensajería sobre JMS
● FileManagerService– API de gestión de archivos
● LayoutService– Servicio para gestionar los layouts asociados a tipos de
documentos
● ActionService– Gestiona acciones y condiciones
● AuthenticationService– Gestiona la autenticación sobre JAAS
![Page 33: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/33.jpg)
Nuxeo EP 5Clientes ECM
![Page 34: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/34.jpg)
Cliente Web Estándar
● Acceso a toda la plataforma a través del navegador● Integra las últimas tecnologías web JEE
– JSF 1.2 y Facelets
– Seam (enlaza JSF y EJB3)
– Ajax4JSF
● Integra un servicio de themes● Pluggable
– Contribuciones de configuración
– Contribuciones para vistas
– Contribuciones para acciones
– Contribuciones para themes
– ...
![Page 35: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/35.jpg)
Interfaz Web – Claves
● Totalmente pluggable– Cada componente contribuye a alguna parte de la UI
– Cada servicio debe incorporar su parte web
● Integración Seam– Los servicios de Nuxeo son accedidos de forma
transparente como objetos Seam
● Infrastructura incorporada– Motor de Formularios / Layout
– Consultas
– Componentes NX JSF
● JSF mejorado– Navegación REST
![Page 36: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/36.jpg)
Interfaz Web – Contribuciones a las vistas
NXWorkflow
NXRelations
NXAudit
![Page 37: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/37.jpg)
Apogée – Cliente Rico
● Utilizado principalmente para alta carga de contribuciones al contenido y tratamiento de medios– Edición de texto estructurada
– Gestión de imágenes
– Necesidades de alta productividad
● Sistema de plugins de Eclipse (basado en OSGi)– El mismo modelo que el cliente web
– Algunos servicios comunes con el cliente web
– Contribuciones para la configuración
– Contribuciones para portlets
– Contribuciones para acciones
– ...
![Page 38: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/38.jpg)
Nuxeo Shell – Cliente de línea de comandos
● Orientado a usuarios técnicos– Administración técnica
– Importación masiva de documentos
– Testeo
● Sistema de plugins para contribuir nuevos comandos
![Page 39: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/39.jpg)
Cliente rico embebido - eRCP
● Utilización de Proyecto Eclipse: eRCP– eSWT
– eWorkbench
– eJFaces
● Comunicación via Restlets
● Extensibilidad– Sistema de plugins de
Eclipse (basado en OSGi)
● Compatible con dispositivos CDC
![Page 40: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/40.jpg)
Cliente Flash
● Utilizado para algunos proyectos específicos– Características simples
– Look&Feel muy específico
● Utiliza la REST API de Nuxeo para comunicar con el servidor
![Page 41: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/41.jpg)
Cliente WCM
● Nuevo WebEngine orientado a WCM– Wiki, Blogs, ...
– Gestión de contenidos para sitios webs
● Basado en tecnologías conocidas por los webmasters– Freemaker
– Scripts
● Integrado con el modelo de componentes de Nuxeo Runtime– Contribuciones de plantillas
– Contribuciones de scripts
– ...
![Page 42: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/42.jpg)
Clientes de integración con el escritorio
● Soporte de Drag&drop– IE(.NET)/FF(XPI) plugin
– Acceso al servidor a través de Restlet y Seam
● Integración del editor (liveedit v2)– Protocolo nxedit
● Win32: manejador .net● Multiplataforma: plugin de Firefox
– El proceso de lanzamiento del editor depende del mime
– Objetivos principales● OpenOffice a través de Java/UNO● MSOffice a través de .NET COM Interop + MSO plugin
– Comunicación con el servidor a través de JAX-WS/Restlets
![Page 43: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/43.jpg)
Nuxeo EP 5APIs
![Page 44: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/44.jpg)
APIs
● Java API– Disponible en todos los componentes (Servicios y Núcleo)
● Remote Java API (EJB3)– Disponible en la mayoría de los componentes
● WS JAX-RPC– API de lectura para la mayoría de los datos
● WS JAX-WS– Infraestructura preparada (WS-Addressing)
● WebDAV– Acceso pluggable al repositorio de contenido
![Page 45: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/45.jpg)
APIs
● XML-RPC– Infraestructura pluggable
● REST API– API fácilmente pluggable
– La API actual ya provee las características básicas
● Portlet JSR 168– Portlets simples
– Portlets API
● JavaScript API via Seam Remoting
![Page 47: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/47.jpg)
Nuxeo EP 5Qué es ECM
![Page 48: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/48.jpg)
¿Qué es ECM?
● Producción● Logística● Distribución● Recursos Humanos● Contabilidad● Gestión de activos● ...
1990-2000...
ERP
Hasta hace algunos años las empresas se han dedicado a la gestión de los procesos habituales de su negocio, entendiendo como tales aquellos que formaban parte de la propia dinámica empresarial como son (el listado).
Fruto de la necesidad de automatizar al máximo esta gestión aparecen los sistemas de planificación de recursos empresariales o ERPs: SAP, Microsoft Dynamics... , OpenBravo, Compiere ...
Objetivo: aunar en una megaplataforma la gestión de todos estos procesos, servicio consultoría... bla bla bla
![Page 49: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/49.jpg)
¿Qué es ECM?
● Documentos (Registros, email, medios)● Motor de búsqueda● Archivado● Colaboración● Publicación web● Control de acceso● Cumplimiento con estándares/legalidad● ...
2000- 20...
ECM
Otras líneas del negocio de una empresa aparecen y se hacen importantes. Las relacionadas con la información y la documentación.
Sistemas para solucionar estos problemas: ECM.
Propietarios:Vignette –> 250k – 400k$Documentum -> 50k – 200k$
Libres:AlfrescoNuxeo
![Page 50: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/50.jpg)
¿Qué es ECM?
● Tecnologías usadas para– Capturar
– Crear
– Gestionar
– Almacenar
– Preservar
– Reusar
– Entregar
en una empresa
![Page 51: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/51.jpg)
¿Qué es ECM?
www.iloveecm.com
- Espacios de trabajo, secciones y plantillas- Crear objetos- Relaciones- Gestión de usuarios- Workflow (mirar dashboard)- Publicación (publicación normal y con aprobación)- Derechos de acceso- Gestión de temas.
![Page 52: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/52.jpg)
Nuxeo EP 5Arquitectura
![Page 53: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/53.jpg)
Nuxeo Enterprise Platform
● Una plataforma ECM– Servicios y componentes genéricos con un modelo de
extensión y customización.
● Un framework para construir aplicaciones ECM– Clientes Ligeros (Web)
– Clientes Ricos (RCP)
– Pila de Servicios ECM
● Aplicaciones ECM paquetizadas– Nuxeo EP 5 WebApp
– Nuxeo EP 5 + Apogee
Cómo está construido Nuxeo 5? Como una pila de servicios y componentes que solucionan una amplia gama de
No una aplicación. Una plataforma en la que poder construir cualquier aplicación orientada a la gestión de contenidos: aplicación de categorización automática de contenidos; aplicación de digitalización de contenidos desde el papel; aplicación de suscripción a contenidos; aplicación de localización geográfica de documentos físicos...
También son ejemplos de aplicaciones los propios clientes que se utilizan para hacer uso de los servicios ECM:
Cliente web: que nos permite acceder desde el navegador a toda la documentación de la empresa.
Cliente rico de escritorio que nos permite realizar gestiones más complejas sobre contenido multimedia.
![Page 54: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/54.jpg)
Nuxeo Enterprise Platform
Cliente web
Cliente Flex
Cliente RCP
Audit
Workflow
Nuxeo CoreRelations
Transformations
Search/Index
Directories
Import/Export
...
Rest/WS API
WebApp
Presentación Servicio RepositorioNuxeo Runtime.
Modelo de componentes
![Page 55: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/55.jpg)
Nuxeo EP 5 – Capas principales
● Runtime layer: Infraestructura OSGi– Provee el modelo de extensión y componentes
– Provee servicios de desplegado
● Core layer: Repositorio de documentos embebido.– Servicios extensibles orientados a almacenamiento
● Service layer: Conjunto extensible de servicios ECM.– Conjunto de servicios genéricos y configurables
● Client layer: Bloques de la interfaz gráfica– Acciones añadibles y gestión de vistas
– Basadas en Web o en Clientes ricos
Plataforma se distinguen cuatro capas: (listado)La runtime layer es la capa que más nos demuestra
que estamos ante una plataforma orientada a la extensibilidad y construcción de nuevos productos.
Infraestructura OSGi: ● Modelo de gestión del ciclo de vida de una
aplicación.● Registro de servicios.● Entorno de ejecución.● MódulosCore layer capa que
![Page 56: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/56.jpg)
Nuxeo EP 5 – Claves Arquitecturales
● Transparencia en el despliegue– Plataforma OSGi (Eclipse RCP) o Plataforma JEE(JBoss
AS)
– Los componentes pueden ser desplegados en la parte del cliente o en la de servidor
● Extensibilidad– Los componentes de Nuxeo proveen de un Sistema de
Puntos de Extensión
– Los componentes pueden ser configurados y extendidos● Via XML● Via clases Java
![Page 57: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/57.jpg)
Nuxeo EP 5 – Claves Arquitecturales
● Flexibilidad– Elegir los componentes de acuerdo a las necesidades del
negocio
● Basado en estándares– JEE: EJB3, JSF, JMS, JTA
– Java: OSGi, JCR
– XML: XSD (Definición de los tipos de documento), RDF (relaciones)
– Software Libre: Lucene, Jena RDF, JackRabbit, Seam, Restlets
– Web: http y webdav
– Servicios Web: JAX-RPC, JAX-WS, XML-RPC, REST
Como tenemos perfectamente desacoplados un gran número de componentes/aplicaciones que se pueden desplegar orientadas a ECM, puedo elegir para cada compañía que conjunto de estas aplicaciones cubren sus necesidades.
No sólo la plataforma es OS, sino que la podemos considerar también como un conglomerado de otras aplicaciones de OS, y por supuesto cada una de ellas utiliza estándares ampliamente aceptados y utilizados en muchísimas aplicaciones. Como ejemplo las siguientes (listado)
![Page 58: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/58.jpg)
Nuxeo EP 5 – Claves Arquitecturales
● APIs para todos los gustos:– API POJO para servicios locales
– EJB3 para servicios remotos
– API de Servicios Web (JAX-WS y WS-Addressing
– REST API
– WebDAV API
– JS API para Ajax
● Sistema de empaquetado y compilación integrado– Maven 2.0 para compilar, testear y empaquetar
– Nuxeo deployer para el despliegue de los componentes
Para el programador es especialm útil saber que dispone de una amplia gama de APIs ofertadas por la plataforma. Y si lo es para el programador también lo es para el empresario, que podrá encontrar soporte de forma mucho más sencilla, orientándose a la calidad de los servicios en lugar de atarse a un proveedor. Esto es software libre, no ?
![Page 59: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/59.jpg)
Nuxeo EP 5 – Claves Arquitecturales
Open Source
Nuxeo 5 es totalmente opensource:- Una sóla distribución descargable (versión
estable/versión desarrollo)- Completos manuales- Código completo disponible en repositorios
mercurial/subversion...¡¡ No por dogmatismo !! Realmente es un modelo de
negocio para garantizar la velocidad de respuesta y ahorrar costes de infraestructuras.
Enfocado a las necesidades de negocio.Licencias Open Source amigables con los negocios
(EPL y LGPL)
![Page 60: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/60.jpg)
Nuxeo EP 5Core Framework
![Page 61: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/61.jpg)
Nuxeo EP 5 – Extensibilidad
Modelo de Seguridad
Política de Ciclos de vida
Versionado
Modelo de documentos
Sistema de Eventos
Modelo de almacenamiento
XML
XML
XML
Code
CodeXSD
La capa núcleo de Nuxeo 5 es la que resuelve el problema del despliegue del resto de aplicaciones sobre la plataforma. Como decíamos haciendo uso del estándar definido por la OSGI Alliance.
¿Cómo lo hace? A través de puntos de extensión que se ofertan y se contribuyen.
![Page 62: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/62.jpg)
Nuxeo EP 5 – Nuxeo Core
Oferta de puntos de extensión
<component name="core.TypeService" version="1.0"> <implementation class="org.nuxeo.ecm.core.schema.TypeService"/> <extension-point name="schema"> <object class="org.nuxeo.ecm.core.schema.SchemaBinding-Descriptor"/> </extension-point> <extension-point name="doctype"> <object class="org.nuxeo.ecm.core.schema.DocumentType-Descriptor"/> </extension-point></component>
![Page 63: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/63.jpg)
Nuxeo EP 5 – Nuxeo Core
Contribución a través de puntos de extensión
<component name="MyTypes" version="1.0"> <extension target="core.TypeService" point="schema"> <schema name="common" src="common.xsd"/> <schema name="dublincore" src="dublincore.xsd" prefix="dc"/> </extension> <extension target="core.TypeService" point="doctype"> <doctype name="Note" extends="Document"> <schema name="common"/> ... </doctype> </extension></component>
![Page 64: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/64.jpg)
Nuxeo EP 5 – Nuxeo Core
● Servicio de Repositorio de Documentos– Diseñado para ser altamente pluggable (JCR, SQL)
– Backend de almacenamiento independiente
– Standalone o integrado con Nuxeo 5 EP
● Nuxeo EP puede usar varios repositorios al mismo tiempo
Cuáles son los servicios principales que actualmente están ofertados en la plataforma?
Es muy interesante el caso del repositorio de documentos.
Además de utilizar distintos repositorios, también podemos definir las fuentes de nuestros datos en diferentes localizaciones y SGDB
![Page 65: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/65.jpg)
Nuxeo EP 5 – Claves
● Declaración de esquemas y tipos de documentos basada en XSD– Soporte para tipos complejos
– Soporte para la herencia de esquemas y tipos de documento
● Modelo de seguridad pluggable● Versionado pluggable
– Política de versionado
– Almacenamiento del versionado
En el modelo de documentos,- ejemplo de tipo de documento CURRICULUM o
PROYECTOEn el modelo de seguridad, - ejemplo del bloqueo:
http://hg.nuxeo.org/nuxeo/nuxeo-core/file/1.4/nuxeo-core/src/main/resources/OSGI-INF/security-policy-contrib.xml- ejemplo de la extensión de las listas.
![Page 66: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/66.jpg)
Nuxeo EP 5 – Claves
● Backend de almacenamiento pluggable– JCR: Sistema de Ficheros o backend JDBC
– En desarrollo otros backend no basados en JCR (almacenamiento SQL nativo)
● Gestión del ciclo de vida configurable● Tubería Import/Export pluggable● Carga perezosa de documentos
– Pre-fetching configurable
![Page 67: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/67.jpg)
Nuxeo EP 5 – Claves
● Soporte a las consultas– Lenguaje de consultas NXQL (ex: querymodel-contrib.xml)
– Conector BIRT ODA
● API Flexible– API POJO
– API EJB3
– WS: JAX-RPC
– WebDAV API
Servicio que nos permite definir consultas en un lenguaje similar a SQL
![Page 68: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/68.jpg)
Nuxeo EP 5 – Nuxeo Core
● Esquemas● Tipos de documento● Ciclo de vida
Vamos a ver unos ejemplos de uso de algunas de las contribuciones más interesantes en un sistema ECM.
![Page 69: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/69.jpg)
Nuxeo EP 5 – Nuxeo Core
Esquemas
<xs:schema> <xs:element name="title" type="xs:string"/> <xs:element name="description" type="xs:string"/> <xs:element name="rights" type="xs:string"/> <xs:element name="created" type="xs:date"/> <xs:element name="modified" type="xs:date"/> <xs:element name="issued" type="xs:date"/> <xs:element name="format" type="xs:string"/> <xs:element name="language" type="xs:string"/> ...</xs:schema>
![Page 70: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/70.jpg)
Nuxeo EP 5 – Nuxeo Core
<xs:schema> <xs:complexType name="baddie"> <xs:sequence> <xs:element name="surname" type="xs:string"/> <xs:element name="level" type="xs:positiveInteger"/> <xs:element name="birth" type="xs:date"/> </xs:sequence> </xs:complexType> <xs:complexType name="baddies"> <xs:sequence> <xs:element name="baddie" type="baddie" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:element name="baddies" type="baddies"/></xs:schema>
![Page 71: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/71.jpg)
Nuxeo EP 5 – Nuxeo Core
Esquemas: el equivalente XML
<baddies> <baddie> <surname>Sylar</surname> <level>38</level> <birth>1962-06-11</birth> </baddie></baddies>
![Page 72: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/72.jpg)
Nuxeo EP 5 – Nuxeo Core
Tipos de documento
<doctype name="Note" extends="Document"> <schema name="dublincore"/> <schema name="note"/> <facet name="Commentable"/> <facet name="Versionable"/> <facet name="Publishable"/></doctype>
![Page 73: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/73.jpg)
Nuxeo EP 5 – Nuxeo Core
Ciclo de vida
<lifecycle name="default" initial="project"> <states> <state name="project"> <transitions> <transition>approve</transition> </transitions> </state> <state name="approved"> <transitions> <transition>obsolete</transition> </transitions> </state> <state name="obsolete"/> </states> ...
![Page 74: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/74.jpg)
Nuxeo EP 5 – Nuxeo Core
Ciclo de vida
<lifecycle name="default" initial="project"> ... <transitions> <transition name="approve" destination="approved"> <description>Approve the document</description> </transition> <transition name="obsolete" destination="obsolete"> <description>Obsolete the document</description> </transition> </transitions></lifecycle>
Aquí vemos un ejemplo completo de creación de un documento en Nuxeo
![Page 75: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/75.jpg)
Nuxeo EP 5Pila de servicios
ECM
![Page 76: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/76.jpg)
Nuxeo EP 5 – Claves
● Pila de Servicios ECM de Nuxeo EP 5– Provee servicios genéricos de ECM
– Los servicios están pobremente acoplados y pueden ser utilizados independientemente
● La mayoría de los servicios proveen 2 tipos de acceso– API Local: POJO
– API Remota: EJB3
– Localización transparente del servicio a través de las Nuxeo API:
● Framework.getService()● La pila de servicios puede estar dividida en varias
JVMs
![Page 77: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/77.jpg)
Nuxeo EP 5 – Ejemplo de Servicios Web
● WorkflowService– Motor de BPM (jBPM por defecto) y Abstract Workflow
● RelationService– Motor de Abstract Relation (RDF/Jena)
● SearchService– Motor de Consultas (NXQL) e Indexación
(Compass/Lucene)
● DirectoryService– Motor de registros con soporte SQL/LDAP
● MimetypeService– Servicio de detección de Mimetypes
![Page 78: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/78.jpg)
Nuxeo EP 5 – Ejemplo de Servicios Web
● EventService– API de mensajería sobre JMS
● FileManagerService– API de gestión de archivos
● LayoutService– Servicio para gestionar los layouts asociados a tipos de
documentos
● ActionService– Gestiona acciones y condiciones
● AuthenticationService– Gestiona la autenticación sobre JAAS
![Page 79: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/79.jpg)
Nuxeo EP 5Clientes ECM
![Page 80: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/80.jpg)
Cliente Web Estándar
● Acceso a toda la plataforma a través del navegador● Integra las últimas tecnologías web JEE
– JSF 1.2 y Facelets
– Seam (enlaza JSF y EJB3)
– Ajax4JSF
● Integra un servicio de themes● Pluggable
– Contribuciones de configuración
– Contribuciones para vistas
– Contribuciones para acciones
– Contribuciones para themes
– ...
![Page 81: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/81.jpg)
Interfaz Web – Claves
● Totalmente pluggable– Cada componente contribuye a alguna parte de la UI
– Cada servicio debe incorporar su parte web
● Integración Seam– Los servicios de Nuxeo son accedidos de forma
transparente como objetos Seam
● Infrastructura incorporada– Motor de Formularios / Layout
– Consultas
– Componentes NX JSF
● JSF mejorado– Navegación REST
![Page 82: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/82.jpg)
Interfaz Web – Contribuciones a las vistas
NXWorkflow
NXRelations
NXAudit
![Page 83: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/83.jpg)
Apogée – Cliente Rico
● Utilizado principalmente para alta carga de contribuciones al contenido y tratamiento de medios– Edición de texto estructurada
– Gestión de imágenes
– Necesidades de alta productividad
● Sistema de plugins de Eclipse (basado en OSGi)– El mismo modelo que el cliente web
– Algunos servicios comunes con el cliente web
– Contribuciones para la configuración
– Contribuciones para portlets
– Contribuciones para acciones
– ...
![Page 84: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/84.jpg)
Nuxeo Shell – Cliente de línea de comandos
● Orientado a usuarios técnicos– Administración técnica
– Importación masiva de documentos
– Testeo
● Sistema de plugins para contribuir nuevos comandos
![Page 85: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/85.jpg)
Cliente rico embebido - eRCP
● Utilización de Proyecto Eclipse: eRCP– eSWT
– eWorkbench
– eJFaces
● Comunicación via Restlets
● Extensibilidad– Sistema de plugins de
Eclipse (basado en OSGi)
● Compatible con dispositivos CDC
![Page 86: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/86.jpg)
Cliente Flash
● Utilizado para algunos proyectos específicos– Características simples
– Look&Feel muy específico
● Utiliza la REST API de Nuxeo para comunicar con el servidor
![Page 87: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/87.jpg)
Cliente WCM
● Nuevo WebEngine orientado a WCM– Wiki, Blogs, ...
– Gestión de contenidos para sitios webs
● Basado en tecnologías conocidas por los webmasters– Freemaker
– Scripts
● Integrado con el modelo de componentes de Nuxeo Runtime– Contribuciones de plantillas
– Contribuciones de scripts
– ...
![Page 88: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/88.jpg)
Clientes de integración con el escritorio
● Soporte de Drag&drop– IE(.NET)/FF(XPI) plugin
– Acceso al servidor a través de Restlet y Seam
● Integración del editor (liveedit v2)– Protocolo nxedit
● Win32: manejador .net● Multiplataforma: plugin de Firefox
– El proceso de lanzamiento del editor depende del mime
– Objetivos principales● OpenOffice a través de Java/UNO● MSOffice a través de .NET COM Interop + MSO plugin
– Comunicación con el servidor a través de JAX-WS/Restlets
![Page 89: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/89.jpg)
Nuxeo EP 5APIs
![Page 90: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/90.jpg)
APIs
● Java API– Disponible en todos los componentes (Servicios y Núcleo)
● Remote Java API (EJB3)– Disponible en la mayoría de los componentes
● WS JAX-RPC– API de lectura para la mayoría de los datos
● WS JAX-WS– Infraestructura preparada (WS-Addressing)
● WebDAV– Acceso pluggable al repositorio de contenido
![Page 91: Open Source World Conference: Nuxeo 5](https://reader034.fdocuments.es/reader034/viewer/2022052304/5575f99bd8b42a81158b48d0/html5/thumbnails/91.jpg)
APIs
● XML-RPC– Infraestructura pluggable
● REST API– API fácilmente pluggable
– La API actual ya provee las características básicas
● Portlet JSR 168– Portlets simples
– Portlets API
● JavaScript API via Seam Remoting