Tag :OSGI

Devoxx 2010

devoxx10-120x240-blackDevoxx est une conférence européenne indépendante qui porte sur les technologies Java/JVM . Organisée en Belgique, à Anvers, elle nous permettra d’entendre du 15 au 19 novembre 2010 des speakers de haut niveau. Un peu moins de 3000 développeurs venant de plus de 40 pays différents s’y retrouvent chaque année.

Les conférences

Les University Days.

Les 2 premiers jours sont appelés les University Days. On y retrouve principalement des ‘University Talks’, des conférences de 3 heures qui abordent un sujet en profondeur. Il y a à chaque fois plusieurs conférences sur un même créneau horaire. Les sujets sont variés, la plupart sont techniques. Ainsi, on retrouve des sujets :

Chacun peut participer à 2 sessions de 3 heures par jour, une le matin et l’autre en début d’après midi. Ensuite, place aux ‘Tools in action’. Ce sont des petites sessions de 30 minutes qui permettent aux speakers de nous faire découvrir un outil auquel ils ont participé. Les sujets sont variés, d’une présentation de spring developer tools (que j’apprécie énormément au quotidien), à visual VM (outil de monitoring) en passant par Apache Mahout.
Entre 19 et 22h, ont lieu des BOF (Bird-of-a-Feather) qui diffèrent beaucoup de tous les autres types de conférences.
Elles réunissent peu de personnes et sont beaucoup plus informelles. Elles sont généralement menées par un ou deux speakers de manière libre. Parfois, il y a une brève présentation puis des questions, parfois ce sont des discussions ouvertes sur un sujet précis. Actuellement, le planning n’est pas finalisé sur les BOFs.

Les Conference Days

Pour les 3 jours suivants, du mercredi au vendredi, le format diffère. Les conférences  ne sont plus de 3 heures mais d’une heure : cela permet de voir bien plus de sujets différents mais de manière un peu plus superficielle. Les sujets là encore tournent autour des mêmes thèmes dans 5 salles différentes. Les sessions ‘Tools in action’ disparaissent au profit des Quickies, qui durent 15 minutes pendant la pause déjeuner.

Duchess à Devoxx

Les duchess seront présentes toute la semaine à Devoxx et plusieurs nationalités seront présentes (France, Belgique, Hollande …). Le jeudi soir, les Duchess organiseront une BoF pour discuter en petits groupes (6) autour de sujets choisis sur le thème ‘Les femmes dans l’informatique‘.

Ce que j’aime à Devoxx

Pour un prix raisonnable, Devoxx apparait comme un des principaux rendez-vous européen. Les speakers y sont accessibles et l’organisation bien rodée. En une semaine, cela permet d’améliorer fortement sa ‘culture générale Java’, surtout si l’on est débutant. Anvers n’est qu’à deux heures de Paris en Thalys, les hôtels y sont à un prix abordable. Bref, pour un investissement moyen, cela permet vraiment de progresser au niveau technique et de rencontrer énormément de monde, ce qui est toujours un avantage. Certaines SSII l’ont bien compris et y envoient chaque année plusieurs consultants.  Ceux qui n’ont pas une entreprise pour les y envoyer peuvent tout à fait se le permettre au niveau financier. Les conférences sont bien sûr des endroits où l’on apprend beaucoup, mais toutes les discussions ‘off’ pendant la pause déjeuner ou autour d’une bière le soir permettent d’avoir des retours d’expérience très intéressants.

Infos Pratiques

Au niveau de la gestion à proprement parler, pour ceux qui assiste aux University Days, deux possibilités : soit dormir sur place le dimanche soir, soit il est tout à fait possible de prendre l’un des premiers Thalys, de passer à l’hôtel si celui ci est proche de la gare et en ne perdant pas de temps de prendre le tramway pour assister aux premières sessions.
Pour les hôtels, les français semblent se regrouper cette année à deux endroits différents : l’Agora (qui devient à partir d’octobre le ‘all seasons Antwerpen City Center’) et le Park Inn qui sont tous les deux placés juste à côté de la gare. Il vaut mieux éviter de prendre les hôtels qui semblent plus proche de la salle pour deux raisons : ils sont mal desservis en transport en commun et cela veut dire également que vous ferez le chemin seul le soir et le matin.
L’année dernière, le petit déjeuner était compris dans la conférence, tout comme le repas du midi.
Au niveau du train du retour pour le vendredi, beaucoup prennent les thalys de 14h30 ou de 15h30, et certains y restent le week end pour découvrir la Belgique !

JUG Summer Camp : JOnAS

Outils d’audit et diagnostic pour les développeurs et administrateurs d’applications OSGi/Java EE – Florent Benoît (présentation)
par Claude Falguiere

Florent Benoît nous a présenté un outil de diagnostic fourni nativement avec le serveur d’applications JOnAS. L’outil est destiné à être utilisé en production pour collecter un certain nombre de métriques qui pourront servir à du diagnostic ou de la facturation à l’usage. Il peut également être utilisé en développement pour effectuer des diagnostics. Comme JOnAS se base sur OSGI l’outil doit être flexible car les services peuvent être présents ou pas.

Dans une première démonstration une fuite de connexion JDBC a été crée artificiellement. L’outil inspecte les connexions restées ouvertes lorsqu’une session est terminée sans rendre la connexion au pool et détermine la ligne de code qui a obtenu la connexion. Une autre fonction de cet outil est de montrer l’état des threads de manière dynamique. Cette fonction est plus rapide à utiliser que la génération d’un thread dump qui doit ensuite être chargé dans d’autres outils.

Une seconde démonstration a montré les capacité de profilage de l’outil. Il permet de tracer chaque requête de bout en bout avec un identifiant unique qui permet de la suivre dans toutes les couches et même pour les traitements asynchrones. Le grephe d’appel est présenté sous une forme graphique.

L’outil a l’air intéressant, mais JOnAS est un serveur d’applications que l’on utilise rarement. Dans la mesure où la collecte des informations de monitoring des serveurs d’applications repose pour une grande partie sur des protocoles standards, il est un peu dommage que cet outil soit spécifique à JOnAS.

ParisJUG de Juin : rencontre avec Holly Cummins (2)

IMG_0268_500Après une pause de 30 minutes, Octo fait une annonce pour parler de l’université du SI. C’est une conférence organisée par Octo sur Paris qui débute le 1er Juillet et dure 2 jours. 3 types de sessions sont proposés :

  • des sessions destinées aux boss,
  • des sessions destinées aux geeks,
  • des sessions mixtes.

Ce n’était pas vraiment prévu mais ils décidèrent ensuite d’organiser un tirage au sort pour une place à la conférence. Ensuite, Holly Cummins tira au sort un nom pour gagner l’iPad que beaucoup convoite en ce moment. Après avoir félicité le gagnant (ou plus précisément le jalousé :) ), nous passons à la deuxième partie de la présentation.

OSGi et les entreprises

Holly commence par faire le point sur l’évolution de la programmation en faisant la correspondance avec l’évolution de l’homme.

IMG_0276_500Au commencement il y eut les bits, une série de 0 et de 1. Puis nous sommes passé aux fonctions et librairies ensuite aux objets et puis finalement OSGi. Ce dernier représente quand même une étrange évolution dans la programmation comme le montre l’étrange animal le représentant dans la dernière étape de l’évolution.

L’utilisation d’OSGi est une question de besoin. Pour un “Hello Word !” les objets sont amplement suffisants mais lorsqu’on a une usine à gaz ?
Dans une application complexe, les dépendances et l’utilisation des librairies peuvent devenir difficile à gérer. Il nous faut des applications modulaires.

La modularité dans une plateforme d’entreprise

Le gros problèmes des jars c’est qu’ils ne sont pas versionnés, il n’y a pas de scope ce sont des entités non traçables et non gérables. Autre souci, le classpath : avec nos applications de plus en plus complexes, où les jars dépendent eux mêmes de jars, on peut très vite se retrouver avec des surprises au runtime. En effet, selon les JVM la politique de chargement de classes n’est pas la même et on peut avoir très vite en fonction des environnements des ClassNotFoundException.

OSGi

layering-osgi

Ci dessus une représentation du modèle en couche d’OSGi. Il est composé de Bundles, le Bundle est un composant OSGi qui est en fait un jar contenant des méta-données définies dans le Manifest.mf. Chaque bundle possède son propre classpath ce qui élimine les problèmes de conflits de versions que l’on peut avoir. Voici un exemple de Manifest.mf :

[[code]]czozMTc6XCJNYW5pZmVzdC1WZXJzaW9uOiAxLjAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiBIZWxsb1N7WyYqJl19ZXJ2aWNlIFBsdWctaW4KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IGNvbS5qYXZhd29ybGQuc2FtcGxlLkhlbGxvU2VydmljZQogQnVuZHtbJiomXX1sZS1WZXJzaW9uOiAxLjAuMAogQnVuZGxlLVZlbmRvcjogSkFWQVdPUkxECiBCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4KIEV4e1smKiZdfXBvcnQtUGFja2FnZTogY29tLmphdmF3b3JsZC5zYW1wbGUuc2VydmljZQogSW1wb3J0LVBhY2thZ2U6IG9yZy5vc2dpLmZyYW1ld297WyYqJl19cms7dmVyc2lvbj1cXFwiMS4zLjBcXFwiXCI7e1smKiZdfQ==[[/code]]

Les services OSGi sont là pour fournir une liaison dynamique entre les bundles que l’on peut à tout moment modifier à chaud.

Et pour les applications web ?

OSGi Enterprise Expert Group (EEG) a défini une spécification pour fournir une solution aux entreprises et répondre aux besoins de ceux qui utilisent Java EE pour leurs applications.

Avantages

L’approche est vraiment différente. Et au lieu de déployer une nouvelle version de notre application et ensuite de redémarrer notre serveur d’application, on peut se limiter au déploiement de bundles (modules) à chaud.

Apache Aries

Apache Aries est le projet open source sur lequel travaille Holly Cummins. Apache Aries est un outil permettant d’exposer les modules OSGi.

Historique

Aries est un projet créé en Septembre 2009. Toujours en incubation, la version 0.1 est maintenant disponible à l’utilisation et a été intégré à Websphere.

Voici ce que contient le projet Aries :

  • un conteneur Blueprint,
  • JPA integration,
  • JTA integration,
  • JMX,
  • JNDI integration,
  • Application assembly

IMG_0279_500

Petite démonstration …

Voici l’heure de la démo qu’appréhende beaucoup Holly car le mois dernier elle ne s’était pas très bien passée.

Dans Eclipse, elle utilise Apache Aries pour montrer le fonctionnement d’OSGi :

Elle commence par créer un service, et charger dans le serveur OSGi le jar, il sera reconnu en tant que Bundle. Une fois chargé et lorsque l’on va créer l’application, on pourra lui définir l’utilisation de ce bundle. Elle injecte ensuite la classe Service créée dans une servlet. Pour ce faire elle utilise le JNDI pour récupérer le bon bundle et donc notre classe.

L’injection de dépendances

Les modules peuvent faciliter l’évolution d’une application, il semble à ce moment là simple de vouloir remplacer son service par une nouvelle version sans redémarrer son serveur. Ces bundles peuvent être visibles et gérables dans le serveur d’application qu’elle a choisi d’utiliser : Websphere.

Ce qu’elle voit dans un futur proche c’est que toutes les applications Java d’entreprises vont pouvoir déployer des bundles au lieu des applications entières.

La troisième mi temps

La présentation est finie, quelques questions suivirent. Tout le monde remballe ses affaires et direction Le Vavin pour la 3ème mi temps !
Pour un autre retour sur la soirée, vous pouvez également voir la wave d’Olivier Croisier sur son blog The Coder’s breakfast. D’ailleurs sa wave m’a beaucoup aidé pour rédiger ce résumé, un grand merci à lui.

Alors on se retrouve au mois prochain hein ? ;)

Troisieme-Mi-Temps-2

 

Paris JUG : les performances et OSGi avec Holly Cummins

Ce mois-ci performances et OSGi sont au menu de la soirée du ParisJUG. Avec Holly Cummins notre speaker du mois, venez découvrir les deux thèmes qu’elle abordera ce soir :

Optimisation de performances

Mémoire, threads ? Tous ces concepts paraissent très mystérieux. En fait ce sont des comportements très simples dès lors qu’ils sont expliqués et aussi quand on peut les visualiser. Les outils fournis avec la Java 5 ainsi que des outils plus spécifiques permettent de visualiser les différentes zones de la mémoire, les données liées à chaque exécution du GC, le code en cours d’exécution pour chaque thread. Ces outils aident à comprendre comment une application sollicite les différentes zones de la mémoire. Certains OutOfMemory sont réfractaires aux modifications de -Xms -Xmx les paramètres qui dimensionnent la heap. C’est simplement parce que la heap ne concerne que les objets crées par l’application. D’autres zones mémoire sont utilisées pour stocker les classes, la pile d’appel. Même la heap est composée de plusieurs zones dans une JVM générationnelle.
Beaucoup de consommation CPU, l’application pause tout le temps car la JMV passe beaucoup de temps dans des GC ? L’analyse détaillée des données de GC permet de comprendre pourquoi des GC sont fréquents, quelle est la durée de vie des objets impliqués et d’avoir de premières pistes pour identifier  une consommation mémoire excessive ou s’adapter à un usage particulier.Ou alors, les réponses sont parfois lentes sans raison apparente. Ces outils aident à identifier si un thread est en train d’en bloquer un autre parce qu’ils nécessitent tous les deux l’accès à une variable protégé par un synchronized. Même si la JVM nous décharge de la gestion des allocations/dé-allocations mémoire et du multi-threading, il est utile de comprendre comment ces mécanismes marchent pour les utiliser de manière efficace en Java.

OSGi

On parle de la spécification OSGi mais savez vous de quoi il s’agit ? OSGi est une spécification ayant pour but de définir des applications modulaires, portables et dynamiques. Pour faire simple cela permet de réaliser des installations de modules à chaud sans redémarrage de la JVM. Le plus bel exemple que l’on a sans doute tous sous les yeux est Eclipse et son système de plugins par exemple qui respecte la spécification OSGi. Elle existe donc depuis un moment déjà mais revient au goût du jour pour tenter de répondre à nos problèmes de modularité sur nos applications web. Une présentation d’OSGi a été réalisée au ParisJUG en Octobre 2008 par Cyrille Leclerc et Nicolas Griso pour présenter ce que OSGi pouvait nous apporter. Depuis plus d’un an s’est écoulé, Holly Cummins va nous présenter au travers du projet open source sur lequel elle travaille Apache Aries, les enjeux d’un tel outil. Injection de dépendances, transaction et persistance : venez découvrir comment l’on peut répondre à ces problématiques avec OSGi.

En continuant à utiliser le site, vous acceptez l’utilisation des cookies. Plus d’informations

Les paramètres des cookies sur ce site sont définis sur « accepter les cookies » pour vous offrir la meilleure expérience de navigation possible. Si vous continuez à utiliser ce site sans changer vos paramètres de cookies ou si vous cliquez sur "Accepter" ci-dessous, vous consentez à cela.

Fermer