Archive

Articles taggués ‘Java’

Ma tasse de Java s’ouvre au IcedTea

Difficile de passer à côté de l’information pour ceux qui évoluent dans son écosystème : Java 7 est sorti cet été! Même s’il est encore tôt pour croiser cette dernière version dans un environnement professionnel, les plus intéressés ont déjà pu se faire une idée en l’installant ou grâce à la multitude d’articles sur le web. Il est une news qui fait moins de bruit mais qui revêt un intérêt particulier pour peu qu’on soit libriste, c’est la sortie récente d’IcedTea 2.0.

Qu’est-ce qu’IcedTea?

Rafraîchissons nos bases : les Java Specification Requests (JSR) décrivent les spécifications du langage et du framework Java. N’importe qui est libre d’implémenter (et de proposer) ces JSR et ainsi de créer ses propres JVM, JRE et/ou JDK. Parmi ces implémentations, OpenJDK est une ouverture du code source du JDK de (feu) SUN dont le développement est maintenant distinct de l’implémentation d’Oracle. Malheureusement, par le passé, SUN a dû composer avec des portions de codes que leurs licences ne permettait pas de publier. Ces parties, souvent appelées « binary plugs » car impossibles à détenir sous forme autre que binaire (pas de code source) constituent un problème pour qui veut s’affranchir de la dépendance vers le code propriétaire. Même si ceci n’est pas la préoccupation de tout un chacun, certaines entités telles que les distributions Linux aimeraient bien voir ce code propriétaire remplacé par une implémentation libre. C’est l’objectif du projet IcedTea.

La distribution Fedora – et donc Red Hat derrière – est à l’origine de ce projet débuté en juin 2007. Au menu : proposer des paquets pour Fedora 8 mais aussi permettre de compiler ces paquets avec des outils libres tel que le compilateur java de GNU! Utiliser un compilateur propriétaire pour créer un outil libre était une entorse à la philosophie open source que les développeur Fedora ne pouvaient souffrir. Le 18 Octobre dernier, était annoncée la release 2.0 d’IcedTea7 : version dédiée à OpenJDK7.

Le duo « OpenJDK + IcedTea » passe le Technology Compatibility Kit (TCK) et lui permet ainsi de prétendre à une certification d’implémentation des JSR de niveau professionnel. Le code du projet est régulièrement compilé sur les architectures x86, x86_64, ARM et est aussi compilable pour SPARC et PPC. Il est disponible sous licence GPLv2.

Avec l’évolution du projet, un autre but – plus secondaire – est apparu : celui d’un plugin Java pour les navigateurs web. C’est à cet effet que le projet Icedtea-web a vu le jour. Il permet donc l’exécution de code Java dans un navigateur, nécessaire pour faire fonctionner les applets et apporte aussi une implémentation de « Java Web Start ».

Et voilà comment on délivre un produit de toute contrainte légale d’utilisation pour ses utilisateurs!

Categories: Actualités, Java EE Tags: , ,

Lancement d’Ice Cream Sandwich, la nouvelle version d’Android

La nouvelle version du système d’exploitation Android, nommée Ice Cream Sandwich (version 4.0) a été annoncée par Google cette semaine à Hong Kong.

Cette nouvelle version de l’OS est destinée aux tablettes et aux téléphones. Pour rappel, la précédente version, Honeycomb (3.0), avait été réalisée spécifiquement pour les tablettes. Par conséquent les mobiles Android n’avaient pas vu leur OS évoluer depuis la sortie de Gingerbread (2.3), il y a presque un an. Ice Cream Sandwich va donc permettre de fusionner les deux branches (mobile et tablette) en un seul et même système.

En plus des fonctionnalités héritées d’Honeycomb (accélération 2D matérielle, framework 3D Renderscript, etc.), les mobiles en 4.0 vont profiter des nouveautés suivantes (entre autres) :

  • De nouvelles possibilités de communications entre appareils (WiFi Direct, NFC)
  • Des outils améliorés pour la reconnaissance vocale et l’accessibilité
  • Un outil permettant de suivre et analyser la consommation data des applications
  • Des performances globales améliorées, un nouveau “launcher” d’applications
  • Des applications mises à jour : navigateur web, appareil photo, galerie…
  • Une ergonomie globalement améliorée

Et côté framework, de nouvelles API et fonctions sont fournies :

  • Une API “sociale” pour le partage de contenu avec les contacts, et l’interaction avec les réseaux sociaux
  • Une API pour accéder à l’agenda. Les applications pourront par exemple créer des évènements dans le calendrier de l’utilisateur.
  • Un nouveau type de vue (TextureView) permettant de manipuler des flux d’images (vidéos, OpenGL, appareil photo…) de la même façon qu’avec des vues classiques. Cela va notamment être très pratique pour les animations.
  • Une API pour accéder aux services de reconnaissance vocale et au dictionnaire
  • Un nouveau type de layout permettant d’organiser les vues en grille (GridLayout), à la manière des tableaux en HTML.

Pour la liste complète : http://developer.android.com/sdk/android-4.0-highlights.html

Comme pour chaque nouvelle version, la compatibilité avec les anciennes applications est respectée. Cela veut dire que la plupart des applications existantes vont fonctionner sur Ice Cream Sandwich sans que les développeurs n’aient besoin d’intervenir dans leur code. Ils seront tout de même invités à faire évoluer leurs applications ou à en créer de nouvelles pour tirer parti des nouvelles fonctionnalités offertes.

Concernant la mise-à-jour des terminaux actuels, ce nouvel OS étant assez gourmand en RAM et en ressources graphiques, seuls les smartphones haut de gamme pourront être mis à jour. Les Google Nexus S et Samsung Galaxy S II en feront probablement partie. Google a également annoncé la sortie du nouveau smartphone de la marque, le Galaxy Nexus. Ce mobile high-tech conçu par Samsung sera équipé d’Ice Cream Sandwich dès sa sortie.

Categories: Actualités, Mobile Tags: , , ,

Do You Really Get Memory ? – Jevgeni Kabanov

Cette présentation a été faite à Paris lors de la What’s Next 2011 par Jevgeni Kabanov qui est fondateur et directeur technique de ZeroTurnaround.

C’est aussi l’homme qui parle plus vite que son ombre ce qui rendait la présentation assez difficile à suivre :)

Derrière la JVM dans l’architecture même de nos ordinateurs, le problème vient des données et notamment de la mémoire. La gestion de la mémoire par la JVM est bien plus complexe que ce que le développeur voit. C’est pour cette raison que beaucoup de hacks intelligents ne fonctionne pas.

Il présente le cœur (core)  d’un processeur qui se partagerait la mémoire sous forme d’une classe Java. Un core est une boucle infinie qui prend les instructions, les executent et gére les interruptions. Il utilise de même une classe Java pour représenter un processeur i5, les registres et la mémoire. Les fonctions de cette dernière sont synchronisées.

Ceci veut dire qu’avec nos architectures multicoeurs actuelles tout est synchronisé.

Il présente aussi les caches qui sont associés à un coeur, bien plus performant que la mémoire mais aussi bien plus petit.

Comment le cache fonctionne s’il y a plusieurs coeurs ?

Si la récupération des données en cache est basique (le get), il faut se poser la question du set : doit on écrire directement en mémoire ou non ?

Soit le cache attend un ordre direct avant de reporter ses données en mémoire, soit il place les écritures en mémoire dans une liste d’attente. Il y a différents protocoles qui essayent de trouver la meilleur solution pour associer ce choix et la cohérence des caches.

Malgré ça, il n’est pas sur qu’un thread sur un cœur voit la même chose qu’un autre thread sur un autre cœur. De plus les accès en mémoire sont trop lents.

Au niveau du système d’opération, il y a le paging qui permet d’augmenter la mémoire en mettant une partie de celle-ci sur le disque en fonction de son utilisation. Cependant la lecture sur disque étant extrêmement lente et le garbage collector parcourant très régulièrement l’ensemble des données (heap) du programme, il est parfois préférable en terme de performance de désactiver ce paging système même si on doit être à court de mémoire vive.

Il explique le mot clé Volatile qui garantie la synchronisation d’une variable dans plusieurs threads.  En indiquant que la variable est volatile, on oblige la JVM à rafraîchir son contenu à chaque fois qu’elle est utilisée. Il garantit que les caches sont cohérents. Ainsi chaque thread a accès à la valeur la plus récente de la variable.

D’où la complexité de la mise en place de Volatile au niveau JVM.  La JVM génère la synchronisation par des barrières mémoires.

Il parle ensuite la gestion de la mémoire par la JVM (heap) dont le principal objectif est de gérer les objets vivants (accessible de la « racine ») des objets morts (qui ne sont plus référencés par aucun objet vivant). Les principaux problèmes sont la complexité O(heap) et le fait de devoir stopper l’application.

Il présente différents algorithmes ( Mark and Sweep, Mark Compact, Parallel MC, Concurrent MS ).

Avec Java 7 apparait Garbage First qui sépare la heap en régions ().

Il présente enfin l’algorithme de Garbage Collector encore plus novateur de Azul Zing qui est sans pause.

Une présentation clairement très technique :D

Categories: Java EE Tags:

Hibernate Object Grid Mapper – Alpes JUG – 22 Juin

Une présentation à ne manquer sous aucun prétexte !

Emmanuel Bernard vient nous présenter le projet Hibernate OGM.

Emmanuel Bernard est lead développeur sur les project Hibernate Annotation et EntityManager, il est aussi le fondateur des projets Hibernate Search et Validator et membre du groupe d’expert JPA2.

Le monde NoSQL fait du buzz en terme de scalabilité, disponibilité, … Mais comment faire migrer nos applications traditionnelles vers des solutions de type HBase, Cassandra ou Voldemort ?

OGM propose d’utiliser JPA comme API standard pour la persistance quelle soit de type relationnelle ou non !

Hibernate a fait ses preuves en terme de gestion de la persistance pour les bases relationnelles, avec l’engouement actuel pour les solutions NoSQL, le projet OGM fera sans doute beaucoup parler de lui.

Plus d’infos ici sur le site de l’Alpes JUG

Le LyonJUG fête ses deux ans.

Le mardi 19 avril le Lyon JUG a fêté ses deux ans d’existence et a décidé de faire honneur à deux projets open source Lyonnais. Nous avons donc assisté à une présentation d’IzPack par Julien Ponge et une présentation de RESThub par Sébastien Deleuze et Damien Feugas.

IzPack est un installateur d’application écrit en java dont l’approche se résume ainsi : « Package once.Deploy everywhere. ». Le projet a été lancé par Julien Ponge pour apprendre java 1.2. Aujourd’hui le projet est toujours actif et a été utilisé pour l’installation de Glassfish V2, il est utilisé par Springsource, JBoss, Oracle…. IzPack permet de générer un installateur pour toutes les plateformes cibles de votre projet, il suffit qu’en environnement Java soit disponible sur ces plateformes. IzPack est personnalisable au niveau du look and feel (import d’image, choix de couleur, de disposition des différents éléments sur l’écran) et des étapes du processus d’installation. Il fournit une API permettant d’étendre les différents comportements pour s’adapter au mieux à votre besoin. La présentation s’est terminée par un retour d’expérience sur les projets open source : mise à disposition, gestion des propositions des développeurs et des utilisateurs.

RESThub est un projet, initié chez Atos Worldline, qui fournit une stack java préconfiguré.
Ce framework s’appuie sur Jersey, Spring, Hibernate pour la couche de service et un framework web MVC ou HTML 5 /JavaScript pour la couche de présentation. Vous pouvez consultez une présentation de RESThub ici pour avoir plus de détails sur l’architecture. La philosophie est relativement proche du framework Play! : orienté simplicité et productivité. Ainsi RESThub respecte les principes KISS (Keep It Simple and Stupid) et DRY (Don’t Repeat Yourself). On trouvera donc des classes génériques permettant de faire du CRUD (Create, Read, Update, Delete) facilement et des classes de tests préconfiguré pour fonctionner avec une base H2 (base in memory) et un moteur Jetty, utilisé également pour exécuter l’application pendant le développement.
Le fait de réutiliser des frameworks connus de tous les développeurs Java est une bonne approche : la stack proposée est classique et rassurera la plupart d’entre nous sur la montée en charge et la prise en main de l’environnement. RESThub est un framework prometteur dont la version 1.1 sort fin avril 2011.

Smartphone : et l’informatique devint mobile ! Présentation disponible

Objet Direct a sponsorisé la 1ère conférence Mix-IT le 5 avril à Lyon. A cette occasion, Christian Demoustier, Directeur Technique d’Objet Direct Lyon, a animé une conférence sur le thème :
« Smartphone : et l’informatique devint mobile ! »

La présentation est proposée au téléchargement ici.

3 ans Paris JUG : souffler les bougies et siffler en travaillant !

Le Paris JUG fête son 3ème anniversaire et programme lundi prochain 28 février, une soirée sur le thème « siffler en travaillant », autrement dit « montrez-nous que travailler, c’est sympa ! ». Plusieurs thèmes plus ou moins techniques seront abordés en conférences de 15 minutes (quicky) précédées d’un keynote d’ouverture à 18h15 : télétravail, indépendance, « getting things done »,  réflexions sur le métier de développeur, mais aussi « mettre une application sur Android Market avant la fin de la soirée »…

500 personnes sont attendues, à partir de 18h à la Cité Universitaire Internationale.

 Objet Direct, sponsor Platinium de toutes les soirées du Paris JUG, sera bien entendu présente, comme l’an dernier pour les 2 ans : nous donnons RV aux Juggers à l’heure du buffet dans l’Espace Exposants (19h30 à 20h45).

Inscription obligatoire sur le site du Paris JUG : http://www.parisjug.org

LyonJUG : Messaging

Logo LyonJUGLe LyonJUG continue sa programmation mensuelle : nouvelle soirée dédiée au messaging, mardi 18 janvier 2011 19H à l’Epitech.

Arnaud Simon de Red Hat présentera la spécification AMQP axée sur l’interopérabilité, et plus particulièrement son implémentation Apache Qpid à laquelle il contribue.
Logo JDuchess FranceInterview JDuchess.

Jeff Mesnil nous présentera lui HornetQ, implémentation officielle de messaging dans JBoss AS 6 dont il est un des leaders, axée sur les performances et l’ouverture au web avec une API REST.
Logo JDuchess FranceInterview JDuchess.

Inscription et informations pratiques, as usual, sur la page officielle du Lyon JUG.
A mardi… heu… ce soir!

Categories: Actualités, Outillage Tags: , , , ,

Lyon JUG : performances!

Pour les fêtes de fin d’année, offrez un petit bench à votre application préférée :Lyon JUG une  soirée dédiée au Lyon JUG, mardi 21 décembre, animée par Claude Falguière.
C’est désormais une tradition gravée dans le marbre : préparez-vous avec l’interview teasing par les JDuchess.

Inscription et informations pratiques, as usual, sur la page officielle du Lyon JUG.
A mardi!

Categories: Actualités, Outillage Tags: , ,

La fondation Apache quitte le JCP

Le mois dernier, Yannick dans un excellent billet de synthèse se demandait si la guerre de Java aurait lieu.

Une marche de plus vient d’être franchie. La fondation Apache a mis sa menace à exécution et a quitté le JCP, 2 jours après que celui-ci ait adopté les spécifications de Java 7 et 8. Pour mémoire, l’objet du litige (qui ne date pas d’aujourd’hui, cf la lettre ouverte envoyée à Sun en 2007) c’est le TCK (et plus précisément les FOU – field of use) qui permet de certifier une JVM et qui n’est aujourd’hui pas open-souce (Sun ne voulait pas le libérer… et Oracle non plus).

A ce stade nombre de questions se posent :

  • le projet Harmony va-t’il être abandonné ?
  • quelle conséquence cela peut-il avoir sur Android ? (Android s’appuie sur DalvikVM qui reprend nombre de classes issues d’Harmony)
  • comment va réagir Google ? (Google reste désormais parmi les grands le seul « opposant » à Oracle sur le sujet du TCK)
  • Oracle cherche-t-il désormais à rentabiliser Java à tout prix ? (en privilégiant les clients qui payent au détriment de la communauté libre)
  • est-ce que cela va profiter à Microsoft et aux projets libres de la famille Mono ? (les différents contentieux entre Oracle et SAP conduisent déjà ce dernier à se rapprocher de plus en plus de Microsoft)
  • est-ce un bien ou un mal pour Java ? (moins d’acteurs impliqués dans les choix peut peut être accélérer la roadmap)
  • la communauté libre va-t-elle se reporter sur Ruby ?

Prochaine étape peut être : le verdict du procès opposant Google et Oracle à propos de violations de brevets qui seraient faites dans Android.

N’hésitez pas à réagir !

Categories: Actualités, Java EE Tags: , , ,