Friday, September 01, 2006

Redeployer une application JSP/Servlet Tomcat

Les jars des wars dans Tomcat sont par défaut verrouillés

une fois le chargement de l’application effectuée. Pour éviter tout
verrouillage il est possible dans le fichier XML de définition de contexte de
paramètrer les attributs antiJARLocking et antiResourceLocking pour éviter tout
problème lors du redéploiement d’une nouvelle version.

<Context

antiJARLocking="true" antiResourceLocking="true">

</Context>



Tuesday, August 29, 2006

Choisir la bonne technologie


Google est définitivement un bon outil pour savoir si une technologie devient tendance et commence à devenir un standard.
Il y a bien sur la recherche par mot clé qui remonte le nombre d'élément trouvé et plus le nombre d'articles trouvés est important, plus cette technologie se répand, mais il y a surtout Google Trends qui permet de comparer ce que les gens recherchent par google.
Une comparaison entre spring framework, ejb et hibernate montre par exemple la diminution d'interet pour les architectecture EJB au profit des architectures POJO à base d'Hibernate
http://www.google.com/trends?q=hibernate%2C+spring+framework%2C+ejb&amp;amp;amp;amp;amp;ctab=0&geo=all&date=all


Sur le graphique, la courbe jaune représente les EJB en perte de vitesse, Hibernate est en bleu.

Monday, August 28, 2006

Comparer


J'ai découvert un site très interessant qui permet de comparer le traffic de 2 sites internet. Je ne sais pas comment ce site Alexa prend ses mesures mais certaines comparaisons font peur. Comme par exemple la comparaison du site airfrance.com et celui de britishairways.com.
A l'heure du commerce éléectronique, certaines sociétés doivent encore faire des efforts !

Technorati Profile

Technorati Profile

Utilisation de Swicki

Depuis quelques temps, je travaille sur les tags. Tous ces nouveaux nuages de tags qui apparaissent à droite à gauche dans différents sites sont interessants lorsqu'ils sont modifiés automatiquement par les utilisateurs lors de leur recherche par exemple. Je cherche à créer et à enrichir automatiquement le nuage de tag de mon wiki (j'utilise xwiki un wiki 100% java open source développé par la communauté ObjectWeb).
Ce nuage permettra à l'utilisateur d'aller rapidement à l'information désirée sans passer par un menu qui lui est remis à jour que périodiquement par un contributeur. D'autre part cette forme de recherche est plus intéressante qu'un classique glossaire où l'information est difficile à trouver (il faut penser en effet penser au même index que celui qui l'a créé et parfois connaître la définition de ce que l'on recherche). Le nuage de tags serait d'autant plus interessant si il était possible de passer de nuage en nuage pour affiner progressivement la recherche et découvrir ainsi le bon article. Par exemple, un utilisateur cherchant à mettre en place la sécurité sur son site internet ne connait pas forcément l'existence du mot clé certificat. Un clic sur un tag Java puis sur un tag Securité devrait mener à un nuage comportant le tag certificat.
J'ai pour l'instant intégré la solution swicki dans ce blog qui permet d'intégrer une animation flash. Cette solution interessante n'intègre pas par contre la notion de plusieurs nuages mais il propose des nuages multimédia.

Il fournit après enregistrement un script javascript à integrer dans son site et un alias permettant d'acceder directement à sa page de recherche personnalisée http://monsieur-haricot-swicki.eurekster.com/
Un lien est également donné http://swickihome.eurekster.com/share.htm?gid=95c5dd09-ecef-47d9-bbcd-bd3fc472b384
pour échanger son nuage avec ses partenaires.

Wednesday, July 05, 2006

Proxy HTTP pour IE

Microsoft a délivré par l'intermédiaire d'un de ses ingénieurs un petit bijou de proxy HTTP : Fiddler HTTP Debugging Tool. http://www.fiddlertool.com/Fiddler/essentials.asp. Il permet de capturer le traffic HTTP et de modifier les packets échangés entre le navigateur et le serveur.
Véritable outil de pirate, il permet de tester quelques attaques Web comme les injections SQL.

Tuesday, July 04, 2006

Analyse des ports sous Windows

A l'utilisation de CurPorts (http://www.nirsoft.net/utils/cports.html) Il faut définintivement arrêter l'utilisation de l'utilitaire de Windows netstat. Il permet d'identifier rapidement le process utilisant le port, le port de destination et surtout de détruire la socket ce qui est très pratique dans le cadre de tests de robustesse. Je l'utilise dans le cadre de mes tests JMS avec la solution Apache ActiveMQ.

Monday, July 03, 2006

Pile d'erreurs en Java

Avec l'arrivée du JDK 1.5 et de ses nombreux outils d'aide au debuggage, j'ai abondonné l'envoi de signaux aux process (http://java.sun.com/developer/technicalArticles/Programming/Stacktrace).
L'outil JSTACK permet d'obtenir immediatement les informations http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstack.html. avec pour paramètre l'id du process Java. Celui-ci peut être obtenu par l'outil JPS.
JSTACK ne fonctionne pas sous Windows et Linux.

Friday, June 30, 2006

JavaOne 2006 : Carnet de voyage

Avec du retard et avec l'ouverture de ce blog, je mets comme premier billet mon carnet de voyage du salon JavaOne 2006.

JavaOne 2004 était marqué par Java 5, JavaOne 2005, par l’AJAX, JavaOne 2006 ne semble pas avoir eu une dominante particulière… Mais avec plus de 15000 personnes présentes, JavaOne montre que le langage Java est maintenant omniprésent et dans tous les secteurs de développement : banque, télécom, services…

Beaucoup de nouveautés, avec pour discours de fond pour l’ensemble des éditeurs, l’Open Source. Jonathan Schwartz, le nouveau CEO de SUN, a annoncé la mise en open source du cœur de Java (JVM). Cette annonce fait suite à la mise à disposition du code source de beaucoup de logiciels de l’éditeur avec entre autre :

- Java System Portal Server 7, (la version 6 est utilisée pour intralignes v2)

- Java Studio Creator

- Le moteur BPEL, de SeeBeyond, racheté par Sun dernièrement,

- Le serveur d’application GlassFish, implémentation de référence pour JEE 5.0

J’aborderai dans ce carnet de voyage les points principaux suivants :

- JEE 5,

- AJAX, Web2.0,

- le client Riche

- SOA

JEE 5

Beaucoup de sessions intéressantes détaillent le contenu de cette nouvelle version de JEE 5 qui comprendra :

- EJB 3.0 : cette version va simplifier rééllement le développement d’applications d’entreprise avec gestion de la persistance, des transactions, de l’asynchrone sur de simples classes Java. L’utilisation d’Hibernate nous permet une simplification de la persistance mais maintient une complexité avec les fichiers de mapping XML, alors que les EJB 3.0 avec les annotations dans le code simplifient encore l’écriture.

- L’intégration des JSF 1.2. Cette intégration d’un framework Web à l’intérieur de la spécification JEE devrait faire de plus en plus d’ombre aux multiples autres frameworks web Open source et notamment à Struts. Le passage technologique à JSF pour remplacer notre existant Struts + Welcom (librairie de tags JSP) pourra se faire à l’occasion du passage à JEE 1.5

- De nombreuses spécifications WebServices, analysées et testées à l’occasion du projet KAOJAII (le numéro entre parenthèses fait référence à la spécification) :

o Implementing Enterprise Web Services (JSR 109) : facilite le déploiement avec un fichier de déploiement XML normalisé.

o Java API for XML-Based Web Services (JAX-WS) 2.0 (JSR 224) : beaucoup d’apport avec cette librairie majeure WebServices permettant de simplifier la mise en oeuvre. Elle statut sur les annotations de code permettant de transformer une simple classe en service Web

o Java API for XML-Based RPC (JAX-RPC) 1.1 (JSR 101) : nouvelle version mineure du framework qui devrait être remplacé progressivement par JAX-WS

o Java Architecture for XML Binding (JAXB) 2.0 (JSR 222) : facilite la conversion object vers XML

o SOAP with Attachments API for Java (SAAJ) (JSR 67)

o Streaming API for XML (JSR 173) : lecture des flux XML accélérée

o Web Service Metadata for the Java Platform (JSR 181)

JSF

Les JSF continuent malgré leur intégration dans JEE 5 à être contreversés. Seam, le framework de Jboss, réalisé par Gavin King, l’auteur d’Hibernate (http://www.jboss.com/products/seam) propose une intégration différente de la specification entre JSF et EJB. Une JSR (Java Specification Request), du nom de Web Beans, propose une normalisation de cette solution.

AJAX – Web 2.0

L’AJAX continue à s’infiltrer dans tous les produits. Yahoo!, Google, Eclipse proposent maintenant leur frameworks. Ils ont tous leurs particularités. Les IDE commencent à intégrer un environnement de déploiement ou à intégrer la complexité de l’AJAX dans les tags JSF.

TIBCO propose un produit intéressant TIBCO General Interface avec de nombreux drag & drop possibles accélerant le développement AJAX.

Les interfaces de plus en plus évoluées réalisables avec AJAX permettent de n'envisager l'utilisation de client riche-lourd que pour des IHM vraiment complexes (drag and drop, zoom, diagrammes réactifs, etc.)

Client Riche lourd

La guerre pour la plateforme du client riche lourd continue avec l’énorme effort qu’a fait SUN cette année autour de Netbeans 5. La version 5.5 apporte encore des nouveautés. Eclipse RCP était également bien représenté avec notamment une session de l’OSGi. Cette alliance regroupant 35 sociétés, des éditeurs et des sociétés utilisatrices (tels que EDF, BMW….) propose une normalisation pour une plateforme commune de services. Eclipse RCP repose sur cette norme.

SOA

Beaucoup de présentations sur le SOA, avec l’émergence confirmée de l’architecture SCA (Service Component Architecture). BEA, IBM, IONA, Oracle, SAP, Siebel Systems, and Sybase travaillent à l’intégration de cette spécification normalisant le SOA. Une implémentation SCA open source, du nom de Tuscany (http://incubator.apache.org/tuscany/index.html), se développe rapidement dans la communauté Apache. Oracle intégre également SCA dans son moteur BPEL.

Seul SUN reste à l’écart de la spécification et continue à proposer JBI (Java Business Integration) qui standardise plus l’écriture de l’ESB (Enterprise Service Bus) que la façon dont doivent s’orchestrer les services contrairement à SCA. J’espère qu’une intégration à terme des 2 normes pourra faire avancer le monde SOA en Java et concurrencer plus facilement l’offre Indigo de Microsoft. Le désaccord des éditeurs logiciels du monde Java fragilise leurs discours.

Il est à noter que TIBCO va respecter la JSR JBI dans son prochain produit Matrix, mais pas SCA.

Une session très intéressante présente l’interopérabilité des WebServices avec Web Services Intererability Technology (WSIT). Ce framework de SUN, sous-projet de JAX-WS (intégré dans JEE5), facilitera l’intégration .Net/Java. IBM reste à l’écart de ses efforts d’interopérabilité notamment sur les questions de WebServices sécurité.

Miscallenous

Spring : framework J2EE

La session « Spring Update », m’a permis de voir l’utilisation de Spring dans de nombreux projets critiques (eBay, Ministère de l’économie (déclaration des impôts)…) et son intégration dans certains serveurs d’application (WebLogic de BEA)

Spring 2.0 pourra continuer à fonctionner avec un J2EE 1.3 malgré toutes ses nouvelles fonctionnalités : intégration de JPA (Java Persitence API, le socle des EJB 3.0), intégration encore plus forte de l’AOP (programmation orientée aspect) avec AspectJ.

Plusieurs modules semblent intéressants à tester :

- Spring-Mock : facilite les tests d’application J2EE avec gestion de bouchons.

- Spring WebFlow : diagramme d’état Web

Spring devient aussi incontournable que Struts avant l’arrivée des JSF. La sortie de JEE 5 devrait peut être limiter son importance et sa diffusion mais l’intégration réalisée dans Spring de nombreux OpenSource devrait maintenir son interêt.

CMS (Content Management System)

Une spécification importante, la JSR 170 Java Content Repository, utilisée dans de plus en plus de produits CMS et GED, devrait simplifier à terme notre gestion documentaire. En effet, cette API facilitant le stockage, la recherche, et la navigation entre documents va être intégrée dans la nouvelle gamme de produit IBM Workplace et devrait permettre l’accès aux bases Notes. Les Wikis, tel que Xwiki, s’orientent également dans cette direction.

Trois implémentations open source de cette spécifications existent :

- Exo Platform : (http://www.exoplatform.com/company/faces/public/company/home/products/jcr-intro) Exo est également utilisé à Air France comme portail de développement et de tests pour les portlets JSR 168. Son offre ECM (Enterprise Content Management) propose un GED complet en Opensource

- Apache JackRabbit : (http://jackrabbit.apache.org/)

- Alfresco, société issu d’anciens de Dcoumentum, proposant en open source un ECM (utilisant Spring, JSF, Hibernate, Lucene, JBOSS, MySQL…)

L’offre d’un outil de GED en open source commence à devenir mature.

En dehors de toutes les sessions techniques, JavaOne est l’occasion de partager avec un grand nombre d’experts techniques.