Monthly Archives: juin 2007

Monthly Archives: juin 2007

Eclipse 3.3 – Nom de code Europa

Eclipse 3.3 – Nom de code Europa

Même si les plus avertis sont au courant, un rappel ne fait jamais de mal, c’est donc demain, le 29 juin, que sort Eclipse 3.3 (Europa). J’ai un peu l’impression que la version 3.3 passe un peu inaperçu, je fais donc un peu de lobbying pour un produit qui le mérite!

De même que Callisto (Eclipse 3.2) l’année dernière, Europa devrait proposer la première version stable d’Eclipse 3.3 + un ensemble de projets dont les sorties sont synchronisées (21 au total: Birt, Tptp, Wtp, Database Explorer, Mylin, …)

A noter que le Red Hat Developer Studio basé sur Eclipse 3.2 , qui est en fait une intégration Open Source de feu le très bon Exadel (Distribution Commerciale Eclipse principalement centrée sur le Web et spécialement les technos JSF), est maintenant disponible en tant qu’ensemble de plugins. JBoss devient donc de plus en plus un membre incontournable dans le monde J2EE et plus particulièrement dans le monde JSF. Cf: Seam, qui n’est autre qu’une intégration du meilleur des technos Jee 5 ( Je ne suis pas sûr qu’on puisse dire que les JSF font parti du meilleur de Jee 5 :D ).

Ca risque d’être un peu compliqué de réussir à télécharger Europa demain sur le site principal d’Eclipse… Vous être prévenu!

Liens:

Cette version est d’autant plus importante qu’elle est la première version qui rassemble autant de projet s stables et de nouvelles fonctionnalités.

A noter:

Une plus grande maturité de nombreux projets:

  • WTP (Web Tools)
  • Birt
  • Database explorer

De nouveaux projets:

  • Dali – Support de JPA
  • Mylin – Intégration des outils de suivi de tâches et de bugtracking : Jira, BugZilla, …

Intégration toujours plus grande, via SWT:

  • Support de Vista
  • Meilleur Intégration sur Mac
  • Intégration des ressources natives dans les Jar SWT

Utilisation automatique du style XP, plus besoin d’utiliser de Manifest.

Atomikos – Le gestionnaire de transaction JTA qu’il vous faut!

Atomikos – Le gestionnaire de transaction JTA qu’il vous faut!

En Java, il est possible de développer des applications faisant appel à des standards J2EE … ou non, d’utiliser l’ensemble des ressources mise à disposition par des serveurs d’applications J2EE… ou non, d’exploiter les technologies EJB … ou non. Cependant, Sun a toujours poussé à utiliser les serveurs d’applications J2EE pour déployer les applications d’entreprises pour en exploiter toutes les technologies proposées par SUN.

Bref, on a le choix de développer des applications qui exploitent les technos J2EE un peu comme on l’entend, mais si on les déploie pas dans un serveur d’applications, on ne pourra pas tirer partie de toutes les ressources offertes par ces derniers. Cela pour procurer un certain nombre d’avantages (Test hors conteneur possibles et simples à mettre en oeuvre), mais on aura plus de mal à assembler toutes les pièces du puzzle.

Par exemple, si vous ne voulez pas développer d’EJB, vous pouvez toujours utiliser des services Pojo Spring. De même si vous ne voulez pas gérer la persistence avec les EJB, vous pouvez toujours en la gérer avec Hibernate ou bien JPA.

De même qu’on peut exploiter des ressources J2EE lorsqu’on déploie une application dans un serveur J2EE, on peut le faire également hors conteneur, mais ceci devient très vite compliqué. Ces possibilités qui n’étaient pas envisageables il y a encore peu de temps, sont encore difficiles à mettre en oeuvre à cause du manque d’exemples et de documentations.

Même s’il est simple d’utiliser des technos telles que des Pools de Threads et de Connections, des MQ ou des DataSources, de gérer des transactions, il est en revanche plus difficile par exemple de gérer des applications clusterisées ou bien de mettre en oeuvres des transactions gérant plusieurs ressources sans serveurs d’applications. Les gestionnaires de transactions JTA permettre de répondre besoin de gérer des transactions gérant plusieurs ressources. Cependant, on les trouve en général uniquement dans des serveurs d’applications, donc même si on construit une applications autour de technos non dépendantes des serveurs d’applications, il faut quand même les déployer dans des serveurs d’applications J2EE, si on veut on veut profiter de transactions 2PC (Two Phase Commit). Nous voila revenu au point de départ: Comment se passer complètement d’un serveur d’applications pour gérer des transactions 2PC?

Les gestionnaires de transactions JTA fournissant une implémentation indépendante sont les suivants:

  • Bitronix
  • Atomikos
  • JOTM
  • JBoss Transactions
  • Jencks (Via les librairies de Géronimo)
  • Le Gestionnaire de trnasaction de Géronimo

Cependant, après vérification :

  • JOTM semblerait à l’abandon, et
  • Jencks, bien qu’intéressant, semble difficile à mettre en oeuvre (De ma propre expérience, peu de matériel et d’explications sont fournies au final pour supporter différentes ressources), ActiveMQ est cependant bien supporté. Personnellement, je n’ai as réussi à mettre en oeuvre des transactions 2PC avec Oracle et ActiveMQ.
  • JBoss Transaction et le Gestionnaire de trnasaction de Géronimo

Pour ma part, je n’ai pas testé Bitronix, et je ne peux donc pas donner d’avis, mais il semblerait qu’Atomikos soit une très bonne solution pour les raisons suivantes:

  • Il supporte un grand nombre de ressources XA (JMS, JDBC, JCA, JMX)
    • Jms: ActiveMQ, OracleAQ, SonicMQ, …
    • JDBC: Tout driver et Bases de donnée XA « compliant »: Oracle par exemple, ainsi qu’un certain nombre de driver ou Base de données pas complétement « Compliant » (MySQL par exemple).
  • Le projet est mature (6 ans d’existance)
  • Le projet est Open-Source, mais propose un support professionnel
  • Il existe un support communautaire plus développé via un forum de support mis en place par la société qui le développe.
  • Une document très fournie sur JTA et les API atomikos
  • Atomikos peut être mis en oeuvre facilement via Spring.
  • Atomikos propose des consommateurs de messages bien plus intéressants que ceux proposés par défaut dans spring. En effet, la classe ‘DefaultMesssageListenerContainer’ poll les ressources JMS (Génération très lourde de traffic – Connections, session, consumer transaction – pour simuler la réception de message. C’est un peu comme si on disait que du pop par intermittance de 10 secondes était du Push Mail pour imager), alors que la classe QueueServerSessionPool attend que le serveur push les messages JMS, ce qui est le pattern de fonctionnement par défaut de JMS pour écouter l’arrivée de messages asynchrones)

Grâce à Atomikos et Spring, il devient possible de déployer simplement une application J2EE hors conteneur tout en gérant des ressources XA telles qu’une base Oracle via un gestionnaire ORM par exemple ou bien un broker JMS tout en gérant ces ressources via des transactions 2PC.

On pourrait facilement imaginer une application Web déployer dans un conteneur Web (Tomcat par exemple) qui contiendrait les technos suivantes:

  • Spring 2 pour l’injection de Dépendence et la glue techniques de l’application
  • Atomikos pour gérer les transaction 2PC (JTA/XA)
  • JPA utilisant des ressource JDBC XA « Compliant » (Oracle, SQLServer, Informix, FirstSQL Enterprise) ou non mais supportés (MySQL / HyperSonic)
  • Un Broker JMS XA « Compliant » (SonicMQ, MQSeries, ActiveMQ, Oracle AQ)
  • Un FrameWork Web quelconque: Struts 1.x/2.x, …
  • D’autres Technos fournies par Spring par exemple: WebService via XFire…

Voici de quoi se mettre un peu de lecture sous la dent:

Le site du projet:

Le forum de support du projet:

Un article sur le site OnJava proposant une introduction sur JTA/XA et Spring:

L’IPhone… Un succès annoncé!

L’IPhone… Un succès annoncé!

Bien qu’on en entende parler un peu partout, et qu’on puisse trouver des infos ou bien des vidéos à tire larigot à propos « de vous savez quoi », je pense que visionner cette vidéo ne pourra pas faire de mal tant elle ramène les autres téléphones portables dans la préhistoire!

iphone_hero_20070621.jpg

http://www.apple.com/iphone/usingiphone/guidedtour.html

Je vous le dis le oup est entré dans la bergerie!

2 liens indispensables si vous voulez en savoir plus:

Sachez dans la foulée qu’un IPhone 3G pour l’Europe serait prévu. De plus, un IPhone 2G serait prévu pour début 2008, il proposerait entre autre du Wifi N, une puce GPS, et un meilleur objectif! Pas mal l’air de rien!

 

 

Quand Google t’attrape…

Quand Google t’attrape…

Pour la nième fois, je me suis décidé à installer un distrib linux, après avoir à peu près tout testé depuis 99 en matière de linux, et n’y être jamais resté plus de 3 mois d’affilé, j’ai enfin trouvé chaussure à mon pied ou plutôt entièrement compatible avec mon ordinateur portable… Depuis toujours, j’ai été enquiquiné par des problème récurrents liés à linux: WinModem, Imprimantes Hp, Raie verte USB de Wanadoo, NTFS en lecture seule, distributions instables, récompilation de noyau, pas de multimédia… Bref cette époque est révolue! Vous pouvez installer linux en toute confiance, si vous n’avez pas le dernier matos chelou. Pour ma part, j’ai installé la dernière distrib Ubuntu Feisty 7.04, et tout est reconnu impeccablement, même pas eu besoin d’ouvrir une seule fois la console ;)

Toutefois, il peut rester un truc embêtant! La messagerie, et ses 4000 messages correspondant à 4 ans d’historique de mail. Sincèrement, je n’ai pas du tout envie de perdre tout ça, ou bien d’ouvrir tous les jours Windows pour utiliser Outlook,et visionné mes mails. Je suis donc parti à la recherche de solutions.

1ère solution: On pop également sous linux, mais on ne supprime pas les messages du serveur. Inconvéninant: les mails s’accumulent sur le serveur, et on arrive rapidement à saturation. Donc, il faut quand même retourner sous Windows de temps en temps pour poper les messages sur Outlook, histoire de ne garder qu’une boîte à lettre…

2ème solution: On les pop définitivement, mais à priori , on éparpillent les mails sur les différents systèmes installés, on est donc pas vraiment avancé.

3ème solution: Passer sous un Webmail Web2.0 à la GMail ou bien un truc du genre. Ayant déjà un compte Live Mail et un compte Gmail, je connais un peu les possibilités des deux. Même si Live Mail est très convivial, il est très loin de la puissanc de GMail. Gmail permet assez facilement d’importer des contacts à partir d’Outlook et de fetcher des comptes pop. Ainsi, il est possible d’unifier toutes vos messageries popables. Mais il reste une problématique, importer les mails existant, et là le problème se corse,… Il n’existe pas de solution reconnue comme étant efficace. La seule solution existante et connue, mais qui n’est pas acceptable pour moi est de transférer en masse ses mails grasse à un logiciel tiers.

Heureusement, il existe en fait une solution efficace à 100% à condition d’avoir le matériel de base: un compte tiers qui fait pop et imap + un logiciel très pratique qui s’appelle ReadPST. Ce petit logiciel permet d’exporter ses boîtes à lettres Oulook vers un compte IMap en respectant les dossiers, les dates de mails et les expéditeurs.

La suite devient clair, il suffit ensuite de fetcher tous les mails exportés avec le fetcher de mail de Gmail. Le tout est joué ou presque… Oui, il y a un petit bemol, en effet le fetcher pop Gmail, fetche les mails par 200 toutes les heures. Il faut donc être un peu patient, mais quel bonheur quand on a ses 3 ou 4 ans de mails exportés dans Gmail!

Je pense que Google a réussi son pari! J’ai craqué, tous mes mails sont chez eux, la gestion de mes favoris aussi, mes flux RSS, mes notes, mes documents Word et Excel, … Bref j’ai été Google-isé! IGoogle pour clore le tou, permet de mettre en page toutes vos Infos! Perso, je dis bravo!

Maintenant, je peux faire mumuse avec mes systèmes sans me prendre la tête!

Bon ok, ça ne permet pas de tout exploser sur son PC, mais d’enléver une épine du pied quand on souhaite installer un nouveau système ou bien quand on doit accéder à ses infos sur un autre PC (au bureau, à la maison, en vacances, …).