Archive for the 'FLOSS' Category

Integration demo between LibreOffice 4 and Alfresco 4 with CMIS

febrero 18th, 2013

As first post for 2013 I want to share with you all this new screencast about the straightforward configuration and how it works the new version of LibreOffice with Alfresco. Note that my demo was done with Alfresco Enterprise 4.1 but this CMIS integration also should works with Alfresco Community 4.2. As you can see check-in/out and versioning with comments are already supported out-of-the-box from LibreOffice.

Also I would like to highlight the connection binding URL “http://localhost:8080/alfresco/cmisws/RepositoryService?wsdl” that is automatically filled by LibreOffice at configuration time, this URL is the new CMIS Web Services binding address for Alfresco 4.

Appendix:

Alfresco 4 CMIS binding address (based on OpenCMIS):
CMIS Web Services Binding: WSDL Documents = http://localhost:8080/alfresco/cmisws
CMIS AtomPub Binding: AtomPub Service Document = http://localhost:8080/alfresco/cmisatom

Alfresco 3 CMIS binding address (based on Apache CXF, obsolete/deprecated)
CMIS Web Services Binding: WSDL Documents = http://localhost:8080/alfresco/cmis
CMIS AtomPub Binding: AtomPub Service Document = http://localhost:8080/alfresco/service/cmis

More info about Alfresco and CMIS here.

MeneameFacebookGoogle ReaderTwitterLinkedInNetvibes ShareShare

Migrar a Alfresco, estrategia y soluciones

agosto 29th, 2012

En este mundillo de los ECM y la gestión de contenidos o de la tecnología en general, continuamente nos encontramos con la necesidad de migrar de una plataforma a otra, en el caso de Alfresco es una constante ya que muchas organizaciones quieren reducir costes de licencias desde sistemas antiguos y propietarios por un sistema abierto, moderno y escalable como es Alfresco.

Las preguntas que nos hacen muy a menudo al respecto son: ¿cual es la mejor forma de migrar a Alfresco? ¿qué estrategia debo seguir? ¿qué soluciones hay en el mercado que me aporten garantías? Y sobre todo, ¿que retos tengo que afrontar realmente en una migración y cambio de ECM?

Bien, vamos por partes.

No hay una mejor forma de migrar Alfresco que sirva para todos los casos, hay la mejor forma para tu caso concreto y para identificarla debes saber realmente qué necesitas mantener del repositorio actual en el nuevo, por ejemplo, no es lo mismo migrar solo los contenidos de un repositorio cualquiera a Alfresco que migrar contenidos más ACL, más modelo de datos. Por lo tanto deberemos tener en cuenta:

  • Modelo de datos (tipos, propiedades, relaciones y jerarquías)
  • Categorías y etiquetas
  • Permisos, roles, herencia de permisos, ¿aplicados a carpetas o a contenidos, ambos?
  • Usuarios y grupos, ¿en local, conectados a un LDAP, AD, etc? ¿Se necesita sincronización?
  • Sistemas de autenticación, al hilo del punto anterior pero importante saber si se usa un sistema de SSO externo.
  • APIs utilizadas por aplicaciones que usan el ECM
  • Transformaciones y reglas de contenido actuales (por ejemplo transformación de AFP a PDF si estamos hablando de IBM)
  • Tipos de búsquedas, sintaxis, opciones (rango de fechas, etc.) y estándar usado para las búsquedas.
  • Necesidades de indexación, nombre fichero, metadatos, contenido, necesitarán Full Text Search? (búsqueda en el contenido de los ficheros)
  • Versiones de los documentos, política de versionado, etc.
  • Workflows actuales o sistema utilizado.
  • ¿Existe inyección de contenidos desde scanners? ¿Como se realiza y que nivel de carga/concurrencia tiene?

Dicho lo anterior, nos encontraremos casos sencillos y casos más complejos, por lo que debemos definir una estrategia de migración basada en:

  • Saber que necesitamos migrar y conocer la estructura de datos origen.
  • Definir la estructura de los datos a migrar, modelos, directorios/espacios y seguridad.
  • Conocer necesidades de la interfaz de usuario si se necesita, como campos necesarios o parámetros de búsqueda.

En la estrategia de migración es necesario conocer la obligatoriedad de coexistencia de ambos ECM durante un tiempo determinado. Si se trata de millones de contenidos no podremos migrar en unas pocas jornadas de trabajo por lo que necesitaremos semanas o meses para migrar y será necesario disponer de ambos entornos a la vez para las aplicaciones o usuarios que lo requieran puedan acceder de forma transparente a los contenidos independientemente de donde estén almacenados.

En cuanto a los retos que tendremos que acomenter durante la migración:

  • Mantener las reglas de negocio específicas que implicarán a los datos migrados. Es capital conocer en profundidad el caso o casos de uso del cliente, de sus diferentes usuarios.
  • Planificación y consolidación de los datos a migrar. Deberemos conocer cuando tiempo nos llevará mover los datos de una plataforma a otra, concurrencia, mejores técnicas a utilizar para maximizar el rendimiento y, como decía anteriormente, si deben coexistir ambas a la vez.
  • No solo debemos preocuparnos por migrar los datos y todo lo relacionado con ellos, también deberemos cambiar como se conectan e interactúan las aplicaciones con el ECM.
  • Es recomendable utilizar una herramienta que nos reduzca la complejidad de la migración, que nos permita añadir orígenes de datos de diferentes ECM y volcarlos a Alfresco, evita tareas manuales, seguro que a lo que te enfrentas ya lo ha hecho alguien. Veremos más adelante que opciones hay.
  • En migraciones de grandes cantidades de datos (millones), medio segundo en una tarea repetitiva puede suponer mucho tiempo, minimiza el tiempo y el esfuerzo al máximo, así obtendrás el mejor rendimiento y reducir los tiempos de migración.
  • Monitoriza toda acción que se realice durante la migración, controla los tiempos continuamente y audita en profundidad que todo se está migrando correctamente.
  • Mantén una infraestructura paralela o la original siempre disponible, piensa que una migración puede fallar, pero los contenidos deben estar disponibles. Minimiza el riesgo y el tiempo de respuesta en caso de marcha atrás. Define correctamente las ventanas de intervención basado en pruebas reales.

Soluciones para migrar a Alfresco:
A continuación vemos diferentes aplicaciones de terceros que nos ayudarán en una migración de otros ECM a Alfresco.

¿Y de todas esas soluciones u otras que puedo encontrar en el mercado cual es la mejor?
De las anteriores hay algunas más completas que otras y también con casos de éxito en cuentas importantes que siempre nos aportarán confianza. El nivel de compromiso de la empresa con los fabricantes, partnership, certificado de la herramienta de migración, etc. también es importante. Conocer los data sources soportados soportados, es decir, ECMs e interfaces que soporta cada solución, si aportan soluciones para permitir la coexistencia de los dos ECMs durante la migración, si el coste de la solución es por proyecto o por número de contenidos, si migran sólo contenidos o son capaces de migrar más información como metadatos, versiones, permisos, etc. Como ves, la elección de una solución u otra también será en función de los requisitos del proyecto.

Como opinión personal, la solución que mejor conozco es Entropysoft ya que la campaña “Switch to Alfresco” que se hizo en 2010 fue con su solución e hice un curso con ellos. Incluso grabé un pequeño video que podéis ver más abajo. También conozco casos reales de migración de IBM FileNet a Alfresco usando el Migration Center, OpenMigrate también es muy usado. Si tienes experiencias con estas u otras soluciones no dudes en decirlo en los comentarios.

En algunos casos, cuando un cliente tiene documentos en filesystem y su propia base de datos de metadatos en hojas de cálculo, lo más común es usar la solución embebida en Alfresco llamada Bulk Import Tool. No dudes en echarle un vistazo, seguro que te puede servir en algún caso, además, permite opciones muy interesantes para no tener que mover (cargar) los archivos en Alfresco si se trata de gran cantidad de información, además es muy rápido.

Por último aquí se puede ver un video de ejemplo de migración que hice durante el curso de Entropysoft; es sin audio, pero se puede ver como mapear datos de Sharepoint a Alfresco al hacer la migración:


Migración de datos de MS SharePoint Server a Alfresco con Entropysoft (video resumen sin audio) from Alfresco Spain Portugal on Vimeo.

Algunas ideas usadas en el artículo tomadas de aquí.

MeneameFacebookGoogle ReaderTwitterLinkedInNetvibes ShareShare

Video del webinar sobre “Subsistemas y Autenticación en Alfresco”

abril 7th, 2011

Los subsistemas de Alfresco permiten tener más control y modularidad sobre la aplicación, también nos aportan flexibilidad y facilidad de administración. Durante este webinar vamos a aprender qué son, cómo funcionan internamente y cómo se crean. Revisaremos opciones de configuración del servidor de ficheros, aplicaciones externas y profundizaremos en el subsistema de autenticación y sincronización.

MeneameFacebookGoogle ReaderTwitterLinkedInNetvibes ShareShare

Resumen del Kickoff de Alfresco en Orlando

abril 5th, 2011

Del 23 al 25 de marzo estuvimos en Orlando con motivo del Kickoff 2011 de Alfresco, este tipo de reuniones, que se hacen anualmente, sirven para reunir gran parte de la plantilla de Alfresco y partners de todo el mundo que quisieron y pudieron acompañarnos, de España vinieron representantes de Entel e IN2 que ganó el premio a “EMEA Partner of the year”. En el Kickoff se habla sobre lo realizado en al año anterior, 2010 en este caso, y el futuro del producto/compañía. Este año, el sobrenombre del Kickoff fue “When Social met ECM, it was love at first sight”, sí, un título cuanto menos peculiar, pero luego os explicaré a qué se refiere.

En cuanto a asistencia decir que las salas reservadas en el MJ Marriot Grande Lakes, estaban en todo momento casi llenas, estimo que unas 200 personas aproximadamente.

Hubo charlas de todo tipo, la mayoría abiertas a todos los asistentes, empleados y partners, y un par de ellas sólo para empleados de Alfresco, habiendo al mismo tiempo otros tracks muy interesantes.

Aunque se trataron muchos temas, me gustaría trasladaros y destacar algunas de las novedades clave que se comunicaron sobre el futuro de Alfresco. Así como aclarar algunos conceptos de los que vienen hablando en los últimos meses. También aclarar que, aunque algunas de las cosas que voy a comentar estarán en futuras versiones de Alfresco, también pueden estar sujetas a modificaciones.

Vamos a empezar por lo “social”.

Se habla mucho de “Gestión Social de Contenidos” y “Gestión de Contenidos Sociales”, pero ¿qué significa todo esto? ¿a qué se refiere Alfresco cuando habla tanto de esto? ¿está dejando de lado la visión de repositorio, gestión documental y demás usos? No, lo que ocurre es que los contenidos cada vez son más dinámicos, la conversación es el contenido y hay que buscar la versatilidad, adaptarse, mejorando lo que ya hay y añadiendo nuevas funcionalidades.

  • Gestión Social de Contenidos: hablamos de contenidos con los que trabajamos a diario y con los que colaboramos para crearlos, modificarlos, aprobarlos, etc. Es decir, llevar el ECM a su parte más colaborativa = Alfresco Share.
  • Gestión de Contenidos Sociales: hablamos de la creación y administración de contenidos destinados a ser publicados en redes sociales, es decir, pensad en el típico ejemplo de una organización que sube un vídeo en Youtube, una nota de prensa publicada en una web (con el vídeo embebido) y su Twit correspondiente, esto son tres tareas que podemos entender como asíncronas ¿verdad? Pues gracias a las nuevas funcionalidades de la próxima versión de Alfresco, todos estos contenidos los podremos gestionar de forma concurrente y planificada desde un sólo punto = Alfresco Share. Todo esto aprovechando la capacidad de creación, revisión (workflow), control, seguridad y administración de Alfresco. Y no sólo se conectará con Twitter, Youtube, Servidor de publicación Web Quick Start, sino que también, posteriormente podremos conectarnos con Facebook, Drupal, Flikr, Slideshare, WordPress, Linkedin y muchos otros. Nosotros lo llamamos Alfresco Social Publishing y es un framework que permitirá publicar contenidos a cualquier canal social.

La próxima versión de Alfresco tiene como “codename” Swift, toda una declaración de intenciones. La Community se publicará para finales del verano y la versión Enterprise para principios de invierno. Aunque ya se pueden ver algunas novedades en el subversion. Algunas de las novedades más importantes son las siguientes:

  • Calidad: Una de las novedades que más me gustaron es que se amplía el tiempo de QA que pasa cada versión Enterprise antes de ser publicada y se pone máxima prioridad en la escalabilidad, escalabilidad y fiabilidad de la herramienta, haciendo hincapié en la resolución de bugs abiertos externamente.
  • Escalabilidad, integración con Apache SOLR: será una opción más, es decir, podremos usar el motor de indexación que trae Alfresco (Apache Lucene) o usar Apache SOLR con sus capacidades de escalabilidad y redundancia, hasta llegar a soportar hasta 10 nodos de Alfresco.
  • Clustering: La próxima versión vendrá acompañada de un framework para realizar benchmarks, algo muy solicitado. También se mejorará y soportará el cluster de Webdav, FTP, CIFS y MS Sharepoint. El punto más importante y demandado en este tema es CIFS, que soportará clustering sin perder ninguna funcionalidad.
  • Consola de Administración: dispondrá de una consola de administración web dentro de Alfresco Share que permitirá hacer las configuraciones que actualmente se pueden hacer por JMX. Configurar la autenticación, servidores de ficheros, correo entrante, saliente e IMAP. También se proveerán herramientas para facilitar la creación y gestión de tipos y aspectos.
  • Social Content Management: framework del que hemos hablado anteriormente.
  • Desarollo: Facilita la creación y configuración de acciones, diálogos y evaluadores para la librería de documentos, posibilidad de mostrar menús basados en permisos, tipos, estados, etc. La idea es permitir personalizaciones sin tener que copiar y replicar código existente. Mejora en la API CMIS con todo lo que marca el estándar más extensiones específicas de Alfresco. Soporte de plantillas de contenidos, constraints diferenciados por idiomas y constraints dinámicos basados en listas (no xml ni filesystem).
  • Alfresco Share: Previsualización de vídeos en flash y html5, opciones de “me gusta” en los contenidos, control de lectura de contenidos, personalización del interfaz, logo y colores. Subir documentos mediante “drag and drop” al navegador directamente. Nuevo diseño de la página de previsualización (mejorada para documentos de gran tamaño).
  • Activiti: Estará embebido en la próxima versión (Community 3.4.e) con soporte jBPM y Activiti.
  • También se anunció la integración de Jive-Alfresco, podéis encontrar más información sobre este tema aquí.

Algo que ha quedado muy claro en esta reunión es la firme apuesta de Alfresco seguir siendo el referente en la gestión de contenidos empresariales y la firme decisión de apoyo a CMIS, de hecho, John Powell dijo “Creemos y apostamos por CMIS, pensamos que si puedes cambiarnos, nos usarás”, está claro que la interoperabilidad es clave para el futuro de Alfresco, como lo ha sido hasta ahora.

MeneameFacebookGoogle ReaderTwitterLinkedInNetvibes ShareShare

Concurso Comunidad de habla castellana de Alfresco 2011

marzo 14th, 2011

Cita de la convocatoria oficial publicada aquí

Premios para los colaboradores de la Comunidad de Alfresco de habla castellana.

Hola amigos y colaboradores, desde Alfresco queremos lanzar este concurso para potenciar y agradecer vuestro trabajo y colaboración continua desde hace varios años.

¿En qué consiste este concurso y cuales son los premios?
Si quieres participar, deberás realizar un desarrollo o integración con Alfresco y publicarlo en el hilo correspondiente dentro de este foro “Concursos”, durante el periodo de validez del concurso. No hay límite ni restricción sobre el tipo de integración, puede ser un webscript, un dashlet o cualquier otro desarrollo de mayor envergadura. También entrarán en concurso el mejor artículo, manual o howto sobre Alfresco publicado en dicho periodo y en español. Por lo tanto habrá 3 premios que se citan a continuación:

¿Qué tengo que hacer para participar?
Realizar un desarrollo, integración, artículo, manual o howto con Alfresco y publicarlo, además para poder ser valorado por el jurado deberás inscribirlo en el hilo correspondiente del foro de Alfresco en español. Los materiales deben estar disponibles, como mínimo en español.

¿Durante que periodo puedo participar?
El concurso tendrá lugar desde hoy hasta el próximo 11 de Abril a las 10AM (hora central europea). Llegada esa fecha el jurado analizará y valorará los trabajos entregados para decidir los ganadores.

¿Quién valorará los trabajos de los participantes?
El jurado está compuesto cuatro colaboradores y expertos españoles en la comunidad de Alfresco en castellano, estos son Adrián Jiménez, Javier Martínez, Fernando González y Pedro Jiménez Caracuel.

¿Cuando sabré si estoy premiad@?
Se publicarán los ganadores el día 14 de abril a las 11AM (hora central europea) en este mismo foro, también los daremos a conocer mediante Twitter.

¿Puedo participar en las dos opciones?
Sí, puedes colaborar tanto en la sección desarrollos como en la sección artículos. Además puedes participar con más de una aportación. Lo último que queremos es poner límites a tu imaginación ;)

Desde Alfresco, os animamos a todos a participar y a compartir todo lo que sabéis con la comunidad. Así aprenderemos entre todos y seguiremos creciendo como un referente a nivel mundial.

¡Gracias a todos por vuestra participación!

MeneameFacebookGoogle ReaderTwitterLinkedInNetvibes ShareShare

Alfresco EVT, herramienta para validación del entorno antes de instalar

diciembre 21st, 2010

Mi compañero en AlfrescoPeter Monks (Technical Director for Business Development), ha desarrollado un pequeño programa que permite validar el entorno donde se va a desplegar Alfresco tanto Enterprise como Community, aunque sin duda es más útil para Enterprise. Desde blyx.com quiero mostraros qué es y cómo funciona. Y dadas las fechas en las que estamos, a modo de regalo de Navidad.
Esta útil herramienta llamada Alfresco Environmente Validaton Tool (EVT) , comprueba varios puntos del sistema, base de datos y entorno específico, y nos muestra un informe donde podemos ver qué parámetros debemos cambiar para asegurarnos que Alfresco funcionará correctamente en nuestra red y enlaces donde encontrar esos recursos o recomendaciones. Básicamente analiza los puntos que desde Alfresco entendemos son más críticos o donde podemos encontrar problemas, de esta forma los evitamos.
Usarla es muy sencillo y funciona tanto en LINUX/UNIX como en windows ejecutando un script desde la línea de comandos. Claro, debe estar Java instalado en el sistema. Descomprimimos el zip que descargamos de la web del proyecto, ejecutamos  evt.sh o evt.cmd.
# ./evt.sh -help

Usage: evt[.sh|.cmd] [-?|--help] [-v] [-V|-vv]
            -t databaseType -h databaseHost [-r databasePort]
            [-d databaseName] -l databaseLogin [-p databasePassword]

where:      -?|--help        - display this help
            -v               - produce verbose output
            -V|-vv           - produce super-verbose output (stack traces)
            databaseType     - the type of database.  May be one of:
                               mysql, postgresql, oracle, mssqlserver, db2
            databaseHost     - the hostname of the database server
            databasePort     - the port the database is listening on (optional -
                               defaults to default for the database type)
            databaseName     - the name of the Alfresco database (optional -
                               defaults to 'alfresco')
            databaseLogin    - the login Alfresco will use to connect to the
                               database
            databasePassword - the password for that user (optional)
Aquí vemos un ejemplo de la ejecución en un servidor Linux CentOS 5.5. No voy a usar la opción -vv porque no se ve bien en el blog, pero en tu caso ¡úsala! porque mostrará más información y recomendaciones para solucionar los problemas o alertas que detecte (INFO, WARN! y FAIL!!):

# ./evt.sh -t mysql -h localhost -d alfresco -l alfresco -p alfresco

Alfresco Environment Validation Tool (for Alfresco Enterprise 3.3)
------------------------------------------------------------------

Validating JVM
  Vendor                : Sun Microsystems Inc. .......................PASS
  Version               : 1.6.0_21 ....................................PASS
  JVM Architecture      : 32 bit ......................................INFO
  Java Home             : /usr/java/jre1.6.0_21 .......................PASS

Validating Operating System
  OS                    : Linux .......................................PASS
  Distribution          : CentOS release 5.5 (Final) ..................WARN!
  OS Architecture       : 32 bit ......................................INFO
  File Descriptors      : 65535 .......................................PASS

Validating Server Hardware
  CPU Clock Speed       : 2673Mhz .....................................PASS
  CPU Count             : 2 sockets, 2 cores ..........................PASS
  Installed RAM         : 2032MB ......................................WARN!

Validating Network
  Local Hostname        : server ......................................PASS
  IP Address            : 10.10.100.100 ...............................PASS
  DNS Hostname          : server.blyx.com .............................PASS
  TCP 8005 (Tomcat)     : available ...................................PASS
  TCP 8080 (HTTP)       : available ...................................PASS
  TCP 50500 (RMI)       : available ...................................PASS
  TCP 21 (FTP)          : available ...................................PASS
  TCP 139 (NetBT)       : available ...................................PASS
  TCP 445 (SMB)         : available ...................................PASS
  TCP 7070 (Sharepoint) : available ...................................PASS
  TCP 25 (SMTP)         : available ...................................PASS
  TCP 143 (IMAP)        : available ...................................PASS
  UDP 137 (NetBT)       : available ...................................PASS
  UDP 138 (NetBT)       : available ...................................PASS
  Database Hostname     : resolved ....................................PASS
  Packet Loss           : (please wait) 0% ............................PASS
  Average Response Time : 0.186ms .....................................PASS
  Response Time Std Dev : 0.042ms .....................................PASS

Validating 3rd Party Apps
  Can fork OpenOffice   : yes .........................................PASS
  OpenOffice Version    : unknown .....................................WARN!
  Can fork ImageMagick  : yes .........................................PASS
  ImageMagick Version   : 6.2 .........................................PASS
  Can fork pdf2swf      : yes .........................................PASS

Validating Database
  Database Type         : mysql ...recognised .........................PASS
  JDBC Driver Loaded    : yes .........................................PASS
  Database Connectivity : connected ...................................PASS
  Scrollable Result Sets: true ........................................PASS
  JDBC Driver Version   : 5.1 .........................................PASS
  MySQL Version         : 5.1.52 ......................................PASS
  Default Storage Engine: InnoDB ......................................PASS
  Case Sensitivity Level: 0 ...........................................WARN!
  Client Encoding       : utf8 ........................................PASS
  Connection Encoding   : utf8 ........................................PASS
  Database Encoding     : latin1 ......................................FAIL!!
  Filesystem Encoding   : binary ......................................PASS
  Results Encoding      : utf8 ........................................PASS
  Server Encoding       : utf8 ........................................PASS
  System Encoding       : utf8 ........................................PASS

                         **** FINAL GRADE: FAIL!! ****

Como vemos en el report, se han analizado muchos puntos que pueden afectar al correcto funcionamiento de Alfresco:
  • Máquina virtual de Java.
  • Sistema Operativo (incluyendo file descriptors).
  • Hardware del servidor.
  • Información de la red, puertos disponibles y tiempos de respuesta con la base de datos.
  • Aplicaciones de terceros que necesita Alfresco para funcionar al 100%.
  • Configuración de la base de datos.
El ejemplo anterior tiene muchos errores para que veáis lo que puede detectar la herramienta. En ese sistema no sería recomendable instalar Alfresco.
Nota: recuerda ejecutar el comando antes de instalar Alfresco o con Alfresco parado, de lo contrario encontrarás muchos FAIL!! y WARN!

Espero que os sea útil.

A propósito, ¡Feliz Navidad a todos! ¡Y Feliz año 2011! Será el décimo aniversario de blyx.com (10 años desde que compré el dominio). Un año impar, seguro que es un buen año para todos.

MeneameFacebookGoogle ReaderTwitterLinkedInNetvibes ShareShare

Stores de Alfresco, qué son y para qué sirven

diciembre 1st, 2010

En respuesta a una pregunta que me han hecho esta mañana.
El conjunto de datos que gestiona Alfresco se almacenan en el file system, en la base de datos y en los índices, todos a la vez son necesarios para manejar todos los contenidos del repositorio. Alfresco usa el file system para almacenar los ficheros físicos y la base de datos para todo lo demás (metadatos, permisos asignados, espacios, reglas, workflows, etc.).
Teniendo en cuenta lo anterior, Alfresco ordena esa información internamente en Stores. Es una forma de agrupación lógica de los nodos que componen todo el sistema, cada uno contiene una raiz y una jerarquía de nodos. Podemos acceder a cada uno de esos Stores mediante el Node Browser (Acceder a Alfresco Explorer como admin -> Consola de Administración -> Node Browser) http://localhost:8080/alfresco/faces/jsp/admin/store-browser.jsp
  • archive://SpacesStore:
Papelera. Cuando se elimina un elemento (carpeta o contenido) en Alfresco, ese elemento no es eliminado del servidor, se mueve a store llamado Archive Space Store. Esto da la posibilidad de recuperar los ficheros borrados posteriormente. Más info aquí.
  • system://system:
Instalación e información del sistema. Encontramos información sobre la instalación de Alfresco, versiones del software, esquema de la aplicación e incluso el identificador único del repositorio (descriptor-current) que nos servirá para la configuración del Replication Service.
  • user://alfrescoUserStore:
Información de los usuarios. Aquí se almacenan los parámetros relativos a los usuarios, permisos, contraseñas (si autentica localmente), estado de la cuenta y otros parámetros internos de los usuarios.
  • workspace://lightWeightVersionStore:
Gestión de versiones. Es el store donde se ubicaban las versiones de los documentos en las versiones de Alfresco 1.X, 2.X y hasta Community Labs 3a. Este store es obsoleto ya que hacía un uso excesivo de propiedades y se producía una degradación del sistema en algunos casos. Desde la versión 3b Labs se utiliza el store workspace://version2Store que veremos a continuación.
  • workspace://version2Store:
Nuevo modelo de gestión de versiones. Es el store donde se ubicaban las versiones de los documentos y sus propiedades desde la versión Community Labs 3b en adelante. Una implementación más sencilla y completa. También aporta mayor rendimiento.
  • workspace://SpacesStore:
Almacén de contenidos. Donde encontramos la información de espacios, ficheros, sus metadatos, aspectos, permisos asignados, identificador único de cada elemento y otras propiedades internas. Muy útil para desarrollos, hacer llamadas a elementos, búsquedas, etc.
  • avm://sitestore:
WCM. Es donde se almacenan los contenidos que usa Alfresco WCM previos a la versión 3.3. Es un store que en las nuevas versiones de Alfresco WCM no se utiliza aunque puede ser opcional. AVM es donde se almacenan los Sandboxes principales y de usuarios, además de otra información de WCM.
MeneameFacebookGoogle ReaderTwitterLinkedInNetvibes ShareShare

Integración de OCR en Alfresco

noviembre 30th, 2010

Hace un par de semanas, Cesar Capillas y yo intercambiamos unos correos, ente los temas que tratamos hablamos sobre qué estábamos pensando escribir en los blogs respectivos y ambos coincidíamos con algo relacionado con Alfresco y OCR, algo sencillo pero que ofreciera una nueva funcionalidad al usuario final, así que quedamos unos días más tarde para profundizar en el tema y ponernos manos a la obra. Aquí está el resultado.

  • Introducción

En el siguiente artículo vamos a ver cómo configurar Alfresco para poder indexar automáticamente el contenido de un fichero TIF escaneado, subirlo al repositorio y poder localizarlo posteriormente buscando por el contenido del mismo. Todo ello pasándole a cada fichero TIF un OCR de forma transparente para el usuario.

En materia de escaneo y almacenamiento de información en Alfresco se ha escrito mucho y hay muchas soluciones disponibles de diferente índole que ya vimos aquí hace tiempo.

Cuando se va ha digitalizar una gran cantidad de contenidos en papel y se quiere extraer su contenido vía OCR para poderlo indexar con Alfresco, disponemos de varias herramientas empresariales que permiten revisión, OCR zonal, mayor escalabilidad, mapeo de metadatos, capacidades de integración, inyección masiva y otras funcionalidades propias de entornos donde se va a hacer un uso intensivo de estas características. Para eso se encuentra aplicaciones como las siguientes:

-Kofax Ascent Capture: conector soportado con Alfresco Enterprise.

-Introspeqt InstaCapture: guía.

-Ephesoft: CMIS

-Cobra Technologies: CMIS

-Sira Systems.

  • Caso de uso

Como hemos comentado anteriormente, con las indicaciones que se explican a continuación conseguimos extraer la información OCR de un fichero TIF de forma transparente, el texto extraído del documento escaneado es indexado automáticamente.

En principio las pruebas las hemos hecho en Linux (Ubuntu y CentOS) usando Tesseract versión 2.04 y Alfresco 3.3/3.4 (tanto Community como Enterprise)

  • Usando Tesseract

Hemos elegido Tesseract por ser uno de los más comunes OCR en el mundo Open Source, pero se puede usar cualquier otro, e incluso añadiendo más características. Usando Tesseract 2.X hay que tener en cuenta que los TIF que se suben deben estar sin comprimir ya que es el único formato que soporta esta versión. Para soportar TIF comprimido hay que usar la versión 3 de Tesseract.

Hay otros OCR tanto libres como privativos, cada uno soporta unos ficheros de entrada u otros aunque en casi todos los casos el común denominador es el formato TIF. Algunos ejemplos de software alternativo a Tesseract son gocr, ocrad, ocropus o cuneiform. Para Windows hay otros como TigerOCR o incluso los mismos Tesseract y cuneiform tienen versiones para Windows.

Una vez instalado Tesseract bien sea compilando o mediante apt/yum. Podemos probar su correcto funcionamiento con el siguiente comando (especificamos el idioma aunque por defecto está en inglés, así que debes instalar el idioma correspondiente que viene con el paquete):

# tesseract documento.tif documento -l spa

Recuerda que el documento.tif debería ser un fichero de un documento escaneado en español y con formato TIF sin comprimir, documento es la salida del comando, es decir, un fichero txt con el contenido detectado mediante el ocr. La opción –l permite especificar el idioma del documento escaneado para afinar el reconocimiento.

Si el comando anterior ha funcionado correctamente podemos seguir.

  • Creación del script

Ejecutando el comando anterior obtendremos en un archivo de texto el conjunto de palabras extraídas de la imagen en cuestión. Esto en principio no es una tarea sencilla para el motor de OCR y no siempre extraerá con éxito las palabras, a no ser que este bien entrenado.

Desde el punto de vista de Alfresco prepararemos un transformador, que invoca un script de shell que transforma un archivo tif a texto plano (extrae el texto identificado). Automaticamente el texto  obtenido se indexará en el motor de Lucene de Alfresco. Esta misma idea se ha utilizado en otros transformadores como la siguiente, donde extraiamos el texto de un texto XML via xmlstarlet:

El script va hacer algunas cosas más y está hecho en python (ocr-simple.py) y para su ejecución se necesita un interprete de python. El script hace algunas cosillas más que la ejecución del comando en cuestión. Por ejemplo, utiliza un diccionario de palabras donde cotejar las coincidencias. Por defecto utiliza una ruta que apunta al diccionario de palabras de ispell en Linux (paquete ispell o aspell dependiendo de la distribución), pero se puede utilizar otro archivo. Por otro lado, el script limpia y normaliza las palabras obtenidas por el ocr y recoge aquellas que tienen más de tres caracteres. Buena parte de estas acciones de limpieza y normalización seguro que las hace internamente Lucene pero nunca están de más. Aquí podemos ver el contenido del fichero ocr-simple.py (modifica las rutas según tu sistema y hazlo ejecutable):

#!/usr/bin/python
from os import popen
from string import split,join
from pprint import *
import re
import sys

def uniq(seq):
    # Not order preserving
    keys = {}
    for e in seq:
        keys[e] = 1
    return keys.keys()

# Tamano maximo
maxstr  = 3

# Comando ocr en la salida estandar
#command = popen('/usr/bin/pngtopnm '+sys.argv[1]+' | /usr/bin/ocrad')
#command = popen('/usr/bin/pngtopnm '+sys.argv[1]+' | /usr/bin/gocr -')
command = popen('/usr/bin/tesseract '+sys.argv[1]+' /tmp/tesser-$$ 2> /dev/null; cat /tmp/tesser-$$.txt')

# Diccionario
dictwrd = open("/usr/share/dict/words","r")
s       = dictwrd.read()
# Lineas ocr
lines   = command.readlines()
#pprint(lines)
text = []
for i in lines:
  # Quitar los saltos de linea
  i = i.strip("\n")
  # En minusculas
  i = i.lower()
  for j in i.split(" "):
    # Quitar los puntos y comas....
    myregex = re.compile(r"[^\w\s]")
    j = myregex.sub('', j)
    # Tamano maximo de palabra
    if len(j) >= maxstr:
      if re.search(j, s):
        text.append(j)
      #  print j, "Match!"      # char literal
      #else:
      #  print j, "upppss!"

zz = open("/tmp/ocr.log","w")
zz.write(sys.argv[1]+"\n")
zz.write(join(uniq(text), " "))

# Palabras unicas
outputf = open(sys.argv[2],"w")
outputf.write(join(uniq(text), " "))

Un sitio para alojarlo puede ser: $ALF_HOME/bin

HINT: Se pueden usar otros OCR, por ejemplo, sustituyendo el comando de tesseract e instalando el OCR correspondiente (ocrad, gocr)


#command = popen('/usr/bin/pngtopnm '+sys.argv[1]+' | /usr/bin/ocrad')

o


#command = popen('/usr/bin/pngtopnm '+sys.argv[1]+' | /usr/bin/gocr -')

  • Creación del transformador

El transformador se configura en el directorio de extensiones de Alfresco es decir:

$ALF_HOME/tomcat/shared/classes/alfresco/extension

Se define el worker, la invocación al script ocr-simple.py (que tiene que tener permisos de ejecución) y el mimetype de los archivos sobre los que se aplica la transformación, en este caso, de tif a texto plano (revisa las rutas de este xml para que estén acorde a tu instalación):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

  <bean id="transformer.OCRToText" class="org.alfresco.repo.content.transform.ProxyContentTransformer" parent="baseContentTransformer">
      <property name="worker">
         <ref bean="transformer.worker.OCRToText" />
      </property>
  </bean>

  <bean id="transformer.worker.OCRToText" class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker">
      <property name="mimetypeService">
         <ref bean="MimetypeService"/>
      </property>
      <property name="transformCommand">
         <bean class="org.alfresco.util.exec.RuntimeExec">
            <property name="commandsAndArguments">
                <map>
                    <entry key="Linux">
                        <list>
                            <value>/usr/bin/python</value>
                            <value>/opt/alfresco33/bin/ocr-simple.py</value>
                            <value>${source}</value>
                            <value>${target}</value>
                        </list>
                    </entry>
                </map>
            </property>
         </bean>
      </property>

    <property name="explicitTransformations">
      <list>
        <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
          <property name="sourceMimetype"><value>image/tiff</value></property>
          <property name="targetMimetype"><value>text/plain</value></property>
        </bean>
      </list>
    </property>

  </bean>
</beans>

Por descontado el transformador se puede extender a otros mimetypes de tipo imagen aunque esto no lo detallaremos aquí. También se podría implementar fácilmente en Windows.

  • Ejemplo de uso

Una vez dispuesto el fichero ocr-context.xml en el directorio de extensiones y el script de python ocr-simple.py en el directorio bin y reiniciado el servidor, tan sólo tenemos que subir una imagen en formato tif (con extension .tif). Una vez subida podemos buscar alguno de los términos en el buscador de la parte superior derecha de Alfresco Explorer o Share, por ejemplo, las palabras lazy o fox. De este modo subimos el archivo simple.tif a Alfresco:

Y buscamos la palabra fox de la imagen:

El resultado es el siguiente, aparecen un conjunto de archivos indexados que contienen la palabra fox, entre ellos la imagen que acabamos de subir.

Para trazar lo que esta haciendo el transformador se puede activar el log4j ($ALF_HOME/tomcat/webapps/alfresco/WEB-INF/classes/log4j.properties)

log4j.logger.org.alfresco.util.exec.RuntimeExec=DEBUG
log4j.logger.org.alfresco.repo.content.transform.ContentTransformerRegistry=DEBUG
  • Referencias:

Entrada en el foro de Alfresco en Español:

http://forums.alfresco.com/es/viewtopic.php?f=11&t=2979&start=0&hilit=tesseract

Tesseract OCR:

http://code.google.com/p/tesseract-ocr/wiki/ReadMe

Ficheros usados en el artículo: ocr-files-web.

Nota: En Alfresco Share el comportamiento es el mismo, esta integración es independiente del cliente web.

MeneameFacebookGoogle ReaderTwitterLinkedInNetvibes ShareShare

Mi top 5 de plugins/add-ons para Alfresco

noviembre 29th, 2010

Como he visto que este tipo de listas dan mucho juego, y además se descubren cosas nuevas gracias a vuestros comentarios, quiero seguir con el tema.
La comunidad de usuarios y desarrolladores de Alfresco es bastante amplia y en constante crecimiento, esto se traduce en muchos casos, en una importante cantidad de desarrollos alrededor del software en forma de módulos, plugins, integraciones, también se mejora el software, ya que se notifican fallos y se solicitan nuevas funcionalidades.
Dicho lo anterior, voy a enumerar mis plugins, módulos o add-ons favoritos, para qué sirven y desde donde podemos descargarlos. Estos 5 son los que pienso pueden ser más útiles de forma genérica y desde mi punto de vista están muy bien enfocados. Nota: los siguientes desarrollos son válidos tanto para las versiones Community como Enterprise salvo algunas funcionalidades de Auditsurf.
Desarollado por Jared Ottley y Nathan McMinn, este módulo permite a Alfresco lidiar con ficheros PDF, podemos usarlos como acciones o en reglas y aporta características como:
-Merge: Unir varios ficheros PDF generando un nuevo PDF
-Split: Partir un fichero PDF dado un intervalo específico (2 páginas, 3 páginas, etc.), generando un PDF para cada sección.
-Split At: Partir un fichero PDF en una página específica generando dos nuevos PDFs.
-Insert PDF: Insertar un PDF en otro en una página específica.
-PDF Watermarking: Añade una marca de agua a un PDF, la marca puede ser texto o gráfico.
-PDF Encryption: Cifrar un fichero PDF.
-Digital Signatures: Permite firmar un fichero PDF almacenado en Alfresco mediante un fichero PKCS12
En Alfresco Explorer funciona muy bien y aún no funciona 100% en Share pero muy pronto estará listo.
Desarrollado por Will Abson. Este módulo es un conjunto de add-ons para Alfresco Share, algunos dashlets (componentes), temas, acciones y funcionalidades que vemos a continuación:
-Tag Cloud Dashlet
-Site Blog Dashlet
-Site Poll Dashlet
-Twitter Feed Dashlet
-Twitter Search Dashlet
-BBC Weather Dashlet
-Notice Dashlet
-Media Previews
-Red Theme
-Document Library Backup Action
-Sample Data Lists
Desarrollado por Peter Monks. Este módulo permite volcado masivo de contenidos desde un sistema de ficheros a Alfresco, en ese volcado también permite añadir algunos metadatos a los contenidos. Muy útil para migraciones desde sistemas que usan carpetas compartidas, etc.
Desarrollado por S. J. Green Baum, también he hablado por aquí de este módulo. Aunque en Alfresco Share Extras ya existe un “Media Previews”, este módulo me parece un ejemplo fantástico de lo positiva que es la colaboración en los foros.
Desarrollado por Atol gracias al soporte JMX de Alfresco Enterprise, esta aplicación permite extraer información del repositorio vía JMX y mostrarlo de forma gráfica vía web. Ya he hablado en blyx.com de esta útil herramienta.

La mayoría de desarrollos que existen para de Alfresco se pueden encontrar en Alfresco Forge, en Google Code o en Sourceforge, y por supuesto, también se publican en los foros (es / en).

Aprovecho para anotar que los partners de Alfresco realizan muchos desarrollos en sus proyectos y muchos de ellos los “productizan”, se puede ver un listado bastante completo en nuestro Alfresco Partner Showcase.

¿Tu has hecho algún desarrollo para Alfresco y quieres que lo comente por aquí?

MeneameFacebookGoogle ReaderTwitterLinkedInNetvibes ShareShare

Activiti BPM, la promesa del software libre empresarial

noviembre 3rd, 2010

Aunque no soy ningún experto, más bien un novato, en temas relacionados con BPM, he leído este artículo de Tjarda Peelen y me ha parecido tan completo e ilustrativo que he pensado hacer una traducción “libre” de las partes principales y compartirlo con vosotros. La intención es hacer llegar el concepto de qué es Activiti, para qué sirve y que aportará en el mundo del BPM. Aprovecho este post furtivo para anunciar la disponibilidad de Activiti 5.0 RC1. Este es el artículo:

Hace algún tiempo, Alfresco, Signavio y Camunda comenzaron Activiti, una alternativa de código abierto para BPM. La primera pregunta que se me pasó por la mente fue ¿por qué un nuevo motor de BPM? Básicamente, existen algunas reservas sobre la capacidad de Alfresco jBPM en cuanto a desarrollo y control de procesos. Alfresco tenía más razones para reconsiderar el uso de un BPM embebido. Hay consideraciones de los clientes contra las limitaciones a la licencia LGPL licencia por lo que el proyecto Activiti se desarrolla bajo la Apache 2 licencia.

Visión

JBPM es la implementación técnica como motor de BPM. La intención de Activiti es que debe ser un motor ligero, fácil de usar (para desarrolladores de Java) y que “el flujo de trabajo” podría también ser social. Recuerda el podría. El proyecto Activiti no indica cómo una organización debe utilizar BPM, sino que intenta facilitar la colaboración al rededor del proceso de negocio.

Tradicionalmente, el desarrollo de  los procesos (de negocio) es una tarea de “analistas”. Esta función consiste en dibujar diagramas de procesos, definir el flujo de las tareas, definir a qué rol se asigna una tarea, y qué pasos se pueden automatizar. Hecho lo anterior, los desarrolladores crean “código ejecutable” de todo eso. Activiti tiene una serie de elementos que facilitan la colaboración entre los diferentes roles involucrados, como analistas, directivos y desarrolladores.

En primer lugar, Activiti utiliza BPNM 2.0, estándar abierto ampliamente aceptado para modelado de procesos. Lo bonito de esta versión 2.0 del estándar es que, más allá del lenguaje, el código XML subyacente también define un estándar. Activiti puede ejecutar directamente este XML. Esto tiene la ventaja de que el analista y desarrollador trabajen con el mismo esquema de procesos y por lo tanto, con el mismo XML. Uno puede leer el trabajo del otro, y trabajar en el mismo esquema. Eso realmente mejora la eficacia en la comunicación. Activiti también proporciona un módulo adicional donde se facilita la colaboración de los roles involucrados al estilo ’2 .0′, mejora el proceso de desarrollo de los procesos de negocio, y mejorar las definiciones de proceso actuales. Daré más detalles sobre esto más adelante en este artículo.

Para Alfresco, apostar por Activiti es una decisión bien pensada. Dos de los padres fundadores de jBPM están en el equipo de Alfresco trabajando para este proyecto.

Alfresco tiene experiencia dirigiendo proyectos de código abierto, ya que es una compañía open source en sí. Junto a esto, siguiendo los pasos de la Apache Foundation, creó el proyecto OpenCMIS, ahora incluido en el proyecto Apache Chemistry. (¿He dicho que Alfresco desarrolló SpringSurf y lo donó a SpringSource? Mucha movimiento de código abierto aquí…)

El concepto

Para facilitar la explicación, vamos a suponer que en el desarrollo y operación de procesos BPM están involucradas las siguientes cuatro funciones:

  • El analista tiene la comprensión del dominio de negocios y define los procesos y tareas.
  • El programador crea el código ejecutable, para completar las tareas automatizadas y las búsquedas como resultado del trabajo de los analistas.
  • El participante del proceso es cualquier persona de la organización que se le asigna una tarea durante el proceso de negocio.
  • El administrador es el rol que asegura que el sistema BPM funcionará. Las tareas que ‘atascan’ o fallan se pueden reiniciar, eliminar o reasignar. Este rol es comprender cómo funcionan los procesos en términos de errores, rendimiento, etc.

Voy a explicar los módulos de Activiti utilizando la tabla de abajo.

Activiti Engine

El corazón del sistema es el motor de Activiti. Este es el sitio donde se importan los ficheros XML BPNM2.0 y en función de la lógica los pasos en los procesos definidos son creados y enviados. Este avanzado motor tiene una carga muy baja en términos de uso de la memoria y uso/almacenamiento en base de datos. El motor genera tareas que se asignan a individuos, grupos y roles. También se pueden definir “tareas del sistema” que pueden hacer todo tipo de trabajos automatizados. Por ejemplo, la manipulación de documentos en un DMS (¿usando CMIS?), comunicación con otros sistemas usando servicios web, cambios en bases de datos remotas, etc. Los procesos que ya no están activos se mueven a un archivo para mejorar la velocidad de ejecución.

Activiti viene con muchos tipos de actividades o tareas. También incorpora una sencilla API de Java que permite a las organizaciones definir sus propias tareas. Si se quieren implementar un conjunto básico de funcionalidades, se pueden modelar gráficamente y ejecutarlas mediante el motor. De esta forma, la actividad personalizada puede ser reutilizado y reconfigurada por un analista mediante la interfaz gráfica de usuario.

El Activiti Engine es totalmente abierto. Además de acceder a través de la API de Java, se puede acceder vía REST como interfaz de consultas y control de la aplicación. Esto significa que las aplicaciones que hacen uso del Activiti Engine no necesariamente tiene que estar programadas en Java. Permite la presentación y ejecución de tareas desde aplicaciones realizadas en PHP o .NET. El Activiti Engine se puede consultar de muchas formas, para generar listas de trabajo, métricas, procesos en curso, etc. Por ejemplo, buscar los procesos en ejecución, utilizando valor numérico de un atributo mayor de X, ordenados por fecha.

Activiti está diseñado como un motor BPM para uso empresarial, por lo que también es escalable. Está preparado para funcionar en la nube, las instancias del motor puede funcionar en paralelo si se desea, y se integra sin problemas en una aplicación existente, por ejemplo, utilizando el framework Spring.

La última característica que quiero mencionar es la capacidad de automatizar los procesos de prueba. Incorpora la posibilidad de hacer pruebas con JUnit (versión 3 y 4) y testear los procesos. Esta es una gran noticia, ya que ahorra muchos clics debido a las múltiples trayectorias por las que puede pasar un proceso. Esto permite desplegar, ejecutar y probar las definiciones de procesos en el motor. Todos los pasos pueden ser ejecutados e incluso, tareas como enviar un correo electrónico se pueden desactivar temporalmente. Utilizando los resultados JUnit se puede determinar si la lógica de negocio del proceso está funcionando según lo previsto.

Activiti Explorer

El Activiti Explorer es la interfaz de usuario para los participantes en los procesos. Aquí se encuentran las listas de tareas personales y de grupo. Las tareas de grupo pueden ser reclamadas y completadas, completar datos en formularios determinados o seleccionar opciones de un proceso. Aquí, las tareas se pueden reasignar a otros usuarios en el acto. Del mismo modo, un usuario puede crear bajo demanda sub-tareas para dividir una tarea en una serie de pequeñas tareas.

Activiti Modeler

Activiti Modeler fue desarrollado por Signavio. El Modeler es una aplicación web en la que los procesos pueden ser modelados mediante el esquema BPMN2.0. Las definiciones de proceso se almacenan en formato XML BPMN2.0 en el servidor. Al igual que el framework SpringSurf, el modelador se comunica con el servidor a través de JSON. En la configuración por defecto, la definición de procesos de Activiti se almacena en el sistema de archivos.

Activiti Designer

Activiti Designer es un plugin de Eclipse. De esta forma el desarrollador puede trabajar tanto en el proceso en XML como en el esquema gráfico. Es decir con el código en el mismo entorno de desarrollo y acceder fácilmente entre las diferentes piezas relacionadas con la lógica. Básicamente hace exactamente lo que se espera de él.

Activiti Probe

Activiti Probe proporciona una visión general de los procesos en ejecución. Esta aplicación está orientada a las funciones del administrador. Aquí se puede controlar si el motor de BPM está en funcionamiento, cómo se están usando los recursos y revisar los archivos de logs. Al poder lanzar instancias de procesos en el motor, mediante Activiti Probe, si el proceso falla inesperadamente, la ejecución de tareas se puede reiniciar, reasignar, detener o reiniciar.

Por ahora, Activiti Probe sólo muestra la configuración del sistema y las tablas más relevantes de la base de datos. Esto es, en mi opinión, mucho mejor que la linea de comandos basada en web que actualmente se incluye en la JBPM que implementa Alfresco. Sin embargo, aún no es lo que cabría esperar de una herramienta empresarial. Una herramienta gráfica con las posibilidades de una gestión más avanzadas y diferentes capacidades de gestionar los procesos en ejecución, aunque esto está en camino.

Activiti Cycle

Activiti Cycle es el módulo con el que se dota de colaboración social a la aplicación. BPM está tradicionalmente en las manos de los analistas de negocio. Por otro lado, los desarrolladores lo combinan con la lógica, integran con repositorios y lo hacen funcionar. Activiti Cycle es un entorno enfocado en la colaboración desde el centro del proceso. Los procesos pueden tener relaciones con elementos tales como archivos, repositorios de Maven, incidencias en Jira, repositorios de código fuente como SVN, o por ejemplo, ficheros de Visio, Office, CAD, etc. En definitiva, poder colaborar en todas las funciones que intervienen en la creación y ejecución de un proceso y discutir acerca de los procesos relacionados y los elementos que intervienen en su contexto. Hay muchas formas de utilizar la herramienta y se adapta dependiendo de cómo una organización tiene la intención de abordar el proceso de implementación de BPM. Esta herramienta ofrece varios beneficios, involucrar más a las personas que participan en la definición de procesos, obtener soluciones más realistas y exitosas, diseñar / documentar los procesos adecuadamente y por último, saber cómo, cuándo y por qué se toman las decisiones.

La integración con Alfresco

Integración de Activiti en otros sistemas es responsabilidad del sistema embebido. Activiti pretende ser un motor genérico BPM. Activiti y Alfresco comparten los mismos estándares (incluyendo SpringSurf), por lo que la integración con Alfresco es relativamente fácil. El equipo de integración de Alfresco se dedica principalmente a la creación de “tipos de actividad” (para automatizar la manipulación del repositorio), el mapeo de los usuarios de Alfresco en Activiti (y los efectos sobre la autorización en Alfresco), y la integración de elementos de usuario relacionadas con las tareas de interfaz de Alfresco Share u otros frameworks (service forms para generar pantallas y formularios).

Situación actual

Actualmente Activiti es un proyecto con un volumen importante de desarrollo. La primera versión candidata (RC1) se liberó el día 1 de noviembre. Cumpliendo con el roadmap, se han liberado 7 versiones desde el inicio del proyecto en julio de 2010 hasta noviembre (de la 5.1 hasta la 5.7), es decir, una versión por cada mes. Mirando el roadmap se detecta que aunque es muy ambicioso, se avanza a un ritmo de desarrollo bastante productivo. En este momento Activiti no está preparado para entrar en el mundo empresarial/comercial y competir con otros productos más maduros en el mundo BPM. A medida que avanza el desarrollo, cada vez es más fácil implementar procesos y trabajar con las diferentes piezas. Personalmente estoy muy emocionado con lo que ofrecerá la integración con Alfresco. Echa un vistazo a la web activiti.org para estar al día y para ver el roadmap.

MeneameFacebookGoogle ReaderTwitterLinkedInNetvibes ShareShare

Next »