Integración de aplicaciones en Alfresco ECM

En el paradigma de integración de aplicaciones externas (un registro de entrada / salida, un buscador de imágenes, una aplicación de archivo y firma digital.... ) con un ECM (ya sea Alfresco o Nuxeo) o un portal empresarial como Liferay siempre determinamos ciertos alcances o niveles de integración. Este tipo de integraciones con aplicaciones de terceros, sean a medida o no, son referidas a veces como "content centric applications", y pueden ser web, móviles o de escritorio.

Nivel 0: Estandares del ECM

El repositorio actua como un almacén de documentos al que se accede y consulta a través de un sistema de unidad compartida como CIFS o Webdav y las acciones CRUD (create, read, update & delete) son acciones sobre el sistema de ficheros, o acciones a través de APIs Webdav para la manipulación de archivos. En el repositorio se plantea una estructura jerárquica de carpetas y documentos, en la que se pueden accionar reglas de contenido adicionales por ejemplo, para la transformación de documentos o el envío de mails.

Nivel 1: Operaciones básicas sobre archivos y registros

El siguiente nivel incluiría el uso de las APIs Webscript (REST) o CMIS para las acciones CRUD sobre esos documentos.

En este nivel hemos definido, una especie de pool de conexiones con el gestor documental (como si fuera una base de datos de documentos), donde un usuario con permisos en el ECM hace las acciones. Puede ser util para la realización de vistas lógicas de acceso y descarga. Normalmente con un usuario del ECM que tiene los permisos necesarios para las realizar las consultas via API.


Nivel 2: Usuarios y permisos

El siguiente nivel integraría los usuarios de aplicación y del repositorio. Para esto hay diferentes aproximaciones, desde sistemas de usuarios comunes en un directorio LDAP, sistemas de SSO basados en CAS (por ejemplo) o incluso a través de usuarios de bases de datos comunes.

Por otro lado, la definición del sistema de permisos en el ECM, permitiría definir la seguridad en las acciones CRUD y en las búsquedas. Aquí es importante discernir y unificar los roles de la aplicación y los roles en el repositorio.

En el momento en que introducimos la seguridad del usuario, se obtienen muchos beneficios al poder utilizar todos los motores de indexación, categorizado, etiquetado, tipificado del gestor documental. Requiere de mayor esfuerzo inicial pero se obtienen de mayores beneficios a futuro. Un ejemplo puede ser esta integración entre Zimbra, Alfresco y la aplicación a medida desarrollada en este caso (un registro de entrada / salida). La aplicación de algunos conectores de Alfresco addons puede facilitarnos algunas integraciones a bajo nivel, como en este ejemplo presentado en la Community Meetup de Alfresco de 2013. Y por último, otro ejemplo de integración de Alfresco es Sinadura ECM, en este caso una aplicación de escritorio basada en CMIS.


Nivel 3: Tipos de contenido y metadata - REST/CMIS

En este punto, nuestros documentos de valor pueden estar tipificados con metadatos de negocio. Y principalmente a través de REST / CMIS integraríamos los metadatos para realizar mejores búsquedas. En este punto, hay que tener en cuenta que la aplicación de aspectos en el modelo de contenidos de Alfresco no es estrictamente compatible con CMIS estándar, búsquedas case sensitive.... y en general de las limitaciones de las APIs, en este caso de CMIS, al tratarse de un estandar con un conjunto de especificaciones de gestión documental y no de todo el repositorio.

Nivel 4: Otros servicios - tagging y categorización

Si además nuestra integración requiere de otras características avanzadas que no forman parte del estándar CMIS, como la asignación de permisos, asociaciones o la categorización de contenidos, tendremos que usar API Webscript / REST.


Nivel 5: Nuevos servicios, acciones....

Si queremos definir nuevos servicios de gestión documental en el ECM, por ejemplo un servicio de validación de firma digital, es necesario definir servicios webscript y acciones java backed en Alfresco (Alfresco Foundation).


Nivel 6: Alfresco Share

Por otro lado, en Alfresco Share es posible parametrizar y extender funcionalidad a través de:

  • tipos documentales personalizados, formularios de búsqueda y plantillas de nodo y espacio
  • metadata templates, que nos permiten visualizar y personalizar mejor los metadatos de negocio.
  • buscadores personalizados o lanzadores como los expuestos aquí.
  • modificaciones de usabilidad de las vistas de los documentos, como aquí.
  • dashlets de contenidos, que configuran vistas lógicas parametrizadas o búsquedas personalizadas, como por ejemplo este.
  • acciones especificas para un workflow, por ejemplo la firma digital con un applet.
  • tareas programadas personalizadas con quartz que utilizan el API Foundation de Alfresco, como este.
  • workflows personalizados como el comentado aquí.
  • ... y muchas mas ...
00

More Blog Entries

0 Comments