Apache ManifoldCF es un proyecto Top-Level de Apache Software Foundation cuyo objetivo principal es proporcionar un framework Open Source que permita conectar distintos repositorios de contenidos como pueden ser Alfresco, Microsoft Sharepoint o Confluence con otros repositorios de salida, fundamentalmente motores de indexación como Apache Solr o ElasticSearch. En términos más sencillos, ManifoldCF nos permite conectar distintos repositorios entre sí.
Apache ManifoldCF puede concebirse, por tanto, como un crawler de repositorios. Los distintos conectores que ofrece el proyecto, tienen la capacidad de explorar todo el espacio de documentos de un determinado sistema siguiendo una estrategia de Incremental Crawling: de forma periódica y totalmente configurable, ManifoldCF ejecuta tareas de indexación que se encargan de recorrer los repositorios para comprobar si existen nuevos documentos a indexar o bien algunos de los ya indexados han sido modificados y necesitan ser indexados de nuevo.
Apache ManifoldCF también cuenta con un modelo de seguridad para los repositorios de salida que permite respetar las políticas de permisos de los repositorios de entrada o fuentes de información originales. Por cada conector de entrada que soporte nativamente algún tipo de modelo de permisos de acceso a los contenidos, ManifoldCF implementa un Conector de Autoridad que se encarga de extraer todos los permisos definidos para cada contenido y de indexarlos junto al mismo en los repositorios de salida. El objetivo de este proceso es mantener securizados los contenidos de todas las fuentes independientemente de que se federen en un mismo motor de búsqueda. En este sentido, ManifoldCF ofrece plugins tanto para ElasticSearch como para Apache Solr que solucionan para el integrador final la búsqueda securizada al filtrar automáticamente los resultados de búsqueda que un determinado usuario no puede obtener por no disponer de permisos suficientes.
A modo de ejemplo, algunos de los conectores de entrada incorporados actualmente en ManifoldCF son:
- Alfresco.
- Amazon S3.
- CMIS.
- Confluence y Jira.
- DropBox.
- Google Drive.
- JDBC (Bases de datos).
- Sharepoint.
![]() |
Configuración de Conectores de Entrada |
![]() |
Configuración de Conectores de Salida |
Búsqueda Federada
El principal caso de uso soportado por Apache ManifoldCF es la Búsqueda Federada dentro de una organización o empresa. Las empresas cuentan normalmente con información en diferentes repositorios de información distribuidos y no centralizados, por ejemplo, en un CMS, en uno o varios ECM, una base de datos, etc. Esta situación provoca que los usuarios finales tengan que conocer exactamente en qué sistema deben tratar de encontrar el recurso que están buscando. Es decir, las empresas aunque no lo quieran, terminan obteniendo silos de información que a la larga les impiden obtener verdadero conocimiento de sus datos y que les entorpece a la hora del trabajo diario.
¿Qué pasaría si pudiéramos acudir a un sólo lugar para buscar absolutamente toda la información de la empresa? Pasaría que seríamos empresas más rápidas y más efectivas :) Bien, pues esto es precisamente lo que nos permite ManifoldCF. Desde el punto de vista técnico, se trataría simplemente de configurar los conectores de entrada de los distintos repositorios de nuestra organización y un conector de salida como, por ejemplo, ElasticSearch. Una vez completada esta configuración, se definen las tareas periódicas de indexación. Al finalizar la primera ejecución de estas tareas (denominadas 'jobs' en ManifoldCF), nuestros contenidos distribuidos estarían indexados de forma federada en un mismo índice dentro de ElasticSearch y ya podríamos realizar búsquedas de forma global sobre todas nuestras fuentes de información. En este sentido, es importante recalcar que ManifoldCF indexa igualmente información de la fuente original de forma que los resultados de búsqueda puedan incorporar un enlace al contenido en su fuente original (por ejemplo, un enlace a un documento en DropBox).
![]() |
Configuración de Tareas de Indexación |
Migraciones de Contenido
Otro interesante caso de uso con ManifoldCF es la migración de contenidos. Nuestra experiencia como empresa dentro del mundo ECM nos dice que los procesos de migración entre repositorios son tan asiduos como costosos. Extraer ingentes cantidades de información de sistemas en uso desde hace años y replicarlas en otros sistemas usando los mismos modelos documentales y de permisos, es una tarea bastante tediosa y con tendencias a sufrir fugas de información. Actualmente, los conectores de salida de ManifoldCF están orientados a sistemas de indexación, pero su diseño es totalmente genérico para poder desarrollar conectores de salida también para repositorios, como los de entrada. Por ejemplo, podríamos implementar un conector de salida para Nuxeo usando su API REST de forma que los documentos de cualquier otro repositorio de entrada junto con sus metadatos y permisos pudieran ser almacenados en Nuxeo. De esta forma, podemos migrar contenidos de un repositorio a otro de forma automática.
Nuevo Conector de Nuxeo
Al igual que cualquier otro proyecto de Apache, ManifoldCF es desarrollado por una comunidad Open Source descentralizada que contribuye activamente en el mantenimiento y mejora del proyecto. Athento cuenta con miembros dentro de esta comunidad. Como integradores de Apache ManifoldCF, cuando necesitamos extenderlo o mejorarlo de alguna forma, contribuimos el resultado de vuelta al proyecto.
Igualmente, los proyectos de Apache están completamente abiertos a contribuciones 'externas' de cualquier tipo que permitan mejorar los proyectos. Y éste ha sido el caso del nuevo conector de Nuxeo que ha sido desarrollado por David Arroyo Escobar, estudiante de la Universidad de Sevilla, a través del programa Google Summer of Code de Google. El conector de Nuxeo es compatible con las versiones de Nuxeo LTS-2015 en adelante.
El conector de Nuxeo estará disponible en la próxima release de Apache ManifoldCF (2.6), planificada para finales de 2016. En estos momentos, nos encontramos finalizando los pasos necesarios para incorporarlo oficialmente como parte del código de ManifoldCF y que esté, de esta forma, disponible para todos los usuarios e integradores de Apache ManifoldCF.
Happy Crawling! :-)

No hay comentarios:
Publicar un comentario