Open Source World Conference: Nuxeo 5

2,538 views
2,444 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,538
On SlideShare
0
From Embeds
0
Number of Embeds
430
Actions
Shares
0
Downloads
92
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Open Source World Conference: Nuxeo 5

  1. 1. Nuxeo EP 5 Qué es ECM
  2. 2. ¿Qué es ECM? ● Producción ● Logística 1990-2000... Distribución ERP ● ● Recursos Humanos ● Contabilidad ● Gestión de activos ● ...
  3. 3. ¿Qué es ECM? ● Documentos (Registros, email, medios) ● Motor de búsqueda 2000- 20... Archivado ECM ● ● Colaboración ● Publicación web ● Control de acceso ● Cumplimiento con estándares/legalidad ● ...
  4. 4. ¿Qué es ECM? ● Tecnologías usadas para – Capturar – Crear – Gestionar – Almacenar – Preservar – Reusar – Entregar en una empresa
  5. 5. ¿Qué es ECM? www.iloveecm.com
  6. 6. Nuxeo EP 5 Arquitectura
  7. 7. 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
  8. 8. Nuxeo Enterprise Platform Audit Workflow Cliente web WebApp Nuxeo Core Relations Cliente Flex Rest/WS API Transformations Search/Index Cliente RCP Directories Import/Export ... Presentación Servicio Repositorio Nuxeo Runtime. Modelo de componentes
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. Nuxeo EP 5 – Claves Arquitecturales Open Source
  14. 14. Nuxeo EP 5 Core Framework
  15. 15. Nuxeo EP 5 – Extensibilidad XML Code Modelo de Seguridad XML Política de Ciclos de vida Code Versionado XSD Modelo de documentos XML Sistema de Eventos Modelo de almacenamiento
  16. 16. Nuxeo EP 5 – Nuxeo Core Oferta de puntos de extensión <component name=quot;core.TypeServicequot; version=quot;1.0quot;> <implementation class=quot;org.nuxeo.ecm.core.schema.TypeServicequot;/> <extension-point name=quot;schemaquot;> <object class=quot;org.nuxeo.ecm.core.schema.SchemaBinding-Descriptorquot;/> </extension-point> <extension-point name=quot;doctypequot;> <object class=quot;org.nuxeo.ecm.core.schema.DocumentType-Descriptorquot;/> </extension-point> </component>
  17. 17. Nuxeo EP 5 – Nuxeo Core Contribución a través de puntos de extensión <component name=quot;MyTypesquot; version=quot;1.0quot;> <extension target=quot;core.TypeServicequot; point=quot;schemaquot;> <schema name=quot;commonquot; src=quot;common.xsdquot;/> <schema name=quot;dublincorequot; src=quot;dublincore.xsdquot; prefix=quot;dcquot;/> </extension> <extension target=quot;core.TypeServicequot; point=quot;doctypequot;> <doctype name=quot;Notequot; extends=quot;Documentquot;> <schema name=quot;commonquot;/> ... </doctype> </extension> </component>
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. Nuxeo EP 5 – Nuxeo Core ● Esquemas ● Tipos de documento ● Ciclo de vida
  23. 23. Nuxeo EP 5 – Nuxeo Core Esquemas <xs:schema> <xs:element name=quot;titlequot; type=quot;xs:stringquot;/> <xs:element name=quot;descriptionquot; type=quot;xs:stringquot;/> <xs:element name=quot;rightsquot; type=quot;xs:stringquot;/> <xs:element name=quot;createdquot; type=quot;xs:datequot;/> <xs:element name=quot;modifiedquot; type=quot;xs:datequot;/> <xs:element name=quot;issuedquot; type=quot;xs:datequot;/> <xs:element name=quot;formatquot; type=quot;xs:stringquot;/> <xs:element name=quot;languagequot; type=quot;xs:stringquot;/> ... </xs:schema>
  24. 24. Nuxeo EP 5 – Nuxeo Core <xs:schema> <xs:complexType name=quot;baddiequot;> <xs:sequence> <xs:element name=quot;surnamequot; type=quot;xs:stringquot;/> <xs:element name=quot;levelquot; type=quot;xs:positiveIntegerquot;/> <xs:element name=quot;birthquot; type=quot;xs:datequot;/> </xs:sequence> </xs:complexType> <xs:complexType name=quot;baddiesquot;> <xs:sequence> <xs:element name=quot;baddiequot; type=quot;baddiequot; minOccurs=quot;0quot; maxOccurs=quot;unboundedquot;/> </xs:sequence> </xs:complexType> <xs:element name=quot;baddiesquot; type=quot;baddiesquot;/> </xs:schema>
  25. 25. Nuxeo EP 5 – Nuxeo Core Esquemas: el equivalente XML <baddies> <baddie> <surname>Sylar</surname> <level>38</level> <birth>1962-06-11</birth> </baddie> </baddies>
  26. 26. Nuxeo EP 5 – Nuxeo Core Tipos de documento <doctype name=quot;Notequot; extends=quot;Documentquot;> <schema name=quot;dublincorequot;/> <schema name=quot;notequot;/> <facet name=quot;Commentablequot;/> <facet name=quot;Versionablequot;/> <facet name=quot;Publishablequot;/> </doctype>
  27. 27. Nuxeo EP 5 – Nuxeo Core Ciclo de vida <lifecycle name=quot;defaultquot; initial=quot;projectquot;> <states> <state name=quot;projectquot;> <transitions> <transition>approve</transition> </transitions> </state> <state name=quot;approvedquot;> <transitions> <transition>obsolete</transition> </transitions> </state> <state name=quot;obsoletequot;/> </states> ...
  28. 28. Nuxeo EP 5 – Nuxeo Core Ciclo de vida <lifecycle name=quot;defaultquot; initial=quot;projectquot;> ... <transitions> <transition name=quot;approvequot; destination=quot;approvedquot;> <description>Approve the document</description> </transition> <transition name=quot;obsoletequot; destination=quot;obsoletequot;> <description>Obsolete the document</description> </transition> </transitions> </lifecycle>
  29. 29. Nuxeo EP 5 Pila de servicios ECM
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. Nuxeo EP 5 Clientes ECM
  34. 34. 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 – ...
  35. 35. 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
  36. 36. Interfaz Web – Contribuciones a las vistas NXWorkflow NXAudit NXRelations
  37. 37. 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 – ...
  38. 38. 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
  39. 39. 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
  40. 40. 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
  41. 41. 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 – ...
  42. 42. 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
  43. 43. Nuxeo EP 5 APIs
  44. 44. 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
  45. 45. 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
  46. 46. Yerbabuena Software www.yerbabuena.es yerbabuena@yerbabuena.es T. 902 995 246
  47. 47. Nuxeo EP 5 Qué es ECM
  48. 48. ¿Qué es ECM? ● Producción ● Logística 1990-2000... Distribución ERP ● ● Recursos Humanos ● Contabilidad ● Gestión de activos ● ... 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
  49. 49. ¿Qué es ECM? ● Documentos (Registros, email, medios) ● Motor de búsqueda 2000- 20... Archivado ECM ● ● Colaboración ● Publicación web ● Control de acceso ● Cumplimiento con estándares/legalidad ● ... 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: Alfresco Nuxeo
  50. 50. ¿Qué es ECM? ● Tecnologías usadas para – Capturar – Crear – Gestionar – Almacenar – Preservar – Reusar – Entregar en una empresa
  51. 51. ¿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.
  52. 52. Nuxeo EP 5 Arquitectura
  53. 53. 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.
  54. 54. Nuxeo Enterprise Platform Audit Workflow Cliente web WebApp Nuxeo Core Relations Cliente Flex Rest/WS API Transformations Search/Index Cliente RCP Directories Import/Export ... Presentación Servicio Repositorio Nuxeo Runtime. Modelo de componentes
  55. 55. 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ódulos Core layer capa que
  56. 56. 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
  57. 57. 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)
  58. 58. 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 ?
  59. 59. 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)
  60. 60. Nuxeo EP 5 Core Framework
  61. 61. Nuxeo EP 5 – Extensibilidad XML Modelo de Seguridad Code XML Política de Ciclos de vida Code Versionado XSD Modelo de documentos XML Sistema de Eventos Modelo de almacenamiento 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.
  62. 62. Nuxeo EP 5 – Nuxeo Core Oferta de puntos de extensión <component name=quot;core.TypeServicequot; version=quot;1.0quot;> <implementation class=quot;org.nuxeo.ecm.core.schema.TypeServicequot;/> <extension-point name=quot;schemaquot;> <object class=quot;org.nuxeo.ecm.core.schema.SchemaBinding-Descriptorquot;/> </extension-point> <extension-point name=quot;doctypequot;> <object class=quot;org.nuxeo.ecm.core.schema.DocumentType-Descriptorquot;/> </extension-point> </component>
  63. 63. Nuxeo EP 5 – Nuxeo Core Contribución a través de puntos de extensión <component name=quot;MyTypesquot; version=quot;1.0quot;> <extension target=quot;core.TypeServicequot; point=quot;schemaquot;> <schema name=quot;commonquot; src=quot;common.xsdquot;/> <schema name=quot;dublincorequot; src=quot;dublincore.xsdquot; prefix=quot;dcquot;/> </extension> <extension target=quot;core.TypeServicequot; point=quot;doctypequot;> <doctype name=quot;Notequot; extends=quot;Documentquot;> <schema name=quot;commonquot;/> ... </doctype> </extension> </component>
  64. 64. 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
  65. 65. 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 PROYECTO En el modelo de seguridad, - ejemplo del bloqueo: http://hg.nuxeo.org/nuxeo/nuxeo-core/file/1.4/nuxeo-core/s - ejemplo de la extensión de las listas.
  66. 66. 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
  67. 67. 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
  68. 68. 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.
  69. 69. Nuxeo EP 5 – Nuxeo Core Esquemas <xs:schema> <xs:element name=quot;titlequot; type=quot;xs:stringquot;/> <xs:element name=quot;descriptionquot; type=quot;xs:stringquot;/> <xs:element name=quot;rightsquot; type=quot;xs:stringquot;/> <xs:element name=quot;createdquot; type=quot;xs:datequot;/> <xs:element name=quot;modifiedquot; type=quot;xs:datequot;/> <xs:element name=quot;issuedquot; type=quot;xs:datequot;/> <xs:element name=quot;formatquot; type=quot;xs:stringquot;/> <xs:element name=quot;languagequot; type=quot;xs:stringquot;/> ... </xs:schema>
  70. 70. Nuxeo EP 5 – Nuxeo Core <xs:schema> <xs:complexType name=quot;baddiequot;> <xs:sequence> <xs:element name=quot;surnamequot; type=quot;xs:stringquot;/> <xs:element name=quot;levelquot; type=quot;xs:positiveIntegerquot;/> <xs:element name=quot;birthquot; type=quot;xs:datequot;/> </xs:sequence> </xs:complexType> <xs:complexType name=quot;baddiesquot;> <xs:sequence> <xs:element name=quot;baddiequot; type=quot;baddiequot; minOccurs=quot;0quot; maxOccurs=quot;unboundedquot;/> </xs:sequence> </xs:complexType> <xs:element name=quot;baddiesquot; type=quot;baddiesquot;/> </xs:schema>
  71. 71. Nuxeo EP 5 – Nuxeo Core Esquemas: el equivalente XML <baddies> <baddie> <surname>Sylar</surname> <level>38</level> <birth>1962-06-11</birth> </baddie> </baddies>
  72. 72. Nuxeo EP 5 – Nuxeo Core Tipos de documento <doctype name=quot;Notequot; extends=quot;Documentquot;> <schema name=quot;dublincorequot;/> <schema name=quot;notequot;/> <facet name=quot;Commentablequot;/> <facet name=quot;Versionablequot;/> <facet name=quot;Publishablequot;/> </doctype>
  73. 73. Nuxeo EP 5 – Nuxeo Core Ciclo de vida <lifecycle name=quot;defaultquot; initial=quot;projectquot;> <states> <state name=quot;projectquot;> <transitions> <transition>approve</transition> </transitions> </state> <state name=quot;approvedquot;> <transitions> <transition>obsolete</transition> </transitions> </state> <state name=quot;obsoletequot;/> </states> ...
  74. 74. Nuxeo EP 5 – Nuxeo Core Ciclo de vida <lifecycle name=quot;defaultquot; initial=quot;projectquot;> ... <transitions> <transition name=quot;approvequot; destination=quot;approvedquot;> <description>Approve the document</description> </transition> <transition name=quot;obsoletequot; destination=quot;obsoletequot;> <description>Obsolete the document</description> </transition> </transitions> </lifecycle> Aquí vemos un ejemplo completo de creación de un documento en Nuxeo
  75. 75. Nuxeo EP 5 Pila de servicios ECM
  76. 76. 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
  77. 77. 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
  78. 78. 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
  79. 79. Nuxeo EP 5 Clientes ECM
  80. 80. 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 – ...
  81. 81. 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
  82. 82. Interfaz Web – Contribuciones a las vistas NXWorkflow NXAudit NXRelations
  83. 83. 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 – ...
  84. 84. 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
  85. 85. 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
  86. 86. 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
  87. 87. 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 – ...
  88. 88. 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
  89. 89. Nuxeo EP 5 APIs
  90. 90. 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
  91. 91. 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
  92. 92. Yerbabuena Software www.yerbabuena.es yerbabuena@yerbabuena.es T. 902 995 246

×