Concepts : Configurations de déploiement J2EE
Rubriques
Introduction 
La plate-forme J2EE supporte le développement et le déploiement de multiples configurations standard de déploiement. Ces configurations standard de déploiement imposent d'avoir un certain flair, en termes de développement d'applications. Dans les chapitres suivants, vous trouverez les descriptions des configurations de déploiement les plus communes, leurs protagonistes et antagonistes.
Si vous ne connaissez pas encore bien les concepts J2EE, voir ceux qui sont décrits dans le chapitre Concepts: généralités J2EE, avant d'aller plus loin.
Configuration de déploiement en îlot
La première configuration de déploiement est illustrée dans la figure 1. Dans cette configuration, il n'existe ni de conteneur Web, ni de conteneur EJB. Un client a directement accès aux ressources EIS et il est chargé de gérer la logique de présentation, la logique métier ainsi que la logique d'intégration.

Figure 1: Déploiement de configuration en îlot
A première vue, cette configuration peut sembler être comme une proposition attrayante, pour les applications n'assurant qu'une simple manipulation des données stockées dans les ressources EIS. Cette configuration présente cependant un certain nombre d'inconvénients potentiels.
Les modifications apportées aux ressources EIS peuvent se répercuter lourdement sur l'implémentation de l'application, ce phénomène étant souvent directement lié à la structure interne de chaque ressource EIS, telle que la structure des tables de bases de données. Toute modification apportée à l'application proprement dite nécessite d'être communiquée à tous les utilisateurs. Il n'existe pas de serveur central où l'application serait déployée pour que les clients bénéficient d'un accès immédiat aux dernières corrections.
Par ailleurs, cette configuration de déploiement ne favorise pas la répartition des responsabilités. Par exemple, il arrive souvent que la logique de présentation et la logique métier soient étroitement liées, rendant compliqué le support en termes d'évolution et de maintenance des applications.
Les véritables questions concernant cette configuration de déploiement restent néanmoins en surface, lorsque vous décidez de modifier l'échelle de votre application. Les postes client présentent des caractéristiques de performances limitées ; par conséquent, vous devez idéalement répartir la charge de traitement sur un ensemble de machines. La configuration en îlot n'est néanmoins pas conçue pour supporter un traitement partagé. Par ailleurs, si vous essayez de supporter d'autres clients ayant un accès concurrent aux ressources EIS, vous trouverez peut-être que vos applications
sont contraintes par les ressources EIS, comme par exemple le nombre de connexions de bases de données concurrentes.
Configuration de déploiement centrée sur le bean EJB
La configuration de déploiement centrée sur le bean EJB est illustrée dans la figure 2. Dans cette configuration, le conteneur EJB est placé entre le conteneur client et les ressources EIS. Il n'existe aucun conteneur Web. La logique de présentation se trouve au niveau du client, la logique métier résidant dans les beans EJB. Plutôt que d'accéder directement aux ressources EIS, l'ensemble des requêtes des clients est géré par les beans EJB appropriées. Les clients sont donc protégés des modifications intervenues dans les ressources EIS.

Figure 2: Configuration de déploiement centrée sur le bean EJB
La configuration de déploiement centrée sur le bean EJB est conçue pour adresser plusieurs des questions contenues dans la configuration de déploiement en îlot. Du point de vue de la montée en capacité, l'implémentation de la plate-forme J2EE peut répartir la charge de traitement sur un certain nombre de machines. Le conteneur EJB doit garantir une utilisation efficace des ressources limitées, telles que les connexions de bases de données.
Du point de vue de l'évolution et de la maintenance des applications, cette configuration favorise la séparation de la logique de présentation et de la logique métier.
Néanmoins, un des inconvénients de la configuration de déploiement centrée sur le bean EJB est qu'il est nécessaire de notifier à chaque utilisateur toute modification intervenue sur l'interface utilisateur, aussi mineure soit elle. Bien que la logique métier contenue dans les beans EJB puisse être redéployée sur le serveur (donnant par conséquent aux utilisateurs un accès immédiat à toute modification), cela ne s'applique pas à la logique de présentation. Ceci est regrettable, sachant que la présentation d'une application est susceptible de subir des modifications fréquentes.
Configuration de déploiement centrée sur le Web
La configuration de déploiement centrée sur le Web est illustrée dans la figure 3. Dans cette configuration, le conteneur Web est placé entre le conteneur client et les ressources EIS. Il n'existe aucun conteneur EJB. La logique de présentation et la logique métier sont toutes deux manipulées par des éléments du conteneur Web (JSP et servlet).
Dans cette configuration, un langage de balisage simple est utilisé au niveau du client, comme le langage HTML, bien que les langages XML et WML pourraient également être utilisés.

Figure 3: Configuration de déploiement centrée sur le Web
Habituellement, une configuration de déploiement centrée sur le Web conduit à mettre en évidence le support en termes de présentation de l'application résultante. La logique métier elle, est moins mise en évidence. Une telle configuration supporte les fréquentes modifications portant sur l'aspect d'une application et aujourd'hui, elle est couramment utilisée.
Une configuration de déploiement centrée sur le Web présente un certain nombre d'avantages.
Tout d'abord, les clients ne sont pas affectés par les modifications intervenues sur les ressources EIS, étant donné qu'ils n'accèdent pas directement à ces ressources. Ensuite, il est possible de redéployer l'application entière sans devoir notifier cette action auprès des utilisateurs, du fait que l'application réside intégralement sur le serveur.
Cependant, tandis que l'utilisation des EJB est parfois considérée comme surpuissante vis-à-vis de la tâche en cours, l'omission des résultats EJB se solde par certaines questions déjà posées pour la configuration de déploiement en îlot. Cette configuration en particulier ne favorise pas une répartition nette des responsabilités entre la logique de présentation et la logique métier ; cela conduit souvent à avoir des éléments étroitement liés qui empêchent l'évolution et la maintenance des applications. Aussi, toutes les questions d'extensibilité que l'on trouve dans la configuration de déploiement en îlot s'appliquent à une architecture centrée sur le Web.
Configuration de déploiement multi-niveau
La configuration de déploiement multi-niveau est illustrée dans la figure 4. Cette configuration comporte un conteneur Web et un conteneur EJB ; elle expose tous les avantages abordés dans les autres configurations de déploiement et ne présente aucun inconvénient. La logique de présentation est gérée par les éléments du conteneur Web ; la logique métier elle, est gérée par les beans EJB du conteneur EJB.

Figure 4: configuration de déploiement multi-niveau
Les clients ne sont pas affectés par les modifications intervenues dans les ressources EIS, du fait qu'ils n'accèdent pas directement à ces ressources. Aussi, il est possible de redéployer l'application intégrale sans devoir le notifier auprès des utilisateurs, étant donné que l'application réside entièrement sur le serveur.
Du point de vue de l'extensibilité, la charge de traitement peut être répartie pour supporter des traitements concurrents. Par ailleurs, du point de vue de l'extensibilité, le conteneur EJB doit garantir une utilisation efficace des ressources limitées, comme les connexions de bases de données.
Du point de vue de l'évolution et de la maintenance des applications, cette configuration favorise une répartition nette des responsabilités. La logique de présentation est dissociée des ressources EIS et la logique métier est dissociée de la présentation. Cette séparation nette peut aider à allouer le travail aux différents développeurs qualifiés et la logique de présentation et la logique métier peuvent être développées simultanément.
La configuration de déploiement multi-niveau peut également faciliter la migration d'un périphérique client (comme un navigateur Web) vers un autre (comme un PDA). Une ré-écriture complète de l'application n'est pas nécessaire, étant donné que la logique métier contenue dans les beans EJB reste inchangée et qu'elle peut être utilisée telle qu'elle est.
En résumé, il existe un certain nombre de configurations de déploiement, chacune réunissant des protagonistes et des antagonistes. Un des objectifs de la plate-forme J2EE est d'être assez souple pour supporter n'importe quelle configuration de déploiement, jugée appropriée pour une organisation et pour aborder par ailleurs les préoccupations de l'organisationc.
|