Describiremos a continuación una prueba de concepto de conexión desde una aplicación desarrollada en C# con Alfresco, a través de CMIS.
¿Qué es CMIS?
De acuerdo a la definición que aparece en la Wikipedia, Content Management Interoperability Services (CMIS) o Servicios de Interoperabilidad de Gestión de Contenidos es un estándar abierto que permite a diferentes sistemas de gestión de contenidos interoperar a través de Internet. En concreto, CMIS define una capa de abstracción para el control de diversos sistemas de gestión de documentos y repositorios, que utilicen protocolos web.
¿Cómo nos conectamos con Alfresco a través de CMIS?
Para llevar a cabo la conexión, tendremos un Alfresco (por ejemplo instalado en local en el puerto 8282) y necesitaremos una función a la que le pasaremos 3 parámetros:
- Ruta: Indica la ruta CMIS (http://localhost:8282/alfresco/api/-default-/public/cmis/versions/1.0/atom)
- Usuario: usuario definido en Alfresco
- Clave: clave de acceso a Alfresco
Estos dos últimos parámetros constituyen las credenciales de acceso a nuestro Alfresco.
Tras pulsar sobre el botón de login, se llamará a la siguiente función, que realizará la conexión a Alfresco a través de CMIS
/*
* Conexión con Alfresco
*/
private static ISession ConexionAlfresco(String ruta, String usuario, String clave)
{
if (System.Diagnostics.Debugger.IsAttached)
Console.WriteLine("Estableciendo conexión con Alfresco...");
try
{
Dictionary parameters = new Dictionary();
parameters[DotCMIS.SessionParameter.BindingType] = BindingType.AtomPub;
//Parámetros de conexión
parameters[DotCMIS.SessionParameter.AtomPubUrl] = ruta; parameters[DotCMIS.SessionParameter.User] = usuario; parameters[DotCMIS.SessionParameter.Password] = clave;
SessionFactory factory = SessionFactory.NewInstance();
IList repos = factory.GetRepositories(parameters);
ISession session = repos.ElementAt(0).CreateSession();
return session;
}
catch (Exception ex)
{
Console.WriteLine("ERROR :: No se ha podido establecer la conexión con Alfresco");
return null;
}
}
Puesto que hemos llevado a cabo la conexión con Alfresco utilizando el estándar CMIS desde una aplicación C#, utilizaremos "DotCMIS".