Si os muestro esta imagen
muchos diréis que no es ninguna novedad, que es lógico pensar que aunque todos acedemos a internet y nuestros datos viajan por un mismo cable cada red particular puede compartir sus documentos sin que el vecino de abajo sepa cuales son. Pues esto mismo podemos hacer con Alfresco, gracias a la característica «Multi-Tenant» (a partir de aquí llamada MT).
Para qué sirve esta característica?
Podríamos definirla como la posibilidad de crear alfrescos independientes usando una única instancia de Alfresco. Nuestros clientes usarán un único Alfresco, un único war, sin embargo gracias al MT podremos generar nuevos repositorios para que cada organización tenga su propio repositorio físico pero todos usen un único método de entrada.
Activación del Multi-Tenant (Para este ejemplo hemos usado Alfresco Enterprise 3.2.1.2)
Cuando instalamos un nuevo Alfresco no disponemos de la característica MT activada por defecto. Para poder activarla es necesario modificar una serie de documentos. Si hemos descargado la versión de Alfresco que incluye el tomcat, debemos ir al directorio /tomcat/shared/classes/alfresco/extension/mt.
Observaremos que existen 3 archivos con extensión .sample (esta extensión es usada para que no se tenga en cuenta la configuración que contiene el archivo) que deberemos renombrar eliminando el .sample para que en el siguiente arranque de alfresco se tomen en cuenta. Los archivos a renombrar son:
- mt-context.xml.sample -> mt-context.xml
- mt-admin-context.xml.sample -> mt-admin-context.xml
- mt-contentstore-context.xml.sample -> mt-contentstore-context.xml
Una vez hechos los cambios, procederemos a reiniciar/arrancar Alfresco, fijándonos que en los logs aparecerán unos mensajes que nos indican que el MT está activado:
12:24:42,449 User:System INFO [repo.tenant.MultiTAdminServiceImpl] Alfresco Multi-Tenant startup - 0 enabled tenants, 0 disabled tenants
12:24:55,127 INFO [service.descriptor.DescriptorService] Alfresco license: Enterprise - v3.2 granted to Queres Technologias (does not expire)
12:24:55,128 INFO [service.descriptor.DescriptorService] Alfresco started (Enterprise - Multi-Tenant): Current version 3.2.1 (.2 3) schema 3501 - Originally installed version 3.2.1 (.2 3) schema 3501
Gestión de los Tenants
Para poder acceder a la URL de administración de MT debemos autenticarnos como administradores en Alfresco Explorer (por defecto admin/admin) y luego ir a la URL:
http://localhost:8080/alfresco/faces/jsp/admin/tenantadmin-console.jsp
Al igual que ocurre en la URL de administración de workflows lo primero que veremos será un input text para introducir los comandos y debajo una sección de ayuda con todos los comandos disponibles y una breve explicación de cada uno.
Creación de un Tenant
Para crear un tenant existe el comando create, al que debemos pasar una serie de parámetros:
- dominio del tenant (p.e. queres.com)
- contraseña para el usuario admin@queres.com
- directorio del alf_data para el nuevo tenant
el comando final quedaría similar a:
create queres.com password /opt/alfresco/alf_data_queres
Si vemos los logs del catalina.out podremos seguir el proceso de creación. Cuando aparezca un mensaje en la admin consola similar a «created tenant: queres.com» el proceso ha terminado.
Una vez creado el tenant podremos acceder al repositorio usando el explorador con la misma url de siempre:
http://localhost:8080/alfresco
Como usuario deberemos introducir admin@queres.com y la contraseña que indicamos al crear el tenant. Al acceder veremos un repositorio limpio como la primera vez que instalamos nuestro Alfresco y sin ninguna referencia al repositorio inicial (usuarios, grupos, nodos, etc).
Desactivar un Tenant
Para impedir el acceso a un tenant basta con ejecutar la orden «disable «. Haciendo esto no borramos el repositorio pero si un usuario del tenant trata de hacer login obtendrá un error de acceso.
Habilitar un Tenant
Si queremos dar acceso nuevamente a un tenant desactivado basta con ejecutar la orden «enable «. Los usuarios del tenant podrán acceder de nuevo a él.
Eliminar un Tenant
Para eliminar un tenant debemos ejecutar la orden «delete «. Esta acción requiere que reiniciemos el servidor para que se borren los indices. Además es necesario borrar el directorio del los indices manualmente (el alf_data del tenant se especifica cuando se crea).
El resto de órdenes se pueden ver escribiendo el comando «help«, pero me pareció interesante detallar las órdenes de creación, borrado y habilitación/in-habilitación.
Referencias:
http://wiki.alfresco.com/wiki/MT
http://blyx.com/2010/02/08/multitenancy-en-alfresco/