image/svg+xml $ $ ing$ ing$ ces$ ces$ Res Res ea ea Res->ea ou ou Res->ou r r ea->r ch ch ea->ch r->ces$ r->ch ch->$ ch->ing$ T T T->ea ou->r

Introduction

De Java SE à Java EE

Java EE est uniquement une spécification d'API distincte des implantations. Les implantations peuvent couvrir une partie plus ou moins étendue de Java EE (une bibliothèque peut implanter JPA, une autre peut mettre en œuvre CDI...).

Architecture N-tiers

Découpage d'un système logiciel en différentes couches gérant chacune une problématique différente.

Traditionnellement, on distingue trois couches : la couche de gestion des données, la couche de traitement métier et la couche de présentation. L'implantation de la couche de gestion de données ainsi que de la couche de présentation peut être assisté par certaines bibliothèques gérant la persistance des données et l'affichage graphique. Quant à la couche de traitement métier, elle met en œuvre des processus de traitement (workflows) et algorithmes spécifiques.

La couche de gestion des données

Il s'agit de stocker de manière persistante les données et de pouvoir y accéder. Cette couche peut être soumise à différentes contraintes :

Solution envisageable : répartition des données sur plusieurs machines

Modèles de conservation des données :

Généralement, on peut combiner ces différents modes de conservation de données.
Par exemple, pour gérer une vidéothèque, on pourra stocker les fichiers vidéos sur un système de fichiers (éventuellement réparti), on utilisera une base de données afin d'indexer les métadonnées concernant les vidéos (date de production, réalisateur, acteurs) ce qui autorise des requêtes plus ou moins complexes (quel film a été réalisé entre 1990 et 2000 par le réalisateur X avec l'acteur Y ?) et on pourra conserver en mémoire centrale les métadonnées concernant les films les plus consultés.

Java EE propose la Java Persitence API (JPA) afin d'offrir une abstraction de manipulation des données par un modèle orienté objet. On manipule ainsi des objets sans savoir comment ils sont stockés (en mémoire, sérialisés dans des fichiers, dans une base répartie ou non...).

La couche de traitement métier

Il s'agit de la partie qui utilise les données pour réaliser différents traitements dessus (pour les modifier ou créer de nouvelles données). Cette couche peut exploiter des données de différentes sources : fournies par un ou plusieurs utilisateurs, récupérées depuis des sources diverses sur Internet... On y définit généralement un workflow (flux de travail) afin d'indiquer comment les données doivent être traitées.

Par exemple, pour l'ajout d'un fichier vidéo dans la vidéothèque, on pourra :

Il est utile de rechercher des bibliothèques réalisant chacune des tâches de traitement de données ; pour des domaines très spécifiques ou si des performances particulières sont attendues, il peut s'avérer nécessaire d'implanter soi-même ces fonctionnalités.

La couche de présentation

Une application doit pouvoir interagir avec un humain ou alors avec une autre application. Cet interaction est réalisée grâce à la couche de présentation. Pour cela il faut exposer une interface manipulable par l'acteur de l'interaction.