Ver vídeos en Alfresco Share, página de previsualización

Actualización: y también MP3, más info aquí.
Gracias a este hilo generado en el foro de Alfresco en inglés, se llevó a cabo un proyecto muy interesante llamado “alfresco share floweplayer“, albergado en Google Code, este desarrollo permite ver vídeos desde la web de propiedades del archivo en Alfresco Share, igual que ya hace de forma nativa con ficheros PDF, Office, OpenOffice, imágenes, etc. Es decir, si subimos un archivo de vídeo (he probado con .mov y .flv), podremos verlo sin necesidad de descargarlo a nuestro ordenador.
Me he aventurado a probar la versión 1.2b de alfrescoshareflowplayer en la recién estrenada Alfresco Community 3.4.a, y estos son los resultados.
  1. Descargamos la última versión de “alfresco share flow player” aquí.
  2. Tras descomprimir el fichero zip encontramos tres ficheros que debemos copiar en los siguientes directorios, si no existen debemos crearlos, con linux es tan fácil como usar el comando mkdir -p directorio/subdirectorio/otro/ para crear todos los directorios de una sola vez:
    1. mimetype.ftl lo copiamos a <tomcat_home>/shared/classes/alfresco/web-extension/site-webscripts/org/alfresco/components/form/controls/
    2. web-preview.get.head.ftl y web-preview.get.html.ftl los copiamos a <tomcat_home>/shared/classes/alfresco/web-extension/site-webscripts/org/alfresco/components/preview/
  3. Descargamos el reproductor (versión v3.2.2) desde aquí. Es importante usar esa versión para no tener que editar los ficheros anteriores y cambiar el número de la versión (por comodidad, no por que sea incompatible).
  4. Tras descomprimir el paquete zip, copiamos y renombramos los siguientes ficheros a los directorios que indico:
    1. # cp flowplayer-3.2.2.swf <tomcat_home>/webapps/share/components/preview/
    2. # cp flowplayer.controls-3.2.1.swf <tomcat_home>/webapps/share/components/preview/
    3. # mv example/flowplayer-3.2.2.min.js example/flowplayer-3.2.2-min.js
    4. # cp example/flowplayer-3.2.2-min.js <tomcat_home>/webapps/share/components/preview/
    5. # mv example/style.css example/flowplayerstyle.css
    6. # cp example/flowplayerstyle.css <tomcat_home>/webapps/share/components/preview/
  5. Arrancamos Alfresco y listo.
Si, efectivamente, hemos copiado esos ficheros en el directorio del share.war desplegado, si actualizas el war de Share ya sabes que debes volver a copiarlos. Por ahora el autor de este “mini-desarrollo” no ha generado un AMP, pero seguro que puedes echarle una mano haciéndolo 😉
Este es el resultado, vemos un video .mov:
y otra captura de un vídeo .flv:

Liberada Alfresco Community version 3.4.a

Ya está aquí la versión de Alfresco 3.4 alias “Cheetah”. Aquí tienes toda la información que intento resumir en este post y aquí la Release Notes. Para saber en qué consiste la “a”, echa un vistazo a esta explicación.

Aquí una lista de las mejoras más significativas e interesantes:

Mejoras y actualizaciones en Share:
Integración de workflows avanzados:

Búsqueda avanzada:

  • Nuevo formulario de búsqueda.
  • Definición de búsqueda pre-establecida.

Otros cambios en Share:

  • Definición de estatus de usuario.
  • Barra del menú superior rediseñada (más espacio) y más fácil de adaptar o agregar enlaces.
  • Nuevo grupo para gestionar la creación de sitios. http://wiki.alfresco.com/wiki/Site_Service.

Otros cambios y mejoras:
WCM:

  • Nuevo módulo “Web Quick Start” que permite mayor facilidad de uso y adaptación para proyectos web. http://wiki.alfresco.com/wiki/Web_Quick … figuration
  • Web Quick Start es un sitio web de ejemplo donde todo el contenido se gestiona desde Share.
  • El contenido de WCM se almacena en el repositorio del DM por defecto, es decir, ya no usa el AVM aunque sigue disponible.

API:

Repositorio:

  • Eliminación Hibernate, salvo para jBPM. Se incorpora una nueva capa con Apache iBatis. Este cambio no afecta a accesos a la API ni necesita ningún tipo de migración específica.
  • Mejora del sistema de auditoría.
  • Optimización de rendimiento de la búsqueda
  • Nuevo método de permisos de lectura que acelera el acceso a la información.

Replicación:

  • Mecanismo de replicación de 1 a N repositorios de Alfresco.
  • Las réplicas son en sólo lectura, en caso de solicitud de cambio se redirige al origen.
  • Permite mezclar contenido replicado y local en el mismo espacio/carpeta.
  • La replicación se puede hacer automática mediante una planificación o de forma manual.
  • La gestión de la replicación está disponible como acción para el usuario administrador en Share.

Instalación:

  • El paquete de Tomcat se sustituye por una nueva forma de entrega de dos tipos, en WAR + extensiones y en un bundle con instalador.
  • Nuevos instaladores totalmente actualizados y con una función de “modo avanzado” para la elección de los puertos e instalación como servicio.
  • Los instaladores están disponibles en 32 y 64 bits tanto para Linux como Windows y para Mac OS X.

Sobre el soporte completo de idioma Español.

  • Los paquetes de traducción son ahora gestionados por un equipo dedicado para muchos idiomas incluyendo el español. Aún están terminando la versión “oficial”, pero la liberación a la comunidad se hará en cuanto esté disponible que será muy pronto.


No te olvides descargar la documentación oficial y pública, disponible para LinuxWindows y Mac, es el mejor sitio para aprender a sacar todo el partido de Alfresco.

¡Ah! y no te olvides de leer las guías de usuario aquí.

Esto es todo, que no es poco…

Webinar: Alfresco Enterprise – Servicios de Suscripción y Soporte

En este webinar hablamos sobre los servicios de suscripción y soporte que ofrecemos en Alfresco a nuestros clientes de la versión Enterprise. Nuestro objetivo con esta presentación es dar a conocer los servicios y valor añadido que obtienen nuestros clientes cuando adquieren la suscripción de Alfresco Enterprise.

Recuerda que puedes encontrar otros webinars, presentaciones y vídeos en nuestra web de Eventos OnDemand.

Monitoring Alfresco con Javamelody

Hace un tiempo leí este post sobre Monitorización de aplicaciones web con Javamelody escrito por Antonio Muñiz de Klicap y pensé que podría probarlo como no, con Alfresco. Así que me he puesto manos a la obra y aquí están los resultados.

En otros artículos (1, 2 y 3) he tratado de explicar las diferentes formas que existen para monitorizar Alfresco y tener una visión objetiva en cuanto al rendimiento de la aplicación, cuellos de botella, etc.

Hay métodos que son más intrusivos en cuanto a rendimiento que otros, por ejemplo, como indica Antonio en los comentarios de su artículo, el uso de VisualVM no sería viable para usos en producción ya que introduce retardos por cada línea de código ejecutada, JConsole (que viene con la JDK) no es tan intrusiva ya que sólo hace lecturas vía JMX de la información que ofrece la JVM (así es como funciona el plugin de Nagios para Alfresco). En el caso que nos ocupa, Javamelody, el impacto en la aplicación monitorizada es mucho menor que las anteriores ya que no se ataca directamente a la aplicación a monitorizar sino que se usan unos jars dedicados a la tarea de extraer la información.

La instalación de Javamelody es sencilla y aunque puedes ver más opciones aquí, estos son los pasos básicos para instalar la aplicación:

  • Paramos Alfresco (en mi caso la versión 3.3), no es obligatorio.
  • Descomprimimos el archivo zip.
  • Copiamos los ficheros javamelody-1.19.0.jar y jrobin-1.5.9.1.jar al directorio WEB-INF/lib que está dentro del directorio webapps/alfresco (puede variar dependiendo del servidor de aplicaciones), es el directorio que se crea automáticamente cuando desplegamos alfresco.war.
  • Por último añadimos las siguientes líneas en el fichero WEB-INF/web.xml de la aplicación, dentro de las etiquetas web-app:

[xml]
<filter>
<filter-name>monitoring</filter-name>
<filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>monitoring</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>net.bull.javamelody.SessionListener</listener-class>
</listener>
[/xml]

  • Opcionalmente, para poder generar informes en PDF debemos copiar a WEB-INF/lib el fichero itext-2.1.7.jar que podemos encontrar dentro del zip descargado en src/test/test-webapp/WEB-INF/lib/
  • Accedemos via web http://localhost:8080/alfresco/monitoring

Añadir a todo lo anterior unas notas:

  • Todos los ficheros generados por RRD se encuentran en tomcat/temp/javamelody.
  • Recuerda que al estar los ficheros de Javamelody dentro del directorio alfresco (alfresco.war desplegado), cuando actualices Alfresco deberás volver a hacer el procedimiento de instalación de Javamelody.
  • La web que nos muestra las estadísticas no tiene ningún tipo de protección por usuario y contraseña ya que es una web de consulta, no obstante, se podría establecer, mira aquí.

Dicho todo lo anterior ¿qué obtenemos? Aquí podemos ver algunas capturas de pantalla y otras muchas en este enlace:

Como comentaba anteriormente, lo he probado en Alfresco 3.3 Enterprise pero dadas las características de Javamelody debe funcionar en la versión Community. Espero vuestro feedback.

ACTUALIZACIÓN 16/Sept/2010:

Cuando arrancamos Alfresco tras haber copiado los ficheros jar, posiblemente veamos en el log de Tomcat, unas trazas como las siguientes (este error no afecta al rendimiento de la aplicación):

ERROR [log4j.jmx.LoggerDynamicMBean] Could not add appenderMBean for [null]. java.lang.NullPointerException: Invalid value (null)
at net.bull.javamelody.Log4JAppender.register(Log4JAppender.java:50)
 at net.bull.javamelody.MonitoringFilter.initLogs(MonitoringFilter.java:272)
 at net.bull.javamelody.MonitoringFilter.init(MonitoringFilter.java:98)

Contacté con el desarrollador de Javamelody, Emeric Vernat y muy amablemente me envió una nueva versión de uno de los jars que soluciona ese problema, se trata de este: http://javamelody.googlecode.com/files/javamelody-20100915.jar. Para actualizar el jar debemos parar Alfresco, borrar el fichero <tomcat>/webapps/alfresco/WEB-INF/lib/javamelody-1.19.0.jar y copiar javamelody-20100915.jar en el directorio donde se encontraba el anterior. Arrancamos Alfresco y listo. Muchas gracias por el feedback Emeric!!

MAS INFO ACTUALIZADA A 12/12/12 AQUI: https://tpeelen.wordpress.com/2012/12/12/alfresco-monitoring-with-javamelody/

¿Nos vemos en la OSWC 2010?

Los próximos días 27 y 28 de Octubre, en Málaga (España), tendrá lugar la Conferencia Internacional de Software Libre. Como otros años, hace unos meses se convocó el Call For Papers donde se han presentado más de 100 ponencias de todo tipo.

Yo he presentado una charla de Alfresco, donde tengo intención de hablar sobre presente y futuro de las soluciones Open Source ECM. También quiero abordar las interesantes novedades y roadmap de Alfresco, CMIS y el nuevo proyecto Activiti (BPMN 2).

Las charlas que se impartirán serán las que más votos y mejor valoración reciban hasta el próximo día 15 de Septiembre.

Aprovecho para pedirte tu voto si te parece interesante, la intención es poder vernos allí y disfrutar de un par de jornadas de software y conocimiento libres.

Esta es la URL de la charla y esta es la URL del registro para poder votar (sólo quedan dos días para votar).

¡Gracias!

ADAMO: Alfresco DAta MOdel

Ayer, 1 de Septiembre se hizo público este proyecto tan interesante que liberado un partner italiano de Alfresco. Sí, es lo que parece, es una aplicación realizada en Spring Surf que permite gestionar vía web modelos de datos personalizados de Alfresco.

En cuanto la he visto la he instalado y he estado probando. Antes de que sigas leyendo “no flipes todavía que es alpha1” 😉

ADAMO versión 0.5-alpha1 se descarga como paquete zip desde Sourceforge, en el paquete encontraremos principalmente un fichero AMP (Adamo-core.amp) donde se encuentra el motor de la aplicación que se añade a Alfresco como módulo. El fichero WAR (Adamo-surf.war) es la interfaz web de la aplicación que desplegaremos en el servidor de aplicaciones de turno, para Tomcat sería $TOMCAT_HOME/webapps.

Estos son los pasos que se establecen en la documentación adjunta al paquete descargado:

1. Para el servidor de aplicaciones con Alfresco.
2. Localiza el fichero alfresco.war, si no existe puedes generarlo o volver a descargarlo.
3. Copia el fichero adamo.amp en el directorio ALFRESCO_HOME/amps
4. Ejecuta el script apply_amps o ejecuta “java -jar ALFRESCO_HOME/bin/alfresco-mmt.jar install ALFRESCO_HOME/amps/adamo.amp ALFRESCO_HOME/tomcat/webapps/alfresco.war” (sin comillas)
5. Copiamos el fichero Adamo­-surf.war dentro de ALFRESCO_HOME/tomcat/webapps (en el caso de usar Tomcat).
6. Arranca el servidor de aplicaciones con Alfresco
7. Abre firefox y accede a la aplicación http://localhost:8080/Adamo-­surf con usuario y contraseña de administrador de Alfresco.

Hay que tener en cuenta que es una versión alfa y como idea no está nada mal, pero hay ciertas características que no funcionan todavía. Lo he probado con la versión 3.3 Enterprise sin éxito y con la 3.2r2 Community si ha funcionado, de hecho parece ser sobre la que lo han desarrollado y es la indican en la documentación.

Como aclaración decir que en futuras versiones de Alfresco aparecerá un gestor gráfico de modelos, pero este tipo de aplicaciones nunca vienen mal.

Aquí os dejo algunas capturas:

Integración Alfresco con Drupal (o viceversa) con CMIS

La integración entre diferentes aplicaciones es, hoy en día, el caballo de batalla de los productos, clientes e integradores. Cuando hablamos de Open Source, esto se convierte casi en una obligación.

Gracias al estándar CMIS adoptado por Alfresco, las tareas de integración, independientemente del lenguaje de programación utilizado, son mucho más sencillas.

Sobre la integración de Alfresco y Drupal se ha hablado mucho, Jeff Potts ha hecho algunos screencasts, Roger Carhuatocto hizo una presentación sobre el tema en la Drupal Camp 2010, Optaros hizo el conector CMIS para Drupal y mucho antes, Sergio Martin junto a Manuel Recena hicieron un conector vía WebServices. Es decir, el tema trae cola y sólo basta con hacer una búsqueda en Google para dar cuenta de ello.

¿Qué nos puede aportar una integración de este tipo? (extraído de la presentación de Roger)

  • Flexibilidad:
    • Incorporar nuevas funcionalidades, Web 2.0.
    • Cambiar el Look&Feel.
  • Escalabilidad:
    • Búsqueda de ficheros PDF, SWF, Doc, PPT, etc.
    • Tengo muchos usuarios simultáneos.
  • Interoperabilidad:
    • Tengo MS Sharepoint, Documentum y tengo mis ficheros en el HD, …cómo los centralizo?
  • User Experience:
    • El usuario necesita productividad: Espacio colaborativo, gestión de conocimiento, repositorio documental corporativo, workflows/gestión de expedientes, etc.

En este artículo quiero mostrar un ejemplo sobre la configuración de Drupal para conseguir la integración con Alfresco vía CMIS y poder mostrar contenido que está en el repositorio dentro de un contenido en Drupal. En mi caso Alfresco 3.3 y Drupal 6.17. No voy a hablar de la sincronización entre ambos entornos, que permitirá que los contenidos creados en Drupal o Alfresco sean contenidos del primero. No obstante, el conector CMIS si soporta esa opción (cmis_sync).

Debemos tener instalado, configurado y funcionando Drupal y Alfresco. El conector CMIS puedes descargarlo de aquí; en mi caso ha sido la versión cmis-6.x-3.01. En Alfresco no hay que instalar ningún tipo de módulo, para eso soporta CMIS 😉

  1. Descomprime el fichero “cmis-6.x-3.01.tar.gz” y copia la carpeta “cmis” en el directorio “modules” de Drupal.
  2. En Drupal, vamos a “Admin -> Administer -> Site building -> Modules” y activamos los módulos “cmis“, “cmis_common“, “cmis_browser” y “cmis_query“.
  3. En Alfresco creamos un usuario llamado “cmisuser” con permisos de administrador (lo incluimos en el grupo ALFRESCO_ADMINISTRATORS).
  4. Configuramos un repositorio CMIS, en este caso, nuestro Alfresco añadiendo las siguientes líneas en el fichero “sites/default/settings.php“:

[php]
$conf[‘cmis_repositories’] = array(
‘default’ => array(
‘user’ => ‘cmisuser’,
‘password’ => ‘contraseña’,
‘url’ => ‘http://servidor:8080/alfresco/s/cmis’
)
);
[/php]

Hecho esto, podemos probar la integración. En la sección Admin veremos tres nuevas opciones:

  • CMIS Information” que nos mostrará la información CMIS del repositorio.
  • CMIS Query” donde podemos ejecutar consultas, por ejemplo, prueba la siguiente sentencia para ver los contenidos del repositorio: select * from cmis:document
  • CMIS Repository” donde veremos el contenido del repositorio de Alfresco y podremos navegar por él. En la opción “Actions” podemos crear carpetas, contenidos y actualizar documentos.

No conozco muy bien Drupal, así que no he podido hacer más de lo aquí descrito, pero he visto que se puede usar un Block con contenido CMIS y muchas cosas más que podéis ver en el screencast de Jeff Potts mencionado anteriormente.

Control total de los elementos eliminados en Alfresco

Con el siguiente diagrama, me gustaría mostrar cómo funciona la gestión de elementos eliminados y la papelera en Alfresco:

sg_alfresco_file_retention_diagram1

Para conseguir controlar totalmente el estado del repositorio es interesante el uso del módulo Alfresco Trashcan Cleaner que está disponible en la forja de Alfresco. Su instalación es muy simple:

  1. Paramos Alfresco
  2. aplicamos el módulo a alfresco.war con la herramienta mmt:  java -jar alfresco-mmt-X.X.jar /path/to/amp/trashcanCleaner.amp $TOMCAT_HOME/webapps/alfresco.war
  3. borramos el directorio donde se desplegó Alfresco $TOMCAT_HOME/webapps/alfresco/
  4. Arrancamos Alfresco.

Si queremos configurar las opciones del Trashcan Cleaner, antes de arrancar, copiamos trashcan-cleaner-context.xml al directorio extension y lo adaptamos a nuestro gusto. Por defecto borrará los elementos enviados a la papelera a los 7 días y se ejecuta diariamente a las 4AM.

Alfresco Hack: Las consolas “escondidas” de Alfresco

Los que conocéis Alfresco en profundidad sabéis que éste guarda algunas sorpresas interesantes. Entre ellas se encuentran las consolas. Básicamente son herramientas que nos permiten acceder a información o hacer tareas de bajo nivel con Alfresco vía web, destinado principalmente a programadores o administradores.

Vamos a ver que consolas tenemos disponibles y en qué nos pueden ayudar cada una de ellas.

Nota 1: para acceder a estas consolas previamente hay que estar logueado como usuario “admin” en Alfresco Explorer (http://localhost:8080/alfresco).
Nota 2: para ejecutar comandos en estas consolas hay que escribir el comando y pinchar en “Submit”, si escribimos el comando y pulsamos “Enter” no ejecutará el comando.

La “Consola del Repositorio” es una alternativa al cliente web (Alfresco Explorer) y nos permite desplegar, recargar, activar y desactivar modelos en caliente. Podemos hacer lo mismo con ficheros .properties relacionados con idiomas. Un comando de ejemplo podría ser “deploy model alfresco/extension/exampleModel.xml“.

Permite cargar los cambios realizados en el fichero “web-client-config-custom.xml” sin necesidad de reiniciar el servidor. Relmente recarga toda la información modificada que contenga el bean webClientConfigSource en el archivo “alfresco/web-client-application-context.xml” de ahí que digamos que recarga los cambios en “web-client-config-custom.xml“. Más información aquí. Hacer esa tarea es tan fácil como escribir “reload” y hacer clic en “Submit“. Veremos algo como lo siguiente:

<Built-in evaluators> ---> OK
classpath:alfresco/web-client-config.xml ---> OK
classpath:alfresco/web-client-config-dialogs.xml ---> OK
classpath:alfresco/web-client-config-wizards.xml ---> OK
classpath:alfresco/web-client-config-properties.xml ---> OK
classpath:alfresco/web-client-config-navigation.xml ---> OK
classpath:alfresco/web-client-config-wcm.xml ---> OK
classpath:alfresco/web-client-config-actions.xml ---> OK
classpath:alfresco/web-client-config-forum-actions.xml ---> OK
classpath:alfresco/web-client-config-wcm-actions.xml ---> OK
classpath:alfresco/web-client-config-workflow-actions.xml ---> OK
classpath:alfresco/extension/web-client-config-custom.xml ---> Skipped - not available
workspace://SpacesStore/app:company_home/app:dictionary/app:webclient_extension/cm:web-client-config-custom.xml ---> OK

Esta consola nos permite hacer tareas de bajo nivel sobre la AVM (Advanced Versioning Manager), sistema usado por Alfresco WCM, posiblemente la consola más desconocida y compleja de utilizar. AVM Console cuenta con una ayuda (http://localhost:8080/alfresco/faces/jsp/admin/avm-console-help.txt) aunque tenemos más información aquí y aquí.

Este es el más conocido ya que es accesible desde la “Consola de Administración”. Es una herramienta muy útil para desarrolladores y administradores. Permite hacer búsquedas y localizar información extendida sobre los contenidos del repositorio. Soporta búsquedas de varios tipos:

  1. noderef, por ejemplo workspace://SpacesStore/3d9b49aa-54b5-41b7-8842-eecde41a9b73
  2. xpath
  3. lucene
  4. fts-alfresco (full text search)
  5. cmis-strict
  6. cmis-alfresco
  7. selectnodes.

Posiblemente el mejor amigo de un programador de workflows. Esta consola es una caja de herramientas completa para depurar nuestros workflows. Más info y sintaxis aquí.

Consola para gestión, creación y borrado, activación/desactivación, exportación e importación de tenants. Recuerda que para activar el multitenant en Alfresco hay que renombrar sin .sample los ficheros en tomcat/shared/classes/alfresco/extension/mt y reiniciar el servidor.
Otras URLs interesantes dentro de nuestro sistema:

Aquí no voy a explicar nada, ejecútala espera unos segundos y mira. ¿Interesante verdad?

Esta nos sirve para ver todos los WebScripts disponibles, información de uso de cada uno de ellos y además podremos desplegar nuevos WebScripts.

¡Que curioso! Cuando he terminado de escribir el artículo he hecho una búsqueda en Google y me encuentro esto, un post del gran Jeff Potts sobre esto mismo…

Actualización 27 Mayo 2014:

A esos que cito habría que añadir:

http://localhost:8080/alfresco/service/enterprise/admin -> Consola de Administración desde 4.2 (configuración de cluster, ldap, mail, etc. via web). Solo Alfresco Enterprise.

http://localhost:8080/share/service/index -> web scripts de Alfresco Share

http://localhost:8080/alfresco/activiti-admin -> Activiti Admin para Alfresco Enterprise

http://localhost:8080/share/page/modules/deploy -> Despliegue y control de módulos en Share

http://localhost:8080/alfresco/service/cmis/index.html -> CMIS panel

Adicionalmente para Alfresco Enterprise desde la 4.2 hay un módulo muy útil que se llama Alfresco Support Tools, se puede encontrar aquí:

https://addons.alfresco.com/addons/support-tools-admin-console