INEAT Conseil, partenaire Nuxeo, fut présent du 9 au 10 octobre au Centre de Conférence Paris Victoire pour le Nuxeo World 2013. Le Nuxeo World est l’occasion pour les membres de la communauté Nuxeo, et plus généralement pour toute personne intéressée par l’open source, des technologies de la gestion de contenu ou les plateformes de développement d’applications, de se réunir, de réseauter et d’assister à des présentations faites par les architectes, développeurs, partenaires, clients et contributeurs de Nuxeo.

L’évènement s’est décomposé en deux journées :

  1. Une journée de revue de l’année écoulée, présentation de la roadmap et des nouveautés
  2. Une journée de formation fonctionnelle (sur Nuxeo Studio) et technique (pour développeurs et administrateurs)

Nous vous proposons donc un compte-rendu non exhaustif de ces deux journées.

Journée 1 : Revue de l’année écoulée et roadmap

Résultats de l’année

Les résultats financiers sont en hausse pour l’année 2013. Outre sa croissance sur le marché européen, on constate que le nombre de client aux Etats Unis est également en augmentation. Parmi les principaux clients Nuxeo, on peut citer Netflix, EA Sport, Michelin, Boeing (offre zéro papier pour les manuels des pilotes), Sharp (partenariat), Fico, NFI…

Nouveautés

Nous présentons le listing des principales nouveautés de l’année 2012 :

  • Nouveau cycle de publication des releases :
    • Des releases de type LTS (Long Term Support) tous les ans. Cette version majeure est maintenue 3 ans. La prochaine version 5.8 prévu fin octobre
    • Des releases de type FTS (Fast track) tous les deux mois afin de bénéficier de nouvelles fonctionnalités régulièrement
  • Nuxeo.io : Il s’agit d’une offre cloud de type PaaS pour le développement spécifique des gestion documentaire autour de Nuxeo. C’est offre est orientée sur le contenu et le file sharing. Il est compatible avec l’API box.net. Cette solution est idéale pour des applications JS (AngularJS, EmberJS, …). Nuxeo.io est prévu pour Q1 2014
  • Nouvelle API REST pour JavaScript (pas de framework nécessaire). Cela offre donc une nouvelle façon d’accéder aux ressources Nuxeo
  • Support PostGreSQL 2nd Quadrant
  • Nuxeo Drive permet la synchronisation des fichiers et répertoires de Windows et Linux directement sur Nuxeo
  • Edition en ligne via Word, Photoshop…
  • Monitoring / supervision : Incorporation de DataDog comme logiciel de monitoring OS/hardware/Instance Nuxeo/base de données…
  • Divers : Nuxeo Mobile (Android et iOS), Quota, CVS Importer, Permissions/Groups extraction, Outlook plugin, Facelet search et Tags

Roadmap 2014

La roadmap présentée est très ambicieux et extrèmement prometteuse :

  • Rationaliser l’API REST
  • Optimisation du Repository pour supporter plus de documents et la détection d’utilisation concurrente
  • Authentification OAuth2 / OpenID
  • Batch management
  • Webapp : comparaison de deux documents
  • Workflow : amélioration du rendu des graphiques de Workflow
  • Déploiement : un package out of box avec centralisation des configurations de clustering
  • Mobile : Synchronisations des contenus iOS et Android
  • Nuxeo drive : Clic droit sur Nuxeo drive
  • Nuxeo Studio : Des features sur Nuxeo Studio (branches management/templates…), le support du Hot reload, maven 3, AngularJS avec la génération automatique du code pour le CRUD, Autoriser le multi utilisateur via la collaboration, le chat, multiple projet, version et branche…)
  • Exposer de nouveaux EndPoint
  • Utilisation de fragments de modèles
  • Fournir un bridge avec Commande API
  • Faciliter le debugging avec une méthode de tracking de méthode/paramètre
  • Plugin Eclipse d’auto-complétion de création de point d’extension dans Nuxeo
  • Support des formats numériques mp3/mp4/jpg/png

Conférences

Ensuite, nous avons suivi différentes conférences présentées par Nuxeo ou des intégrateurs :

  • Intégration avancée Liferay / Nuxeo: contrairement à une intégration classique avec Liferay pour la gestion de contenu web (WCM) et Nuxeo pour la gestion documentaire (DM), cette conférence montre qu’il est possible d’aller plus loin dans l’interaction Liferay/Nuxeo en ajoutant:
    • La recherche avancée de documents depuis Liferay
    • La gestion des actions sur les documents basées sur les droits Nuxeo
    • L’affichage des propriétés de documents configurable de manière simple et dynamique
    • Création de documents depuis Liferay
    • Authentification SSO
    • Utilisation de Portlet Liferay, Nuxeo Automation Client, NXSQL, Vaadin Framework
  • Application mobile Safari/IOS d’informations et SIG pour l’université de Chamblers (Suède) couplant des documents Nuxeo à des données géographiques OpenStreetMap. Les principales technologies utilisées pour la réalisation de l’application sont des Web Services REST/SOAP/JSON et Nuxeo NXSQL
  • Présentation d’un shell Nuxeo full JavaScript pour le debug d’applications dans Nuxeo
  • Solution de dématérialisation Nuxeo/Spi.Factory: l’objectif de cette solution est de proposer une solution d’acquisition de documents légère et proche du l’utilisateur avec les fonctionnalités suivantes
    • Acquisition de documents via des scanners et leurs drivers TWAIN
    • Fonctionnalités de visalisation, traitement simple via l’applet Spi.Factory intégrée dans l’interface utilisateur Nuxeo
    • OCR
    • Extraire des informations clés des documents scannés
  • Démo de Nuxeo DAM

Journée 2 : Ateliers

Nous présenterons ici uniquement le contenu de la session technique puisque la session fonctionnelle avait principalement pour but de présenter l’usage de Nuxeo Studio de manière standard.

Construisez une UI nouvelle génération pour votre application avec AngularJS et Nuxeo

Dans cet atelier, Nuxeo a démontré comment construire une application avec la plateforme Nuxeo en serveur d’application, et le très apprécié framework JavaScript AngularJS pour l’interface utilisateur. Pour cela, Nuxeo utilise les APIs REST pour naviguer dans la base documentaire et déclencher les opérations sur les documents.

Il est nécessaire d’installer yeoman.io (http://yeoman.io/) et Node.js (http://nodejs.org/)

Taper la commande :

[{"Id":"89feecf1-a2cd-4bd9-aefc-956505ab79ae","FirstName":"FirstName User 1","LastName":"LastName User 1"}
,{"Id":"8dfa6931-e4a1-4ab6-a504-238ea28c2451","FirstName":"FirstName User 2","LastName":"LastName User 2"}
,{"Id":"b33fcadc-6acd-492f-906f-188aa1254ff4","FirstName":"FirstName User 3","LastName":"LastName User 3"}
,{"Id":"5e0adbd3-8e70-45f4-938d-fca143fbb73e","FirstName":"FirstName User 4","LastName":"LastName User 4"}]

npm install -g yo  permet d’installer yeoman
npm install -g generator-angular  permet d’installer le générateur Angular
yo angular  permet de génerer un projet AngularJS
bower install angular-ui  install les dépendances du projet via Bower (comme maven)
grunt test  test la webapp
grunt server  lance la webapp

Après avoir installé et générer la webapp, il faut modifier le fichier Gruntfile.js pour que le projet AngularJS puisse échanger avec Nuxeo en spécifiant l’adresse et le port.

Le répertoire « /app/views » contient les vues et le répertoire « app/scripts/controllers » les contrôleurs.

La vue se rafraîchit automatiquement lors de la modification du fichier html.

Dans cet atelier, il a été possible de modifier le nom du  « Workspace » en « newWorkspace »

1)      Nouvelle installation de Nuxeo :

nuxeo1

2)      Script affichant les properties du repertoire « Workspaces » dans notre application Angular :

nuxeo2

3)      Modification du nom « Workspaces » en « newWorkspace » et sauvegarde :

nuxeo3

4)      Modification effective dans Nuxeo :

nuxeo4

Monitorer votre application Nuxeo

Nous avons appris comment monitorer Nuxeo et comprendre les rapports extraits en utilisant Graphite. Nous avons donc élargi le champ de monitoring pour rassembler des informations pertinentes et à utiliser ces données en utilisant Elasticsearch et Kibana.

Graphite permet de monitorer le serveur sur lequel est installé Nuxeo.

Il donne accès à des entrées comme l’utilisation des CPU et de la RAM, le contrôle du stockage des disques de données, les sockets utilisé, la visualisation du comportement du serveur d’application Tomcat Apache, la base de données, la JVM, les sessions, etc… avec une vision graphique ! Il est aussi possible de créer ses propres graphiques.

Les différents graphiques disponibles de base dans le Dashboard de Graphite :

2013-10-14 11_24_41 2013-10-14 11_24_52 2013-10-14 11_24_58 2013-10-14 11_25_06 2013-10-14 11_25_13 2013-10-14 11_25_21 2013-10-14 11_25_25

La création de nouveau graphique :

2013-10-14 11_26_15 2013-10-14 11_26_27 2013-10-14 11_26_51

Elasticsearch et Kibana sont des outils qui facilitent la lecture des logs. Il permet via des fichiers de configuration de rassembler les fichiers de logs. Sur l’interface de Kibana, il est aussi possible de faire des filtres sur les logs pour rechercher par exemple des occurrences de « nuxeo ».

kibana 1 kibana 2