alfresco. la gestión de contenidos empresarial

297
Alfresco. La gestión de contenidos empresarial

Upload: cleformacion

Post on 17-Jun-2015

787 views

Category:

Technology


8 download

DESCRIPTION

"Alfresco. La gestión de contenidos empresarial" es uno de los seminarios técnicos gratuitos que imparte CLEFormación. Celebrado el 21 de octubre de 2014, en él se abordaron las capacidades más importantes que ofrece Alfresco ECM. Entre otras cuestiones, la ponencia se centró en su potente y versátil arquitectura, en Alfresco Share y Activiti, en la gestión de flujos de trabajo, el estándar CMIS...

TRANSCRIPT

Page 1: Alfresco. La gestión de contenidos empresarial

Alfresco. La gestión de contenidos empresarial

Page 2: Alfresco. La gestión de contenidos empresarial

Jesús Salinas Revelles21 octubre 2014

Hotel VP Jardín MetropolitanoAv. de la Reina Victoria, 12. Madrid

Ponente

Page 3: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

✴ Introducción a ECM.✴ Alfresco ECM de un vistazo.✴ Profundizando en la plataforma.

Índice del seminario

Page 4: Alfresco. La gestión de contenidos empresarial

Introducción a ECM

✴ ¿Qué es la gestión de contenidos empresarial? 

✴ Situación actual.✴Tendencias del mercado.

Page 5: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

✴ En los últimos años, se ha producido un gran crecimiento en el volumen de información que las empresas generan y almacenan diariamente.

✴ El almacenamiento desmedido de facturas, informes, albaranes, mails, ... , nos obliga a implantar plataformas capaces de procesar toda esta documentación, organizarla y poder extraer de ella el valor adicional que nos ofrece.

¿Qué es la gestión de contenidos empresarial?

Page 6: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es la gestión de contenidos empresarial?✴ Enterprise Content Management (ECM).✴ Tecnología capaz de capturar, crear, almacenar,

gestionar, buscar y distribuir la información sobre la que trabaja.

✴ Una herramienta de este tipo debe posibilitar la integración entre los diferentes procesos de negocio, incluyendo repositorios heterogéneos, por tanto, permitir el almacenamiento y gestión de herramientas ofimáticas, información procedente de plataformas web, etc.

Page 7: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es la gestión de contenidos empresarial?✴ Más allá de lo comentado anteriormente, ECM se puede

analizar desde dos perspectivas:✴ Planteamiento estratégico: ECM ayuda a las empresas a

controlar sus contenidos y, de esa forma, mejorar su eficiencia, colaboración y hacer que su información sea más fácil de compartir.

✴ Herramienta software: ECM es un conjunto de funcionalidades y/o aplicaciones para gestionar el ciclo de vida de los contenidos que fluyen dentro de la organización.

Page 8: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Situación actual

✴ Las empresas, instituciones y organismos públicos acumulan cada vez un mayor número de documentos.

✴ El entramado de necesidades y obligaciones al que se enfrentan las empresas hace muy costoso todo el proceso de guardia y custodia de textos, así que lo más efectivo y rentable es contratar a compañías dedicadas a la gestión documental.

Page 9: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Tendencias del mercado

✴ La gestión documental, debido a la gran cantidad de contenidos y fuentes de información ha evolucionado hacia la gestión de contenidos empresariales.

✴ Las necesidades que solicita el mercado obligan a los proveedores a que sus productos sean cada vez más flexibles e integrados. Es por esto que se tiende a estandarizar la arquitectura y las tecnologías.

Page 10: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Tendencias del mercado

✴ Nos encontramos con dos tipos de solución:✴ Suite muy amplia de productos con funcionalidades muy escalables

y que abarquen todas las actividades de la empresa. ✴ Productos con funcionalidad más limitadas de gestión documental,

de un precio significativamente menor, que cubran todas las necesidades de gestión documental de una pequeña o mediana empresa.

Page 11: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Tendencias del mercado

Page 12: Alfresco. La gestión de contenidos empresarial

Alfresco ECM de un vistazo

✴ ¿Qué es Alfresco?✴ Su arquitectura.✴Conceptos importantes:

✴ Tipos personalizados.✴ Java Foundation services y WebScripts

en Alfresco.✴ Otros.

Page 13: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

✴ Es un sistema de Gestión de Contenidos Empresarial (ECM).

✴ Normalmente utilizado para Gestión de Documentos Digitales en entornos exigentes (sometidos a importantes requisitos de escalabilidad, alta disponibilidad, capacidades de integración, auditabilidad, etc.).

¿Qué es Alfresco?

Page 14: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco?

✴ Open Source: Tenemos el código disponible.✴ Fácilmente extensible y basado en tecnologías JavaEE

estándares y proyectos Open Source de éxito como Apache Lucene, OpenOffice, Spring Framework, SWFTools, Quartz Scheduler, etc.

✴ Maduro y con multitud de casos de éxito documentados.

Page 15: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco?

✴ Dos versiones: Community y Enterprise. Esta última con un soporte profesional, con procesos de QA estrictos, SLA, etc.

✴ La versión Community es suficientemente buena para ponerla en producción en proyectos. Es gratuita.

✴ La versión Enterprise es de pago (aunque se puede probar gratuitamente) y se recomienda para entornos críticos.

Page 16: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco?

✴ Alfresco gestiona todos los contenidos en nuestra empresa: documentos, imágenes, fotos, páginas web, registros, documentos xml y cualquier otro fichero semiestructurado o no estructurado.

✴ Los servicios que ofrece Alfresco son una de sus grandes ventajas. Permiten gestionar el contenido de los documentos y características, tales como, gestión de metadatos, control de versiones, gestión del ciclo de vida, flujo de trabajo, búsquedas, asociaciones a otros contenidos, etiquetado, comentarios.

Page 17: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco?

Page 18: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Una aplicación web?

Page 19: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Unidad accesible vía ftp?

Page 20: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Una carpeta compartida?

Page 21: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco?

✴ Para los usuarios finales, Alfresco se presenta como un conjunto de aplicaciones o extensiones de sus propias aplicaciones que gestionan sus contenidos.

✴ Alfresco puede aparecer como una unidad compartida con protocolo CIFS, WebDAV, IMAP y SharePoint.

✴ También proporciona por defecto un conjunto de aplicaciones para navegar por los contenidos, buscar, gestionar, etc.

Page 22: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco?

✴ Durante mucho tiempo el usuario final ha asociado Alfresco con Alfresco Explorer, una de las aplicaciones web que nos permite interactuar con la solución:

Page 23: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco para el desarrollador?

Page 24: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco para el desarrollador?

✴ Para el desarrolllador, Alfresco ECM es una plataforma que se despliega en un servidor JavaEE y que tiene asociada una base de datos.

✴ Alfresco nos ofrece documentación relacionada con el Stack de Tecnologías que soporta. Por ejemplo, puede ejecutarse sobre:✴ Tomcat.✴ JBoss.✴ Oracle Weblogic.✴ Websphere.

Page 25: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco para el desarrollador?

✴ Para el desarrolllador, Alfresco ECM proporciona un repositorio escalable y una plataforma de gestión que simplifica el desarrollo.

✴ Expone infinidad de capacidades de gestión en forma de servicios.

Page 26: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco para el desarrollador?

✴ Entornos de desarrollo:✴ Alfresco SDK.✴ Alfresco Maven SDK.

Page 27: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco para el negocio?

✴ Para el negocio, Alfresco ha sido diseñado para soportar todo tipo de requisitos relacionados con los contenidos: herramientas para la gestión de documentos, aplicaciones, interfaces para trabajo de oficina.

✴ La gestión de flujos de trabajo soporta diferentes procesos de negocio.

Page 28: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco?

✴ El núcleo de Alfresco es un repositorio gestionado por un servidor.

Page 29: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco?

✴ Alfresco incorpora una arquitectura moderna. El sistema ha crecido como una aplicación Java, eso significa que se puede ejecutar en cualquier plataforma donde corre JavaEE.

✴ El núcleo se basa en la plataforma Spring, proporcionando a Alfresco la capacidad de modularizar los diferentes elementos del sistema: versionado, seguridad, reglas, etc.

✴ Alfresco utiliza estrategias de scripting para simplificar la incorporación de nuevas funcionalidades dentro del sistema. Esto se conoce como Web scripts y puede utilizarse para la gestión de datos o servicios de presentación.

Page 30: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco?

✴ Entre sus características de base más significativas podemos destacar:✴ Definición de modelos de contenidos personalizados.✴ Facilidad a la hora de extender las funcionalidades de la

plataforma.✴ Facilidad de integración con sistemas externos.

✴ No debemos olvidar su gestión de flujos de trabajo y motor de búsqueda.

Page 31: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco?

INFORME TÉCNICOINFORMACIÓN ESTRUCTURADA

MANEJADA POR EL GESTOR DOCUMENTAL

Número de informe : INF000XXXTítulo : XXXXX

Autor : XXXXXXXEtiquetas o palabras clave: XXX , YYY, ZZZ

Responsables: <Lista de usuarios del sistema o lista de nombres>

Proceso: XXXX<<CUALQUIER OTRO METADATO QUE QUIERA

DEFINIR EL CLIENTE>>

NODO DE ALFRESCO DE TIPO "INFORME TÉCNICO"

InformeTecnico.doc

Page 32: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco?

✴ El desarrollador puede añadir nuevas funcionalidades dentro de Alfresco mediante:✴ Diseño de acciones: es una unidad de trabajo que se ejecuta

sobre un nodo, por ejemplo, mover un nodo, borrar un nodo, etc. Alfresco incorpora un conjunto de acciones predefinidas: check-out, check-in, Añadir aspecto, borrar aspecto, enviar mail, etc.

✴ Diseño de webscripts.

Page 33: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Alfresco?

✴ Facilidad de integración con sistemas externos:✴ Webservices de Alfresco.✴ Estándar CMIS.✴ ...

Page 34: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Su arquitectura

✴ Introducción.✴ Servidor de contenidos de Alfresco.✴ Protocolos.✴ Los servicios de Alfresco.✴ Conclusión.

Page 35: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ La gestión de contenidos empresarial cubre un amplio rango de aplicaciones: gestión de documental, gestión de contenidos web, gestión de registros, búsqueda, etc.

✴ La arquitectura de Alfresco ha sido diseñada para ser capaz de soportar los requisitos asociados a todas estas aplicaciones.

Page 36: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Cada una de estas disciplinas tiene una serie de características únicas y otras que se solapan, de tal forma que, el diseño de cada capacidad no se ha realizado de forma aislada sino en el contexto del sistema completo.

✴ Alfresco pretende ser lo más simple posible en todos los ámbitos: desarrollo, personalización, despliegue y uso.

Page 37: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ La solución más simple y extendida de una solución ECM es una unidad compartida. La arquitectura Alfresco tiene como objetivo ser tan simple como una unidad compartida.

Page 38: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ La arquitectura de Alfresco puede resumirse en este esquema:

Page 39: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ El almacenamiento de contenidos, por defecto, se realiza de forma combinada en base de datos y en el sistema de ficheros.

✴ Por defecto, los documentos físicos se almacenan en el sistema de ficheros y sus metadatos asociados en la base de datos relacional.

Page 40: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Servidor de contenidos de Alfresco:✴ Agrupa un repositorio de contenidos y un conjunto de

servicios adicionales para construir la solución.✴ El repositorio de contenidos ha sido definido siguiendo los

siguientes estándares:✴ CMIS (Content Management Interoperability Services).✴ JCR (Java Content Repository / JSR-170/286).

✴ Estos estándares proporcionan una especificación para la definición de contenidos y su almacenamiento, recuperación de contenidos, versionado, etc.

Page 41: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Servidor de contenidos de Alfresco (cont.):✴ El servidor de aplicaciones de contenido de Alfresco proporciona la

siguiente categoría de servicios sobre el repositorio de contenidos:✴ Servicios de contenidos (por ejemplo, transformación,

etiquetados, extracción de metadatos). ✴ Servicios de control (por ejemplo, flujos de trabajo, gestión de

registros). ✴ Servicios de colaboración (por ejemplo, actividades, wiki).

Page 42: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Clientes de Alfresco:✴ Clientes web de Alfresco.✴ Clientes web externos.✴ ...

Page 43: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Alfresco Explorer aparece desde la primera versión de Alfresco. Ha sido implementado mediante Java Server Faces (JSF) y es altamente personalizable, pero y muy IMPORTANTE, sólo puede desplegarse como parte del servidor de aplicaciones de contenidos de Alfresco.

✴ Alfresco Share es un cliente algo más joven, centrado en aspectos de colaboración. El concepto principal de Alfresco Share es la noción de sitio web: un lugar donde los usuarios colaboran en la generación de contenidos. Ha sido desarrollado usando Spring Surf.

✴ Alfresco Share puede desplegarse de forma independiente al servidor de aplicaciones de contenidos de Alfresco. Durante los últimos años, ha evolucionado y ahora soporta todas las funcionalidades que ofrece Alfresco Explorer.

Page 44: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servidor de contenidos de Alfresco

✴ La responsabilidad más importante del servidor es proveer de un conjunto de servicios para ser usados en soluciones ECM. Se puede entender como una caja negra donde almacenamos y gestionamos contenidos.

✴ Alfresco Content Application Server expone un conjunto de interfaces remotas y públicas para permitir la comunicación con clientes.

Page 45: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servidor de contenidos de Alfresco

Page 46: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servidor de contenidos de Alfresco

✴ El servidor está formado por un conjunto de capas. Los elementos sobre los que se contruye el sistema son:✴ La base del sistema es un conjunto de elementos de

infraestructura: configuración, autenticación, permisos y transacciones que afectan a cualquier funcionalidad. Esta infraestructura también protege al servidor de atarse a una implementación específica (gestores de transacciones o mecanismos de caché).

✴ El repositorio de contenidos de Alfresco se construye sobre la base de esta infraestructura. Cada funcionalidad del repositorio se mapea a un módulo con su propia especificación e implementación.

Page 47: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servidor de contenidos de Alfresco

Page 48: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servidor de contenidos de Alfresco

✴ El repositorio de contenidos es el sistema que se encarga de manejar los contenidos dentro de Alfresco. Sus responsabilidades son:✴ Definición de la estructura de los contenidos.✴ Creación, actualización y borrado de contenidos, metadatos

asociados y relaciones.✴ Consultas a los contenidos, control de acceso (permisos) y

versionado.✴ Renderizado de contenidos, locking, eventos, auditoría.✴ Importación y exportación.✴ Multi-idioma.✴ Reglas y acciones.

Page 49: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servidor de contenidos de Alfresco

Content Repository

Page 50: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servidor de contenidos de Alfresco

✴ El repositorio de contenidos proporciona una implementación de estos servicios y los expone mediante:✴ API de Alfresco,✴ CMIS y ✴ API Java JSR-170.

Page 51: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servidor de contenidos de Alfresco

✴ El núcleo del repositorio es un motor de almacenamiento, responsable de almacenar y recuperar los contenidos que se gestionan.

✴ Este motor trabaja sobre dos conceptos:✴ Nodo: esta entidad maneja los metadatos y estructura de un

contenido. Un nodo soporta propiedades y relaciones con otros nodos.

✴ Contenido: contenido a guardar, por ejemplo, documento Excel y ODT.

Page 52: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servidor de contenidos de Alfresco

✴ Como ya se ha comentado anteriormente, Alfresco expone intefaces públicas y remotas como único elemento visible desde el cliente. Existen dos tipos:✴ APIs remotas: permiten interacción programática con los

servicios del servidor.✴ Protocolos que ofrecen esos mismos servicios a los usuarios

mediante un protocolo asociado al cliente.

Page 53: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servidor de contenidos de Alfresco

✴ Intefaces públicas y remotas:

Remote APIs

Protocols

Page 54: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Protocolos

✴ Para permitir el uso de Alfresco en diferentes ámbitos, el servidor de contenidos de Alfresco soporta diferentes protocolos para la gestión de carpetas y documentos.

Page 55: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Protocolos

✴ CIFS (Common Internet File System) ✴ Es un protocolo que permite la proyección de Alfresco como una

unidad de ficheros compartida nativa. ✴ Cualquier cliente puede leer y escribir en las unidades en las que

puede leer y escribir en Alfresco, permitiendo el uso de unidades compartidas en vez del ECM sin que el usuario se entere.

✴ Alfresco adquirió la única implementación de servidor CIFS basada en Java, JLAN.

Page 56: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Protocolos

✴ WebDAV (Web-based Distributed Authoring and Versioning): ✴ Es un conjunto de extensiones de HTTP que permite gestionar

ficheros mediante servidores web. ✴ Muchas herramientas de contenidos ofrecen soporte a WebDAV.

También existe herramientas que permite montar servidores WebDAV como unidad de red.

Page 57: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Protocolos

✴ FTP (File Transfer Protocol): ✴ Es un protoloco estándar de red para el intercambio y

manipulación de ficheros a través de la red. ✴ Este protocolo es particularmente útil en los procesos de carga

masiva de carpetas y ficheros en el repositorio de contenidos de Alfresco.

Page 58: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Protocolos

✴ IMAP (Internet Message Access Protocol) es un estándar que permite acceder a email mediante un servidor de mail remoto. Alfresco se comporta como servidor de correo, permitiendo a clientes de correo como Microsoft Outlook, Apple Mail, y Thunderbird conectar e interactuar con carpetas y ficheros dentro del repositorio de contenidos de Alfresco.

✴ Microsoft SharePoint, protocolo que permite Alfresco actuar como servidor SharePoint, creando integración con la suite Microsoft Office. Permite al usuario familiarizado con esta suite trabajar sobre documentos dentro de Alfresco.

Page 59: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Los servicios de Alfresco

✴ Introducción.✴ Servicios del repositorio de contenidos.✴ Servicios de aplicación de contenidos.✴ Las APIs de Alfresco.

Page 60: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ El servidor de contenidos de Alfresco proporciona funcionalidades para capturar, gestionar y colaborar sobre contenidos usando servicios. Estos servicios son la base de la funcionalidad proporcionada por Alfresco.

✴ Alfresco expone estos servicios en varios niveles, incluyendo Java, scripting, REST, y servicios web. Algunos servicios son internos y otros son públicos. Por ejemplo, los servicios Java son internos.

✴ Los servicios se dividen en dos categorías.✴ Servicios del repositorio de contenidos.✴ Servicios de aplicación de contenidos.

Page 61: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ La mayoría de los servicios en Alfresco se construyen en tres capas: núcleo Java, servicio de script público y API RESTful.

Page 62: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servicios del repositorio de contenidos

✴ Los servicios del repositorio de contenidos están escritos en Java y son los servicios fundamentales para la gestión de contenidos.

✴ Son los servicios Java internos.✴ Gestión de ficheros y carpetas.✴ Versionado y checkin/checkout.✴ Auditoría.✴ Autenticación, autorización y permisos.✴ Modelado.✴ Búsqueda.

Page 63: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servicios de aplicación de contenidos

✴ Los servicios de aplicación de contenidos extienden los servicios del repositorio para proporcionar capacidades evolucionadas necesarias para las aplicaciones colaborativas que manejan contenidos ricos. Se organizan como:✴ Servicios de contenidos: reglas y acciones, transformaciones,

extracción de metadatos.✴ Servicios de control: flujos de trabajo, proyectos web, etc.✴ Servicios de colaboración: comentarios, etiquetado, actividades,

etc.

Page 64: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Las APIs de Alfresco

✴ El servidor de contenidos de Alfresco ofrece dos tipos de APIs:✴ APIs remotas: usadas por clientes que se comunican con el

servidor de contenidos de Alfresco de forma remota.✴ APIs embebidas: usadas por extensiones que han sido

desplegadas y se ejecutan dentro del servidor de contenidos de Alfresco.

Page 65: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Las APIs de Alfresco

Embeddeb APIs

Remote APIs

Page 66: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Las APIs de Alfresco

✴ Las APIs embebidas son usadas por extensiones de Alfresco que se ejecutan directamente contra el Servidor de contenidos de Alfresco. Existen tres APIs principales:✴ Alfresco Java Foundation API: proporciona un conjunto de

interfaces Java para el acceso a los servicios del repositorio. ✴ API JavaScript: javascript que nos permite acceder a los

servicios de base.✴ API Template: API de sólo lectura diseñada para renderizar

salidas HTML, XML, JSON, y texto usando el motor de plantillas FreeMarker. Esta API usa una vista orientada a objetos del repositorio de contenidos combinándola con las plantillas.

Page 67: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Las APIs de Alfresco

✴ Las APIs remotas permiten a clientes conectarse desde una capa independiente para comunicarse con el servidor de aplicaciones de contenidos de Alfresco.

✴ Estas APIs se basan en servicios web basados en protocolos RESTful y CMIS, permitiendo así el desarrollo contra estas APIs usando un rango de lenguajes amplio (Java, PHP, Ruby, and .NET).

Page 68: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Las APIs de Alfresco

✴ APIs remotas:

Page 69: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Conclusión

✴ Alfresco ECM, gracias a su potente arquitectura, nos ofrece infinidad de alternativas de integración.

Page 70: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Como usuario final accediendo a la información de forma directa

Page 71: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Como usuario final accediendo a documentación a través de Alfresco Share

Page 72: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Integración con Alfresco totalmente transparente para el usuario

Page 73: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Tipos personalizados

✴ Introducción.✴ Diccionario de datos.✴ Creación de un nuevo modelo de contenidos.✴ Despliegue de modelo de contenidos.

Page 74: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Alfresco trabaja con el concepto de MODELO DE CONTENIDOS para gestionar los contenidos que maneja.

✴ Alfresco incorpora un metamodelo en su estructura, es decir, la capacidad para que nosotros declaremos nuevos modelos de contenido.

✴ Un modelo de contenido define la estructura de información que acompañará a nuestros documentos digitales.

✴ Esta definición nos permite dotar de semántica al documento para que posteriormente se puedan implementar búsquedas y procesos más eficientes e “inteligentes”.

Page 75: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Un modelo de contenidos es un conjunto de tipos de contenido y aspectos. Los modelos de contenidos definidos son identificados de forma unívoca mediante espacios de nombre (namespaces).

Page 76: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ El modelo de contenidos por defecto se conoce en Alfresco como Diccionario de Datos o Data Dictionary y soporta ser extendido para que el repositorio pueda manejar nuevos modelos de contenido.

✴ El Diccionario de Datos describe las estructuras del contenido a través de propiedades, asociaciones y reglas o restricciones.

✴ El Diccionario de Datos es un metamodelo que permite describir uno o más modelos de contenido específicos.

Page 77: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Diccionario de datos

✴ Define dos clases de estructuras: tipos de contenido y aspectos de contenido. Son conceptos que vamos a manejar de forma intensiva: TIPO y ASPECTO.

✴ La diferencia entre Content Type y Content Aspect es que un contenido sólo tiene un tipo que es el que define su estructura fundamental. Sin embargo, un mismo contenido puede tener muchos aspectos que son conceptos transversales aplicables a cualquier tipo de contenido.

✴ Un mismo nodo puede tener un aspecto en un momento temporal y posteriormente dejar de tenerlo.

Page 78: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Diccionario de datos

Page 79: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Diccionario de datos

✴ El diccionario de datos define los siguientes modelos:✴ System: describe conceptos a nivel del repositorio. http://

www.alfresco.org/model/system/1.0. Prefijo sys.✴ Content: describe el modelo de contenido del dominio estándar (ej.

Carpeta, Fichero, Dublin-Core, ...). http://www.alfresco.org/model/content/1.0. Prefijo cm.

✴ Application: describe el modelo de aplicación de Alfresco (ej. glosario, ...). http://www.alfresco.org/model/application/1.0. Prefijo app.

✴ Dictionary: describe el metamodelo del Diccionario de Datos (enteros, flotantes, fechas...). http://www.alfresco.org/model/dictionary/1.0. Prefijo d.

Page 80: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Diccionario de datos

✴ El diccionario define un conjunto de tipos de datos soportados por defecto, es decir, vamos a poder manejar textos, números, fechas, booleanos, etc, sin necesidad de tener que definir nuevos tipos:

Page 81: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Diccionario de datos

✴ Los tipos de dato content, folder y person se encuentra en el modelo Content, es por eso que al referenciarlos se utiliza cm:content, cm:folder y cm:person.

✴ Los tipos de dato int, boolean, double y date se encuentra en el modelo Dictionary, es por eso que al referenciarlos se utiliza d:int, d:boolean, d:double y d:date.

✴ Todos los detalles en la wiki de Alfresco: ✴ http://wiki.alfresco.com/wiki/Data_Dictionary_Guide.

Page 82: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Diccionario de datos

✴ Alfresco almacena, por defecto, los documentos como nodos de tipo cm:content que están formados por un fichero binario y por los metadatos básicos (titulo, autor, fecha de modificación, etc.)

✴ Podemos heredar de cm:content para hacer un nuevo tipo “Informe Técnico”.

INFORME TÉCNICOINFORMACIÓN ESTRUCTURADA

MANEJADA POR EL GESTOR DOCUMENTAL

Número de informe : INF000XXXTítulo : XXXXX

Autor : XXXXXXXEtiquetas o palabras clave: XXX , YYY, ZZZ

Responsables: <Lista de usuarios del sistema o lista de nombres>

Proceso: XXXX<<CUALQUIER OTRO METADATO QUE QUIERA

DEFINIR EL CLIENTE>>

NODO DE ALFRESCO DE TIPO "INFORME TÉCNICO"

InformeTecnico.doc

Page 83: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Diccionario de datos

✴ Los tipos presentan un gran parecido a las clases en el mundo de orientación a objetos.

✴ Un modelo de contenidos puede definir N tipos de contenido nuevos.

✴ Pueden usarse para representar objetos de nuestro modelo de negocio: Tienen propiedades y pueden heredar de un tipo base. Contenido (cm:content) , Persona (cm:person) o Carpeta (cm:folder) son tres tipos importantes definidos por Alfresco.

✴ Los tipos personalizados están limitados únicamente por nuestra imaginación y requerimientos de negocio. ✴ Factura, Receta médica o Película serían ejemplos de tipos personalizados.

Page 84: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Creación de un nuevo modelo de contenidos✴ Paso 1: Declarar un nuevo modelo y definir los tipos de

contenido personalizado.✴ Paso 2: Desplegar el nuevo modelo de contenidos.✴ Paso 3: Configurar el/los cliente(s) Web para que sea

capaz de reconocer los nuevos tipos de contenido.✴ Paso 4: Reiniciar Alfresco para que los cambios sean

efectivos. (en caso de que sea necesario).

Page 85: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Crear un nuevo modelo

✴ Se declara en un fichero XML cuyo nodo principal es el elemento <model> del esquema “Data Dictionary XML Schema”. Dicho esquema está en el espacio de nombres referenciado por la URI http://www.alfresco.org/model/dictionary/1.0

✴ Este fichero debe colocarse en la carpeta de extensión de Alfresco para despliegues estáticos y dentro del espacio “Company Home -> Data Dictionary -> Models”) para despliegues dinámicos.

Page 86: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Declarar un nuevo modelo

<model name="prefijo:nuevoModelo" xmlns="http://www.alfresco.org/model/dictionary/1.0">

<description>Modelo Contenido Nuevo</description> <author>Formacion S.L.</author> <published>2011-01-01</published> <version>1.0</version>

<imports> <!-- Importamos las definiciones del Diccionario de Datos --> <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/> <!-- Importamos las definiciones del modelo de contenidos estandar --> <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/> </imports> ...

Page 87: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Declarar un nuevo modelo

✴ El atributo name del elemento model define el nombre único del modelo. El prefijo debe usarse el que se declare en el espacio de nombres (ver siguiente transparencia).

✴ xmlns declara el espacio de nombres del metamodelo como espacio de nombres por defecto.

✴ La sección de imports hace que los modelos de contenido estándares así como el metamodelo y el diccionario de datos estén disponible para su uso y referencia en nuestro modelo.

Page 88: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Declarar un nuevo modelo

✴ Se define el espacio de nombres asociado al nuevo modelo:

✴ uri: identificador único del espacio de nombres✴ prefix: prefijo que se usará en el resto del documento (debe

coincidir también con el que usa el modelo en la transparencia anterior).

... <!-- viene de la transparencia anterior --><namespaces> <namespace uri="http://www.formacion.com/xmlns/modelo/1.0/" prefix="prefijo"/></namespaces>...

Page 89: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Declarar un nuevo tipo de contenido

✴ Los nuevos tipos de contenido se declaran dentro del modelo:

✴ Generalmente querremos heredar de cm:content que es el tipo de contenido estándar de Alfresco.

<model ... > ...<types> <type ...>

... </type> </types>

</model>

Page 90: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Declarar un nuevo tipo de contenido

✴ cm es el prefijo del espacio de nombres http://www.alfresco.org/model/content/1.0 definido para el esquema Content Domain Model.

✴ Veamos un ejemplo: declarar un tipo de contenido “Documento de Agencia Tributaria” que tenga las propiedades (metadatos) “MailResponsable”, “Proyecto”, “EstaAprobadoPorDireccion”.

Page 91: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Tipo de contenido: Documento de Agencia Tributaria

<types> <type name="aeat:documento"> <title>Documento de Agencia Tributaria</title> <parent>cm:content</parent> <properties> <property name="aeat:MailResponsable"> <title>eMail del responsable del documento</title> <type>d:text</type> </property> <property name="aeat:Proyecto"> <title>Proyecto al que pertenece</title> <type>d:text</type> </property> <property name="aeat:EstaAprobadoPorDireccion"> <title>Aprobado por direccion</title> <type>d:boolean</type> </property> </properties> </type>

</types>

Page 92: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Declaración básica de propiedades

✴ La declaración básica de una propiedad (metadato) de un tipo de contenido es :

...<type ... >

<property name="prefijo:nombrePropiedad"><title>Titulo del metadato</title><type>d:tipoDeDato</type>

</property>

...

</type>...

Tipo de dato declarado por el Data Dictionary de Alfresco

Page 93: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Tipos de datos para las propiedades

✴ Como ya hemos comentado antes, los tipos de datos soportados en el esquema Dictionary son:

Page 94: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Restricciones

✴ El concepto de restricción puede utilizarse opcionalmente para restringir los valores que Alfresco almacenará en nuestras propiedades.

✴ Están definidas 4 tipos de restricciones: REGEX, LIST, MINMAX y LENGTH.

✴ Las restricciones se definen una única vez y se reutilizan en todo el modelo.

✴ Alfresco incorpora una restricción predefinida “cm:filename” que define una expresión regular para chequear que una cadena es un nombre de fichero válido.

Page 95: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Aspectos

✴ Introducción.✴ Definición de aspecto.✴ Aspectos por defecto.

Page 96: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Los aspectos nos permiten aplicar conceptos transversales (propiedades o asociaciones) a cualquier pieza de contenido (sea cual sea su tipo) y en cualquier lugar.

✴ Son fundamentales a la hora de diseñar buenos modelos reutilizables, flexibles y con buen rendimiento.

✴ Se pueden aplicar a un nodo y posteriormente quitarle estas propiedades. Son de “quita y pon”.

Page 97: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Definición de aspecto

✴ El elemento aspect define un aspecto dentro del modelo de contenidos.

✴ Se define de forma similar a un tipo de contenido.

<aspect name="prefix:aspectName"> <title>aspectTitle</title> <properties> <property > ... </property> ... </aspect>

Page 98: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Definición de aspecto

✴ Ejemplo: <aspect name="cm:auditable"> <title>Auditable</title> <properties> <property name="cm:created"> <type>d:datetime</type> </property> <property name="cm:creator"> <type>d:text</type> </property> <property name="cm:modified"> <type>d:datetime</type> </property> ... </properties> </aspect>

Page 99: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Aspectos por defecto

✴ Alfresco nos ofrece un conjunto de aspectos, por defecto, que podemos utilizar en nuestros modelos de contenidos:✴ Classifiable Aspect: activa la categorización, por lo tanto se puede

aplicar categorías sobre el documento.✴ Complianceable Aspect: se añade la propiedad para indicar

cuándo debe borrarse.✴ Dublin Core Aspect: añade los metadatos de Dublic Core:

publisher, Contributor, Subject y Rights.✴ Effectivity Aspect: añade las propiedades From y To al

documento.✴ Emailed Aspect: añade un conjunto de propiedades de Email Data al

documento. ✴ Localizable Aspect: añade la propiedad Locale to the document.

Page 100: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Aspectos por defecto

✴ Summarizable Aspect: añade la propiedad Summary al documento.

✴ Templatable Aspect: añade la propiedad cm:template, que es la referencia a otro nodo, que será la plantilla.

✴ Translatable Aspect: añade la propiedad Translations al documento.

✴ Versionable Aspect: habilita el versionado de documentos.

Page 101: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Aspectos por defecto

✴ Complianceable Aspect:<aspect name="cm:complianceable"> <title>Complianceable</title> <properties> <property name="cm:removeAfter"> <title>Remove After</title> <type>d:datetime</type> </property> </properties> <mandatory-aspects> <aspect>cm:auditable</aspect> </mandatory-aspects></aspect>

Page 102: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Aspectos por defecto

✴ Dublin Core Aspect:

<aspect name="cm:dublincore"> <title>Dublin Core</title> <parent>cm:titled</parent> <properties> <property name="cm:publisher"> <title>Publisher</title> <type>d:text</type> <mandatory enforced="false">true</mandatory> </property> ...

<mandatory-aspects> <aspect>cm:auditable</aspect> <aspect>cm:author</aspect> </mandatory-aspects></aspect>

Page 103: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Aspectos por defecto

✴ Translatable Aspect:<aspect name="cm:translatable"> <title>Translatable</title> <parent>cm:localizable</parent> <associations> <association name="cm:translations"><title>Translations</title> <source><role>cm:translationOf</role> <mandatory>false</mandatory> <many>false</many> </source> <target><class>cm:content</class> <role>cm:hasTranslation</role> <mandatory>false</mandatory> <many>true</many> </target> </association> </associations> </aspect>

Page 104: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Despliegue de modelo de contenidos

✴ Introducción.✴ Crear el fichero de contexto.✴ Despliegue estático.✴ Despliegue dinámico.

Page 105: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Una vez que el modelo de contenidos ha sido definido, es decir, el fichero xml ha sido creado, tenemos que desplegarlo en nuestra instalación de Alfresco.

✴ Para que Alfresco reconozca la definición de nuestro nuevo modelo debemos crear un fichero de contexto que haga de cargador de la definición.

✴ El fichero de contexto debe llamarse como <nombreModelo>-context.xml y colocarse en el fichero de extensión para que Alfresco lo localice automáticamente.

✴ Los modelos pueden instalarse en Alfresco de forma estática o dinámica. La primera necesitará el reinicio del sistema.

Page 106: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Crear el fichero de contexto

✴ El fichero de contexto contiene uno o más bean de configuración de Spring.

✴ Dependiendo de la distribución de Alfresco que hayamos descargado tendremos un conjunto de ficheros de contexto de ejemplo en el directorio de extensión que nos servirán como plantilla para los nuestros.✴ Nota: el directorio de extensión es ${alfresco}/tomcat/shared/

classes.

Page 107: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Crear el fichero de contexto

✴ Para la versión 4.2.c, la plantilla custom-model-context.xml.sample es:

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'> <beans> <!-- Registration of new models --> <bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap"> <property name="models"> <list> <value>alfresco/extension/customModel.xml</value> </list> </property> </bean></beans>

Page 108: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Crear el fichero de contexto

✴ La ruta alfresco/extension/customModel.xml se define en relación a la carpeta de extensión de alfresco.

✴ Resumiendo, si nuestro modelo se ha definido en un fichero llamado companyModel.xml, el fichero de contexto se llamará companyModel-context.xml

...<beans> <!-- Registration of new models --> <bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap"> <property name="models"> <list> <value>alfresco/extension/companyModel.xml</value> </list> </property> </bean></beans>

Page 109: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Despliegue estático (Static model)

✴ El despliegue estático obligatoriamente implica un reinicio del sistema para que los nuevos modelos de contenidos sean tenidos en cuenta. Este despliegue implica:✴ Copiar el fichero de contexto en la carpeta ${alfresco}/tomcat/

shared/classes/alfresco/extension.✴ Copiar el fichero del modelo de contenidos en la carpeta $

{alfresco}/tomcat/shared/classes/<rutaDefinidaFicheroContexto>✴ Reiniciar Alfresco.

Page 110: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Despliegue dinámico (Dynamic Model)

✴ Con el método anterior (modelos estáticos) será necesario reiniciar el sistema para que lea los cambios de la carpeta de extensión.

✴ Existe la posibilidad de usar modelos dinámicos, que no requieren parada del servicio.

✴ Para ello, debemos subir el fichero con nuestro nuevo modelo (el XML que lo define, NO el que termina en -context.xml) al espacio “Company Home -> Data Dictionary -> Models”.

✴ Cuando hagamos el upload del modelo al espacio previamente mencionado, nos saldrá un check-box 'Model Active' que debemos seleccionar si queremos desplegarlo.

Page 111: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

WebScripts en Alfresco

✴ Introducción.✴ Elementos importantes.✴ Documento de descripción.✴ Controller Script.✴ Plantillas.

Page 112: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Un Web Script es algo tan simple como un servicio mapeado a una URI que responde ante peticiones HTTP de tipo GET, POST, PUT y DELETE. Es por eso, que el desarrollo de Web Scripts nos permite construir fácilmente Servicios Web para gestión de contenidos identificados por una URI y accesibles vía HTTP, es decir, integraciones REST.

✴ Podemos acceder, manejar y enlazar nuestros contenidos a través de una API tipo REST.

✴ No necesitamos herramientas especiales ni conocimientos de Java. Todo lo que necesitamos es un editor de texto o el cliente web Alfresco Explorer o Share: sin compilaciones, paradas de servidor ni complejas instalaciones.

Page 113: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Podemos diferenciar entre dos grandes familias de Web Scripts:✴ Web Scripts de datos:

✴ Encapsulan el acceso o modificación del contenido/datos del repositorio, por lo tanto, son expuestos siempre y sólo por el servidor repositorio de Alfresco.

✴ Proveen una interfaz del repositorio a aplicaciones cliente. Los procesos suelen utilizar documentos en distintos formatos (XML, JSON, etc.).

✴ Alfresco incluye por defecto Web Scripts de datos que sirven para: añadir tags a los documentos, actividades, gestión del site, etc.

Page 114: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Podemos diferenciar entre dos grandes familias de Web Scripts (cont.):✴ Web Scripts de presentación:

✴ Permiten construir interfaces de usuario como dashlets para Alfresco, portlets para un portal que siga el estándar JSR-168, componentes UI como Alfresco SURF, un sitio Web o una aplicación a medida. Generalmente renderizan HTML.

✴ Pueden ser desplegados en un servidor Alfresco o en un servidor independiente. Cuando se escoge esta última opción, interactuan con los Data Web Scripts. Por defecto existen los Web Scripts para Portlets, integración con Office, Componentes SURF, etc.

Page 115: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ La interfaz de un Web Script está formada por:✴ URI,✴ Métodos HTTP y✴ Tipos de documento.

✴ Estos elementos son la única información que deben conocer los clientes.

Page 116: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Elementos importantes

✴ Un Web Script está formado por: ✴ Un documento de descripción: identifica la URI que instancia

el script, un nombre corto, descripción y requisitos de autenticación y transacciones.

✴ Un script que actúa de controlador opcional. Escrito en Javascript puede realizar tareas como consultas al repositorio de Alfresco, actualizar el repositorio, etc. El script tiene acceso a todos los argumentos de la URI, a los servicios de Alfresco y a los datos del repositorio.

✴ Una o más plantillas de respuesta FreeMarker denominadas vistas. Se encargan de renderizar la respuesta en el formato adecuado: HTML, ATOM, XML, RSS, JSON, CSV, o cualquier combinación de ellos.

Page 117: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Documento de descripción

✴ Tiene que tener la extensión .desc.xml para informar a Alfresco que dicho documento es una descripción de Web Script.

✴ Por ejemplo org/alfresco/ejemplo/holamundo.get.desc.xml define (configuración por convención).✴ Un paquete org/alfresco/ejemplo.✴ Un id de servicio holamundo.✴ Un enlace al método GET de HTTP.

Page 118: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Documento de descripción

✴ Ejemplo:

✴ Analizamos los diferentes elementos xml que nos permiten definir este documento de descripción.

<webscript> <shortname>Hello World</shortname> <description>Greet a user</description> <url>/holamundo?to={name?}</url> <format default="html">extension</format> <authentication>user</authentication></webscript>

Page 119: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Documento de descripción

✴ shortname: nombre corto del Web Script.✴ description: (opcional) es la documentación del Web

Script.✴ url: URI asociada al Web Script.

Page 120: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Controlador

✴ Un Web Script puede opcionalmente ejecutar JavaScript en la invocación de su URI. Este JavaScript puede lanzar consultas o actualizar el repositorio. También puede construir un modelo de datos que, posteriormente, podrá ser utilizado por la plantilla que generará la respuesta.

✴ El nombre del fichero sigue la siguiente sintaxis:

✴ Por ejemplo, para el servicio Hello World podemos crear un fichero en la misma carpeta que el documento de descripción:

helloworld.get.js

<serviceId>.<httpMethod>.js

Page 121: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Controlador

✴ Estos ficheros se generan mediante la API Alfresco JavaScript.

✴ Permite a los desarrolladores crear ficheros JavaScript para acceder, modificar y crear objetos en el repositorio de Alfresco.

✴ Proporciona un modelo orientado a objetos para manejar conceptos como nodos, propiedades, asociaciones y aspectos.

Page 122: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Controlador

✴ Usando esta API podemos:✴ Encontrar nodos via XPath y directamente via NodeRef o path.✴ Realizar búsquedas incluyendo búsquedas a texto completo con

resultados ordenados.✴ Navegar por jerarquía de nodos, examinar y modificar el valor de

propiedades, aspectos y asociaciones.✴ Transformar y manipular contenido.✴ ...

Page 123: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Controlador

✴ Ejemplo: se añade un aspecto. El método addAspect realiza esta operación.

var props = new Array(1);props["cm:template"] = document.nodeRef;document.addAspect("cm:templatable", props);

props = new Array(1);props["cm:lockIsDeep"] = true;document.addAspect("cm:lockable", props);

props = new Array(1);props["cm:hits"] = 1;document.addAspect("cm:countable", props);

Page 124: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Controlador

✴ Ejemplo: se crea un documento en la carpeta de usuario. ✴ El método createFile realiza esta operación.

var doc = userhome.createFile("checkmeout.txt");doc.content = "original text";

Page 125: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Controlador

✴ Ejemplo: se crean nodos mediante diferentes estrategias. ✴ El método createFile realiza esta operación.

var node1 = userhome.createNode("create test1.txt", "cm:content");node1.content = "node1 content";

var node2 = userhome.createNode(null, "sys:base");

var props = new Array();props["cm:name"] = "create test3.txt";var node3 = userhome.createNode(null, "cm:content", props);

props["cm:name"] = "node name4.txt";props["cm:title"] = "node title4";var node4 = userhome.createNode(null, "cm:content", props, "cm:contains");

Page 126: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Controlador

✴ Ejemplo: crear el backup de un documento:// find the backup folder - create if not already existsvar backupFolder = space.childByNamePath("Backup");if (backupFolder == null && space.hasPermission("CreateChildren")){ // create the folder for the first time backupFolder = space.createFolder("Backup");}if (backupFolder != null && backupFolder.hasPermission("CreateChildren")){ // copy the doc into the backup folder var copy = document.copy(backupFolder); if (copy != null) { // change the name so we know it's a backup copy.name = "Backup of " + copy.name; copy.save(); }}

Page 127: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Controlador

✴ Ejemplo: crear el backup de un documento:✴ Se utilizar el objeto raíz space y apoyándose en el método

childByNamePath se recupera el nodo que representa a la carpeta de backup.

✴ El método hasPermission comprueba si el usuario tiene permisos para crear hijos. El método createFolder crea la carpeta

// find the backup folder - create if not already existsvar backupFolder = space.childByNamePath("Backup");

if (backupFolder == null && space.hasPermission("CreateChildren")){ // create the folder for the first time backupFolder = space.createFolder("Backup");}

Page 128: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Plantillas

✴ Una plantilla es un documento que puede aplicarse a uno o varios objetos (por ejemplo, uno o más documentos de un repositorio) para generar otro documento. FreeMarker o XSLT son plantillas.

✴ La plantilla se escribe en un lenguage de plantillas específico.

✴ El modelo de datos será el conjunto de objetos disponible en la plantilla.✴ Plantilla + Modelo de datos = salida

Page 129: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Plantillas

✴ El desarrollador necesita conocer el lenguaje de plantillas que debemos utilizar y el modelo de datos disponible.

Page 130: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Plantillas

✴ Alfresco trabaja por defecto con Freemarker.✴ La extensión de los ficheros es ftl.✴ Debemos ser capaces de generar plantillas siguiendo

su sintaxis:

<html><head> <title>Welcome!</title></head><body> <h1>Welcome ${user}!</h1> <p>Our latest product: <a href="${latestProduct.url}">${latestProduct.name}</a>!</body></html>

Page 131: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Plantillas

✴ FreeMarker es un motor de plantillas basado en Java. ✴ Se definen plantillas que no son más que ficheros de

texto que contienen la salida deseada, excepto determinadas variables ${name}, y directivas (if, bucles, etc).

✴ El lenguaje de plantillas nos ofrece estructuras de control, bucles, etc para construirla.

Page 132: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Plantillas

✴ http://freemarker.org/docs/index.html

Page 133: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Despliegue

✴ Cuatro opciones, copiar los ficheros en:✴ Carpeta: /Company Home/Data Dictionary/Web Scripts

Extensions✴ Carpeta: /Company Home/Data Dictionary/Web Scripts✴ classpath: /alfresco/extension/templates/webscripts✴ classpath: /alfresco/templates/webscripts

Page 134: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Registrar un Web Script

✴ Los Web Scripts nuevos o actualizados son refrescados automáticamente cuando se reinicia el servicio de Alfresco.

✴ También podemos registrarlos manualmente accediendo a la URL http://<host>:8080/alfresco/service/index y pulsando Refresh list of Web Scripts.

Page 135: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Web Scripts Home

✴ Pequeña utilidad para gestionar nuestros Web Scripts y ver cuales están desplegados.

Page 136: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Probando el script

✴ Nos dirigimos a http://<host>:8080/alfresco/service/ejemplo/holaMundo?nombre=<tu nombre> y deberíamos ver la respuesta HTML esperada.

Page 137: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Java Foundation services

✴ Introducción.✴ Acceso a la API.✴ Los servicios disponibles.✴ Conceptos importantes.✴ Servicio de nodos NodeService.✴ Inyección de servicios.✴ Construir nuevos servicios.

Page 138: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Son el conjunto de servicios que propocionan acceso completo a todas las capacidades del repositorio de Alfresco.

✴ Es una API in-process, que significa que el cliente que la usa debe encontrarse en el mismo proceso que el repositorio.

✴ Por ejemplo, el cliente web Alfresco Explorer usa esta API y se encuentra empaquetado con el repositorio en el mismo war.

✴ Cada servicio se maneja en forma de interface Java. Spring Framework será el responsable de inyectar la implementación adecuada del servicio.

Page 139: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Para qué?

✴ Desarrollo de acciones en Alfresco:✴ Una acción es una unidad de trabajo que se realiza sobre un nodo,

por ejemplo, mover un nodo, borrar un nodo, etc.✴ Alfresco incorpora un conjunto de acciones predefinidas:

check-out, check-in, Añadir aspecto, borrar aspecto, enviar mail, etc.

✴ A veces, el término Rule Action se usa para describir un tipo de acción. Son acciones asociadas a reglas sobre una carpeta.

Page 140: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Para qué?

✴ Desarrollo de acciones en Alfresco (cont.):✴ El desarrollador puede crear acciones personalizadas para resolver

problemas totalmente específicos.✴ Esta acciones UTILIZAN los Alfresco Java Foundation services.

Page 141: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Para qué?

✴ Webscripts en Java:✴ Hasta ahora hemos hablado de webscript desarrollados mediante

JavaScript, pero ¿qué ocurre si necesitamos implementar funcionalidades complejas?

✴ Por ejemplo, acceso a una base de datos relacional o trabajar con generadores de informes como JasperReports.

Page 142: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Para qué?

✴ Webscripts en Java:

✴ pero existe la posibilidad de crear webscripts en Java.✴ En estos casos, el uso de Alfresco Java Foundation services será

muy útil.

Page 143: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Para qué?

✴ Webscripts en Java (cont.):✴ Para esas situaciones existe la posibilidad de crear webscripts en

Java. En estos casos, el uso de Alfresco Java Foundation services será muy útil.

✴ El controlador del webscript será una clase Java que hereda de DeclarativeWebScript:

...public class MoveDocuments extends DeclarativeWebScript {

if(nodeService.exists(nodeRefCentro)){ String centroFolderName = (String) nodeService.getProperty(nodeRefCentro, ContentModel.PROP_NAME);

...

Page 144: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Acceso a la API

✴ Existen tres estrategias para acceder a estas interfaces en nuestro código:✴ Mediante Inyección de dependencias.✴ Acceso manual mediante el método Spring getBean() de Spring.

✴ Indirectamente mediante el servicio de Alfresco ServiceRegistry: el servicio de registro mantiene un listado de todos los servicios del repositorio disponibles.

Factory.getBean("AuthenticationService");

serviceRegistry.getAuthenticationService();

Page 145: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Acceso a la API

✴ La interface ServiceRegistry nos proporciona acceso a todos los servicios del core del repositorio:

// Inicializar el contextoApplicationContext ctx = ApplicationContextHelper.getApplicationContext();

// Se obtiene el servicio de registrosfinal ServiceRegistry serviceRegistry = (ServiceRegistry) ctx.getBean(ServiceRegistry.SERVICE_REGISTRY); // Se recupera el servicio de gestión de transaccionesTransactionService transactionService = serviceRegistry.getTransactionService();

Page 146: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Acceso a la API

✴ La interface ServiceRegistry se encuentra en el paquete org.alfresco.service, representa los servicios públicos del repositorio de Alfresco.

✴ Proporciona metadatos de cada servicio y acceso a cada uno de ellos mediante su interface:

Page 147: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Acceso a la API

✴ El servicio de registro proporciona diferentes métodos para acceder a los servicios:✴ getActionService.✴ getPermissionService.✴ getAuthorityService.✴ getFileFolderService.✴ getScriptService.✴ getWorkflowService.✴ getNotificationService✴ getAuditService✴ ...

Page 148: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Los servicios disponibles

✴ Existe un servicio para cada funcionalidad disponible:✴ NodeService: servicio de nodos. Nos permite crear, modificar,

recuperar y borrar nodos, asociaciones, aspectos y propiedades.✴ ContentService: servicio de contenidos. Proporciona métodos

para acceder y transformar el contenido de los nodos.✴ SearchService: servicio de búsqueda. ✴ Servicio AuthenticationService.✴ Servicio TransactionService.✴ ...

Page 149: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Conceptos importantes

✴ Antes de seguir debemos tener en cuenta una series de conceptos importantes:✴ Nodo y contenido.✴ Namespaces o espacio de nombre.✴ Los modelos de Alfresco.

Page 150: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Los nodos en Alfresco

✴ Cualquier nodo en Alfresco se modela mediante la clase NodeRef que se encuentra en el paquete org.alfresco.service.cmr.repository.

✴ Cualquier nodo de almacenamiento en Alfresco se modela mediante la clase StoreRef que se encuentra en el paquete org.alfresco.service.cmr.repository.

✴ Podemos encontrar más información en Alfresco Data Model API.

Page 151: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Los nodos en Alfresco

✴ El concepto StoreRef comprime dos elementos:✴ Protocol del almacen: eso es el tipo de almacén.✴ Store id: Idenficador del almacén.

✴ Ejemplos:

workspace://SpacesStore

archive://SpacesStore

Page 152: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Los nodos en Alfresco

✴ El concepto NodeRef comprime tres elementos:✴ Los dos primeros asociados al store ref:

✴ protocolo: tipo de almacen.✴ storeid: identificador del almacén.

✴ El tercero es el identificador del nodo dentro del almacén.✴ UUID.

✴ Ejemplos:

workspace://SpacesStore/5af5a38b-e20a-4885-bbd1-4b3fde9b0dd3

Page 153: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servicio de nodos NodeService

✴ Se encuentra en el paquete org.alfresco.service.cmr.repository:

Page 154: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servicio de nodos NodeService

✴ Como ya se ha comentado anteriormente, este servicio permite crear, modificar, recuperar y borrar nodos, asociaciones, aspectos y propiedades.

✴ Alguno de sus métodos:✴ addAspect: este método añade un nuevo aspecto a un nodo dado.✴ createNode: crea un nodo.✴ deleteNode: borra un nodo.✴ exists: verifica si existe un nodo.✴ ...

Page 155: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servicio de nodos NodeService

✴ Ejemplos:// Se recupera el nombre del fichero asociado al nodoString fileName = (String) nodeService.getProperty( nodeRef, ContentModel.PROP_NAME);

// Se recupera el valor de una propiedadQName PROP_QNAME_MY_PROPERTY = QName.createQName( "custom.model", "myProperty");

value = nodeService.getProperty(nodeRef, PROP_QNAME_MY_PROPERTY);

// Actualizar el valor de una propiedadQName PROP_QNAME_MY_PROPERTY = QName.createQName( "custom.model", "myProperty");

nodeService.setProperty(nodeRef, PROP_QNAME_MY_PROPERTY, value);

Page 156: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servicio de contenido ContentService

✴ Como ya se ha comentado antes, este servicio proporciona métodos para acceder y transformar el contenido de los nodos.

Page 157: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servicio de contenido ContentService

✴ Alguno de sus métodos:✴ getReader: recupera un lector para una determinada propiedad.✴ getWriter: recupera un escritor para trabajar sobre una

determinada propiedad.✴ getTransformer: se recupera un transformador para llevar a

cabo una transformación.

Page 158: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servicio de contenido ContentService

✴ Ejemplos:// Leer el contenido de un nodoContentReader reader = contentService.getReader( nodeRef, ContentModel.PROP_CONTENT);String content = reader.getContentString();

// Leer el contenido de un nodo en binarioContentReader reader = contentService.getReader(nodeRef, ContentModel.PROP_CONTENT);InputStream originalInputStream = reader.getContentInputStream();ByteArrayOutputStream outputStream = new ByteArrayOutputStream();final int BUF_SIZE = 1 << 8; //1KiB bufferbyte[] buffer = new byte[BUF_SIZE];int bytesRead = -1;while((bytesRead = originalInputStream.read(buffer)) > -1) { outputStream.write(buffer, 0, bytesRead);}originalInputStream.close();byte[] binaryData = outputStream.toByteArray();

Page 159: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servicio de contenido ContentService

✴ Ejemplos:

// Escribir el contenido de un nodoContentWriter writer = contentService.getWriter(nodeRef, ContentModel.PROP_CONTENT, true);writer.putContent(new ByteArrayInputStream(content));

// Escribir el contenido de un fichero en un nodoContentWriter writer = contentService.getWriter(nodeRef, ContentModel.PROP_CONTENT, true);writer.setLocale(CONTENT_LOCALE);File file = new File("c:/temp/images/BigCheese1.bmp");writer.setMimetype("image/bmp");writer.putContent(file);

Page 160: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Inyección de servicios

✴ Si necesitamos utilizar alguno de estos servicios dentro de cualquiera de la extensiones desarrolladas en Alfresco, tendremos que aplicando Inyección de Dependencias (gracias a Spring Framework), ponerlos a disposición de nuestro código.

Page 161: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Inyección de servicios

✴ El fichero public-services-context.xml que se encuentra en la carpeta “${tomcat}/webapps/alfresco/WEB-INF/classes/alfresco” define la mayor parte de los servicios:

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans> <import resource="classpath:alfresco/public-services-security-context.xml"/>

Page 162: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Inyección de servicios

✴ Servicio de registro: si queremos inyectar este servicio en nuestras clases tendremos que usar el id ServiceRegistry.

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans> <import resource="classpath:alfresco/public-services-security-context.xml"/>

<!-- Service Registry --> <bean id="ServiceRegistry" class="org.alfresco.repo.service.ServiceDescriptorRegistry" />

Page 163: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Inyección de servicios

✴ Servicio de búsqueda: si queremos hacer referencia a este servicio tendremos que usar el id SearchService:

<!-- Search Service --><bean id="SearchService"

class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="proxyInterfaces"> <value>org.alfresco.service.cmr.search.SearchService</value> </property> <property name="target"> <ref bean="searchService"/> </property> ...

</bean>

Page 164: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Otros

✴ Alfresco webservices

Page 165: Alfresco. La gestión de contenidos empresarial

Profundizando en la plataforma

✴Alfresco Explorer y Share.✴ Búsquedas en Alfresco: Lucene y Solr.✴ Flujos de trabajo con Activiti.✴CMIS y Alfresco.✴Otros.

Page 166: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Alfresco Explorer

✴ Alfresco Explorer es el primer cliente web desarrollado desde Alfresco para acceder al repositorio:

Page 167: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Alfresco Explorer

✴ Se encuentra desarrollada mediante JSF y obligatoriamente tiene que ejecutarse junto al core de Alfresco, no puede trabajar en remoto.

✴ Es una aplicación muy antigua y va a desaparecer en próximas versiones del producto.

Page 168: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Alfresco Share

✴ Introducción a Share.✴ Share y los modelos.✴ Share y los flujos de trabajo.

Page 169: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Alfresco Share es un cliente web introducido en la versión 3 de Alfresco que se basa en Spring Surf y YUI.

✴ Permite establecer espacios colaborativos, relacionados con la gestión documental y la gestión de contenidos.

Page 170: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Dashboard de Alfresco Share

Page 171: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ El nivel de personalización del entorno es muy grande:

Page 172: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Alfresco Share ha sido concebido para la creación de portales colaborativos.

✴ La unidad fundamental de Alfresco Share es el sitio web.

✴ Nos ofrece componentes para construir portales siguiendo esta estrategia:✴ Blogs, wikis, calendarios, etc.

Page 173: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Creación de sitios web

Page 174: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Personalización del sitio web

✴ Se selecciona el botón Más seleccionando la opción Configurar sitio:

Page 175: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Personalización del sitio web

Page 176: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Personalización del sitio web

✴ Look and feel:

Page 177: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Personalización del sitio web

✴ Wikis, Blogs, calendario, etc.

Page 178: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Personalización del sitio web

✴ Links:

Page 179: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Personalización del sitio web

✴ Listas de datos

Page 180: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Miembros

✴ La sección miembros permite gestionar los usuarios o grupos de usuarios que pertenecen a un sitio web:

Page 181: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Miembros

✴ Se pueden invitar a los usuarios:

Page 182: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Biblioteca

✴ Es el gestor documental de Share:

Page 183: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Biblioteca

✴ Crear carpetas:

Page 184: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Biblioteca

✴ Subir y añadir documentos:

Page 185: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Biblioteca

✴ Crear contenidos:

Page 186: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Biblioteca

Page 187: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Flujos de trabajo

✴ Los flujos de trabajo definidos dentro de Alfresco pueden manejarse en Alfresco Share sobre cualquier documento:

Page 188: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Reglas

Page 189: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Administración de permisos

Page 190: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

El repositorio de Alfresco

Page 191: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Sección Más

Page 192: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Búsquedas en Alfresco: Lucene y Solr

✴ Introducción.✴ Lucene vs Solr.✴ Búsquedas Alfresco v.4.✴ Solr en Alfresco.✴ Configuración en Tomcat.✴ Administración de Solr.

Page 193: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Los procesos de búsqueda en Alfresco son de vital importancia.

✴ Hasta su versión 3.4 se realizaban mediante Lucene.✴ A partir de la versión 4 de Alfresco, por defecto, se

trabaja con Solr aunque sigue estando preparado para trabajar con Lucene.

Page 194: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Para la versión 4 de Alfresco se pretende:✴ Conseguir que el repositorio sea más robusto y escalable.✴ Reducir la carga que implica el uso de Lucene en indexación

transaccional.✴ Gracias a la arquitectura de Alfresco, la interface de

búsqueda sigue siendo la misma. Este cambio no implica modificación alguna desde el punto de vista del desarrollo.

Page 195: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Ventajas:✴ No se necesita indexación durante una transacción.✴ No se necesita duplicar índices en cada servidor.✴ Las búsquedas pueden ser escaladas.✴ Se pueden usar herramientas de administración de Solr.✴ Mejoras en el acierto de los resultados.✴ Mejoras en el rendimiento.

Page 196: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Lucene vs Solr

✴ Apache Lucene es una librería Java que implementa un motor de búsqueda de alto rendimiento.

Page 197: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Lucene vs Solr

✴ Solr es una aplicación web construida sobre Lucene.✴ Podríamos decir que Solr es Lucene + extra.

Page 198: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Lucene vs Solr

✴ Cuando Alfresco se encuentra configurado para trabajar con Lucene, por defecto, almacena en el sistema de ficheros sus índices asociados:

Page 199: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Lucene vs Solr

Page 200: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Lucene vs Solr

✴ Cuando se trabaja en cluster:

Page 201: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Lucene vs Solr

✴ Dado que los índices deben encontrarse en cada servidor, Alfresco debe gestionar procesos de replicación de índices.

Page 202: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Lucene vs Solr

✴ En cambio cuando se trabaja con Solr, el proceso de replicación de índices desaparece.

Page 203: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Lucene vs Solr

✴ Apache Solr es una plataforma de búsquedas basada en Apache Lucene, que funciona como un servidor de búsquedas.

✴ Sus principales características incluyen búsquedas de texto completo, resaltado de resultados, clustering dinámico, y manejo de documentos ricos (como Word y PDF).

✴ Solr es escalable, permitiendo realizar búsquedas distribuidas y replicación de índices, y actualmente se está usando en muchos de los sitios más grandes de Internet.

Page 204: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Lucene vs Solr

✴ La principal característica de Solr (o al menos la más útil) es su API REST, ya que en vez de usar drivers o APIs programáticas para comunicarnos con Solr podemos hacer peticiones HTTP y obtener resultados en XML o JSON.

✴ Solr no expone una interfaz REST "perfecta" (que use todos los principios de HTTP 1.1), pero los datos tienen una representación simple que viaja entre el cliente y el servidor, sin ninguna encapsulación rara con SOAP u otras pesadillas. Además, los XML son legibles por personas, y JSON se puede usar para consumir con JavaScript y realizar pruebas.

Page 205: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Lucene vs Solr

✴ Si estamos buscando Escalabilidad, Solr será nuestra respuesta. En general, como opción por defecto y para la inmesa mayoría de los casos es Solr.

✴ Pero si estamos buscando transaccionalidad y sincronía absoluta entre contenidos e índices Lucene será nuestra mejor opción.

Page 206: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Búsquedas en Alfresco v.4

✴ Servicios que ofrece Lucene siguen estando activos. Podemos seguir usando Lucene si así lo creemos conveniente.

✴ El proceso de indexación con Solr es asíncrono.✴ Soporte a los mismos lenguajes de consulta.

Page 207: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Solr en Alfresco

✴ Introducción.✴ Índices de Solr.✴ Configuración en Tomcat.✴ Administración.

Page 208: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Analizamos la estructura por defecto de Solr dentro del bundle de Alfresco.

✴ Esto nos permitirá de forma rápida entender cómo se encuentra configurado:

Page 209: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Directorio keystore: almacena el material criptográfico que permite asegurar su comunicación con Alfresco.✴ ssl.keystore: pares de claves pública/privada✴ ssl.truststore: certificado de confianza.✴ browser.p12: contiene el certificado que tenemos que instalar en

el navegador para acceder a la herramienta de administración de Solr.

Page 210: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Directorio solr: directorio home de solr, encontramos su instalación.

Page 211: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Solr trabaja con dos cores (índice sobre contenidos con un esquema específico):✴ Dos índices diferentes, uno para nodos vivos y otro para nodos

borrados:✴ archive: nodos eliminados (carpeta archive).✴ alfresco: nodos vivos (carpeta workspace).

Page 212: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Cada core tiene dos directorios asociados:✴ Uno donde se guardan los índices.✴ Otro donde se guarda la configuración:

✴ *-SpacesStore

+ archive+ archive-SpacesStore+ ...+ workspace-SpacesStore+ workspace+ ...

Page 213: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Índices de Solr

✴ <SOLR-HOME> tiene un fichero de configuración llamado solr.xml:

✴ Donde se definen los diferentes índices que maneja. En este caso maneja dos: archive y alfresco.

<?xml version='1.0' encoding='UTF-8'?><solr sharedLib="lib" persistent="true"><cores adminPath="/admin/cores" adminHandler="org.alfresco.solr.AlfrescoCoreAdminHandler"> <core name="archive" instanceDir="archive-SpacesStore"/> <core name="alfresco" instanceDir="workspace-SpacesStore"/></cores></solr>

Page 214: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Fichero solrconfig.xml

✴ Para cada core, el fichero solrconfig.xml define los parámetros de configuración de Solr.

<requestHandler name="/spell" class="solr.SearchHandler" lazy="true"> <lst name="defaults"> <!-- omp = Only More Popular --> <str name="spellcheck.onlyMorePopular">false</str> <!-- exr = Extended Results --> <str name="spellcheck.extendedResults">false</str> <!-- The number of suggestions to return --> <str name="spellcheck.count">1</str> </lst> <arr name="last-components"> <str>spellcheck</str> </arr></requestHandler>

Page 215: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Índices de Solr

✴ Para cada core tiene su fichero solrcore.properties. ✴ Por ejemplo, archive-SpacesStore/conf/

solrcore.properties y workspace-SpacesStore/conf/solrcore.properties:✴ Editar la propiedad data.dir.root definiendo la ruta donde se

almacenan los índices de solr. ✴ Si se define la misma ruta para ambos cores, se crearán

subdirectorios.

Page 216: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Índices de Solr

✴ El fichero solrcore.properties será, en la mayoría de los casos, nuestra herramienta para configurar el sistema:

data.dir.root=/Applications/Curso/alfresco-4.1-enterprise/alf_data/solrdata.dir.store=workspace/SpacesStoreenable.alfresco.tracking=truecache.alfresco.size=100max.field.length=2147483647

Page 217: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Índices de Solr

✴ Propiedades para definir la sincronización con Alfresco:

## Properties loaded during alfresco tracking#

alfresco.host=localhostalfresco.port=8080alfresco.port.ssl=8443alfresco.baseUrl=/alfrescoalfresco.cron=0/15 * * * * ? *alfresco.stores=workspace://SpacesStore

Page 218: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Índices de Solr

✴ Propiedad alfresco.host: ✴ url a la que apunta alfresco.✴ Esta url puede apuntar al balanceador de carga de un cluster de

Alfresco.

Page 219: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Índices de Solr

✴ Propiedad alfresco.cron: ✴ La indexación entre Solr y Alfresco siempre se inicia a petición del

primero.✴ Se conecta periódicamente al repositorio y pregunta por si se han

producido cambios.

alfresco.cron=0/15 * * * * ? *

Page 220: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Índices de Solr

✴ Propiedad alfresco.secureComms:✴ Permite habilitar o no comunicaciones cifradas:

# none, httpsalfresco.secureComms=https

Page 221: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Índices de Solr

✴ Propiedades para definir la comunicación cifrada y segura con Alfresco:

alfresco.encryption.ssl.keystore.type=JCEKSalfresco.encryption.ssl.keystore.provider=alfresco.encryption.ssl.keystore.location=ssl.repo.client.keystorealfresco.encryption.ssl.keystore.passwordFileLocation=ssl-keystore-passwords.propertiesalfresco.encryption.ssl.truststore.type=JCEKSalfresco.encryption.ssl.truststore.provider=alfresco.encryption.ssl.truststore.location=ssl.repo.client.truststorealfresco.encryption.ssl.truststore.passwordFileLocation=ssl-truststore-passwords.properties

Page 222: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Configuración en Tomcat

✴ Pasamos a describir el proceso de instalación de Solr en Tomcat (NO TIENE QUE SER EL MISMO TOMCAT EN EL QUE SE ENCUENTRA ALFRESCO):✴ Fichero solr-tomcat-context.xml.✴ Índices de Solr.

✴ Supongamos que <SOLR_TOMCAT_HOME> es la ruta del tomcat donde se quiere instalar Solr.

Page 223: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Configuración en Tomcat

✴ Copiar solr-tomcat-context.xml a <SOLR_TOMCAT_HOME>/conf/Catalina/localhost/solr.xml:

✴ Actualizando a las rutas adecuadas.

<?xml version="1.0" encoding="utf-8"?><Context docBase="@@ALFRESCO_SOLR_DIR@@/apache-solr-1.4.1.war" debug="0" crossContext="true"> <Environment name="solr/home" type="java.lang.String" value="@@ALFRESCO_SOLR_DIR@@" override="true"/></Context>

Page 224: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Configuración en Tomcat

✴ Editar docBase in solr.xml para que apunte a <SOLR-HOME>/apache-solr-1.4.1.war (se define la ruta donde se encuentra el war de Solr).

✴ Editar Environment solr/home para que apunte a <SOLR-HOME>:

<?xml version="1.0" encoding="utf-8"?><Context docBase="/Applications/Curso/alfresco-4.1-enterprise/alf_data/solr/apache-solr-1.4.1.war" debug="0" crossContext="true">

<Environment name="solr/home" type="java.lang.String" value="/Applications/Curso/alfresco-4.1-enterprise/alf_data/solr" override="true"/></Context>

Page 225: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Configuración en Tomcat

✴ Una vez definida la ruta donde se encuentra el home de solr:

✴ Se parametrizan sus ficheros de configuración.

...

<Environment name="solr/home" type="java.lang.String" value="/Applications/Curso/alfresco-4.1-enterprise/alf_data/solr" override="true"/></Context>

...

Page 226: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Administración de Solr

✴ Introducción.✴ Acceso a la herramienta.✴ Análisis.✴ Navegar por esquema.✴ Configuración de log.

Page 227: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ El acceso a la herramienta de administración de Solr se realiza mediante navegador y requiere autenticación mediante certificado digital.

✴ La distribución de Solr, como ya se ha comentado anteriormente, nos proporciona un .p12 para tal efecto.

✴ Por lo tanto, debemos instalarlo en nuestros navegadores.

Page 228: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

Page 229: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

Page 230: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Acceso de herramienta

✴ https://<IP_MAQUINA>:8443/solr/

Page 231: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Acceso de herramienta

✴ https://<IP_MAQUINA>:8443/solr/

Page 232: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Acceso de herramienta

✴ Acceso a ambos cores:

Page 233: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Acceso de herramienta

Page 234: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Análisis

✴ La herramienta Analysis se encarga de mostrar cómo funciona el motor de búsqueda internamente.

✴ El analizador se utiliza en tiempo de indexación y en tiempo de búsqueda.

✴ Sólo tenemos que seleccionar la opción Analysis:

Page 235: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Análisis

✴ La consola nos permite realizar análisis de la misma forma que lo hace la herramienta:

Page 236: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Análisis

Page 237: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Análisis

Page 238: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Navegar por esquema

✴ https://<IP>:8443/solr/alfresco/admin/

Page 239: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Navegar por esquema

✴ https://<IP>:8443/solr/alfresco/admin/luke?wt=xslt&tr=luke.xsl

Page 240: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Configuración de log

✴ Modificamos el nivel de log:

Page 241: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Flujos de trabajo con Activiti

✴ Introducción.✴ Activiti de un vistazo.✴ Herramientas.✴ Trabajando con Alfresco.

Page 242: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Introducción a la gestión de procesos.✴ ¿Qué es Activiti?✴ BPMN 2.0

Page 243: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción a la gestión de procesos

✴ El término workflow se traduce como flujo de trabajo, hace referencia a la gestión modelada y computarizada de todas las tareas que deben llevarse a cabo y de los distintos protagonistas involucrados en realizar el proceso de negocio.

✴ Un proceso de negocio representa interacciones bajo la forma de un intercambio de información entre los distintos protagonistas, por ejemplo:✴ Personas.✴ Aplicaciones o servicios.✴ Procesos de terceros.

Page 244: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción a la gestión de procesos

✴ En la práctica, un workflow puede describir:✴ El circuito de validación.✴ Las tareas que deben realizarse entre los distintos participantes

de un proceso.✴ Los plazos que deben respetarse.✴ Los modos de validación.

Page 245: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción a la gestión de procesos

✴ El motor de workflow es una herramienta que permite dar forma a y automatizar los procesos de negocios de la empresa.

✴ Con este tipo de herramientas se pueden formalizar las reglas comerciales de la empresa para automatizar el proceso de toma de decisiones, es decir, qué rama de workflow elegir según el contexto.

✴ El propósito de los motores de workflow, o BPMS es acercar personas, procesos y máquinas, con el objeto de reducir tiempo y acelerar la realización de un trabajo.

✴ Estos sistemas permiten trabajar en equipo desde diferentes lugares físicos, además de disminuir la incertidumbre en los procesos (qué hacer en en el paso siguiente?) ya que la herramienta, con el flujo de trabajo implementado, informa de qué persona debe seguir colaborando en el flujo o qué estado es al que ha pasado el documento tras la etapa anterior.

Page 246: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción a la gestión de procesos

El diagrama representa la secuencia de actividades y

asignaciones con una notación estándar (BPMN)

Page 247: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Activiti?

✴ En marzo de 2010, Tom Baeyens y Joram Barrez, desarrolladores clave en el proyecto jBPM abandonan Red Hat y se involucran en el proyecto Activiti trabajando para Alfresco.

✴ Por supuesto, Activiti se basa en su amplia experiencia trabajando con jBPM.

Page 248: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Activiti?

✴ Activiti es un proyecto de código abierto de gestión de flujos de trabajo (Business Process Management, BPM) desarrollada en Java.

✴ Es una plataforma de BPM de código abierto con licencia Apache, que implementa BPMN 2.0 a partir del Object Management Group (OMG).

✴ Ha sido creado por Alfresco. La versión 4 de Alfresco utiliza Activiti como motor de workflow por defecto. Aunque es importante resaltar que Activiti es un proyecto OpenSource independiente.

✴ Activiti puede ejecutarse como motor BPM independiente, embebido en una aplicación o dentro de Alfresco.

Page 249: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Activiti?

✴ Activiti básicamente es un framework que implementa la especificación BPMN 2.0. Es capaz de desplegar definiciones de procesos, arrancar instancias de estos, ejecutar tareas de usuarios e implementar otras funcionalidades BPMN 2.0.

✴ Básicamente, Activiti es una máquina de estado:

Page 250: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

¿Qué es Activiti?

✴ Algunos de sus competidores son:✴ JBoss BPM o jBPM.✴ BonitaSoft.

Page 251: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

BPMN 2.0

✴ Business Process Model and Notation.✴ Es una notación gráfica que describe la lógica de los

pasos de un proceso de Negocio. ✴ Esta notación ha sido especialmente diseñada para

coordinar la secuencia de los procesos y los mensajes que fluyen entre los participantes de las diferentes actividades.

Page 252: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

BPMN 2.0

✴ BPMN proporciona un lenguaje común para que las partes involucradas puedan comunicar los procesos de forma clara, completa y eficiente. De esta forma BPMN define la notación y semántica de un Diagrama de Procesos de Negocio (Business Process Diagram, BPD).

✴ BPD es un diagrama diseñado para ser usado por los analistas, quienes diseñan, controlan y gestionan procesos. Dentro de un Diagrama de Procesos de Negocio BPD se utiliza un conjunto de elementos gráficos, agrupados en categorías, que permite el fácil desarrollo de diagramas simples y de fácil comprensión, pero que a su manejan la complejidad inherente a los procesos de negocio.

Page 253: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

BPMN 2.0

✴ BPMN es un estándar internacional de modelado de procesos aceptado por la comunidad.

✴ BPMN es independiente de cualquier metodología de modelado de procesos.

✴ BPMN crea un puente estandarizado para disminuir la brecha entre los procesos de negocio y la implementación de estos.

✴ BPMN permite modelar los procesos de una manera unificada y estandarizada permitiendo un entendimiento a todas las personas de una organización.

Page 254: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

BPMN 2.0

Page 255: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

BPMN 2.0

Page 256: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

BPMN 2.0

Page 257: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

BPMN 2.0

Page 258: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Activiti de un vistazo

✴ Motor integrable.✴ Uso de APIs REST.✴ OpenSource y BPMN 2.0.✴ Suite BPM completa.

Page 259: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Activiti de un vistazo

✴ Motor integrable:

Page 260: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Activiti de un vistazo

✴ Motor integrable:

Page 261: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Herramientas

✴ Activiti Explorer:

Page 262: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Herramientas

✴ Activiti Modeler:

Page 263: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Herramientas

✴ Activiti Modeler:

Page 264: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Herramientas

✴ Activiti Modeler:

Page 265: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Herramientas

✴ Activiti Designer:

Page 266: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Trabajando con Alfresco

✴ Introducción.✴ Despliegue del workflow.

Page 267: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Se encuentra integrado en Alfresco desde la versión 3.4.e de la comunidad.

✴ Antes de utilizar Activiti, Alfresco trabajaba con jBPM.✴ Se quería incorporar funcionalidades que jBPM no

soporta:✴ BPM portable, ligero y compatible BPMN 2.0.✴ Arquitectura REST.✴ Herramientas para usuario (modelado gráfico, administración, ...).✴ OpenSource.

Page 268: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Despliegue del workflow

✴ Si estamos utilizando la versión empresarial, el proceso de despliegue se podrá realizar desde la consola de despliegue de Activivi (Activiti Workflow Console) situada en la URL:

http://localhost:8080/alfresco/activiti-admin✴ o también podemos desplegarlo utilizando para ello un

bean de Spring que se encarga de desplegarlos, el llamado workflowDeployer.

Page 269: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Despliegue del workflow

✴ Se define la propiedad workflowDefinitions:✴ Nos permite definir tantas definiciones de flujos de trabajo como

sea necesario.

<bean id="someco.workflowBootstrap" parent="workflowDeployer"> <property name="workflowDefinitions"> <list>

<props><prop key="engineId">activiti</prop><prop key="location">

alfresco/extension/workflows/helloWorld.bpmn20.xml</prop><prop key="mimetype">text/xml</prop><prop key="redeploy">false</prop>

</props>

...

Page 270: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Despliegue del workflow

✴ Se define la propiedad workflowDefinitions (cont.):

<bean id="someco.workflowBootstrap" parent="workflowDeployer"> <property name="workflowDefinitions"> <list>

...<props>

<prop key="engineId">activiti</prop> <prop key="location">

alfresco/extension/workflows/helloWorldFork.bpmn20.xml</prop> <prop key="mimetype">text/xml</prop><prop key="redeploy">false</prop> </props>

</list> </property></bean>

Page 271: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Despliegue del workflow

✴ Se definen también los modelos de tareas que necesitemos:

...

<property name="models"> <list> <value>alfresco/extension/model/scWorkflowModel.xml</value> </list>

</property>

...

Page 272: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Despliegue del workflow

✴ Se definen los ficheros de propiedades:

...<property name="labels">

<list> <value>alfresco.extension.messages.scWorkflow</value> </list> </property> </bean>

</beans>

Page 273: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Paquete de recursos

✴ Cada workflow tiene un título y una descripción. En el fichero de recursos tendrán que aparecer como :tituloWorkflowActiviti.workflow.titletituloWorkflowActiviti.workflow.Description

✴ Ejemplos:

holaMundo.workflow.title=Flujo de Hola MundoholaMundo.workflow.Description=Flujo de Hola Mundo

Page 274: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Paquete de recursos

✴ Para la información del modelo, se sustituye “:” por “_”, se muestra un ejemplo a continuación:

...

scwf_workflowmodel.type.scwf_submitHelloWorldTask.title=Start HW Workflowscwf_workflowmodel.type.scwf_submitHelloWorldTask.description=Submit a workflow that says hello in the logscwf_workflowmodel.type.scwf_submitReviewTask.title=Start Someco Web Review

...

Page 275: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

La consola de flujos de trabajo

Page 276: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

La consola de flujos de trabajo

✴ La URL http://localhost:8080/alfresco/faces/jsp/admin/workflow-console.jsp nos permite acceder a la consola.

✴ Una vez dentro, podemos escribir comandos para extraer información sobre flujos de trabajo.

> show workflows all

> show definitions all

> undeploy definition <workflow id>

Page 277: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

CMIS y Alfresco

✴ Introducción.✴ Estándares de Comunicación (JCR y CMIS).✴ Modelo de datos.✴ Servicios.✴ Consultas.

Page 278: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ CMIS (Content Management Interoperability Services).✴ Estándar OASIS diseñado por los principales fabricantes

de ECM y para la industria de ECM. ✴ CMIS permite acceder a los sistemas de gestión de

contenidos que implementan CMIS, como Microsoft SharePoint, IBM FileNet, Documentum de EMC, y Alfresco en una forma normalizada e interoperable.

Page 279: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Con CMIS podemos crear aplicaciones que no tengan que limitarse a un sistema de gestión de contenidos concreto y permite asegurar el futuro de las aplicaciones desarrolladas e integradas con los repositorios con soporte CMIS. 

✴ El estándar ofrece un catálogo completo de funcionalidades y es capaz de manejar una amplia variedad de sistemas de gestión de contenidos.

Page 280: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Con CMIS podemos manejar los contenidos, metadatos de contenidos, control de versiones, contenidos de carpetas, asociaciones y transferencia de ficheros, también contempla un lenguaje de consulta, muy parecido a SQL, que permite hacer búsquedas por contenidos, metadatos, contenido de un documento, etc.

Page 281: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ La implementación CMIS que incorpora Alfresco es la base para aplicaciones que se desarrollan e integran con ésta.

✴ Esto significa que los desarrollos satélites de Alfresco lo hacen mediante CMIS (Transfer Service, por ejemplo).

✴ Las dos formas de integrar vía CMIS son: usando la interfaz CMIS RESTful AtomPub mediante WebScripts o con mediante servicios web SOAP (ver abajo la URL de cada una de ellas).

Page 282: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Estándares de Comunicación (JCR y CMIS)

✴ Hasta este momento el estándar Java que se promovía iba liderado por el JCR 1.0 (Java Content Repository) con la JSR-170 (desde 2005) y posteriormente el JCR 2.0 con la JSR-283 (terminada en 2009).

✴ En este momento se establece la discusión de si CMIS terminará con dichos estándares, sólo los dejará en segundo plano siguiendo a CMIS o los dos convivirán.

✴ De momento, Apache Chemistry, implementación CMIS de referencia, ha decidido integrarse con Apache JackRabbit, implementación JCR de referencia, sentando la convivencia entre ambos estándares, y permitiendo a los proveedores de CMS que implementan la JCR también puedan ofrecer compatibilidad CMIS.

Page 283: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Page 284: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Los clientes de CMIS pueden ser de todo tipo de orígenes y plataformas gracias a la comunicación independiente del lenguaje utilizada para comunicarse con el servidor, como son SOAP o REST. 

✴ La API CMIS no se sitúa sólo en el servidor, ya que el cliente comparte el conocimiento de qué servicios le proporciona el servidor, así como el modelo de datos común que intercambiará con él, definido por este estándar.

Page 285: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ El servidor CMIS deberá implementar el API de CMIS con la finalidad de proveer la capa de comunicación para las conexiones de los clientes,

✴ Los CMS están realizando la implementación de esta capa servidora dentro de sí mismos, exponiendo así una entrada más a sus funcionalidades además de las propias.

Page 286: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Introducción

✴ Algunos CMS tienen más de un repositorio donde alojan la información, CMIS permite obtener la información de qué repositorios utiliza permitiendo el acceso a ellos, tanto por JCR como por el API de CMIS.

✴ Para ello definirá un modelo común de datos con los que trabajaran tanto la parte cliente como la parte servidor en sus intercambios de información.

Page 287: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Modelo

✴ El modelo de objetos CMIS es similar al modelo de objetos de Alfresco excepto en cuanto a los aspectos.

✴ CMIS soporta tipos de objetos que definen las propiedades asociadas a cada tipo.

✴ Cada objeto tiene un tipo de objeto, propiedades definidas por ese tipo de objeto y un identificador de objeto.

Page 288: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Modelo

✴ Los tipos de objetos soportan herencia y pueden tener subtipos tanto para documentos como para carpetas. Los tipos de objetos de documento puede tener flujos de contenido para almacenar y acceder a los datos binarios.

✴ Los tipos de objetos también puede estar relacionados entre sí con relaciones de tipos.

Page 289: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Modelo

✴ Objeto Política o Directiva CMIS:✴ Un objeto de directiva representa una política administrativa que

puede aplicarse a un repositorio, como una política de gestión de retención de información.

✴ Una lista de control de acceso es un tipo de objeto de directiva. CMIS permite a las aplicaciones crear o aplicar ACLs. El repositorio de Alfresco también utiliza objetos de directiva para aplicar aspectos.

Page 290: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Modelo

✴ Objeto documento CMIS:✴ Los objetos documento tienen propiedades y enlaces para acceder a

la información binaria que es el documento en si, pueden tener propiedades multivaluadas y versiones.

✴ También pueden tener transformaciones que los representan como por ejemplo un thumbnail.

Page 291: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Modelo

✴ Versiones:✴ Las versiones en CMIS son sencillamente la forma de controlar

versiones de varios formas en diferentes implementaciones CMIS. ✴ Cada versión es un objeto independiente con su propia

identificación de objeto. ✴ Con el identificador de un objeto determinado se puede obtener la

versión actual o todas las versiones del objeto, así como eliminar una o varias versiones de un objeto.

Page 292: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Modelo

✴ Objeto carpeta:✴ Los objetos documento se almacenan en una jerarquía de carpetas. ✴ Al igual que en Alfresco, una carpeta puede estar dentro de otra

para crear la jerarquía. ✴ La relación entre carpeta y documento es de muchos a muchos, si

el repositorio soporta multi-presentación (multifiling), un documento puede estar presente en más de una carpeta.

Page 293: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servicios

✴ Este estándar ofrece esta serie de servicios para garantizar la interoperabilidad entre los sistemas:✴ Repository: Se usan para recabar información sobre los

repositorios, incluida información sobre un repositorio concreto y sus tipos de objetos.

✴ Navigation: Se utilizan para navegar a través de la jerarquía de carpetas y localizar documentos sobre los que se han hecho check-out.

✴ Object: Se utilizan como CRUD (Create, Retrieve, Update, Delete) de objetos en el repositorio: Documentos, carpetas, relaciones, politicas, objetos propiamente dichos, propiedades, streams, …

Page 294: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Servicios

✴ Multi-filing: Se utilizan para añadir o eliminar archivos (ya existentes) a una carpeta (puede que el repositorio no lo soporte, y por tanto CMIS Servidor tampoco).

✴ Discovery: Se utilizan para buscar objetos en el repositorio, se utilizarán queries para ello.

✴ Versioning: Se utilizan para navegar o actualizar las versiones de los documentos.

✴ Relationship: Se utilizan para obtener relaciones entre objetos.✴ Policy: Se utilizan para aplicar o eliminar políticas✴ ACL: Se utilizan para aplicar, eliminar u obtener listas de control

acceso sobre una carpeta o documento.

Page 295: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Consultas

✴ Una consulta CMIS se basa en SQL-92. ✴ La consulta es de sólo lectura y no permite

manipulación de datos.✴ En la sintaxis que se puede utilizar están las siguientes

cláusulas:✴ SELECT con una lista de objetos✴ FROM con los tipos de objeto que se consultan✴ JOIN para realizar una combinación entre los tipos de objetos

(aspectos).

Page 296: Alfresco. La gestión de contenidos empresarial

Jesús Salinas RevellesAlfresco. La gestión de contenidos empresarial

Consultas

✴ WHERE con especificar una condición✴ IN y ANY para consultar propiedades multi-valuadas.✴ CONTAINS para especificar un texto concreto en la búsqueda.✴ IN_FOLDER y IN_TREE para buscar dentro de una jerarquía de

carpetas.✴ ORDERBY para ordenar los resultados.

Page 297: Alfresco. La gestión de contenidos empresarial