Il existe une pléthore de framework web, c’est un fait.

Mais, il faut bien avouer que, pour la plupart, ces frameworks sont finalement très proches, et se contentent de « refaire en mieux », sans véritablement innover, ni offrir d’avancées décisives pour les applications d’entreprise.

JBoss Seam choisit lui une approche innovante avec une forte valeur ajoutée pour les applications d’entreprise ; le tout entièrement en open source.

D’un point de vue conceptuel, Seam est l’un des premiers framework à supporter non seulement les architectures sans état, mais aussi les architectures avec état, grâce à la notion de conversation. Cette approche permet la mise en œuvre d’applications web présentant des navigations complexes, et assure une forte séparation des couches quelque soit le niveau de complexité de cette navigation.

Seam intègre de multiples technologies, mais contrairement à d’autre frameworks, il ne cherche pas à encapsuler (donc à brider) ces technologies. Au contraire, il se concentre sur une intégration cohérente et unifiée entre les technologies, ainsi que sur les fonctionnalités supplémentaires à valeur ajoutée. En cela, Seam partage philosophiquement certains points communs avec Spring.

Les technologies intégrées par Seam sont principalement les suivantes :

  • le standard JavaServer Faces pour la présentation, et son approche composant,
  • JBoss RichFaces avec un ensemble de composants graphiques JSF (supportant AJAX),
  • JBoss Ajax4JSF avec un ensemble de composants JSF facilitant le support d’AJAX,
  • une extension de JSF pour la description de navigation avec état,
  • le standard EJB session stateless d’EJB 3 pour les composants non conversationnels (sans état),
  • le standard EJB session stateful d’EJB 3 pour les composants conversationnels (avec état),
  • le standard Java Persistence API et les entités d’EJB 3 pour la persistance,
  • JBoss Drools pour la sécurité déclarative par règles, et plus généralement les règles fonctionnelles,
  • JBoss jBPM pour les processus fonctionnels (business process) et les workflows, mais également pour les navigations complexes dans le site web.

Seam s’appuie majoritairement sur des standards, avec notablement Java EE 5 ou bien encore l’approche POJO (Plain Old Java Objects). Il utilise notamment les mécanismes standard d’extensibilité de Java EE 5 pour intégrer diverses extensions d’origine JBoss. En pratique, cela signifie que Seam n’est pas particulièrement lié à JBoss Application Server et peut fonctionner dans la plupart des serveurs d’application.

En guise de conclusion, remarquons que Seam intègre des technologies JBoss, tels que JBoss Drools et JBoss jBPM, particulièrement bien placées sur leur marché respectif.

Références