Description WSDL étendue de services d'adaptation dans PAAM
PAAM propose de décrire les services d'adaptation utilisés dans PAAM à l'aide de descriptions WSDL augmentées de quelques informations dans un namespace spécifique à PAAM.
La description WSDL fournit l'information sur l'interface d'utilisation du service, tandis que les extensions ajoutent une information sémantique sur le type de service d'adaptation fournit.
On trouvera un exemple de telle description à l'adresse
http://shadok.enst.fr/jcm/article65.html et
http://shadok.enst.fr/jcm/article67.htmlLa spécification de ces extensions sera détaillée ultérieurement.
Fonctions de service d'un WS d'adaptation de PAAM
Nous attendons d'un Web Service d'adaptation 'poli' qui souhaite être utilisé dans PAAM qu'il offre les services décrits ci-apprès.
Service qui permet de connaitre la description WSDL étendue du service
Service recommandé
Ce service doit toujours être nommé GetPaamWSDL.
Service d'information sur l'état du Web Service
Service optionnel
Ce Web Service permet de connaitre l'état courant et de prévoir l'état futur d'un service d'adaptation.
L'état courant comprend de l'information sur la capacité CPU (ex: nb de MIPS disponibles), la charge CPU, la capacité mémoire totale et l'utilisation mémoire courante.
La prévision de l'état futur comprend de l'information aggrégée sur une éventuelle file d'attente, des prévisions de dates et heures de mise hors réseau.
On peut aussi envisager que les clients enregistrés de ce Web Service reçoivent des notifications de mises hors réseau futures et des alertes de charge. Les clients devraient alors disposer d'un Web Service d'abonnement à ces informations.
Service de cousinageService optionnel
Service qui envoie une liste de services offrants des fonctionnalités équivalentes.
Ce service peut aider:
- à gérer le système de duplication de traitements, pour faire face aux déconnexions,
- à gérer la surcharge d'un adaptateur et la distribution vers d'autres adaptateurs équivalents.
Scénario pour un client dédié à PAAM
Nous voulons développer ici un comportement possible pour une application cliente (nommée ACLIENT par la suite) de l'architecture d'adaptation PAAM.
ACLIENT cherche périodiquement des gestionnaires d'adaptation sur le réseau. De plus, les gestionnaires d'adaptation offrent un service de signalement d'autres gestionnaires au comportement similaire au leur. Ainsi, si ACLIENT connait un gestionnaire d'adaptation, il a la possibilité d'en trouver d'autres assez facilement.
ACLIENT va alors utiliser le gestionnaire d'adaptation � la façon d'un proxy. Chaque requête émise par ACLIENT va être envoyée au gestionnaire d'adaptation au lieu d'être envoyée directement au serveur chargé de répondre � la requête.
Ce scénario peut s'appliquer au navigateurs WEB courants pourvu que le gestionnaire d'adaptation soit capable de recevoir des requêtes HTTP et de fonctionner avec ces seules requêtes.
Pour un meilleur fonctionnement, il est souhaitable que ACLIENT envoie au gestionnaire d'adaptation des informations sur son contexte d'utilisation: préférences de l'utilisateur, caractéristiques du terminal ou de l'application ACLIENT... Ces informations peuvent être fournies de façon indirectes: URN d'un document contenant les préférences de l'utilisateur, référence du terminal,...
Dans le cas d'un navigateur non modifié, ces informations peuvent provenir des sources suivantes:
- le champ UserAgent du header HTTP peut constituer, notamment pour les téléphones mobiles, un identificateur du terminal qui servira � déduire les caractéristiques du terminal (cf. WURFL sur sourceforge),
- une session peut être créée avec le gestionnaire d'adaptation; � la création de cette session, les informations utiles � l'adaptation sont fournies (nous développerons plus tard cette hypothèse).
Dans le cas où ACLIENT est une application dédiée, dès qu'ACLIENT a identifié un gestionnaire d'adaptation avec lequel il envisage de travailler, il peut lui passer ses informations de contexte. Le gestionnaire d'adaptation doit enregistrer ces informations et doit disposer d'un moyen de les associer ultérieurement � ACLIENT.