Introduction
La plateforme J2EE prend en charge le développement et le déploiement d'une variété de configurations de déploiement
standard. Grâce à de telles configurations de déploiement standard, de nombreuses
questions concernant le développement d'application sont désormais résolues. Dans les sections suivantes, vous
trouverez une description des configurations de déploiement les plus courantes ainsi que les avantages et les
inconvénients de chacune d'entre elles.
Si vous ne connaissez pas encore les concepts J2EE, reportez-vous aux concepts décrits dans Généralités sur Java 2 Platform Enterprise Edition (J2EE) avant d'aller plus loin.
Configuration de déploiement
autonome
La figure 1 montre la première configuration de déploiement. Dans cette configuration, il n'y a ni conteneur Web ni
conteneur d'EJB - un client accède aux ressources du système EIS directement, et est responsable de la gestion de la
logique de présentation, de la logique métier ainsi que de la logique d'intégration elle-même.
Figure 1 : Configuration de déploiement autonome
A première vue, cette configuration semble être une suggestion intéressante pour les applications dont la manipulation
des données contenues dans les ressources EIS est simple. Cependant, cette configuration peut présenter quelques
inconvénients.
Les changements apportés aux ressources EIS peuvent avoir un fort impact sur l'implémentation de l'application. Cet
impact dépend souvent et directement de la structure interne de chaque ressource EIS, telle que la structure des tables
de base de données. Tout changement apporté à l'application elle-même nécessite un déploiement complet à chaque
utilisateur - il n'existe pas de serveur central où l'application est déployée afin que les clients puissent avoir un
accès immédiat aux dernières mises à jour.
Par conséquent, cette configuration de déploiement n'encourage pas une division de responsabilité. Par exemple, il
arrive souvent que la logique de présentation et la logique métier soient étroitement couplées ; la prise en charge de
l'évolution et de la maintenance de l'application en est d'autant plus difficile.
Les problèmes réels liés à cette configuration de déploiement apparaissent cependant lorque vous décidez de
dimensionner votre application. Les postes de travail client possèdent des caractéristiques de performances limitées ;
l'idéal serait que vous répartissiez le traitement sur un certain nombre de machines. Mais la configuration autonome
n'est pas conçue pour prendre en charge un traitement réparti. Par conséquent, lorsque vous tentez de prendre en charge
davantage de clients ayant accès aux ressources du système EIS simultanément, il est possible que vous pensiez que vos
applications sont contraintes par la ressource du système EIS elle-même, comme le nombre de connexions simultanées à
une base de données.
Configuration de
déploiement centrée sur EJB
La figure 2 montre la configuration de déploiement centrée sur EJB. Dans cette configuration, un conteneur d'EJB se
trouve entre le conteneur client et les ressources du système EIS - il n'y a pas de conteneur Web. La logique de
présentation est dans le client ; la logique métier réside dans les EJB. Plutôt que d'avoir accès directement aux
ressources du système EIS, toutes les requêtes des clients sont gérées par les EGB adéquates. Les clients sont, en
conséquence, protégés contre les changements apportés aux ressources EIS.
Figure 2 : Configuration de déploiement centrée sur EJB
La configuration de déploiement centrée sur EJB est conçue pour traiter un grand nombre des problèmes présents dans la
configuration de déploiement autonome. Sur le plan de l'évolutivité, l'implémentation de la plateforme J2EE peut
répartir le traitement sur un certain nombre de machines. De même, un conteneur d'EJB a la responsabilité de garantir
une utilisation efficace de ressources limitées, telles que des connexions à une base de données. Sur le plan de
l'évolution et de la maintenance de l'application, cette configuration encourage également une séparation entre la
logique de présentation et la logique métier.
Cependant, un des inconvénients de la configuration de déploiement centrée sur le EJB réside dans le fait que même les
changements de moindre importance apportés à l'interface utilisateur nécessitent un transfert complet de l'application
à chaque utilisateur. Bien que la logique métier encapsulée dans les EJB peut être redéployée sur le serveur
(permettant ainsi aux utilisateurs l'accès immédiat à tous les changements), ce n'est pas le cas pour la logique de
présentation. Cela est regrettable étant donné que la présentation d'une application peut subir des changements
fréquents.
Configuration de
déploiement centrée sur le Web
La figure 3 montre la configuration de déploiement centrée sur le Web. Dans cette configuration, un conteneur Web se
trouve entre le conteneur client et les ressources du système EIS - il n'y a pas de conteneur d'EJB. La logique de
présentation et la logique métier sont traitées par des éléments dans le conteneur Web (JSP et servlets). Dans cette
configuration, un simple langage de balisage est utilisé dans le client, tel que le langage HTML, bien que cela peut
valoir également pour le langage XML ou WML.
Figure 3 : Configuration de déploiement centrée sur le Web
Une configuration de déploiement centrée sur le Web conduit habituellement à mettre davantage l'accent sur la prise en
charge de la conception de l'application résultante, que sur la prise en charge de la logique métier. Une telle
configuration prend en charge les changements fréquents apportés à la présentation d'une application et est beaucoup
utilisée aujourd'hui.
Une configuration de déploiement centrée sur le Web apporte un certain nombre d'avantages. Premièrement, les clients ne
sont pas touchés par les changements apportés aux ressources du système EIS, puisqu'ils n'ont pas accès à ces
ressources directement. Deuxièmement, il est possible de redéployer la totalité de l'application sans nécessiter aucun
transfert aux utilisateurs, puisque l'application réside entièrement sur un serveur.
Cependant, alors que l'utilisation des EJB est parfois considérée comme étant plus professionelle qu'amateur,
l'omission des EJB engendre certain des problèmes soulevés pour la configuration de déploiement autonome. En
particulier, cette configuration n'encourage pas une division nette de la responsabilité entre la logique de
présentation et la logique métier, ce qui aboutit souvent à des éléments couplés qui entravent l'évolution et la
maintenance de l'application. De même, tous les problèmes d'évolutivité présents dans la configuration de déploiement
autonome s'appliquent à une architecture centrée sur le Web.
Configuration de déploiement
multiniveau
La figure 4 montre la configuration de déploiement multiniveau. Cette configuration comprend à la fois un conteneur Web
et un conteneur d'EJB et elle présente tous les avantages décrits pour les autres configurations de déploiement, sans
aucun des inconvénients. La logique de présentation est traitée par les éléments du conteneur Web ; la logique métier
est traitée par des EJB dans le conteneur d'EJB.
Figure 4 : Configuration de déploiement multiniveau
Les clients ne sont pas touchés par les changements apportés aux ressources du système EIS car ces ressources ne sont
pas accessibles directement. De même, il est possible de redéployer la totalité de l'application sans nécessiter aucun
transfert aux utilisateurs, puisque l'application réside entièrement sur le serveur.
Sur le plan de l'évolutivité, le traitement peut être réparti pour prendre en charge le traitement simultané. De même,
sur le plan de l'évolutivité, le conteneur d'EJB a la responsabilité de garantir une utilisation efficace de ressources
limitées, telles que des connexions à une base de données.
Sur le plan de l'évolution et de la maintenance d'application, cette configuration encourage également une nette
séparation des responsabilités. La logique de présentation et les ressources du système EIS sont découplées, il en va
de même pour la logique métier et la conception. Cette nette séparation peut faciliter l'attribution du 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 multiniveau peut également faciliter la migration d'un périphérique client(tel qu'un
navigateur Web) à un autre (tel qu'un assistant numérique personnel). Une réécriture complète de l'application n'est
pas nécessaire car la logique métier encapsulée dans les EJB reste inchangée et peut être utilisée en l'état.
Pour résumer, il existe un certain nombre de configurations de déploiement, chacune possédant ses propres avantages et
inconvénients. L'un des objectifs de la plateforme J2EE est d'être suffisamment souple pour prendre en charge tout type
de configuration de déploiement considéré comme adéquate pour une organisation, tout en traitant des intérêts de
l'entreprise.
|