8/12/11

Alfresco como Plataforma, Parte 3

Continuamos la serie Alfresco como Plataforma, original de Jeff Potts, COO de Alfresco. En las entregas pasadas describimos el problema que enfrentan las empresas ante la gestión de contenidos y colaboración, y como Alfresco, con su enfoque abierto, innovador, listo para usar y desplegar, propone una solución lista para construir hoy las aplicaciones centradas en contenido del presente y el futuro.

Repasando lo que expresamos en el post anterior, una plataforma es un conjunto de servicios diseñados para crear aplicaciones. Los programadores usan e integran los servicios para crear soluciones de software. Ejemplos de plataformas que nos resultan familiares son SAP, Lotus Domino y Documentum. También existen frameworks y herramientas como PHP, LAMP, JEE, Spring,  y otros productos de middleware que no son precisamente plataformas. (A propósito, vean porque SAP eligió Alfresco como su plataforma ECM corporativa)
La distinción de Alfresco como plataforma es la amplitud de servicios que incorpora, y la forma en la que combina  herramientas y frameworks como Spring, Lucene, Solr, jBPM, Activiti y Rhino, para mencionar los más relevantes, para brindar servicios ágiles al repositorio.

Repasemos las innovaciones de Alfresco para facilitar la creación de aplicaciones centradas en contenido, particularmente REST WebScripts y CMIS en este post, y otros en la siguiente entrega.

REST WebScripts
De la lista del post anterior, esta tecnología provee servicios para puntos de integración, API pública y modelo de desarrollo.

REST WebScripts es una implementación del patrón MVC (Model View Controller), con la flexibilidad de usar JavaScript o Java para el controlador, Freemarker para la vista, y el repositorio de Alfresco como modelo. Este framework es parte de Spring WebScripts. Permite exponer los servicios del repositorio como servicios REST, servicios que son más ágiles, livianos y simples de implementar que las alternativas basadas en SOAP y RMI (usados extensivamente por los competidores, complicando la vida de los integradores)

Originalmente, Alfresco propuso una API REST para sus propias necesidades de servicios. Con el tiempo, la API se extendió, creció, se consolidó y hoy abarca las operaciones más importantes y frecuentes del repositorio. Con la API REST y WebScripts tenemos múltiples posibilidades: crear nuevos servicios específicos para nuestra solución, usar los servicios "out of the box" de Alfresco, o combinar ambos, extendiendo los servicios existentes en nuevas modalidades y comportamientos.

Además de potentes, las herramientas de la API REST WebScripts son entretenidas y brindan un marco de desarrollo rápido y efectivo. El patrón MVC es conocido por los desarrolladores, lo que facilita la adopción. La mejor demostración de la energía y capacidad de REST WebScripts es Alfresco Share, la aplicación colaborativa de Alfresco, basada 100% en servicios REST usados y consumidos por la capa cliente.

CMIS (Integration Hooks, Public API)
Antes que SQL fuera un estándar, cada base de datos tenía un lenguaje de consultas. Una vez que se estandarizó el lenguaje, los programadores pudieron escribir aplicaciones que podían correr en casi cualquier sistema que soportara SQL, con algunas precauciones ;-).
El estándar CMIS (Content Management Interoperability Services) busca lograr el mismo objetivo, ahora para la explotación de repositorios de contenido no estructurados. Es un lenguaje independiente de los fabricantes y vendedores, diseñado para trabajar con documentos, carpetas, listas de control de acceso, tipos y relaciones entre objetos de un repositorio. Un programador puede basar una aplicación usando los servicios de la API CMIS, y esta podría, al menos teóricamente, ejecutarse contra un repositorio que implemente el estándar CMIS.

Alfresco ha sido el primero en ofrecer un servidor de contenido compatible con CMIS, o CMIS-compliant. Y continua aportando significativamente a la elaboración de este estándar a través de su membresía en el  comité OASIS. También hace sus aportes al proyecto Apache Chemistry, servidor CMIS de referencia y autor de las bibliotecas de desarrollo Java, PHP, .NET, y Python. En resumen, Alfresco quiere ser el líder cuando se hable de servidores CMIS con alto rendimiento, escalabilidad y cumplimiento de normativas.

Cuando las personas consultan sobre las herramientas para construir aplicaciones basadas en Alfresco, la recomendación es usar CMIS tanto como puedan. No solo ahorrarán tiempo y esfuerzo. Además, en caso que deban cambiar de repositorio, pueden rescatar una gran parte, si no todo, de la capa de cliente. Asimismo, CMIS es la base de integración de productos entre Alfresco, Joomla y Drupal, para que Alfresco sea el repositorio de estos productos de Web Content Management.