Integración Alfresco con Drupal (o viceversa) con CMIS

La integración entre diferentes aplicaciones es, hoy en día, el caballo de batalla de los productos, clientes e integradores. Cuando hablamos de Open Source, esto se convierte casi en una obligación.

Gracias al estándar CMIS adoptado por Alfresco, las tareas de integración, independientemente del lenguaje de programación utilizado, son mucho más sencillas.

Sobre la integración de Alfresco y Drupal se ha hablado mucho, Jeff Potts ha hecho algunos screencasts, Roger Carhuatocto hizo una presentación sobre el tema en la Drupal Camp 2010, Optaros hizo el conector CMIS para Drupal y mucho antes, Sergio Martin junto a Manuel Recena hicieron un conector vía WebServices. Es decir, el tema trae cola y sólo basta con hacer una búsqueda en Google para dar cuenta de ello.

¿Qué nos puede aportar una integración de este tipo? (extraído de la presentación de Roger)

  • Flexibilidad:
    • Incorporar nuevas funcionalidades, Web 2.0.
    • Cambiar el Look&Feel.
  • Escalabilidad:
    • Búsqueda de ficheros PDF, SWF, Doc, PPT, etc.
    • Tengo muchos usuarios simultáneos.
  • Interoperabilidad:
    • Tengo MS Sharepoint, Documentum y tengo mis ficheros en el HD, …cómo los centralizo?
  • User Experience:
    • El usuario necesita productividad: Espacio colaborativo, gestión de conocimiento, repositorio documental corporativo, workflows/gestión de expedientes, etc.

En este artículo quiero mostrar un ejemplo sobre la configuración de Drupal para conseguir la integración con Alfresco vía CMIS y poder mostrar contenido que está en el repositorio dentro de un contenido en Drupal. En mi caso Alfresco 3.3 y Drupal 6.17. No voy a hablar de la sincronización entre ambos entornos, que permitirá que los contenidos creados en Drupal o Alfresco sean contenidos del primero. No obstante, el conector CMIS si soporta esa opción (cmis_sync).

Debemos tener instalado, configurado y funcionando Drupal y Alfresco. El conector CMIS puedes descargarlo de aquí; en mi caso ha sido la versión cmis-6.x-3.01. En Alfresco no hay que instalar ningún tipo de módulo, para eso soporta CMIS 😉

  1. Descomprime el fichero “cmis-6.x-3.01.tar.gz” y copia la carpeta “cmis” en el directorio “modules” de Drupal.
  2. En Drupal, vamos a “Admin -> Administer -> Site building -> Modules” y activamos los módulos “cmis“, “cmis_common“, “cmis_browser” y “cmis_query“.
  3. En Alfresco creamos un usuario llamado “cmisuser” con permisos de administrador (lo incluimos en el grupo ALFRESCO_ADMINISTRATORS).
  4. Configuramos un repositorio CMIS, en este caso, nuestro Alfresco añadiendo las siguientes líneas en el fichero “sites/default/settings.php“:

[php]
$conf[‘cmis_repositories’] = array(
‘default’ => array(
‘user’ => ‘cmisuser’,
‘password’ => ‘contraseña’,
‘url’ => ‘http://servidor:8080/alfresco/s/cmis’
)
);
[/php]

Hecho esto, podemos probar la integración. En la sección Admin veremos tres nuevas opciones:

  • CMIS Information” que nos mostrará la información CMIS del repositorio.
  • CMIS Query” donde podemos ejecutar consultas, por ejemplo, prueba la siguiente sentencia para ver los contenidos del repositorio: select * from cmis:document
  • CMIS Repository” donde veremos el contenido del repositorio de Alfresco y podremos navegar por él. En la opción “Actions” podemos crear carpetas, contenidos y actualizar documentos.

No conozco muy bien Drupal, así que no he podido hacer más de lo aquí descrito, pero he visto que se puede usar un Block con contenido CMIS y muchas cosas más que podéis ver en el screencast de Jeff Potts mencionado anteriormente.