- Institut de la francophonie pour l’informatique. - Mod´ elisation des services dans le cadre de la mobilit´ e. - Je tiens `a remercier les profresseurs `a l’intitut de la francophonie pour l’informatique (IFI), o` u je pr´epare mon DEA. - A cause de la caract´eristique du terminal mobile : portabilit´e, bas de performance. - 3.2.1 Le concept de l’automate. - 4.2.1 Le besoin du langage de la requˆete. - 4.2 Exemple : Service d’achat. - Les probl´ematiques associ´ees `a ce domaine de recherche apparaissent dans de nom- breuses applications du fait de la multiplication de l’utilisation de terminaux mobiles qui changent fr´equemment de contexte d’ex´ecution. - Dans l’exemple pr´ec´edent, la consultation sur PDA peut requ´erir la prise en compte de la r´edution de bande de passante et la n´ecessit´e d’augmenter la s´ecurit´e des communications. - Valider les approches retenues en ´etudiant des propri´et´es de la s´ecurit´e et de la performance sur un type d’application donn´e. - Une petite introduction du travail de stage est pr´esent´ee dans la partie 1, la partie deux est une ´etude sur des mod`eles de la description et de la composition des services. - La partie 3 et partie 4 pr´esentent notre mod`ele de la description des services, l’utilisation et la composition des services d´ecrits par ce mod`ele. - Chapitre 2 Etat de l’art ´. - A cause de la portabilit´e et de la mobilit´e, les terminaux mobiles ont des limites comme : la capacit´e de la batterie, la capacit´e de stockage. - Toutes ces caract´eristiques peuvent causer des probl`emes de maintient de la qualit´e du service. - Service composite optionnel : `a l’oppos´e de la cat´egorie ci-dessus. - structure de mes- sage ´echang´e, description de la corr´elation entre les op´erations). - On peut lister quelques mod`eles. - la sp´ecification du nœud d’ex´ecution inclut la description du service qui sera invoqu´e et ainsi que la sp´ecifica- tion de la r`egle de choisir le service, il permet une d´ecouverte dynamique de service.. - Il y a deux types de la mo- dification de processus : ad-hoc change et bulk change. - On peut ´ecrire la r`egle pr´ec´edente comme. - Donc si on a un ensemble de services mod´elis´es par le world model, c’est `a dire qu’on a un ensemble des termes et un ensemble de r`egles, on peut avoir un service composite `a partir de ces services. - On peut constater pour ce mod`ele se fonctionne de mani`ere similaire `a un syst`eme expert.. - Quand on parle de la s´ecurit´e, on peut compprendre simplement, c’est la protection des informations. - L’objectifs principaux de la s´ecutit´e informatique sont. - La non r´ epudiation : permettant de garantir qu’une transaction ne peut ˆetre ni´ee Pour obtenir ces objectifs ci-dessus, les algorithmes de la cryptographie sont utilis´es. - On peut les classifier en deux grande familles : les algorithmes sym´etriques (DES, IDEA) et les algorithmess asym´etriques (RSA). - Donc, un emsemble des utiles de la cryptographie est n´ecessaire pour la s´ecurit´e des services. - La description des services doit sp´ecifier la demande de la s´ecurit´e : soit au niveau tout le service, soit au niveau chaque op´eration du service.. - Quand on parle de la performance d’un syst`eme informatique, on parle du temps de r´eponse, l’espace de m´enoire utilis´ee, ou la volume de donn´ees transf´er´ee sur le r´eseau.. - Une application qui peut r´epondre `a un demande dans un petit d´elai et avec une petite utilisation de la m´emoire c’est toujours notre attente, mais il voit que c’est tr`es difficile (ou impossible) car le TimePerformance et le SapcePerformance contiennent dans eux-mˆeme des contradictions. - On peut classifier les techniques utilis´ees pour la composition des services en trois cat´egories : les templates, les interfaces et la logique.. - Avec cette technique, on peut mod´eliser des services complexes mais il existe un point faible c’est la flexibilit´e. - Cette technique est plus flexible par rapport de la technique bas´ee sur les templates, mais elle manque leur s´emantique.. - La technique bas´ ee sur la logique : c’est le cas du SWORD, cette technique est une extension de la technique bas´ee sur les interfaces en ajoutant la logique comme le pr´e- et post-condition dans `a l’interface. - Une demande du client est ´ecrite sous des formules logiques et le service composite est compos´e tel que la conjonction de la logique sp´ecifi´ee dans les services composants satisfait la demande de l’utilisateur.. - Le(s) service(s. - Et ce connecteur est charg´e de la communication entre le client et le(s) services(5)(6).. - Dans le cas si on dispose un template pour le service composite on peut bien g´en´erer le connecteur. - La th´eorie de l’automate est beaucoup d´evelopp´ee, elle est utilis´ee naturellement dans la th´eorie de la langage et plus il y a des algorithmes qui permettent de composer des automates. - Quand le cdiscount, re¸coit l’agent, il va emballer les marchandise et l’envoyer par le service de la poste.. - Dans la premi`ere fa¸con on associe les actions de l’invocation les fonctions avec les ´etat de l’automate et une transition de l’´etat A `a l’´etat B est valid´ee par les pr´e conditions de l’action (l’invocation de la fonction du service) associ´ee avec l’´etat B. - elles sont valid´ees par les pr´e conditions de l’action (l’invocation de la fonction du service) qui sont associ´ees avec. - Le deuxi`eme fa¸con est plus naturelle que la premi`ere fa¸con par rapport de la d´efini- tion de l’automate . - Alors on peut utiliser les algorithmes de compositions de l’automate directement sur elle sans avoir besoin les modifications.. - Dans le petit exemple ci-dessus, on mets directement les conditions et les actions dans la description de la transition. - La couche fonctionnalit´e est une concr`ete de la couche automate o` u tous les conditions, les actions, les signatures de fonctions utilis´ees dans le service. - o` u on ne d´ecrit que ses identifications Par exemple : On peut d´ecrire la transition suivante. - On peut classifier les conditions en deux types : condition simple et condition complexe.. - 5 on peut d´ecrire comme. - Pour d´ecrire une fonction, on d´ecrire le nom de la fonction, quel sont les types d’entr´ees et les types de sorties (la signature de la fonction).. - Par exemple : on peut d´ecrire la fonction payer(int ,int) comme. - Dans des cas, il y a des fonctions qu’elles prennent des entr´ees, modifient leurs valeurs et ces valeurs sont trait´ees comme des r´esultats de sorties de la fonction. - pour dire cette variable est `a la mˆeme l’entr´ee et la sortie de la fonction. - Dans la description des fonctions, on a pr´esent´e le type des entr´ees et des sorties de la fonctions. - On peut les d´ecrire dans une partie comme. - On peut utiliser d’autre fa¸con pour pr´esenter les corr´elations. - Dans cette partie je pr´esente, comment on peut utiliser un service qui est d´ecrit avec le mod`ele qu’on propos´e. - Autrement dit comment on peut g´en´erer le connecteur entre le client et le service.. - Avec le principe du fonctionnement du connecteur ci-dessus, quand on g´en`ere le connecteur on peut utiliser deux approches. - On peut g´en´erer directement un programme `a partir des transitions, des conditions, des actions, et des fonctions. - Cet approche on peut classifier en deux sous approches :orient´e fonction ou orient´e objet.. - Les langage fonctionnels on peut utiliser cet approche.. - Au niveau pratique, on peut utiliser cet approche pour les langage orient´e objet et les classes sont des impl´ementations d’une interface commune. - L’impl´ementation de la fonction excuser dans chaque classe impl´ement´ee l’interface ci- dessus est impl´ement´ee un peu pareil l’impl´ementation les fonctions dans l’approche orient´e fonction.. - Donc on peut r´ecrire l’algorithme pr´ec´edent comme. - Un type d’une variable est d´etermin´e par la description de la fonction o` u cette variable est utilis´ee. - Quand on g´en`ere le connecteur, on peut utiliser une table de deux colonnes, une pour garder le nom et une pour garder le type de variables. - Donc avec le mod`ele que j’ai introduit, je pense qu’on peut d´ecrire le service et aussi des exceptions du service. - Quand on utilise le concept de l’automate pour d´ecrire de services. - Dans la th´eorie de l’automate on peut enlever les non - d´eterministes en regroupant des ´etats. - Mais je pense que avec la description de services, on peut avoir autre fa¸con de faire. - Une question je me pose comment on peut d´etecter (savoir) la boucle infinie quand le connecteur qui fonctionne. - Comme dans la partie 3.5.1 (back-tracking), on sait qu’il faut sauvegarder les valeurs des variables (´etat du connecteur) `a chaque ´etat de l’automate, et on peut utiliser ces informations pour d´etecter la boucle infinie. - Quand le connecteur il retourne `a l’´etat E, avec les valeurs courantes des variables et les valeurs stock´ees `a E on peut savoir s’il y a une boucle infinie(si les valeurs ne changement pas) ou non. - Avec les types simples, on peut prendre une projection vers le langage qu’on peut g´en´erer le connecteur avec. - Donc on peut prendre des notions pour d´ecrire des types complexes dans les autres langages de descriptions comme : IDL avec le CORBA ou WSDL dans le Web service. - L’objectif de l’utilisation de l’automate dans la description de services c’est qu’on peut r´eutiliser les algorithmes de composition des automates dans la composition de services.. - 4.2.1 Le besoin du langage de la requˆ ete. - Le but de la composer de services est de r´epondre `a la requˆete du client. - Autrement dit, on peut savoir comment on peut com- poser les services (synchronisation entre les services). - Donc quand on veut d´ecrire les synchronisation entre deux services A et B, on peut d´ecrire que la variable x de A est partag´ee comme la variable y de B, ou plus pr´ecis´ement on peut d´ecrire les sorties de la fonction f1 dans est les entr´ees de la fonction f2 dans B. - Il d´epend de la langage de description que le serveur de services qu’on peut choisir une fa¸con pour d´ecrire les synchronisations entre le service. - On peut d´ecrire une synchronisa- tion comme. - On peut utiliser cet algorithme pour les cas de plusieurs auto- mates. - ou on peut ´ecrire Q. - On peut utiliser l’algorithme de composer des automates ci-dessus pour composer des services. - Le service compos´e est d´ecrit aussi sous ce mod`ele, alors on peut g´en´erer le connecteur pour le service compos´e comme pour les autres services (chapitre 3).. - Quand on obtient le service composite : les descriptions des transitions, les descriptions des conditions, les descriptions des actions et les descriptions des fonctions, on peut dire que le composite service est bien d´ecrit comme le mod`ele de l’automate dans le chapitre 3. - service 2 :Service d’achat. - 4.2 – Exemple : Service d’achat. - On peut minimiser les transitions du service composite avant de g´en´erer le connecteur, cette minimisation permet de minimiser le code du connecteur qu’on doit g´en´erer. - Et on peut trouver l’algorithme de minimisation des automate dans dans livre qui parle de les automates.. - – Le besoin de la minimisation vient aussi du service, comme dans l’exemple pr´ec´edent, on peut voir bien que l’´etat (Atraduire,Terminer2) n’est pas jamais touch´e. - Ce stage est r´ealis´e au laboratoire du D´epartement d’Informatique de l’ENST Bre- tagne, et il s’est d´eroul´e dans le projet CAMA, l’int´erˆet de ce travail est de d´ecrire des services dans le cadre de la mobilit´e et de les composer.. - Mais avant d’appliquer des algorithmes de la composition, il faut. - – ajouter la description de la synchronisation entre les services – minimise le r´esultat.. - – Am´eliorer le mod`eles pour trouver des solutions plus efficaces pour les probl`emes de la g´en´eration du connecteur et de la composition des service. - – Chercher `a proposer un langage de la description pour les service dans le cas r´eel – tudier et proposer des solutions pour qu’on puisse ajouter et enlever des services. - composants pour avoir un service composite satisfaisant des propri´et´es non fonc- tionnelles : Comment on peut d´ecrire des propri´et´es non fonctionnelles et comment on peut les utiliser.