jeudi 24 mai 2007

Formater du code source Java en masse avec Eclipse

L'information est passée inaperçue, mais elle peut être fort utile : depuis la version 3.2 d'Eclipse, il est possible d'appliquer le formatage de code Java à un ensemble de fichiers source.

Cette fonctionnalité est accessible via la ligne de commandes. L'exemple suivant applique le formatage de code spécifié par le fichier de configuration D:/formatter.prefs aux fichiers Java se trouvant (directement ou indirectement) dans le répertoire D:/tmp/src :

eclipse -application org.eclipse.jdt.core.JavaCodeFormatter -config D:/formatter.prefs D:/tmp/src

Le fichier de configuration du formatage de code, quant à lui, peut être obtenu de la manière suivante :
  1. Dans Eclipse, ouvrir les propriétés d'un projet Java.
  2. Aller dans Code Style > Formatter et cocher Enable project specific settings.
  3. Sélectionner et éditer une configuration de formatage de code.
  4. Cliquer sur OK.
  5. Le fichier de configuration du formatage de code se trouvera alors dans votre workspace Eclipse à l'emplacement workspace/VotreProjetJava/.settings/org.eclipse.jdt.core.prefs.

vendredi 4 mai 2007

Spring 2.0.1 + WebLogic 9.2

BEA vient de publier un article sur le support de Spring 2.0.1 dans WebLogic Server 9.2. Dans cet article, BEA vante les mérites du couple Spring - WebLogic en citant les avantages d'une telle association. Si la plupart des bénéfices cités sont à attribuer au seul framework Spring, on peut néanmoins noter quelques fonctionnalités intéressantes apportées par WebLogic :
  • L'extension Spring de la console WebLogic : elle permet d'afficher les définitions de beans Spring dans la console WebLogic.
  • Le support des transactions distribuées : le WebLogicJtaTransactionManager fourni par BEA permet d'utiliser les fonctionnalités de déclarations des transactions de Spring tout en utilisant le gestionnaire de transactions distribuées de WebLogic. Cela permet d'utiliser de simples POJOs dans un contexte de transactions distribuées.

jeudi 19 avril 2007

Pour ou contre le Web 2.0 ?


Avec cette question volontairement provocatrice il ne s'agit pas de remettre en question le web 2.0 mais de faire le point sur l'emploi du terme "web 2.0" qui a tendance à être utilisé à tort et à travers.

En effet, dès que certains voient des sites web avec de belles couleurs, des logos avec effets de réflexion et une ergonomie à base d'ajax, ils ont tendance à dire que cela fait très web 2.0. Est-ce vraiment cela le web 2.0 ?
Je pense qu'il y a une grande confusion entre la signification réelle du web 2.0 et les moyens techniques mis en oeuvre pour permettre le web 2.0.

Historiquement, d'après wikipedia, le terme "web 2.0" a été inventé par Dale Dougherty de la société O'Reilly Media pour désigner l'évolution du web et de ses business models.

Concrètement, selon moi, si on désigne le web 1.0 comme l'avant web 2.0, celui-ci était caractérisé par des contenus statiques ; l'internaute était un consommateur du web. Aujourd'hui, avec le web 2.0, les contenus sont beaucoup plus dynamiques ; l'internaute est un acteur du web et il a une influence sur son contenu. D'autre part, on ne parle plus seulement de contenu, car le web 2.0 devient une plate forme pour toute sorte d'applications.
L'effet de masse a également toute son importance dans le web 2.0. Le web 1.0 permettait déjà de diffuser massivement des informations, mais maintenant l'effet de masse est une caractéristique intégrante du web 2.0. D'une part, le web 2.0 doit pouvoir être utilisé de manière simple par le plus grand nombre et d'autre part, celui-ci va tirer partie du grand nombre de ses utilisateurs/contributeurs pour un meilleur classement et une meilleure découverte de l'information (folksonomie).

Ainsi, parmi les éléments typiques du web 2.0, on trouve entre autres :
  • Les blogs, permettant la publication de contenu plus ou moins formel sous forme de journal. Cet article est hébergé par un blog.
  • Les wikis, permettant la publication collaborative de contenu de manière plus organisée. L'exemple le plus illustre est WikiPédia.
  • Les sites de publication de contenu multimédia. Ils facilitent la publication et le partage d'images ou de vidéos. Ex. : flickr et YouTube.
  • Les sites de partage de liens. Ils permettent de partager des liens web en les classant à l'aide de mots clés. Ex. : del.icio.us.
  • Les sites de partage et de classement d'actualités. L'information est rapportée par les internautes et classée selon l'intérêt du plus grand nombre. Ex. : digg.
  • Les aggrégrateurs de contenu et/ou d'applications (mashups). Ils permettent de rassembler des informations (ex. : Google Reader) et/ou des applications (Netvibes, Yahoo pipes) pour y accéder de manière unique.
  • Les applications bureautiques en ligne. Elles offrent autant de fonctionnalités que les applications bureautiques classiques et s'utilisent depuis un navigateur web. Ex. : Google docs & spreadsheets.

Bien entendu, les sites du web 2.0 utilisent des technologies assez novatrices, mais celles-ci ne constituent pas l'essence même du web 2.0 ; elles ne sont que des moyens.
Ces technologies sont notamment :
  • RSS, pour la diffusion efficace de l'information.
  • Ajax, pour rendre les sites web plus agréables à utiliser et plus fonctionnels (asynchronisme, fluidité, drag'n drop, ...).
  • Une ergonomie recherchée (couleurs, logos, dégradés, ...) pour rendre les sites web plus agréables à consulter.
Le web est en perpétuelle évolution. Il s'agit plus d'une évolution continue que d'une évolution discrète (1.0 puis 2.0 et à quand le 3.0 ?). Même si l'utilisation du terme "web 2.0" peut être sujette à controverse, celui-ci est aujourd'hui très utilisé, très à la mode et très vendeur, à tel point qu'au delà de son aspect grand public, on parle maintenant de web 2.0 pour l'entreprise.

mercredi 11 avril 2007

Décorer une application web J2EE avec SiteMesh

SiteMesh est un framework de décoration d'applications web J2EE. Il permet d'appliquer de manière très simple un modèle de mise en page aux pages html issues d'une application J2EE.

Ainsi le processus pour appliquer une décoration automatique des pages avec SiteMesh est le suivant :


  • 1) Constituer le modèle de pages sous la forme d'une page HTML et de feuilles de styles CSS en positionnant les éléments qui le constituent : en-tête, menus, ...
    Des modèles préconçus peuvent être récupérés sur les sites qui proposent des templates open source (oswd, opensourcetemplates, openwebdesign, ...)

  • 2) Transformer le modèle de pages en page JSP et insérer les tags spécifiques SiteMesh (, , ...) destinés à indiquer à quels endroits seront fusionnés les éléments de la page HTML à décorer.

  • 3) Intégrer tous les éléments nécessaires dans l'application web :
    • Copier les fichiers du modèle de pages dans l'application web (voir doc).

    • Rajouter les fichiers de configuration SiteMesh (voir doc).

    • Configurer le filtre de servlet SiteMesh dans le descripteur web.xml de l'application Web (voir doc).

  • SiteMesh est alors près à décorer les pages de l'application web :

  • 4) Lorsqu'une page HTML est générée par l'application web,

  • 5) celle-ci est interceptée par SiteMesh qui récupère le contenu des différentes parties de la page (head, body, ...) et les insère aux positions marquées dans le modèle de pages.

  • 6) Le résultat de la fusion de la page HTML et du modèle, c'est-à-dire la page décorée est renvoyé à l'utilisateur.

En paramétrant SiteMesh, des modèles de pages différents peuvent être appliqués en fonction des URL d'appel des pages dans l'application Web. De plus, un modèle de de page étant lui-même une page JSP, il peut lui aussi contenir des éléments dynamiques dépendants du contexte d'appel.

En conclusion, SiteMesh est un framework simple et efficace. Que demander de plus ?

jeudi 5 avril 2007

Architecture d'entreprise par BEA

Voici une autre approche de l'architecture d'entreprise par BEA et son application dans un contexte SOA.

mercredi 4 avril 2007

Framework d'architecture

Il y a trois semaines, j'ai suivi une formation sur le framework d'architecture de ma société. Il ne faut pas confondre framework d'architecture et framework de développement tels que Struts ou Spring pour ne citer qu'eux. Un framework d'architecture est une manière d'organiser et de représenter une architecture d'entreprise, le plus souvent en terme de système d'information.

Le framework d'architecture de ma société propose le modèle suivant :


Ce framework indique que pour définir une architecture d'entreprise, on doit répondre aux questions suivantes :
  • Pourquoi ? : Quels sont les éléments contextuels à prendre en considération pour établir l'architecture ? Quels sont les principes et les contraintes de l'entreprise structurants pour l'architecture ?
  • Quoi ? : Quels sont les éléments qui doivent être inclus dans l'architecture ? Quelles problématiques doivent être traitées par l'architecutre ?
  • Comment ? : Quelles sont les solutions possibles pour traiter les différentes problématiques à adresser dans l'architecture ?
  • Avec quoi ? : Quelle est la solution concrète à adopter pour l'architecture ? Quelle est l'organisation physique ? Quels sont les normes et standards à appliquer ?
Ces questions peuvent être posées pour différents aspects :
  • Le métier : l'organisation métier de l'entreprise.
  • Les informations : les informations utilisées et échangées dans l'entreprise.
  • Le système d'information : les traitements métier qui peuvent être automatisés.
  • L'infrastructure technique : les éléments techniques sur lesquels se base le système d'information.
De plus, le framework indique deux éléments qui peuvent être intégrés à tous les niveaux :
  • La gouvernance : la capacité à maîtriser les éléments de l'architecture en terme de gestion et de suivi de la qualité.
  • La sécurité : la capacité à limiter les risques à tous les niveaux de l'architecture.
Un framework d'architecture ne donne pas de solution clés en main pour concevoir une architecture, mais peut offrir une terminologie, des outils et une manière de structurer une étude d'architecture.
Dans tous les cas, du point d'un architecte IT, je pense que la connaissance de ce type de framework peut élargir grandement ses champs de vision et d'action en faisant apparaître d'autres perspectives sur l'architecture.

lundi 2 avril 2007

BPM et SOA pour les nuls

J'ai téléchargé récemment un livre blanc de BEA en français introduisant les concepts de BPM (gestion de processus métier) et de SOA (architecture orientée services) et décrivant les avantages de mixer les deux initiatives.
Je n'ai pas retrouvé le lien officiel de BEA, mais vous pourrez télécharger officieusement ce livre blanc ici.

jeudi 29 mars 2007

InfoWorld compare 3 IDE java

Un article d'InfoWorld compare 3 grands IDE java du marché :
Et le vainqueur est ... JBuilder !

Je n'ai pas testé JBuilder depuis qu'il est basé sur Eclipse, mais il y a quelques années, il n'était franchement pas agréable à utiliser. A retester donc pour se faire une meilleure idée. J'espère qu'il n'est pas aussi lourd que RAD qui nécessite une machine de guerre pour fonctionner.
NetBeans, qui est le seul des 3 a être gratuit, semble aussi intéressant en terme de fonctionnalités. Il faudrait que je teste de nouveau, car il y quelques années, il était très lent.

L'article 'InfoWorld cite également sans les inclure dans le test d'autres IDE et non des moindres :
  • Eclipse : l'IDE open source de référence du moment, mais pour combien de temps ? (page produit)
  • JetBrains IntelliJ IDEA : un IDE adopté par tout ceux qui l'ont testé. Il est cité dans l'article comme favorisant la productivité. Ce produit est payant. (page produit)
  • Oracle JDeveloper : comme NetBeans et IntelliJ IDEA, il n'est pas basé sur Eclipse. Il offre des fonctionnalités assez avancées. Il est gratuit mais non open source. (page produit)
A suivre ...

TEPQO?

On me pose souvent la question : t'en penses quoi Olivier ? Je n'ai pas réponse à tout, mais par l'intermédiaire de ce blog, je vais essayer de répondre à certaines de ces interrogations.
Les sujets abordés seront... cela reste à déterminer, mais on parlera probablement d'architecture NTIC, de SOA, de Java et des frameworks associés, d'Open Source, des technologies du Web, ...
A vous de juger si cela vous intéresse ou non.