open source world conference: nuxeo 5

Post on 09-Jun-2015

2.295 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Nuxeo EP 5Qué es ECM

¿Qué es ECM?

● Producción● Logística● Distribución● Recursos Humanos● Contabilidad● Gestión de activos● ...

1990-2000...

ERP

¿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

¿Qué es ECM?

● Tecnologías usadas para– Capturar

– Crear

– Gestionar

– Almacenar

– Preservar

– Reusar

– Entregar

en una empresa

¿Qué es ECM?

www.iloveecm.com

Nuxeo EP 5Arquitectura

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

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

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

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

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

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

Nuxeo EP 5 – Claves Arquitecturales

Open Source

Nuxeo EP 5Core Framework

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

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>

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>

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

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

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

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

Nuxeo EP 5 – Nuxeo Core

● Esquemas● Tipos de documento● Ciclo de vida

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>

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>

Nuxeo EP 5 – Nuxeo Core

Esquemas: el equivalente XML

<baddies> <baddie> <surname>Sylar</surname> <level>38</level> <birth>1962-06-11</birth> </baddie></baddies>

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>

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> ...

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>

Nuxeo EP 5Pila de servicios

ECM

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

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

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

Nuxeo EP 5Clientes ECM

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

– ...

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

Interfaz Web – Contribuciones a las vistas

NXWorkflow

NXRelations

NXAudit

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

– ...

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

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

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

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

– ...

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

Nuxeo EP 5APIs

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

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

Yerbabuena Softwarewww.yerbabuena.es

yerbabuena@yerbabuena.esT. 902 995 246

Nuxeo EP 5Qué es ECM

¿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

¿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

¿Qué es ECM?

● Tecnologías usadas para– Capturar

– Crear

– Gestionar

– Almacenar

– Preservar

– Reusar

– Entregar

en una empresa

¿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.

Nuxeo EP 5Arquitectura

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.

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

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

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

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)

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 ?

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)

Nuxeo EP 5Core Framework

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.

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>

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>

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

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.

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

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

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.

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>

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>

Nuxeo EP 5 – Nuxeo Core

Esquemas: el equivalente XML

<baddies> <baddie> <surname>Sylar</surname> <level>38</level> <birth>1962-06-11</birth> </baddie></baddies>

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>

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> ...

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

Nuxeo EP 5Pila de servicios

ECM

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

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

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

Nuxeo EP 5Clientes ECM

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

– ...

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

Interfaz Web – Contribuciones a las vistas

NXWorkflow

NXRelations

NXAudit

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

– ...

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

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

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

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

– ...

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

Nuxeo EP 5APIs

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

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

Yerbabuena Softwarewww.yerbabuena.es

yerbabuena@yerbabuena.esT. 902 995 246

top related