Cómo empezar a trabajar con Alfresco (para desarrolladores)

/ / Blog, Document Management
keensoft participa en el Summit Alfresco 2013
Nueva edición del curso de integración de datos de keensoft en el Centro de Tecnologías Avanzadas

Alfresco provee uno de los productos de código abierto más completos para la implantación de la Gestión Documental en una organización.  Existen dos versiones del producto: una licenciada (denominada Enterprise) y una libre (denominada Community). La versión Enterprise es indicada para aquellas organizaciones cuyo núcleo de trabajo esté basado en la Gestión Documental, mientras que la versión Community se utiliza para periodos de prueba y para procesos de adaptación al entorno.

En este artículo vamos a incluir una recopilación de las tecnologías necesarias para comenzar a desarrollar con Alfresco en su versión 4.

Entorno de desarrollo

  • Java 6.0 o superior
  • Eclipse, NetBeans, IntelliJ IDEA…
  • Maven
    • Alfresco Maven SDK es el marco de trabajo Maven propuesto por Alfresco a partir de la versión 4.1 Enterprise y 4.2 Community
    • Permite integrar la construcción de los componentes con Jetty para realizar pruebas unitarias o de integración automáticas
  • AMP
    • Los componentes en Alfresco no son empaquetados en formatos estándar JEE (JAR, WAR, EAR…) sino en un formato propio denominado AMP
    • Es necesario conocer la estructura de estos paquetes AMP para poder realizar un desarrollo que extienda los componentes propios del producto sin modificarlos
  • Código fuente de Alfresco
    • El desarrollo de nuevas funcionalidades requiere en muchas ocasiones la consulta del código fuente de Alfresco, tanto para encontrar ejemplos de programación como para entender el funcionamiento de sus diferentes componentes
  • Versión Community de Alfresco
    • La instalación por defecto de Alfresco provee software preconfigurado: Tomcat, Postgresql, LibreOffice, ImageMagick y Solr
    • En este software se despliegan aplicaciones para el repositorio de Alfresco y para el cliente web Alfresco Share, aunque existen otras aplicaciones opcionales como la integración con GoogleDocs y Sharepoint o el gestor de contenidos Web Quick Start

Áreas de desarrollo

Una vez preparado el entorno, es necesario revisar nuestros conocimientos sobre las diferentes tecnologías que intervienen en cada una de las áreas de desarrollo de Alfresco:

  • Configuración de protocolos
    • Existen múltiples maneras de acceder a los contenidos de Alfresco (CIFS, WebDAV, FTP, IMAP, Microsoft Sharepoint) y cada uno de ellos requiere una parametrización específica para adaptarlo a las necesidades de cada organización
  • Subsistemas de autenticación
    • La identificación de usuarios puede realizarse a través de usuario y contraseña, mediante la integración con un LDAP o Active Directory, accediendo a los servicios de un dominio de Windows, estableciendo una sesión SSO con kerberos o desarrollando un servicio externo de identificación (como CAS)
    • En todos los casos es necesario una parametrización específica de los componentes de Alfresco o bien un desarrollo a medida para su integración con la autenticación nativa de Alfresco NTLM
  • Desarrollo en Alfresco (repositorio)
    • Alfresco Java Foundation API, permite acceder a todos los servicios nativos mediante Java
    • JavaScript API, basada en Rhino y ejecutada en servidor, permite realizar operaciones de transferencia de objetos entre capas
    • FreeMarker API, personalizada para la creación de plantillas de correo o contenido
    • Content Definition, disponible a través de XML para la definición de nuevos tipos de contenido, aspectos o asociaciones
    • Workflow Definition, basada en el motor BPM estándar Activiti y disponible a través de XML
    • Webscripts, para la creación de servicios REST
    • Configuración y creación de beans mediante Spring Framework 3
  • Desarrollo en Alfresco Share
    • FreeMarker como lenguaje de desarrollo de páginas web, aunque en algunos puntos es posible desarrollar componentes en JSP, HTML o Java
    • Librería UI parametrizable en XML para la construcción de páginas web basadas en el modelo de datos
    • Renderizado de páginas en diferentes formatos
    • Librería JavaScript basada en YUI 2 integrada con AJAX
    • Spring Surf como framework de acceso REST a contenidos y autenticación remota
    • Configuración y creación de beans mediante Spring Framework 3.0
  • Desarrollo en Alfresco Web Quick Start
    • El módulo para gestión de contenidos web de Alfresco está basado en la misma tecnología que Alfresco Share
  • Desarrollo en Alfresco Records Management
    • El módulo para archivística está basado en la misma tecnología que Alfresco Share
    • Permite personalizar los cuadros de clasificación y realizar búsquedas y acciones específicas en el repositorio de Alfresco
  • Configuración de Alfresco Workdesk
    • Es un nuevo interface web sobre Alfresco basado en la configuración de vistas de negocio sobre el repositorio
    • No está pensado para ser extendido mediante programación, aunque pueden incorporarse nuevos flujos de trabajo mediante Activiti
    • Funciona sobre cualquier repositorio CMIS, de hecho, puede funcionar sobre varios a la vez
  • Desarrollo CMIS
    • Alfresco es compatible con CMIS 1.0 y 1.1
    • Puede accederse mediante Atom o servicios web
    • La API de CMIS permite integrar cualquier aplicación y acceder a todas las funcionalidades del repositorio
    • Está basado en Apache Chemistry
  • Desarrollo Mobile
    • El código fuente de la aplicación para Android está disponible en Android App
    • El código fuente de la aplicación para iOS está disponible en iOS App
    • Por otro lado, la API CMIS, hace que sea sencillo realizar aplicaciones nativas para sistemas operativos móviles
  • Desarrollo en la nube
    • Alfresco dispone de una API REST pública en la nube para desarrollo de aplicaciones sobre Alfresco Cloud
    • Los usuarios deben estar registrados en Alfresco Cloud

Recursos

  • Existen diferente addons de código libre que pueden ser usados como plantilla de proyectos o tomados como ejemplo de código
  • El código fuente de Alfresco es un elemento de consulta indispensable, tanto para decidir cómo abordar las extensiones como para aprender técnicas de programación propias de la plataforma
  • Documentación oficial de Alfresco, como referencia básica de las funcionalidades disponibles
  • Wiki de Alfresco, mantenida por la comunidad, es un compendio de información técnica algo caótico pero muy útil en algunas áreas
  • Foros de Alfresco, con una comunidad muy activa, es un lugar obligado de consulta para la resolución de problemas (especialmente en la edición inglesa)
  • Blog de desarrolladores de Alfresco, donde los propios ingenieros escriben artículos sobre las nuevas funcionalidades

 

Comenzar a desarrollar en Alfresco no es una tarea sencilla, ya que incluye una amplia variedad de áreas que deben ser dominadas y entendidas para poder sentirse cómodo en la plataforma. Por otra parte, la evolución del producto es constante y cada nueva versión menor incluye multitud de cambios que afectan directamente a la estructura de las diferentes aplicaciones. No obstante, con tiempo y experiencia, pueden adquirirse las habilidades necesarias para poder dominar todas las disciplinas de desarrollo necesarias para realizar una personalización de Alfresco exitosa.

 

Unidad de negocio, keensoft

5 Comments to “ Cómo empezar a trabajar con Alfresco (para desarrolladores)”

  1. Jaime Rodriguez dice:

    Muy bien todas las referencias para poder emprender el camino a alfresco.

    pero mas alla de eso me gustaria saber cual es la manera mas sencilla para crear una funcionalidad a un alfresco existente.

    por ejemplo:
    crear workflows para autorizaciones, pero que estos workflows sean autorizados gerarquicamente

    saludos

  2. admin dice:

    Como bien dices, en este artículo se muestran todos los caminos que existen para trabajar con Alfresco, pero cuando nos enfrentamos a una funcionalidad concreta debemos centrarnos en un área específica.

    En el caso que nos propones, deberías comenzar por estudiar Activiti. Puedes diseñar el flujo en el diseñador BPMN y después importarlo en Alfresco para que quede integrado en las opciones de Inicio de Flujo.

    Suerte

  3. Sergio Vallarta dice:

    Hola Angel.

    Te felicito por tu participación en los diferentes foros de Alfresco. Te cuento que tengo ya un año trabajando con Alfresco, mi primera actividad fue montarlo en una empresa gubernamental aquí en México , así que como te imaginaras me ah costadomucho ir aprendiendo sobre el producto pero afortunadamente hasta ahorita todo va bien.

    También te comento que en este año tome un curso de Java ya que quiero empezar a desarrollar pero no quiero dejar de lado Alfresco, al contrario, quiero empezar a desarrollar sobre el .
    ¿Cual seria tu recomendación para alguien como yo que va empezando en este mudo de la gestión documental y que quiere empezar a desarrollar con Alfresco ?

    De antemano, agradesco tu atencion.

    Saludos!!!

  4. Angel Borroy dice:

    Buenos días,

    Un gran recurso para empezar es seguir los tutoriales que desarrolló Jeff Potts denominados “Alfresco Developer Series” (http://ecmarchitect.com/archives/2013/07/26/1881). Muestran diferentes técnicas de desarrollo con Alfresco y cuentan con código fuente de ejemplo totalmente funcional desarrollado con buenas prácticas.

    Bienvenido y suerte.

  5. […] algo más de dos años, os contábamos Cómo empezar a trabajar con Alfresco 4. Desde entonces, el entorno de desarrollo ha experimentado multitud de cambios y ha aparecido una […]