14/4/12

Alfresco Certified Administrator

Como parte de una nueva etapa de la compañía, Alfresco tiene ahora carreras de certificación. Hay dos líneas, Administración e Ingeniería. Las certificaciones son ACA (Alfresco Certified Administrator) y ACE (Alfresco Certified Enginner). Más detalles están disponibles en el sitio Alfresco University.

Como nuestro objetivo es ser partners de Alfresco, queremos homologar nuestra experiencia en la plataforma obtenida desde el año 2006. Por eso he obtenido la primera certificación de la región, y soy:


Estoy feliz con este logro. Agradezco a Jeff Potts, por la inspiración, a Harold Vera, por su amistad, aportes y conocimientos, a Tony, Fernando y Cristina, por sus notas y tweets, a Alejandro y Carlos, por sus insights.

18/2/12

Alfresco es táctico

Los términos estratégico y táctico están presentes en la literatura de negocios, artículos, blogs, en fin, una cantidad importante de comunicaciones y personas hablan sobre el tema.

Ahora bien, qué es estrategia y que es táctica ?. Recurriendo a las buenas definiciones del Mentoring Group, estrategia se refiere al "qué y porqué" y táctica al "cómo":

El pensamiento y la planificación estratégica reflejan la habilidad para tener una visión más amplia, reconocer patrones y tendencias, cumplir las prioridades, anticipar los problemas, predecir los resultados, y ofrecer opciones en caso que las cosas salgan mal. Los temas estratégicos tienen que ver con la misión y el sentido de la organización, la razón de su existencia, como establece diferencias con sus competidores, y donde estará en el futuro.

Lo táctico es ejecución, lograr que el trabajo sea realizado, cumpliendo los objetivos estratégicos. Es, en esencia, realizar las tareas con calidad y eficacia.

Las aplicaciones de software son un componente de la táctica de las empresas modernas. El software elegido adecuadamente apalanca las tareas, permite innovar, o disminuir tiempos, costos y errores, aportando calidad y eficacia. Caso contrario, puede ser un obstáculo. una valla que entorpecerá la ejecución de la estrategia.

Cuando hablábamos en posts anteriores, dijimos que cada negocio tiene necesidades (tácticas) para gestionar contenido y colaboración. Es el ciclo capturar información, organizarla y compartirla. Esas necesidades del negocio pueden ser abordadas con una plataforma de gestión como Alfresco ECM. Alfresco tiene una serie de cualidades esenciales que brindan una solución efectiva a esas necesidades. Alfresco resuelve el ciclo de capturar, organizar y compartir. Lo hace en forma elegante, efectiva, competitiva y oportuna.

Algunos hechos que respaldan estas afirmaciones:
  • Tienes el código fuente. Alfresco es Open Source Software. Eso significa que puedes usar el código para implementar y extender tu solución colaborativa. No hay contratos con letra pequeña, ni limitaciones. El código es para ti, para siempre. Y además, es código de excelente calidad.
  • Tienes soporte para todos los protocolos. Alfresco usa HTTP, WebDav, Carpeta Compartida, FTP, SharePoint Protocol, WebServices, REST WebScrits y CMIS. Puedes insertar Alfresco en tus procesos con un esfuerzo mínimo, con solo unos pocos cambios, o ninguno. Solo apunta tu procedimiento al disco virtual de Alfresco, y ya le estás dando gobierno a tus documentos.
  • Tienes soporte para todos los dispositivos. Alfresco habilita el acceso al contenido con iPads, tablets, smartphones y browser. Y entre aplicaciones y sistemas.
  • Tienes contexto. Alfresco te ayuda darle contexto al contenido y documentos, información, relación e historia de cambios y modificaciones. Los  documentos son entidades vivas del proceso, pueden ser consultados y referidos. Los documentos expresan conceptos, podemos decir cosas como un reclamo fue ingresado por Juan, Juan tiene un RUT, además Juan tiene productos con nosotros. Alfresco permite describir los conceptos, sean documentos, metadata o entidades.
  • Tienes un sistema integrable y abierto. Alfresco facilita que lo integres. Y también que extraigas de él la información vital que contiene. Si en el futuro necesitas cambiar de plataforma y migrar a otro sistema, Alfresco lo permite tanto con sus funciones de exportación como a través de los protocolos que mencioné antes. 

Podemos enumerar más hechos importantes para el negocio que respaldan optar por Alfresco. Dejamos, solo por ahora, el tema, inspirados por Gracián: "Lo bueno, si breve, dos veces bueno. Y aun lo malo, si poco, no tan malo", Oraculo... - Aforismo 105


4/1/12

Alfresco como plataforma, Parte 4


Continuamos con la serie Alfresco como Plataforma, original de Jeff Potts, COO de Alfresco. En las entregas pasadas describimos los problemas de la gestión de contenidos y su solución con Alfresco, y comentamos sobre las innovaciones de Alfresco, especialmente REST y CMIS. En esta entrega final abarcamos protocolos de acceso a archivos y workflow.

Protocolos adicionales para acceso a archivos: SharePoint, IMAP y SMTP
Alfresco tiene soporte para WebDAV, FTP, y CIFS/SMB desde su versión inicial. Fue importante incluir estas funciones para que los usuarios creadores de contenido continuaran usando sus herramientas de rutina, y simultáneamente pudieran aprovechar los beneficios de un repositorio, seguridad, metadata y búsquedas. Esas funcionalidades no existen en una carpeta compartida o un servidor FTP convencional.

El objetivo inicial no ha cambiado con el tiempo, pero el número de herramientas y clientes se ha incrementado. Alfresco tiene soporte nativo para protocolo SharePoint, esto permite que Alfresco se vea como un servidor SharePoint para aplicaciones como Microsoft Office. También se puede leer y escribir el repositorio como una carpeta compartida usando IMAP desde un cliente de mail Outlook o Thunderbird. Y por último, como cada espacio del repositorio tiene una dirección de e-mail, las aplicaciones que crean contenido pueden enviarlo en adjuntos de mail usando SMTP. Esta funcionalidad es ideal para escaners y multifuncionales disponibles en muchas empresas y organizaciones.

Workflow: jBPM & Activiti
Humm, si tuviera una moneda por cada oportunidad que desarrollé una máquina de estados ... OK, no es para tanto. Pero el punto es que antes que los motores y frameworks de workflow fueran comunes, cada desarrollador implementaba su propio "gestor de procesos". Incluso en plataformas que se suponía eran "buenas para gestionar procesos", los desarrolladores querían más flexibilidad, especialmente que los cambios en el flujo de trabajo no requirieran tantas modificaciones en el código de soporte del proceso.

La primera vez que vi JBoss jBPM fue como una epifanía, similar a la primera experiencia con Alfresco. Tenía ante mi un motor de workflow que lucía bastante bien, en lugar de las opciones de muchas otras compañías cuyo costo era de varios miles de dólares. Alfresco incorporó jBPM, y eso significa que existe un servicio de workflow, que puede invocarse desde el código de nuestras aplicaciones, que gestiona y despacha documentos que viven en Alfresco, asigna tareas a usuarios, y presenta la lista de tareas en los clientes web como Alfresco Explorer y Alfresco Share. El desarrollador se concentra en desplegar el flujo del proceso, y Alfresco se ocupa del resto.

En la versión 4.0 Alfresco tiene un segundo motor de workflow llamado Activiti. Activiti es un nuevo proyecto respaldado por Alfresco, creado por algunos de los programadores de jBPM. Activiti tiene un motor de workflow que cumple con el estándar BPMN 2.0, y tiene una flexible licencia de código abierto Apache.Una de las cosas potentes de la arquitectura de Afresco es que ambos motores conviven lado a lado en el ECM. El programador elige qué motor usará para desplegar sus flujos, jBPM o Activiti, según los requerimientos y las habilidades de cada uno.

Resumen (y despedida)
Como dijimos al principio de la serie, cada organización tiene desafios para capturar, organizar y compartir contenido, la única diferencia es la escala y el ámbito del problema.  TI puede ayudar a mitigar y resolver los problemas del negocio, ahorrando tiempo y aportando con plataformas que resuelvan los desafíos de gestión de documentos y colaboración. Es importante que la plataforma sea tan abierta y soporte la mayor cantidad posible de estándares, para disminuir el costo y tener libertad de acción. Es difícil anticipar que necesitará el negocio en el futuro, no le ates las manos con soluciones cerradas o poco flexibles.

Alfresco ECM es una gran elección para establecer la plataforma  de contenido y colaboración. El modelo de desarrollo es rápido y entretenido, hay una variedad de protocolos y APIs para mover contenido desde y hacia el repositorio, y Alfresco brinda muchas más opciones en términos de soporte para sistemas operativos, bases de datos, servidores de aplicación e integración  con otros sistemas empresariales.

¿ Por qué no le das una mirada a Alfresco hoy mismo ?. Alfresco tiene tres ediciones para elegir dependiendo de tus necesidades (Community, Team, Enterprise). Las tres te ofrecen la posibilidad de empezar con cero costo, y en el caso de la edición Community, puedes usarla libremente, para siempre, sin límite de documentos ni de usuarios.

Con este post terminamos la serie Alfresco como Plataforma. Espero que estos conceptos te sirvan para definir tu solución documental y colaborativa.



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.

6/12/11

Alfresco como plataforma, Parte 2


Continuamos con la serie Alfresco como Plataforma, original de Jeff Potts, autor de Alfresco Developers Guide y CCO de Alfresco. En la entrega pasada planteamos el problema que enfrentan las empresas ante la gestión de contenidos y colaboración. En este post explicamos brevemente los enfoques erróneos,  herramientas que no son adecuadas, y cómo abordar el problema con combinaciones de  componentes de software que aportan soluciones.

Para muchas empresas la gestión de contenido es un problema difícil de manejar. Puede ser por el volumen de datos involucrados, los requisitos de seguridad, los metadatos que se asocian con los documentos, y los procesos de negocio, que impregnan todo lo anterior, contribuyendo a la confusión. Cuando tratamos de resolver el problema con estructuras de datos, bases de datos relacionales, pantallas y mantenedores, no solo agravamos el problema, sino que sumamos frustración a la confusión.

La mayoría de las empresas no puede anticipar las necesidades de "capturar, organizar y compartir" de la organización, con precisión suficiente para aplicar una solución tipo "talla única", aplicable a todos los casos. Ante eso, es preferible enfocarnos en una arquitectura basada en componentes de middleware que forman un stack no estructurado, algo así como un patrón de uso, o un conjunto de herramientas.

El nombre no es tan importante,  lo relevante es que estas herramientas de middleware, combinadas de forma inteligente, pueden permitirnos gestionar contenido, o sea, datos no estructurados, de una forma tan flexible y estándar como lo hace una base de datos relacional para los datos estructurados,

En la base de ese stack de componentes hay un repositorio de contenido. El repositorio está diseñado para gestionar datos no estructurados (como archivos y sus metadatos), de un modo mucho más eficiente que las soluciones tradicionales de bases de datos relacionales. El stack incluye, además de la persistencia de los datos, una gran cantidad de servicios útiles que rodean el repositorio. Eso es lo que llamamos una plataforma.

Una plataforma es un conjunto de servicios diseñados para crear aplicaciones. Los programadores usan e integran los servicios para crear soluciones de software. Los servicios importantes varían, dependiendo de la aplicación que se está construyendo. Para las aplicaciones centradas en el contenido, los servicios críticos deben ser, como mínimo, una buena parte de esta lista:
  • Interfaz de usuario / la capa de presentación
  • Modelo de datos y  modelo de contenido / la capa de persistencia
  • Servicios de biblioteca (registro y salida, carga, descarga, control de versiones)
  • Transacciones
  • Seguridad
  • Workflow / Business Process Management (BPM)
  • Puntos de integración
  • Programador de tareas y actividades del repositorio
  • API pública
  • Búsqueda
  • Transformación y Presentación
  • Etiquetado / Clasificación
  • Modelo de desarrollo (configurar, personalizar, ampliar, administrar y desplegar)
Esta plataforma de servicios, que envuelve al repositorio, permite construir cualquier aplicación centrada en contenido. Por supuesto, fabricar esa plataforma requiere mucho trabajo y esfuerzo. La buena noticia es que no tenemos que construirla, existe y está disponible hoy.

Alfresco es la plataforma de código abierto diseñada para la construcción de aplicaciones centradas en contenido. Ofrece las funcionalidades para hacer frente a los desafios que hemos mencionado anteriormente, aportando servicios de colaboración, coordinación, ciclo de vida y gestión.

Esto es precisamente lo que nos ha entusiasmado desde un principio. Tenemos a nuestra disposición un conjunto de herramientas que ofrecen toda la funcionalidad de los llamados "líderes" de ECM, en un paquete mucho más esbelto, de código abierto, compatible con estándares, de libre disposición para la edición comunitaria  o a una fracción del costo de sus competidores, para la versión comercial.

Miles de personas han hecho la misma conclusión:  Podemos ahorrar tiempo y dinero enfrentando el problema "capturar, organizar y compartir" con Alfresco. Centenares de organizaciones están usando Alfresco para resolver problemas de contenido, agregar valor a los procesos, y responder más rápidamente al cambio

En la siguiente entrega enumeraremos algunas de la innovaciones de Alfresco como plataforma, especialmente sobre los servicios REST, workflow, protocolos  de acceso, y CMIS. Estos son los servicios de la plataforma que facilitan la construcción de aplicaciones centradas en contenido.

Manténganse conectados.