Les composants logiciels communicants des applications d'entreprise distribuées nécessitent un jeu de services d'infrastructure sous-jacent, permettant aux composants distribués de communiquer entre eux, de coordonner leur travail, d'implémenter un accès sécurisé, etc. Cette section explique le rôle essentiel joué par un certain nombre de composants de Java ES dans la prestation de ces services d'infrastructure.
Lorsque vous concevez un système logiciel distribué, qu'il s'agisse essentiellement de composants au développement personnalisé ou de composants Java ES standard, vous devez incorporer un certain nombre de services d'infrastructure. Ces services fonctionnent sur plusieurs niveaux.
La dimension de dépendance des services d'infrastructure de l'architecture de solution est illustrée dans la Figure 2–2. Les niveaux représentés sur cette figure correspondent à une vue développée de la couche de service d'infrastructure de la Figure 1–1.
La hiérarchie des services de la Figure 2–2 et les dépendances entre eux constituent une dimension importante de l'architecture logique d'une solution. Ces services d'infrastructure fournissent la base conceptuelle pour comprendre le rôle des composants de service du système Java ES (voir Composants de service du système).
En général, les services présentés dans la Figure 2–2 se répartissent en trois grands groupes : les services de plate-forme du niveau inférieur, les services d'application du niveau supérieur et un groupe de services intermédiaires, ainsi nommés d'après leur emplacement entre les deux autres groupes.
Les paragraphes suivants décrivent les différents niveaux de services d'infrastructure et se réfèrent aux artefacts du langage de programmation Java, le cas échéant. Les niveaux de service sont décrits du niveau le plus bas au niveau le plus élevé, comme illustré dans la Figure 2–2:
Plates-formes de système d'exploitation : assure la prise en charge de base de tout processus exécuté sur l'ordinateur. Le système d'exploitation (tel que SolarisTM, Linux ou Microsoft Windows) gère les périphériques physiques ainsi que la mémoire, les threads et les autres ressources requises pour la prise en charge de Java Virtual Machine (machine JVMTM).
Transport réseau : assure la prise en charge réseau de base pour les communications entre les composants d'application distribués exécutés sur des ordinateurs différents. Ces services incluent la prise en charge des protocoles, tels que TCP et HTTP. Les autres protocoles de communication de niveau élevé (voir le niveau messagerie) dépendent de ces services de transport de base.
Persistance : assure la prise en charge pour les accès et le stockage des données statiques (informations sur l'utilisateur, le répertoire ou la configuration) et des données d'application dynamiques (informations fréquemment mises à jour).
Messagerie : assure la prise en charge de la communication synchrone et asynchrone entre les composants d'applications. La messagerie synchrone correspond à l'envoi et à la réception de messages en temps réel. Elle comporte également une fonction d'invocation de méthode distante (RMI) entre les composants J2EE et des interactions SOAP avec les services Web. La messagerie asynchrone, quant à elle, correspond à une communication pour laquelle l'envoi d'un message ne dépend pas de la capacité du destinataire à le recevoir immédiatement. Les spécifications de messagerie asynchrone, par exemple Java Message Service (JMS) et ebXML, prennent en charge une fiabilité garantie et d'autres sémantiques de messagerie.
Exécution : assure la prise en charge requise par tout modèle de composant distribué, tel qu'un modèle J2EE ou CORBA. Outre l'invocation de méthode distante requise pour les composants distribués de couplage étroit, les services d'exécution incluent la gestion de l'état du composant (cycle de vie), la gestion de pools de threads, la synchronisation (verrouillage mutex), les services de persistance, le contrôle des transactions distribuées et le traitement des exceptions distribuées. Dans un environnement J2EE, ces services d'exécution sont fournis par des conteneurs EJBTM, Web et des beans gérés par message dans un serveur d'applications ou un serveur Web.
Sécurité et stratégie : assure la prise en charge des accès sécurisés aux ressources d'application. Ces services incluent la prise en charge des stratégies régissant les accès des groupes ou par rôles aux ressources distribuées, ainsi que les possibilités de connexion unique. La connexion unique permet que l'authentification d'un utilisateur sur un service d'un système distribué soit appliquée automatiquement aux autres services (composants J2EE, services métier et services Web) du système.
Collaboration utilisateur : fournit des services qui jouent un rôle essentiel dans la prise en charge de la communication directe entre les utilisateurs et dans la prise en charge de la collaboration entre les utilisateurs d'environnements d'entreprise et Internet. Ces services sont des services d'entreprise de niveau application, fournis en principe par des serveurs autonomes (par exemple, un serveur de courrier ou un serveur de calendrier).
Intégration : fournit les services qui regroupent les services d'exploitation existants. L'intégration fournit une interface commune qui permet d'accéder aux services comme dans un portail ou en intégrant ces services au moyen d'un moteur de processus qui les coordonne au sein d'un flux de production. L'intégration peut également avoir lieu sous forme d'interactions interentreprises entre différentes entreprises.
Les niveaux de service présentés dans la Figure 2–2 reflètent une dépendance générale de différents services d'infrastructure les uns par rapport aux autres, des services de système d'exploitation de bas niveau aux services d'intégration et d'application de plus haut niveau. En règle générale, chaque service dépend des services situés en aval et prend en charge les services en amont.
Toutefois, la Figure 2–2, ne représentent pas une couche stricte de services d'infrastructure. Les services de niveau supérieur peuvent interagir directement avec les services de niveau inférieur sans dépendre des niveaux intermédiaires. Par exemple, certains services exécutables peuvent dépendre directement de services de plate-forme, sans nécessiter le moindre niveau de service intermédiaire. De plus, d'autres niveaux de services, tels que le contrôle ou le service de gestion, peuvent être inclus dans cette illustration conceptuelle.
Les composants de Java ES implémentent les niveaux de services d'infrastructure distribués illustrés à la Figure 2–2. Le positionnement des composants de service système Java ES au sein des différents niveaux est illustré dans la Figure 2–3.
Les plates-formes de système d'exploitation illustrées dans la Figure 2–3 ne font pas véritablement partie de Java Enterprise System ; toutefois, elles sont été incluses afin de montrer les plates-formes de système d'exploitation sur lesquelles les composants Java ES sont pris en charge.
En général, chaque composant de service système Java ES présenté dans la Figure 2–3 dépend des composants situés au-dessous de lui dans l'infrastructure et prend en charge les composants se trouvant au-dessus. Ces relations de dépendance et de prise en charge sont un facteur clé dans la conception d'architectures logiques.
Le Tableau 2–1 montre les relations spécifiques entre les composants de service système Java ES, en partant du haut vers le bas, comme illustré dans la Figure 2–3.
Tableau 2–1 Relations entre les composants de service système Java ES
Composant |
Dépend de |
Prend en charge |
---|---|---|
Portal Server |
Application Server ou Web Server Access Manager Directory Server Si configuré pour utiliser les canaux correspondants : Calendar Server Messaging Server Instant Messaging | |
Messaging Server |
Directory Server Access Manager (pour la connexion unique) |
Calendar Server (pour les notifications par e-mail) Portal Server (pour le canal de messagerie) |
Instant Messaging |
Directory Server Access Manager (pour la connexion unique) |
Portal Server (pour le canal de messagerie instantanée) |
Calendar Server |
Directory Server Messaging Server (pour le service de notification par e-mail) Access Manager (pour la connexion unique) |
Portal Server (pour le canal de calendrier) |
Access Manager |
Application Server ou Web Server Directory Server |
Portal Server Si configuré pour une connexion unique : Calendar Server Messaging Server Instant Messaging |
Application Server |
Message Queue Directory Server (pour les objets gérés) |
Portal Server Access Manager |
Message Queue |
Directory Server (pour les objets gérés) |
Application Server |
Web Server |
Access Manager (pour le contrôle d'accès) |
Portal Server Access Manager |
Directory Server |
aucune. |
Portal Server Calendar Server Messaging Server Instant Messaging Access Manager |
Registre de service |
Aucune dépendance |
Composants basés sur Applcation Server |