Servicios Web de Alfresco

RECU-0040 (Recurso Manual)

Descripción

Alfresco dispone de una API de Servicios web disponible para el acceso al repositorio diseñada para facilitar su comprensión y utilización, resultar accesible a tantos lenguajes como sea posible y proporcionar acceso remoto al repositorio.

Evaluación de los Web Services de Alfresco de acuerdo a MADEJA

MADEJA hace las recomendaciones acerca del desarrollo de Servicios Web en las aplicaciones en el subsistema de Arquitectura en el área de integración.

De acuerdo a dichas recomendaciones se puede señalar que los servicios web de Alfresco cumplen con dichas recomendaciones, tal y como se resume a continuación:

  • Los WS, son del tipo Contract-first/document literal, lo que se ajusta al escenario ideal marcado en MADEJA.
  • El namespace, pej http://www.alfresco.org/ws/service/repository/1.0, es de tipo URL e incluye número de versión. En MADEJA se recomienda el formato URN, pero se puede permitir este formato, dado que es el elegido por el fabricante.
  • Al incluir número de versión en el namespace, se cubre el mínimo exigido en MADEJA para el control de versionado en WS.
  • El WSDL tiene cierta división estructural (wdsl, xsd), en este aspecto, se cubre lo mínimos recomendados por MADEJA al respecto.
  • Por último, para la generación de errores se emplean SOAP FAULT, tal y como se recomienda en MADEJA.

Servicios

La siguiente lista muestra los distintos conjuntos de servicios web que implementa alfresco para dar acceso a las distintas funcionalidades de su repositorio. Todas ellas se encuentran en API de Web Services de Alfresco:

  • Autenticacion (Authentication): Login y desconexion
  • Repositorio (Repository): Consulta y Manipulacion del modelo
  • Contenido (Content): Manipulacion de contenido
  • Autoria (Authoring): Creacion cloaborativa de contenido
  • Clasificacion (Classification): Aplicacion de clasificaciones y categorias
  • Control de acceso (Access Control): Roles, permisos y propiedad
  • Acciones (Action): Gestión de acciones y reglas
  • Administración (Administration): Gestión de usuarios, exportacion e importacion
  • Diccionario (Dictionary): Descripciones de modelos

Tipos de datos

Cada método de los servicios web se basa en los siguientes tipos de datos para la entrada y salida de mensajes. Los tipos de datos estan enfocados hacia un dominio de contenido y, si es necesario, podrían ser utilizados fuera del contexto de Web Services si es necesario. Todos ellos se encuentran en Tipos de datos para los servicios web.

  • Identificadores (Identifiers): Medios para la identificacion y localizacion de contenido
  • Contenido (Content): Datos de los contenido
  • Consulta (Query): Consulatas y conjuntos de resultados
  • Metadatos (Meta Data): Metadatos de los contenidos (dicionario de datos)
  • Versionado (Versioning): Historico y graficos de versiones
  • Clasificacion (Classification): Categorizacion de contenido

Cabeceras Soap

Las siguientes cabeceras SOAP proporcionan control extra sobre los metodos de los Servicios Web:

  • Cabecera de Consulta (QueryHeader): Proporciona gestion para consultas
  • Cabecera de Localización (LocaleHeader): Proporciona gestion para requerimientos localización 
  • Cabecera de NameSpaces (NamespaceHeader): Mapeo de los pefijos de los espacios de nombre
  • Perfil UsernameToken (UsernameToken Profile): Proporciona gestion de la seguridad de la informacion

La definición formal de las cabeceras anteriores se encuentra en el SOAP Header XML Schema

Lenguajes de consulta

El núcleo de cualquier interfaz a un gestor de contenidos es el lenguaje de consulta. Actualmente son soportadas una interfaz Xpath y Lucene pero se está trabajando para implementar un lenguaje de consulta basado en SQL.

  • XPath: Su propósito es el de consulta. (JCR XPath)
  • Lucene: Su propósito es de consulta. Estilo Google.
  • Lenguaje de Manipulacion de contenidos(CML): Su propósito es de actualizacion. Lenguaje de manipulacion de contenidos

Ejemplos

Se va a mostrar ahora algunos codigos de ejemplo de como acceder a la API de servicios web de Alfresco desde diferentes lenguajes de programación. Todos ellos se encuentran en Ejemplos de uso de servicos web:

  • Ejemplos de acceso a Servicios Web para Java
  • Ejemplos de acceso a Servicios Web para PHP
  • Ejemplos de acceso a Servicios Web con Ruby
  • Ejemplos de WSS / WSSE (Web Services Security)
  • Web Service Samples for .NET