Archive

Articles taggués ‘Java EE’

Spring eXchange – rencontre européenne pour les experts Spring

spring-by-pivotal

Après SpringOne 2GX qui a eu lieu outre Atlantique en septembre,  l’Europe organise sa sixième édition de la rencontre annuelle « Spring eXchange » à Londres les 6 et 7 novembre. Dans le cadre de la montée en expertise sur les nouvelles technologies chez Viseo: Papa Abdou Niang, Ibrahima Kane et moi aurons l’opportunité de participer à cet événement.

skillsMatter

Cette rencontre organisée par Skills Matter réunit les experts et les passionnés de la communauté Spring et Java pour deux jours d’apprentissage et de partage de compétences sur les best practices et solutions à des problèmes souvent rencontrés par la communauté. Pendant ces deux jours, une série de conférences et discussions sera animée par les experts autour des thèmes suivants :

  • Big Data
  • Spring XD
  • Spring en production (Spring IO)
  • Spring Data
  • Spring Boot
  • AngularJS et Spring
  • Spring Cloud
  • REST
  • Microservices et architecture moderne

Lire la suite…

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: , ,

OBJET DIRECT sponsorise la 1ère conférence Mix-IT le 5 avril à Lyon

Les passionnés de Java et de nouvelles technologies et les agilistes de la région Rhône-Alpes se retrouveront à la Conférence Mix-IT, organisée à Lyon le 5 avril prochain.

Parmi les temps forts de cette journée, Christian Demoustier, Directeur Technique d’Objet Direct Lyon, animera une conférence sur le thème : « Smartphone : et l’informatique devint mobile ! »

Les associations Lyon JUG et Club Agile Rhône-Alpes s’unissent pour proposer, à toutes les personnes et entreprises qui veulent en savoir plus sur l’agilité et/ou les technologies Java/JEE, une journée exceptionnelle qui met en avant l’innovation, les bonnes pratiques et la découverte.

OBJET DIRECT, sera présente parmi les conférenciers et dans l’espace partenaires pour faire gagner, aux visiteurs les plus motivés, leur place à une formation HTML 5 qui se tiendra en 2 soirées les 19 et 24 mai.

Frais d’entrée 20€ – Inscriptions sur le site : http://www.mix-it.fr/

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

Formations en soirée ouvertes aux candidats au recrutement

formez-vous.objetdirect.comDepuis plusieurs années, Objet Direct a mis en place un dispositif original de formations en soirée, pour favoriser la montée en compétences de ses collaborateurs avec des stages extrêmement qualitatifs et sur mesure, conçus au sein de notre centre de formation interne.
Aujourd’hui, nous ouvrons gratuitement ces formations en soirée aux personnes désireuses de candidater auprès d’Objet Direct, avec un premier programme planifié sur Grenoble de novembre 2010 à janvier 2011, autour des technologies Microsoft .NET, Java et HTML5 :

Formation .NET: organisée sur 2 soirées les 18 et 23 novembre 2010, à l’agence de Grenoble
Formation JEE6 & Spring3: organisée sur 2 soirées les 9 et 14 décembre 2010, à l’agence de Grenoble
Formation HTML5: organisée sur 2 soirées les 13 et 18 janvier 2011, à l’agence de Grenoble

plus d’infos sur le site Objet Direct, rubrique Espace Carrières

Java EE, le mal aimé, fait son retour en force

Le dernier Paris JUG avant la pause estivale était consacré entièrement à Java EE 6.

Adam Bien, membre du JCP et Java champion, nous a fait une présentation en deux parties : d’abord les concepts et ensuite des exemples de code en direct.

Les concepts.

L’utilisation des annotations et du principe de « convention over configuration » fait souffler une brise légère sur notre vision de Java EE !

Java EE se veut maintenant rapide, simple, léger, « lean » et permettre des cycles de développement court. Bien sur la comparaison avec Spring arrive très vite : Spring nécessiterait plus de configuration et Java EE 6 serait plus basé sur les conventions.

D’abord j’aimerais insister sur le principe de « convention over configuration » qui a fait le succès de frameworks très productifs tels que Ruby on Rails, Grails ou encore Play. Si l’ensemble reste fortement configurable dans la joie des fichiers XML, ce principe permet d’alléger considérablement le travail de développeur et donc de le rendre plus productif. Cela permet aussi d’avoir un framework plus cohérent.

Adam Bien nous fait un retour sur l’ensemble des concepts phare de l’architecture : ECB, SOA et DDD.

Il nous présente d’abord le pattern Entity Control Boundary qui est un pattern similaire à MVC et son application avec JEE 6. Il en vient ensuite rapidement au concept du Domain Driven Design qu’il met en avant ! Ce qui fera plaisir à certains :) L’idée est d’avoir des entités riches et réellement utiles et d’enlever la couche DAO. Les domaines sont mis en avant au détriment des services. La logique s’oppose donc à l’architecture SOA classique qui s’articule autour du trio Service/DAO/Domain. C’est une approche avec état qui permet alors d’adresser certains problèmes plus simplement et de remettre la complexité du métier au sein de l’application. La synchronisation entre les objets et la base de données se fait grâce à JPA/Hibernate. Elle permet aussi d’avoir moins de couche technique et s’interface très bien avec REST.

Il présente aussi la facilité de mettre en place la vue avec JSF 2 qui permet  d’accéder directement à des Managed Beans ou à des EJB, grâce à un Expression Language. La couche de configuration de la vue en devient presque inexistante.

Il fait bien sur le tour des apports et des nouveautés de Java EE 6 :

  • un JNDI standardisé
  • EJB 3.1 + REST facilité avec l’annotation @Path (pas de XML, pas de configuration de container)
  • des timers similaire au « cron » avec @Schedule
  • des singletons avec @Singleton (en combinant avec @PostConstruct, on peut ainsi créer des singletons simplement et de manière sûre).
  • tâches asynchrones avec @Asynchronous qui renvoient des objets de type Future<?>.
  • EJB qui exposent directement leur métriques en JMX.
  • Selon Adam, la différence de performances entre un Pojo et un EJB est infinitésimale – alors que la possibilité de monitorer l’application en production est « priceless ».
  • CDI qui s’inspire de ce qui a été introduit par Spring

Dans la deuxième partie de cette soirée, Adam Bien fait le tour en direct des principales fonctionnalités de Java EE 6.

En conclusion, pour quelqu’un qui, comme moi, n’a pas une grand expérience sur toute l’architecture SOA et qui fuit les fichiers de configurations, Java EE 6 semble clair, facile à prendre en main et réellement efficace ! La mise en avant de l’approche DDD est aussi de bonne augure la qualité des applications.

Allez pour compléter, vous trouverez d’autres excellents résumés ici :

Categories: Java EE Tags: ,

Paris JUG : soirée « Emmanuel Bernard »

logoparisjug
La soirée du Paris JUG a commencé par une présentation de JDuchess : communauté féminine autour de Java. Il s’agit d’un groupe international qui a été fondé en Hollande.

Ensuite, la soirée « Emmanuel Bernard » s’est déroulée en deux parties : la première sur Hibernate Search et la seconde sur le design des APIs.

Première partie : Hibernate Search : recherche full-text pour des applications utilisant Hibernate.

Pour la recherche, il existe plusieurs modules de recherche full-text (par exemple avec SQL Server). Cependant, il n’existe pas de standard sur ces modules de recherche. Une autre solution pour réaliser de la recherche full-text est d’utiliser une librairie. Hibernate Search est basé sur  « Lucene », il permet de réaliser une recherche full-text avec les caractéristiques suivantes :

  • ordonne les résultats, les documents les plus pertinents seront dans les premiers résultats.
  • tolère les fautes de frappe ou orthographiques
  • on peut donner des priorités aux différents champs

La recherche full-text va s’appuyer sur un analyseur et plusieurs filtres. Parmi les filtres, on peut mettre tout en minuscule (recherche insensible à la case), enlever certains mots (le, la les).

Il y a plusieurs techniques qui permettent de comparer deux mots et donc qui permettent une recherche :

  • Recherche par approximation avec le calcul de distance de Levenshtein (distance entre deux mots). Si entre deux mots, 1 seule lettre change => bonne distance.
  • Recherche N-gram : cette technique permet de tolérer les fautes de saisie de l’utilisateur. Par exemple, au lieu de rechercher Hibernate, on découpe le mot en fragments de 3 lettres : Hib, ibe, ber et on recherche ces fragments … (le nombre de lettres du fragment est configurable).

D’un point de vue technique :

  • L’annotation @Indexed mise sur une entité permet de l’indexer en full-text. L’index sera mis à jour pour toute modification de l’entité.
  • L’annotation @Field crée un champ de recherche dans Lucene

Remarque : La recherche full-text se réalise uniquement sur du texte, des chaînes de caractères, Hibernate Search possède donc ses propres convertisseurs (date…)

Il est possible d’utiliser l’annotation @Fields qui permet de définir plusieurs types de recherche sur le même attribut. Il est possible de pondérer les différents critères. Par exemple, un mot trouvé dans un titre aura une meilleure pertinence que le même mot trouvé dans la description.

  • Recherche phonétique : prendre un mot et réaliser de la réduction phonétique (métaphone ou double métaphone, bien adapté aux langages latins).
  • Recherche de synonymes : on n’indexe pas le mot lui-même mais un mot de référence. Par exemple, pour like, cherish, le mot de référence sera love. On crée alors un sous-ensemble de la langue
  • Recherche par mots de la même famille (loving =>love) : on réduit un mot à sa racine. Le docteur Porter a écrit un algorithme sur ce principe appliqué à la langue anglaise (langage snowball). Ce dernier type de recherche est présent dans Hibernate Search, il s’agit de l’analyseur stem.

Astuce : il peut être judicieux de mettre plusieurs fields sur le même attribut pour pouvoir ajuster la pondération même en production.

Conclusion : Lucene est assez bas niveau, il peut donc être assez complexe à utiliser. Hibernate search est plus facile à mettre en place et permet de se concentrer sur le moteur de recherche.

Deuxième partie : Design d’API

Cette partie nous a exposé les bonnes pratiques pour faire de bonnes API (donc qui seront facilement utilisables par un maximum de personnes).

  • Tout d’abord, faire des APIs prend beaucoup de temps et aboutit à un produit qui ne satisfera jamais entièrement tout le monde.
  • Pour une API, il est préférable d’exposer que quelques méthodes (5 par exemple)
  • Il est bien que l’API couvre 80% des cas (les cas les plus fréquents) et si besoin qu’on puisse l’étendre pour des demandes bien spécifiques.
  • Une API doit être lisible et compréhensible de tous.
  • Une citation prise du snowboard et adaptée à la réalisation d’API : « If you don’t fall, you don’t make progress »
  • Utilisez l’API pendant que vous la développez
  • Pensez au-delà du code, la sémantique est très importante
  • Pour les méthodes, trouver un nom court et explicite

Bon pattern : method chaining pattern. La méthode renvoie l’objet lui-même, on peut donc appeler des méthodes à la chaîne.

Conclusion : pour une API, rendez les choses difficiles pour vous et simples pour les autres. Pour faire de bonnes APIs, il faut essayer et réessayer, penser aux utilisateurs et au futur de l’API.

Merci à Emmanuel Bernard pour cette soirée riche en enseignements. Une bonne présentation illustrée par de nombreux exemples de code et de démonstrations. Pour en savoir plus sur lui : http://blog.emmanuelbernard.com

Pour en savoir plus sur cette soirée, et si vous avez un compte google wave, une wave détaillant la dernière soirée du Paris JUG est accessible ici.

Lyon JUG : soirée JavaEE6

C’est bientôt le troisième mardi du mois.
OK, rien d’extraordinaire : c’est le cas tous les mois depuis que Dieu a créé la Terre en 7 jours (alors qu’Il a mis grosso modo 4,54 milliards d’années pour créer Java, c’est dire le niveau de maturité du truc).
Mais tous les troisièmes mardi du mois, c’est une nouvelle soirée au Lyon JUG, dont Objet Direct est un tout récent nouveau sponsor platinium.

Ce mardi 23 février, soirée JavaEE6, animée par Antonio Goncalves : pas moins qu’un Java Champion qui participe aux JSR des APIs Java EE 6, écrit des livres de référence sur JavaEE, et a accessoirement fondé le Paris JUG, premier JUG en France. Il continue sa tournée, après son passage à l’Alpes JUG.
Certes, ce n’est pas Dieu (Il demandait trop cher pour intervenir), mais on devrait donc pouvoir s’attendre à des informations plutôt pertinentes.
Inscription et détails pratiques : sur la page officielle, as usual.

1ère soirée de l’Alpes JUG

Le Alpes JUG (Java User Group)  consacre sa première soirée au Java EE 6.

Elle se déroulera le lundi 22 Février 2010 à UFR IMAG 60, rue de la Chimie dans l’amphithéatre F018  (Domaine universitaire de Saint-Martin d’Hères et Gières, à côté de Grenoble)

Détails pratiques et inscriptions sur la page officielle.

Categories: Java EE Tags: ,

Les 2 ans du Paris JUG

juggyanniversairePour son 2ème anniversaire, le Paris JUG programme mardi prochain 9 février, une soirée spéciale Open Source, avec en keynote d’entrée la présence exceptionnelle de Sacha Labourey, ancien CTO de JBoss-RedHat.

500 personnes sont attendues, à partir de 19h dans le grand amphi de l’espace Malhesherbes – Sorbonne, dans le 17ème (Sorbonne Paris IV (17ème arrondissement)).

 

Objet Direct, sponsor Platinum de toutes les soirées du Paris JUG, sera bien entendu présente : nous donnons RV aux Juggers à l’heure du buffet dans l’Espace Exposants.

 

Accès libre sur inscription sur le site du Paris JUG .