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
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
..'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{
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.
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.
~~ •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':::"' '\! ~ ~~ ~
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
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
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
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
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
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
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
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 )
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
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.
~
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
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
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
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.
~
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
~
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
~
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
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
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].
~
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-..___
---... ~