• Aucun résultat trouvé

Le probl` eme de composition temporis´ ee

1.3 Sc´ enario illustratif

1.3.2 Le probl` eme de composition temporis´ ee

a partir de l’envoi de la demande de bourse. Sur la Figure 1.2, on pr´esente explicitement l’interaction des services Web qui contient un blocage. La pr´efecture envoie sa d´ecision finale apr`es au moins 48 heures et au plus 96 heures `a partir de l’envoi de la demande de la bourse. Mais durant cette ex´ecution, il y a un intervalle d’au moins 120 heures pour fournir le rapport d’examen m´edical.

Au m oins 48 heu rs et au plus 96 heu res Au m oins 120 heu rs et au plu s 1 68 heures demande_bourse soliciter_attestation_domicile soliciter_examen envoyer_attestation_domicile proposition_RDV fixer_RDV rapport_médical envoyer_décision_finale

Figure 1.2 – Un exemple d’impact des propri`et´es temporelles lors de la collaboration de services Web

Avec cet exemple simple et intuitif, on constate qu’un service Web peut ne pas ˆetre dans la mesure de respecter ses propres contraintes, car lors d’une collaboration, les contraintes d’autres services peuvent avoir un impact sur son ex´ecution. Dans la section suivante, nous discutons le probl`eme de composition temporis´ee et la g´en´eration de m´ediateur.

1.3.2 Le probl`eme de composition temporis´ee

Les services Web peuvent ˆetre impliqu´es dans des compositions diff´erentes. Par exemple, le service de pr´efecture peut ˆetre invoqu´e pour attribuer des bourses ou pour d´elivrer des permis de conduire `a des handicap´es. Donc, l’implication d’un service Web dans une com-position est toujours dans le but de satisfaire un besoin bien particulier. D’o`u l’importance

1.3. Sc´enario illustratif de fournir des primitives de composition qui soient orient´ees par le besoin du client.

Dans un tel cadre, lors de la construction d’une composition, des blocages peuvent surgir, comme par exemple, le probl`eme temporel pr´esent´e ci-dessus. Comme abord´e pr´ e-c´edemment, une alternative qui consiste `a essayer de g´en´erer un service interm´ediaire (i.e., m´ediateur) peut ˆetre envisag´ee. Le rˆole de ce m´ediateur serait de tenter, quand c’est possible, de contourner les blocages i.e., les masquer. Ceci, en cr´eant les connexions re-quises entre les services. Ci-apr`es, nous pr´esentons intuitivement un exemple dans lequel le m´ediateur peut intervenir pour tenter de masquer les h´et´erog´en´eit´es temporis´ees et/ou non-temporis´ees.

Probl`eme temporis´e

Revenons `a la Figure 1.1. Comme on peut voir, la mairie attend le rapport de l’entit´e m´edicale pour pouvoir par exemple ´etablir une carte d’handicap´e. La mairie exige que le rapport soit rendu dans les 144 heures qui suivent la demande de l’attestation de domicile pour une bourse d’handicap´e. L’entit´e m´edicale peut envoyer son rapport `a la mairie apr`es 168 heures. Donc la mairie ne pourra pas recevoir le rapport `a cause des contraintes temporelles. Sans aucune intervention externe, la mairie ne pourra pas d´elivrer la carte au demandeur et donc la composition ´echoue.

Si on examine la situation, on peut remarquer que l’entit´e m´edicale envoie son rapport `

a la pr´efecture apr`es 120 heures. Donc, le rapport m´edical devient disponible apr`es 120 heures. Intuitivement, il suffit d’essayer de cr´eer un lien indirect entre l’entit´e m´edicale et la mairie pour faire parvenir le rapport m´edical `a la mairie. Ce lien indirect peut ˆetre cr´ee en g´en´erant un m´ediateur qui a son tour r´ecup`ere le rapport disponible et g´en`ere le message d’envoi de ce rapport `a la mairie.

Le m´ediateur peut ´echouer quand les donn´ees requises, i.e., les donn´es impliqu´ees dans le message manquant (i.e., le message qu’il faut g´en´erer) ne sont pas disponibles. Une donn´ee est dite indisponible si elle n’a pas ´et´e calcul´ee et ´echang´ee avant que le message manquant ne soit requis.

Probl`eme non-temporis´e

Les probl`emes non-temporis´es sont engendr´es par les diff´erences au niveau des types des messages, des types des donn´ees, des contraintes de donn´ees, ou de l’ordre dans lequel les messages peuvent ˆetre ´echang´es.

1. Divergences au niveau des types des messages et/ou des types des donn´ees : Quand un service attend un message impliquant un ensemble de donn´ees et en mˆeme temps ce message ne peut pas ˆetre envoy´e par un autre service, alors de la mˆeme mani`ere, on essaye de voir si les donn´ees qu’implique le message attendu sont disponibles pour g´en´erer le m´ediateur qui s’occupe de la g´en´eration du message manquant. Par exemple, supposons que le service de pr´efecture attend le message attestation Domicile qui a comme param`etres (i.e., les donn´ees) num´erosecurit´esociale et attestation. Si le service de la mairie envoie le message attestationDomicile qui a comme param`etres attestation, nom, pr´enom et adresse alors le service de pr´ e-fecture reste bloqu´e et la composition ´echoue. Donc en suivant le principe d´ecrit ci-dessus, on v´erifie si les donn´ees impliqu´ees dans le message attestationDomicile sont disponibles, i.e., elles ont ´et´e d´ej`a calcul´ees et ´echang´ees auparavant. Si c’est le cas, le m´ediateur r´ecup`ere les donn´ees et g´en`ere le message manquant.

2. Inter-blocage comportemental : Ce type de blocage peut arriver quand deux ser-vices attendent chacun un message de l’autre pour pouvoir envoyer un message. Par exemple, si on suppose que la mairie attend un message de demande de la carte d’handicap´e pour notifier de la disponibilit´e de cette carte et en mˆeme temps le demandeur attend la notification de la mairie pour envoyer une confirmation. Dans ce cas, les deux services restent bloqu´es dans l’attente des messages. En suivant le mˆeme principe, on v´erifie si les donn´ees sont disponibles pour g´en´erer les messages attendus.

3. Divergence des contraintes de donn´ees : dans certains cas, un service Web peut en-voyer un message si des contraintes de donn´ees (i.e., des conditions sur la valeur des donn´ees) sont satisfaites. En mˆeme temps, la r´eception de ce message peut ˆetre conditionn´ee par une contrainte de donn´ees. Si ces deux contraintes sont disjointes, alors un blocage surgit. Par exemple, supposons que la pr´efecture demande un exa-men m´edical pour handicap´es ag´e de plus que 17 ans. Si le service d’entit´e m´edical r´egit les services d’une p´ediatrie qui prend en charge que des enfant de moins de 15 ans, alors la composition ´echoue. On note que dans ce cas particulier, le m´ edia-teur ne peut en aucun cas contourner le blocage. Une ´eventuelle solution serait de changer (remplacer) le service d´ecouvert.

Pour r´ecapituler, lors de la construction d’une composition, on doit s’assurer que tous les blocages temporis´es et non-temporis´es peuvent ˆetre d´etect´es. Quand des blocages se manifestent, nous envisageons l’alternative de tenter de g´en´erer automatiquement un m´

e-1.4. Apport de la th`ese