Posts Tagged ‘Java’

Jazoon 09 : sessions du Mardi 23 Juin

Tuesday, June 23rd, 2009

Ces sessions ont eu lieu durant Jazoon 09, le Mardi 23 Juin 2009. You can read the original english transcript here.

La keynote de James Gosling : 9:50 à 10:45

En tout début de session, une vidéo nous a été projetée, un film d’animation très amusant sur l’histoire de Java, et comment Java a conquis le monde !(n’hésitez pas à nous donner l’url en commentaire si vous l’avez !)
James a d’abord commencé son discours en plantant le décor : il y a désormais plus de JVM installées que d’humains (!) : sur ordinateur, téléphone, cartes intelligentes (transport), dans les télés, etc… (15 millions de JRE téléchargées par jour) et donc il y a aujourd’hui 6 millions de développeurs Java dans le monde ! On peut donc parler de “Learn Once, Work everywhere” tant la connaissance et l’utilisation de Java sont répandues !
Pour illustrer ces chiffres, James a cité des exemples comme l’assurance maladie brésilienne qui utilise Java et des bases de données pour conserver toutes sortes de documents comme des radios, des ordonnances, etc…
D’ailleurs, le plus important dans Java ce n’est pas le langage mais la plate forme : aujourd’hui toutes sortes de langages tournent dessus : Ruby, Scala, JavaScript, etc…
Glassfish profite de cette plateforme et aussi de Java EE6 : juste en sauvegardant une servlet, sans redéployer, on obtient le résultat en rafraichissant la page dans le navigateur (même en rajoutant un EJB dans la servlet) ! La productivité va s’améliorer !
L’IDE de choix est alors Netbeans, qui dans sa version 6.7 s’intègre au projet Kenai, une sorte de sourceforge où l’on peut faire toute sorte d’opération comme dans un gestionnaire de sources (ex : Subversion), aussi 6.7 amène une meilleure compatibilité Maven, je connais des cast codeurs qui vont aimer !
Sortie de nulle part, mais plutôt marrant un exemple de code Java embarqué : le refactoring d’1 vieille Lincoln en véhicule Hybrid avec du code Java pour mesurer et contrôler le véhicule, code déployé à distance par internet (connexion 3G dans la voiture)
James a aussi évoqué les performances, et a mis fin à la rumeur comme quoi Java est moins performant que C++ en fournissant des chiffres plaçant java comme une plateforme très performante.
Pour la téléphonie mobile, de nouvelles specs arrivent (un peu tard quand on voit iphone os et android ?),le Mobile Service Architecture (MSA ou JSR 248) les rassemblant toutes.
Java 7 sera modulaire (comme Java EE6) et permettra l’utilisation de langages dynamiques, en attendant Java SE 6 a des mises à jour qui arrivent avec entre autres une meilleur intégration dans le navigateur web.
java FX est toujours là ! rien de nouveau à son sujet (meilleur collaboration entre développeurs et designers, se déploit sur mobile comme sur desktop, etc..) si ce n’est que la version 1.2 sort sous peu.
Enfin James nous a rappelés les différentes communautés Java existantes : glassfish, netbeans, java.net
Bref une keynote qui nous montre que Java est sacrément présent, voire même inévitable, et pour de longues années encore ! Sun investissant toujours dans le développement de sa plate forme phare !

Java EE 6 11:00 – 11:50 par Roberto Chinnici de Sun

Java EE est souvent reproché d’être trop compliqué… pour répondre à ces critiques, Java EE6 sera plus flexible, plus modulaire, plus puissant et plus facile à utiliser!
Ainsi ont été créés les profiles, qui répondent aux attentes particulières de chaque utilisateur : par exemple il existe le profil Web qui embarque les JSP, JSF, Bean validation des EJB lite, pour déployer dans un war.
Voyons en détail quelles sont les specs sur lesquelles repose Java EE 6 :

Servlet 3.0

Nouvelles annotations @WebServlet, @WebFilter, @WebListener, la possibilité d’enregistrer de nouveaux composants Web juste en les déposant dans le WEB-INF/lib, plus besoin de web.xml (cool !) et la possibilité d’exécuter des requêtes en mode asynchrone (et avec plusieurs requêtes sur 1 thread…)

JAX-RS 1.1 : RestFul webservices

C’est l’API qui permet d’encapsuler toute la couche technique HTTP de Rest : avec des annotations comme @POST ou @GET , on définit les méthodes qui feront les opération de création ou de récupération des objets; d’ailleurs la transformation JSON ou XML vers objets java est prise en charge par JAX-RS !

Bean Validation 1.0 (JSR-303)

Cette API est arrivée un peu tard comme l’a dit Roberto, elle sert à définir des contraintes sur des champs d’un formulaire Web par exemple…
Pour en avoir parlé un peu plus tard avec Emmanuel Bernard, (qui a participé à la spec BeanValidation), il existe un ensemble d’annotations pré définies (@Max, @Min, etc…) et il suffit d’une dizaine de lignes de code pour en rajouter dans son projet.

EJB 3.1

Finies les interfaces ! un fichier source par EJB !
Une nouveauté remarquable : on peut désormais définir des tâches périodique, un peu comme dans Cron, avec l’annotation @Schedule : quand je pense quand dans mon projet actuel on a écrit des MBeans qui sont appelées par des tâches Cron pour raffraîchir le cache, je me dis que que EJB 3.1 a du bon !
EJB 3.1 lite peut tourner dans Java SE (super pour tester sans deployer !) et aussi être embarqué dans un simple war !
Le speaker manque de temps tant pour JPA 2.0 (quand on utilise Hibernate avec les annotations çà doit pas bien changer…) et JNDI (qui proposent de nouveaux modes d’accès )
Du très bon ce Java EE 6 !

“Design Patterns” in Dynamic Languages 12:00 – 12:50 par Neal Ford (nealford.com)

Cette présentation avait pour but de montrer qu’il n’est pas toujours nécessaire de se référer aux patterns du Gang Of Four, surtout dans les nouveaux langages dynamiques comme Groovy ou Ruby, qui sont déjà équipés pour faire face à des problème récurrents.
Quelques exemples (j’ai pas pu tout noter ! le présentateur a cité les patterns iterator, strategy, template, interpreter, decorator, recorder, adapter)
Pour le pattern iterator : est il nécessaire en Ruby de créer 3/4 classes pour implémenter ce pattern ? et non, il suffit d’appeler collection.each{[x| puts x} … plus rapide non ?
Pour interpreter aussi (pour rappel ce design pattern a été créé pour ajouter des fonctionnalités au langage utilisé), rien de plus simple que de créer un nouveau DSL en Groovy en créant de nouveaux comportements à une classe existante, Integer dans l’exemple.
Pour conclure, Neal a cité qu’avec les langages dynamiques, apparaissent de nouveaux design pattern, grâce à leur syntaxe plus riche; profitons des outils fournis par ces nouveaux langages plut que d’essayer de reproduire des situations inadéquates !

Gradle : A build system for Java 14:00 – 14:50, par Hans Dockter

Au tout début de la présentation, Hans rend honneur à Ant et Maven en nous rappelant leurs fonctionnements, défauts et avantages.( un peu comme Eric Lemerdy et Grégory Boissinot dans leur podcast Gradle que je vous conseille d’ailleurs tout particulièrement)
Avec Ant, souvent on copie colle des taches , c’est souvent répétitif… Dans Ant il n’y a pas de listeners pour surveiller ou logger les phases de build…
Avec Gradle, on peut importer des scripts ant et invoquer des tâches Ant, en Groovy. (et même déployer le résultat de son build sur apache Ivy)
Maven est quant à lui un framework qui repose sur les conventions et a introduit la gestion des dépendances; par contre il faut 25 lignes de XML avant de pouvoir écrire le moindre script de construction; aussi Maven n’utilise que des dépendances transitives, ce que Gradle peut éviter en spécifiant ses dépendances.
D’ailleurs Gradle peut réutiliser et importer en groovy les builds maven; et même envoyer le resultat de son build sur un repository maven.
Gradle se veut un langage de builds et non un framework de builds, afin de pouvoir plus souple qu’un framework.
Enfin, Gradle peut s’utiliser sans s’installer sur tout système d’intégration continue grâce à un script bash ou shell qui télécharge sur la machine d’intégration continue les librairies nécessaires.

Next Generation Enterprise Builds: Maven, Mercury, and Tycho (pour les builds OSGi) par Jason van Zyl de Sonatype

Maven 3.0

Sera mieux intégré dans les IDE (eclipse, netbeans, intellij, sera plus rapide, resoudra mieux les dépendances, aura un nouveau système de plugins
Maven 3 sera plus concentré sur les tests d’intégration, il aura un cycle de vie déclaré, qui permettra aux outils l’embarquant de prédire la séquence de build et donc de pouvoir sauter des étapes.
Enfin Maven 3 utilisera Mercury, un nouveau moteur de transport et de gestion, qui pourra d’ailleurs être utilisé avec autre chose de que des POMs (des gems ou les dépendances Eclipse P2)

M2eclipse

M2Eclipse, le plugin maven pour Eclipse va pouvoir choisir les bonnes actions maven à appeler lors d’une sauvegarde, et non pas tout le cycle maven.
Il pourra aussi gérer les projets Flex, et importer dans Eclipse les préférences du projet Maven (modification des préférences du workspace)

Nexus

Seulement 5% des utilisateurs de Maven Central utilisent un repository manager comme Nexus ou Archiva.
On peut voir Nexus comme un gestionnaire de binaires pour l’entreprise, en plus d’un système de cache évolué !
Nexus va pouvoir être utilisé à travers Eclipse, son API pourra aussi être appelée via REST (ce qui facilitera la création de plugins ! )

Hudson

Dans sa prochaine version, Hudson intégrera un nouveau moteur de workflow : drools workflow integration (avec un editeur de workflow), une couche REST pour être interrogé et commandé par des plugins, et aussi pour unifier l’intégration avec m2eclipse, nexus et bien sûr Maven.

Testing Zen 16:00 – 16:20 par Thomas Mueller, Day

Session rapide de 20 minutes, où Thomas, après nous avoir donnés 10 raisons à la question “Pourquoi tester ?”, nous cite 3 moyens de tester…
En faisant du “fuzz testing”, où l’on génère des données pour tester.
Avec Emma, pour faire de la couverture de code.
Et enfin les tests de base de donnée : pour cela, il faut utiliser une base de données Java comme HSQL (bien), Derby (pas bien) ou encore H2 (la meilleure, celle sur laquelle travaille Thomas actuellement d’ailleurs ;-) )
A la question : “Pourquoi ne pas utiliser de mocks au lieu de peupler une base de données ?” il répond “C’est trop long à initialiser… mais en même temps j’en utilise rarement”…

Creating Performance Test Data with benerator, par Volker Bergmann

D’habitude lors de tests de performance, on préfère utiliser des données de production…
Mais parfois, pour des raisons de disponibilité (nouveau système) ou de confidentialité (outsourcing, etc…) on ne peut pas injecter des données de production dans les tests…
Volker a alors développé Benerator, un créateur de jeux de tests, qui peuplera une base, ou un fichier plat, ou LDAP, ou JCR, etc…
A tester avec le plugin benclipse ou le plugin Maven 2.

La journée s’est terminée avec un speech très amusant sur la prédictibilité des technologies par Neal Ford, c’était vraiment sympa, plein de référence à la science fiction et aux succès récents et à ceux qui le sont devenus que plus tard, excellente réflexion et conclusion : “Le meilleur moyen de connaître le futur, c’est de le faire soi même”
Un autre speech de fin sur l’agilité, par Ivar Jacobson, rien de nouveau…

Jazoon 09 : la conférence Java européenne du mois de Juin

Monday, June 22nd, 2009

Du Mardi 23 Juin au Jeudi 24 Juin 2009 se tiendra à Zürich, en Suisse, LA conférence européenne sur Java.

Des speakers aussi connus que James Gosling, le papa de Java, et Dany Coward, l’actuel responsable de la plate forme client de Java (Java ME, Java SE, et Java FX) auront chacun la parole durant la keynote.

Le programme de ces 3 jours s’annonce vaste, pour preuve le planning de Jazoon 09 ; (sessions du Mardi , du Mercredi, du Jeudi)

A Jazoon cette année de nombreux conférenciers aborderont la plate forme mobile Android (et même l’iphone!), GWT, Spring 3.0, Java EE6, Gradle, OSGi, Hibernate, Java FX, Mockito, les frameworks REST, bref, tout ce qui occuppe le devant de la scène Java !

Suivez en direct l’actualité de ce Jazoon 09 entre Mardi 22 et Jeudi 23 Juin 2009 sur ce même blog et sur twitter : anthonydahanne

A bientôt !

Présentation aux dévéloppeurs par Google France d’App Engine Java

Friday, April 10th, 2009

App Engine

Suite à beaucoup de mystère, Didier Girard nous à présenté hier les évolutions réalisé par Google de l’App Engine Java hier chez Google France.

Ayant eu la chance d’être parmi les développeurs sélectionnés, voici les points présentés :

  • Chiffres : 150k développeurs travaillent avec App Engine, 50k app sont déployés : Ebay, BuddyPoke …
  • Présentation des évolutions de la console d’administration :
  1. différentes métriques de consommation,
  2. la possibilité de gérer sa consommation et de payer du dépassement à la demande
  3. présentation du système de Cloud computing pour la gestion de la performance et de la consommation
  4. l’accès à la base de données,
  5. import export des données
  6. La gestion du Cache pour faire des économies
  7. La gestion de CRON : interrogation d’URL (avec un petit + la définition de la Time Zone)
  8. le SDC, Secure Data Connector : pour créer une connexion ssl à votre SI …
  • Présentation du plugin Google pour eclipse
  1. Création de projet simple et prêt à être déployé via App Engine (Sur les bases de GWT)
  2. choix des sdk gwt et App Engine à utiliser dans votre application
  3. seul obligation pour votre application : définir le nom de l’application ( à voir + tard la définition des noms de domaines)
  4. présentation de la gestion de persistance en JDO (ou JPA) via la base Google de type BigTable.

Google nous propose donc un moyen simple de créer des application web en java simple à déployer, dans le cadre d’application Open-Social.

Pour le moment cela semble très prometteur. A vous de faire une demande de compte chez google pour commencer à réaliser vos applications.

A voir les applications de Didier :

Wolfengine et ergosum

Annonces :

  • Guillaume Laforge a réalisé la portabilité de Groove sur App Eng.
  • Un plugin Maven devrait être mis à disposition cette semaine sur google code.

Voila pour les infos glanés lors de la présentation chez Google France.

Nouveau Valtech Lunch : Refonte partielle d’un Mainframe en Java

Monday, March 23rd, 2009

Valtech Lunch, une rencontre conviviale autour d’un déjeuner !
Avec le témoignage du Club Méditerranée
Le 7 Avril 2009 à Paris la Défense

Votre emploi du temps ne vous permet pas toujours d’accorder suffisamment de temps à la veille technologique ;
c’est pourquoi Valtech vous propose une rencontre de 12h15 à 13h45.

Ainsi, sans surcharger votre agenda, vous aurez l’occasion de faire le point sur ce qu’il est envisageable de faire en termes de migration progressive de systèmes d’information de type Mainframe vers des technologies moins onéreuses et plus flexibles.

Cette présentation durera 1h30 et sera accompagnée d’un déjeuner léger (type plateau repas).

Pour chaque inscription (60 € par personne), nous vous proposons d’inviter gratuitement une personne de votre choix.

Inscrivez-vous à la session Valtech Lunch du 7 Avril 2009

Soirée Grails à Valtech jeudi 12 février

Friday, February 6th, 2009

GrailsMon collègue Jérôme Piétri présentera le framework web Grails (basé sur le langage Groovy) jeudi 12 février à 18h30 dans les locaux de Valtech près des Champs Elysées.

Cette soirée cible principalement les consultants Valtech. Néanmoins, nous pouvons accueillir des personnes externes, dans la mesure des places disponibles.

La soirée couvrira les points suivants:

  • la place de Grails dans le monde Java
  • les principes du framework
  • l’architecture
  • le scaffolding
  • quelques plugins
  • les avantages, inconvénients et les concurrents

Si vous souhaitez y participer, envoyer un mail à eric POINT lefevre AT valtech POINT fr.

A bientôt!

JavaCampParis3: venez nous rejoindre samedi 31 janvier

Wednesday, January 21st, 2009
Anthony Dahanne et moi-même organisons un BarCamp orienté sur le langage Java, samedi 31 janvier.
Un BarCamp s’organise de maniere similaire a une réunion Open Space Technology. Les présentations ne sont pas programmées a l’avance: vous arrivez le matin avec vos idées et elles sont réparties dans la journée, selon les salles disponibles. Seuls ceux qui s’intéressent vraiment à votre sujet viendront y assister!
 
Il s’agit de la 3e édition d’un JavaCamp à Paris, mais le 1er qui ait lieu toute une journée. Nous aurons accès aux beaux locaux de Sun Microsystem, avenue d’Iena à Paris.
 
C’est un événement important dont Valtech est sponsor. Sun et Paris JUG sont également partenaires.
 
Rejoignez-nous samedi 31 et faites passer l’information autour de vous!

JEE à Paris JUG, Open Source chez Sun, Réunion publique Agile Alliance

Monday, January 12th, 2009

De nombreuses soirées sont prévues cette semaine à Paris.

Mardi 13 janvier, le Paris JUG propose une soirée JEE6:

  • Antonio Goncalves, un des organisateurs du JUG, présentera les nouvelles prévues pour JEE6
  • Alexis Moussine-Pouchkine présentera GlassFish, le serveur JEE Open Source de Sun, qui sera le premier à respecter la nouvelle norme JEE6
  • Mercredi 14 janvier, soirée Open Source chez Sun Microsystem:

  • les modèles business Open Source
  • Présentation de clubs d’utilisateurs: GUSES (Solaris), JUG (Java), LEMUG.fr (MySQL) et OSSGTP
  • stratégie de Sun autour de l’Open Source
  • Jeudi 15 janvier, réunion publique de l’Agile Alliance:

  • Discussion: qu’attend la communauté des associations ?
  • puis cocktail
  • Ouf! Et ça n’est que pour cette semaine.
    La semaine prochaine, le premier rendez-vous est le 21 janvier pour la réunion mensuelle de ALT.NET Paris qui aura lieu dans les locaux de Valtech.

    Aquarium Sun

    Tuesday, December 23rd, 2008

    The Aquarium Paris s’est déroulé Vendredi 12 Décembre, cette conférence était consacrée aux solutions Open Source de Sun, du middleware au client riche en passant par les ESB.

    Tout d’abord, Sun a présenté sa stratégie commerciale autour de ses solutions Open Source, avec un périmètre élargi depuis le rachat de MySql début 2008.
    Ensuite une dizaine de présentations se sont succédées, dont celle de Romain Linsolas de Valtech sur Hudson l’outil d’intégration continue.

    JEE6
    La présentation JEE6 par Roberto Chinicci (Spec Leader J2EE) est certainement celle qui était la plus attendue.

    Avec JEE6 pas de révolution mais quelques nouveautés :
    RestWS : support des Services Web en mode REST
    EJBLite : déploiement d’un EJB en mode embarqué avec packaging dans un War
    WebBeans : unification du modèle de développement JSF et EJB (standardisation du modèle de développement Seam)
    ValidationBean : API permettant la validation des beans utilisable dans un contexte JPA et/ou JSF (devrait ressembler à l’API Hibernate Validator)
    et la poursuite des simplifications opérées par JEE5 :
    • Allègement de l’API, certaines librairies ne seront plus embarquées par défaut mais seront optionnelles (Entity Beans EJB 2, JAX-PRC…)
    • Simplification de la configuration des applications web : configuration dynamique du fichier web.xml à partir d’annotations Java 5
    • Plus de flexibilité : il sera enfin possible d’utiliser des threads dans JEE6.
    • Les profils : un profil regroupera un sous ensemble de l’API JEE, actuellement un seul profil est prévu (Web Profile). Un serveur d’application pourra ainsi limiter son support uniquement à un profil et non plus à toute la plateforme entière. Cela devrait simplifier l’émergence de nouveaux acteurs  JEE (Spring Application Server par exemple).

    Dans le détail JEE6 devrait être constitué des APIS suivantes :
    EJB 3.1
    ∘ Plus besoin de déclarer les interfaces locales
    @Singleton pour déclarer un EJB Session du type singleton
    @Asynchronous pour déclarer une méthode asynchrone sur un EJB Session
    ∘ Convention de nommage JNDI par défaut : java:global/(app)/(module)/(bean)#interface
    Servlet 3.0
    ∘ Configuration dynamique des Servlets à partir d’annotations Java 5
    ∘ La configuration et l’intégration des frameworks web Open Source sera simplifiée à partir de point d’extension (web-fragment.xml)
    ∘ API asynchrone : standardisation des principes du projet Comet (Reverse Ajax) qui permet du faire du push d’information depuis le serveur vers un client
    JPA 2.0
    JSF 2.0
    ∘ Mécanisme de template ressemblant à Facelet
    ∘ Cycle de vie compatible Ajax (?)
    JAX-RS 1.1
    JAXB 2.2

    La version finale de JEE6 est prévue pour début 2009 et l’implémentation de référence devrait suivre avec GlassFishV3 courant 2009.

    GlassFish V3
    A propos de GlassFish V3, Alexis Moussine Pouchkine au cours de sa présentation a surtout insisté sur la rapidité de démarrage (grâce à OSGI seuls les modules nécessaires sont chargés en mémoire), la légèreté du serveur d’application (26 mégas) et la possibilité d’utiliser GlassFish en mode embarqué (à la mode en ce moment).

    Grizzly Comet

    J’ai également assisté à la présentation de Grizzly Comet par Jean François Arcand. Grizzly (le moteur HTTP de GlassFish) simplifie l’intégration avec l’API Comet (permet de faire du Reverse Ajax). Grizzly est prévu pour traiter des requêtes HTTP en mode asynchrone : le dialogue entre le client et le serveur n’est plus en mode requête/réponse. Le serveur est capable de pousser des informations vers le client. La requête HTTP n’est donc plus attachée à un seul thread, l’envoi de la réponse a lieu plus tard dans un autre thread, l’API Comet se chargeant de gérer le contexte.

    Une application de démonstration du type Twitter a permis de se rendre compte de la simplicité et de l’efficacité de Grizzly Comet, mais ce genre de technologie semble à proscrire lors d’une utilisation derrière des proxys.
    A noter que l’API Comet peut également fonctionner sur Tomcat et bientôt Jetty et que les concepts sont repris dans l’API JSF IceFaces.

    JavaFX
    Java FX était à l’honneur, la solution RIA de Sun. Les deux présentations ont permis à l’auditoire de se faire une idée sur le produit : globalement un concurrent de Flash à partir d’un langage de Script basé sur Java. Une application JavaFX peut se déployer dans un navigateur, en mode standalone ou bien sur un téléphone portable. Visuellement c’était très beau mais je ne pense pas que cette API soit utilisable actuellement pour le développement d’applications de gestion. Wait and See…
    En ce qui concerne l’outillage un plugin JavaFX existe pour NetBeans 6.5. (un plugin eclipse existe également).

    Valtech sponsorise le Paris Java User Group

    Tuesday, April 15th, 2008

    Depuis une semaine, Valtech est officiellement sponsor Platinium de Paris JUG, le club des utilisateurs du langage Java.
    (more…)

    Paris JUG: Soirée sur la Performance des applications Java

    Thursday, March 20th, 2008

    Le Paris Java User Group vient d’annoncer sa prochaine soirée, consacrée aux performances des applications Java.
    (more…)