open source world conference: nuxeo 5

92
Nuxeo EP 5 Qué es ECM

Upload: yerbabuena-software

Post on 09-Jun-2015

2.295 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Open Source World Conference: Nuxeo 5

Nuxeo EP 5Qué es ECM

Page 2: Open Source World Conference: Nuxeo 5

¿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

¿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

¿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

¿Qué es ECM?

www.iloveecm.com

Page 6: Open Source World Conference: Nuxeo 5

Nuxeo EP 5Arquitectura

Page 7: Open Source World Conference: Nuxeo 5

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

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

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

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

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

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

Nuxeo EP 5 – Claves Arquitecturales

Open Source

Page 14: Open Source World Conference: Nuxeo 5

Nuxeo EP 5Core Framework

Page 15: Open Source World Conference: Nuxeo 5

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

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

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

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

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

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

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

Nuxeo EP 5 – Nuxeo Core

● Esquemas● Tipos de documento● Ciclo de vida

Page 23: Open Source World Conference: Nuxeo 5

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

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

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

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

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

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

Nuxeo EP 5Pila de servicios

ECM

Page 30: Open Source World Conference: Nuxeo 5

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

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

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

Nuxeo EP 5Clientes ECM

Page 34: Open Source World Conference: Nuxeo 5

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

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

Interfaz Web – Contribuciones a las vistas

NXWorkflow

NXRelations

NXAudit

Page 37: Open Source World Conference: Nuxeo 5

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

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

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

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

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

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

Nuxeo EP 5APIs

Page 44: Open Source World Conference: Nuxeo 5

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

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 46: Open Source World Conference: Nuxeo 5

Yerbabuena Softwarewww.yerbabuena.es

[email protected]. 902 995 246

Page 47: Open Source World Conference: Nuxeo 5

Nuxeo EP 5Qué es ECM

Page 48: Open Source World Conference: Nuxeo 5

¿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

¿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

¿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

¿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

Nuxeo EP 5Arquitectura

Page 53: Open Source World Conference: Nuxeo 5

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

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

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

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

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

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

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

Nuxeo EP 5Core Framework

Page 61: Open Source World Conference: Nuxeo 5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Nuxeo EP 5Pila de servicios

ECM

Page 76: Open Source World Conference: Nuxeo 5

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

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

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

Nuxeo EP 5Clientes ECM

Page 80: Open Source World Conference: Nuxeo 5

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

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

Interfaz Web – Contribuciones a las vistas

NXWorkflow

NXRelations

NXAudit

Page 83: Open Source World Conference: Nuxeo 5

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

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

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

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

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

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

Nuxeo EP 5APIs

Page 90: Open Source World Conference: Nuxeo 5

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

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 92: Open Source World Conference: Nuxeo 5

Yerbabuena Softwarewww.yerbabuena.es

[email protected]. 902 995 246