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.