Architecture

Cette page est restée longtemps vide... En effet, l'architecture Java est si riche que l'exposer relève de la gageure. Mais je m'y risque, ne serait-ce que pour lancer quelques idées.

> La façon "crade"

Style ASP ou PHP scripté, une page = un fichier.

Dans ce cas, bonjour le mélange entre le code et la présentation. Il est clair que, même si ce type de développement est possible, il est loin d'être recommandé. Oublions le tout de suite...

> La façon J2EE pure : JSP + Servlet

Déjà là, la présentation est séparée de la logique (algorithmes et données).

Cette manière de développer en Java est utilisée très souvent car, d'une part, elle s'appuie sur le socle J2EE uniquement, pas besoin de librairie ou framework complémentaire, et, d'autre part, elle est simple.

Dans cette optique, une fois l'étape du "Hello world" passée, les servlets deviennent rapidement grosses et nécessitent une hiérarchie plus complète. Il est alors possible, tout en restant sur ce schéma de sortir des composants objets utilisés pas les Servlets.

> La façon Struts

Struts apporte un complément intéressant à l'approche précédente car elle permet de mettre en œuvre un vrai modèle MVC2 permettant de mieux découper la partie contrôleur en différentes actions.

Par ailleurs, la gestion des formulaires avec Struts est simplifiée en isolant les contrôles sur les données.

Struts a démarré en 2000 et est depuis régulièrement déployé dans les projets. C'est sans aucun doute le framework le plus répandu.

> Java Server Faces

Face à la pression du framework .Net, Sun a poussé une nouvelle approche visant à remplacer les JSP tout en conservant quelques avantages de Struts.

En effet, .Net avec son modèle événementiel donnait l'impression d'être plus simple et plus rapide à développer. Même si ce n'est pas vraiment le cas, d'autres forces que les simples considérations techniques sont ici en jeu... et donc les Java Server Faces (JSF) font leur apparition.

> Spring MVC

Spring MVC est assez répandu et apporte également une architecture propre.

> Les couches de persistance : EJB, Hibernate, ...


Vision générale de Java 8

Le schéma ci-dessous, issu du site Java, représente assez bien la richesse de Java 8. Cela n'intègre pas les différentes librairies ou framework tiers.