REPUBLIQUE DU SENEGAL
UNIVERSITE CHEIKH ANTA DIOP de DAKAR
FACULTE DES SCIENCES ET TECHNIQUES
Département de Mathématiques et
Informatique
Mémoire de DEA d'Informatique
Option : Réseaux
~~cAsv7sMcE ~~~~~ ~~~~~~~ ~~ 1YECOQTAE~~E ~~
SE~YIC'ES DJ4WS £ES Ç~~LLES 1YE CJ4LC'VL
Présenté et soutenu par Marie
Hélène Wassa Mballo Samedi 25 juillet 2009
Sous la direction de :
Ibrahima NIANG Maître Assistant UCAD
Yahya SLIMANI Professeur Tunisie
Devant le jury composé de : Président
:
Chérif BADJI Professeur UCAD Membres
:
Mamadou SANGHARE Professeur UCAD
Ibrahima NIANG Maître Assistant UCAD
Mbaye SENE Maître Assistant UCAD
Samba NDIAYE Maître Assistant UCAD
Abdourahmane RAIMY Maître Assistant UCAD
Karim KONATE Maître Assistant UCAD
REPUBLIQUE DU SENEGAL
FACULTE DES SCIENCES ET TECHNIQUES
Département de Mathématiques et
Informatique
Mémoire de DEA d'Informatique
Option : Réseaux
~~C~~~SME qyE cJYECO~4EqFE CD'E S SE~~IOFCD$jVS
£~~
ç~~~c's qy~ t)L gLc
Présenté et soutenu par
Marie Hélène Wassa
Mballo Samedi 25 juillet 2009
Sous la direction de :
Ibrahima NIANG Maître Assistant UCAD
Yahya SLIMANI Professeur Tunisie
Devant le jury composé de : Président
:
Chérif BADJI Professeur UCAD Membres
:
Mamadou SANGHARE Professeur UCAD
Mbaye SENE Maître Assistant UCAD
Samba NDIAYE Maître Assistant UCAD
Abdourahmane RAIMY Maître Assistant UCAD
Karim KONATE Maître Assistant UCAD
Résumé
Les grilles de calcul sont des systèmes
distribués à large échelle dont l'objectif est
l'agrégation et le partage de ressources
hétérogènes géographiquement réparties pour
répondre aux besoins des applications de haute performance. La
découverte de services constitue un des problèmes majeur pour ces
grilles. En effet, Plusieurs approches comme l'utilisation des services web ou
les ontologies sont proposées. Cependant, ces mécanismes de
découverte offerts présentent des insuffisances vu que les
critères de recherche de service obtenus sont limités et souvent
non pertinents pour un utilisateur. Dans cet, article nous proposons un
mécanisme de découverte de services flexible et optimisé
basé sur des critères multiples et fournissant des
résultats plus exhaustifs aux utilisateurs.
Mots clés : grilles de calcul, découverte de
services, service web, arbre, recherche multicritère
[Marie Hélène Wassa Mballo] Page 1
DEDICACES
? Je dédie ce travail :
? à mes très chers parents Michel Bocar
Mballo et Bernadette Thiaw ; des êtres exceptionnels qui m'ont permis
d'arriver à ce stade de ma vie
? à mes frères Ernest, Françis et
Alexandre.
? à tous mes professeurs de l'école primaire
à l'université.
? à mes amis de toujours, ceux-là avec qui
je partage mes inquiétudes et mes peines, mes joies et mes
espérances.
[Marie Hélène Wassa Mballo] Page
2
[Marie Hélène Wassa Mballo] Page 3
Remerciements
Je commencerais par remercier Dieu le tout puissant qui m'a
permis de réaliser ce
travail.
Mes remerciements vont aussi à l'endroit de mes
professeurs et encadreurs : Mr Ibrahima NIANG professeur au département
de mathématique-informatique et directeur du centre de calcul et Mr
Yahya SLIMANI professeur à l'université de Tunis, pour leur
confiance, leur aide, leur soutien sans faille, leur modestie, leur
disponibilité, et qui m'ont mis dans de bonnes condition de travail, les
membres du jury : Mr Chérif BADJI, Mr Mamadou SANGHARE, Mr Mbaye
Sène, Mr Samba NDIAYE, Mr Abdourahmane RAIMY, Mr Karim KONATE.
Ma reconnaissance va aussi à l'endroit de ceux qui
m'ont soutenu et qui m'ont aidé tout au long de ma scolarité. Je
pense à mes chers parents : mon père Michel Bocar Mballo qui nous
pousse tout le temps à étudier ma mère Bernadette Thiaw la
meilleur des mamans, je n'ai pas les mots pour la décrire tellement elle
est unique, à mes frères Ernest, Françis, Alexandre
(Boudio) que je taquine tout le temps, à Tonton Charles un ami de la
famille qui est toujours à nos cotés pour nous soutenir mes
oncles, tantes, cousins et cousines.
Merci à tous les camarades de la promotion
spécialement à Pascal Mbissane FAYE(mon cousin) qui a
été vraiment disponible durant mon travail sur le mémoire
avec ses conseils qui m'ont aidé réellement , Ndeye Arame DIAGO
une amie très fidèle , Ibrahima DiANE mon très cher
délégué avec qui j'ai partagé une même salle
durant tout le mémoire, Adama Ndiaye Mme MBOW qui est actuellement en
France qui m'a convaincu à faire la licence informatique et je ne le
regrette pas, Adèle Siga FAYE, Fatoumata BALDE Mme KASSE, Aissatou
GASSAMA, Baba Oumou Ly, Bassirou DIENE, Ousmane DIALLO, Massamba GAYE, Bassirou
NGOM, Ibrahima GUEYE, Fodé CAMARA, Ismaela THIOBANE, Macoumba GUEYE,
Lenad Ahmed, pour toutes ces années d'apprentissage, avec lesquels j'ai
partagé de grands moments.
Merci également à Déthié SARR et
Malick NDOYE qui sont mes aînés, pour leur conseil et leur aide au
début de mon mémoire.
[Marie Hélène Wassa Mballo] Page 4
Merci au personnel du centre de calcul spécialement au
directeur Mr NIANG que je cite encore, à Babacar NGOM, à Bassirou
KASSE, à Assane SECK, à Alboury FALL, à Mandikou BA pour
tout leur aide.
Merci à mes amies Jeannette DIANDY, Rose Michèle
D'ERNEVILLE (Ma star de tous les jours) à mes amis Antoine MANE, Lamine
SARR et particulièrement à Stéphane BASSENE.
Merci aux professeurs du département d'informatique
notamment Mr Joseph NDONG, Mr Idrissa SARR, Mr Mouhamed OULD DEYE, Mr Djamal
SECK, Mr Youssou KASSE, Mr Modou GUEYE, Mr THIOGANE.
Merci aux responsables des salles de cours Mr Cheikh KHOULE,
Mr. Mamadou NDIAYE, Mr Mamadou DJIGO.
Et enfin un grand merci pour toutes les personnes qui me sont
chères et qui m'aiment.
[Marie Hélène Wassa Mballo] Page
5
Titre : 2MDS-Mécanisme multicritère de
découverte de services dans les grilles
Résumé
Les grilles de calcul sont des systèmes
distribués à large échelle dont l'objectif est
l'agrégation et le partage de ressources
hétérogènes géographiquement réparties pour
répondre aux besoins des applications de haute performance. La
découverte de services constitue un des problèmes majeur pour ces
grilles. En effet, Plusieurs approches comme l'utilisation des services web ou
les ontologies sont proposées. Cependant, ces mécanismes de
découverte offerts présentent des insuffisances vu que les
critères de recherche de service obtenus sont limités et souvent
non pertinents pour un utilisateur. Dans ce mémoire nous proposons un
mécanisme de découverte de services flexible et optimisé
basé, sur des critères multiples et fournissant des
résultats de recherche plus exhaustifs pour les utilisateurs.
Mots clés : grilles de calcul, découverte de
services, service web, arbre, recherche multicritère
Title:2MSD- A new Multi-criteria Mechanism for Service
Discovery in grid computing
Abstract
Grid computing are systems distributed on a wide scale whose
objective is the aggregation and the sharing of heterogeneous resources
geographically distributed to come up the high performance applications needs.
The services discovery is one of the major problems for these grids. Indeed,
approaches such as the use of web services and ontologies are proposed.
However, these discovery mechanisms present deficiencies seeing that the obtain
results are limited and often irrelevant. In this paper we propose a mechanism
for services discovery flexible and optimized, based on multiple criteria for
research and providing more comprehensive results for users.
Keywords: grid computing, service discovery, web services, trees,
multicriterion search
[Marie Hélène Wassa Mballo] Page 6
Sommaire
INTRODUCTION GENERALE 11
CHAPITRE 1: LES GRILLES 14
1.1 LES SYSTEMES DISTRIBUES 15
1.1.1 LA NOTION DE TRANSPARENCE DANS LES SYSTEMES DISTRIBUES
16
1.1.2 AVANTAGES DES SYSTEMES DISTRIBUES 18
1.1.3 INCONVENIENTS DES SYSTEMES DISTRIBUES 19
1.1.4 LIMITES DES SYSTEMES DISTRIBUES 20
1.2 LES GRILLES 21
1.2.1 LES TYPES DE GRILLES 22
1.2.1.1 les grappes 22
1.2.1.2 Les grilles de calcul 23
1.2.1.3 Les grilles de données 24
1.2.2 ARCHITECTURE D'UNE GRILLE 25
1.2.4 LES CARACTERISTIQUES D'UNE GRILLE 27
1.3 PROBLEMATIQUES POSEES PAR LES GRILLES 28
CHAPITRE 2:LES SERVICES WEB 30
2.1 LA PROGRAMMATION ORIENTEE OBJET 31
2.2 LA PROGRAMMATION ORIENTEE COMPOSANT
32
2.3 LA PROGRAMMATION ORIENTEE SERVICE
35
2.4 LA GESTION DES SERVICES WEB 37
2.4.1 IMPLANTATION D'UN SERVICE WEB 38
2.4.2 RECHERCHE D'UN SERVICE WEB 39
CHAPITRE 3 : LA REHERCHE DE SERVICE DANS LES GRILLES
41
3.1 LES METHODES ET TECHNIQUES DE DECOUVERTE
42
3.1.1 RECHERCHE DE SERVICE BASEE SUR LA DESCRIPTION ONTOLOGIQUE
43
3.1.2 RECHERCHE BASEE SUR LE WEB SERVICE 45
3.1.2.1 L'utilisation de l'annuaire UDDI 45
[Marie Hélène Wassa Mballo] Page 7
3.1.2.2 Approche basée sur le web service modeling
ontology(WSMO) 46
3.1.3 ETUDE COMPARATIVE DES DIFFERENTES APPROCHES 48
3.2 APPLICATION DES RECHERCHES DE SERVICE DANS LES
INTERGICIELS 49
3.2.1 LA GESTION DES RESSOURCES DANS GLOBUS 49
3.2.1.1 Globus Toolkit 2 50
3.2.1.2 Globus Toolkit3 56
3.2.1.3 Globus toolkit4 60
3.2.2 LA GESTION DES RESSOURCES DANS GLITES 62
3.2.3 COMPARAISON DES DIFFERENTS INTERGICIELS 64
CHAPITRE 4 :MECANISME MULTICRITERE DE DECOUVERTE DE
SERVICE DANS LES
GRILLES (2MDS) 66
4.1 CONSTRUCTION ET FONCTIONNEMENT DE L'ARBRE
67
4.1.1 CHOIX DE NOTRE ARCHITECTURE 67
4.1.2 DESCRIPTION GENERALE 67
4.1.3 LES ALGORITHMES DE GESTION DE SERVICES 69
4.1.3.1 Insertion d'un service 69
4.1.3.2 La recherche au sein de l'arbre 72
4.1.3.3 La suppression d'un service 77
4.2 PLACEMENT DE L'ARBRE DANS LE RESEAU PHYSIQUE
80
4.2.1 APPROCHE CENTRALISEE 80
4.2.1.1 Principes et fonctionnement 80
4.2.1.2 Gestion des services 81
4.2.1.3 Tolérance aux pannes 82
4.2.1.4 Avantages et inconvénients 83
4.2.2 APPROCHE DISTRIBUEE 83
4.2.2.1 Principes et fonctionnement 83
4.2.2.2 Gestion des services 85
4.2.2.3 Tolérance aux pannes 86
4.2.2.4 Avantages et inconvénients 86
4.3 VALIDATION THEORIQUE 87
4.3.1 APPROCHE CENTRALISEE VS APPROCHE DISTRIBUEE 87
4.3.2 2MDS VS ANNUAIRE UDDI 90
4.4 EXEMPLE D'APPLICATIONS 93
4.4.1 INSERTION D'UN SERVICE 93
4.4.2 RECHERCHE D'UN SERVICE 94
4.4.3 Suppression d'un service 95
[Marie Hélène Wassa Mballo] Page
8
CONCLUSION GENERALE 96
REFERENCE ..103
TABLE DES FIGURES
FIGURE1.1 :EVOLUTION DE L'INFORMATIQUE 21
FIGURE1.2 : ARCHITECTURE D'UNE GRILLE
26
FIGURE 2.1 : LES TROIS ACTEURS DE LA SOP
35
FIGURE 2.2 :ILLUSTRATION DU ROLE DE PASSERELLE
JOUE PAR UNE
SERVLET..................................................................................................................................................39
Figure 2.3: découverte de service web à
partir de l'annuaire UDDI 40
FIGURE 3.1 PROCESSUS DU MATCHMAKING
44
FIGURE 3.2 FORMAT D'UN DOCUMENT WSMO
47
FIGURE 3.3 : MODULES DE GLOBUS 50
FIGURE 3.4: VUE D'ENSEMBLE DE GRAM
52
FIGURE 3.5 : DEFINITION DE DEUX CLASSES D'OBJET DE MDS
GLOBUSHOST ET
GLOBUSRESOURCE 54
FIGURE 3.6: REPRESENTATION D'UNE MACHINE A PARTIR
DU MDS 54
FIGURE 3.7: SOUS ENSEMBLE DU DIT DEFINI PAR MDS
55
FIGURE 3.8 MODELE CONCEPTUEL DE MDS
56
FIGURE 3.9 : UTILISATION DES WEB SERVICES DANS LA
GRILLE 58
FIGURE 3.10 VUE D'ENSEMBLE DE GLOBUS TOOLKIT 4
62
FIGURE 3.11 INTRODUCTION DU SERVEUR BDII
63
FIGURE 3.12: LES TROIS NIVEAUX DE BDII
63
FIGURE 3.13: BASE DE DONNEES VIRTUELLE DE R-GMA
64
FIGURE 4.1: STRUCTURE DE L'ARBRE DE SERVICE
68
FIGURE 4.2 ARCHITECTURE D'UNE APPROCHE CENTRALISEE
DE RECHERCHE DE
SERVICES 81
FIGURE 4.3 STRUCTURE DE L'APPROCHE DISTRIBUEE POUR
LA RECHERCHE DE SERVICES
84
[Marie Hélène Wassa Mballo] Page
9
FIGURE 4.4 : EXEMPLE DE METADONNEES U: UNIX, L:
LIBRE, J: JAVA, P: PROPRIETAIRE 85
FIGURE 4.5 : COUT DE MISE A JOUR DANS LES DEUX
APPROCHES 88
FIGURE 4.6 : REPRESENTATION DE L'INFORMATION AVEC
LE 2MDS 92
FIGURE 4.7 : REPRESENTATION DE L'INFORMATIONS AVEC
L'ANNUAIRE UDDI 92
FIGURE 4.8 : PROCESSUS D'INSERTION D'UN SERVICE
93
[Marie Hélène Wassa Mballo] Page
10
TABLE DES TABLEAUX
TABLEAU 3.1 TABLEAU COMPARATIF DES PRINCIPALES
TECHNIQUES DE DECOUVERTE DE
SERVICE 48
TABLEAU 3.2 :TABLEAU DES INTERFACES DEFINIS PAR
OGSA 57
TABLEAU 3.3 : TABLEAU COMPARATIF DES
INTERGICIELS 65
TABLEAU 4.1 VARIATION DU TEMPS DE TRAITEMENT
SUIVANT L'AUGMENTATION DU
NOMBRE DE MACHINES 89
TABLEAU 4.2 COMPARAISON APPROCHE CENTRALISEE VS.
APPROCHE DISTRIBUEE 90
TABLEAU 4.3 COMPARAISON ENTRE L'APPROCHE PROPOSEE
ET LES APPROCHES
BASEES SUR L'ANNUAIRE UDDI 93
[Marie Hélène Wassa Mballo] Page
11
INTRODUCTION
GENERALE
[Marie Hélène Wassa Mballo] Page 12
L'ordinateur occupe, de plus en plus, une place importante
dans nos vies quotidiennes, Les applications informatiques actuelles et futures
utilisent de très larges ensembles de données qui
nécessitent des puissances de calcul et des capacités de stockage
de plus en plus importantes. Il s'est avéré nécessaire de
mettre en place des infrastructures qui peuvent supporter ces charges de calcul
et de stockage [1,2]. Or, un calculateur unique, une grappe
d'ordinateurs ou même un supercalculateur spécialisé, ne
suffisent pas pour mettre à la disposition des utilisateurs les
capacités informatiques dont ils ont besoin pour exécuter leurs
applications
Pour répondre à ces besoins, les grilles de
calcul et de données ont été définies
[3]. L'objectif visé de ces grilles est de mettre
à la disposition des utilisateurs un très grand nombre
d'ordinateurs, (des stations de travail, des supercalculateurs, mais aussi des
bases de données sécurisées et des instruments tels que
des capteurs météorologiques et des dispositifs de visualisation
[4]). Les composants d'une grille sont bien évidemment
distribués car reliés entre eux à travers le réseau
Internet, avec comme objectif de les faire fonctionner comme un ordinateur
unique et très puissant [5].
Du point de vue des utilisateurs, les grilles peuvent
être perçues comme des fournisseurs de services. D'ou un des
problèmes essentiels relatif à l'exploitation d'une grille est
celui de la découverte de services [6]. En effet les
services peuvent être définis comme un ensemble d'applicatifs que
des serveurs mettent à disposition des utilisateurs. Partant du fait que
ces clients ne connaissent pas a priori les ressources disponibles sur la
grille, ils souhaiteraient découvrir les services afin d'exécuter
leurs applications à distance sur les serveurs [5].
Il est important de noter que les mécanismes actuels de
découverte de services manquent de fonctionnalités efficaces et
flexibles. et ils deviennent
inefficaces dans des environnements dynamiques à large échelle
comme dans les systèmes pair à pair.
Dans le cadre de notre travail, nous abordons cette
problématique de découverte de services, en proposant des
méthodes de découverte flexibles basé sur une recherche
multicritère. Notre solution est
[Marie Hélène Wassa Mballo] Page 13
utilisable dans un environnement dynamique à large
échelle (systèmes pairs à pairs) et tient compte de la
topologie du réseau physique sous-jacent.
Dans ce mémoire, Nous commençons d'abord
commencer par un état de l'art sur les grilles. Nous abordons ensuite
les paradigmes de programmation qui vont aboutir à la notion de service
web.
Dans la troisième partie, nous présentons les
méthodes de découverte de service qui ont été
proposées. Dans cette section, les techniques de découverte des
intergiciels globus et glite seront mis en exergue. Et une étude
comparative des solutions étudiées sera proposée Dans la
quatrième partie de notre travail, nous proposons un mécanisme de
découverte de services au sein des grilles. Cette solution sera
validée théoriquement avec des exemples d'application. Enfin nous
terminons par la conclusion et perspectives.
[Marie Hélène Wassa Mballo] Page
14
CHAPITRE 1:
LES GRILLES
[Marie Hélène Wassa Mballo] Page 15
Actuellement dans notre monde, les recherches et les
évolutions autour des techniques de réseaux, des microprocesseurs
et des supports de stockage de données ont fortement contribué
à l'émergence de l'informatique distribuée. Les
applications informatiques modernes (calcul scientifique, datamining,
simulation, météorologie, bioinformatique, traitement du
génome, etc.) sont de plus en plus courantes et nécessitent des
capacités de calcul et de stockage que ne peuvent pas offrir les
ordinateurs classiques. Pour cela la communauté informatique s'est
intéressé aux architectures distribuées à large
échelle, afin d'offrir des solutions pour le stockage de données
et le calcul réparti à un plus grand nombre d'applications et
d'utilisateurs. Parmi ces architectures, nous pouvons mentionner les grilles de
calcul et les grilles de données
1.1 Les systèmes distribués
Un système distribué 171 est un
ensemble de machines indépendantes agissant du point de vue de ces
utilisateurs comme un seul et unique système cohérent. Ces
machines sont connectées à l'aide d'un réseau de
communication 181.
Chaque machine exécute des composantes, par exemple des
séquences de calculs, issues du découpage d'un calcul global, et
utilise un intergiciel (middleware) qui a pour rôle d'activer les
composantes et de coordonner leurs activités.
Le concept de système distribué s'oppose au
concept de système centralisé tel qu'il existait dans les
années 60 191. Un système informatique d'une
entreprise était composé d'une seule et unique machine totalement
monolithique. Cette machine était partagée par tous les
utilisateurs, tous les processus tournaient sur le même processeur.
Si cette machine tombait en panne, c'est tout le
système informatique qui était indisponible. La plupart du temps
le système informatique se trouvait dans une seule salle, avec un seul
poste de contrôle. L'augmentation des besoins de l'entreprise impliquait
l'achat d'une nouvelle machine.
Un système distribué est aussi un système
qui s'adapte facilement à la charge. Le fait d'avoir plusieurs
composants permet facilement d'en ajouter de nouveaux ou alors remplacer un des
composants sans avoir à reconfigurer tout le système.
[Marie Hélène Wassa Mballo] Page 16
Une des propriétés fondamentales d'un
système distribué est sa robustesse . Si un des composants tombe
en panne, ce n'est pas tout le système informatique qui est
indisponible. Il est possible que certains services soit indisponibles
temporairement, mais dans un un système distribué robuste, des
mécanismes ont été mis en place pour que les services
restent disponibles même si une machine tombe en panne. Au pire les
performances du service pourraient baisser. Dans un système
distribué, toutes les procédures pour tolérer la panne de
machines et/ou de services, réparer, remplacer les
éléments défaillants, ajouter de nouveaux
éléments pour s'adapter à l'évolution de besoins
doivent se faire de manière transparente, de telle sorte que
l'utilisateur ne puisse pas se rendre compte de ces pannes
[8].
1.1.1 La notion de transparence dans les systèmes
distribués
Une propriété importante des systèmes
distribués est que la distribution doit être cachée aux
utilisateurs et aux développeurs d'applications. Le système est
vu comme un seul et unique élément .La transparence [8]
est un concept très important dans les systèmes
distribués. En effet, lorsqu'un service est délivré par un
système distribué, la localisation et la complexité de son
fonctionnement doivent être complètement cachées aux
utilisateurs. Nous distinguons plusieurs types de transparence :
· Accès
Un système distribué doit cacher aux
utilisateurs la façon dont les donnés sont obtenues et
manipulées. Par exemple, une application sous Windows ne doit pas avoir
à se préoccuper du fait que les données auxquelles elle
accède se trouvent sur un serveur sous UNIX, que l'accès se fait
de manière séquentielle, indexée ou directe. Cet aspect de
la transparence permet de concevoir des applications distribuées
totalement hétérogènes et indépendantes des
supports physiques.
· Localisation
La localisation physique des donnés dans le
système doit être cachée aux utilisateurs. Pour cela, il
faut attribuer des noms uniques (qui n'ont aucun lien avec leur location
physique) aux ressources du système. Grâce à cette
abstraction, la location d'une ressource n'a pas à être connue de
l'utilisateur. Un exemple de ce type de transparence, est l'utilisation des
URL's. Lorsque qu'un utilisateur tape l'adresse d'un site web, il ne sait pas
où le serveur, qui héberge le site, se trouve
·
[Marie Hélène Wassa Mballo] Page 17
Migration
Un système distribué doit permettre la
migration des applications et des donnés sans que l'utilisateur s'en
aperçoive. Cette migration est utilisée pour répondre
à divers objectifs : régulation de charge, amélioration
des performances, etc.
· Relocation
Il s'agit d'un type de transparence encore plus fort,
puisqu'il s'agit de pouvoir changer la location d'une ressource alors qu'elle
est en cours d'utilisation.
· Réplication
Dans ce type de réplication, c'est la présence
de plusieurs copies d'une donnée qui est cachée à
l'utilisateur. Pour cela, la transparence de location est nécessaire.
L'utilisateur utilise toujours la même adresse, mais c'est le
système qui décide de la copie qui sera utilisée.
· Concurrence
Un système distribué doit cacher le fait que
plusieurs utilisateurs accèdent à une même ressource de
manière concurrente. Cela implique l'utilisation de mécanismes et
techniques pour garder la ressource dans un état cohérent
· Défaillance
Un système distribué doit cacher à
l'utilisateur une défaillance d'un de ses composants, de telle sorte que
l'utilisateur ne doit pas se rendre compte de cette défaillance. Il ne
doit pas également se rendre compte que le système est en train
d'exécuter une procédure de tolérance de panne.
· Persistance
Ce type de transparence existe aussi sur les systèmes
centralisés. Il s'agit de cacher à l'utilisateur que les
données qu'il manipule sont dans la mémoire volatile (RAM) ou sur
le disque dur.
1.1.2 avantages des systèmes distribués
[Marie Hélène Wassa Mballo] Page 18
Les systèmes distribués contrairement aux
systèmes centralisés présentent un certain nombre
d'avantages tels que [10] :
Utilisation et partage des ressources
distantes
Les matériels, logiciels et données peuvent
être accédé à partir de n'importe quelle machine.
· La robustesse
Dans un système distribué, plusieurs machines
travaillent ensemble pour fournir un service ce qui confère au service
une meilleure robustesse comparé à un système
centralisé.
· Scalabilité (extensibilité) :
La Scalabilité d'un système est une
propriété qui lui permet de s'adapter facilement à une
augmentation de sa charge. Typiquement, un système scalable reste
performant lorsque que le nombre de ses utilisateurs augmente. Dans un
système distribué, cela est possible simplement en ajoutant une
nouvelle machine dans le système. De plus cela peut s'avérer une
solution beaucoup plus économique que dans le cas d'un système
centralisé.
· Disponibilité :
La disponibilité est la probabilité qu'un
service soit disponible à un moment donné. Dans le cas d'un
système centralisé, si le serveur est indisponible, le service
l'est aussi. Dans le cas d'un système distribué, la
présence de plusieurs machines permet une conception conférant au
service la possibilité de rester disponible, même si l'un des
serveurs est indisponible.
La puissance
La possibilité de combiner la puissance de plusieurs
machines est très avantageuse, en effet, non seulement les plus
puissants ordinateurs actuels sont extrêmement chers, mais en plus, ils
n'ont pas la puissance nécessaire pour exécuter les calculs en
des temps raisonnables. Combiner la puissance de plusieurs machines de
puissance moyenne revient bien moins cher et l'ajout de nouvelles machines
augmente la puissance globale du système.
[Marie Hélène Wassa Mballo] Page 19
Souplesse
Les systèmes distribués offrent une certaine
souplesse, dans la mesure où ils peuvent faire face aux problèmes
de montée en charge. Plusieurs mécanismes et outils sont
utilisés pour s'adapter à la charge, tels que la
réplication et la migration de tâches et/ou de données.
Tolérance aux pannes
Les systèmes distribués permettent d'être
plus tolérants aux pannes que les systèmes centralisés, en
utilisant la technique de réplication des composants physiques et
logiques qui les composent.
Hétérogénéité
Les composants physiques et logiques d'un système
distribués sont généralement
hétérogènes sur plusieurs niveaux : architectural (niveau
physique), systèmes d'exploitation, langages de programmation,
environnements de développement, environnement d'exécution,
protocoles de réseaux, etc.
1.1.3 Inconvénients des systèmes
distribués
Malgré leurs multiples avantages, les systèmes
distribués ont néanmoins un certain nombre d'inconvénients
que nous allons lister dans ce qui suit :
Certains systèmes distribués utilisent la
notion de serveur central pour répondre à des besoins
spécifiques. Dans ce cas, la panne de ce serveur peut avoir des
conséquences sur le fonctionnement global du système, sauf si des
techniques de tolérance aux pannes ont été mises en
place.
La communication représente l'un des problèmes
fondamentaux des systèmes distribués, et il est d'ailleurs
considéré comme étant la principale faille de ces
systèmes. Deux éléments peuvent avoir une
[Marie Hélène Wassa Mballo] Page 20
conséquence sur les performances d'un système
distribué : (i) une panne partielle ou totale du réseau ; (ii) la
surcharge du réseau.
La sécurité, qui est un problème
transversal aux systèmes distribués, devient plus importante dans
ce type de systèmes qui sont sujets à beaucoup d'attaques, issues
de sources différentes.
Un dernier inconvénient des systèmes
distribués est celui lié à leur gestion et à leur
administration. Etant donné qu'un système distribué
regroupe différentes machines, celles-ci utilisent
généralement des politiques de gestion et d'administration qui
sont hétérogènes et parfois incompatibles. Il faut donc
coordonner l'ensemble de ces politiques pour tirer profit des
potentialités des systèmes distribués.
1.1.4 limites des systèmes distribués
L'augmentation sans cesse croissante de la quantité de
données à traiter, dûe à l'utilisation des
technologies modernes de l'information, tend à rendre l'utilisation d'un
ordinateur classique totalement obsolète. D'une part, les ordinateurs
actuels n'arrivent plus à répondre aux besoins des applications
modernes, et les utilisateurs ont den nouvelles exigences, d'autre part.
Ceux-ci souhaiteraient pouvoir accéder à de l'information
à tout moment de n'importe où, et à partir de n'importe
quel dispositif physique (ordinateur, PDA, téléphone portable,
etc.
Or les systèmes distribués actuels sont
incapables de répondre, de manière satisfaisante et à
moindre coût, à ces exigences.
Une des solutions consisterait à agréger les
capacités de plusieurs ordinateurs pour satisfaire les besoins,
même les plus exigeants, des utilisateurs. Les infrastructures de type
grille permettent de réaliser ce type d'intégration. Cela rend
les possibilités d'évolution quasiment infinies mais pose tout de
même un certain nombre de problèmes dont il faudra
nécessairement prendre en compte. Ces problèmes sont de trois
types : (i) comment mettre en place des infrastructures de type grille
(problème de déploiement) ; (ii) comment profiter, au niveau des
applications, des potentialités de ces infrastructures ; et, enfin,
(iii) comment gérer ces infrastructures.
Pour terminer cette présentation, la figure 1.1 suivante
résume l'évolution de l'informatique depuis les années 60
jusqu'à l'apparition des grilles [11]
Figure 1.1: Evolution de
l'informatique
1.2 Les grilles
Une grille [12] informatique est une
infrastructure virtuelle constituée d'un ensemble de ressources
informatiques potentiellement partagées, distribuées,
hétérogènes, délocalisées et autonomes. Ces
systèmes de grille peuvent répondre à divers besoins des
utilisateurs.
Les grilles vont apporter des solutions par rapport à
certains problèmes [13,14] rencontrés par les
scientifiques dans le domaine de leur calcul tels que : permettre une
adaptabilité, une extensibilité et une évolutivité,
permettre aux différents systèmes administratifs
d'interopérer, permettre une qualité de service ...
La grille est qualifiée de virtuelle car les relations
entre les entités qui la composent n'existent pas sur le plan
matériel mais d'un point de vue logique.
[Marie Hélène Wassa Mballo] Page 21
[Marie Hélène Wassa Mballo] Page 22
Une grille se distingue des autres infrastructures dans son
aptitude à répondre adéquatement à des exigences
(accessibilité, disponibilité, fiabilité, ...) compte tenu
de la puissance de calcul ou de stockage qu'elle peut fournir .
Une grille se compose de ressources informatiques
[14] : tout élément qui permet
l'exécution d'une tâche ou le stockage d'une donnée
numérique. Cette définition inclut bien sûr les ordinateurs
personnels, mais également les téléphones mobiles, les
calculatrices et tout objet qui comprend un composant informatique .
1.2.1 Les types de grilles
Le terme « grille de calcul », a été
introduit pour la première fois en 1990 aux Etats-Unis par I. Foster
[12], elle a été définie pour
décrire une infrastructure de calcul répartie utilisée
dans des projets de recherche scientifique et industrielle
[15].
La notion de grille de calcul s'inspire de la grille
d'électricité (power grid) [12]. Vers le
début des années 1990, la génération
d'électricité était déjà technologiquement
possible et de nouveaux équipements utilisant la puissance
électrique avaient fait leur apparition. Cependant le fait que chaque
utilisateur opère son propre générateur
d'électricité était un obstacle majeur à l'adoption
de cette technologie. Ainsi la vraie révolution était la
construction de grille électrique et les réseaux de transmission
et de distribution associés. L'électricité est ainsi
devenue universellement disponible. C'est cette disponibilité
universelle et économiquement viable (bon marché) qui a permis
aux industries d'adopter cette technologie et d'évoluer et de se
développer par son biais.
Le concept de grille est né en fait d'une constatation
très simple [11]: les nombreux cycles de processeurs
inutilisés des ordinateurs peuvent être cédés,
échangés ou prêtés en vue de les
récupérer lors d'un besoin intensif de ressources de calcul.
Très vite, l'idée s'est étendue pour toutes les autres
ressources informatiques, aussi bien matérielles que logicielles.
Plusieurs types de grilles sont notés, notamment les
grilles de calcul, de données, d'information... même les grappes
peuvent être considérés comme des grilles. Dans la suite
nous verrons quelques types de grille [4].
[Marie Hélène Wassa Mballo] Page
23
1.2.1.1 les grappes
Une grappe (cluster en anglais) est un ensemble d'ordinateurs
reliés en réseau et considérés comme une ressource
unifiée de calcul [16].
Les grappes de calcul haut performance sont des solutions
puissantes, évolutives et rentables pour les environnements de calcul
intensif. La particularité des grappes est que les machines sont
situées dans un même endroit. D'autre part, son administration est
relativement simple car c'est une seule entité qui gère
l'ensemble des composants de la grappe [16].
Les grappes de calcul présentent plusieurs avantages tels
que :
· L'augmentation de la disponibilité
· La facilité de gestion de la montée en
charge
· La répartition de la charge
· La facilité de la gestion des ressources (CPU,
mémoire, disque, bande passante réseau)
Il faut noter que les grappes de calcul représentent
une infrastructure peu coûteuse, car elle consiste à
interconnecter plusieurs ordinateurs, généralement
homogènes, en réseau qui vont apparaître comme un seul
ordinateur ayant plus de capacités. Ce type de grappes est
essentiellement utilisé dans le cadre du calcul parallèle. Ainsi,
il n'est pas nécessaire d'acquérir une machine multiprocesseur
qui couterait beaucoup plus cher que le déploiement d'une grappe
à partir d'ordinateurs séparés et qui offrirait la
même puissance de calcul.
En effet, le coût d'une grappe de calculateurs
évolue linéairement par rapport au nombre de processeurs, ce qui
n'est pas le cas des architectures multiprocesseurs.
1.2.1.2 Les grilles de calcul
La grille de calcul a été mise en place pour
résoudre le problème de manque de puissance de calcul afin de
permettre à des applications complexes de s'exécuter dans des
délais raisonnables [17]. Il serait
[Marie Hélène Wassa Mballo] Page 24
bien évidemment possible d'exécuter ces
applications sur une seule et même machine mais les temps de traitement
seraient rédhibitoires (de l'ordre de plusieurs années pour la
décomposition du génome humain par exemple). Pour cela, il est
donc nécessaire et indispensable d'utiliser des infrastructures plus
performantes.
Dans la panoplie des grilles de calcul nous distinguons
principalement deux types de grilles: les grilles à base de stations de
travail où le service voulu est déployé à la
demande et non préinstallé et les grilles de serveurs qui
requièrent une plus grande puissance de calcul car elles sont
dédiées à des applications de calcul haute performance.
Les avantages des grilles de calcul peuvent se résumer
comme suit :
· Exploiter les ressources sous utilisés
: des études ont montré que les ordinateurs personnels
et les stations de travail sont inactifs la plupart du temps. Le taux
d'utilisation varie entre 5% et 30% . Les grilles de calcul permettront ainsi
d'utiliser les cycles processeurs durant lesquels les machines sont inactives
afin de les mettre à la disposition d'une application nécessitant
une puissance de calcul importante et que les machines qui lui sont
dédiées n'arrivent pas à assurer. Le même
raisonnement peut s'appliquer aux capacités de stockage.
· Fournir une importante capacité de
calcul parallèle : le fait de pouvoir fournir une importante
capacité de calcul parallèle constitue une caractéristique
importante des grilles de calcul. En plus du domaine académique, le
milieu industriel bénéficiera énormément d'une
telle capacité : bioinformatique, exploration pétrolière
etc.
· Meilleure utilisation de certaines ressources
: en partageant les ressources, une grille pourra fournir
l'accès à des ressources spéciales comme des
équipements spécifiques (microscope électronique, bras
robotique ...) ou des logiciels dont le prix de la licence est
élevé. De ce fait ces ressources exposées à tous
les utilisateurs seront mieux utilisées et partagées et ainsi
nous éviterons d'avoir recours à installer du nouveau
matériel ou acheter de nouvelles licences.
·
[Marie Hélène Wassa Mballo] Page 25
Fiabilité et disponibilité des services
: du fait que les ressources fédérées par une
grille de calcul soient géographiquement dispersées et
disponibles en importantes quantités permet d'assurer la
continuité du service si certaines ressources deviennent inaccessibles.
Les logiciels de contrôle et de gestion de la grille seront en mesure de
soumettre la demande de calcul à d'autres ressources.
1.2.1.3 Les grilles de données
Dans les grilles de données les ressources de stockage
et les échanges de données sont essentielles pour
l'efficacité de l'exécution des applications
[4].
Certaines applications, comme la physique des particules,
peuvent générer de larges ensembles de données pouvant
atteindre plusieurs téraoctets voir des pétaoctets. Ainsi il est
impossible de les stocker sur une seule et même machine, d'où la
nécessité de créer des espaces de stockage très
larges en mettant en commun les espaces de stockage de différentes
machines.
Une grille de données ne permet pas seulement de
fragmenter des fichiers et de les stocker dans plusieurs machines. Elle doit
également offrir des mécanismes de recherche, d'indexation,
d'intégrité et de sécurité pour assurer un
accès fiable et permanent aux données. Il faut aussi que la
répartition des données soit transparente pour l'utilisateur
final. En effet, il est impossible de savoir avec exactitude l'endroit
où chaque donnée est stockée. Par exemple un fichier peut
être découpé en plusieurs morceaux et réparti sur
plusieurs machines.
Pour une garantir meilleure disponibilité des
fichiers, il est possible de les répliquer sur plusieurs entités
du réseau. Il faudra alors avoir un mécanisme qui puisse à
la fois répartir la charge sur chaque serveur et garantir la
cohérence des différentes répliques d'un même
fichier.
Pour répondre à ces différentes
problématiques, un certain nombre de projets ont été
lancés à travers le monde. A titre d'exemple, nous pouvons citer
le projet DataGrid [18] qui est utilisé par le CERN,
l'agence spatiale européenne et le CNRS.
1.2.2 Architecture d'une grille
[Marie Hélène Wassa Mballo] Page 26
Une grille se définit une architecture en couches, dont
chacune assure une fonction spécifique [16]. D'une
façon générale, les couches hautes sont axées sur
l'utilisateur, tandis que les couches basses sont plus centrées sur le
matériel (voir figure 1.3).
Figure1.2 : architecture
d'une grille
Dans ce qui suit, nous allons présenter les
différentes couches d'une grille [4] :
Couche réseau : elle assure la connexion
des entre les différentes ressources qui composent une grille.
Couche ressource : cette couche est
constituée des ressources physiques faisant partie de la grille, telles
que les ordinateurs, les systèmes de mémoire, les catalogues de
données électroniques ou d'autres instruments
(électroniques) qui peuvent être connectés directement au
réseau
[Marie Hélène Wassa Mballo] Page 27
Couche intergicielle : les principaux
problèmes rencontrés par les concepteurs de grilles sont souvent
liés à la couche logicielle. En effet, il faut arriver à
rendre invisible l'accès aux couches inférieures (réseaux,
mémoires,...) pour permettre aux développeurs des couches hautes
de faire abstraction de tous les aspects liés aux ressources physiques,
aux systèmes d'exploitation, aux environnements de développement
et aux réseaux de communication. Cette abstraction est supportée
par une couche fondamentale dans les grilles (comme dans les systèmes
distribués), qui est appelée intergiciel ou middleware.
Cette couche va permettre une interaction entre les
utilisateurs, les applications et les ressources de la grille.
Un exemple très connu de middleware pour les grilles
est l'environnement Globus, qui est devenu un standard dans le
domaine des solutions pour le calcul distribué et la
fédération des ressources à une très grande
échelle.
Couche application : dans cette couche, nous
trouvons les applications des utilisateurs.
1.2.4 Les caractéristiques d'une grille
Différents éléments peuvent
caractériser une grille. Parmi les caractéristiques fondamentales
d'une grille, nous pouvons mentionner [6] :
> Existence de plusieurs domaines administratifs
: les ressources sont géographiquement distribuées et
appartiennent à différentes organisations dont chacune dispose de
sa propre politique de gestion et de sécurité. Il s'avère
important de respecter les politiques de chacune de ces organisations.
> Hétérogénéité
des ressources : dans une grille les ressources sont de nature
hétérogène. Cette
hétérogénéité s'applique aux
matériels, aux réseaux et aux logiciels.
> Passage à l'échelle
(scalabilité) : une grille peut être composée de
quelques dizaines de ressources mais également de millions voire des
dizaines de millions de ressources. Cela pose
de nouvelles contraintes sur les applications et les algorithmes
de gestion de ressources.
[Marie Hélène Wassa Mballo] Page 28
> Nature dynamique des ressources : dans
les grilles, le caractère dynamique des ressources est la règle
et non une exception comme dans le cas des systèmes distribués
qui sont plus ou moins stables. Cela pose des contraintes sur les applications
telles que l'adaptation au changement dynamique du nombre de ressources, la
tolérance aux pannes et aux délais...
1.3 Problématiques posées par les
grilles
Les principales difficultés rencontrées avec les
grilles informatiques sont [6] :
· la communication et la coopération des
matériels distants et hétérogènes (par leur mode de
fonctionnement comme par leur performance)
· le développement de systèmes permettant
de gérer et de distribuer efficacement les ressources disponibles dans
une grille
· la conception d'outils de programmation adaptés
au caractère distribué et parallèle de
l'exécution.
· les besoins en terme de réseaux, et qui sont
très importants, engendrent toute une série de contraintes, comme
par exemple le partage de la bande passante entre les différents
composants d'une grille.
· Equilibrage de charge :
l'homogénéité et la stabilité des ressources font
défaut dans les grilles de calcul. Par exemple le passage à
l'échelle peut être à la fois important et brusque. D'autre
part, les réseaux d'interconnexion au niveau des grilles
présentent des performances très diversifiées en ce qui
concerne les largeurs des bandes passantes. Enfin, les tâches soumises au
système peuvent être de nature très
irrégulière. Ces différentes caractéristiques
montrent qu'il est difficile, voire impossible de définir un
système d'équilibrage qui puisse intégrer tous ces
facteurs.
· [Marie Hélène Wassa Mballo] Page 29
La gestion de la sécurité et de l'identification
pose également des problématiques nouvelles dans le cas
grilles
> La notion de service dans les
grilles
Du point de vue utilisateur, une grille peut être
considérée comme un ensemble de services mis à la
disposition des utilisateurs [19]. De ce point de vue, une des
problématiques essentielles, pour l'utilisation d'une grille, concerne
la recherche de service. En effet, un utilisateur, pour utiliser un service,
devra d'abord le localiser. Pour cela, il faut qu'il dispose d'outils qui
l'assistent dans cette recherche de service. La mise en oeuvre de ces outils
nécessite de définir la notion de service de grille. Nous pouvons
définir un tel service, comme un service web particulier qui fournit,
à travers le réseau Internet, des interfaces bien définies
et qui suit des conventions spécifiques [20]. Un
service web peut être localisé grâce à un annuaire
(UDDI).
Nous venons de voir dans ce chapitre l'historique de la
grille, c'est à dire ce qui a motivé son apparition. Nous avons
parlé des différents types de grille, des caractéristiques
d'une grille. Nous avons également noté les inconvénients
de la grille dont le principal est la découverte de services.
Ces services sont définis comme des applications
mises à la disposition des clients, de ce fait au chapitre nous allons
quels outils utilisés pour développer ces services.
[Marie Hélène Wassa Mballo] Page
30
CHAPITRE 2:
LES SERVICES WEB
[Marie Hélène Wassa Mballo] Page 31
Les services étant définis comme des
applications, il est important de savoir comment les développer. De ce
fait nous allons parler des paradigmes de programmation, comme
définition nous pouvons dire que le paradigme est un style fondamental
de programmation informatique qui traite de la manière dont les
solutions aux problèmes doivent être formulées dans un
langage de programmer.
Actuellement avec les besoins des scientifiques
augmentant de jour en jour, les paradigmes de programmation ont connu de
grandes améliorations.
2.1 La programmation orientée objet
Un objet [21] est une structure de
données valuées et qui répond à un ensemble de
messages. Cette structure de données définit son
état tandis que l'ensemble des messages qu'il comprend
décrit son comportement
La programmation orientée objet consiste à
modéliser informatiquement un ensemble d'éléments d'une
partie du monde réel (que l'on appelle domaine) en un ensemble
d'entités informatiques. Ces entités informatiques sont
appelées objets. Il s'agit de données informatiques regroupant
les principales caractéristiques des éléments du monde
réel (taille, couleur, ...). La modélisation objet consiste
à définir, à qualifier dans un premier temps les
éléments sous forme de types, donc indépendamment de la
mise en oeuvre cette phase est appelée l'analyse orientée
objet ou OOA (Object Oriented Analysis).
Après cette phase une solution a été
proposée pour représenter les éléments
définis dans le système informatique, c'est ce qu'on appelle la
conception orientée objet ou OOD
(Object Oriented Design). A la fin de cette phase le modèle de
conception est établi, maintenant il est possible au développeur
de donner corps, au modèle, dans un langage de programmation, c'est qui
est appelée la programmation orientée objet
ou OOP (Object Oriented Programming).
> Avantages de la POO
Un problème se posait avant l'apparition de la POO, en
effet victimes de leur succès, les programmes informatiques doivent
répondre à l'accroissement continu du niveau de complexité
des applications à développer : ils deviennent de plus en plus
complexes et volumineux, donc ces programmes deviennent difficiles à
maintenir.
[Marie Hélène Wassa Mballo] Page 32
Un certain nombre de questions se posent : comment
réutiliser les programmes déjà développés
plutôt que de les réécrire, ce qui signifie comment
gérer la complexité ? Avec l'évolution de l'outil
informatique notamment la montée en puissance des processeurs, la
programmation objet a permis de répondre à ces questions
Dans la programmation orientée objet il faut s'assurer
à identifier les objets pertinents et à faire en sorte qu'ils
collaborent, et ces objets peuvent être réutilisés dans
d'autres contextes applicatifs et c'est ce qui fait tout l'art de l'analyse et
de la conception objet.
> Inconvénients de la POO [22]
Bien que la programmation orientée objet ait vraiment
servie dans la mise en place des logiciels des limites ont été
signalées par rapport à ses offres, en effet avec la crise du
logiciel leur taille et leur complexité croissent plus vite que les
ressources que nous sommes capable de consacrer à leur
développement.
Dans le paradigme orienté objet toutes les
préoccupations ne peuvent pas être encapsulé dans des
modules dominants, ce qui aura pour résultat d'avoir du code
dispersé à travers les modules avec des appels croisés
d'un module à l'autre
De ce fait des soucis de performance et d'efficacité
ont poussé à développer de nouveaux paradigmes
[23], dont le but premier est de programmer plus vite, et plus
simplement pour répondre aux attentes du marché informatique
2.2 La programmation orientée composant
La programmation par composants est un nouveau paradigme de
programmation post-objets qui répond à certaines faiblesses de la
programmation orienté objet. Donc la programmation orientée
composant est juste une évolution de la programmation orientée
objet.
La POC [24,25] n'est pas sans similitudes
avec la POO, puisqu'elle revient à utiliser une approche objet, non pas
au sein du code, mais au niveau de l'architecture générale du
logiciel.
[Marie Hélène Wassa Mballo] Page 33
La POC est particulièrement pratique pour le travail en
équipe et permet d'industrialiser la création de logiciels.
La programmation par composant est donc basée sur le
fait d'intégrer, d'emboîter des composants entre eux pour former
notre programme.
> Le composant
Le composant est une unité indépendante de
production et de déploiement qui est combinée à d'autres
composants pour former une application. L'objet reste au centre du composant
mais l'objectif diffère.
Le code d'un composant peut en effet être
séparé en deux parties. Tout d'abord, les méthodes et
données internes. Un composant peut implémenter des fonctions
qu'il utilise "pour son compte personnel", et qui ne sont pas accessibles de
l'extérieur. On parle de méthodes "privées". Ensuite, le
composant, pour pouvoir être utilisé, doit fournir un moyen de
communication avec les programmes clients. Certaines fonctions sont donc
accessibles de l'extérieur, et dévolues à être
appelées par ces programmes. On parle de méthodes publiques, ou
d'interface.
> Les avantages offerts par la programmation
orientée composant sont les suivants :
· spécialisation:
L'équipe de développement peut-être divisée
en sous-groupes, chacun se spécialisant dans le développement
d'un composant.
· sous traitance: Le
développement d'un composant peut-être externalisé,
à condition d'en avoir bien réalisé les
spécifications au préalable.
· facilité de mise à jour:
La modification d'un composant ne nécessite pas la
recompilation du projet complet.
· facilité de
livraison/déploiement: Dans le cas d'une mise à jour,
d'un correctif de sécurité, ... alors que le logiciel à
déjà été livré au client, la livraison en
est facilitée, puisqu'il n'y a pas besoin de re-livrer
l'intégralité du projet, mais seulement le composant
modifié.
· choix des langages de développement:
Il est possible, dans la plupart des cas, de développer les
différents composants du logiciel dans des langages de programmation
différents. Ainsi, un composant nécessitant une
fonctionnalité particulière pourra profiter de la puissance
d'un
[Marie Hélène Wassa Mballo] Page 34
langage dans un domaine particulier, sans que cela n'influe le
développement de l'ensemble du projet.
· productivité: La
réutilisabilité d'un composant permet un gain de
productivité non négligeable car elle diminue le temps de
développement, d'autant que le composant est réutilisé
souvent.
Bien que la programmation orientée composant soit une
évolution de la POO elle commençait à faire à
certaines limites face aux applications qui demandaient de plus en plus de
ressource
> inconvénients de la programmation
orientée composant [26]
La POC est réellement appréciable dans la
conduite d'un projet de développement, cependant elle pose quelques
désagréments.
Tout d'abord, la POC est une méthode dont le
bénéfice se voit surtout sur le long terme. En
effet, lorsque l'on parle de réutilisation, de facilité de
déploiement, c'est que le développement est sinon achevé,
du moins bien entamer. Mais factoriser un logiciel en composants
nécessite un important travail d'analyse. La
rédaction des signatures des méthodes devra être
particulièrement soignée, car modifier une signature
nécessitera de retravailler toutes les portions de codes du projet qui
font appel au composant, et l'on perdrait alors les bénéfices de
l'indépendance des briques logicielles.
En un mot, si la POC industrialise le développement,
la phase de conception du logiciel prendra un rôle encore plus
important.
Le fait de ne pas connaître l'implémentation
d'un composant (à moins d'avoir accès à la source), peut
également gêner certains chefs de projets qui veulent garder un
contrôle total sur leur logiciel.
Un autre problème qui se pose également c'est
avec les systèmes distribuées à large échelle il
faudra mettre en place des mécanismes qui permettront aux applications
de s'adapter à ces environnements.
Dans la prochaine section nous allons voir un autre type de
paradigme qui est beaucoup utilisé de actuellement
[Marie Hélène Wassa Mballo] Page
35
2.3 La programmation orientée service
Le terme de la programmation orientée service
(SOP) [27] désigne le fait de se concentrer sur «
que fait un bout de code ». Tout comme la POC, la SOP se base sur la
POO.
Dans la SOP les composants coopèrent via des
comportements. Un comportement, ou service, ou interface, permet de
séparer ce qui doit être réalisé (le contrat) de la
manière de le réaliser (implantation)
La SOP fait intervenir fait intervenir 3 acteurs [28]
dans la mise en place d'une application :
· Le client : correspond à
l'application cliente il peut correspondre également à un autre
service
· Le service : le client fait appel au
service pour une tâche précise
· Le registre : appelé
répertoire de service, le client y trouvera les informations à
propos du client. Ce répertoire peut être privé
c'est-à-dire interne à l'entreprise ou public
Figure 2.1 : les trois
acteurs de la SOP
Le service répond à trois fonctionnalités
caractéristiques :
· Il est indépendant
·
[Marie Hélène Wassa Mballo] Page 36
Il peut être découvert et appelé de
manière dynamique
· Il fonctionne seul
Le répertoire de service a un rôle primordial
dans la POS. C'est lui qui reçoit la requête du consommateur, lui
qui découvrira le service approprié, et lui agira en tant que
intermédiaire entre le consommateur et le service. En s'assurant que les
fournisseurs de services informent régulièrement les
répertoires de leurs nouveautés, le consommateur peut constamment
profiter de celles-ci sans pour autant devoir mettre à jour ses
méthodes.
> Apport de la programmation orientée
service
La programmation orientée service répond
à un besoin d'abstraction qui lui-même découle de la
complexité grandissante des projets informatiques, mieux
développer, et surtout mieux maintenir les fonctionnalités
conçues.
Ce paradigme va aider à gérer
l'hétérogénéité des milieux applicatifs, son
objectif est d'autoriser les applications ou service à communiquer et de
travailler ensemble quelque soit leur plate forme respective, donc la POS va
permettre l'accès et la manipulation des données partout.
La POS facilite non seulement les échanges entre les
applications de l'entreprise mais surtout permet une ouverture vers les autres
entreprises
L'architecture suit le modèle de programmation donc
nous aurons une architecture orientée service. Cette architecture repose
fondamentalement sur les services web, en effet elle utilise tous les standards
dédiés aux services web (XML, http, WSDL...) pour s'assurer de
l'interopérabilité de son fonctionnement
Il faudra faire la différence entre une architecture
orientée service (SOA) et les web services, en effet une SOA n'est pas
une technologie mais un principe de conception, tandis que les services web en
sont une implémentation technologique.
[Marie Hélène Wassa Mballo] Page
37
2.4 La gestion des services web
La création de services Web se justifie par
l'architecture orientée service, c'est-à-dire la volonté
de rendre accessible un service qui implémente un logique métier
cachée à des utilisateurs.
Un service web est un service offert par l'intermédiaire
du web. Autrement dit, le web est le média de communication
utilisé, et tous les services accessibles via ce média peuvent
être qualifiés de services web.
L'architecture des services web est constituée d'un
triplet qui assure toutes les caractéristiques requises:
UDDI (Universal Description Discovery and Integration)
[29]
Le référentiel UDDI permet d'exporter des
services Web pour ensuite les offrir à des applications clientes qui
viendront les trouver en effectuant des recherches à partir de plusieurs
critères. IL est essentiellement composé de quatre
éléments:
· businessEntity : contient les
informations sur chaque unité organisationnelle qui publie des
services.
· businessService : décrit
chaque service qu'un businessEntity offre, cette information est purement
descriptive et ne comporte d'instructions pour accéder ou utiliser un
service
· bindingTemplate: regroupe plusieurs
informations techniques destinées à décrire les points
d`accès aux services. Il représente le lien entre les
descriptions abstraites du businessService et des paramètres dont ces
services sont accédés.
· tModel: est le standard qui peut
décrire des détails spécifiques sur un businessService ou
un bindingTemplate. Pour la description il utilise une liste de paire
clé-valeur qui peut être associé à plusieurs objets
de la base de données UDDI.
WSDL (Web Service Description Language)
Permet de définir précisément quels sont
les services disponibles ainsi que la façon dont nous devons interagir
avec ceux-ci. Le WSDL est également fondé sur le formalisme
XML.
· Définition d'importation : le
document WSDL peut importer un autre document XML
· Définition des messages : un
message correspond aux données qui seront véhiculées entre
les participants, c'est-à-dire les applications clientes et les services
web
·
[Marie Hélène Wassa Mballo] Page 38
Définition des opérations : cette
définition est effectuée par l'intermédiaire de la section
portType qui est une énumération de descriptions
d'opérations.
· Définition des liaisons :
l'objectif de cette section est de préciser comment les
opérations vont être traitées par un protocole de
communication. Le protocole de communication utilisée ici est le
protocole SOAP
· Définition des services : cette
section définit le service en question, c'est-à-dire la liste de
ses points d'accès.
SOAP (Simple Object Access Protocol)
Un protocole de communication qui utilise le formalisme XML
pour, à la fois, définir les messages envoyés entre les
applications et représenter les données échangées ;
ce protocole appelé SOAP (Simple Object Access Protocol),
spécifié au sein du W3C. Ce protocole offre un mécanisme
de communication aussi bien pour l'intranet que pour l'Internet. Ce qui
signifie plus précisément, qu'une application envoie un message
SOAP vers une application, que celle-ci traite la demande effectuée par
ce message et renvoie un message de réponse à l'application
appelante.
2.4.1 Implantation d'un service web
La technologie des services web est une évolution des
environnements répartis, en effet beaucoup de fournisseurs
d'environnements répartis présentent aujourd'hui ces
environnements comme des plates formes d'implantation des services web.
En effet un service web n'est qu'une vue d'un service offert
sur le web ou du moins accessible via l'Internet, le comportement du service
offert doit être implanter ; cela implique l'utilisation de technologies
traditionnelles comme l'accès à des bases de données,
l'exécution des procédures de calculs, ..., toute la panoplie des
actions offertes par les plates formes du type environnement réparti.
C'est pour cela les plates formes réparties
traditionnelles telles que CORBA (Common Object Request Broker Architecture),
DCOM (Distributed Component Object Model), J2EE intègrent
progressivement le support des services web.
[Marie Hélène Wassa Mballo] Page 39
La mise en oeuvre d'un service web consiste à
développer une application qui répond à des messages SOAP.
Dans le cas d'une mise en oeuvre du type SOAP/http, la mise en oeuvre d'une
application serveur consiste à développer une servlet qui va
jouer le rôle de passerelle.
Actuellement plusieurs technologies tentent à
intégrer les services web. Nous avons l'environnement J2EE (Java 2
enterprise Edition) défini par Sun pour offrir un environnement de
développement d'applications serveurs écrites en java.
Tomcat qui est un outil de référence en terme de
conteneur de servlets et de JSP (Java Server Page), développé par
la fondation Apache (ASF, apache Software Foundation) sera combiné
à J2EE.
L'intérêt grandissant de tomcat s'explique du fait
que Sun et Apache ont annoncé que ce dernier deviendrait
l'implémentation officielle des spécifications des servlets et
des JSP.
Servlet jouant le rôle de paserelle
SOAP
Appel java vers le code
Implantation du service web
Figure2.2 : Illustration du rôle de passerelle
joué par une servlet
2.4.2 Recherche d'un service web [29]
Le référentiel UDDI permet d'exporter des
services Web pour ensuite les offrir à des applications clientes qui
viendront les trouver en effectuant des recherches à partir de plusieurs
critères.
Nous allons détailler les étapes pour la recherche
de service
1.
[Marie Hélène Wassa Mballo] Page 40
Tout d'abord le service doit s'inscrire auprès d'un
référentiel UDDI en indiquant plusieurs de ses
caractéristiques, y compris sa description WSDL
2. L'application cliente va consulter un
référentiel UDDI afin de sélectionner le service web qu'il
souhaite utiliser
3. Une fois le service sélectionné, sa
description WSDL peut être consultée pour savoir comment interagir
avec celui-ci. Cette description permet de savoir quel message SOAP est
à envoyer et quel message SOAP sera reçu en retour du traitement
souhaité.
4. Il faut à présent contacter le service web
et donc établir la communication avec ce dernier.
5. Le message reçu du coté service Web implique
un traitement. Le service web pouvant être un frontal d'un environnement
réparti, le traitement en cours peut nécessiter à son tour
diverses interactions au sein même du système d'information
impliqué dans le traitement.
6. Si aucune erreur ne se produit, une réponse est
émise à l'application cliente.
Figure 2.3: découverte de service web
à partir de l'annuaire UDDI
Dans ce chapitre nous venons de voir la programmation
objet qui a joué un rôle très important dans le
développement des logiciels, ce paradigme a connu des
améliorations avec les limites qui ont été notées,
de ce fait son évolution a aboutit à la notion de programmation
orienté composant et la programmation orienté service qui va
donner les services web.
Dans le chapitre suivant nous verrons la découverte
de service au sein des grilles, les mécanismes mis en place pour
localiser les services désirés.
[Marie Hélène Wassa Mballo] Page
41
CHAPITRE 3 :
LA REHERCHE DE
SERVICE DANS LES
GRILLES
[Marie Hélène Wassa Mballo] Page 42
Une des problématiques essentielles pour les
grilles est la découverte de service, en effet un service doit d'abord
être localisé avant son utilisation Dans cette partie nous allons
mettre l'accent sur notre problématique d'étude qui est la
découverte de service dans les grilles. La couche intergicielle permet
de découvrir les services dont nous avons besoin en effet il ya
répertoire qui permet d'accéder à des informations de la
grille.
Le gestionnaire de resources [30,31]
est l'élément central de la grille. La gestion des
ressources comprend la découverte de ressource, la surveillance des
ressources, l'inventaire des ressources, la prSovision des ressources,
l'isolation des pannes, un niveau de service de gestion des
activités.
3.1 Les méthodes et techniques de
découverte
Le gestionnaire de ressources est l'élément
central de la grille. La gestion des ressources comprend la découverte
de ressource, la surveillance des ressources, l'inventaire des ressources, la
provision des ressources, l'isolation des pannes, un niveau de service de
gestion des activités. Dans notre mémoire nous allons
plutôt nous intéresser à la découverte de
ressources. Des mécanismes de découverte de service ont
été proposés et dans cette partie nous allons en voir un
certain nombre. Nous étudions les différentes approches en nous
basant sur les critères ci dessous
Langage
Le langage va permettre de formuler une requête ainsi la
description d'un service est crucial pour le processus de découverte. Il
est important d'évaluer l'expression du langage et comment formuler des
requêtes facilement.
Scalabilité
La scalabilité montre comment le système
réagit par rapport aux changements des utilisateurs, des ressources...
il est important d'analyser comment le système réagit face
à une augmentation ou un retrait de ressources. Un autre aspect qui doit
être considéré est comment la scalabilité des sous
systèmes ou des systèmes connexes, affectent la
scalabilité du système général
[Marie Hélène Wassa Mballo] Page 43
Algorithme
Dans un processus de découverte un algorithme est
utilisé pour exécuter ce processus, l'étude de performance
de l'algorithme rend compte de la fiabilité de l'approche
utilisée.
Complexité
L'algorithme utilisé doit pouvoir permettre d'avoir des
résultats dans un temps raisonnable. Un algorithme peut demander
beaucoup de ressources (mémoire, temps, espace disque...) pour parvenir
à un résultat, tandis qu'autre mieux conçu le ferait de
manière plus efficace
brokering
Le brokering consiste à utiliser un agent [32] pour la
découverte de service. L'utilisation d'agents dans le processus de
découverte offre plusieurs avantages car les agents ont un comportement
autonome et sont très intelligents.
3.1.1 Recherche de service basée sur la description
ontologique
Actuellement nous parlons beaucoup de description ontologique
et il est important de connaître sa définition, donc l'ontologie
est un ensemble structuré de termes et concepts représentant le
sens d'un champ d'informations. L'ontologie constitue en soi un modèle
de données représentatif d'un ensemble de concepts dans un
domaine, ainsi que les relations entre ces concepts.
L'ontologie se réfère à la description
d'un service, la description ontologique améliore
l'interopérabilité entre les organisations virtuelles. Dans [33]
IL nous propose un framework de découverte de service avec un
mécanisme de matchmaking de service basé sur la
connaissance ontologique.
Un langage de description est utilisé pour ce type de
description et le premier langage à être utilisé est le RDF
(Resource description Framework Schema) [33,34] qui est un langage de
représentation d'information sur des ressources dans le World Wide Web.
La description des données se fait sous format xml. Pour identifier les
ressources RDF utilise les identifiants web appelés URI et les
données seront représentées sous forme de graphe.
[Marie Hélène Wassa Mballo] Page 44
La description ontologique se base sur l'utilisation d'un
agent qui sera chargé de la description du service en tant que tel et en
donnant tous les détails nécessaires. Dans cette approche la
découverte de service s'effectue en utilisant le processus de
matchmaking, dans ce Framework trois composants sont nécessaires, il
s'agit:
Du fournisseur de service: envoie ses services
au matchmaker
Du matchmaker: joue le rôle
d'intermédiaire entre le fournisseur de service et le demandeur. Ce
dernier est chargé de stocker l'information par rapport aux services
fournis par les fournisseurs.
Du demandeur: permet à l'application
cliente d'utiliser le service voulu. Il consulte le matchmaker pour savoir quel
fournisseur peut lui répondre par rapport à ses besoins.
Le processus de découverte dans le processus de
matchmaking est le suivant:
1) Le fournisseur de service enregistre la description du
service dans un répertoire d'une base de données
2) Le client qui a besoin d'un service envoie la
requête au matchmaker
3) Le matchmaker retourne les résultats au service
demandeur
4) Le service demandeur décide ensuite à quelle
ressource sera utilisé pour satisfaire les besoins de l'utilisateur
Figure 3.1 processus du matchmaking Les
étapes pour le processus de matchmaking :
2. Publication
3. Demande de service
4. Nom de service
5. Demande
6. Réponse
[Marie Hélène Wassa Mballo] Page 45
Cette approche ontologique se base sur un mécanisme de
matchmaking, un matchmaking qui est tout simplement un processus de
découverte d'un fournisseur approprié pour un demandeur en
utilisant un agent médian. L'agent sera chargé de prendre la
requête et de parcourir les noeuds pour faire une correspondance avec les
critères de recherche
> Limitation de l'approche ontologique
Cette approche présente une limite liée à
la gestion centralisée qui s'appuie sur un agent qui est chargé
de parcourir les pairs de la grille, dans le but de savoir si le service est
disponible, et les ressources qui interviennent dans l'exécution du
service
3.1.2 Recherche basée sur le Web service
3.1.2.1 L'utilisation de l'annuaire UDDI
Dans le chapitre 2 nous avons vu comment nous effectuons la
recherche d'un service web à partir de l'annuaire UDDI. Il est possible
d'effectuer la recherche dans le référentiel UDDI sous plusieurs
critères telles que par catégorie, par
service, par fournisseur de service ou en
utilisant le tmodel. Le référentiel donne
l'information nécessaire au client pour accéder au service web
choisi.
> Limitations des services web
· Les web services ne traitent que la syntaxe et pas la
sémantique. L'utilisation de XML permet de structurer et
spécifier les étapes dans la construction d'un document. Ils ne
permettent pas de spécifier le sens à donner au document.
· Les services web ne sont qu'un mécanisme de
transfert de données/ d'informations d'un système à
l'autre. Les services web n'apportent, en aucun cas, plus de valeurs à
l'information déjà possédée. Ils permettent juste
une meilleure diffusion auprès des clients et des fournisseurs.
· Il serait intéressant pour l'utilisateur qu'il
ait des résultats assez pertinents pour la recherche c'est-à-dire
qu'il obtienne des informations sur la fonctionnalité du service. un
autre problème qui se pose également est la recherche par
catégorie, en effet un service peut appartenir à
[Marie Hélène Wassa Mballo] Page 46
plusieurs catégories la question qui se pose c'est ou
classer ce service, et aussi en lançant une recherche nous pouvons avoir
un ensemble de résultats assez vaste.
3.1.2.2 Approche basée sur le web service
modeling ontology(WSMO)
Cette approche est un modèle hybride combinant service
web et la description ontologique. Cette méthode répond en partie
aux limitations des services web.
Nous avons vu que l'information transmise par les services de
grille n'était pas très détaillée et il serait
préférable de faire une description sémantique et c'est ce
qui sera fait avec le web servie modeling ontology
Le Web Service Modeling Ontologie (WSMO) utilise l'ontologie
[35] pour la description de divers les aspects liés au
service web sémantique [36] qui est une infrastructure
permettant l'utilisation de connaissances formalisées en plus du contenu
informel actuel du web. Le WSMO se base sur le Web Service Modeling Framework
(WSMF).
Le WSMO est considéré comme un
méta-modèle pour relater les aspects des services web
sémantiques. La spécification Meta Object Facility (MOF), qui est
un standard de l'OMG (Object Management Group) s'intéressant à la
représentation des métamodèles et leur manipulation, est
utilisée pour spécifier ce modèle, de ce fait nous aurons
une architecture à quatre couches:
· La couche information: comprenant les
données à décrire. Dans cette couche se trouve les
ressources décrites par les ontologies et échangées
à travers les services web.
· La couche modèle comprenant
les métadonnées qui décrivent les données de la
couche information. Dans cette couche nous avons les quatre notions du WSMF qui
sont les ontologies, les services web, les objectifs et les
médiateurs.
· La couche méta-modèle
comprenant les descriptions qui définissent la structure et la
sémantique des métadonnées. Correspondant au WSMO en tant
que tel.
· La couche
méta-méta-modèle comprenant la description de la
structure et la sémantique de la méta-métadonnée.
Le langage de description utilisée dans le WSMO correspond à
cette couche.
[Marie Hélène Wassa Mballo] Page 47
Le WSMF [37] est composé de quatre
principaux éléments pour la description des Web Services
sémantiques:
· Les ontologies qui fournissent de la
terminologie utilisée par d'autres éléments
· Les objectifs qui définissent les
problèmes qui devraient être résolus par des services
Web
· La description des services Web, qui
définissent les divers aspects d'un service Web
· Les médiateurs qui permettent de
passer outre les problèmes d'interprétation.
Un Langage est nécessaire pour représenter
l'information, de ce fait dans cette approche le langage utilisé est le
WSML [38] qui est un langage pour modéliser
les services web, les ontologies. IL se base sur des formalismes logiques, des
descriptions logiques. Pour accroître l'interopérabilité du
WSML les syntaxes se basent sur le XML et le RDF.
IL permet d'importer et d'utiliser les schémas RDF de
la description ontologique. Le WSML présente plusieurs variantes telles
que le WSML-Core qui est le langage le moins puissant de la famille des WSML
avec deux extensions qui sont le WSML-DL et le WSML-Flight, après nous
avons le WSML-Rule qui est une extension du WSML-Flight et enfin nous
retrouvons le WSML-Full qui est un regroupement du WSML-DL et le WSML-Rule,
dons dans la description l'une de ses variantes est utilisée pour
représentée l'information.
Le format d'un document WSMO est le suivant :
Figure 3.2 format d'un document WSMO
> Limitations de l'approche WSMO
Cette méthode répond en partie aux limitations
des services web. Cependant, le problème qui se pose est le
résultat donné aux utilisateurs lors d'une recherche. En effet,
de même que les services web, les critères de recherche dans
l'approche ontologique sont limités et ne prennent pas en compte
l'ensemble des besoins d'information que l'utilisateur devrait avoir pour une
utilisation efficiente des services.
3.1.3 Etude comparative des différentes
approches
Pour mieux comprendre l'étude des approches vues
précédemment nous allons utiliser un tableau comparatif avec
l'ensemble des critères vus précédemment
|
langage
|
scalabilité/
décentralisation
|
algorithme de recherche
|
complexité de recherche
|
Brokering
|
ontologie
|
RDF
|
Limitée avec un agent/ centralisé
|
matchmaking
|
O( n)
|
Les deux
|
Service web
|
xml
|
décentralisé
|
parcours
|
O(n)
|
requête
|
WSMO
|
WSML
|
décentralisé
|
matchmaking
|
O(n)
|
Les deux
|
|
Tableau 3.1 Tableau comparatif des principales
techniques de découverte de service
Langage
Ces trois approches utilisent le langage XML comme langage de
requête qui est actuellement très utilisé du fait de sa
puissance car permettant d'effectuer des recherches très facilement.
Scalabilité et la
décentralisation
Pour ces approches présentées, les services web
sont décentralisées car l'annuaire sera répliqué
sur plusieurs noeuds, la Scalabilité va dépendre de la plate
forme utilisé pour implémenter ces noeuds.
[Marie Hélène Wassa Mballo] Page 48
Complexité de l'algorithme
[Marie Hélène Wassa Mballo] Page 49
Ces trois approches présentent toutes une
complexité de recherche dans une machines, en O(n).
Brokering
L'approche ontologique et le WSMO utilisent un agent pour la
découverte de service cela veut dire qu'un agent logiciel est
chargé d'effectuer la recherche lancée par un utilisateur, tandis
que dans les services web la découverte se fait via des requêtes.
Les deux premières techniques sont meilleures que l'utilisation des
services web.
> Inconvénients des approches
Nous avons constaté des limitations pour ces
approches. Concernant l'approche ontologique le problème qui se pose
c'est qu'il soit centralisé, en effet l'agent parcours l'ensemble des
noeuds physique de la grille pour trouver des descriptions correspondant
à la requête posée par l'utilisateur.
La recherche avec les services web s'effectue grâce
à l'annuaire et les critères de recherche sont le nom du service,
la catégorie ou le fournisseur, cette méthode de recherche est
plutôt efficace pour rechercher des services traitant de commerce
c'est-à-dire le prix, faire des commandes en effet les informations
données par l'annuaire pour un service sont limitées car
l'utilisateur ne peut pas avoir accès à la description.
De ce fait un nouveau concept va être introduire, le
WSMO permettant d'avoir accès à la description du service.
Mais nous constatons toujours une limitation des
résultats fournis, car si nous voulons effectuer des recherches de
service dans les grilles de calcul il serait intéressant pour le client
d'avoir des informations plus détaillées sur le service. Ce qui
signifie donc proposer de nouveaux critères de recherche qui renseignent
sur la fonction des services proposés aux utilisateurs. Pour
résumer nous pouvons dire que ces approches présentent une
limitation sur la pertinence des résultats fournis lors d'une recherche,
car les critères de recherche sont limités.
[Marie Hélène Wassa Mballo] Page 50
Dans la section suivante nous donnons des applications de
recherche de services dans des intergiciels existants.
3.2 Application des recherches de service dans les
intergiciels
3.2.1 La gestion des ressources dans globus [39]
L'intergiciel assure la gestion de la grille, nous pouvons
même dire c'est le coeur de la grille. Actuellement chaque système
de grille possède un répertoire central dans lequel les services
sont classés manuellement dans diverses catégories, et ce
répertoire se trouve dans l'intergiciel, nous allons travailler avec
l'intergiciel globus et voir quel répertoire va permettre d'effectuer la
recherche de services. Dans globus plusieurs versions ont été
proposées, chaque version montre des nouveaux mécanismes de
recherche évoluant au cours du temps.
[Marie Hélène Wassa Mballo] Page 51
Figure 3.3 : modules de globus
Cette figure montre une vue d'ensemble de globus notamment la
version 4 que nous allons voir après. En regardant bien nous voyons que
globus est constitué de plusieurs modules et nous dans notre
étude ce qui nous intéresse c'est le module traitant de
l'information sur les services c'est-à-dire les ressources.
3.2.1.1 Globus Toolkit 2
Gestion des ressources
Les principaux composants de la gestion des ressources sont
le GRAM (Grid Resource Allocation Manager) et le GASS (Global Access to
Secondary storage)
GRAM (GLOBUS RESOURCE ALLOCATION MANAGER)
[39]
GRAM (« Globus Resource Allocation Manager ») est
le nom du composant de Globus permettant la gestion et la supervision des
ressources.
Chaque GRAM est responsable d'un ensemble de ressources
opérant selon une même politique d'allocation spécifique au
site dans lequel elles se trouvent, cette politique est souvent
implémentée par un système de gestion de ressources
locales tel que Condor ou LSF (Load Sharing Facility). Globus contient
plusieurs GRAMs, et chacun est responsable d'un ensemble de ressources
locales.
GRAM fournit une interface standard pour les systèmes
de gestion de ressources locales, de ce fait les outils et les applications des
grilles de calcul peuvent exprimer l'allocation de ressources et le processus
de gestion de requêtes en termes d'API (Application Programming
Interface) et les différents sites peuvent choisir les outils de gestion
de ressources qui leur conviennent. Avec cette API les requêtes sont
exprimées en langage RSL (Resource Specification Language).
RSL est utilisé pour représenter les besoins en
ressources d'une application qui va être exécutée. Une
variété d'agents courtiers implémente un domaine
spécifique de découverte de ressources et une politique de
sélection. Les agents coutiers transforment la requête
progressivement en expressions RSL selon les exigences jusqu'à ce que
l'ensemble des ressources soit identifié.
L'étape finale dans ce processus d'allocation de
ressources, est de décomposer le RSL en un ensemble de RSL et chaque RSL
est alloué au GRAM approprié. Pour une haute performance des
calculs il est
[Marie Hélène Wassa Mballo] Page 52
important de co-allouer les ressources ce qui permet d'avoir
un ensemble de ressources disponibles pour une utilisation simultanée.
Donc dans globus le co-allocateur ressource est chargé de fournir ce
service : décomposition du RSL, distribution de ces RSL sur les
GRAMs.
Figure 3.4: vue d'ensemble de GRAM
Quand un client (« GRAM client ») soumet une
tâche au serveur (« GRAM Server »), la requête est
envoyée au garde barrière (« gatekeeper ») de la
ressource. Ce dernier crée un gestionnaire de tâche (« Job
Manager ») qui lance et supervise le processus et renvoie au client des
informations sur l'état et les résultats de
l'exécution.
La commande globusrun soumet et gère les
jobs éloignés et est utilisé par les outils du client
GRAM.
GASS (Global Access to Secondary Storage)
GRAM utilise GASS pour fournir le mécanisme de
transfert des fichiers de sortie des serveurs aux clients.
Nous venons de voir comment estimer les besoins en ressource
d'une application, mais en parlant d'application c'est un service
installé au niveau de la grille et qu'un utilisateur veut
exécuter il serait judicieux de savoir donc si ce service est disponible
ou pas et ou le localiser pour cela nous allons consulter le service
information
[Marie Hélène Wassa Mballo] Page 53
Le service d'information
Les grilles de calcul dépendent de la
disponibilité de l'information sur l'infrastructure sous jacente. Cette
information comprend:
· Configuration des ressources :
quantité de mémoire, fréquence du processeur, nombre de
processeurs, nombre et type des interfaces réseaux
· Etat instantané d'une ressource :
charge du processeur, mémoire disponible, bande passante du
réseau
· Information sur les applications :
besoins en mémoire, processeur et stockage
Le MDS (Monitoring and Discovering Service)
[40] est conçu pour permettre l'accès à
de telles informations qui permet la découverte et la surveillance des
différents services et ressources de la grille. Ce module utilise les
web services pour publier ces informations.
Ce répertoire va permettre aux utilisateurs et aux
autres applications de découvrir les données concernant les
services et de les superviser.
En effet MDS utilise le standard LDAP (Lightweight
Directory Access Protocol) comme base pour la représentation et
l'accès aux données. Sur chaque machine de la grille, un annuaire
local est renseigné par des programmes appelés
fournisseurs d'information. Ces annuaires sont alors
centralisés sur une des machines de la grille.
Représentation de l'information dans le
MDS
Chaque entrée MDS est identifiée par un nom
unique appelé nom distingué. Pour simplifier le
processus de localisation d'une entrée MDS, les entrées sont
organisées sous une forme hiérarchique, un espace de nom d'arbre
structuré appelé DIT (Directory information tree).
Un nom distingué pour une entrée est construit
en spécifiant les entrées sur le chemin du DIT en partant de la
racine. Le nom distingué se compose de plusieurs attributs dont voici un
exemple :
< hn =
dark.mcs.anl.gov,
ou = MCS,
o = Argonne National Laboratory,
o = Globus,
c = US >
hn= host name, ou= organisation unit, o= organization,
c=country
Chaque entrée comprend 0 ou plusieurs attributs, et
chaque entrée a un type défini appelé sa classe d'objet.
La classe d'objet permet de définir quels attributs seront
associés à chaque entrée et les types de valeurs de ces
attributs. Ses classes d'objets seront d'abord définies pour cela nous
allons montrer la définition de classes d'objet. La classe d'objet est
composée de trois parties:
SUBCLASS: permet d'effectuer une extension de cette classe
à une classe déjà existante MUST CONTAIN: les attributs
qui doivent apparaître obligatoirement
MAY CONTAIN: les attributs optionnels
Un certain nombre d'attributs sont déjà
définis tels que cis (case-insentive strings) correspondant aux chaines
de caractères et le dn (distinguished names) pour le nom
distingué
[Marie Hélène Wassa Mballo] Page 54
Figure 3.5 :
définition de deux classes d'objet de MDS GlobusHost et
GlobusResource
[Marie Hélène Wassa Mballo] Page 55
Figure 3.6: représentation d'une machine
à partir du MDS
Les informations concernant cette entrée ci-dessus sont
représentées comme suit
Figure 3.7: sous ensemble du DIT défini par
MDS
Grid Resource Information Service (GRIS) [41]
: GRIS est le répertoire des informations des ressources
locales provenant des fournisseurs d'information. GRIS enregistre ses
informations à partir du serveur GIIS car il ne reçoit pas des
requêtes d'enregistrement. L'information au niveau du GRIS est mise
à jour quand elle est demandée et mise en cache pour un certain
temps qui est le TTL ; si aucune requête n'est reçue durant le TTL
l'information sera détruite.les serveurs GRIS peuvent
se trouver dans plusieurs endroits dans une grille et contiennent toute
information concernant les machines qui y sont enregistrées. Un serveur
GRIS ne contient jamais les informations concernant toutes les machines d'une
grille pour ne pas charger le serveur
[Marie Hélène Wassa Mballo] Page 56
Grid Index Information Service (GIIS) : GIIS
est le répertoire contenant les index des informations sur les
ressources enregistrées par les GRIS et d'autres GIIS. Il est
considéré comme un serveur grille d'un large volume de
données. Ce dernier contient des informations concernant la localisation
des serveurs GRIS et les noms des machines enregistrées. Ainsi un
utilisateur peut avoir des informations sur une machine particulière en
contactant le serveur GIIS qui a un nom unique. Le GIIS va jouer donc en
quelque sorte le rôle de cache pour les serveurs GRIS.
Fournisseur d'information: ce composant
assure la traduction des informations concernant les ressources selon le
schéma MDS. En ajoutant de nouvelles ressources des fournisseurs
d'information doivent être créés en même temps qui
seront responsables de la traduction de ces informations.
Client MDS: ce composant est basé sur
la commande client de LDAP, ldapsearch. Permet d'interroger le
MDS pour obtenir des informations sur une ressource.
[Marie Hélène Wassa Mballo] Page 57
Figure 3.8 modèle conceptuel de
MDS
3.2.1.2 Globus Toolkit3 [42]
Dans cette version de globus nous voyons l'apparition des
services de grille qui sont tout simplement une combinaison
des services web et les technologies de grille. De ce fait nous allons voir
apparaître de nouvelles notions l'OGSA et l'OGSI
L' OGSA (Open Grid storage
Architecture)
OGSA [43] est née sur la base d'un
changement de paradigme dans le monde du génie logiciel,
c'est-à-dire d'un passage d'une vision orientée système
vers une vision orientée service. Elle permet de marier les services web
et les technologies de grid, son objectif est d'exposer chaque ressource et
chaque noeud de la grille sous la forme d'un service web, en fait il permet de
spécifier les bases des grilles de calcul. OGSA définit la notion
de Service de Grille comme étant un Service Web enrichi par des
fonctionnalités de grille, fournissant un ensemble d'interfaces bien
définies. Ces interfaces adressent des requêtes de
découverte, de création et de gestion d'un service.
[Marie Hélène Wassa Mballo] Page 58
PortType(WSDL)
|
Opération
|
Description
|
GridService
|
FindServiceDate
|
Trouver les informations concernant l'instance du service
|
SetTreminationTime
|
Indiquer le temps de terminaison d'une instance d'un service
|
Destroy
|
Terminer une instance d'un service
|
NotificationSource
|
SuscribeToNotificationTopic
|
S'inscrire pour recevoir des notifications lorsque certain
évènement se produisent au niveau d'un service
|
NotificationSink
|
DelivrerNotification
|
Notifier la survenue d'un évènement
|
Registry
|
DelivrerService
|
Enregistrer un service auprès de l'annuaire
|
UnregistrerService
|
Enlever un service auprès de l'annuaire
|
Factory
|
CreateService
|
Créer une nouvelle instance d'un service
|
Tableau 3.1 :tableau des interfaces définis
par OGSA
L' OGSI
En se basant à la fois sur les technologies de grille
et les Services Web, l'OGSI définie les mécanismes de
création, de gestion et d'échange d'informations entre les
services de grille. Cet échange comprend la découverte des
services déjà créés et leur utilisation qui permet
une gestion des services sur le long terme tout en étant
sécurisé et résistant aux pannes. OGSI spécifie les
services à implémenter pour enrichir OGSA, ces services sont les
suivants :
· Prot Type extension
· Factory : permet de créer de
nouvelles instances d'un service de grille. Il retourne le Grid Service Handle
(GSH) comme décrit ci dessous, et maintient un ensemble
d'éléments qui peuvent être demandés.
·
[Marie Hélène Wassa Mballo] Page 59
Grid Service Handle (GSH) c'est un URL
utilisé comme nom global pour une instance de service pour toute sa
durée.
· Notification: permet aux clients
d'être informés de certains évènements survenant au
niveau de la grille
· Grid Service Reference (GSR) : permet
de spécifier une instance et une version bien précise d'un
service. Un GSR a une durée de vie limitée et pourra varier
durant le cycle de vie du service.
· Query permet de donner le langage de
requête utilisé pour trouver des informations par rapport à
un service, donc le langage utilisé dans ce cas est le XPath ou le
XQuery
· Registry permet d'enregistrer
périodiquement les services de grille
· Data Elements : permet d'associer
à chaque instance des opérations pour contrôler et modifier
la valeur des données disponibles
· Lifecycle Management : permet de
gérer la durée de vie des instances de service
Ces services sont fournis par un service nommé
Service Index qui est un service d'information utilisant un
Framework extensible pour la gestion des données statiques et
dynamiques
Au niveau des services des web il y a l'intervention des
trois acteurs, de même dans le cas des services web avec des
fonctionnalités de grille nous avons également l'intervention de
ces trois acteurs et à la place de service nous retrouvons les
applications et données qui se trouvent au niveau des ressources
physiques. Le schéma ci-dessous montre l'utilisation des services web
avec des fonctionnalités de grille:
Figure 3.9 : utilisation
des web services dans la grille
Les trois caractéristiques des services web avec des
fonctionnalités de grille sont les suivantes:
[Marie Hélène Wassa Mballo] Page 60
UDDI
Est utilisé pour trouver et utiliser les services de
grille
· BusinessEntity : dans la grille ce
composant peut être utilisé pour séparer
hiérarchiquement et former des relations entre les différents
groupes organisationnels au sein d'une grille ou de plusieurs grilles
· BusinessService
· bindingTemplate
· tModel
Cependant, UDDI conçu comme un système
d'annuaire d'entreprise a certaines limitations qui compliquent donc la
découverte de ressources dans la grille, comme exemple de
difficulté que rencontrent l'UDDI est la nature dynamique de
l'information (charge CPU...), qui requiert de fréquentes mises à
jour.
Pour remédier à ces limitations la
découverte se fera par une approche d'agent ou de
requête.
GWSDL (Grid Web Service Description
Language)
Il a une structure très similaire au WSDL. Comme vu
précédemment OGSI a la possibilité d'ajouter de nouvelles
interfaces ou les redéfinir. Le portType de WSDL sera redéfinit
en y ajoutant de nouveaux attributs en fonction des besoins, ceci permettra
à l'utilisateur de connaître l'identifiant et les interfaces du
service et il pourra également connaître son état
SOAP (Simple Object Access Protocol)
Permet la transmission et la réception de messages
pour l'accès aux ressources distribuées. L'utilisation de SOAP
sur HTTP est très idéale pour les services de grille
> Service Web et Service de
grille
Un Service Web a certaines limitations, il est sans
état (stateless) de façon qu'il ne puisse pas sauvegarder le
résultat d'une invocation à une autre.
[Marie Hélène Wassa Mballo] Page 61
Une autre limitation est la non persistance,
c'est-à-dire si deux clients invoquent le même Service Web et que
le premier client décide d'arrêter ce service (arrêter le
container du services), le deuxième client sera pénalisé
et ne pourra pas profiter de ce Service Web. Le container d'un Service Web ne
peut pas faire la différence entre deux invocations différentes
du même service.
Cependant, les services de grille ont résolu ces
problèmes grâce au "service Factory" qui permet d'instancier le
service de grille et de retourner le GSR et GSH, donc chaque service de grille
aura un nom unique utilisé pour l'identification. De plus les services
de grille supportent la notion d'"Elément de Données de Service
(Service Data Element)" qui permet d'associer à chaque instance des
opérations pour contrôler et modifier la valeur des données
disponibles, et grâce à la gestion du cycle de vie (Lifecycle
management), on peut faire la gestion des durées de vie des instances
des services de grille. Le service "Notification" permet aussi de
bénéficier des interfaces pour enregistrer les inscriptions des
instances et délivrer des notification si certains
événements surviennent (exemple de modification des
données).
Avec ces informations précédentes nous pouvons
tout simplement dire que les services de grille sont des services web
enrichis
Cette version 3 de globus a été une grande
évolution de globus en introduisant les services web qui prennent
actuellement une grande place dans les applications scientifiques, mais cette
notion de
service web sera toujours introduite en y apportant des
modifications, de ce fait nous allons voir la version 4 de globus qui migre
carrément vers les services web
3.2.1.3 Globus toolkit4
Cette version 4 de globus migre entièrement vers les
services web Le globus toolkit 4 [44] utilise un autre langage
beaucoup plus puissant qui est le langage xpath, les données seront
représentées en utilisant un document xml . Le WSRF (Web Service
Resource Framework) défini un Framework pour modéliser et
accéder aux ressources en utilisant que les services web.
[Marie Hélène Wassa Mballo] Page 62
De ce fait dans le MDS4 des services nommés
aggregator seront chargés de collecter l'état actuel
d'une information provenant des sources d'information. Ces services aggregator
sont construits sur le Framework aggregator qui est un
framework logiciel. Nous distinguons trois services aggregator:
· Service index: il joue à la
fois le rôle de répertoire et de
cache. il met en cache les
dernières valeurs de toutes les données, ce qui veut dire que les
données ont une durée de vie bien déterminée. Ce
service d'index a un rôle similaire à l'annuaire UDDI.
· Service trigger: exécute les
actions spécifiées par les utilisateurs (tel que l'envoie d'email
ou générer l'entrée d'un fichier log) chaque fois que
l'information receuillie correspond aux critères définis par
l'utilisateur.
· Service archiver : stocke
l'information source dans une base de données efficaces, cet service est
en cours de construction
L'aggregator Framework obtient l'information via un composant
l'aggregator sources qui est une classe java une interface
collectant l'information sous format xml. Nous distinguons trois types
d'aggregator source
· Query Aggregator Source : collecte
l'information sur une ressource enregistrée au niveau de la grille.
· Subscription Aggregator Source
collecte les propriétés d'une ressource en utilisant le
WS-Notification subscription. Les données sont délivrées
quand les propriétés de la ressource sont changées
plutôt que de le faire périodiquement.
· Execution Aggregator Source qui
exécute un administrateur de programme fourni pour recueillir des
informations.
Information Provider
Ce composant est chargé de collecter l'information et
de la traduire selon le schéma défini pour le langage
utilisé dans la description des requêtes.
WebMDS
[Marie Hélène Wassa Mballo] Page 63
Permet aux utilisateurs d'accéder aux informations du
MDS via un simple navigateur web. Ceci permet de s'affranchir de l'installation
d'un logiciel supplémentaire.
Ce module est réalisé grâce à un
servlet qui permet de récupérer un document XML et de le
convertir grâce à une transformation XSLT.
Figure 3.10 vue d'ensemble de globus toolkit
4
3.2.2 la gestion des ressources dans glites
Glite [45] est considéré comme
une évolution de globus, donc glite va apporter des solutions par
rapport à certaines limitations rencontrées au niveau de globus.
Glite suit une architecture entièrement décentralisée, ce
qui signifie qu'il sera facile de relier le logiciel à d'autres services
de grille.
Le service d'information
Dans ce service nous avons deux modules: le MDS
utilisé pour la découverte de ressources ainsi que la publication
de leur état et le R-GMA (Relational Grid Monitoring Architecture)
utilisé pour la facturation, le suivi, et la publication des
informations sur les utilisateurs.
Pour résoudre les problèmes de montées
en charge au niveau du MDS de globus il ya l'introduction du serveur BDII
(Berkeley Database Information Index). Le BDII a la même
fonctionnalité que le GIIS, avec une implémentation
différente en effet elle permet une meilleure gestion de cache, il est
composé de trois niveaux :
·
[Marie Hélène Wassa Mballo] Page 64
resource-level BDII l'information fournit par le
fournisseur d'information est publié via ce serveurs
· Site-level BDII : permet de stocker et
de publier les données provenant de tous les resource-level BDII
· Top-level BDII: se situe au sommet de la
hiérarchie. A ce niveau BDII donne une vue d'ensemble de l'ensemble des
ressources de la grille. Ces BDII agissent comme des caches en stockant
l'information sur l'état des grilles dans leur base de données
Figure 3.11 introduction du serveur
BDII
[Marie Hélène Wassa Mballo] Page 65
Figure 3.12: les trois niveaux de
BDII
R-GMA (Relational Grid Monitoring
architecture)
R-GMA est une implémentation relationnelle à base
de service web du GMA (Grid Monitoring architecture) [46]
standardisé par le GGF (Global Grid Forum). De ce fait
nous rencontrons une architecture à trois composants:
· Producteur: fournit l'information,
enregistre dans son répertoire et décrit le type et la structure
de l'information fournit.
· Consommateur: effectue une
requête, consulte le répertoire pour voir quel type d'information
est disponible et contacte le producteur pour obtenir l'information.
· Répertoire: établit la
communication entre les producteurs et les consommateurs
R-GMA utilise un sous ensemble de SQL comme requête de
langage. L'utilisateur publie ses tuples au producteur en envoyant une
requête SQL.
R-GMA présente ses informations dans une base de
données virtuelles contenant un ensemble de tables. Le schéma
contient le nom et la structure de chaque table virtuelle dans le
système.
[Marie Hélène Wassa Mballo] Page 66
Figure 3.13: base de données virtuelle de
R-GMA
3.2.3 Comparaison des différents intergiciels
Pour comparer les intergiciels présentés
ci-dessus nous avons choisi un certain nombre de critères telles que
:
· Collecteur d'information qui sera
chargé de collecter l'information et de le traduire selon le
schéma défini
· Serveur d'information consulté
par le composant client pour trouver l'information
· Serveur d'information agrégée
les serveurs d'informations le consulte pour trouver les
données dont ils doivent traiter
· Serveur répertoire sert de
répertoire pour l'ensemble des serveurs
· Langage de requête le langage
utilisé pour exprimer les requêtes
· Décentralisation un
système décentralisé est plus performant un système
centralisé
|
GLOBUS
|
Glite
|
propriétés
|
MDS2
|
MDS3
|
MDS4
|
MDS-glite
|
R-GMA
|
Collecteur d'information
|
Fournisseur d'information
|
Fournisseur d'information
|
Fournisseur d'information
|
Fournisseur d'information
|
producteur
|
Serveur
d'information
|
GRIS
|
Service index
|
Serveur index
|
GIIS
|
Servlet producteur
|
|
[Marie Hélène Wassa Mballo] Page 67
Serveur
d'information agrégée
|
GIIS
|
Service index
|
Serveur index
|
BDII
|
producteur
|
Serveur répertoire
|
GIIS
|
Service index
|
Serveur index
|
BDII
|
répertoire
|
Langage de
requête
|
Ldap
|
XPath
|
XPath
|
Ldap
|
SQL
|
décentralisé
|
Oui:
hiérarchique avec Ldap
|
Oui: utilisation
des services
web
|
Oui: Utilisation
des services web
|
Oui: BDII avec 3 niveaux
|
Oui: Base de données virtuelles unique
|
|
Tableau 3.3 : tableau comparatif des
intergiciels
A la lecture du tableau 3.3, nous constatons que la
dernière version de Globus est très puissante avec le langage de
requête Xpath et l'utilisation des services web. Concernant gLite deux
modules permettent de découvrir les services. Il s'agit de MDS-gLite qui
améliore le MDS2 de Globus, et de R-GMA qui, a une architecture
similaire à celle des services web.
Dans ce chapitre nous avons étudié des
approches de découverte de services au sein des grilles. Dans cette
étude nous avons montré les avantages et les inconvénients
de chacune de ces approches.
Avec ces limitations notées au sein de ces
approches, nous allons proposer dans le chapitre suivant un nouveau
mécanisme de découverte de services.
[Marie Hélène Wassa Mballo] Page
68
CHAPITRE 4 :
MECANISME
MULTICRITERE DE
DECOUVERTE DE
SERVICES DANS LES
GRILLES (2MDS)
[Marie Hélène Wassa Mballo] Page 69
Dans ce chapitre, nous présentons notre solution de
découverte de services dans les grilles. Notre approche consiste
à améliorer la recherche au niveau de l'annuaire UDDI, en
permettant un accès plus rapide à l'information, avec la
combinaison de plusieurs critères de recherche lors d'une requête
envoyée par un utilisateur.
Pour rendre la recherche plus flexible et efficace,
l'information est représentée sous la forme d'un arbre qui permet
de limiter la masse d'informations à traiter.
4.1 Construction et fonctionnement de l'arbre
4.1.1 Choix de notre architecture
Notre architecture se base principalement sur le
modèle de service web qui est la plus adéquate par rapport
à nos besoins. Notre objectif est de mettre en place une solution de
gestion et de découverte de service permettant un accès rapide
à l'information avec des critères de recherche qui offrent aux
utilisateurs la possibilité de mieux percevoir la fonctionnalité
d'un service donné. Une première démarche serait
d'utiliser La solution WSMO qui apporte une amélioration par rapport au
traitement sémantique de l'information dans les services web. Mais comme
dans le cas de l'approche service web, les critères de recherche
proposés dans WSMO sont aussi limités.
L'approche de recherche de service dans les grilles que nous
proposons se base donc sur la technique des services web avec des
fonctionnalités telles que: la représentation et la gestion des
services. Notre proposition est ainsi motivée par deux
éléments : (i) les limitations des méthodes de recherche
basée sur l'annuaire UDDI ; (ii) les limitations de la solution hybride
basée sur les services web et les ontologies (WSMO).
4.1.2 Description générale
Il est important de noter que les approches de
découverte de service actuelles sont très limitées dans la
description des critères de recherche. La plupart d'entre elles
n'offrent qu'un nombre restreint de critères qui sont la
catégorie, le nom du fournisseur et le nom du service. Ce qui pose un
vrai problème pour l'identification optimale des services offerts. Dans
notre mécanisme, nous proposons d'intégrer cinq (5) autres
critères qui nous semblent importants pour un utilisateur, à
savoir le système d'exploitation, la licence, le langage de
développement, les fonctionnalités du service et son emplacement
dans la grille.
[Marie Hélène Wassa Mballo] Page 70
En plus, notre proposition utilise une structure d'arbre pour
représenter les services disponibles dans une grille. Dans ce cas chaque
critère représente un noeud logique et constitue un niveau de
l'arbre ainsi nous modélisons un noeud physique par un ensemble de
noeuds logiques formant l'arbre de services. Il est important de noter que
l'arbre peut grandir en largeur du fait que d'autres services soient
insérés. Nous notons également que les valeurs des noeuds
logiques suivant un niveau, sont classées par ordre lexicographique.
Donc, nous avons un arbre de services qui a une profondeur de
cinq (5), y compris la racine. Les quatre (04) niveaux les plus bas sont
définis comme suit (voir figure 4.1):
· Le niveau 1 permet de définir le type de
système d'exploitation dans lequel fonctionne un
service.
· Le niveau 2 est relatif au type de licence
(libre ou propriétaire) associé au service.
· Le niveau 3 définit le langage
dans lequel a été développé le service.
· Le niveau 4, feuille dans laquelle nous trouvons les
informations relatives à un service : le nom, site
d'implantation, description des fonctionnalités du service.
Notre mécanisme de gestion et découverte de
services s'appuie sur trois algorithmes (insertion, recherche et suppression)
avec des complexités optimisées que nous présentons dans
la suite du document.
Figure 4.1: structure de l'arbre de
service
[Marie Hélène Wassa Mballo] Page 71
4.1.3 Les algorithmes de gestion de services
Concernant la gestion des services, nous définissons
trois algorithmes qui sont : l'insertion, la recherche et la suppression.
Ensuite nous étudions la complexité des différents
algorithmes en considérant les paramètres suivants :
A : correspond au nombre de noeuds logiques du
niveau 1 qui peut varier de 1 à nsyst
B : correspond au nombre de fils maximum que
peut avoir un noeud du niveau 1, et ce paramètre varie de 1 à
nlic . Comme nous l'avons écrit dans la
partie 4.1.2, la licence ne peut être que deux types soit libre ou
propriétaire, donc nlic=2.
C : représente le nombre de fils
maximum que peut avoir un noeud du niveau 2. Ce nombre varie de 1 à
nlang.
D : représente le nombre de fils que
peut avoir un noeud du niveau 3. Cette variable est comprise entre 1 et
nserv.
Dans notre mémoire nous allons calculer la
complexité dans le pire des cas, c'est-à-dire nous allons
considérer que les valeurs maximales des paramètres cités
ci-dessus. Nous déterminons la complexité temporelle dans ce
mémoire, puisque ce qui est le plus important dans un algorithme c'est
d'exécuter des calculs dans des délais raisonnables.
4.1.3.1 Insertion d'un service
Un service hébergé par un serveur doit se
trouver dans l'arbre de services, dont l'évolution dépend des
arrivées et des départs des services.
Un noeud pair, voulant hébergeant un service, lance
une requête xml d'insertion au niveau de son arbre. Cette requête
prend comme paramètre le système d'exploitation,
la licence, le langage, le nom du
service, l'emplacement physique et la
description.
Lors de ce processus d'insertion, une recherche est
effectuée d'abord pour savoir si le noeud logique à
insérer ne se trouve pas déjà dans l'arbre.
Dans notre algorithme, l'opération de création
de noeuds est faite lorsque le noeud logique ne se trouve pas dans l'arbre.
Cette opération utilise deux fonctions : CreerNoeud(v),
ou v représente la valeur à insérer dans le
noeud logique et CreerNoeudfils(v) qui permet la
création des fils du nouveau noeud logique.
METHODE inserer
ENTREE A :arbre, syst :chaine,
lic :chaine ,lang :chaine, nomserv :chaine, @IP :nombre, description
:chaine
nfilsg :Noeud //noeud fils gauche du noeud courant
nfrdt :Noeud //noeud frère droit du noeud courant
nc :Noeud //nc est le noeud courant
nc(-A.racine
nc(-nfilsg
[Marie Hélène Wassa Mballo] Page
72
Tant que nc?null et nc.valeur?syst
et nc.valeur<syst //parcours du niveau 1
nc(-nfrdrt //nc.valeur=valeur contenue dans le noeud
courant
Fin tant que
Si nc=null ou
nc.valeur>syst
CreerNoeud(syst) //création d'un noeud
contenant la valeur du système
CreerNoeudfils(lic)//création du noeud fils
contenant la licence
CreerNoeudfils(lang)//création du noeuf fils
contenant le langage
CreerNoeudfils(nomserv,@IP,description)
Fin si
Si nc.valeur=syst
nc(-nfilsg
Tant que nc?null et nc.valeur?lic
et nc.valeur<lic /parcours du niveau 2
nc(-nfrdrt
Fin tant que
Si nc=null ou
nc.valeur>lic
CreerNoeud(lic)
CreerNoeudfils(lang)
CreerNoeudfils(nomserv,@IP,description)
Fin si
Si nc.valeur=lic
nc(-nfilsg
Tant que nc?null et nc.valeur?lang
et nc.valeur<lang /parcours du niveau 3
nc(-nfrdrt
Fin tant que
Si nc=null ou
nc.valeur>lang
CreerNoeud(lang)
CreerNoeudfils(nomserv,@IP,description)
Fin si
Si nc.valeur=lang
CreerNoeudfils(nomserv,@IP,description)
Fin si
Fin si
Fin si
Fin inserer
Etude de la complexité de l'algorithme
d'insertion
[Marie Hélène Wassa Mballo] Page
73
[Marie Hélène Wassa Mballo] Page 74
Nous rappelons que les opérations de création de
noeud dans l'arbre ont une complexité égale à 1. Pour
déterminer la complexité, nous avons les éléments
suivants :
· L'instruction 1 de l'algorithme d'insertion s'effectue
en O(nsyst), puisque nous cherchons l'existence du système
d'exploitation dans l'arbre avant de créer un nouveau noeud logique.
· L'instruction du bloc 4-9 de cet algorithme est une
constante qui s'effectue en O(5), puisque nous faisons un test sur la valeur du
noeud courant et ensuite un appel de quatre fois à l'opération de
création d'un noeud logique. La complexité de ce bloc est
inférieure à celle du bloc 10-34, donc nous ne comptabiliserons
que cette dernière.
· L'instruction du bloc 10-34 regroupe plusieurs
instructions, nous allons voir la complexité de chacune d'elles
o L'instruction 12 s'effectue en O(2) puisque une comparaison
est faite entre les noeuds logiques du niveau 2 et la licence passée en
paramètre
o L'instruction du bloc 15-19 se fait en O(4) puisque nous
faisons appel trois fois à l'opération de création de
noeuds. Cette instruction est inférieure au bloc d'instruction 20-32
donc nous considérons cette dernière.
o Le bloc 20-32 est composé de plusieurs
instructions
· L'instruction 22 s'effectue en O(nlang)
puisque nous parcourons les noeuds du niveau 3 pour voir si le type de langage
à insérer n'existe pas déjà dans l'arbre de
services.
· L'instruction du bloc 25-28 se fait en O(3) car nous
ajoutons deux noeuds logiques et avant cet ajout un test Si
est effectué.
· L'instruction du bloc 29-31 se fait en O(2) car un test
Si est effectué suivi de la création d'un noeud logique.
o La complexité totale du bloc 20-32 est égale
à la somme des complexités des différentes instructions
qui la composent, ce qui donne donc : O(nlang)+O(3)+O(2)=
O(nlang)
· La complexité du bloc 10-34 est égale
à O(2)+O(nlang)= O(nlang)
· En résumé, en parcourant toutes les
étapes de l'algorithme d'insertion nous voyons qu'il a une
complexité dans l'ordre de :
O(nlang)+ O(nsyst)
En effet cette complexité dépend du
nombre de noeuds logiques du niveau 3 et du niveau 1.
4.1.3.2 La recherche au sein de l'arbre
La recherche de services dans notre arbre se fait de
façon dichotomique de la gauche vers la droite puisque les noeuds de
chaque niveau sont classés suivant un ordre lexicographique. Cette
recherche se fait en largeur puis en profondeur pour descendre jusqu'aux
feuilles afin de trouver le ou les services.
Nous proposons deux algorithmes de recherche : le premier
prend en entrée le système d'exploitation, la
licence, le langage et dans le second
algorithme un nouveau paramètre est ajouté (nom
du service). Ce dernier permet d'avoir des
résultats concis. Dans cette approche suivant les paramètres
donnés en entrée les algorithmes retournent le contenu des
feuilles de l'arbre.
METHODE rechercher
//première solution
ENTREE A:arbre, syst : chaine, lic
: chaine,lang :chaine //syst=système d'exploitation,
lic=licence, lang=langage SORTIE nomserv, @IP, description
nfilsg :Noeud //noeud fils gauche nfrdrt
:Noeud //noeud frère droit nc :Noeud //nc noeud
courant nc(-A.racine
nc(-nfilsg
[Marie Hélène Wassa Mballo] Page
75
1 Tant que nc?null et
nc.valeur?syst et nc.valeur<syst /parcours du niveau
1
2 nc(-nfrdrt
[Marie Hélène Wassa Mballo] Page
76
3 fin tant que
4 si nc=null ou
nc.valeur>syst
5 exit
6 fin si
7 si nc.valeur=syst
8 nc(-nfilsg
9 tant que nc?null et
nc.valeur?lic et nc.valeur<lic /parcours du niveau
2
10 nc(-nfrdrt
11 Fin tant que
12 Si nc=null ou
nc.valeur>lic
13 Exit
14 Fin si
15 Si nc.valeur=lic
16 nc(-nfilsg
17 Tant que nc?null et nc?lang
et nc.valeur<lang //parcours du niveau 3
18 nc(-nfrdrt
19 Fin tant que
20 Si nc=null ou
nc.valeur>lang
21 Exit
22 Fin si
23 Si nc.valeur=lang
24 nc(-nfilsg
25 Tant que nc?null
26 nc(-nfrdrt
27 Retourner nc.valeur
28 Fin tant que
29 Fin si
30 Fin si
31 Fin si
32 Fin rechercher
Le deuxième algorithme proposé est le suivant.
Comme nous l'avons dit précédemment cet algorithme ajoute un
nouveau paramètre qui est le nom du service
ALGORITHME DE RECHERCHE
METHODE rechercher //
deuxième solution
ENTREE A :arbre, syst :chaine,lic
:chaine,lang :chaine, nomservice : chaine SORTIE
nomserv,description,@IP
nfilsg : Noeud //noeud fils gauche nfrdrt : Noeud //noeud
frère droit nc : Noeud //noeud courant
nc(-A.racine
nc(-nfilsg
[Marie Hélène Wassa Mballo] Page
77
1 Tant que nc?null et
nc.valeur?syst et nc.valeur<syst //parcours du niveau
1
2 nc(-nfrdrt
3 fin tant que
4 si nc=null ou
nc.valeur>syst
5 exit
6 fin si
7 si nc.valeur=syst
8 nc(-nfilsg
9 tant que nc?null et
nc.valeur?lic et nc.valeur<lic //parcours du niveau
2
10 nc(-nfrdrt
11 Fin tant que
12 Si nc=null ou
nc.valeur>lic
13 Exit
14 Fin si
15 Si nc.valeur=lic
16 nc(-nfilsg
17 Tant que nc?null et nc?lang
et nc.valeur<lang //parcours du niveau 3
18 nc(-nfrdrt
19 Fin tant que
20 Si nc=null ou
nc.valeur>lang
21 Exit
22 Fin si
23 Si nc.valeur=lang
24 nc(-nfilsg
25 Tant que nc?null et
nc.valeur.nomsev?nomservice
26 nc(-nfrdrt
27 Fin tant que
[Marie Hélène Wassa Mballo] Page
78
[Marie Hélène Wassa Mballo] Page 79
28 Retourner nc.valeur
29 Fin si
30 Fin si
31 Fin si
32 Fin rechercher
Etude de la complexité de l'algorithme de
recherche
L'étude de la complexité ne concerne que le
deuxième algorithme de recherche de services ceci est dicté par
le fait que dans cet algorithme le nom du service est spécifié.
Ce qui signifie qu'une fois au niveau des feuilles une comparaison est
effectuée pour retrouver le service correspondant au nom du service
passé en paramètre.
L'étude de l'algorithme pour trouver la complexité
donne les éléments suivants
· L'instruction 1 s'effectue en O(nsyst),
puisque nous cherchons l'existence du système d'exploitation dans
l'arbre, donc dans le pire des cas l'ensemble des noeuds du niveau 1 peuvent
être parcourus.
· L'instruction du bloc 4-6 est une constante qui
s'effectue en O(1), un test Si est effectué. La complexité de ce
bloc est inférieure à celle du bloc 7-32, nous ne
comptabiliserons que cette dernière
· L'instruction du bloc 7-32 regroupe plusieurs
instructions donc nous allons voir la complexité de chacune d'elles
o L'instruction 9 s'effectue en O(2) puisque le nombre
d'itération dépend du nombre maximal de noeuds au niveau 2 de
l'arbre de services, c'est une constante donc elle n'est pas
comptabilisée.
o L'instruction 12 se fait en O(1). Cette complexité
est négligée car elle intervient dans le cas où le
résultat de la recherche n'est pas trouvé.
o L'instruction du bloc 15-30 est composée de
plusieurs instructions dont nous allons étudier la complexité.
Marie Hélène Wassa Mballo Page 80
[Tapez le titre du document]
· L'instruction 17 s'effectue en O(nlang),
car le nombre d'itérations se fait nlang fois.
· L'instruction du bloc 20 se fait en O(1) un test Si
est effectué pour voir si le programme s'arrête à ce stade
ou si l'exécution continue.
· L'instruction du bloc 23-29 se fait en
O(nserv) elle ne dépend donc que de l'instruction 25 dont le
nombre d'itérations est de nserv fois.
o La complexité totale du bloc 15-30 est égale
à la somme des complexités de ces différentes instructions
O(nlang)+O(1)+O(nserv)= O(nlang)+ O(nserv)
· Ainsi notre algorithme de recherche a une
complexité qui est égale à la somme des complexités
des différentes instructions vues précédemment et nous
obtenons
O(nsyst) +O(nlang) +
O(nserv)
Cette complexité dépend du nombre de noeuds
pour le système d'exploitation, le langage et du nombre de feuilles.
4.1.3.3 La suppression d'un service
Un pair hébergeant un service a la possibilité
de le supprimer, pour cela une requête xml de suppression doit être
envoyée à l'arbre local du pair concerné. Ensuite la
requête est routée sur d'autres machines si le service y est
répliqué. Une recherche de ce service doit être
effectuée au préalable afin de le localiser. La suppression d'un
service fils unique entraine la suppression de son service pair.
Notre algorithme de suppression est le suivant il prend en
paramètre, le système d'exploitation, la licence, le langage, le
nom du service, l'adresse IP. Une fois le service trouvé, la fonction
detruire(nc) est appelée où nc est le noeud
courant.
Marie Hélène Wassa Mballo Page
81
[Tapez le titre du document]
ALGORITHME DE SUPPRESSION
METHODE supprimer
ENTREE syst :chaine, lic
:chaine, lang :chaine, A :arbre, nomser :chaine, @IP :nombre
nfilsg : Noeud //noeud fils
gauche
nfrdrt : Noeud //noeud frère
droit
nc(-A.racine //nc noeud courant
nc(-nfilsg
Tant que nc?null et nc.valeur?syst
et nc.valeur<syst nc(-nfrdrt
fin tant que
si nc=null ou
nc.valeur>syst
exit
fin si
si nc.valeur=syst
nc(-nfilsg
tant que nc?null et nc.valeur?lic
et nc.valeur<lic
nc(-nfrdrt
Fin tant que
Si nc=null ou
nc.valeur>lic
Exit
Fin si
Si nc.valeur=lic
Marie Hélène Wassa Mballo Page
82
[Tapez le titre du document]
nc(-nfilsg
Tant que nc?null et nc?lang et
nc.valeur<lang nc(-nfrdrt
Fin tant que
Marie Hélène Wassa Mballo Page
83
Si nc=null ou
nc.valeur>lang
Exit
Fin si
Si nc.valeur=lang
nc(-nfilsg
Tant que nc?null et
nc.valeur.nomserv?nomserv et
nc.valeur.adIP ?nc.valeur.adIP et
nc.valeur.nomserv<nomserv
nc(-nfrdrt
fin tant que
si nc.valeur.nomserv=nomserv et
nc.valeur.adIP =nc.valeur.adIP
detruire(nc)
fin si
Fin si
Fin si
Fin si
Fin supprimer
Etude de la complexité de l'algorithme de
suppression
Nous rappelons que la complexité de l'opération
detruire(n) a une complexité de 1
Le calcul de la complexité à partir de
l'algorithme de suppression donne les éléments suivants :
· L'instruction 1 s'effectue en O(nsyst),
puisque nous cherchons l'existence du système d'exploitation dans
l'arbre, ce qui signifie que les noeuds du niveau 1 sont parcourus nsyst fois
dans le pire des cas.
·
Marie Hélène Wassa Mballo Page 84
L'instruction du bloc 4-6 est une constante qui s'effectue en
O(1) puisque un test Si est effectué. La complexité de ce bloc
est inférieure à celle du bloc 7-35 donc nous ne comptabiliserons
que cette dernière
· L'instruction du bloc 7-35 regroupe plusieurs
instructions. Ainsi nous allons voir la complexité de chacune d'elles
o L'instruction 9 s'effectue en O(2), le nombre
d'itérations est de nlic.
o L'instruction 12 se fait en O(1), car un test Si est
effectué pour voir si le programme s'arrête à ce niveau ou
bien s'il continue.
o L'instruction du bloc 15-34 est composée de
plusieurs instructions dont nous allons étudier la complexité
· L'instruction 17 s'effectue en O(nlang), car
cette complexité dépend du nombre de noeuds du niveau 3.
· L'instruction du bloc 20 se fait en O(1), un test Si
est effectué. La complexité de cette instruction est
inférieure au bloc 23-33, donc la complexité du bloc 20 n'est pas
comptabilisée.
· L'instruction 25 se fait en O(nserv), le
nombre d'itérations dans le pire des cas est de nserv
fois.
· L'instruction 30 se fait en O(2), car un test Si est
d'abord effectué pour ensuite faire un appel de la fonction
detruire(nc)
· La complexité totale du bloc 23-33 est
égale à la somme des complexités de ses différentes
instructions O(2)+O(nserv)= O(nserv)
o La complexité du bloc 15-34 est égale à
la somme des différentes instructions qui la composent : O(nlang)+
O(nserv)
· Le bloc 7-35 a pour compléxité donc :
O(2)+O(1)+O(nlang)+ O(nserv)= O(nlang)+ O(nserv)
· Ainsi notre algorithme de suppression a une
complexité qui est égale à la somme des complexités
des différentes instructions, soient :
O(nsyst) +O(nlang) + O(nserv)
Marie Hélène Wassa Mballo Page 85
Les trois algorithmes présentent une complexité
linéaire, car cette dernière croit en fonction des modifications
de services dans l'arbre, cette modification est liée à l'ajout
et la suppression de services. L'arbre de services comme dit dans la
partie 4.1.2, a une hauteur fixe, donc elle ne grandit qu'en
largeur. Cette croissance en largeur se fait surtout sentir au niveau des
feuilles, car pour les systèmes d'exploitation, les plus utilisés
sont Unix, Windows xp ce qui entraine donc que le nombre
noeuds que nous pouvons avoir au niveau 1 est très réduit.
4.2 Placement de l'arbre dans le réseau
physique
Dans cette section nous allons voir comment l'arbre de
services est réparti à travers le réseau physique. Sur
chaque machine du site se trouve un arbre en local qui héberge les
services. Les arbres au niveau des machines n'ont pas la même taille, vu
que cette dernière dépend du nombre de services
insérés. Deux approches de placement des arbres sont
proposées, c'est-à-dire une approche distribuée et une
approche centralisée.
4.2.1 Approche centralisée
4.2.1.1 Principes et fonctionnement
Dans cette approche (voir figure 4.2), chaque machine d'un
site d'une grille stocke les services qu'il fournit dans un arbre. Parmi
l'ensemble des machines d'un site, nous choisissons un qui joue le rôle
de super noeud. Ce dernier a une vue globale sur l'ensemble des services du
site. Dans notre proposition, une grille est composée de plusieurs sites
ayant les caractéristiques que nous venons de décrire. Ainsi, la
gestion et la découverte des services peuvent se faire en local ou
globalement sur la grille.
L'organisation locale correspond à un site particulier
composé de machines. En effet, à son initialisation, une machine
du site est choisie comme super noeud selon sa puissance de stockage et de
traitement. Chaque machine peut contacter le super noeud en lui envoyant un
message réseau lorsqu'une modification de l'arbre de services a
été effectuée en local. En plus, une machine peut faire
appel au super noeud, lorsqu'il n'a pas réussi à trouver
localement un service.
La grille des services offerts est obtenue par
l'interconnexion de plusieurs sites à travers leur super noeud. Dans ce
cas, chaque super noeud dispose de l'ensemble des adresses IP des autres super
noeuds.
Marie Hélène Wassa Mballo Page 86
L'intérêt de cette organisation globale est que
si une recherche au niveau d'un super noeud n'aboutit pas, la requête est
diffusée aux autres supers noeuds. Cette architecture est définie
dans la figure 4.2.
Figu
re 4.2 architecture d'une approche centralisée
de recherche de services
4.2.1.2 Gestion des services
La gestion des services dans le cas d'une approche
centralisée nécessite la mise en oeuvre des algorithmes suivants
:
a) Recherche d'un service
Partant de ce schéma centralisé, le principe de
recherche de services peut être illustré par les trois cas de
figures suivants :
· Recherche locale : dans un premier
cas, la recherche d'un service se fait localement par rapport au site où
une requête utilisateur a été initialisée. Ainsi,
seul l'arbre local sera parcouru.
· Recherche dans le site: dans le cas
où la recherche locale d'un service échoue, la requête
utilisateur est alors transmise au super noeud. Etant donné que le super
noeud centralise toutes les informations relatives aux services d'une grille,
il peut déterminer la machine sur laquelle se trouve le service
recherché.
· Recherche globale dans la grille : Si
le service n'existe pas au niveau du super noeud la requête est transmise
par diffusion à l'ensemble des super noeuds se trouvant dans le
Marie Hélène Wassa Mballo Page 87
réseau formé par l'ensemble des sites. Donc le
nombre de messages envoyés à travers
le réseau va dépendre du nombre de sites
existants. Nous avons dans ce cas une communication inter-site.
b) Insertion et suppression d'un service
Dans le cas d'une insertion d'un nouveau service, les
opérations suivantes sont réalisées :
· Insérer le service au niveau local dans une
machine (mise à jour de l'arbre local de services).
· Envoyer un message d'information au super noeud qui va
les stocker comme nouveau service. Dans le champ données du datagramme
nous retrouvons la requête
d'insertion.
· L'algorithme de suppression fonctionne selon les
mêmes principes que celui de l'insertion (mise à jour local et au
niveau du super noeud).
4.2.1.3 Tolérance aux pannes
Cette première approche étant
centralisée, il est nécessaire de mettre en place des
mécanismes de tolérance aux fautes par rapport au super noeud.
Pour cela, nous préposons de répliquer le super noeud (ou super
noeud primaire) pour avoir une machine de secours. Pour que ces deux supers
machines puissent assurer convenablement leurs fonctionnalités, il est
nécessaire d'assurer leur cohérence afin qu'ils puissent
être interchangés de manière transparente par rapport
à l'utilisateur.
Le super noeud de secours est utilisé dans le cas ou
le super noeud courant ne répond pas ou est surchargé. Le nombre
de processus en traitement simultané ne doit pas dépasser un
pourcentage qui peut être fixé par l'administrateur. La
réplication des données dans le super noeud de secours se fait
dès qu'une mise à jour intervient dans l'arbre des services du
super noeud.
4.2.1.4 Avantages et inconvénients
Les avantages de l'approche centralisée peuvent se
résumer comme suit :
· Solution P2P: chaque machine du site peut jouer un
double rôle : offrir et demander des services.
·
Marie Hélène Wassa Mballo Page 88
En termes de nombre de messages, cette approche
nécessite deux messages lors d'une opération de recherche, de
suppression ou d'insertion de service : un message d'une machine vers le super
noeud, dans le cas où une recherche locale a échoué ; un
message du super noeud vers la machine où la recherche locale a
échoué, pour l'informer de l'emplacement physique du service
qu'il recherche.
· La réplication ne concerne que le super
noeud.
En ce qui concerne les inconvénients de l'approche
centralisée, nous notons que :
· Le principal inconvénient de cette approche est
dû à la centralisation. En effet, l'existence d'un super noeud
engendre un surcoût de communication, notamment pour les
opérations d'insertion, de suppression et de mise à jour des
services. Ce surcoût aura pour effet de surcharger le super noeud, avec
pour conséquence une augmentation des temps d'attente, voire
éventuellement une panne du super noeud.
· Modification des arbres : une modification
opérée en local doit également se répercuter au
niveau de l'arbre du super noeud avec une mise à jour du super noeud de
secours qui doit être effectuée. Ainsi, nous avons trois
opérations de mises à jour à effectuer à chaque
fois qu'un arbre est modifié. Si ces mises à jour sont
fréquentes, les performances des algorithmes de gestion des services
vont se dégrader.
4.2.2 Approche distribuée
4.2.2.1 Principes et fonctionnement
Dans cette approche il n'existe pas de super noeud
centraliseur (voir figure 4.3). Les machines sont
reliées directement entre eux et chaque machine dispose d'un arbre
local. Et la communication inter-sites se fait directement entre les
différents machines.
L'organisation locale de l'approche distribuée
concerne un site donné où chaque machine peut communiquer avec
n'importe quel autre machine du site. Cette communication est nécessaire
lorsqu'une recherche locale d'un service dans la machine échoue. Dans
cette approche, nous proposons des métadonnées (voir
figure 4.4) qui sont créées en faisant un regroupement
de services suivant le type de système d'exploitation, la licence et le
langage de développement des services, au niveau de chaque machine. Ces
métadonnées sont partagées entre les machines du site. Ce
qui permet
Marie Hélène Wassa Mballo Page 89
d'effectuer des envoies groupés (multicast) lorsque la
recherche en locale n'aboutit pas. Plutôt que d'aller chercher le service
sur toutes les autres machines, ce qui est pénalisant du point de vue
coût de communication et temps de localisation du service, une machine
fait appel uniquement aux machines qui, potentiellement, sont susceptibles de
contenir le service recherché. Ces machines sont alors choisies à
l'aide de ces métadonnées.
La recherche dans d'autres sites se fait lorsque celle
effectuée dans le site local n'a pas aboutit. La machine initie une
requête et contacte dans ce cas de façon aléatoire une
machine se trouvant dans un autre site pour y poursuivre la recherche. La
communication entre les sites se fait par des messages réseau car chaque
machine a dans sa table de routage l'adresse réseau des autres sites. La
machine qui est contactée de façon aléatoire continue le
même principe de recherche que dans l'organisation locale décrite
dans le paragraphe précédent.
Figure 4.3 structure de l'approche distribuée
pour la recherche de services
Figure 4.4 : Exemple de
métadonnées U: Unix, L: Libre, J: Java, P:
Propriétaire
De cet exemple, le premier groupe de
métadonnées concerne les pairs hébergeant des services
utilisant le système Unix, la licence libre
et le langage java. Pour le deuxième groupe,
il s'agit des pairs qui hébergent des services qui ont pour
système Unix, la licence propriétaire
et le langage java.
Marie Hélène Wassa Mballo Page
90
4.2.2.2 Gestion des services
a) Recherche d'un service
Les étapes de recherche de service dans le cas de
l'approche distribuée, sont définies comme suit :
· Recherche locale : la recherche de
service se fait dans la machine qui a initié une requête de
demande de service.
· Recherche dans le site : cette
étape est réalisée lorsque la recherche locale a
échouée (service non trouvé). Cette requête de
recherche est alors transmise à un sous-ensemble de machines qui est
défini grâce aux métadonnées.
· La recherche globale : est
initiée par la machine qui a lancé la requête, pour ce
faire une machine d'un autre site est choisi de façon aléatoire
pour que ce dernier puisse effectuer la recherche dans le site ou elle se
trouve.
b) Insertion et suppression d'un service
L'insertion d'un nouveau service nécessite la mise en
oeuvre des étapes suivantes :
· La machine, qui héberge un nouveau service,
lance une requête d'insertion pour rajouter ce service dans l'arbre. La
table des métadonnées est également mise à jour
selon la description du service.
· Une notification de mise à jour est
envoyée aux autres machines, pour qu'ils puissent mettre à jour
leurs métadonnées respectives.
· L'algorithme de suppression fonctionne selon les
mêmes principes que celui de l'insertion (mise à jour en local et
dans le site, mise à jour également des
métadonnées).
4.2.2.3 Tolérance aux pannes
Dans notre architecture, chaque machine dispose d'un arbre
local qui stocke des informations permettant d'accéder aux services. Il
est possible qu'une machine tombe en panne. Dans ce cas, nous
Marie Hélène Wassa Mballo Page 91
n'avons pas accès aux services de cette machine. Pour
tolérer ce type de défaillance, nous proposons de faire une
réplication de l'arbre de services en utilisant les
métadonnées. Pour savoir sur quelles machines sont
stockées les répliques. Il faut rappeler que la
réplication concerne les données se trouvant dans les feuilles de
l'arbre, à savoir le nom du service, son emplacement physique et sa
description. Un facteur de réplication k
permet de savoir le nombre de fois qu'un service est sera
répliqué sur k machines
différents. Ce facteur de réplication k
est choisi selon le nombre de machines appartenant au groupe de
métadonnées, et ce facteur ne dépasse pas la moitié
du nombre de machines dans un site, c'est-à-dire si le nombre de machine
dans un site est n, dans un groupe de
métadonnées nous pouvons avoir les n
machines alors la condition posée est que
k<=n.
4.2.2.4 Avantages et inconvénients
Les avantages de l'approche distribuée peuvent se
résumer comme suit :
· Elle permet d'éviter les problèmes de
l'approche centralisée et assure un certain équilibrage de charge
entre les différents machines qui composent l'architecture
distribuée.
· L'utilisation de métadonnées permet de
diminuer le nombre de messages à envoyer lorsqu'une recherche locale de
services échoue. Ces métadonnées permettent de faire une
recherche sélective qui évite ainsi d'effectuer une diffusion
pour la recherche d'un service. Les métadonnées sont construites
en faisant un regroupement des adresses IP des machines, selon le type de
système d'exploitation, le type de licence, et les langages de
développement des services. Le nom d'une métadonnée est
formé par la combinaison des initiales des noms du système
d'exploitation, de la licence et du langage de programmation du service
concerné.
Comme inconvénients de l'approche distribuée, nous
pouvons citer :
· La réplication : nous avons noté
précédemment que le facteur de réplication est choisi en
fonction du nombre de machine appartenant au groupe de
métadonnées du service qui doit être
répliqué. Dans le cas ou il y'a une seule machine dans le groupe
de métadonnées, c'est-à-dire
la machine hébergeant le service, donc nous n'auvons
pas la possibilité d'effectuer de répliques.
· Message réseau : le nombre de message
réseau envoyé peut devenir important dans un site si dans un
groupe de métadonnées nous retrouvons un nombre important de
machines.
4.3 Validation théorique
4.3.1 Approche centralisée vs. approche
distribuée
Dans l'étude comparative de l'approche
centralisée et de l'approche distribuée, nous nous limitons aux
critères suivants :
· Coût des mises à jour :
permet de définir le comportement des deux approches face aux mises
à jour. Dans le cas de l'approche centralisée, les mises à
jour s'effectuent entre le super noeud et les machines. Donc si le nombre de
services augmente de façon régulière alors les mises
à jour deviennent une véritable surcharge pour le super noeud.
Par contre, dans le cas de l'approche distribuée, les mises à
jour se font sur des machines choisies selon des métadonnées
définies. Ce qui permet de réduire la fréquence de mises
à jour.
Marie Hélène Wassa Mballo Page 92
Figure 4.5: Coût de mise à jour dans les
deux approches
Dans la figure 4.5 nous montrons les messages envoyés
lors d'une mise à jour, dans un site nous avons quatre machines. Avec
l'approche centralisée les quatre (4) machines peuvent envoyer
simultanément des messages de mise à jour au serveur, ce qui
entraine une saturation du serveur, car le nombre de
Marie Hélène Wassa Mballo Page 93
machines change de manière dynamique nous pouvons avoir
jusqu'à mille(1000) machines dans un site, il est vrai que nous avons
fixé un pourcentage de saturation, mais le problème de surcharge
demeure car le serveur peut être sollicité 24H sur 24. Il faut
également veiller à mettre en place un réseau à
moindre coût, or les serveurs sont très chers.
Dans le cas distribué une machine envoie des messages
de mise à jour en tenant compte des métadonnées et du
facteur de réplication (voir 4.2.2.3). Ce qui fait que
les machines sont moins sollicitées contrairement à l'approche
centralisée. Une condition posée est que le nombre de
messages qui peut être envoyé à une machine ne doit pas
dépasser la moitié des machines se trouvant dans le
site.
· Coût en réseau : lors
d'une modification d'un service dans le cas centralisé, la communication
se fait uniquement entre machine et super noeud. Ce qui permet de
réduire considérablement le nombre de messages. Alors que dans le
cas distribué, on utilise du multicast. Ce qui va augmenter le flux de
messages qui circulent dans le réseau.
En considérant la figure 4.5, le nombre de messages
réseau de mises à jour envoyé à travers un site par
une machine est de 1 dans le cas centralisé. Tandis que dans le cas
distribué le nombre de messages qui peut être envoyé au
maximum est égal au nombre de machines totales dans un site
divisé par 2.ce nombre de messages change suivant l'ajout ou le retrait
de machines.
Dans le cas d'un site avec 1000 machines, avec l'approche
centralisée une machine n'émet qu'un message de mise à
jour tandis dans le cas distribué une machine peut envoyer 500 messages.
Donc le nombre de messages envoyés dans le cas distribué est 500
fois plus grand que le cas centralisé.
· Temps de réponse pour la recherche
: si un service ne se trouve pas en local alors la requête est
routée dans le site. Le temps mis dans le cas centralisé est plus
important car la requête est routée au super noeud qui peut
être sollicité par plusieurs pairs.
Nous considérons toujours la figure 4.5, à
partir des complexités obtenues, nous pouvons déterminer le temps
qu'il faudra à telle ou telle machine pour mettre en oeuvre
l'algorithme.
Nous allons prendre un exemple avec un site de 1000 machines
; les machines ont un temps de traitement 1GHz ce qui signifie 106
opérations par seconde, nous disposons également d'un serveur de
3GHz utilisé dans l'approche centralisée. L'opération de
mise à jour est une insertion et nous avons
Marie Hélène Wassa Mballo Page 94
calculé dans 4.1.3 la complexité d'insertion qui
est de l'ordre de Cinsrt= O(nlang) + O(nsyst)=1000opérations
dans l'arbre de services du super noeud qui contient la totalité de
l'arbre du site, et 500 opérations pour un arbre de services d'une
machine simple.
|
|
centralisée
|
distribuée
|
|
Complexité d'insertion de l'arbre de services
|
1000
|
500
|
Nombre de
machines dans le site
|
1000
|
0,3s
|
0,25
|
|
0,6
|
0,5
|
|
SATURATION
|
0,75
|
|
Tableau 4.1 : variation du temps de traitement
suivant l'augmentation du nombre de machines
Le tableau 4.1 montre la variation du temps de recherche dans
le super noeud avec l'approche centralisée et une machine quelconque
avec l'approche distribuée. Comme nous l'avons dit
précédemment une machine de l'approche distribuée
reçoit au maximum n/2 messages si n=nombre de machines dans le site.
Nous constatons avec 3000 noeuds il ya une saturation avec l'approche
centralisée contrairement à l'approche distribuée.
L'arbre de services du super noeud est toujours plus grand
que l'arbre de services d'une machine locale, ce qui fait que le temps est
toujours plus grand dans l'approche centralisée.
En résumé, l'approche distribuée est
plus avantageuse, concernant la recherche de services, puisque l'arbre de
services est partagé entre les machines. L'inconvénient
noté pour cette approche est surtout lié au cout réseau,
mais l'utilisation des métadonnées réduit cette limitation
notée. Nous allons mettre dans le tableau ci-dessous la comparaison des
deux approches pour qu'elle soit plus explicite
|
Coût mise à jour
|
Coût en réseau
|
Temps de réponse pour la recherche
|
centralisé
|
Elevé : accès simultanée au serveur par
toutes les machines
|
Réduit: communication
pair-serveur
|
Élevé: surcharge du super noeud
|
|
Marie Hélène Wassa Mballo Page 95
distribué
|
Réduit: une machine est
|
Élevé: envoie multicast:
|
Réduit: arbre de services est
|
|
sollicitée par une mise à
|
plusieurs peuvent être
|
distribuée entre les machines
|
|
jour si elle appartient à
|
sollicitées
|
|
|
la métadonnée
|
|
|
|
Tableau 4.2 : comparaison approche centralisée
vs approche distribué
4.3.2 2MDS vs. annuaire UDDI
Nous proposons de faire l'étude comparative de
l'approche distribuée de notre proposition et l'annuaire UDDI
basé sur les services web, les paramètres suivants sont
considérés dans l'étude:
· La structure de représentation de
service : La structure de représentation de l'ensemble des
services est un élément important pour la recherche de service.
Selon la structure adoptée, la masse d'informations à
représenter peut être relativement importante et
l'opération de recherche peut être plus ou moins complexe. Dans
notre solution, nous utilisons la structure d'arbre pour représenter
l'information. Ce qui permet de réduire considérablement le temps
de traitement contrairement à l'annuaire UDDI qui a une structure
classique.
· La description du service : Dans le
cas des annuaires UDDI, l'utilisateur ne peut pas accéder à la
description des services tels que les fonctionnalités offertes par ce
dernier, les droits d'utilisation du service, etc. Notre approche propose cette
possibilité.
· Les critères de recherche :
dans les approches basées sur l'annuaire UDDI, les
critères de recherche sont principalement le nom du service
recherché, son fournisseur et la catégorie à laquelle
appartient le service. Dans notre approche, nous proposons d'autres
critères tels que le système d'exploitation sur lequel fonctionne
le service, le langage de développement et la licence d'utilisation ce
qui permet d'avoir une liste plus exhaustive de services pertinents.
·
Marie Hélène Wassa Mballo Page 96
La méthode de recherche de service :
Ce critère a pour objectif de déterminer la
méthode de recherche utilisée, pour évaluer le temps de
recherche d'un service.
Dans notre approche, puisque nous utilisons un arbre, le
parcours se fera de façon dichotomique de la gauche vers la droite car
les données sont stockées dans l'arbre par ordre lexicographique.
Ce qui permet de réduire de moitié le temps mis pour effectuer
une recherche, comparer à l'annuaire UDDI.
· La complexité de la recherche :
Pour les trois algorithmes que nous avons utilisés pour la
gestion des services, nous obtenons des complexités qui sont
définies dans le pire des cas (voir 4.1.3).
a) Complexité d'insertion Cette
complexité est de l'ordre de O(nsyst) +O(nlang)
Elle dépend des noeuds du niveau 1 et niveau 3 qui
correspond respectivement au type de système d'exploitation et au type
de langage. Car un noeud du niveau 1 a au maximum deux fils pour le niveau 2,
dont la complexité est négligée l'argumentation est
donnée au point 4.1.3.1.
b) Complexité de recherche
Cette complexité est de l'ordre de O(nsyst) +O(nlang)
+ O(nserv)
Dans cet algorithme, nous retrouvons la complexité de
l'algorithme d'insertion plus la complexité des noeuds du niveau 4 qui
correspond aux feuilles (se référer au point
4.1.3.2).
c) Complexité de suppression
Cette complexité est de l'ordre de O(nsyst) +O(nlang) +
O(nserv)
Elle a une complexité identique à celle liée
à la recherche (voir 4.1.3.3).
Dans notre mémoire, nous nous intéressons au
temps mis pour effectuer une recherche dans les grilles de calcul. C'est pour
cela nous limitons notre comparaison à l'algorithme de recherche. Sur le
tableau 4.1 nous voyons que L'annuaire UDDI présente une
complexité de l'ordre de O(n) alors notre solution a une
complexité de l'ordre de O(nsyst) +O(nlang) + O(nserv)
. Ainsi notre approche présente une complexité meilleure que
celle obtenue par l'annuaire UDDI car seule une partie des machines est
consultées lors d'une recherche. Ce qui n'est pas le
cas pour l'annuaire UDDI ou la totalité des machines participe à
la recherche.
Pour comprendre cette comparaison sur la complexité nous
allons donner un exemple
Marie Hélène Wassa Mballo Page 97
Figure 4.6: représentation de l'informations avec
Figure 4.7: représentation de l'informations avec
le 2MDS l'annuaire UDDI
Lors d'une requête XML de recherche en donnant comme
paramètre le nom du système d'exploitation : windows
98, la licence : libre, le langage :
java, et le nom du service : servastro.
Avec le 2MDS le nombre d'opération effectué est de
6 opérations en tenant de la complexité de recherche
défini au point 4.1.3.2 et de 20 opérations pour
l'annuaire UDDI car toute la base doit être parcouru, avant de connaitre
l'emplacement de la machine qui héberge le serveur.
Critères
approches
|
Structure de
représentation
|
Description de service
|
Critères de
recherche
|
Méthode de recherche
|
Complexité de la
recherche
|
UDDI
|
Classique
|
Non
|
Nom,
fournisseur, catégorie
|
Parcours
|
O(n)
|
Notre approche
|
Arbre
|
Oui
|
Nom, système
d'exploitation,
Licence,langage
|
Dicotomique
|
O(nsyst) +O(nlang) +
O(nserv)
|
Marie Hélène Wassa Mballo Page 98
Tableau 4.3 comparaison entre l'approche
proposée et les approches basées sur l'annuaire
UDDI
4.4 Exemple d'applications 4.4.1 Insertion d'un
service
La figure 4.8 montre le processus d'insertion dans un arbre de
services
Figure 4.8 : processus d'insertion d'un
service
Le service à insérer est
caractérisé par un système d'exploitation: unix
licence :propriétaire langage :java
nom :servchimie adresse : 192.168.10.4
description : fichier xml ces trois derniers
paramètres se trouvent dans les feuilles.
L'insertion de ce service se fait selon les étapes
définies ci-dessous :
Etape 1 : parcours du niveau 1 de l'arbre des
services
Le parcours du niveau 1 de l'arbre des services permet de
savoir si le système d'exploitation du service à insérer
existe ou non dans l'arbre. Dans le cas où il n'existe pas, il y aura la
création d'un nouveau noeud logique (système d'exploitation) et
de ses descendants pour ensuite insérer le nom du service, son
emplacement physique et sa description.
Marie Hélène Wassa Mballo Page 99
Etape 2 : parcours du niveau 2 de l'arbre des
services
Dans ce parcours, nous cherchons à savoir si la licence
existe ou pas. Comme dans le cas précédent, il y aura la
création d'un nouveau noeud logique si la licence recherchée
n'existe pas. Ensuite, un noeud fils sera créé pour
insérer le langage de développement du service.
Etape 3 : parcours du niveau 3 de l'arbre des
services
A ce niveau, nous recherchons le langage de développement
du service selon le même principe que les étapes 1 et 2.
Etape 4 : accès aux feuilles de l'arbre des
services
Dans cette 4ème et dernière
étape, les feuilles associées au nouveau service, qui vient
d'être inséré, sont créées.
4.4.2 Recherche d'un service
Pour rechercher un service, un utilisateur fournit les
paramètres suivants : le système d'exploitation, la licence
d'exploitation du service et son langage de développement. Pour
illustrer cette opération de recherche, supposons qu'un client lance une
requête de recherche avec comme paramètres : système
d'exploitation Unix, licence propriétaire
et langage java. La recherche du service
correspondant à ces paramètres se fait selon les étapes
suivantes :
Etape 1 : Recherche dans le niveau 1 de l'arbre de
services Si le système Unix ne s'y trouve pas,
alors le service recherché n'existe pas.
Etape 2 : Recherche dans le niveau 2 de l'arbre de
services
Le système Unix se trouve dans
l'arbre, la recherche continue pour voir s'il existe une licence de type
propriétaire associée à ce service. Si ce
type de licence n'existe pas, la recherche s'arrête et l'utilisateur est
avertit que le type de licence recherché n'existe pas actuellement.
Marie Hélène Wassa Mballo Page 100
Etape 3 : Recherche dans le niveau 3 de l'arbre de
services
A ce niveau, nous recherchons si le service trouvé est
développé dans le même langage que celui requis par
l'utilisateur. Deux cas sont possibles : le langage existe et donc la recherche
se fait avec succès. Dans le cas contraire, l'utilisateur est
informé que le langage recherché n'existe pas.
Etape 4 : Accès aux feuilles
Quand la recherche atteint cette étape, cela veut dire
que les critères de recherche définis par l'utilisateur ont
été tous validés. Dans ce cas, on affichera à
l'utilisateur l'ensemble des informations relatives au service
recherché. Rappelons que ces informations (notamment la description du
service) sont stockées dans les feuilles de l'arbre.
4.4.3 Suppression d'un service
La suppression d'un service suivra les mêmes
étapes que l'opération de recherche. Au fur et à mesure du
parcours de l'arbre de services, les informations relatives au service seront
supprimées, dans le cas où le service existe.
Dans ce chapitre nous avons présenté notre
apport dans la découverte de services au sein des grilles. En effet deux
approches ont été proposées : centralisé et
distribué. La dernière approche est la plus avantageuse du fait
qu'il yait pas d'élément centraliseur.
Nous avons également effectué une
comparaison de notre approche et l'annuaire UDDI, puisque notre apport se base
principalement sur ce dernier.
Cependant notre travail n'est pas encore terminé
puisque la validation expérimentale reste à faire.
Marie Hélène Wassa Mballo Page
101
CONCLUSION
GENERALE
Marie Hélène Wassa Mballo Page 102
Dans ce mémoire, nous nous sommes
intéressés à proposer des mécanismes de
découverte de services dans les grilles. Nos solutions permettent
d'effectuer des recherches multicritères et apportent une certaine
scalabilité. Ces nouvelles méthodes de recherche permettent de
diminuer les messages de communication avec une complexité moindre. Une
des caractéristiques principales de notre contribution est l'utilisation
d'arbre pour représenter les services, Ce qui permet d'optimiser
fondamentalement la recherche des services.
Ainsi, nous avons proposé deux architectures pour le
déploiement de nos solutions : une approche centralisée qui se
caractérise dans un site par l'utilisation d'un super noeud. Ce dernier
permet d'avoir une vue globale sur l'ensemble des arbres de services du site.
La communication inter site se fait par l'intermédiaire des super
noeuds. Nous avons constaté que les principaux inconvénients de
cette approche sont : la centralisation due à l'utilisation d'un super
noeud, la fréquence des mises à jour dégrade la
performance du système.
Pour apporter une réponse à ces manquements,
nous avons proposé une autre solution basée sur une architecture
totalement distribuée. Dans cette approche, la notion de super noeud
disparaît, et les machines sont reliées directement entre eux.
Chaque machine du site dispose de son arbre local. Une particularité de
cette approche est l'utilisation de métadonnées qui permettent
d'effectuer des envoies multicast. Une machine qui veut communiquer avec
d'autres machines consulte avant tout sa table de métadonnées
pour savoir quelle machine est susceptible de répondre à sa
requête.
Cependant, nous nous sommes limités à la
validation théorique de nos propositions. Une suite logique de ce
mémoire peut être résumé dans les points suivants :
(i) intégration de l'approche proposée dans un simulateur de
grilles; (ii) comparaison avec d'autres approches de découverte de
services afin de faire une validation expérimentale; (iii) étude
de la possibilité d'utiliser ces approches pour faire de la composition
de services puisque nous avons proposé des architectures de
découverte de service dans les grilles.
Marie Hélène Wassa Mballo Page 103
REFERENCE
[1] Quand l'union des PC fait la force, le
nouvel Hebdo (N60), 26/04/2002,
http://www.01net.com/article/182466.html?rub=3547
[2]Frédéric Bordage, Jérôme Saiz,
le grid computing, 2002,
http://www.01net.com/article/198199
a.html
[3] grille informatique,
http://fr.wikipedia.org/wiki/Grille_de_calcul,
2009
[4] Jérôme Deprez, Nicolas Deville, Grid
Computing, Master 2 SIR TER,
www.unige.ch/apropos/budget/rapport_gestion2005.pdf
,2006/2007
[5] Nicolas Jacq, Introduction aux grilles
informatiques, laboratoire de physique Corpusculaire, CNRS/IN2P3,
http://clrpcsv.in2p3.fr,2005
[6] Heithem ABBES, introduction aux grilles de
calcul, journées du Parallélisme 2005,
www2.lifl.fr/~boulet/HdR/hdr003.html,
www.Iri.fr/~cecile/PERSO/Stagelnserm.pdf ,2005
[7] Andres S. Tanenbaum, Maarten van Steen,
Distributed Systems prinviples and paradigms, Prentice Hall,
ISBN 0132392275, 2006
[8] Eric Cariou, Systèmes Distribués
Introduction, Université de Pau et des Pays de l'Adour
Département Informatique
Eric.Cariou@univ-pau.fr,
web.univ-pau.fr/~ecariou/cours/sd-l3/cours-intro.pdf
[9] Architecture Client/serveur Règle du
jeu, www710.univ-
lyon1.fr/~hbriceno/.../01_1_CS_intro_cir.pdf
[10]
http://fr.wikipedia.org/wiki/Calcul_distribué,
The International Conference on Dependable Systems and Networks ACM
Symposium on Principles of Distributed Computing
[11] Chetty, M. et R. Buyya, Weaving Computational
Grids: How Analogous Are they with Electrical Grids?, Computing in
Science & Engineering, July/August 2002
[12] Foster I, Kesselman C (eds.). The Grid:
Blueprint for a New Computing Infrastructure, Morgan Kaufmann: San
Fransisco, CA, 1999
[13] Buyya R, Giddy J, Abramson D. An evaluation of
economy-based resource trading and scheduling on computational power grids for
parameter sweep applications. Proceedings of the 2nd International
Workshop on Active Middleware Services (AMS '00), August 2000
[14] V. Bertis, Fundamentals of Grid
Computing, IBM Redpaper, October 2002
[15]
Marie Hélène Wassa Mballo Page 104
Dominique Lavanier, Hugues Leroy, Michel Hurfin, Rumen
Andonov, Laurent Mouchard, Frederic Guinand, le projet GénoGRID
: une grille expérimentale pour la génomique
[16] Peter Kacsuck, Springer-Verlag, Distributed and
Parallel Systems: Cluster and Grid Computing, ISBN 0387698574New York,
2007
[17] grilles de calcul : Etat de l'art juin
2003,
http://tonysoueid.multimania.com
[18] Erwin Laure, CERN,
http://indico.cern.ch/conferenceDisplay.py
?confId=a036278 ?, Europe/Zurich, 2004
[19] Dominique Boutigny, les grilles de calcul et de
données, réunion d'information sur la grille de calcul
et de données, EGEE-Observatoire de paris, 2008
[20] Pascal DUGENIE, Orientation et usage de
l'Architecture de services Grille OGSA, LIRMM CNRS &
Université de Montpellier II, 2005
[21] Isabelle Thieblemont, Programmation
orientée objet ,
Isabelle.Tieblemont@wanadoo.fr,
http://pagespersorange.fr/isabelle.thieblemont/poo/poointro.htm
[22] Antoine Marot ,l'animation d'algorithmes en
programmation orientée aspect, Université libre de
bruxelles faculté des Sciences département d'informatique
année académique 2005-2006
[23] Allouch Bachir & Trantoul Gilles, Les
nouvelles formes de programmation,
http://deptinfo.unice.fr/twiki/pub/Linfo/PlanningDesSoutenances2002/allouch-trantoul.pdf
juin 2003
[24] Grady BOOCH, James RUMBAUGH, Ivar JACOBSONT, the
Unified
Modeling Language - User Guide - 5ème
édition, édition ADDISON WESLEY ISBN : 0- 201-57168-4, octobre
1999
[25] Stéphane Frénot,
Compléments POO : Programmation orientée
composants, INSA Lyon, INRIA, 2002
[26] wikipédia,
http://www.techno-science.net/?onglet=glossaire&definition=5390,
2009
[27] Anand, S., S. Padmanabhuni, J. Ganesh,
Perspectives on service-oriented architecture, In ICWS, IEEE
Computer Society, 2005
[28] F. Baude, Introduction à l'archicture
Orientée Service, M2 MIAGE NTDP, 2008
[29] Jérôme Daniel, Services Web-
Concepts, techniques et outils, Viubert, Paris, 2003,
www.vuibert.fr
[30] Chaitanya Kandagatla, Survey and Taxonomy of Grid
Resource Management
Systems, University of Texas,Austin
http://www.cs.utexas.edu/users/browne/cs395f2003/projects/KandagatlaReport.pdf
[31]
Marie Hélène Wassa Mballo Page 105
Klaus Krauter, Rajkumar Buyya and Muthucumaru Maheswaran,
A taxonomy and survey of grid resource management systems for
distributed computing, Copyright 2001 John Wiley & Sons, Ltd. 17
September 2001
[32] Kyungkoo jun, Ldislau Boloni, Krzysztof Palacz, and Dan
C.Marinescu, Agent-Based Resource Discovery, computer Sceinces
Departement, Purdue University West Lafayette, In, 47907 email :
{junkk,boloni,palacz,dcm}@
cs.purdue.edu October 8,1999
[33] S. A. Ludwig, P. van Santen, A grid service
discovery matchmaker based on ontology description, Euroweb 2002- The
Web and the Grid: from e-science to e-business, 2002
[34] RDF/XML Syntax Specification (Revised),
http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/
[35]Jos de Bruijn, Christophe Bussler, John Domingue, Dieter
Fensel, Martin Hepp, Michael Kifer, et al, D2v1.3. Web Service Modeling
Ontology (WSMO), WSMO Final Draft 2006,
http://www.wsmo.org/TR/d2/20061021/
[36] Philippe Laublet, Chantal Reynaud, Jean Charlet, Sur
quelques aspects du Web sémantique,
http://enssibal.enssib.fr/autres-sites/RTP/websemantique/articles/03-WebSemantique.pdf
[37] Christoph Bussler, Dieter Fensel, Alexander Maedche,
a conceptual architecture for semantic web enabled web
services, ACM SIGMOD, ISSN 0163-5808, 2002
[38] Nathalie Steinmetz, Ioan Toma, D16.1v1.0 WSML
Language Reference, WSML Final Draft 2008-08-08,
http://www.wsmo.org/TR/d16/d16.1/v1.0/
[39] I. Foster and C. Kesselman. The Globus Project:
A Status Report, In Proc. IPPS/SPDP'98 Heterogeneous Computing
Workshop 1998
[40] S. Fitzgerald, I. Foster, C. Kesselman, G. von
Laszewski, W. Smith, and S. Tuecke, A directory service for configuring
high-performance distributed computations, preprint, Mathematics and
Computer Science Division, Argonne National Laboratory, Argonne, Ill., 1997
[41] Luis Ferreira, Viktors Berstis, Jonathan Armstrong, Mike
Kendzierski, Andreas Neukoetter, MasanobuTakagi, et al, Introduction to
Grid Computing with Globus, septembre 2003
[42] WS Information Services: Key Concepts, the
globus toolkit,
http://www.globus.org/toolkit/docs/3.2/infosvcs/ws/key/usesbenefits.html
[43] Pascal DUGENIE, Orientation et usage de
l'Architecture de services Grille OGSA, LIRMM CNRS &
Université de Montpellier II, 2005
[44]
Marie Hélène Wassa Mballo Page 106
a globus Primer Or, Everything wanted to known about
Globus ,but were afraid to
Ask, Describing Globus Toolkit version 4
,
http://www.globus.org/toolkit/docs/4.0/key/GT4_Primer_0.6.pdf
[45] Stephen Burke, Simone Campana, Elisa Lanciotti, Patricia
M'endez Lorenzo, Vincenzo Miccio, Christopher Nater, et al, The
WORLDWIDE LHC COMPUTING GRID (worldwide LCG), Proceedings of the
Conference on Computational Physics 2006 - CCP 2006, Conference on
Computational Physics 2006, July 2007, Pages 219-223
[46] B. Tierney, R. Aydt, D. Gunter, W. Smith, M. Swany, ,
Taylor, R. Wolski, A Grid Monitoring Architecture
,16-January-2002,
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.3345,
|