Archive

Archives pour la catégorie ‘Java EE’

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

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.

Soirée Alpes JUG – Netbeans Plateform

Soirée Alpes JUG – Mardi 19 Avril à 19h

Rappel de dernière minute sur un événement organisé par l’Alpes JUG (Grenoble) dont Objet Direct est partenaire.

Le JUG organise une formation de trois jours sur Netbeans Plateform (comparable à une solution comme Eclipse RCP).

Pour ceux qui ne pourraient suivre cette formation gratuite et certifiante, il y aura une séance de rattrapage ce soir !

La formation ainsi que la conférence auront lieu à

SUPINFO Grenoble – 16 rue Henri Barbusse, 38000 Grenoble
A coté de la Patinoire de Grenoble et de Grand Place

La formation est gratuite et est donnée en anglais par Geertjan Wielenga de chez Oracle.
Il s’agit d’une formation complète avec support de cours et exercices

Source : Alpes JUG

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

Retour sur le Mix-IT

Le Mix-IT est une conférence organisée par le Lyon JUG et le CARA (Club Agile Rhône-Alpes) qui a eu lieu le 5 avril à Lyon. Elle a regroupé 250 personnes pour assister à une vingtaine de conférences autour de Java et de l’agilité.Objet Direct était très présent sur l’évènement avec une participation en tant que principal sponsor, une présentation de la mobilité et une équipe de collaborateurs qui ont assistés aux différentes interventions.

Voici que nous avons retenu de cette journée :

« Smartphone : et l’informatique devint mobile… » est une intervention de Christian Demoustier, directeur technique de l’agence Objet Direct lyonnaise,  qui a permis de bien décrire l’écosystème du Smartphone aujourd’hui et les enjeux sur ce marché d’avenir.

« HTML5, la révolution maintenant » a présenté le futur de HTML, en mettant en lumière les nouveautés de la prochaine version du langage normalisé par le W3C. Les démonstrations ont permis de voir tout l’intérêt de cette nouvelle norme. Les nouvelles balises HTML, ainsi que les extensions des APIs JavaScript et CSS permettront de faire des applications web plus sophistiquées. Elles deviendront sans doute incontournables, y compris sur le développement pour Smartphone.

« Dev@Cloud, quand les informaticiens chassent les nuages »  a permis d’avoir un aperçu de ce qui se cachait  derrière le concept de Cloud Computing. Cela consiste à fournir entre autres du temps de CPU, du stockage et des services à la demande via un réseau informatique, l’approche aujourd’hui étant d’utiliser le web pour mettre ces ressources à disposition. Une fois encore, c’est une techno dont on devrait entendre parler dans les années à venir. La présentation a abordé les plateformes les plus connues (Amazon EC2, Google App Engine, Cloudbees…) et a ainsi donné de bonnes pistes pour démarrer sur le Cloud.

« Comment mettre sa suite de test au régime en 5 minutes par jour ». Une présentation accrocheuse qui a permis de détourer trois stratégies pour faire en sorte que le build de son application – tests compris – prenne moins de 5 minutes. Ainsi on pourra tricher en choisissant les solutions apparemment faciles (achat de serveurs plus puissants par exemple), faire le minimum d’effort en cherchant à utiliser des composants « in-memory » (base de données, serveur SMTP,…), ou encore attaquer le problème de manière plus courageuse en  mockant les parties les plus lentes des tests et en privilégiant les tests unitaires plutôt que les tests d’intégration

« Stewardship : soluble dans mon entreprise ». Une présentation pertinente pour savoir comment donner des responsabilités à un groupe de personnes pour mener à bien un projet.Cette approche est très intéressante et vous pourrez trouver plus d’éléments par ici.

« Du cerveau au code : « Agile »   ou le readme manquant » permettait d’appréhender le fonctionnement de notre réflexion, ses limites et en quoi les méthodes agiles permettent de « s’affranchir » de ses limites. Un petit exemple sympathique pour voir les limites de notre cerveau : http://www.youtube.com/watch?v=Ahg6qcgoay4 qui démontre l’intérêt de l’intégration continue : quand on se préoccupe du développement d’une fonctionnalité nous pouvons avoir du mal à en voir les  impacts sur les autres.

Le bilan de cette journée est extrêmement positif, nous avons pu balayer un ensemble de technologies et de méthodologies pertinentes dont nous entendrons forcément parler dans les prochaines années.L’organisation de la journée a été sans faille et elle fut vraiment très enrichissante pour nous tous.

Petit résumé de ces mémorables 3 ans du Paris JUG !

En ce lundi 28 février, j’étais avec quelques autres membres d’Objet Direct Paris au 3 ans du Paris Java User Group sur le thème « Siffler en travaillant ».

Personnellement cela fait maintenant plus d’un an que je vais assez régulièrement au Paris JUG qui par sa communauté et ses présentations m’ont déjà apporté beaucoup. J’étais donc parti sur le menu complet : les présentations entre 18h et 22h30 ainsi que l’after pour les personnes qui avaient réussi à s’inscrire.
J’arrive donc à la cité universitaire un peu après 17h30. Déjà on voit qu’ils ont fait les choses en grand vu la qualité de l’amphithéâtre avec deux ailes réservées pour les partenaires (Objet Direct y était bien sur représenté).

La soirée se lance vers 18h avec une intro complètement décalée par les organisateurs déguisé en blanche neige et les sept nains. Antonio Goncalves nous explique qu’il en est venu à ce thème de soirée en regardant Blanche Neige et se demande si nous aussi, développeur, nous venions au travail en sifflant et avec le sourire aux lèvres.

1ère présentation : Le télétravail par Nicole Turbé-Suetens
Pour ceux qui ne connaissent pas les conférences TED, Nicole Turbé-Suetens a déjà fait cette très intéressante présentation au TEDxParis 2011 (la vidéo ici : http://www.tedxparis.com/nicole-turbe-suetens-teletravailler-autrement).
Elle part du constat que la région parisienne (entre autre) arrive à saturation niveau transports. Or le travail d’un ingénieur (parmi tant d’autres) se passe principalement derrière un écran ce qui pourrait se faire de beaucoup d’endroits en dehors du lieu de travail. Le stress lié aux déplacements jusqu’au lieu de travail ont pour conséquence de nombreux jours d’absence, une forte consommation de psychotropes et des troubles psychosociologiques au travail.
Pour elle la vraie solution est, un autre mode d’organisation du travail, le télétravail. Elle présente alors les possibilités et surtout l’état des lieux. Mais il y a encore beaucoup de travail tant au niveau droit que du management direct (ou de proximité). Le manque de confiance, le besoin de contrôle et la pression qui s’exerce aussi sur ces manageurs représente souvent le plus gros frein.
Elle parle aussi des possibilités de Co-working comme à la Cantine qui offre les possibilités de rencontrer d’autres personnes, de partager !

2ème présentation : L’indépendance par Mathilde Lemée
http://www.parisjug.org/xwiki/bin/download/Meeting/20110228/freelance.pdf
Mathilde est une personne qu’on a l’habitude de croiser au paris jug avec son homme. Pour la petite histoire, je la connais depuis longtemps vu qu’elle a la même formation que moi (la FIIFO qu’elle n’a pas nommée !!! ). Elle vient ici nous parler de l’indépendance en tant que freelance. L’indépendance est pour Mathilde nécessite juste de faire un choix et offre de nombreuses possibilités : gagner plus bien sur mais aussi négocier plus facilement afin d’améliorer ses conditions de travail (télétravail par exemple ;) ).
Elle insiste sur le fait que rien nous empêche de devenir freelance et qu’il n’est pas obligé d’attendre une grande expérience ou les bonnes conditions. C’est aussi la possibilité de vivre l’inter contrat différemment par exemple pour lancer des projets personnel ou encore partir autour du monde !

3ème présentation : Réinventer l’indépendance, donner du sens au collectif par Oliver Jouan
Membre de Port Parallèle, il est venu présenter cette coopérative de créateurs d’entreprise et tous avantages que cette structure peut représenter pour amorcer son entreprise. Pour lui c’est un excellent moyen de concilier l’indépendance et le collectif.
Bon j’avoue pas très concentré pour cette présentation, je pense que le mieux est d’aller voir le site : http://portparallele.com/

4ème présentation : Office code par Catherine Gall
Catherine Gall nous ramène sur les conditions de travail en entreprise notamment dans l’organisation de nos bureaux. L’ensemble de la présentation s’articule autour d’un décryptage des codes culturels liés à l’organisation suivant quatre éléments et deux extrêmes:
- La distance hiérarchique avec l’orientation autocratique ou consultative
- Le degré d’invidualisme ou de collectivisme
- La motivation basée sur la compétition ou la collaboration
- L’incertitude ou l’ambiguïté
Elle met ces quatres variables dans le contexte de différents pays (France, Anglosaxons, pays nordiques, Allemagne)
Elle parle aussi de la culture organisationnelle d’une entreprise (par exemple la différence entre les bureaux d’Intel et de Google) et son adaptation lors de la création d’une filiale à l’étranger.

5ème présentation : Getting Thing Done par Emmanuel Bernard
Bon vu que je connaissais déjà bien cette méthode je me suis permis de faire des commentaires sur twitter. C’est une méthode d’organisation pour gérer ces tâches journalières (au travail mais aussi en dehors). Le but principal est de ne pas se perdre dans une myriade de tâches qui vont venir parasiter notre concentration en mettant en place un « workflow ». C’est justement ce que je regrette dans cette méthode : la lourdeur du processus ne conviendra pas à la majorité des développeurs. Je pense que cette métode s’adresse plus à des managers. Il faut aussi trouver les bons outils numériques pour pouvoir la mettre en place.
Au final je conseille d’aller voir la méthode Zen To Done qui reprend GTD qui l’allège tout en gardant les idées fortes. http://zenhabits.net/zen-to-done-ztd-the-ultimate-simple-productivity-system/

6ème présentation : Réflexion sur le métier de développeur par Didier Girard
http://www.parisjug.org/xwiki/bin/download/Meeting/20110228/developpeurs.pdf
Ah enfin le show de Didier Girard arrive enfin. Comme à son habitude, sa présentation est entrainante et vivante ! Il nous pose la question de notre carrière et de notre avenir en tant que développeur. Pour lui, un développeur est en béta permanente. Pour progresser, il doit allier technicité, carrière et entrepreneuriat. Il doit aussi gérer son employabilité par rapport à une techno : ne pas se lancer trop tôt ni attendre la fin de la vague.
Il insiste qu’il n’y a aucune connaissance valable sans réelle pratique. Pour lui, un manager qui ne code pas, c’est l’opposé d’un chef d’un grand restaurant, c’est un manager chez MacDo :)
Il met aussi en parallèle 4 niveaux pour un développeur Junior, Confirmé, Sénior, Cadre avec respectivement 4 niveaux de compétence Candide, Autonome, Référent, Solide (sa réputation le précède).
Enfin il reprend un de ces slides favoris où il montre qu’actuellement un développeur peut communiquer directement avec le client en éliminant les intermédiaires (sysadmin, commercial, marketing et même manager)

7ème présentation : Devops par Patrick Debois
Cette 7ème présentation en anglais va un peu à l’opposé de celle de Didier Gérard en remettant en place le contexte du développeur dans l’entreprise et notamment leur relation avec les opérationnels.
Quelque soit le super framework, le super langage, le cloud, etc, il arrive souvent que ca ne marche pas. Les premiers en ligne sont alors les opérationnels (« the IT guys »). Il tient à remettre en question la mentalité de « rock star » de certains développeurs. Le développement n’a aucune valeur tant qu’il n’est pas en production. Il faut travailler en collaboration avec l’ensemble des équipes, faciliter le déploiement, fournir des métriques mais surtout utiliser les connaissances de tout le monde.
Mention spéciale sur la mise en forme de la présentation remplie d’humour et très bien choisie (la réalisation d’un projet informatique était comparé à un barbecue).

8ème présentation : Mettre une application sur Android Market avant la fin de la soirée par Stéphane Jacquemain
Deux jeunes viennent présenter leur belle histoire sur les téléphones Android. Un soir ils ont décidé de tester le développement Android et en profiter pour sortir leur première application Android. Résultat 3000 téléchargements ! Ils ont alors continué en développant d’autres petites applications (Tazer, corne de brume pour le mondial, briquet ..) . J’admire d’ailleurs cette pratique d’apprendre les fonctionnalités par la pratique et surtout en développant une vrai application à chaque fois !
Le nombre de téléchargement grandissant (des millions au total sur l’ensemble des applications) ils ont décidé d’y mettre de la pub et la encore le succès n’a pas manqué !
Bon juste un petit bémol, j’ai eu la chance de discuter avec eux et certaines de leurs applications leur ont pris beaucoup de temps de développement (oui un briquet en OpenGL ca ne se fait pas en une soirée :D )

9ème présentation : Du bancaire au Nabaztag par Julien Cheype
Julien Cheype, ancien développeur dans le domaine financier, a changé complètement de sujet pour remettre à jour l’architecture du Nabaztag, le lapin communiquant. Il explique son approche destinée à simplifier l’architecture logiciel au cas par cas et par itération tout en répondant aux besoins très spécifiques du projet !
Au final je trouve qu’il empile beaucoup de framework mais je pense que c’est inévitable
actuellement !

Ensuite pour ceux qui avaient pu réserver une place, la soirée c’est terminé par un tour de Paris dans un bus dansant, du champagne, une photo devant la tour Eiffel et le classique diner au Vavin.
Les irréductibles ont même passés la nuit au Falstaff (un membre émérite d’Objet Direct aurait même oublié de rentrer chez lui ;) )

Voila pour ce retour accéléré des trois ans du Paris JUG !
Si vous voulez plus d’info cherchez le tag #parisjug2011 sur twitter !

Categories: Java EE Tags:

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

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

Paris JUG : soirée Moteur de règles

Le 11 novembre 2010, le Paris JUG mettait en avant les moteurs de règles.

Au programme quatre présentations sur un sujet qui ne me parlait pas !

La première présentation nommée « Business Rules Management System », présentée par Emmanuel Bonnet de Genigraph, me permet d’ailleurs de rentrer dans le sujet et comprendre l’intérêt .
Les moteurs de règles ou Business Rules Management System permettent d’écrire, d’exécuter et de gérer (cycle de vie, version …) un ensemble de règles métiers.
Une règle métier ressemble à cela : SI [condition] (ET|OU [autres condtions]) alors [faire telle action]. Par exemple : Si le conducteur n’a pas eu d’accident depuis 3 ans alors appliquer 15% de réduction.

Et la vous me lisez en vous demandant si c’est pas un trop une soirée sur des IF THEN ELSE .. je vous comprends moi aussi j’ai failli me poser la question.

En fait le problème n’est pas dans l’élément unique mais dans l’assemblage d’un très très grand nombre de ces règles ! Il y a un moteur d’inférence pour exécuter les règles métiers. Le BRMS permet d’externaliser, d’expliciter et de gérer ces règles.
Par exemple j’ai une application que je veux concevoir dont une partie que je veux externaliser ou déléguer à des experts du domaine ou pouvoir modifier régulièrement. Par exemple un métier avec de nombreuses offres commerciales régulières (par exemple fournisseur de services mobiles).
On peut alors utiliser un BRMS avec la logique technique de l’application qui englobe une logique métier que l’on veut extraire. L’intérêt est de pouvoir modifier les règles métiers sans refaire un cycle de livraison du socle technique.

Expliciter l’application permet de rendre le code :

  • Compréhensible : métier visible et lisible (langage usuel + grammaire alors un traitement qui s’applique sur un concept)
  • Modifiable sans avoir besoin à des informaticiens
  • Traçable : on peut relire une séquence d’une décision (les conditions menant à une action)

On peut donc récupérer au mieux le savoir du client et l’impliquer dans le projet.

Un moteur de règle exécute les règles de fait, les optimiser et garantit la cohérence. Il est fait pour optimiser beaucoup de faits et beaucoup de règles (Voir algorithme de RETE). Il y a aussi la présence d’outil de monitoring de règles, d’un workflow pour les règles et ainsi mettre en place une logique de décisions.
Les règles peuvent être insérées suivant différents formats : texte, tableur type excel (2 parties : condition et action) ou directement Eclipse.

Les deux plus gros acteurs sont JRules et Drools.

La 2ème intervention de Laurent Magnin – In Fine présente un ensemble de cas concrets et met en avant la formalisation de l’expertise, le pilotage et les possibilité de prises de décisions. Il commence aussi à parler de système expert.

Pour la 3ème présentation, l’intervenant, Daniel Selman, nous vient directement d’IBM et nous présente donc l’outil ILOG JRules BRMS.
Il insiste sur le fait quand un projet Les besoins donc les spécifications changent. Il faut s’y attendre et donc désigner pour !
Un BRMS comme ILOG JRules permet justement cette gestion du changement : qui a demandé un changement ? qu’est ce qui a changé ? Qui a fait le changement ? qu’est ce qui valide le changement ?
ILOG permet aussi d’éxecuter différentes configurations de règles métier pour permettre, par exemple, de gérer en parallèle un serveur de production et de tests.
L’intervenant nous a fait une démo en direct du produit, par exemple du client web pour les experts métiers afin d’éditer les règles métiers.

La 4ème et dernière présentation par Geoffrey de Smet a été pour moi la plus intéressante car elle a mis en valeur l’intérêt des systèmes experts. Oui car l’intérêt des systèmes experts est remonté à ma mémoire (ahh les études ça commence à dater) résoudre ces problèmes si complexes qu’ils sont parfois classés dans le domaine de l’intelligence artificielle.
L’intervenant expose 3 problèmes de planning NP Complexe : un petit problème de rangement de colis dans une voiture dont la place est contrainte, un planning de travail dans un hôpital et la gestion des malades dans les lits d’hôpitaux. C’est sur ce dernier exemple qu’il insiste en montrant qu’à l’échelle d’un grand hôpital, l’algorithme qui donne la réponse parfaite n’existe pas ! Le nombre de combinaison est tout simplement infinie. La solution est donc de partir sur un algorithme déterministe (temps fixe, facile à implémenter) puis d’utiliser des méta-heuristique en « bougeant les éléments » petit à petit (plus on a du temps, meilleure est la solution). Il suffit de gérer les optimum locaux. C’est ce que fait Drools Planner !

Voila pour le compte rendu de la soirée.

Les présentations sont sur le bas de la page du Paris JUG.

Categories: Java EE Tags: ,