Table des matières

Architecture d'Axis

Retour au sommaire


Introduction

Historique

Le protocole SOAP

Présentation d'Axis

Installation d'Axis

Conclusion

Pour en savoir plus

Glossaire


Une architecture modulaire

Le moteur d'Axis est conçu selon une architecture modulaire, composée de plusieurs sous systèmes distincts. Cette architecture comporte une hiérarchie à deux sous couches principales.


Le diagramme ci-dessus donne un aperçu des différentes composantes de l'architecture.
  • La première couche est fondamentale. Elle est constituée du sous système de flot de message qui définit la logique de circulation et de tratement des messages au sein du moteur.
  • Venant s'appuyer sur cette première couche générique, on trouve différents sous systèmes spécialisés qui implémentent des fonctionnalités spécifiques aux porotocoles de transport, d'encodage, et de modèles de messages pour les échanges RPC ainsi que des fonctionnalités d'administration.Les cadres pointillés désignent les difféentes implémentations disponibles pour un sous système donné.
  • Enfin, le moteur Axis est chargé de l'orchestration des différents sous systèmes.

Fonctionnement du moteur d'Axis

Pour bien saisir le fonctionnement interne d'Axis, il faut s'interesser aux concepts utilisés par le sous-système clé du moteur : le sous-système de flot des messages. Axis est avant tout un système d'échange et de traitement de messages et le framework est concu autour de 3 concepts clés : message, flot et traitement.
  • Un message correspond à un ensemble d'informations représenté par une sturcure de données XML.
  • Un flot de message correspond à un échange RPC. Les messages circulent entre un client et un serveur : un message de requetes et un message de réponse.
  • Les sous système de traitement vont prendre en charge à la reception et à l'émission ce flot de messages circualnt entre le client et le serveur.
Dans l'architecture d'Axis, cette' circulation constitue l'articulation de base du fonctionnement du serveur et des mécanismes de traitement des messages.

En quoi le moteur d'Axis est-il modulaire et extensible?

L'architecture interne du moteur d'Axis est modulaire et extensible car elle repose sur un pipeline configurable de traitement de messages. Le pipeline de traitement comporte un nombre modulable d'étages qui réalisent chacun un traitement spécifique sur les messages qui les traversent.




Le schéma ci-dessus illustre le concept de pipeline :
  • Les messages de requetes ou de réponses sont encapsulés dans une structure générale appelé Message Context qui englobe à la fois un message de requete et un message de réponse. Il contient un ensemble de propriétés incluant des informations sur le protocole de transport utilisé (HTTP, SMTP,etc.)
  • Les opérations de traitement sur les messages sont encapsulées au sein de "gestionnaires de messages de plusieurs chaines de traitement". Ces gestionnaires sont eux-memes regroupés au sein de chaine de traitement, composées d'un ou plusieurs gestionnaires de messages.
  • Les objets Message Context passent successivement à travers les gestionnaires de messages de plusieurs chaines de traitement. Chacun des gestionnaires de message invoqués succesivment effectue une opération spécifique sur l'objet Message Context.
En fait, ce modèle est analogue au modèle de filtrage de l'API Servlet et est basé sur un design pattern connu sous le nom de chaine de responsabilité (Responsibility Chain design pattern) : Chaque élément de la chaine est responsable d'un traitement particuliers.

Description de la chaîne de traitement

Le système de traitement des messages d'Axis contient deux circuits distincts de flot de messages : un circuit de requetes et un circuit de réponse. A chacun de ces circuits, il est possible d'associer 3 chaines de traitements spécifiques :
  • Une chaine de traitement "transport" : contient des gestionnaires chargées de réaliser les opérations spécifiques à la mise en forme des messages reçus ou envoyés. A chaque protocole de transport configuré dans Axis (ex: HTTP, SMPT,etc.) est associé une chaine de traitment de transport correspondante. Plusieurs chaines de transport peuvent donc etre créées, chacune d'entre elles traitant uniquement les messages transitant par le protocle de transport correspondant.
  • Une chaine de traitement "globale" : contient des gestionnaires chargés d'éffectuerdes opérations génériques sur les messages en émission ou en réception.
  • Enfin, il est possible de configurer, au niveau de chaque service web Axis, une chaine de traitement spécifique à ce service.