• Aucun résultat trouvé

Optimisation par algorithmes génétiques de la composition de services dans l'environnement ubiquitaire

N/A
N/A
Protected

Academic year: 2021

Partager "Optimisation par algorithmes génétiques de la composition de services dans l'environnement ubiquitaire"

Copied!
71
0
0

Texte intégral

(1)

Ministère de l ' .linseignement ~upéneur et de la Recherche :lcientijique

UNIVERSITE de JIJEL

~~~--<oOo~~~~~

~- --··-·~.

- "' . - ol._..ul-->-

~ *j I ~~~,)~..Ut.. 4 -:S.:. ,~ ,~, ·- 4...1.S' I

• 0 , ,

Département de l' inf ormatiq-lië ... Q . d. QQo ... .. : ~,a.11 ~ ,

1·1A.o+;~i

(}ln ~fi~)Jttl ~~ 'iPt ,L .(; ÂI' ~t~' ~.Je

En vue de l'obtention du Diplôme de MASTER ACADEMIQUE

Filière : Intelligence Artificielle THEME

Optimisation par algorithmes génétiques de la composition de services dans l'environnement ubiquitaire

Présenté par :

LAIEB Raflqa SID Amal

roPromotion 2017~

Encadré par :

Mme. Kouicem Amel

(2)

Nous remercions, en premier lieu, notre Dieu le très miséricordieux qui a bienvoulu nous donner la force et le courage pour effectuer le présent travail.

Nos plus vifs remerciements pour nos trop chers parents pour leurs soutiens, encouragements et leurs patiences.

Nous tenons à remercier notre encadreur Mm Amal Kouicem pour sa longue patience avec nous et sa disponibilité et pour tous les conseils fournis par nous.

Nos remerciements s'adressent également:

A tous nos enseignants durant toutes les étapes de notre parcours scolaire, et

exceptionnellement aux enseignants d'Université de Jijel (fac. de l'informatique) qui nous on enrichi nos connaissances et notre savoir pendant les cinq ans de formation.

A tous ceux qui nous ont assistés de près ou de loin dans la réalisation de ce projet de fin d'étude.

Nous n'oublierons pas les membres du jury qui nous font l'honneur de présiderait d'examiner ce modeste travail.

A. tous ceux qui nous ont assistés de près ou de loin dans la réalisation de ce projet de fin d'étude.

:Rafli€a .L31IE:JJ

JfmaÎSI:!J

(3)

..'A ma mère, à ma mère, à m . a mère

et à monyère

~ mes frères, mes sœurs

..'A mes co{{ègues et mes amies

..J~m,a{

(4)

Le processus de composition des services s'est avéré essentiellement un processus qui

prenait beaucoup de temps.

En effet, une composition n'est pas simplement un regroupement quelconque de services, mais un ensemble dont les tâches sont ordonnées en fonction des relations reliant ses services.

Dans ce mémoire, nous proposons une approche pour la composition des services basée sur un algorithme génétique, en prenant en compte à la fois les propriétés fonctionnelles (entrées/sorties) et les propriétés non fonctionnelles (spécifiées par les paramètres de qualité de service) afin de satisfaire les exigences de l'utilisateur.

Mots clés

La composition de service, les algorithmes génétiques, la qualité de service(QoS), service

concret, service abstrait.

(5)

Abstract

The process of composition of services was essentially a time consuming process.

A composition is not simply a grouping of services, but a set whose tasks are ordered according to the relations between its services. In this paper, we propose an approach for the composition of services based on a genetic algorithm, taking into account both the functional properties (inputs / outputs) and the non-functional properties (specified by the quality of service parameters) in order to satisfy the requirements of the user.

Keywords: service composition, genetic algorithm, quality of service, concrete service,

abstract service.

(6)

~~ •m ~I'::;" rf(' ~r+t· •f" ~q 1r'f!' efJ ~ ~n: 1~1':::" ii"m'l I(' ·~'Fr~ "1n' ri~,~~

i0 ~ ef"°r<:i l~r:' ~ ~!:" •m fl"\C. flr.:1-tn r-i ~\ ~~ ~ 1~"11':::"' '\! ~ ~~ ~

(7)

Sommaire

LISTE DES TABLEAUX ... V LISTE DES FIGURES ... VI LISTE DES ACRONYMES ... IV INTRODUCTION GENERALE ... !

CHAPITRE 1 : INFORMA TIQUE UBIQUIT AIRE ET CONCEPT DE BASE. ... .4

1.1 IN"TRODUCTION ... 4

1.2 DEFINITION DE L'INFORMATIQUE UBIQUITAIRE (OMNIPRESENTE OU PERV ASIVE) ... 4

1.3 LES CARACTERISTIQUES DE L'INFORMATIQUE UBIQUIT AIR.E ... . . 4

1.4 QUELQUES EXEMPLES DE L'INFORMATIQUE UBIQUITAIR.E ... 7

1.5 LES MIDDLEW ARES DE COMMUNICATION ... 8

1.5 .1 lntergiciels distribués ... 9

1.5 .1.1 Intergiciels à objets répartis ... 9

1.5.1.2 lntergiciels à composants ... 9

1.5 .1.3 lntergiciels à agents ... 10

1.5 .2 lntergiciels orientés services ... 10

1.5.2.1 La notion de service ... 10

1.5.2.2 La notion de SOA ... 11

1.5.2.3 Caractéristiques de l'architecture SOA ... 11

1.5.2.4 Acteurs de l'architecture SOA ... 12

1.6 L'ORIENTATION SERVICE ET INFORMATIQUE UBIQUITAIRE ... 12

1.7 CONCLUSION ... 12

CHAPITRE 2: COMPOSITION DE SERVICE ... 14

2.1 INTRODUCTION ... 14

2.2 QUELQUE DEFINITION DE LA COMPOSITION DE SERVICES ... 14

2.3 ETAPES DE LA COMPOSITION DE SERVICES ... 15

(8)

2.3.1 Spécification abstraites ... 15

2.3.2 Génération des services composites ... 16

2.3.3 Evaluation des services composites ... 16

2.3.3 Déploiement et exécution des services ... 16

2.4 CLASSIFICATION DES METHODES DE COMPOSITION DE SERVICES ... 16

2.4.1 Type de contrôle ... 17

2.4.1.1 L'orchestration ... 17

2.4.1.2 La chorégraphie ... 18

2.4.2 Degré d'automatisation ... 19

2.4.2. l La composition manuelle ... 19

2.4.2.2 2.4.2.3 La composition semi-automatique ... 19

La composition automatique ... 20

2.4.3 Gestion de services ... 20

2.4.3.1 Composition statique ... 20

2.4.3.2 La composition dynamique ... 20

2.5 LES APPROCHES DE COMPOSITION DE SERVICES ... .21

2.5 .1 Composition par procédés (W orkflow) ... .21

2.5 .2 Composition structurelle (par assemblage) ... 22

2.5.3 Composition par planification à base de l'IA ... 23

2.5.4 Approches à Base de Meta-heuristiques ... 24

2.6 QUELQUES METHODES DE COMPOSITION DE SERVICE ... 25

2.6.1 Un protocole de composition distribué pour les environnements prevasifs ... 25

2.6.2 Composition flexible de services d'objets communicants ... 26

2.6.3 Composition flexible de services d'objets communicants pour la communication ambiante ... 26

2.6.4 Un modèle de QoS pour la composition de services base sur les requêtes ... 27

2.6.5 Approche de composition de service basé sur les règles pour les environnements ubiquitaires ... 28

2.7 LA SELECTION DE SERVICE ... 29

2.8 QOS (LA QUALITE DE SERVICE) ... 30

2.9 MODELISATION DU PROBLEME DE SELECTION SELON LA TECHNIQUE SAW ... 31

2.10 CONCLUSION ... 32

(9)

iii

CHAPITRE 3: COMPOSITION DE SERVICES BASEE SUR LES ALGORITHMES

GENETIQUE ... .. 34

3.1 INTRODUCTION ... 34

3.2 TERMINOLOGIES DE BASE ... 35

3.2.1 Individu ... 35

3.2.2 Population ... 35

3 .2.3 Fonction de performance ... .35

3.2.4 Critère d'arrêt ... 35

3 .2.5 us opérateurs des AG ... 35

3.2.5.1 Opérateur de croisement. ... 35

3.2.5.2 Opérateur de croisement. ... 37

3.3 MODELISATION DU SERVICE CONCRET ... 39

3.4 MODELISATION DU SERVICE ABSTRAIT ... 39

3.5 FORMULATION DE LA REQUETE ... 39

3.6 LES DIFFERENTES ETAPES DE NOTRE APPROCHE DE COMPOSITION DE SERVICES ... 39

3.7 CRITERE D'ARRET DE LA COMPOSITION ... 41

3.8 ALGORITHME GENETIQUE POUR OPTIMISER LA COMPOSITION DE SERVICE ... 41

3.9 COMMENT INTRODUIT LES ALGORITHMES GENETIQUES A LA COMPOSITION DE SERVICE ? ... .42

3.8. l Population initiale ... 42

3.8.2 Opérateur de mutation ... 42

3.8.3 Opérateur de croisement. ... .42

(10)

3.8.4 Fonction Fitness (fonction objective) ... .42

3.8.5 Critère d'arrêt ... 42

3.10 FORMULATION DU PROBLEME ... .42

3.11 CONCLUSION ... 43

CHAPITRE 04: IMPLEMENTATION ET RESULTAT ... .45

4.1 INTRODUCTION ... 45

4.2 STRUCTURE DU PROGRAMME ... 45

4.3 PRESENTATION DE L'APPLICATION ... 45

4.4 COMPARAISON ENTRE LA COMPOSITION MANUELLE ET LA COMPOSITION PAR L'ALGORITlf!\.1E GENETIC!lJE ... 50

4.4 CONCLUSION ... 54

(11)

Liste des figures V

Liste des figures

Figure 1: Middlewares de communication ... ... 9

Figure 2: Composition de services ... . .. .. 15

Figure 3 : Classification des méthodes de composition de services ... ... 17

Figure 4: Vue d'ensemble de l'orchestration de services ... 18

Figure 5: Vue d'ensemble de la chorégraphie de services ... . ... ... 19

Figure 6 : Composition par procédés ... ... . ... . . . ... . ... ... . .... 22

Figure 7: Composition structurelle . ... ... . ... ... ... . . 23

Figure 8: Le problème de planification . . ... 24

Figure 9 : Sélection de services ... .30

Figure 10: Principe général des algorithmes génétiques ... 34

Figure 11 : Principe du croisement en un point ... 36

Figure 12: Principe du croisement en deux points ... .37

Figure 13: Principe de la mutation ... 37

Figure 14: Codage d'un service composite ... .41

Figure 15 : premier message d'affichage ... .46

Figure 16: deuxième message d'affichage ... 47

Figure 17 : la fenêtre en générale ... .48

Figure 18: Remplir les champs de saisie ... .49

Figure 19: Les meilleures solutions de chaque génération ... .49

Figure 20 : la réponse de la requête ... 50

Figure 21 : Le graphe de solution ... 50

(12)

Liste des tableaux

Tableau 1 : Les domaines de valeurs de critères ... 31

Tableau 2 : classment des service Concret.. ... 50

Tableau 3 : classment des service abstrait ... 51

Tableau 4: qualité de service après la normalisation ... 52

Tableau 5 : La qualité de service abstrait. ... .53

(13)

Liste des acronymes

EJ

[ DISP J

~

~

EJ ~

6 ~

Liste des acronymes

Algorithme Génétique.

Disponibilité.

Fiabilité.

Quality of Service (la qualité de service).

Service Abstrait.

Service Concret.

Système Multi Agent.

Temps de Réponse.

vu

(14)

Introduction générale

L'informatique ubiquitaire se base sur un concept fondamental: avoir un monde numérisé chargé d'assister les utilisateurs dans leur quotidien, le tout, sans être intrusif. Cette vision porte néanmoins un paradoxe important qui est à la base de plusieurs travaux de recherche dans le monde entier. L'un des principaux défis des chercheurs est de faire en sorte que les ordinateurs soient suffisamment nombreux et interconnectés pour devenir invisibles dans l'environnement. Le fait d'avoir un grand nombre d'équipements offre une grande capacité de calcul et de communication, et cela permet de faciliter l'aide aux utilisateurs en toute situation et en tout lieu, tandis que les techniques de raisonnement sur les activités des utilisateurs garantissent la liberté souhaitée universellement. L'environnement quotidien doit devenir l'interface naturelle d'interaction avec l'utilisateur.

Les fonctionnalités des différents dispositifs peuvent être représentées sous forme de services. L'orientation service parait un choix évident dans le domaine de l'informatique ubiquitaire car elle permet de gérer les différentes fonctionnalités de manière indépendante tout en offrant la possibilité de les combiner et de les composer si nécessaire. En effet, les principales caractéristiques des architectures orientées services comme la distribution, le faible couplage des services ainsi que l'utilisation de standards pour la description et la communication fournissent une base pour la construction de systèmes ubiquitaires et l'utilisation de la composition de services. Cela permet de construire des systèmes flexibles et adaptables aux changements pouvant survenir dans l'environnement.

L'objectif de ce travail est de développer un mécanisme de composition de service qui permet de choisir le meilleur service parmi les services disponibles selon la qualité de service et satisfaire la requête de l'utilisateur en utilisant les algorithmes génétiques.

Ce mémoire est divisé en quatre chapitres. Le premier chapitre est un état de l'art sur les environnements ubiquitaires. On y passe en revue les différentes caractéristiques et quelques exemples de l'informatique ubiquitaire.

Le deuxième chapitre est consacré à la composition de services. Nous définirons d'abord ce concept et décrirons les principales techniques utilisées et les contraintes que l'on peut rencontrer pour les adapter aux environnements ubiquitaires. Par la suite, nous présenterons quelques approches et quelques méthodes de composition de services en

environnement ubiquitaire.

i 1 )

(15)

Introduction générale

Le troisième chapitre concerne une présentation de algorithme génétique sur les quels la composition de service est basée et la formulation de problème proposé.

Le quatrième chapitre Est le dernier chapitre présente la partie Implémentation du travail. Elle explique le réglage paramétrique de l'algorithme et présente les différentes interfaces de l'application développée, suivie de quelques résultats obtenus.

Nous terminerons par une conclusion générale qui ouvre sur quelques perspectives.

[J

(16)
(17)

Chapitre 1 Informatique ubiquitaire et concept de base

1.1 Introduction

Avec l'arrivée de la miniaturisation, de la mobilité et des réseaux sans fil, l'informatique omniprésente et invisible, appelée également informatique ubiquitaire (Ubiquitous Computing), est apparue .

Le concept « informatique ubiquitaire » qui a été proposé par Marc Weiser ( 1994) désigne un modèle d'interaction homme-machine dans lequel le traitement de l'information relatif aux activités de la vie quotidienne été intégré dans les objets. Ce concept permet a ux utilisateurs d'accéder aux différents services via des objets communicants, le plus naturellement possible, n' importe où, et à tout instant.

1.2 Définition de l'informatique ubiquitaire (omniprésente ou pervasive ).

Un système d'informatique ubiquitaire permet d'automatiser certaines tâches quotidiennes grâce aux différents objets communicants disponibles. Le système collecte tout d'abord des informations de l'environnement physique (e.g., température ambiante, lumière du soleil, bande passante, présence d'un utilisateur) à partir des objets communicants capables de les capturer. De tels objets communicants sont appelés des capteurs. Ces derniers peuvent être physiques ou logiciels. Les informations collectées sont ensuite interprétées, filtrées et agrégées par diverses applications, afin de les enrichir de données contextuelles dans le but d'obtenir et de partager des informations de plus haut niveau. [1]

Les environnements ubiquitaires combinent des aspects complexes tels que la mobilité, les données contextuelles, l'hétérogénéité des dispositifs, les communications sans fil, etc. [2]

1.3 Les caractéristiques de l'informatique ubiquitaire [3]

La distribution

Les systèmes distribués sont considérés comme le noyau des systèmes pervasifs. En effet, ils peuvent fonctionner dans des environnements homogènes via un réseau de communication sans fil, dispersés dans l'environnement physique et peuvent prendre en charge des nouveaux contextes et ressources sans que cela ne soit visible par un utilisateur.

~

(18)

La, mobilité

Est une des chalenges les plus importantes pour les systèmes pervasifs. C'est la première caractéristique que peut posséder un système informatique portable. Les équipements peuvent être transportés par les utilisateurs. La mobilité réfère à la capacité d'accéder à des services ou à des applications indépendamment de la localisation physique, comportements et mouvements des utilisateurs.

Interopérabilité

Est la capacité de deux ou plusieurs systèmes d'échanger des informations et d'utiliser les informations échangées avec différents langages d'implémentation, d'environnement d'exécution ou de modèles d'abstraction.

Scalabilité (passage à l'échelle)

Indispensable dans les systèmes pervasifs, le passage à l'échelle permet de déceler les limitations du système lors d'une montée en charge du nombre important de composants entrant en jeu Le nombre d'interactions dans les espaces intelligents fait que l'utilisation des ressources devient critique, il faut donc que les systèmes pervasifs soient capables d'appréhender un grand nombre d'équipements dynamiques.

Hétérogénéité

Les systèmes ubiquitaires sont composés d'objets communicants hétérogènes à plusieurs niveaux : matérielles, logicielles et protocole de communication. Les équipements utilisés sont très variés, fonctionnant avec divers systèmes d'exploitation , adoptant différentes technologies sans fil. Au sein d'un même réseau, des stations de travail aux capacités de calcul et de stockage importantes peuvent coexister avec d'autres appareils à faibles ressources.

Intégration

Beaucoup d'éléments de l'informatique existent déjà et ils sont déployés dans des environnements réels. Il faut essayer de les intégrer avec les nouveaux objets que propose l'informatique pervasive. Plus ces éléments sont nombreux, plus l'intégration devient complexe. Il faut prendre en compte des aspects tels que la qualité de service, la sécurité et fiabilité.

Dynamique

Dans un système informatique ubiquitaire, la disponibilité des objets communicants peut varier au cours du temps. En effet, ces derniers peuvent être dynamiquement

D

(19)

Chapitre I Informatique ubiquitaire et concept de base

ajoutés ou retirés du système, de manière intentionnelle ou non du à la portée limitée des technologies réseaux sans fil, ressources limitées en énergie ou défaillances matérielles et logicielles, ce qui peut les rendre indisponibles pour un temps indéfini.

Autonomie

L'intervention de l'homme dans le contrôle et la maintenance des systèmes informatiques tend à disparaitre au profit de système capable de s'autogérer. Ces systèmes sont capables d'agir sur leur propre fonctionnement afin de s'adapter aussi bien à des conditions d'exécution changeantes qu'à une erreur survenue en leur sein.

La pro-action

A pour objectif de préparer le traitement d'une demande utilisateur avant même que cette demande ne soit explicite.

L'invisibilité

Il ne faut pas encombrer l'utilisateur avec des considérations qui ne le concernent pas.

Il faut qu'il se concentre sur la tâche à réaliser. En effet, avec l'augmentation du nombre de dispositifs informatisés autour des utilisateurs, on assiste aussi à une augmentation du nombre d'applications qu'ils doivent gérer.

Sensibilité au contexte

Une application sensible au contexte doit percevoir la situation de l'utilisateur dans son environnement et adapté par conséquence son comportement à la situation en question afin de fournir un service satisfaisant et proactif aux utilisateurs.

Gestion du contexte

Les systèmes ubiquitaires doivent être sensibles à leur environnement physique pour prendre les décisions appropriées. Ils doivent alors non seulement prendre en compte la dynamicité des objets communicants, mais aussi l'évolution des paramètres physiques de l'environnement. Ils définissent le contexte comme l'ensemble des informations permettant de caractériser la situation des utilisateurs, des lieux ou et des objets. Les systèmes ubiquitaires analysent les changements de contexte pour décider du comportement à adopter et ainsi s'adapter.

Adaptabilité

Les applications s'exécutant dans l'environnement pervasifs doivent être capable de s'adapter à ces changements et garantir une utilisation confortable les applications

~J

(20)

dans ces nouveaux environnements. Pour la réaliser, beaucoup de nouveaux paramètres entrent en jeu : paramètre réseau, utilisateur et terminal.

1.4 Quelques exemples de l'informatique ubiquitaire

Pour le contrôle d'accès dans les transports publics ou dans les bâtiments, les cartes de paiement, les clefs électroniques de voiture, les télécommandes de garage, les appareils médicaux implantés, les passeports électroniques, les permis de conduire de dernière génération, l'identification des animaux domestiques par puce électronique... il est de ven u aujourd'hui difficile, si ce n'est impossible, de passer une seule journée sans recourir à l'informatique ubiquitaire. On mentionne quelques exemples de l'informatique ubiquitaire:

1- La domotique est l'ensemble des techniques de l'électronique, de physique du bâtiment, d'automatisme, de l'informatique et des télécommunications utilisées dans les bâtiments, plus ou moins « interopérables » et permettant de centraliser le contrôle des différents systèmes et sous-systèmes de la maison et de l'entreprise (chauffage, volets roulants, porte de garage, portail d'entrée, prises électriques, etc.). La domotique vise à apporter des solutions techniques pour répondre aux besoins de confort (gestion d'énergie, optimisation de l'éclairage et du chauffage), de sécurité (alarme) et de communication (commandes à distance, signaux visuels ou sonores, etc.) que l'on peut retrouver dans les maisons, les hôtels, les lieux publics, etc. [ 4]

2- Smart Sofa est un canapé instrumenté qui a été développé par le TrinityCollege de Dublin-Irelande. Il permet d'identifier les personnes assises dessus et de fournir des services personnalisés basés sur ces informations. [ 4]

3- Les ustensiles intelligents de cuisine sont des exemples d'artefacts mis en œuvre au Massachusetts Institute of Technology :

- Une casserole, équipée d'une puce, qui indique si elle est trop chaude pour être manipulée;

- Une cuillère qui fournit des informations sur la température et la viscosité de la nourriture ;

- Une bouilloire qui informe l'utilisateur du temps d'attente pour la préparation de son thé. D'autres prototypes d'objets intelligents ont été développés dans la même logique comme la tasse de café qui communique le type de café et la température du liquide

qu'elle contient ; ou bien encore, la nappe interactive qui permet de saisir une commande dans un restaurant [5].

CJ

(21)

Chapitre 1 Informatique ubiquitaire et concept de base

4- Accessoires Intelligents : l'exemple le plus marquant est le projet Google Glass, une paire de lunettes intelligente qui offre des services de communication et de navigation à une personne mobile. Aussi, Gesture Pendant, un pendentif qui reconnaît des gestes prédéfinis de l'usager et exécute des actions de contrôle correspondantes. Il existe aussi d'autre exemple d'accessoires intelligents pour permettre la communication non- verbale au sein de petits groupes d'adolescents. Les montres ou bracelets sont des accessoires populaires qui sont de plus en plus utilisées dans des applications de surveillance médicale. Plusieurs modèles de montres intelligentes sont déjà disponibles dans le commerce à l'image de l' Actiwatch de la société Cambridge Technology. Cette montre est équipée d'un accéléromètre miniature qui mesure l'activité physique de son porteur [5].

5- Vêtements Intelligents (wearable computing- informatique à porter): repose sur l'idée qui consiste à avoir des ordinateurs miniatures comme partie intégrante des vêtements ou des accessoires que nous portons. Les vêtements intelligents sont des objets portables destinés à accompagner l'utilisateur dans ses déplacements. Dans cette catégorie, on peut citer le projet Smart Shirt développé à Georgia Institute of Technology, où différents types de capteurs ont été intégrés dans la conception d'une chemise intelligente, pour permettre le suivi de paramètres vitaux comme la fréquence cardiaque, l'électrocardiogramme (ECG), la respiration, la température, etc. [5]

1.5 Les middlewares de communication

L'informatique ubiquitaire permet aux utilisateurs d'accéder aux différents services via des objets communicants, ces objets sont très variés et de nature distribuée et hétérogène.

Pour réaliser cette communication, il faut masquer l'hétérogénéité et la distribution des différents objets de l'environnement. Certaines réponses à ces défis sont offertes par la proposition de nouveaux intergiciels (middlewares). Parmi ces intergiciels, le paradigme orienté services constitue l'une des réponse prometteuse aux défis des environnements ubiquitaire. Ce paradigme est réalisé dans le cadre des architectures orientées services (SOA : Service Oriented Architecture). Le terme "intergiciel", ou middleware représente les couches logicielles du "milieu" qui s'insèrent entre les couches matérielles, dites hardware, et l'application logicielle finale (Figure 1).Ces couches fournissent un haut niveau d'abstraction permettant de masquer l'hétérogénéité des réseaux de communication, des ressources matérielles, des systèmes d'exploitation et des langages de programmation.

~

(22)

Applications distribués, services

Mlddleware Middleware Mlddleware

os os os

Figure 1 : Middlewares de communication.

L'objectif principal des Intergiciels consiste donc à masquer les aspects complexes de l'imbrication logicielle nécessaire aux applications complexes et fournir un support de communication interopérable permettant de simplifier l'intégration et la perception abstraite des entités de l'environnement. [5][6]

Dans ce qui suit, nous commencerons par présenter quelques middlewares à objets distribués suivi del' architecture SOA.

1.5.1 lntergiciels distribués 1.5.1.1 lntergiciels à objets répartis

Les middlewares à objets répartis se basent sur le principe d'appel de procédures à distance afin de pouvoir invoquer des objets distants de façon transparente. Ces objets présentent des interfaces qui masquent leurs détails d'implémentation et facilitent leurs invocations. Ces middlewares sont devenus des standards. Trois d'entre eux se distinguent par le succès qu'ils ont eu: CORBA, RMI et DCOM.

1.5.1.2 lntergiciels à composants

Un composant est un module logiciel autonome qui assure un service dans le système.

Il offre une structure de programmation souple et unifiée, qui exporte les différents attributs ou méthodes sous forme d'interfaces, lui permettant d'interagir avec d'autres composants.la programmation orientée composants répond au problème de la complexité de gestion des codes métiers des applications. Elle a pour objectif d'une part, de séparer les aspects fonctionnels de l'application (le code métier) des aspects non fonctionnels (sécurité, transaction, cycle de vie, etc.) et d'autre part, de permettre la réutilisation des objets métiers

~

(23)

Chapitre I Informatique ubiquitaire et concept de base

dans de nouvelles applications. Dans l'architecture d'un composant, on distingue deux parties distinctes : la première concerne le code métier du composant et la deuxième, le code non fonctionnel du composant. Cette deuxième partie est gérée par un conteneur qui a pour rôle de gérer le cycle de vie des composants et des connexions inter-composants.

1.5.1.3 Intergiciels à agents

Les systèmes multi-agents (SMA) est un paradigme émergeant de la recherche en intelligence artificielle distribuée. La notion d'agent se fondent les systèmes multi-agent, un agent est contrairement à d'autres programmes, doit au moins simultanément être:

- situé: il perçoit le monde/environnement dans lequel il se situe.

- autonome : il prend des décisions et agit sur son environnement en vue d ' atteindre son objectif.

- interactif: il a la capacité d'interagir avec d'autres agents.

Les agents sont amenés à coopérer pour s'aider mutuellement dans l'accomplissement de leurs objectifs, partager leurs ressources, résoudre les conflits éventuels ou les éviter, etc. Ceci amène les agents à se coordonner afin de pouvoir évoluer en complète synergie dans cet environnement. La coordination peut également être définie comme étant la gestion des interdépendances entre les activités. Le modèle d'intergiciel à agents a pour objectif d'offrir au développeur une abstraction du niveau fonctionnel du système, lui permettant de se focaliser essentiellement sur la mise en œuvre de fonctionnalités ou de comportements de haut niveau des applications. Outre la création et la définition des comportements des agents, ce type d' intergiciel permet de définir le modèle de coordination souhaité entre les différents agents et supporte les communications entre ces derniers. En effet, les intergiciels à agents assurent l'interopérabilité entres des systèmes multi agents hétérogènes par le biais de langages de communication de haut niveau.

1.5.2 Intergiciels orientés services(SOA)

1.5.2.1 La notion de service

Il existe plusieurs définitions, dont [7] :

Un service est une brique logicielle autonome qui fournit une fonction bien définie tel que l'analyse d'informations, la recherche d'informations, etc.

Un service est considéré comme une entité logicielle autonome dotée d'une interface bien définie qui peut être accessible sans aucune connaissance de sa technologie sous- jacente. Un service est autonome dans la mesure où il peut se suffire à lui-même,

toutefois il peut être publié et rendu disponible pour être utilisable par des tiers. Ainsi

~

(24)

des services peuvent être utilisés tels quels ou bien être composés pour mener à terme un processus complexe et atteindre un objectif précis de plus haut niveau.

Un service peut être aussi défini comme étant un module qui peut être invoqué, qui est assigné à une fonction spécifique, et qui offre une interface bien définie [7]. Un service est décrit par son descripteur de service, sa spécification en quelque sorte. Le descripteur comporte des :

Informations fonctionnelles : la sémantique des opérations, le comportement du service (pré condition, post-condition, invariant, exception, propriétés), l'interface du service.

Informations non fonctionnelles : prix, politique, spécification des mesures de la qualité de service, information de déploiement, etc.

Informations additionnelles : composées d'informations sur le service, non spécifiées

par le fournisseur du service telles que les notes, les rapports d'utilisation, etc.

1.5.2.2 La notion de SOA

Il n'y a pas une définition exacte de l'architecture orienté service. En effet plusieurs définitions ont été proposées, mais toutes les définitions sont d'accord que SOA est un paradigme destiné à résoudre les problèmes d'hétérogénéité et interopérabilité des logiciels qui constituent le système d'information.

SOA est un paradigme permettant d'organiser et d'utiliser des savoir-faire distribués pouvant être de domaines variés. Cela fournit un moyen uniforme d'offrir, de découvrir, d'interagir et d'utiliser des savoir-faire pour produire le résultat désiré avec des pré-conditions et des buts mesurables.

« L'architecture orientée service constitue un style d'architecture basée sur le principe de séparation del' activité métier en une série de services ». [8]

1.5.2.3 Caractéristiques de l'architecture SOA

L'architecture orienté service est caractérisée par [8] :

• Un couplage faible entre les services : implique qu'un service n'appelle pas directement un autre service.

• La réutilisation de service web.

• L'indépendance par rapport aux a<ipects technologiques : c-à-d les services sont indépendants des plates-formes.

• La découverte des services disponibles.

[3J

(25)

Chapitre I Informatique ubiquitaire et concept de base

• La mise à l'échelle est rendue possible grâce à la découverte et à l'invocation des nouveaux services lors de l'exécution.

1.5.2.4 Acteurs de l'architecture SOA

L'architecture orienté service est basée sur trois acteurs principaux définis comme suit [8] :

• Service fournisseur : On peut l'appeler fournisseur il met le service web en application et il le rend disponible pour tout le monde sur internet.

• Service consommateur: C 'est un client demandeur ou un consommateur qui fait la demande d'un service web bien précis pour répondre à ses besoins.

• Service annuaire : Le registre fournit un endroit où le consommateur peut trouver des nouveaux services web et le fournisseur dispose une description pour des nouveaux services web.

1.6 L'orientation service et informatique ubiquitaire

L'orientation service répond particulièrement à l'ouverture et à la dynamique des environnements ubiquitaire. Dans ce contexte, les architectures orientées services (SOA) sont utilisées pour représenter l'ensemble des fonctionnalités fournies par les dispositifs de l'environnement comme des services. L'adoption de 1' approche orientée service pour modéliser les systèmes ubiquitaire fournit des réponses concrètes aux différentes exigences de ces systèmes. L'approche orientée service fournit des modèles et des mécanismes nécessaires pour la réalisation de chaque caractéristique. Parmi ces modèles , le modèle de composition de services qui génère un ou plusieurs services composites selon diverses techniques de composition pour répondre aux requêtes de l'utilisateur.

1.7 Conclusion

Dans ce chapitre, nous avons présenté un panorama général de ce qu'est un environnement ubiquitaire, en expliquant d'abord l'ubiquité, puis nous avons étudié les caractéristiques d'un environnement ubiquitaire et enfin décrit quelques exemples d'applications de l'informatique ubiquitaire.

Nous avons ensuite exposé quelques middlewares qui tentent de résoudre le problème d'hétérogénéité dans ces environnements : nous avons vu qu'il y avait des middlewares à objet repartis, des rniddlewares à composants, et des middlewares orienté service ; en expliquant la notion d'un service, puis l'architecture SOA, ces caractéristiques et enfin les acteurs de cette architecture.

~J

(26)
(27)

Chapitre 02 Composition de service

2.1 Introduction

Un environnement ubiquitaire est composé de plusieurs dispositifs offrant des services aux utilisateurs ou à d'autres applications logicielles. Le fait que ces environnements soient mobiles fait de la découverte et de la composition des services une problématique importante.

Dans l'optique d'offrir un service personnalisé, il faut que les différents services soient intégrés les uns avec les autres et ce pour enrichir l'offre et la rendre plus intéressante aussi bien pour les applications que pour les utilisateurs. En effet, les requêtes des utilisateurs sont souvent complexes. Cela fait qu'un seul service peut rarement répondre entièrement à une requête. C'est pour cela qu'il faut composer ces services qui sont, à l'origine, des services atomiques pour répondre à la requête tout en prenant en compte les informations contextuelles et les paramètres de QoS. Il est important d'intégrer ces paramètres au processus de composition de services car il permet d'adapter au mieux cette composition aux besoins réels de l'utilisateur.

La composition de services offre aux utilisateurs la possibilité d'avoir des réponses satisfaisantes à leurs requêtes complexes. Afin de rendre un service« composable», on utilise sa description.

La plupart des approches de compositions qui ont été développées pour les systèmes ubiquitaires sont inspirées des approches de compositions des services web. Dans ce chapitre, nous allons présenter quelques méthodes et approches de compositions de service et la notion de qualité de service.

2.2 Définition de la Composition de services

Définition 1

La composition de services a été définie comme étant la capacité d'offrir des services à valeur ajoutée en combinant des services existants offerts par différentes organisations [9].

Définition 2

Elle a été définie également comme étant une technique permettant d'assembler des services pour réaliser un objectif particulier, par l'intermédiaire de primitives de contrôles

[10].

~

(28)

Définition 3

La composition de services spécifie quels services ont besoin d'être invoqués, dans quel ordre, quelles sont les données à échanger, et comment traiter les situations d'exceptions. La composition de services peut être vue comme un mécanisme qui permet l'intégration des services dans une application.

La troisième définition est la plus référencée dans la littérature. Nous constatons que les différentes définitions s'accordent sur le fait que la composition de services vise la création de nouveaux services, offrant de nouvelles fonctionnalités, à partir des services existants. Le nouveau service résultat d'une composition de services est appelé service composite. Son exécution nécessite alors l'invocation de plusieurs autres services afin de faire appel à leurs fonctionnalités. Les services invoqués lors d'une composition de services sont appelés services composites [11].

---- - · -- ----

.. ~

..

,. ~ ... ~-, ....

,,/

...

__ _

'·-~--- ----~-_..,..-·

©

i"j-

..___

---... ~

- .,.-- ·· '"''

Figure 2: Composition de services.

2.3 Etapes de la composition de services

La réalisation d'une application par composition de services comporte plusieurs étapes qui permettent le passage incrémental d'une spécification abstraite vers une composition concrète de services, c'est à dire une composition prête à être exécutée. [12][13]

2.3.1 Spécifications abstraites : lors de cette phase, les fournisseurs de services décrivent et

annonce leur services dans des annuaires (registre). Les attributs fonctionnels (entrées/

sorties) sont nécessaires lors de la combinaison et l'invocation des services tandis que les attributs non-fonctionnels (qualité de services) sont utilisés pour évaluer les services. Cette phase consiste également à identifier les fonctionnalités qui doivent être remplies par

~

(29)

Chapitre 02 Composition de service

l'application résultante de la composition de services. Ces fonctionnalités peuvent êtres spécifiées sous forme d'une requête qui exprime les besoins de l'utilisateur.

2.3.2 Génération des services composites: cette phase consiste à identifier les services nécessaires à la composition afin de répondre aux besoins fonctionnels identifiés au préalable.

Le générateur de composition (ou planificateur) tente de répondre à ces besoins en combinant, selon une stratégie donnée, les services disponibles. Le générateur prend souvent les fonctionnalités des services disponibles comme entrées. Les services composites ainsi générés représentent des candidats pour la réalisation de la composition concrète de services.

2.3.3 Evaluation des services composites: il arri ve souvent que plusieurs services possèdent des fonctionnalités similaires. Il est donc possible que le planificateur génère plusieurs plans de composition (services composites) qui satisfassent les besoins fonctionnels de l' application. Cette phase sélectionne alors, selon une stratégie donnée, un service composite parmi les candidats précédemment identifiés. La méthode la plus communément utilisée est les fonctions d'utilités. Dans ce cas, les services composites sont évalués en se basant sur les informations fournies par les attributs non fonctionnels des services composants. Les services sélectionnés sont préparés pour l'exécution: les services sont configurés et d'éventuelles adaptations sont réalisées.

2.3.4 Déploiement et exécution des services: lors de cette phase, les services sélectionnés et préparés au préalable sont déployés sur les plates-formes d'exécution. Il est ainsi possible d'invoquer ces services pour réaliser correctement et concrètement leur composition.

L'exécution d'un service composite peut être vue comme une séquence de messages échangés selon le modèle de composition. Le flot de données du service composite est défini par le transfert des données de sortie d'un service composant aux prochains services composants qu'il précède directement dans le service composite.

2.4 Classification des méthodes de composition de services

Les approches proposées pour la composition de services peuvent être classées suivant plusieurs aspects notamment le type de contrôle des services, le degré d'automatisation, et la gestion des services.

~

(30)

Degré d'automatisation

Manuelle

Semi- automatique

Automatique

ldltlwd's tl~ compositiott Ill sm'ic's

Gestion de services

Statique

Oynamiqu

Type de contrôles

Ol'IChestration

Chor6graphie

Figure 3: Classification des méthodes de composition de services.

2.4.1 Type de contrôle

Selon le type de contrôle d'exécution des services, une composition de services peut être vue comme une orchestration ou comme une chorégraphie de services. Ces deux points de vue de la composition sont utilisés actuellement dans la technologie des services Web [11].

2.4.1.1 L'orchestration: une composition de type orchestration de services définit un schéma de services abstraits qu'une entité centrale instancie et exécute en fonction des services concrets disponibles. L'orchestration est définie comme un ensemble de processus exécutés dans un ordre prédéfini et ayant un objectif précis. L'invocation des services dans une orchestration est centralisée par un moteur d'exécution, appelé orchestrateur, qui gère l'enchaînement des services à travers une logique de contrôle. La conception d'une orchestration de services nécessite alors de décrire les interactions entre le moteur d'exécution et les services selon un canevas prédéfini. Ces interactions correspondent aux appels, effectués par le moteur d'exécution, d'action(s) proposée(s) par les services composants. La Figure 4 illustre un exemple d'orchestration de quatre services. La requête de l'utilisateur

~

(31)

Chapitre 02 Composition de service

(humain ou application) est d'abord transnùse au moteur d'exécution (orchestrateur). Ce dernier invoque ensuite les services (ici service 1, service 2, service 3 et service 4) selon l'ordre d'exécution préalablement établi [ 14].

Figure 4 : Vue d'ensemble del' orchestration de services.

2.4.1.2 La chorégraphie : la chorégraphie est aussi appelée composition dynanùque dans la mesure où l'exécution des services n'est pas régie de manière statique à l'instar d'une orchestration. Une composition de type chorégraphie n'est pas connue, ni décrite à l'avance, mais elle est construite progressivement. A chaque pas d'exécution, un service choisit le service qui lui succède et implémente ainsi une partie de la chorégraphie. Contrairement à l'orchestration qui dépend d'un orchestrateur central, la chorégraphie permet de décrire la composition comme une alliance de services collaborant pour la réalisation d'un but commun.

Pour concevoir une chorégraphie, les interactions entre les différents services faisant partie de la composition doivent être décrites. La coordination et le contrôle sont assurés par chacun

des services intervenant dans la composition rendant ainsi l'exécution du processus distribuée.

La Figure 5 illustre un exemple de composition de quatre services (servicel, service2, service3 et service4) de type chorégraphie. L'utilisateur (humain ou application) envoie une requête qui est d'abord transmise au premier service (service 1). Ce dernier découvre ensuite le service lui succédant. Une fois le service2 découvert, les deux services (service! et service2) vérifient, par échange de message, la faisabilité de leur communication dans le cadre

de la requête. Si les échanges sont concluants, le résultat de l'exécution du service 1 est

~J

(32)

transmis au service2. Ce processus se poursuit jusqu'à ce que le service 4 termine son exécution complétant ainsi le service requis à l'utilisateur [14].

Service 2

1 1

1 •

1 1

- - - - -· · .s.trvïr...a

Figure 5: Vue d'ensemble de la chorégraphie de services.

2.4.2 Degré d'automatisation

Selon le degré de participation de l'utilisateur dans la définition du schéma de composition, trois types de composition peuvent être distingués : manuelle, semi-automatique, ou automatique. [ 14].

2.4.2.1 La composition manuelle : dans ce type de composition, un expert s'occupe de la

spécification des connexions entre les services à composer et se charge de la sélection des services les mieux adaptés à chaque fonctionnalité. Les limites de la composition manuelle résident, premièrement, dans la découverte et la sélection de services qui posent des

problèmes de passage à l'échelle dans le cas d'un environnement à grand nombre de services.

Deuxièmement, ce type de composition exige un savoir-faire de l'utilisateur qui doit

s'appuyer sur son expertise du domaine. En effet, l'utilisateur se charge d'abord de définir ses besoins en termes de composition de services à travers une requête. Ensuite, il génère à la main via un éditeur de texte, et sans l'aide d'outils dédiés, le schéma de composition en spécifiant les flux de données et de contrôle. Enfin, le schéma de composition généré est transmis à un moteur en vue de son exécution [14].

2.4.2.2 La composition semi-automatique : les méthodes semi-automatiques constituent des outils permettant d'assister l'utilisateur durant le processus de composition. En effet, ces

~

(33)

Chapitre 02 Composition de service

méthodes offrent un certain nombre d'opérateurs graphiques pour aider l'utilisateur à construire le service composite sous la forme d'un workFlow. Ensuite, ces méthodes proposent à l'utilisateur des suggestions quant à la découverte et la sélection des services à composer. Une fois le service composite défini, ces méthodes instancient le workFlow correspondant et le soumettent à un moteur d'exécution. Bien que ces méthodes permettent de résoudre certains problèmes liés aux méthodes de composition manuelle, leur utilisation reste toutefois inadaptée aux environnements de services à large 1' échelle. Par ailleurs, le rôle de 1' utilisateur reste central dans la définition du schéma de composition et dans le choix définitif des services [ 14].

2.4.2.3 La composition automatique : dans ce type de composition, l'intervention de l'utilisateur n'est requise que pour la spécification de ses besoins sous la forme d'une requête de services. Par la suite, le processus de composition est entièrement pris en charge et est réalisé automatiquement de manière tout à fait transparente à l'utilisateur. En fonction des besoins de l'utilisateur, les services sont sélectionnés et composés à la volée en tenant compte des préférences et du contexte de l'utilisateur. Cette composition peut s'effectuer avant ou pendant l'exécution des services. Les méthodes de composition automatique sont souhaitables dans des environnements volatiles, tels que les environnements intelligents ambiants ou les environnements dans un contexte de mobilité où la disponibilité des services est dynamique et les besoins des utilisateurs sont variables et personnalisées [ 14].

2.4.3 Gestion de services

Le passage d'une spécification de composition abstraite à une application exécutable est mis en œuvre en effectuant une sélection de services.

2.4.3.1 Composition statique : une composition est dite statique lorsqu'elle est réalisée au moment de la conception de lapplication. Les services à composer sont sélectionnés et reliés au préalable d'une manière figée, c'est-à-dire, qu'ils ne peuvent pas être changés en fonction du contexte de l'utilisateur; la gestion du flot de données est effectuée a priori. La composition statique, appelée aussi composition proactive ou ofjline, engendre des applications peu flexibles qui parfois ne permettent pas de répondre aux exigences des utilisateurs. Ce type de composition n'est souhaitable que lorsque l'environnement et les services restent statiques ou sont peu évolutifs (14 ].

2.4.3.2 La composition dynamique : une composition de services est dite dynamique si les services sont sélectionnés et composés à la volée en fonction des besoins formulés par

~ Lr

(34)

l'utilisateur. Dans ce type de composition qu'on appelle aussi composition réactive ou on- line, la sélection de services s'effectue « à la volée », suite à l' arrivé d'une requête ; les services sélectionnés sont ensuite reliés pour obtenir un service composite. Autrement dit, la sélection des services à composer et l'établissement des liaisons entre ces services ne sont pas prédéfinies à l'avance, mais dépendent des services disponibles au moment de l'exécution.

Ceci permet d'élaborer différents scénarios de composition qui offrent les mêmes fonctionnalités, mais qui tiennent compte du contexte dynamique de l'utilisateur. La composition dynamique est donc bien adaptée pour répondre aux exigences des environnements dynamiques où la disponibilité des services peut varier dans le temps et que les besoins des utilisateurs sont variables et personnalisées. Cependant, sa mise en œuvre reste difficile en raison des changements fréquents de contextes des utilisateurs et des services dans de tels environnements [ 14].

2.5 Les approches de composition de services

2.5.1 Composition par procédés (W orkflow)

Dans cette approche, le schéma de la composition de services est défini en spécifiant la logique de coordination des services par un procédé. Un procédé, également connu sous le nom du Workflow, est représenté par un graphe orienté d'activités et un flot de contrôle qui donne l'ordre d'exécution des activités. Chaque activité représente une fonctionnalité fournie et réalisée par un service. Cette approche de composition se base ainsi sur la grande similitude qui existe entre un service composite et un W orkflow. En pratique, un Workflow est décrit dans un langage spécifique qui est interprété par un moteur d'exécution. Ce dernier se charge de réaliser l'invocation des services correspondants aux activités du Workflow, la communication entre les services impliqués (routage des événements et des messages d'un service à un autre) et la gestion des erreurs.

[9

(35)

Chapitre 02 Composition de service

Figure 6 : Composition par procédés.

La composition par procédés permet de construire une application (service composite) à base de briques logicielles (services) dont le fonctionnement interne n'est pas connu « boîtes noires». Ce type de composition de services est utilisé pour les services Web dans lesquels le consommateur des services ne détient pas de contrôle des fournisseurs des services impliqués.

En fonction du type de contrôle de la composition, deux catégories de compositions de services par procédés ont été identifiées : l'orchestration de services et la chorégraphie de services. [14].

2.5.2 Composition structurelle (par assemblage)

Dans ce modèle de composition, les services sont fournis par des composants. Chaque composant spécifie clairement, dans des interfaces, les services fournis ainsi que les services requis (dépendances de services) qui lui sont nécessaires afin de réaliser son logique métier.

La composition structurelle permet ainsi de décrire une composition de services comme un assemblage de composants.

CV

(36)

Figure 7 : Composition structurelle.

L'assemblage de composants consiste à configurer et lier les composants qui fournissent les services nécessaires à la composition. En d'autres termes, il s'agit de chercher les correspondances entre les services fournis et les services requis par les composants. Cette correspondance se base notamment sur les aspects syntaxiques et sémantiques afin d'assurer une composition valide. Par conséquent, dans une composition structurelle, les services à composer sont clairement identifiés avec leurs interactions lors de la phase d'assemblage de composants. La logique de coordination entre ces services, qui définit la manière dont la composition de services fonctionne, est spécifiée par le développeur et livrée avec l'assemblage. Par exemple, la figure ci-dessus montre un assemblage de deux composants à services dont la logique de coordination est réalisée par une classe Java [ 14].

2.5.3 Composition par planification

Dans cette approche, la composition de services est vue comme un problème de planification visant à atteindre un certain objectif. Ce problème a été étudié en détail dans le domaine de recherche en intelligence artificielle (IA). Un problème de planification classique comprend une description de l'état initial du monde réel, une description de l'objectif souhaité, et une description des actions possibles qui peuvent être exécutées. Étant donné une représentation des services comme des actions, le problème de composition de services se ramène à un problème de planification de telle sorte qu'à partir de l'objectif de l'utilisateur et un ensemble de services, un planificateur doit trouver une collection de services qui aboutissent à cet objectif. Cette ressemblance démontre la pertinence de la planification pour entreprendre le problème de composition de services.

~

(37)

Chapitre 02 Composition de service

L'hypothèse de base des méthodes de planification de l'IA est que chaque service est une action qui modifie l'état du monde réel à travers son exécution. Puisque les services (actions) sont des composants logiciels, leurs paramètres d'entrée/sortie agissent respectivement comme des pré-conditions et des effets dans le contexte de la planification. Si l'utilisateur peut spécifier les entrées et sorties requises par le service composite alors ce dernier peut être généré automatiquement par des planificateur sans aucune connaissance d'un workflow prédéfini [ 14].

E 1

t

Figure 8 : Problème de planification.

2.5.4 Approches à base de Meta-heuristiques

Une méta-heuristique est un algorithme d'optimisation utilisant des heuristiques, réutilisables pour une large gamme de problèmes d'optimisation.

Plusieurs algorithmes de recherche sémantique (aveugles et heuristiques) des compositions de services sans états sont proposent, ces algorithmes vérifient la compatibilité sémantique du flux de données reliant les constituants de la composition. Plus précisément, les algorithmes s'assurent que le concept d'entrée de chaque service subsume le concept de sortie du service qui le précède.

Dans ce qui suit nous citons les algorithmes proposés par les chercheurs :

La recherche en profondeur d'abord (bornée par une limite de la profondeur).

• La recherche en profondeur itérative (une version qui fait une recherche en avant et une autre qui fait une recherche en arrière).

La recherche heuristique gourmande (gloutonne) : l'auteur propose une heuristique complexe qui englobe plusieurs critères tels que : le nombre de concepts

non satisfaits, le nombre de concepts satisfaits, le nombre de concepts produits en sortie, la taille de la composition.

~

(38)

• L'algorithme génétique : il utilise deux fonctions de mutations (sans croisement) la première permet la suppression d'un élément de la composition, la deuxième permet l'ajout d'un élément au début de la composition.

Dans notre travail on utilisera l'algorithme génétique pour la sélection du service composite optimal.

Un algorithme génétique pour sélectionner des compositions de services est proposé, tout en prenant en compte plusieurs aspects (la compatibilité sémantique des entrées-sorties, l'optimisation des paramètres de Qualité de service, la satisfaction des contraintes globales de 1 'utilisateur), ces aspects sont agrégés en une seule fonction objective.

2.6 Quelques méthodes de composition de service

2.6.1 Un protocole de composition distribué pour les environnements prevasifs [17]

Les auteurs proposent ici un protocole distribué dédiés aux environnements ubiquitaires. Ce protocole est basé sur des brokers qui s'occupent de la composition de services.

Ce protocole est constitué de quatre phases :

1- Le demandeur de service initie la phase de sélection de broker qui analyse la requête composite et élit le nœud broker en conséquence. Le processus de sélection du broker est la phase d'arbitrage du broker. Elle est utilisée pour déterminer le nœud le plus à même d'agir comme un coordinateur de services pour une tâche particulière. De plus, chaque tâche peut être assignée à un broker différent. Ce protocole est capable de s'adapter aux changements de topologies du réseau ainsi qu'aux échecs d'exécution des services.

2- Cela est suivi par la phase de découverte de service où le broker utilise la structure de découverte sous-jacente pour découvrir les services nécessaires pour atteindre le but.

Pour la découverte des services, le broker utilise une architecture distribuée. 11 va se baser sur le protocole GSD et un mécanisme de découverte qui fonctionne selon le principe de la diffusion ce qui accroît fortement l'efficacité de ce processus et permet une plus grande flexibilité.

~

(39)

Chapitre 02 Composition de service

3- De là, on passe à la phase d'intégration des services où le broker calcule les liaisons service/nœud pour le service composite. C'est là qu'on génère le flow de service à exécute (ESF) à partir du flow des descriptions(DSF).

4- La phase d'exécution du service est enfin chargée d'exécuter l'ESF, c'est aussi dans cette phase que les erreurs d'exécution sont gérées en utilisant des check-points pour surveiller l'exécution.

2.6.2 Composition flexible de services d'objets communicants [18]

C' est un mécanisme de composition dynamique, ouvert et sensible au contexte. C' est en fait un composant supplémentaire capable d'interpréter une modélisation des services, de l'exploiter pour évaluer toutes les possibilités afin de trouver un schéma de composition approprié à l'interaction courante puis exécuter les services. Cette infrastructure est constituée de quatre composants :

• les objets de l'environnement: leur rôle est de fournir les services;

• l'infrastructure de gestion de service : elle est chargée de la publication des services, leurs découvertes, et l'interaction entre des services hétérogènes.

• l'infrastructure de gestion des applications : elle fait la composition de services et ce en créant et en faisant évoluer des applications qu'elle va adapter aux besoins des utilisateurs ;

• le système de gestion du contexte: chargé de récupérer les données contextuelles à partir des capteurs et les fournir aux applications.

2.6.3 Composition flexible de services d'objets communicants pour la communication ambiante [19]

Les auteurs présentent ici une infrastructure basée sur les SMAs jouant le rôle de médiateurs entre les besoins des utilisateurs, les fonctionnalités disponibles et les informations de contexte. Cette infrastructure permet la conception d'environnements de communication ambiante qui s'adaptent en composant dynamiquement les fonctionnalités offertes par des environnements variés. Ce Framework est composé de trois couches :

la couche inferieure est constituée de services d'objets communicants qui fournissent les différentes fonctionnalités disponibles dans l'environnement.

~ Lp)

(40)

la couche intermédiaire est une infrastructure de gestion de services d'objets communicants qui permet de publier, de découvrir et d'interagir avec des services hétérogènes.

la couche supérieure est, quant à elle, un système de gestion flexible des applications.

Elle est chargée de créer et de faire évoluer des applications adaptées aux utilisateurs et cela, en faisant de la composition dynamique de services.

2.6.4 Un modèle de QoS pour la composition de services basé sur les requêtes [20]

Dans cette approche, le système est basé sur l'utilisation du modèle de tâche de l'utilisateur (Task Template) pour la composition automatique de services en environnement ubiquitaire. Le modèle de composition de service est basé sur l'intégration de la QoS au schéma de gestion des ressources.

Le système est constitué de quatre composants principaux : le Service Assembly (SA), le Service Discovery (SD), le Service Composition Template (SCT) et le Service Composite Candidats (SCC). Le SA est chargé d'interpréter la description de la tâche et de la composition du service qui lui correspond tout en maximisant la QoS de la réponse donnée à la requête de l'utilisateur. Pour cela, il prend en compte les ressources appropriées et l'estimation de leurs disponibilités. Il introduit également le coût du processus de composition. SA construit une requête en utilisant la description de la tâche que donne l'utilisateur ainsi que les préférences de ce dernier.

La requête de l'utilisateur contient un modèle de composition de service (SCT) qui décrit les services nécessaires à l'accomplissement de la tâche. Cette requête est envoyée au SD. Celui-ci contient les descriptions statiques des services et des dispositifs et il fournit aussi un matchmaking pour les requêtes. Lorsque le SD reçoit le SCT, il va construire les services composites candidats possible (SCCs) à l'aide du matchmaking. Apres la réception des SCCs, le SA va les classer selon la QoS qu'ils offrent.

En plus de ces quatre composants, le système contient un gestionnaire de ressources qui maintient l'état des ressources déployées dans l'environnement. Il souscrit les informations contextuelles pertinentes à partir des critères de validité du gestionnaire du contexte.

Le principal défaut de cette approche est qu'elle n'implémente pas de mécanisme de tolérance aux pannes, ce qui peut être problématique compte tenu de la nature dynamique des

environnements ubiquitaires. En effet, du fait de l'ouverture et de la forte mobilité dans ces

~9

Références

Documents relatifs

Chaque agent possède un tableau (Englemore et al., 1988; Jagannathan et al., 1989) dans lequel il enregistre les propositions des autres agents. D’un point de vue algorithmique,

Cette thèse dénit une approche pour la gestion des conits entre les applications de la maison dans une plateforme orientée services. Cette approche est optimiste et gère les conits

2 Et ce, en application de la loi du 4 mai 1999 limitant le cumul du mandat de parlementaire fédéral et de parlementaire européen avec d’autres fonctions, de la loi spéciale du 4

C'est donc a partir de cette valeur que le nombre de droites constituant le faisceau sera calcule, ce qui represente en fait le cas le plus contraignant pour le

Seuls les membres du personnel qui assurent les services essentiels sont autorisés à entrer au Collège selon un accès restreint, contrôlé et dans le respect des mesures de santé

88 2007 Les enfants âgés de 13 ans atteints de TDAH n'avaient pas de risque carieux plus élevé malgré un comportement de santé bucco-dentaire moins bon que

Cette stratégie de maintenance intégrée consiste à choisir dans un premier temps la machine la plus appropriée pour chaque opération et de déterminer dans un second