Le JUG Summer Camp c’est fini pour cette année

Le JUG Summer Camp vient de se terminer. Une journée de conférences intéressantes dans superbe cadre. Au menu du Java, mais on aussi pas mal parlé de Cloud cette année.

Une sélection de quelques sessions auxquelles j’ai assisté.

Lascaux II - Hall of The Bulls

Antonio Goncalves : Keynote d’ouverture

Antonio a retracé l’histoire de l’information dessinée sur des parois grottes en Australie, sur du papier, des cartes perforées, stockées dans des ordinateurs et finalement on ne sais où dans le Cloud par ce qu’il en a trop. Pour que les êtres humains puissent échanger cette information, ils doivent se mettre d’accord sur son sens et les normes apparaissent. De plus en plus d’information, de plus en plus de volume, du Cloud, mais un Cloud sans normes qui met les applications en situation de Cloud Locking. Et Antonio est un homme libre, il n’aime pas le Cloud Locking ;-)

Et Java dans tout ça ? Java sera Cloud (entre autres la liste de toutes ses prédictions a été largement relayée sur Twitter). L’expert group JavaEE se penche sur le sujet. Donc on vous le dit : Java sera Cloud !

Michaël Figuière : Les applications et architectures d’entreprise de demain

Les architectures sont en train de changer depuis quelques années. Michaël nous a livré ses reflexions sur les possibilités nouvelles qu’elles nous offrent.

Arrivée de la mobilité. Les smartphone permettent d’avoir un accès permanent à Internet et possèdent des capteurs qui permettent la détection du mouvement, de la vitesse et une géolocalisation précise. Ces fonctions sont utilisées pour faciliter la vie de l’utilisateur,  ne pas avoir à préciser son adresse lorsque l’on commande un taxi G7, éviter de refaire la même recherche parce que le système a mémorisé la demande et envera une notification s’il y a un changement ou une information utile.

Les informations collectées sur l’utilisateur peuvent aussi être analysées pour sélectionner les services à lui proposer, lui recommander des achats comme sur Amazon. Il s’agit là de filtrer, trier et appliquer des technique proches de l’IA sur d’énormes masses de données. Twitter gère des millions de tweets par jour. Et justement grace au NoSQL et au Cloud on dispose maintenant de bases de données et d’infrastructures qui peuvent monter en puissance.

Des outils qui permettent de traiter ces volumes de données :
Esper est outil d’analyse d’événements temps réel (analyse des actions des utilisateurs, surveillance de système, données de flux financiers …)
Mahout basé sur Hadoop est un outil d’analyse de données basé sur Hadoop (je l’ai déjà traité dans mon post Devoxx 2010).

Ces changements impactent aussi la conception. Ce besoin de temps réel nécessite de mieux gérer la disponibilité. Les applications doivent être plus résiliantes. A l’opposé du design classique qui considère que l’infrastructure marchera et n’a pas de moyens d’action lorsque des sous systèmes qui ne répondent pas ou mal, le Design for failure accepte que le système puisse avoir des défaillances techniques et les gère pour qu’ils aient le moins d’impact possible. De nouveaux mécanismes apparaissent comme les circuit breakers (coupe-circuits).

La présentation

Nicolas De Loof : Ma forge++ : on the cloud

Nicolas est venu nous présenter Cloudbees une plate-forme qui permet d’avoir une forge logicielle et un environnement d’exécution Java de test ou de production dans le Cloud.

Nicolas reprend la forge idéale qu’il nous avait présenté l’an dernier (Maven, jenkins …). Elle est efficace mais il y a beaucoup de composants à installer pour chaque projet. Comment faire ? Cloner ? Automatiser l’installation ? Ou bien utiliser une forge toute prête en SAAS comme  DEV@cloud.

Mathieu Ancelin : Weld-OSGi, OSGi en toute simplicité

Weld est l’implémentation de référence de CDI (Context and Dependency Injection), la spécification  Java™ Specification Request (JSR) 299. L’injection de dépendance permet de créer dynamiquement (injecter) les dépendances entre les différentes classes en s’appuyant sur une description par des annotations ou un fichier de configuration). Cette technique permet par exemple de choisir une implémentation particulière d’une interface lors de l’exécution. Si vous avez besoin d’une mise à niveau vous pouvez regarder le tutorial d’Antonio Goncalves sur CDI.

OSGI est une spécification gérée par un consortium d’entreprises qui permet de réaliser des applications modulaires orientées service. Elle repose sur un modèle de gestion du cycle de vie d’une application, un répertoire de services, un environnement d’exécution et des modules (les services). L’usage typique est de choisir de dépployer dynamiquement des services dans un serveur et de sélectionner à l’exécution les services que l’application doit proposer. OSGI permet d’identifier les dépendances entre modules et les versions.

Mathieu Ancelin nous a fait une présentation très claire d’OSGI (ce qui n’est pas simple). Il nous a ensuite un peu plus parlé de Weld-OSGI.

Weld-OSGI est un projet Open Source dont l’objectif est de régler quelques problèmes techniques d’intégration entre les deux mondes et de fournir une API plus simple de manipulation des services OSGI. L’intégration permet de découvrir dynamiquement des services OSGI. Concrètement ces modules sont des jar et sont chargés dynamiquement dans le class loader. CDI permet ensuite d’injecter une classe de ce module dans la classe qui utilise le service.

Mathieu a fait une démo assez bluffante d’application Web de réservation d’hôtel (JAX-RSJQuery) où il modifie dynamiquement les services présentés en arrêtant/démarrant les modules. Et tout ça avec une centaine de lignes de code.

Romain Maton : Optimiser votre site Web sur mobile

Romain a fait un tour d’horizon très complet des contraintes techniques du Web Mobile et des outils qui peuvent nous aider. La présentation est très dense et contient beaucoup d’informations techniques. Elle sera mise à disposition sur Web Tambouille et sur le site du JUG Summer Camp.

En résumé très rapide, les smartphones  disposent de peu de mémoire, peu de CPU et peu de bande passante réseau. C’est au développeur de faire attention pour que le site soit agréable à utiliser. Il doit faire attention aux aspects techniques (optimisation du HTML, du CSS, des images et être parcimonieux avec le JavaScript). Comme on est très loin des capacités disponibles sur les sites Web classiques, il va falloir choisir, recentrer l’application sur sa fonction centrale, éliminer les fonctions qui ne sont pas utilisées sur un mobile. Des validateurs de code et des outils d’analyse des pages permettent de corriger les erreurs de codage ou de configuration des caches.

Nicolas Martignole : Keynote de fermeture

La présentation de Nicolas est impossible à raconter. Il faudra aller la voir en vidéo. Il se projète en 2021 et nous présente une émission "10 ans après" sur le métier de développeur. L’occasion de parler avec beaucoup d’humour de la situation actuelle.

logo jugsummercamp

Les présentations et les vidéos seront bientôt disponibles sur Parleys et le site du JUG Summer Camp.

Merci au Poitou-Charentes Java User Group et à Serli pour l’organisation et à l’année prochaine, on l’espère.