SlideShare una empresa de Scribd logo
1 de 92
Descargar para leer sin conexión
Nuxeo EP 5
  Qué es ECM
¿Qué es ECM?




●   Producción
●   Logística
                               1990-2000...
    Distribución

                            ERP
●


●   Recursos Humanos
●   Contabilidad
●   Gestión de activos
●   ...
¿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
●   ...
¿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 5
  Arquitectura
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


                                     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
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 5
Core Framework
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
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>
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>
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=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>
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>
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=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>
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>
 ...
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>
Nuxeo EP 5
Pila 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 5
 Clientes 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               NXAudit




        NXRelations
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 5
       APIs
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 Software
    www.yerbabuena.es
yerbabuena@yerbabuena.es
     T. 902 995 246
Nuxeo EP 5
  Qué es ECM
¿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
¿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
¿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 5
  Arquitectura
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


                                     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
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
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 5
Core Framework
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.
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>
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>
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
  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.
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=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>
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>
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=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>
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>
 ...
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
Nuxeo EP 5
Pila 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 5
 Clientes 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               NXAudit




        NXRelations
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 5
       APIs
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 Software
    www.yerbabuena.es
yerbabuena@yerbabuena.es
     T. 902 995 246

Más contenido relacionado

Similar a Open Source World Conference: Nuxeo 5

Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Facescok12v
 
Yupp PHP Framework
Yupp PHP FrameworkYupp PHP Framework
Yupp PHP FrameworkPablo Pazos
 
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerCodemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerIván López Martín
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Francisco Javier Toscano Lopez
 
Adaptación de JMeter para la minería de datos de estructuras de páginas web.
Adaptación de JMeter para la minería de datos de estructuras de páginas web.Adaptación de JMeter para la minería de datos de estructuras de páginas web.
Adaptación de JMeter para la minería de datos de estructuras de páginas web.Agustín Sabater
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Robert Rayco Quiroz
 
Oracle Coherence (by Leonardo Torres Altez)
Oracle Coherence (by Leonardo Torres Altez)Oracle Coherence (by Leonardo Torres Altez)
Oracle Coherence (by Leonardo Torres Altez)barcelonajug
 
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Andrés Iturralde
 
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y GenexusPresentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y GenexusXavier Espinoza
 
PHP Con symfony
PHP Con symfonyPHP Con symfony
PHP Con symfonycsalazart
 
Genesis Suite Server
Genesis Suite ServerGenesis Suite Server
Genesis Suite ServerLuis Lesende
 
WORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTWORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTBEEVA_es
 
Analizando la performance del subsistema de IO
Analizando la performance del subsistema de IOAnalizando la performance del subsistema de IO
Analizando la performance del subsistema de IOSpanishPASSVC
 
SG 09 Patrones de Integración Empresarial Apache Camel (Draft)
SG 09 Patrones de Integración Empresarial Apache Camel (Draft)SG 09 Patrones de Integración Empresarial Apache Camel (Draft)
SG 09 Patrones de Integración Empresarial Apache Camel (Draft)Domingo Suarez Torres
 

Similar a Open Source World Conference: Nuxeo 5 (20)

Monitorización En OpenSolaris
Monitorización En OpenSolarisMonitorización En OpenSolaris
Monitorización En OpenSolaris
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
Arquitectura
Arquitectura Arquitectura
Arquitectura
 
Yupp PHP Framework
Yupp PHP FrameworkYupp PHP Framework
Yupp PHP Framework
 
S4 - EF
S4 - EFS4 - EF
S4 - EF
 
HMSSC
HMSSCHMSSC
HMSSC
 
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerCodemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
 
S4-PD1-2.2 EF
S4-PD1-2.2 EFS4-PD1-2.2 EF
S4-PD1-2.2 EF
 
Adaptación de JMeter para la minería de datos de estructuras de páginas web.
Adaptación de JMeter para la minería de datos de estructuras de páginas web.Adaptación de JMeter para la minería de datos de estructuras de páginas web.
Adaptación de JMeter para la minería de datos de estructuras de páginas web.
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
 
Oracle Coherence (by Leonardo Torres Altez)
Oracle Coherence (by Leonardo Torres Altez)Oracle Coherence (by Leonardo Torres Altez)
Oracle Coherence (by Leonardo Torres Altez)
 
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
 
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y GenexusPresentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
 
PHP Con symfony
PHP Con symfonyPHP Con symfony
PHP Con symfony
 
Vuelven los "Pelochos"
Vuelven los "Pelochos"Vuelven los "Pelochos"
Vuelven los "Pelochos"
 
Genesis Suite Server
Genesis Suite ServerGenesis Suite Server
Genesis Suite Server
 
WORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTWORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API REST
 
Analizando la performance del subsistema de IO
Analizando la performance del subsistema de IOAnalizando la performance del subsistema de IO
Analizando la performance del subsistema de IO
 
SG 09 Patrones de Integración Empresarial Apache Camel (Draft)
SG 09 Patrones de Integración Empresarial Apache Camel (Draft)SG 09 Patrones de Integración Empresarial Apache Camel (Draft)
SG 09 Patrones de Integración Empresarial Apache Camel (Draft)
 

Más de Yerbabuena Software

Silicon Málaga, Yerbabuena Software en la Revista Glamour Julio 2013
Silicon Málaga, Yerbabuena Software en la Revista Glamour Julio 2013Silicon Málaga, Yerbabuena Software en la Revista Glamour Julio 2013
Silicon Málaga, Yerbabuena Software en la Revista Glamour Julio 2013Yerbabuena Software
 
El ROI de mi proyecto de Digitalización y Gestión Documental
El ROI de mi proyecto de Digitalización y Gestión Documental  El ROI de mi proyecto de Digitalización y Gestión Documental
El ROI de mi proyecto de Digitalización y Gestión Documental Yerbabuena Software
 
The Return on Investment of my Digitalization Project, Step by Step
The Return on Investment of my Digitalization Project, Step by StepThe Return on Investment of my Digitalization Project, Step by Step
The Return on Investment of my Digitalization Project, Step by StepYerbabuena Software
 
¿Cómo maneja mi plataforma de gestión documental los metadatos? y ¿Por qué de...
¿Cómo maneja mi plataforma de gestión documental los metadatos? y ¿Por qué de...¿Cómo maneja mi plataforma de gestión documental los metadatos? y ¿Por qué de...
¿Cómo maneja mi plataforma de gestión documental los metadatos? y ¿Por qué de...Yerbabuena Software
 
Intelligent Document Management in businesses and e-Administration
Intelligent Document Management in businesses and e-AdministrationIntelligent Document Management in businesses and e-Administration
Intelligent Document Management in businesses and e-AdministrationYerbabuena Software
 
White Paper: Digitalización y Captura Inteligente de Documentos
White Paper: Digitalización y Captura Inteligente de DocumentosWhite Paper: Digitalización y Captura Inteligente de Documentos
White Paper: Digitalización y Captura Inteligente de DocumentosYerbabuena Software
 
Paperless Pharmacy (Athento e-Health Product Sheet)
Paperless Pharmacy (Athento e-Health Product Sheet)Paperless Pharmacy (Athento e-Health Product Sheet)
Paperless Pharmacy (Athento e-Health Product Sheet)Yerbabuena Software
 
Farmacia Sin Papel (Product Sheet Athento e-Sanidad)
Farmacia Sin Papel (Product Sheet Athento e-Sanidad)Farmacia Sin Papel (Product Sheet Athento e-Sanidad)
Farmacia Sin Papel (Product Sheet Athento e-Sanidad)Yerbabuena Software
 
Athento e-Administration Product Sheet
Athento e-Administration Product Sheet Athento e-Administration Product Sheet
Athento e-Administration Product Sheet Yerbabuena Software
 

Más de Yerbabuena Software (20)

Silicon Málaga, Yerbabuena Software en la Revista Glamour Julio 2013
Silicon Málaga, Yerbabuena Software en la Revista Glamour Julio 2013Silicon Málaga, Yerbabuena Software en la Revista Glamour Julio 2013
Silicon Málaga, Yerbabuena Software en la Revista Glamour Julio 2013
 
El ROI de mi proyecto de Digitalización y Gestión Documental
El ROI de mi proyecto de Digitalización y Gestión Documental  El ROI de mi proyecto de Digitalización y Gestión Documental
El ROI de mi proyecto de Digitalización y Gestión Documental
 
The Return on Investment of my Digitalization Project, Step by Step
The Return on Investment of my Digitalization Project, Step by StepThe Return on Investment of my Digitalization Project, Step by Step
The Return on Investment of my Digitalization Project, Step by Step
 
¿Cómo maneja mi plataforma de gestión documental los metadatos? y ¿Por qué de...
¿Cómo maneja mi plataforma de gestión documental los metadatos? y ¿Por qué de...¿Cómo maneja mi plataforma de gestión documental los metadatos? y ¿Por qué de...
¿Cómo maneja mi plataforma de gestión documental los metadatos? y ¿Por qué de...
 
Intelligent Document Management in businesses and e-Administration
Intelligent Document Management in businesses and e-AdministrationIntelligent Document Management in businesses and e-Administration
Intelligent Document Management in businesses and e-Administration
 
White Paper: Digitalización y Captura Inteligente de Documentos
White Paper: Digitalización y Captura Inteligente de DocumentosWhite Paper: Digitalización y Captura Inteligente de Documentos
White Paper: Digitalización y Captura Inteligente de Documentos
 
Athento Suite Product Sheet
Athento Suite Product SheetAthento Suite Product Sheet
Athento Suite Product Sheet
 
Product sheet Athento Suite
Product sheet Athento SuiteProduct sheet Athento Suite
Product sheet Athento Suite
 
Product Sheet Athento Platform
Product Sheet Athento PlatformProduct Sheet Athento Platform
Product Sheet Athento Platform
 
Paperless Pharmacy (Athento e-Health Product Sheet)
Paperless Pharmacy (Athento e-Health Product Sheet)Paperless Pharmacy (Athento e-Health Product Sheet)
Paperless Pharmacy (Athento e-Health Product Sheet)
 
Farmacia Sin Papel (Product Sheet Athento e-Sanidad)
Farmacia Sin Papel (Product Sheet Athento e-Sanidad)Farmacia Sin Papel (Product Sheet Athento e-Sanidad)
Farmacia Sin Papel (Product Sheet Athento e-Sanidad)
 
Product Sheet Athento e-Admin
Product Sheet Athento e-AdminProduct Sheet Athento e-Admin
Product Sheet Athento e-Admin
 
Athento e-Administration Product Sheet
Athento e-Administration Product Sheet Athento e-Administration Product Sheet
Athento e-Administration Product Sheet
 
Athento Capture Product Sheet
Athento Capture Product SheetAthento Capture Product Sheet
Athento Capture Product Sheet
 
Product Sheet Athento Capture
Product Sheet Athento CaptureProduct Sheet Athento Capture
Product Sheet Athento Capture
 
Higea CDS
Higea CDSHigea CDS
Higea CDS
 
Consentimiento Informado
Consentimiento InformadoConsentimiento Informado
Consentimiento Informado
 
Athento Management Agency
Athento Management AgencyAthento Management Agency
Athento Management Agency
 
Athento e-Government
Athento e-GovernmentAthento e-Government
Athento e-Government
 
Yerbabuena-Partners
Yerbabuena-PartnersYerbabuena-Partners
Yerbabuena-Partners
 

Último

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 

Último (20)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 

Open Source World Conference: Nuxeo 5

  • 1. Nuxeo EP 5 Qué es ECM
  • 2. ¿Qué es ECM? ● Producción ● Logística 1990-2000... Distribución ERP ● ● Recursos Humanos ● Contabilidad ● Gestión de activos ● ...
  • 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. ¿Qué es ECM? ● Tecnologías usadas para – Capturar – Crear – Gestionar – Almacenar – Preservar – Reusar – Entregar en una empresa
  • 6. Nuxeo EP 5 Arquitectura
  • 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. 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. 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. 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. 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. 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. Nuxeo EP 5 – Claves Arquitecturales Open Source
  • 14. Nuxeo EP 5 Core Framework
  • 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. 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. 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. 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. 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. 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. 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. Nuxeo EP 5 – Nuxeo Core ● Esquemas ● Tipos de documento ● Ciclo de vida
  • 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. 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. 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. 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. 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. 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. Nuxeo EP 5 Pila de servicios ECM
  • 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. 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. 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. Nuxeo EP 5 Clientes ECM
  • 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. 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. Interfaz Web – Contribuciones a las vistas NXWorkflow NXAudit NXRelations
  • 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. 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. 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. 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. 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. 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. Nuxeo EP 5 APIs
  • 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. 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. Yerbabuena Software www.yerbabuena.es yerbabuena@yerbabuena.es T. 902 995 246
  • 47. Nuxeo EP 5 Qué es ECM
  • 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. ¿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. ¿Qué es ECM? ● Tecnologías usadas para – Capturar – Crear – Gestionar – Almacenar – Preservar – Reusar – Entregar en una empresa
  • 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. Nuxeo EP 5 Arquitectura
  • 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. 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. 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. 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. 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. 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. 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. Nuxeo EP 5 Core Framework
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Nuxeo EP 5 Pila de servicios ECM
  • 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. 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. 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. Nuxeo EP 5 Clientes ECM
  • 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. 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. Interfaz Web – Contribuciones a las vistas NXWorkflow NXAudit NXRelations
  • 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. 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. 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. 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. 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. 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. Nuxeo EP 5 APIs
  • 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. 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. Yerbabuena Software www.yerbabuena.es yerbabuena@yerbabuena.es T. 902 995 246