You are on page 1of 81

Tþyb`þþþþþþþK˜ TþyV rqþþþþþþþþþm§d˜ Tþ§r¶ zþþþþþþþþþ˜ Tþþþþ§Cwþhþmþþþþþþþþþ˜

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE


¨þmlþþþþþþþ`˜ þþþþþþþþb˜ ¤ ¨˜Aþþþþþþþþ`˜ œþyl`þþþþþþþþþþþþt˜ ­C E¤
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Tþþþþþ§ rþþ‹ T`›Aþþþþþþþþ
Université de Ghardaia
Aþywþ˜wnkt˜ ¤ wþþl`˜ Tþyl•
Faculté des Sciences et de Technologie
¨˜µ ®ˆ³ ¤ AyRA§r˜ œs’
Département de Mathématiques et d’Informatique

MEMOIRE
Présenté pour l’obtention du diplôme de MASTER

En : Informatique

Spécialité : Systémes Intelligents pour l’Extraction de Connaissances

Par : BOUDRAA Hammani, SOUILEM Rabia

Sujet

La découverte et la sélection des meilleurs services


dans le cloud

Soutenu publiquement le ...../...../....... devant le jury composé de :

M. ............. MCB Univ. Ghardaia Président


M. .............. MAA Univ. Ghardaia Examinateur
M. .............. MAA Univ. Ghardaia Examinateur
Mr. C.A.KERRACHE MAB Univ. Ghardaia Directeur de mémoire

Année Universitaire 2017/2018


Dédicaces

À la mémoire de mon père.

À ma mère : je te dédie spécialement cette recherche pour


l’indéfinissable soutien tout au long de ma vie. Grâce à vous, je suis
ainsi.

Je dédie ce modeste travail à :

Toute ma famille.

À mes oncles Ahmad et Omor, Abd Kader et Messouda llah


yar7amhom

Tous les amis et artistes de 7omani (Chwaker Siktor).

Tous les artistes : JemJem, SamSam, BomBom, TarTar, Priza, Toufik.

À tous ceux qui ont étudié avec moi pendant ce merveilleux 18 ans
avec son doux et amer (Bani, Rabeh, Toufik ...)

À tous ceux qui ont participé à la plus belle mémoire 02-02-2017


BS13.15

À tous mes amis (A..C..HI..K..MN..RST..YZ) surtout Hakim, Tarek, Aziz,


Bouamama, Youcef, Ali, Abdou

N'oubliez pas les ennemis et les gens qui ne nous aiment pas, je dis
merci et je vous pardonne. Merci de nous avoir surveillés.

BOUDRAA Hammani
Ghardaïa 2018
DEDICACES
A Celle qui a attend avec patience les fruits de sa bonne éducation.
A ma mère.
A celui qui m’aindiqué la bonne voie en me rappelant que la volanté fait toujours
les grands hommes Et femmes
A mon père.
A mes frères et mes chère ssoeurs.
A mes grandes mère et mes grandes père.
À toutes mes belles copines.
A mes tantes et mes oncles ainsi que toute la famille haili et Souilem

A mon encadreur Dr Kerrache Chaker Abdelaziz


A ma Binôme Boudraa Hammani
Et à tous les professeurs et mes collègues de classe de 2018 Département
Math et informatique
Pour quelqu'un qui me connaissait à travers les étapes de l'enseignement, du
primaire àl'université.
A tous mes quartiers filles.
A tous ceux qui me sontchère
A tous ceux qui m'aiment.
A tous ceux que j'aime.
Je dédiece travail.

RABIA
Remerciements

“Les paroles s’en vont, les écrits restent”


Louange à Dieu le clément, le miséricordieux, qui nous a donné le courage et la pa-
tience de mener à bien ce travail.

ous tenant à remercier sincèrement Monsieur KERRACHE Chaker Ab-


N delaziz, qui, en tant que Directeurs de mémoire, se sont toujours
montrés à l’écoute et très disponible tout au long de la réalisation de ce
mémoire, ainsi pour l’inspiration, l’aide et le temps qu’ils ont bien voulu
nous consacrer et sans qui ce mémoire n’aurait jamais vu le jour.

Nous remercions les membres du jury qui me feront l’honneur d’exami-


ner ce travail.

Nous remercions tout les professeurs, qu’ils nous enseigné dans les cinq
années passé et nous amis.

Et tous ceux qui ont participé de prés ou de loin à l’élaboration de ce


travail.

iii
Résumé

Le cloud computing est un système basé sur le réseau où les ressources


(hardware) et les services (software) sont affichés à l’utilisateur à la de-
mande et le paiement est fait selon l’utilisation. Après la grande expansion
de l’informatique et Internet, le cloud computing est devenu une préoc-
cupation majeure pour les entreprises et les chercheurs dans le domaine
de IT, le développement rapide et le grand nombre de services offerts ont
rendu difficile pour pour l’utilisateur de découvrir et de sélectionner le ser-
vice optimal parmi des millions de services existants. Dans ce mémoire,
nous étudions le problème de découverte et de sélection des services dans
le cloud, ainsi que sa formulation et implémentation d’un système qui fait
cette tache sur la base de la demande de l’utilisateur, nous nous appuyons
dans ce système sur le système multi-agent (SMA) et sur certaines des
règles de similarité : 1) calcul de la similarité des textes 2) calcul de la si-
milarité avec les nombres 3) calculer la similarité des données booléen. En
fin de compte, nous étudions l’efficacité et l’évaluation de la performance
de ce système.

Mots-clés :
Cloud Computing, Découvrez les services Cloud, Sélectionnez le service
Cloud, Système multi-Agents

iv
Abstract

Cloud computing is a network-based system where resources (hardware)


and services (software) are displayed to the user on demand and pay for
use. After the great expansion of computing and Internet Cloud Compu-
ting has become a major concern for businesses and researchers in the IT,
rapid development and the large number of services offered is a difficult
problem for The user, have made it difficult for him to discover and select
the optimal service among millions of existing services. In this report we
suggest a study of the problem and a method of its formulation in addition
to the programming of a system that discovered and selects the optimal
service on the basis of the user’s request, we rely on this system on the
system Multi-agent (SMA) and some of the similarity rules : 1) Calcula-
ting the similarity of texts 2) calculating the similarity with numbers 3)
calculate the similarity of the Boolean data. At the end, we are studying
the effectiveness and evaluation of the performance of this system.

Keywords :
Cloud computing, Discover cloud services, select the cloud service, multi-
agent system

v
‫المـلخـص‬
‫الحوسبة السحابية هي الحوسبة المستندة على الشبكة حيث يتم عرض الموارد و الخدمات‬
‫للمستخدم حسب الطلب‪ ,‬و الدفع يكون حسب االستعمال‪ .‬بعد الضجة التي قامت بها الحوسبة‬
‫السحابية في مجال الكومبيوتر و االنترنت أصبحت محل اهتمام اكبر الشركات و الباحثين في‬
‫المجال تكنولوجيا الحاسب‪ ,‬أدى التطور السريع و العدد الهائل من الخدمات المطروحة لمشكل‬
‫عويص للمستخدم‪ ,‬بحيث أصبح يجد صعوبة كبيرة في اكتشاف و اختيار الخدمة المناسبة له من بين‬
‫ماليين الخدمات الموجودة‪ .‬في هذا التقرير نقترح دراسة للمشكل و طريقة لصيغته باإلضافة إلى‬
‫برمجة نظام يعمل على اكتشاف و اختيار امثل خدمة على حسب طلب المستخدم‪ ,‬نعتمد في هذا نظام‬
‫على نظام العمالء و على بعض قواعد حساب التشابه و هي ‪ )1 :‬حساب التشابه بالنسبة للنصوص‬
‫‪ )2‬حساب التشابه لألعداد ‪ ) 3‬حساب التشابه لنوع البيانات المنطقي‪ .‬في األخير نقوم بدراسة كفاءة و‬
‫تقييم أداء هذا النظام من عدة جوانب‪.‬‬

‫الكلمـات المفتاحيـة ‪:‬‬


‫الحوسبة السحابية‪ ,‬اكتشاف خدمات السحابية‪ ,‬اختيار خدمة السحابة‪ ,‬نظام العمالء‪.‬‬

‫‪vi‬‬
Table des matières

Introduction 1

1 Cloud Computer 5
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1 Historique . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2 Acteurs du cloud computing . . . . . . . . . . . . . 9
1.3.3 Système de grille et Cloud computing . . . . . . . . 10
1.3.4 Caractéristiques et les modèles de cloud . . . . . . 11
1.3.5 Les architecture de cloud . . . . . . . . . . . . . . . 18
1.3.6 Exemple des clouds computing . . . . . . . . . . . . 22
1.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2 Découvert et Séléction de service cloud 27


2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3 Découverte de service cloud . . . . . . . . . . . . . . . . . 28
2.3.1 Définition . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.2 Travaux connexes . . . . . . . . . . . . . . . . . . . 28
2.4 Sélection de service cloud . . . . . . . . . . . . . . . . . . . 38
2.4.1 Définition . . . . . . . . . . . . . . . . . . . . . . . 38
2.4.2 État de l’art et travaux connexes . . . . . . . . . . 38
2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3 Évaluation et résultats 46
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.3 Outils et Plateformes Utilisés . . . . . . . . . . . . . . . . 47
3.3.1 Java . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.3.2 Système Multi-Agent (SMA) . . . . . . . . . . . . . 47
3.4 Formalisation du problème . . . . . . . . . . . . . . . . . . 49
3.5 Implémentation et test de système . . . . . . . . . . . . . . 50

vii
3.6 Évaluation des performances . . . . . . . . . . . . . . . . . 59
3.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Conclusion et Perspectives 64

viii
Table des figures

1 Illustration du problème. . . . . . . . . . . . . . . . . . . . 3
1.1 Cloud et les services de cloud . . . . . . . . . . . . . . . . 7
1.2 Chronologie du cloud computing . . . . . . . . . . . . . . . 8
1.3 Statistiques et l’avenir de cloud technologie . . . . . . . . . 9
1.4 Acteurs du cloud computing . . . . . . . . . . . . . . . . . 9
1.5 Caractéristiques et les modèles de cloud . . . . . . . . . . . 11
1.6 Modèle De Service Cloud . . . . . . . . . . . . . . . . . . . 13
1.7 Types de service Cloud Computing . . . . . . . . . . . . . 13
1.8 Exemple de fournisseur de IaaS . . . . . . . . . . . . . . . 14
1.9 Exemple de fournisseur de PaaS . . . . . . . . . . . . . . . 15
1.10 Cycle de vie du développement SaaS . . . . . . . . . . . . 16
1.11 Cloud public . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.12 Cloud privé . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.13 Cloud communautaire . . . . . . . . . . . . . . . . . . . . 18
1.14 Cloud hybride . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.15 Architecture générale de cloud computing . . . . . . . . . 19
1.16 Architecture mobile Cloud Computing . . . . . . . . . . . 20
1.17 Architecture de Cloud orientée sur le marché . . . . . . . . 21
1.18 Dropbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.19 Messagerie . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1 Système pour découvert les services de Cloud Computing . 30
2.2 Une découverte de service Cloud basée sur un agent . . . . 32
2.3 Architecture de l’agent de middleware . . . . . . . . . . . . 32
2.4 Concepts haut de la couche IaaS . . . . . . . . . . . . . . . 34
2.5 Les méthodes de MCDA . . . . . . . . . . . . . . . . . . . 36
2.6 Procédures d’approche SSCM . . . . . . . . . . . . . . . . 39
2.7 Mode de comportement du service Cloud . . . . . . . . . . 40
3.1 Plateforme Jade (RMA) . . . . . . . . . . . . . . . . . . . 48
3.2 Architecture de système de découvert et de sélection des
services clouds . . . . . . . . . . . . . . . . . . . . . . . . . 51

ix
3.3 Détails du système de découverte et de sélection des services
clouds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.4 Interface de utilisateur/fournisseur . . . . . . . . . . . . . 52
3.5 Complexité de notre système . . . . . . . . . . . . . . . . . 61
3.6 Temps d’exécution en fonction de # des services et de # des
requête . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.7 Taux de succès en fonction de # des services et de # des
requête . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

x
Liste des tableaux

1.1 Comparaison entre cloud et grille . . . . . . . . . . . . . . 11


1.2 Les abréviations à base de ’*aaS’ . . . . . . . . . . . . . . 16
3.1 Annonces Des Fournisseurs . . . . . . . . . . . . . . . . . . 59
3.2 Requêtes des utilisateurs . . . . . . . . . . . . . . . . . . . 59
3.3 Similitude entre les demandes et les publicités . . . . . . . 59
3.4 Paramètres d’expérimentation pour les simulations . . . . 60

xi
List of Algorithms

1 Enregistrement de l’agent dans le DF . . . . . . . . . . . . 53


2 Trouver les agents brokers . . . . . . . . . . . . . . . . . . 53
3 Envoyer ACLMessage . . . . . . . . . . . . . . . . . . . . . 54
4 Recevoir une ACLMessage . . . . . . . . . . . . . . . . . . 54
5 Extraction des sous-mots . . . . . . . . . . . . . . . . . . . 55
6 Calculer la similarité entre deux textes . . . . . . . . . . . 56
7 Calculer la similarité sémantique entre deux textes . . . . . 57
8 Calculer la similarité des données numériques . . . . . . . 58

xii
Introduction

Contexte
Au cours de ces dernières années, avec l’évolution rapide des technolo-
gies de l’information, de nombreuses entreprises et organisations ont cher-
ché la meilleure façon pour assurer la mise à l’échelle de leurs systèmes
informatiques, réduire les coûts de fonctionnement, fournir une bonne per-
formance à leurs applications tout en optimisant l’utilisation des ressources
informatiques [27]. Plusieurs technologies sont apparues au fil des années,
tels que, le traitement parallèle, les systèmes distribués, le grid computing,
et d’autres qui abordent la question de l’approvisionnement efficace des
ressources et le déploiement des applications, La technologie que nous al-
lons prendre dans cette thèse, c’est "le cloud computing".

Selon plusieurs études [3, 4] le paradigme du cloud computing ou l’in-


formatique en nuage est depuis quelques années en train de prendre une
place centrale pour la délivrance, et la consommation de services. Le cloud
computing c’est un système de stockage et de calcul de données de la
nouvelle génération par défaut, comme la technologie de base permettant
d’interconnecter, et gérer des ordinateurs distribués, où les ressources sont
configurées dynamiquement sur demande en tant que pour répondre à un
accord de niveau de service spécifique [15].

Le cloud computing permet à des utilisateurs de consommer des res-


sources informatiques en tant que services de différentes natures, avec dif-
férents niveaux de contrôle sur les technologies utilisées. Les ressources pro-
posées comprennent des infrastructures, des plateformes de développement
et d’exécution ou des applications, ce qu’ils appellent en anglais Software
as a Service (SaaS), Plateforme as a Service (PaaS), Infrastructure as a
Service (IaaS) [23]. Elles sont généralement hébergées chez un fournisseur
de services.

Avec la prolifération d’une gamme de services cloud sur Internet, une


découverte et une sélection de services efficaces et précis basé sur des exi-

1
gences spécifiques à l’utilisateur, est devenu un défi important pour les
décideurs [19].

La découverte, la sélection de services, représentent les opérations de


base pour tout système de manipulation de services sur Internet. Ces opé-
rations reposent essentiellement sur des techniques, et des technologies In-
formatiques et linguistiques développées récemment. Un système de décou-
verte et de composition repose sur trois éléments : La requête du client,
et Le système intermédiaire et Le fournisseur de services, Sachant que la
découverte est le processus qui permet de recueillir les services qui cor-
respondent aux sous-requêtes du client qui sont éparpillées sur internet.
Sans oublier La sélection qui consiste à choisir les meilleurs services qui
correspondent aux sous-requêtes du client parmi ceux découverts.

Problématique et Objectifs
Avec l’avènement de cette énorme quantité de services proposés à l’uti-
lisateur en nombre, et en fonctionnalités sur internet, ainsi que la diversité
de technologies utilisées pour l’implémentation et la présentation de ces
derniers, il est devenu très importante de proposer un système de décou-
verte et de sélection de services qui permet au client de choisir les meilleurs
services qu’il désire sans avoir à effectuer n’importe quelle tâche manuelle-
ment.

La mise en œuvre d’un système de découverte et sélection des services


nécessite quelque principaux éléments mention d’entre eux :
1. La modélisation des composants du système
2. La Gestion des ressources logiques et virtuelles du système
3. La relation entre l’utilisateur et le fournisseur et le mouvement des
ressources distribuées sur le réseau
4. Le choix d’algorithme approprié de découverte et sélection des ser-
vices

Beaucoup de travaux on été proposés pour résoudre le problème de dé-


couverte et sélection de services (chapitre 2) mais aucun d’eux n’est arrivé à
proposer un système complet qui ne contient pas d’erreurs, d’imperfections
et optimale pour tous les cas de changement dans le système (nombre des
utilisateurs, fournisseurs, la distance entre eux, les services, délai, le coût
...).

2
L’objectif principal de ce travail de thèse est de proposer des solutions
aux problématiques via la création d’un système pour la découverte et la
sélection des services cloud. Le système proposé doit également bénéficier
des capacités offertes par la technologie cloud, et les possibilités de modé-
lisation pour implémenter, et gérer ses propres ressources.

Figure 1 – Illustration du problème.

Plans de thèse
Le reste de ce mémoire est structuré autour de trois chapitres avec une
introduction, et une conclusion générale.

Le premier chapitre "Cloud Computing" est une initiation au


terme de clouds computing où nous allons définir et étudier sont histo-
rique et ces acteurs, puis donner une vue sur le système de grille comparé
au cloud, ses caractéristiques, modèles de services, architectures, ainsi que
des exemples des clouds computing enfin ses avantages et inconvénients.

Le deuxième chapitre "Découverte et Sélection de service Cloud"


présente un état de l’art sur la découverte, et la sélection de services dans
le cloud computing.

Dans le troisième chapitre "Évaluation et résultats" nous pré-


sentons les outils et les plateformes utilisés dans le cadre des travaux afin

3
de formaliser le problème, développer, et tester les outils développés. En-
fin, nous décrivons nos expérimentations, puis exposons, et discutons les
résultats obtenus.

Enfin, notre mémoire s’achève par une conclusion générale résumant les
grands points qui ont été abordes, ainsi que les perspectives de recherche
futures à partir de notre travail.

4
Chapitre 1

Cloud Computer

“I don’t need a hard disk in my computer if I can get to the server


faster. . . carrying around these non-connected computers is byzantine by
comparison.”

Steve Jobs, Co-founder, CEO and Chairman of Apple Inc.

1.1 Introduction
L’informatique est l’art, la technique ou la science qui consistent à ma-
nipuler des informations à l’aide d’un outil, l’ordinateur. L’informatique a
pour objet de définir des algorithmes qui permettent de modifier la vision
que l’on a d’un problème, ou d’extraire d’une grande quantité d’informa-
tions mal structurées, de nouvelles connaissances plus utiles.

L’internet et l’ordinateur ont contribué au développement du monde et


accéléré le rythme de production et de productivité du côté des entreprises,
ils ont également contribué au développement rapide de toute la science et
de la technologie.

1.2 Problématique
Tout ce développement a permis aux gens de profiter des services ou
de communiquer les uns avec les autres à tout moment et n’importe où,
en plus de la possibilité de travailler ensemble en même temps de leurs
maisons ou même de différentes villes et lieux. Il est maintenant possible
de stocker les informations ou même d’installer le logiciel à distance, avec
la possibilité de l’utiliser et de l’atteindre à tout moment, n’importe où,
mais les questions suivantes se posent :

Comment stocker l’information dans l’Internet ?

5
CHAPITRE 1. CLOUD COMPUTER


Comment puis-je installer ou utiliser un logiciel via Internet ?

Comment les gens peuvent collaborer dans un projet en même temps ?

1.3 Cloud Computing


Le cloud computing est un terme général utilisé pour définir une nou-
velle classe d’informatique en réseau (local, internet), essentiellement une
étape de l’informatique utilitaire. Il est défini aussi comme une collection
/ un groupe d’infrastructures matérielles, logicielles et réseaux intégrés et
en réseau (appelé plateforme) [7].

Ces plates-formes cachent la complexité et les détails de l’infrastructure


pour les utilisateurs et des applications en fournissant une interface gra-
phique très simple ou API (Application Programming Interface).

Une autre définition du cloud computing est un ensemble des services


informatiques (serveurs, stockage, bases des données, matérielles réseau,
logiciels, outils d’analyse, etc.) fournis a partir d’un réseau (le cloud). Les
sociétés qui proposent ces services informatiques sont appelées fournisseurs
de services cloud. Elles facturent en général ces services en fonction de l’uti-
lisation, un peu comme votre facture d’eau ou d’électricité chez vous.

Le INST Définit le cloud tant que un modèle permettant l’accès a un ré-


seau pratique et à la demande à une grande partagée de ressources informa-
tiques configurables (ex : serveurs, réseaux, stockage, application, services,
etc. ) pouvant être rapidement provisionnés et libérés avec un minimum
d’effort de gestion ou de l’interaction avec le fournisseur de service.[25]

F Note 1 : Le cloud computing est toujours un paradigme en évolution.


Ses définitions, cas d’utilisation, technologie , problèmes, risques et
avantages seront affinés dans un débat animé par les secteurs publics
et privés. Ces définitions, attribuent les caractéristiques évolueront
et changeront avec le temps.

F Note 2 : L’industrie du cloud computing représente un vaste écosys-


tème de nombreux modèles, fournisseurs et niches de marché. Cette
définition contient toutes les différentes approches du cloud en géné-
ral.
Regarder la figure (1.1)

6
CHAPITRE 1. CLOUD COMPUTER

Figure 1.1 – Cloud et les services de cloud

1.3.1 Historique
L’idée du cloud computing a pris naissance en 1990 : surtout
en 1991 avec la naissance d’Internet et l’apparence du logiciel CERN le
1er logiciel accessible par le Web. Ensuite, avec les nouvaux solution de IT
et le lancement du navigateur Mosaic en 1993 et le navigateur Netscape
en 1994. En 1995, la découverte d’EBay et d’Amazon a encore accéléré le
processus. Enfin, le lancement en 1996 de l’assistant Palm PDA a donné
une nouvelle impulsion.[36]

En 2000, l’arrivée de Google a favorisé une réelle émergence


du cloud computing : Dans l’avenir :

• le cloud computing devrait connaître une belle croissance car moins


de 10% des sociétés y avaient recours en 2009.
• On prévoit que 30 à 50 % des sociétés devraient utiliser ce service
bien que les entreprises semblent préférer le cloud privé.
• Il se peut que l’arrivée de nouvelles solutions IT provoque une accé-
lération du phénomène.
Plus précisemment . . .

• 2010 CLOUD
• 2006 AWS (Amazon Web Service) : 1er cloud public
• 2000 SOA, Service-Oriented Architecture.
• Hébergeurs Web d’applications (ancêtre du Saas).
• 2000 Premières applications cloud Web 2.0 : courrier électronique,
outils collaboratifs, CRM, environnements de développement et de
test.

7
CHAPITRE 1. CLOUD COMPUTER

• 1990 WEB INTERNET


• 1980 Client-Serveur
• 1970 Mainframe
• 1950 Concept du RJE(RemoteJobEntryP rocesse xécutiondetravauxàdistance

La figure 1.2 résume l’historique du cloud computing.

1961
John McCarthy introduces le
concept de cloud computer 1971
envoyer 1 er email

1981
La Lencement de PC de IBM 1984
La Lencement Macintoch

1989
Compaq trouvé 1 er Notebook

l'Internet arrive

1994
Netscape a été fondée
1995
Amazon & eBay a été
fondée

1999
Salesforce.com livrer

Le Cloud s'épanouit ...

2002
Amazon lance Mechenical
Turk
RIM lance Blackberry
2004
Netscape a été fondée

2006
Amazon Lancé S3
Pay-as-you-go
2007
Salesforce lancé force.com
Appel lancé iphone

2008
HTC lancé 1 er android
phone
2009
Lancéement de Google
App

Salesforce lance database.com


Vent 1 Million Ipad
Samsong lancé 1 er android tablet

Figure 1.2 – Chronologie du cloud computing

En se basant sur les dernières statistiques (Voir la figure 1.3), Les experts
estiment cloud computing est un grand avenir et aura un rôle actif dans
l’avenir.

8
CHAPITRE 1. CLOUD COMPUTER

Figure 1.3 – Statistiques et l’avenir de cloud technologie

1.3.2 Acteurs du cloud computing


Comme mentionné dans [10, 5], l’écosystème du cloud computing est
composé principalement de cinq acteurs majeurs (Cloud Provider, Cloud
Consumer, Cloud Carrier, Cloud Broker, Cloud Auditor) :

La Figure (1.4) montre les cinq acteurs définis par le NIST, leurs rela-
tions et leurs différentes interactions.

Figure 1.4 – Acteurs du cloud computing

• Fournisseur de cloud (cloud provider) : Une personne, un or-


ganisme ou une entité responsable de mettre des services cloud à la
disposition d’un ensemble de consommateurs.
• Consommateur de cloud (Cloud Consumer) : Une personne ou
un organisme qui maintient une relation d’affaire avec le fournisseur
de cloud.
• Transporteur de cloud (cloud carrier) : Un intermédiaire qui

9
CHAPITRE 1. CLOUD COMPUTER

fournit la connectivité et transporte les services cloud du fournisseur


vers le consommateur.
• Courtier de cloud (cloud broker) : Une entité qui gère l’uti-
lisation, la performance et la prestation de services cloud tout en
négociant les relations entre les fournisseurs et les consommateurs.
• Auditeur de cloud (cloud auditor) : Une partie qui peut pro-
céder à une évaluation des services cloud computing en termes de
performances et sécurité des services tout en restant indépendant.

1.3.3 Système de grille et Cloud computing


définition de grille

les principes essentiels des réseaux n’ont pas beaucoup changé au cours
de la dernière décennie, il existe encore des conceptions différentes de ce
qu’est réellement une grille. En 2002, Ian Foster [18] a proposé une défi-
nition de la grille comme "un système qui coordonne les ressources qui ne
sont pas soumises à un contrôle centralisé, en utilisant des protocoles et
des interfaces standard, ouverts et généraux pour fournir des qualités de
service non triviales". Des définitions plus récentes soulignent la capacité
de combiner des ressources provenant de différentes organisations pour un
objectif commun [11]. Dans [18, 28], la préoccupation n’est pas tant la co-
ordination des ressources de différents domaines, mais la façon dont ces
ressources doivent être gérées et présentées. En fait, c’est cette divergence
de conceptions sur la grille que ce travail vise à éviter pour les clouds.[31]

Comparaison entre cloud et grille

Le tableau 1.1 compare les différentes caractéristiques des grilles et des


clouds.
Le reste de cette section met en évidence les similitudes et les différences
entre les deux paradigmes (grid computing vs cloud computing) [31].
• Partage des ressources : Les grilles améliorent la juste part des
ressources entre les organisations, tandis que les clouds fournissent
les ressources que le fournisseur des services exige à la demande.
Par conséquent, il n’y a pas de partage réel des ressources en raison
de l’isolement fourni par la virtualisation.
• Sécurité : La virtualisation est liée à la sécurité car elle permet
l’isolation des environnements. Tandis que dans les clouds chaque
utilisateur a un accès unique à son environnement virtualisé indi-
viduel, les grilles ne traitent souvent pas la sécurité de l’utilisateur

10
CHAPITRE 1. CLOUD COMPUTER

final.
• Modèle de paiement : Les services de grille sont facturés à l’aide
d’un taux fixe par service ou de différentes organisations partageant
des ressources inactives. D’autre part, les utilisateurs de Cloud sont
généralement facturés à l’aide d’un modèle pay-per-use.
• ...
Fonctionnalité Grid Cloud
Le logiciel SP fonctionne sur un
plateforme de sensibilisation Le logiciel client doit être Grid activé.
environnement personnalisé.
Les applications nécessitent un flux de Le workflow n’est pas essentiel pour la
Software Workflow
travail prédéfini. plupart des applications.
Les nœuds, les sites et l’évolutivité
Évolutivité L’évolutivité des nœuds et des sites.
matérielle.
Autogestion Reconfigurabilité Reconfigurabilité, auto-guérison.
Degré de centralisation Decentralized control. Centralized control (until now).
Utilisabilité Difficile à gérer Facile à gérer (utiliser)
Manque de normes pour l’interopérabilité
Standardisation Standardisation et interopérabilité
des nuages.
Accès à la transparence pour l’utilisateur Accès à la transparence pour l’utilisateur
Accès utilisateur
final. final.
Payment Model Rigide (STRICT). Flexible.
Support limité, de dix meilleurs efforts Support limité, axé sur la disponibilité et la
Garanties QoS
seulement. prête

Table 1.1 – Comparaison entre cloud et grille

1.3.4 Caractéristiques et les modèles de cloud


Selon le National Institute of Standards and Technology, Dans le cloud il
existe cinq caractéristiques essentielles, de trois modèles de service
et de quatre modèles de déploiement[25]. Voir la figure (1.5)

Figure 1.5 – Caractéristiques et les modèles de cloud

Caractéristiques essentielles

• Libre-service à la demande : Un consommateur peut provisionner


les capacités de cloud, tel que le temps de serveur et le stockage du

11
CHAPITRE 1. CLOUD COMPUTER

réseau automatiquement sans exiger l’interaction humaine avec le


fournisseur de chaque service[36, 9].
• Large accès au réseau : les capacités sont disponibles sur le réseau
et accessibles via des mécanismes standard qui favorisent l’utilisation
par des plateformes clients hétérogènes (par exemple, téléphones mo-
biles, ordinateurs portables et PDA)[36, 9].
• Mise en commun des ressources : Les ressources informatiques
du fournisseur sont mises en commun pour servir plusieurs consom-
mateurs à l’aide d’un modèle à locataires multiples, avec différentes
ressources physiques et virtuelles attribuées dynamiquement et ré-
affectées en fonction de la demande des consommateurs. Il existe
un sentiment d’indépendance de localisation en ce sens que le client
n’a généralement aucun contrôle ou connaissance sur l’emplacement
exact des ressources fournies mais peut spécifier un emplacement à un
niveau d’abstraction supérieur (par exemple, pays, état ou centre de
données). Des exemples de ressources incluent le stockage, le traite-
ment, la mémoire, la bande passante réseau et les machines virtuelles[36,
9].
• Élasticité rapide : Les capacités peuvent être rapidement et élas-
tiquement provisionnées, dans certains cas automatiquement, pour
évoluer rapidement et être rapidement mises à l’échelle. Pour le consom-
mateur, les capacités disponibles pour le provisionnement semblent
souvent illimitées et peuvent être achetées en n’importe quelle quan-
tité à tout moment[36, 9].
• Service mesuré : les systèmes cloud contrôlent et optimisent auto-
matiquement l’utilisation des ressources en exploitant une capacité
de mesure à un niveau d’abstraction approprié au type de service (par
exemple, stockage, traitement, bande passante et comptes d’utilisa-
teurs actifs). L’utilisation des ressources peut être surveillée, contrô-
lée et signalée, ce qui assure la transparence tant pour le fournisseur
que pour le consommateur du service utilisé[36, 9].

Modèle De Service Cloud

Selon le National Institute of Standards and Technology il existe trois


catégories de services qui peuvent être offerts en cloud computing : IaaS,
PaaS et SaaS[25]. Voir la figure (1.6)

• nfrastructure as a Service : IaaS (Infrastructure en tant que service).


• Platform as a Service : PaaS (Plateforme en tant que service).
• Software as a Service : SaaS (Logiciels en tant que service).

12
CHAPITRE 1. CLOUD COMPUTER

Figure 1.6 – Modèle De Service Cloud

Figure 1.7 – Types de service Cloud Computing

Cette représentation (figure (1.7)) des différents modèles de service montre


comment les responsabilités sont théoriquement réparties suivant les mo-
dèles interne, IaaS, PaaS, SaaS.

13
CHAPITRE 1. CLOUD COMPUTER

Infrastructure en tant que service (IaaS)

C’est le service de plus bas niveau. Il consiste à offrir un accès à un parc


informatique virtualisé. Des machines virtuelles sur lesquelles le consom-
mateur peut installer un système d’exploitation et des applications. Le
consommateur est ainsi dispensé de l’achat de matériel informatique. Ce
service s’apparente aux services d’hébergement classiques des center de
traitement des données [datacenter . . . ] et la tendance est en faveur de
services de plus haut niveau, qui font davantage abstraction de détails
techniques[25, 9].

• Ceci est la couche de base du modèle de la pile du Cloud.


• Il sert de base pour les deux autres couches, pour leur exécution. Le
mot-clé derrière cette couche est de virtualisation.
• Essayons de comprendre cela en utilisant Amazon EC2. Dans Ama-
zon EC2 (Elastic Compute Cloud) votre demande sera exécutée sur
un ordinateur virtuel (instance virtuelle). Vous avez le choix de l’or-
dinateur virtuel, où vous pouvez sélectionner une configuration de
processeur, de mémoire et de stockage qui est optimale pour votre
application. L’ensemble de infrastructures globale du Cloud i.e. les
serveurs, routeurs, matériel à partage de charge (load balancing hard-
ware), pare-feu, stockage et autres équipements réseau sont fournis
par le fournisseur de l’IaaS. Le client achète ces ressources comme un
service, sur la base de ses besoins.

La figure (1.8) présente quelques exemples des fournisseur de Iaas.

Figure 1.8 – Exemple de fournisseur de IaaS

Plateforme en tant que service (PaaS)

Dans ce type de service, situé juste au-dessus du précédent, le système


d’exploitation et les outils d’infrastructure sont sous la responsabilité du
fournisseur.
Le consommateur a le contrôle des applications et peut ajouter ses propres
outils[25, 9].

14
CHAPITRE 1. CLOUD COMPUTER

• Maintenant, vous n’avez pas besoin d’investir beaucoup d’argents


pour obtenir cette plateforme de développement prête pour vos dé-
veloppeurs. Le fournisseur PaaS vous livrera cette plateforme sur le
web, et dans la plupart des cas, vous pouvez utiliser cette plateforme
en utilisant votre navigateur, sans avoir besoin de télécharger un lo-
giciel.
• Couches du PaaS :
Système d’exploitation (OS) du Cloud
Middleware (logiciel tiers créant un réseau d’échange d’informa-
tions entre différentes applications informatiques) du Cloud.

La figure (1.8) présente quelques exemples des fournisseur de Paas.

Figure 1.9 – Exemple de fournisseur de PaaS

Logiciels en tant que service (SaaS)

Dans ce type de service, des applications sont mises à la disposition des


consommateurs. Les applications peuvent être manipulées à l’aide d’un na-
vigateur web ou installées de façon locative sur un PC, et le consommateur
n’a pas à se soucier d’effectuer des mises à jour, d’ajouter des patches de
sécurité et d’assurer la disponibilité du service. Gmail est un exemple de tel
service. Il offre au consommateur un service de courrier électronique et le
consommateur n’a pas à se soucier de la manière dont le service est fourni.
Autre exemple, Office 365 propose un ensemble de services en abonnement
dont la suite logicielle Office qui se met automatiquement à jour, l’utili-
sateur ne se soucie pas de racheter un nouveau logiciel ou de le mettre à
jour. On parle ici de location de services hébergés par Microsoft. D’autres
exemples de logiciels mis à disposition en Saas sont Google Apps, Office
Online ou LotusLive (IBM). Un fournisseur de software as a service peut
exploiter des services de type platform as a service, qui peut lui-même se
servir de infrastructure as a service[25, 9].

• Ceci est le plus haut niveau de la couche de la pile du cloud directe-


ment utilisée (consommée) par l’utilisateur final i.e. SaaS (Software
as a Service / Logiciels comme service).

15
CHAPITRE 1. CLOUD COMPUTER

• La prochaine génération de SaaS promet que tout peut devenir un


service sur Internet.
• Le Cloud computing a commencé par un prémisse similaire.
• Un paradigme informatique où il existe un ensemble flexible de res-
sources informatiques, à travers l’internet.

Supervision

Évaluation de
Opération
plateforme

Interaction

Développement Rabotage

Souscription

Figure 1.10 – Cycle de vie du développement SaaS

Toutes les choses dans le cloud computing sont un service Table (1.2) :

A bréviation Nom complet de l’abréviation


A PaaS Application en tant que service
BaaS Backup en tant que service
BaaS Backend en tant que service
CaaS Communication en tant que service
DaaS Data en tant que service
DaaS Desktop en tant que service
DBaaS Base de Donnée en tant que service
DCaaS Data center en tant que service
DPaaS Platform de base de donnée en tant que service
MaaS Gestion en tant que service
NaaS Reseau en tant que service
XaaS Tout en tant que service

Table 1.2 – Les abréviations à base de ’*aaS’

16
CHAPITRE 1. CLOUD COMPUTER

Modèles de déploiement Cloud

Un nuage (Cloud) peut être public, privé, hydride ou communau-


taire [25, 9, 36] :
• Un Cloud public : est mis à disposition du grand public. Les ser-
vices sont typiquement mis à disposition par une entreprise, qui ma-
nipule une infrastructure qui lui appartient. Voir la figure (1.11)

Figure 1.11 – Cloud public

• Un Cloud privé : est destiné exclusivement à une organisation, qui


peut le manipuler elle-même, ou faire appel à services fournis par des
tiers. Voir la figure (1.12)

Figure 1.12 – Cloud privé

• Dans un Cloud communautaire : l’infrastructure provient d’un


ensemble de membres qui partagent un intérêt commun. Ce type de
cloud est semblable à ceux montés par les milieux académiques pour
des études de grande envergure. Le déploiement des applications y
sera communautaire. Voir la figure (1.13)

17
CHAPITRE 1. CLOUD COMPUTER

Figure 1.13 – Cloud communautaire

• Le Cloud hybride (interne et externe) : est un environnement


composé de multiples prestataires internes et externes. Par exemple,
IBM avait conclu un partenariat avec Juniper Networks. Cette asso-
ciation a permit à Big Blue de déployer son offre de cloud hybride.
Ainsi, les entreprises qui utilisent ce service peuvent faire basculer,
par un simple glisser-déposer, des applications hébergées dans un
cloud privé interne vers un cloud public sécurisé. Voir la figure (1.14)

Figure 1.14 – Cloud hybride

1.3.5 Les architecture de cloud


Cloud Computing (CC) a récemment reçu une attention considérable
de l’industrie des IT et des chercheurs universitaires. Il y a donc plusieurs
architecteurs pour construire un cloud.
Parmi ces architectures, on va vous en montrer quelques architecture :
• Architecture générale de cloud computing :

18
CHAPITRE 1. CLOUD COMPUTER

Figure 1.15 – Architecture générale de cloud computing

En règle générale[36], l’architecture d’un environnement de Cloud


Computing peut être divisée en 4 couches : la couche Hardware, la
couche infrastructure, la couche plate-forme et la couche application,
comme illustré à la Figure(1.15). Nous décrivons chacun d’entre eux
en détail :
La couche matérielle (Hardware) : cette couche est respon-
sable de la gestion des ressources physiques du cloud, y compris les
serveurs physiques, routeurs, commutateurs, les systèmes d’exploi-
tations. En pratique, la couche matérielle est généralement implé-
mentée dans les datacenters. Un datacenter contient généralement
des milliers de serveurs qui sont organisés en racks et interconnec-
tés via des commutateurs, des routeurs ou d’autres tissus. Les
problèmes typiques de la couche matérielle incluent la configura-
tion matérielle, la faulttolerance, la gestion du trafic, la gestion
des ressources d’alimentation et de refroidissement.
La couche infrastructure : également appelée couche de vir-
tualisation, la couche infrastructure crée un pool de ressources de
stockage et de calcul en partitionneant les ressources physiques à
l’aide de technologies de virtualisation. La couche infrastructure
est un composant essentiel du Cloud Computing, car de nom-
breuses fonctionnalités clés, telles que l’attribution de ressources
dynamiques, ne sont disponibles que grâce aux technologies de
virtualisation.
La couche plateforme : construite au-dessus de la couche d’in-
frastructure, la couche plate-forme se compose de systèmes d’ex-
ploitation et d’infrastructures d’application. Le but de la couche

19
CHAPITRE 1. CLOUD COMPUTER

plate-forme est de minimiser la charge de déployer des applica-


tions directement dans les conteneurs VM. Par exemple, Google
App Engine opère à la couche plate-forme pour fournir la prise en
charge d’API pour implémenter le stockage, la base de données et
la logique métier des applications Web typiques.
La couche d’application : au niveau le plus élevé de la hiérar-
chie, la couche d’application se compose des applications de nuage
réelles. Différentes des applications traditionnelles, les applications
Cloud peuvent tirer parti de la fonction de mise à l’échelle automa-
tique pour obtenir de meilleures performances, une disponibilité
et un coût d’exploitation moindre.

Par rapport aux environnements d’hébergement de services tradi-


tionnels tels que les batteries de serveurs dédiées, l’architecture du
Cloud Computing est plus modulaire. Chaque couche est faiblement
couplée avec les couches ci-dessus et ci-dessous, permettant à chaque
couche d’évoluer séparément. Ceci est similaire à la conception du
modèle OSI pour les protocoles réseau. La modularité architecturale
permet au Cloud Computing de prendre en charge un large éventail
d’exigences d’application tout en réduisant les frais de gestion et de
maintenance.

• Architecture mobile Cloud Computing :

Figure 1.16 – Architecture mobile Cloud Computing

Du concept de MCC (Mobile Cloud Computing), l’architecture gé-

20
CHAPITRE 1. CLOUD COMPUTER

nérale du MCC peut être illustrée à la figure (1.16). Dans la figure


1.16, les appareils mobiles sont connectés aux réseaux mobiles via
des stations de base (p. ex. station émetteur-récepteur de base, point
d’accès ou satellite) qui établissent et contrôlent les connexions (liai-
sons aériennes) et les interfaces fonctionnelles entre les réseaux et les
Dispositifs. Les demandes et les informations des utilisateurs mobiles
(p. ex., ID et emplacement) sont transmises aux processeurs centraux
connectés aux serveurs fournissant des services de réseau mobile. Ici,
les opérateurs de réseau mobile peuvent fournir des services aux utili-
sateurs mobiles en tant qu’authentification, autorisation et comptabi-
lité basés sur les données de l’agent d’accueil et des abonnés stockées
dans des bases de données. Après cela, les demandes des abonnés
sont livrées à un cloud par Internet. Dans le cloud, les contrôleurs
cloud traitent les demandes pour fournir aux utilisateurs mobiles les
services Cloud correspondants. Ces services sont développés avec les
concepts de l’informatique utilitaire, de la virtualisation et de l’ar-
chitecture orientée services (p. ex., Web, applications et serveurs de
bases de données)[16].

• Architecture de Cloud orientée sur le marché :

Utilisateur/Middelware

Examinateur de demande de service et contrôle d'admission


 Gestion de service axée sur les costumes
 Gestion des risques informatiques
 Gestion autonome des ressources

Prix Comptabilité

Moniteur Moniteur de demande de


VM Répartiteur service

Machine
virtuelle

Machine
physique

Figure 1.17 – Architecture de Cloud orientée sur le marché

La figure (1.17) montre l’architecture de haut niveau pour soutenir

21
CHAPITRE 1. CLOUD COMPUTER

l’allocation de ressources orientée marché dans les centres de don-


nées et les clouds. Il y a essentiellement quatre entités principales
impliquées[14] :
Utilisateurs/courtiers (middleware) : Utilisateurs ou cour-
tiers agissant pour leur compte soumettre des demandes de ser-
vice de n’importe où dans le monde pour le centre de données et
le Cloud à traiter.
Allocateur de SLA (Service Level Agreements) de res-
sources : L’allocateur de ressource SLA agissant comme interface
entre le fournisseur de services de centre de données/Cloud et les
utilisateurs externes et les courtiers.
VMs : Plusieurs machines virtuelles peuvent être démarrées et
arrêtés dynamiquement sur une seule machine physique pour ré-
pondre aux demandes de service acceptée, offrant ainsi une flexibi-
lité maximale pour configurer différentes partitions de ressources
sur la même machine physique aux différent particulier exigences
en matière de demandes de service. En outre, plusieurs machines
virtuelles peuvent exécuter simultanément des applications basées
sur des environnements de système d’exploitation différent sur un
seul ordinateur physique étant donné que chaque machine virtuelle
est complètement isolé de l’autre sur la même machine physique.
Machines physiques : Le centre de données se compose de plu-
sieurs serveurs informatiques qui fournissent des ressources pour
répondre aux demandes de service.

1.3.6 Exemple des clouds computing


Dropbox

Utilisation de l’application Dropbox, pour synchroniser ses dossiers,


ainsi que ses sous-dossiers applicatifs . . . et ses fichiers préférences dont
ceux de certaines applications (Things, Coda, AppControls etc.), entre ses
ordinateurs distants, sa tablette et son Smartphone (étant tous connectés
à Internet _ ADSL, WiFi . . . ). Voir la figure (1.18)

22
CHAPITRE 1. CLOUD COMPUTER

Figure 1.18 – Dropbox

Messagerie

Au lieu de lancer un programme de messagerie (un gestionnaire de vos e-


mail) sur votre ordinateur, vous vous connectez à un compte e-mail Web à
distance. Le logiciel et le stockage, pour votre compte, n’existe pas sur votre
ordinateur - ce est sur le « nuage d’ordinateurs » du service de messagerie
distant. Exemples : Yahoo !, GMail, Hotmail . . .
Voir la figure (1.19)

Figure 1.19 – Messagerie

Avantage et Inconvénient de cloud

Cloud Computing comme d’autres technologies, il a des avantages et


des inconvénients[9].

Avantage

• Réduction des coûts :


Les caractéristiques du cloud computing intéressantes pour les en-
treprises sont la réduction du coût total de possession des sys-
tèmes informatiques, la facilité d’augmenter ou de diminuer les
ressources.

23
CHAPITRE 1. CLOUD COMPUTER

Le cloud computing peut permettre d’effectuer des économies,


notamment grâce à la mutualisation des services sur un grand
nombre de clients. Certains analystes indiquent que 20 à 25 %
d’économies pourraient être réalisées par les gouvernements sur
leur budget informatique s’ils migraient vers le cloud computing.
Le cloud computing permet également aux petites entreprises d’avoir
accès à des services jusque là réservés aux grandes entreprises en
raison de leur coût.
L’abonnement à des services de cloud computing peut permettre
à l’entreprise de ne plus avoir à acquérir des actifs informatiques
comptabilisés dans le bilan sous forme de CAPEX et nécessitant
une durée d’amortissement. Les dépenses informatiques peuvent
être comptabilisées en tant que dépenses de fonctionnement.
• Souplesse / flexibilité :
Comme pour la virtualisation, l’informatique dans le nuage peut
être aussi intéressante pour le client grâce à son évolutivité.
En effet, le coût est fonction de la durée de l’utilisation du service
rendu et ne nécessite aucun investissement préalable (homme ou
machine).
L’« élasticité » du cloud permet de fournir des services évolu-
tifs et peut permettre de supporter des montées en charge. In-
versement, le fournisseur a la maîtrise sur les investissements, est
maître des tarifs et du catalogue des offres, et peut se rémunérer
d’autant plus facilement que les clients sont captifs.
• Réduction des efforts de gestion informatique :
Le recours au cloud computing permet de décharger les équipes
informatique des entreprises, qui ont alors plus de disponibilité
pour des activités à haute valeur ajoutée.
La maintenance, la sécurisation et les évolutions des services étant
à la charge exclusive du prestataire, dont c’est généralement le
cœur de métier, celles-ci ont tendance à être mieux réalisées et
plus rapidement que lorsque sous la responsabilité du client (prin-
cipalement lorsque celui-ci n’est pas une organisation à vocation
informatique).
• Recentrage sur le cœur de métier.
• Évolutivité.
• Élasticité.
• Mobilité / accessibilité.

24
CHAPITRE 1. CLOUD COMPUTER

Avantage

• Problèmes de sécurisation de ses données informatiques :


L’utilisation des réseaux publics, dans le cas du cloud public, en-
traîne des risques liés à la sécurité du cloud. En effet, la connexion
entre les postes et les serveurs applicatifs passe par le réseau in-
ternet, et expose à des risques supplémentaires de cyber attaques,
et de violation de confidentialité. Le risque existe pour les parti-
culiers, mais aussi pour les grandes et moyennes entreprises, qui
ont depuis longtemps protégé leurs serveurs et leurs applications
des attaques venues de l’extérieur grâce à des réseaux internes
cloisonnés.
Mieux vaut ne pas stocker ses codes et mots de passe sur des
stockages partagés cloud. Donc, bien réfléchir avant de confier ses
données à un « gestionnaire tiers ».
Tout comme les logiciels installés localement, les services de cloud
computing sont utilisables pour lancer des attaques (craquage de
mots de passe, déni de service. . . ).
En 2009, par exemple, un cheval de Troie a utilisé illégalement un
service du cloud public d’Amazon pour infecter des ordinateurs.
• Nécessite une connexion Internet constante :
Le cloud computing est impossible si vous ne pouvez pas vous
connecter à Internet.
Puisque vous utilisez Internet pour vous connecter à vos applica-
tions et à vos documents, si vous n’avez pas de connexion Internet,
vous ne pouvez rien accéder, même vos propres documents.
Une connexion Internet morte signifie pas de travail et dans les
domaines où les connexions Internet sont peu ou intrinsèquement
peu fiables, cela pourrait être un briseur de deal.
• Ne fonctionne pas bien avec les connexions à basse vitesse :
De même, une connexion Internet à faible débit, telle que celle
trouvée avec les services commutés, rend le cloud computing sou-
vent impossible.
Les applications Web nécessitent beaucoup de bande passante à
télécharger, tout comme les documents volumineux.
• Les fonctionnalités peuvent être limitées :
Cette situation est appelée à changer, mais aujourd’hui, de nom-
breuses applications Web ne sont tout simplement pas aussi com-
plètes que leurs applications de bureau.

Par exemple : vous pouvez faire beaucoup plus avec Microsoft

25
CHAPITRE 1. CLOUD COMPUTER

PowerPoint qu’avec l’offre Web de Google Présentations.


• Les données stockées peuvent être perdues :
Théoriquement, les données stockées dans le cloud sont sécurisées,
répliquées sur plusieurs machines.
Mais au cas où vos données disparaîtraient, vous n’avez aucune
sauvegarde physique ou locale.

En d’autres termes, s’appuyer sur le cloud vous met en danger si


le cloud vous laisse tomber.

1.4 Conclusion
Le cloud computing est une récente innovation. Il accroît l’efficacité et
la souplesse des sociétés dans la mesure où il permet de travailler sans
contrainte (technique, horaire, géographique. . . ), de gérer à la carte les lo-
giciels et donc les fonctionnalités utilisées, de ne plus s’occuper de tâches
longues, compliquées et contraignantes liées à la technique, de gagner du
temps en limitant les ressaisies et surtout de faire des économies.

Dans le prochain chapitre, nous allons définir ce que la découverte et


la sélection des services de cloud computing. Nous allons aussi survoler
quelques travaux connexes dans ce domaine.

26
Chapitre 2

Découvert et Séléction de service


cloud

“Cloud is about how you do computing, not where you do computing.”


Paul Maritz, CEO of VMwaref

2.1 Introduction
Au cours du dernier chapitre, nous avons défini ce qu’est le cloud com-
puting et ce que ses composants et ses avantages et inconvénients.

Le développement rapide du cloud computing a attiré l’attention de


chercheurs et des sociétés de IT et le nombre de services de clouds a consi-
dérablement augmenté de façon exponentielle. Selon [1], L’entreprise de
Gartner faire une analyse est examiné les prévisions de recettes pour le
marché de cloud a partir de cette année jusqu’en 2020.

Dernières prévisions pour Gartner en 2017


• IaaS (Infrastructure en tant que service) – 44 milliards de dollars
• PaaS (Plateforme en tant que service) – 11 milliards de dollars
• SaaS (Logiciels en tant que service) – 59 milliards de dollars

2.2 Problématique
La grande popularité de cloud computing et l’augmentation exponen-
tielle du nombre de services ont crée de nouveaux problèmes. Notamment,
comment l’utilisateur peut découvrir tous les services offerts, qui sont des
millions ou des milliards, et comment ils font le choix le plus approprié ?

Dans ce qui suit nous répondons aux questions suivantes :

27
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD


Qu’est-ce que la découverte ?

Comment est découvert les services de cloud ?

Qu’est-ce que la sélection ?

Comment sectionné une service cloud ?

2.3 Découverte de service cloud


Dans cette section, nous définissons c’est quoi la découverte et nous
mentionnons les travaux connexes dans la découverte des services clouds.

2.3.1 Définition
Découvrir les services cloud est de trouver l’emplacement et les carac-
téristiques de service qui sont offerts et inconnu sur le réseau.

Le système de découverte des services de cloud se soucie en vue de faci-


liter la recherche de services fournis en ligne en se basant sur des agents :
utilisateur, fournisseurs, et intermédiaires (middelware), qui servent res-
pectivement à formuler la requête, créer les services clouds et publier.

2.3.2 Travaux connexes


Dans cette partie, nous mentionnerons certains travaux précédents dans
la découverte des services de cloud computing.

Système de découverte de services cloud amélioré par ontologie

Selon [20]. Quand un utilisateur recherche un service par un moteur de


recherche, il obtient un nombre énorme de résultats, ainsi que le moteur
de recherche nous retourne des liens non-pertinent, ainsi, l’utilisateur perd
beaucoup de temps pour visiter tout les URL, dans le résultat retourné in
n’existe aucun relation entre les services et le moteur de recherche ne pas
choisir le meilleur service pour une requête. Alors il faut faire un méca-
nisme pour découvrir les services de cloud et relation entre les services.

Taekgyeong Han et Kwang Mong Sim ont mis en place un système pour
découvrir les services de cloud computing (CSDS) par une ontologie, ce
système basé sur les agents et en particulier CSRA (Agent de raisonnement
du service Cloud ).
l’une des principales contributions est de créer un agent pour :

28
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

• Détecter les relations des services de cloud.


• Évaluer le résultat de la recherche.

Autre contribution de ce travail est la conception de la construction


d’une ontologie qui consiste à une taxonomie de concept de service de
cloud qui permet au CSRA de déterminer les relation des services de cloud
en utilisant 3 méthode :
• Raisonnement de similarité.
• Raisonnement équivalent.
• Raisonnement numérique.

Via l’utilisation d’ontologie de cloud, le CSS a réussi de trouver le service


cloud le plus proche des besoins des utilisateurs.
Prototype d’un CSDS :
• Agent de traitement la requête (QPA) : Le QPA localise les
sources d’information en exécutant des moteurs de recherche clas-
sique. Bien que la sélection d’un moteur de recherche sont aléatoire,
le moteur de recherche par défaut est Google (search API ). Si le
nombre de résultat de recherche est inférieur à celui spécifie par uti-
lisateur, alors générer une nouvelle requête alternative pour obtenir
plus de résultats.
• Agent de filtrage : Il remplace l’utilisateur pour visiter et consulter
tout les sites web au cours processus de recherche l’information. La
pertinence des pages web est déterminée en adoptent 3 heuristiques :
Détection des expressions de preuve (EP).
Compter les fréquences de EP
Voir de la proximité entre les mots-clés.
• Agent de raisonnement de service cloud : Il consulte l’ontologie
cloud pour raisonner sur les relations entre les services clouds.

L’architecture de CSDS est motionnée dans la figure(2.1).

29
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

Figure 2.1 – Système pour découvert les services de Cloud Computing

Dans cette figure(2.1) on a 2 composants :


• Un CSDS aide à trouver le meilleur service cloud pour compte des
utilisateurs.
• Une ontologie de cloud qui consiste une taxonomie de concept de
différent service de cloud a consulté avec le CSDS.
• Plus, il existe une interface utilisateur qui permet à l’utilisateur d’en-
trer des requêtes contient un nom de service et les exigences prise en
compte par leurs préférence.

Selon les chercheurs ce travail est le 1er effort dans la construction


des systèmes de découverte des services de cloud, pour aider les utilisa-
teurs dans la recherche de services cloud plus efficacement, ce travail n’est
pas conçu pour concourir ou remplacer les moteurs de recherche existants
comme mécanisme de recherche initial pour collecter des informations sur
les services clouds. Ensuite, Consulte une ontologie de cloud pour sélec-
tionner le meilleur service.

30
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

Vers les agents et l’ontologie pour la découverte des services Cloud

Jaeyong Kang et Kwang Mong Sim [21] présentent un protocole de dé-


couverte de service cloud basé sur des agents. Ils ont utilisé une description
d’ontologie, dans laquelle chaque ressource est décrite sémantiquement et
relativement à d’autres ressources, afin qu’ils aient développement d’un
système multi-agent qui coopère efficacement entre eux et basant sur l’on-
tologie pour sélection le service optimal selon la demande de l’utilisateur.

Pour augmenter le taux d’utilité et de succès de la correspondance des


demandes des consommateurs aux ressources, les auteurs ont utilisé une
base de données pour stocker et garder une trace des données historiques
pour faire une recommandation intelligente basée sur la prévision de valeur
d’attribut. Les résultats empiriques montrent que lorsque les agents de
Middelware (Broker) dans leur système utilisent une ontologie de cloud et
une procédure de connexion avec une étape de recommandation ont obtenu
de meilleures performances dans la recherche des services cloud appropriés
que lorsque les agents Broker :
1. N’utilisent que la connexion procédure, mais pas l’ontologie des clouds.
2. N’utilisent pas la procédure de connexion et l’ontologie des clouds.
Ce système Multi-agent est composé de 3 agents :
• User (utilisateur) Agent.
• Broker (middelware) Agent.
• Provider (fournisseur) Agent.

Middleware système pour les services de cloud : Le Middleware


système des services cloud comprend plusieurs middleware agents et agents
de négociation (agents d’utilisateur et agents de fournisseur), applications
et ressources, comme indiqué dans la figure(2.2). Le Middleware système
des services cloud fonctionne comme suit :

31
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

Figure 2.2 – Une découverte de service Cloud basée sur un agent

Dans cette partie, la procédure de connexion (sélection, évaluation, fil-


trage et recommandation) entre les utilisateurs et les fournisseurs est pré-
sentée comme indiqué sur la figure(2.3).

Agent Middelware
User Agent
Évaluation
Demande file procédure de connection
prix & intervalle utilitaire de correspondance
d'attente 1. Prix de correspondance Utility
Sélection 2. Intervalle Utility correspondant
Résultat

Raisonnement similarité
File d'attente Évaluation
de connexion 1. Raisonnement de similarité de
concept
2. Raisonnement de similarité de
Filtring propriété d'objet
Résultat
3. Raisonnement de similarité de
File d'attente propriété de type de données
de publicité Recommandation

Provider Agent
concepts Score de
Cloud similarité
Agent Middelware
Agent Middelware
Agent Middelware
Base de donnée
Cloud ontologie

Figure 2.3 – Architecture de l’agent de middleware

Système basé sur l’ontologie pour la découverte des services d’infrastructure


cloud

Dans [35], Les auteurs présentent une ontologie basée sur OWL, l’onto-
logie du cloud computing (CoCoOn) qui définit les concepts fonctionnels et

32
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

non fonctionnels, les attributs et les relations des services d’infrastructure.

Ils ont présenté également un système, CloudRecommender, qui implé-


mente leur ontologie de domaine dans un modèle relationnel.

Le système utilise des expressions régulières et SQL pour faire corres-


pondre les demandes des utilisateurs aux descriptions de service. Les au-
teurs décrivent brièvement l’architecture du système CloudRecommender,
et démontrent son efficacité et son évolutivité grâce à une expérience de
sélection de configuration de service basée sur un ensemble de descriptions
de fournisseurs de clouds de premier plan, notamment Amazon, Azure et
GoGrid.

Ontologie de cloud computing

Le cloud computing ontologie (CoCoOn) définit le modèle de domaine


de la couche d’IaaS, cette ontologie facilite la description des services d’in-
frastructure de cloud, et par le biais de mappages à partir des descriptions
de fournisseur, facilite la découverte des services d’infrastructure basée sur
leurs fonctionnalités et les paramètres de qualité de Service (QoS), et il a
été localisé le plus important ensemble de services d’infrastructure (p. ex.
Amazon, Azure, GoGrid, Rackspace, etc.) à CoCoOn. Tous les champs de
métadonnées communes dans l’ontologie y compris organisation.

Le CoCoOn se compose de deux parties :


• Paramètres de configuration de service Cloud fonctionnels :
Le concept principal pour décrire les configurations fonctionnelles de
service de cloud dans CoCoOn est un CloudResource qui peut être
l’un des trois types : IaaS, PaaS ou SaaS.

Pour la mise en œuvre actuelle du système CloudRecommender,


nous avons défini la couche infrastructure de cloud (IaaS), en four-
nissant des concepts et des relations qui sont fondamentaux pour les
autres couches de niveau supérieur.

Les services Cloud dans la couche IaaS peuvent être classés en :


Compute
Réseau
services de stockage
Voir figure(2.4)

33
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

Figure 2.4 – Concepts haut de la couche IaaS

’Compute’ est le concept principal pour les services d’infrastructure,


tandis que le réseau et le stockage sont généralement attachés à un
service de calcul (avec des exceptions, par exemple NetworkStorage,
voir ci-dessous).

• Paramètres de configuration pour le service cloud non fonc-


tionnel : Pour les paramètres de configuration non fonctionnels cloud
service, nous distinguons non-fonctionnel propriétés et attributs de
QoS. Les premiers sont propriétés des ressources de nuages qui sont
connus au moment du design, PriceStorage, fournisseur, modèle de
déploiement, par exemple, tandis que les attributs de QoS seulement
peuvent être enregistrés qu’après le cycle d’au moins une exécution
d’un service de cloud, par exemple, DiskReadOperations, FilDans,
NetworkOut etc.. Pour les attributs de qualité de service, on distingue
des MeasurableAttributes comme ceux ci-dessus et les attributs non
mesurable comme la durabilité ou la Performance.

Systeme de selection de service cloud


Ils proposent une approche et un système de sélection de configuration
de service en nuage appelé CloudRecommender. Pour notre service Clou-
dRecommender, nous avons implémenté :
• L’ontologie du service cloud en tant que modèle relationnel.
• L’ontologie de QoS en cloud en tant qu’informations de configuration
sous forme de données structurées (entités) que nous interrogeons à

34
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

l’aide de SQL.

Le choix d’un modèle relationnel et SQL comme langage de requête a


été fait en raison de la commodité des procédures SQL nous offre en ce qui
concerne la définition de modèles pour un type de widget donné.

Il a utilisé des procédures stockées pour créer des tables temporaires et


pour concaténer des paramètres pour générer dynamiquement des requêtes
basées sur l’entrée de l’utilisateur.

Sélection de service de cloud en utilisant l’analyse décisionnelle multicritère

les auteurs de [33] analyse de décision multicritère (MCDA) est modé-


lisé après la façon dont les humains ont pensés pour prendre des décisions.
Bien qu’une variété de méthodes, techniques et approches MCDA diffé-
rentes aient été étudiées.

Les composants de base de MCDA sont les mêmes :


• Un ensemble fini ou infini d’actions.
• Au moins deux critères.
• Un décideur (DM).

MCDA n’est pas seulement une collection de théories, de méthodologies


et de techniques, mais aussi une perspective spécifique pour traiter les pro-
blèmes décisionnels.

L’approche de prise de décision multicritère (MCDM) est capable de


traiter plusieurs critères contradictoires, cette étude fournit une analyse
approfondie de plusieurs méthodes et modèles liés à MCDA/MCDM, la
prise de décision multicritère est un sous-domaine de la recherche opéra-
tionnelle qui traite des techniques de résolution de problèmes multicritères
tels que le problème de sélection du service Cloud.

Toutes les méthodes de MCDA sont présentées dans la figure(2.5)

35
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

Figure 2.5 – Les méthodes de MCDA

Cloud Service Selection Based on MCDA


MCDA est un domaine bien établi dans le domaine de la recherche opé-
rationnelle, et il a prouvé son efficacité dans la résolution de différents pro-
blèmes complexes de prise de décision dans le monde réel. une étude com-
parative est présentée impliquant un Cloud Infrastructure-as-a-service, il a
utilisé les techniques de MCDA pour sélectionner le meilleur service basé
sur les mesures de performance effectuées par un service de surveillance
de tierce partie contre cinq critères différents. Deux classes éminentes de
MCDA sont utilisées, la théorie de l’utilité multiattribute (Maut)
et la surclassement. Sur la base de plusieurs types, méthodes et caté-
gories, ils ont dérivés une taxonomie pour les multiples options et la prise
de décision multicritère. Les résultats montrent que les techniques MCDA
sont effectivement efficaces et peuvent être utilisées pour la sélection des
services en cloud, mais que les différentes techniques ne sélectionnent pas le
même service. Par conséquent, plus de travail est nécessaire pour identifier
la méthode MCDA la plus efficace pour la sélection des clouds en utili-
sant un ensemble de données étendu et des critères beaucoup plus larges.
Cependant, ces résultats révèlent que TOPSIS et les deux méthodes de
surclassement (Electre et promethee) sont plus adaptées à cette fin. Si le
nombre de services disponibles est très grand, alors TOPSIS est approprié
en raison de sa simplicité de calcul. Les méthodes de surclassement sont
meilleures dans les scénarios avec un petit nombre d’alternatives, mais un
grand nombre de critères.

• Sélection de service par le AHP : Le AHP a été proposé afin


de résoudre ce problème en utilisant une structure hiérarchique et

36
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

une systématisation. Dans le AHP, un rapport est assigné à chaque


comparaison par paires entre chaque critère de requête d’utilisateur
et les services disponibles. Les résultats de comparaison sont ensuite
classés dans une hiérarchie avec un poids attribué à chaque critère,
en fournissant des mesures qualitatives et quantitatives.

Le AHP est utilisé par les décideurs afin de prendre des décisions plus
éclairées concernant leur investissement dans diverses technologies.,
employant la comparaison par paires pour dériver une gamme de pré-
férences d’un ensemble d’alternatives. Cela est réalisé en déterminant
la réceptivité du processus de sélection à l’évolution rapide des règles
et des critères d’affaires. Le AHP transforme le processus décisionnel
d’un jugement subjectif en une détermination objective. Un modèle
de décision mathématique formelle sophistiquée soutenant la sélec-
tion des services de cloud computing. Pour sélectionner les services
de cloud computing appropriés offerts par différents fournisseurs, Ces
auteurs tiennent compte des facteurs de coût et de risque dans le
processus décisionnel. En employant le AHP, les risques sont pris en
compte lors de la mise en œuvre du modèle dans une approche glo-
bale durable de prise de décision. Cette méthode a été validée par
une étude de simulation et en considérant des scénarios réalistes.

• Sélection de service basée sur la méthode TOPSIS : Sélection


de service de cloud est un problème de prise de décisions (MCDM) de
groupe critères multiples. La technique de préférence de la commande
par similarité (OPS) pour une solution idéale (TOPSIS) peut aider
service consommateurs et les fournisseurs en analysant les services
disponibles à l’aide d’opinions floues. les auteurs constatent qu’un
ensemble de variables linguistiques prédéterminés peut être paramé-
tré par des nombres flous triangulaires, qui permet ensuite d’évaluer
le poids des critères différents et les côtes des services web alternatif.
Ils décrivent un exemple numérique flou de TOPSIS afin de démon-
trer l’efficacité computationnelle.

TOPSIS, est une célèbre méthode de prise de décisions (MCDM)


critères multiples. Il détermine la distance la plus courte de la solution
positive idéale (PIS) et le plus loin possible de la solution idéale
négative (NIS) afin de sélectionner la meilleure alternative. TOPSIS
est une technique MCDA populaire en raison de sa rigueur :
Théorique.

37
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

Capacité de représenter le raisonnement humain au cours de la


sélection.
La proéminence dans la résolution de grade traversal.

2.4 Sélection de service cloud


Dans cette section, nous définissons c’est quoi la sélection et nous men-
tionnons les travaux connexes dans la sélection des services clouds.

2.4.1 Définition
La sélection est de sélectionner le choix optimal parmi les nombreux
choix, la sélection est la même que la demande dans les propriétés et les
capacités.

Le grand nombre de services fournis augmente de façon dramatique


chaque jour et rend l’utilisateur un problème difficile, le problème est de
choisir les meilleurs et les services les plus appropriés en fonction de ses
demandes, Avec l’augmentation des services de cloud dans l’Internet, le
choix du service optimal d’un ensemble de candidats équivalents devient
un problème de recherche important.

Les chercheurs ont fourni de nombreux travaux dans le domaine de la


sélection des services de cloud computing, nous vous en montrons quelques
uns dans la section suivante.

2.4.2 État de l’art et travaux connexes


Dans cette partie, nous mentionnerons certains des travaux précédents
dans la sélection des services de cloud computing.

Modèle de cloud pour la sélection de service

Selon [32]. Les paramètres de qualité de service (QoS) (p. ex., temps de
réponse, prix, débit, etc.) jouent un rôle important dans la détermination
du succès ou de l’échec du système composite. L’accord de niveau de ser-
vice (SLA). L’environnement internet est très dynamique. Les valeurs QoS
des services Web peuvent changer dynamiquement en raison de la mise à
jour du matériel/logiciel du serveur ou du changement de charge de travail

38
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

des serveurs.

Dans cet article, Les auteurs présenté une approche efficace de sélection
des services au service de QoS. Cette approche emploie d’abord le modèle
de cloud pour calculer l’incertitude de QoS pour l’élagage des services re-
dondants tout en extrayant des services fiables. Ensuite, la programmation
des entiers mixtes est utilisée pour sélectionner les services optimaux.

On peut résumer comme suit les principales contributions du présent


document.
1. Les chercheurs ont attaqué au problème de sélection de service de
cloud et démontrent l’influence de l’incertitude de la QoS sur le pro-
cessus de sélection du service.
2. Ils ont introduit un concept innovant, appelé QoS incertitude infor-
matique, afin de modéliser l’intrinsèquement incertain de Web service
QoS.
Auteurs adoptés le modèle cloud pour calculer l’incertitude de la
QoS. Selon les trois caractéristiques numériques du modèle de cloud,
les services web avec un écart important sur leur qualité de service
peuvent être taillés. Au meilleur de notre connaissance, c’est le pre-
mier ouvrage qui calcule l’incertitude de QoS pour sélection de service
de cloud.
3. Selon le modèle de cloud, il a proposé une approche rapide et fiable
prenant en charge QoS service sélection. Nous évaluons notre ap-
proche expérimentalement sur 10 258 services de Web de monde réel
avec les valeurs précises de qualité de service ainsi que sur les valeurs
de QoS générées de manière aléatoire.

Comme illustré à la figure(2.6), l’approche proposée de la sélection de


service via le modèle de cloud (SSCM) contient deux phases.

1: Calcul de Moteur de
Obtient des 2: Sélection des
composition de
données QoS l'incertitude QoS services
service

Figure 2.6 – Procédures d’approche SSCM

39
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

• La première phase est incertitude QoS informatique, dans laquelle


nous adoptons modèle de cloud pour transformer la QoS quantitative
qualitative QoS pour le calcul d’incertitude de QoS.
• La deuxième phase est service de sélection, dans laquelle nous adop-
tons un mixte entier pour trouver le service le plus approprié de
chaque classe de service de programmation. Finalement, moteur de
composition de service [6] appelle les services sélectionnés et retourne
les résultats de l’appel aux usagers du service.

Recherche d’algorithme de service et de sélection de service Cloud

Selon [34]. Dans cet article, Les auteurs proposent une architectures du
service cloud raisonnable et des algorithmes de sélection de service dis-
ponibles, évolutifs et adaptables aux différents types d’environnements de
services et de clients.

Mode de comportement du service cloud


Comme SOA (application orientée service), il y a trois rôles dans le ser-
vice de nuage, c.-à-d. Registre de service, découverte de service et proxy de
service, comme figure(2.7). Avant qu’un service soit disponible, il doit être
enregistré et distribué par la publicité ou le répertoire. Lorsque les clients
envoient des demandes de services, les services doivent être découverts par
proxy de service. Lorsque le proxy de service trouve les services requis par
les clients, il répond aux demandes des clients et exécute certaines fonctions
ou composants connexes.

Registre de Découverte de
service service

Proxy de
service

Figure 2.7 – Mode de comportement du service Cloud

Algorithme de sélection de service


Lorsque les clients accèdent au service cloud par proxy, il y aura de
nombreux services disponibles. L’algorithme de sélection des services dé-
terminera le coût et les gains du service. Le service de cloud supposé possède
des attributs de service tels prix unitaire de service, distance, temps réac-
tif, volume de trafic, espace de stockage, etc. Lorsqu’un client envoie une

40
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

demande de service, il ne connaît pas les attributs de service, mais le proxy


connaît les attributs de service. Le client doit uniquement demander l’ob-
jectif de service spécifié, comme le coût minimum et les gains maximaux,
puis le proxy de service jugera les attributs de service et sélectionnera le
service optimal à l’utilisateur. S’il y a plusieurs mandataires à coopérer
pour sélectionner les services disponibles, les principes de sélection sont les
mêmes.

La procédure de sélection des services peut être illustrée comme suit.


Lorsqu’un client envoie une demande de service à un proxy, le proxy agit
comme suit :
1. Tout d’abord, le proxy sélectionne toutes les listes de services connexes
à partir du service cloud par la découverte de service, juge l’état du
service et la disponibilité, supprime l’article de service non disponible
et conservez la liste des services disponibles.
2. Le proxy prend une décision à partir de la liste des services dispo-
nibles en fonction de la préférence et des objectifs des utilisateurs,
par exemple, des gains maximisés, des meilleures performances, des
coûts minimisés, etc.
3. Le proxy transmet la demande du client au fournisseur de services
sélectionné et le fournisseur de services exécute certains programmes
pour retourner le résultat ou le service informatique.
Si seul le fournisseur de services sélectionné ne parvient pas à renvoyer
le service client nécessaire, le proxy obtiendra une notification et sélec-
tionnera le prochain fournisseur de services optimal pour le refaire. Si les
temps d’essai sont au-dessus d’un certain seuil (par exemple, 5 fois ou 16
minutes), le proxy renvoie le message d’échec au client.

Enfin, le client enverrait la demande de service à nouveau ou pas au


hasard ou volontairement.

La sélection des services clouds multi-critères

Selon [30]. Dans cet article, Les auteurs ont discuté et formalisé le pro-
blème de la sélection de services cloud en général et ont proposé une mé-
thodologie pour la sélection de services cloud à critères multiples, pour
sélectionner le service qui correspond le mieux aux exigences de l’utilisa-
teur du cloud parmi les nombreux services disponibles.

41
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

Dans cette partie, ils ont formalisé et présenté le problème de sélection


de service cloud sous une forme mathématique généralisée et abstraite et
ensuite construire leur méthode basée sur ce modèle mathématique.

A. Formalisation du problème
1. Services (ensemble) : S = {s1 , s2 , s3 , ...sl } être un ensemble de
services l où l ≥ 2. Cet ensemble contient toutes les offres de service
à partir des quelles un service doit être sélectionné par l’utilisateur
(décideur).
2. Critères de performance (ensemble) : C = {c1 , c2 , c3 , ...cm }
être l’ensemble des valeurs de m où m ≥ 2 et chaque ci ∈ C
représente un critère qui peut être un paramètre utile pour la
sélection de service.
3. Fonctions de mesure du rendement (ensemble) : À chaque
critère ci ∈ C correspond une fonction unique fi ∈ F lorsqu’il est
appliqué à un service particulier, retourne une valeur pi c’est une
évaluation de son rendement à une échelle prédéfinie. L’ensemble
de ces fonctions peut être défini comme F = {f1 , f2 , f3 , ...fm }.
4. Descripteur de service (vecteur) : Di être un vecteur de ligne
(1 x n matrice) qui décrit un service si ∈ S où chaque élément
Dj de Di représente la performance ou l’évaluation du service si
selon les critères cj ∈ C. En d’autres termes Di = [d1 d2 d3 dm ]
où dj = fj (si ). Certains des critères peuvent être de nature quali-
tative et doivent être attribués à des valeurs quantitatives à l’aide
de l’échelle de type Likert [24]. De plus, ces valeurs doivent être
normalisées pour éliminer les problèmes de calcul résultant d’une
dissimilitude dans les unités de mesure. La procédure de normali-
sation est utilisée pour obtenir des unités sans dimension qui sont
comparables. Par conséquent, plus la valeur devient grande, plus
elle a de préférence. Les deux méthodes de normalisation les plus
populaires sont (1) la normalisation linéaire et (2) la normalisation
vectorielle [24].
5. Matrice de décision : Les vecteurs de descripteur de service di
peuvent être combinés pour former la matrice de décision a qui
est une matrice l x n :
 

a1,1 a1,2 . . . a1,n 

 a2,1 a2,2 . . . a2,n 


.. .. . . . ... 
. .
 
 
 
al,2 al,2 . . . al,n

42
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

Où chaque aij est l’évaluation du service i par rapport au critère


j est donnée par aij = Fk (sk ) où ci ∈ C.
6. Critères d’exigence utilisateur (vecteur) : Similaire à notre
définition du vecteur descripteur de service, nous définissons un
autre vecteur R = [r1 r2 ... rm ] où chaque rj est l’exigence minimale
de l’utilisateur (décideur) par rapport aux critères cj ∈ C. Ces va-
leurs doivent être mises à l’échelle par la même technique utilisée
précédemment pour le vecteur descripteur de service. Le proces-
sus de sélection de service est fondamentalement une comparaison
entre le vecteur D et toutes les lignes de la matrice de décision
suivie de la sélection des services dont le vecteur de description
correspond le mieux au vecteur d’exigences de l’utilisateur.
7. Poids de priorité utilisateur (vecteur) : Puisque les utili-
sateurs individuels (décideur) peuvent avoir leurs propres préfé-
rences, l’importance relative d’un critère peut donc être différente
pour chaque utilisateur. Le vecteur de poids prioritaire de l’utili-
sateur W = [w1 w2 ... wm ] où chaque wi est le poids attribué par
un utilisateur aux critères ci et la valeur 1 représente le poids par
défaut.

Le but de la sélection de service, qui est subjectif et dépend de l’im-


portance relative donnée à chaque pi ∈ P par l’utilisateur (c’est-
à-dire le décideur), est de choisir le meilleur service parmi tous les
services proposés. Afin de simplifier le problème, nous supposons que
les services de cloud restent inchangés pendant le processus décision-
nel (c’est-à-dire que les valeurs ∀ ci ∈ C sont constantes). Cette
hypothèse se réduit à un problème de décision sans incertitude.

B. Différence pondérée et sélection de service de différence pon-


dérée exponentielle
Ce processus de sélection du service implique une comparaison entre
le vecteur de critères d’exigence utilisateur et tous les vecteurs de
descripteur de service, puis sélection du service qui a le vecteur cor-
respondant de descripteur qui correspond le mieux avec le vecteur
d’exigence de l’utilisateur. Il s’agit essentiellement d’une mesure de
similarité entre le vecteur d’exigence de l’utilisateur et les vecteurs
de descripteur de service.

Il existe des mesures de similitude comme la corrélation de Pearson,


la similitude cosinus et la distance d’Euclide. Ces méthodes de mesure

43
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

de similarité trouvent la similitude entre deux vecteurs, les auteurs


ont proposé deux approches différentes.

• Dans la première méthode, ils ont appelé la différence pondé-


rée (WD), ils soustraient le vecteur d’exigence de l’utilisateur de
chaque ligne de la matrice de décision d pour obtenir,
 

a1,1 − r1 a1,2 − r2 . . . a1,n − rn 

 a2,1 − r1 a2,2 − r2 . . . a2,n − rn 


.. .. ... .. 
. . .
 
 
 
al,2 − r1 al,2 − r2 . . . al,n − rn

Dans l’étape suivante, nous calculons le produit de cette matrice


et transposons du vecteur d’exigence de l’utilisateur qui donne ce
vecteur de colonne,
 

(a1,1 − r1 )w1 + (a1,2 − r2 )w2 + · · · + (a1,n − rn )wn 

 (a2,1 − r1 )w1 + (a2,2 − r2 )w2 + · · · + (a2,n − rn )wn 


.. 
.
 
 
 
(al,2 − r1 )w1 + (al,2 − r2 )w2 + · · · + (al,n − rn )wn
Chaque élément de ce vecteur de colonne est une évaluation de
la conformité du service respectif à l’exigence de l’utilisateur et
l’élément ayant la valeur minimale correspond au service le plus
approprié pour l’utilisateur.

Cette méthode, bien que simple par calcul, a un court terme dras-
tique à venir que pendant le calcul du classement, les critères où
un service est inférieur à l’exigence de l’utilisateur (a1,1 < r) sont
équilibrés par ceux qui dépassent la spécification de l’utilisateur
(a1,1 > r). Nous présentons une autre méthode pour remédier à
cet inconvénient.

• Dans la deuxième méthode qu’ils appellent la différence pondérée


exponentielle (EWD), ils font usage d’une fonction exponentielle
pour restreindre l’effet de l’annulation mutuelle entre les critères
dépassant et en ci-dessous de l’exigence de l’utilisateur en multi-
pliant la matrice par le scalaire -1, puis remplacement de chaque
élément par e élevé à la puissance de l’élément respectif lui-même
c.-à-d. remplaçant ai,j par e−ai,j qui donne la matrice suivante.

44
CHAPITRE 2. DÉCOUVERT ET SÉLÉCTION DE SERVICE CLOUD

e−(a1,1 −r1 )w1 + e−(a1,2 −r2 )w2 + · · · + e−(a1,n −rn )wn


 

e−(a2,1 −r1 )w1 + e−(a2,2 −r2 )w2 + · · · + e−(a2,n −rn )wn


 
 
 

.. 
.
 
 
 
−(al,2 −r1 )w1 −(al,2 −r2 )w2
e +e + · · · + e−(al,n −rn )wn
Dans cette approche, la capacité d’un critère d’influencer la me-
sure de similarité diminue de façon exponentielle car elle dépasse
l’exigence de l’utilisateur. Comme la méthode précédente, chaque
élément du vecteur de colonne résultant est une évaluation de la
conformité du service correspondant à l’exigence de l’utilisateur et
l’élément ayant une valeur minimale correspond au service le plus
approprié.

2.5 Conclusion
Les chercheurs ont obtenu un rôle important et efficace dans le déve-
loppement rapide et phénoménal du cloud computing, ils ont introduit de
nombreuses fonctions et outils dans le domaine de découverte et de sé-
lection des services cloud. de sorte que d’autres ont examiné le problème
et l’ont reformulé d’autres façons, ils ont éliminé l’un des problèmes les
plus importants que l’utilisateur souffraient, à savoir découverte les ser-
vices existants (les millions des services), ensuite le problème de choisir le
bon service au besoin.

Dans le prochain chapitre, nous allons implémenter un algorithme de


découverte des services cloud existant et sélectionner le meilleur parmi eux
selon les besoins de l’utilisateur. Nous allons aussi mentionner les outils
utilisés et les méthodes appliquées, jusqu’à l’expérimentation et l’analyser
les résultats.

45
Chapitre 3

Évaluation et résultats

“The cloud services companies of all sizes. . . The cloud is for everyone.
The cloud is a democracy.”

Marc Benioff, Founder, CEO and Chairman of Salesforce

3.1 Introduction
Au cours du dernier chapitre, Nous avons mentionné des travaux précé-
dents et état de l’art dans le domaine de la découverte et la sélection des
services clouds.

Ces dernières années, les chercheurs se sont concentrés sur la découverte


et la sélection des services de cloud, ils ont mis en place de nombreuses
fonctions et des algorithmes pour avancer dans ce domaine. Cette activité
a contribué au développement rapide du cloud computing et à l’utilisation
élargie de cloud.

3.2 Problématique
Après le grand travail effectué par les chercheurs, ils ont facilité l’utili-
sateur à découvrir et à sélectionner le meilleur service en fonction de ses
besoins, mais le problème est le suivant :

Comment peut-on présenter le problème ?

Comment découvrir et choisir le service optimal ?

Comment programmer le système pour la découverte et la sélection
d’un service cloud ?

Comment faire une expérimentation de ce système ?

Quel est le succès de ce système ?

46
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

3.3 Outils et Plateformes Utilisés


Dans cette section, nous allons mentionner les outils, les langages de
programmation et les plateformes utilisées pour implémenter ce système.

3.3.1 Java
"Java est un langage de programmation et une plate-forme informatique
qui ont été créés par Sun Microsystems en 1995. Beaucoup d’applications et
de sites Web ne fonctionnent pas si Java n’est pas installé et leur nombre
ne cesse de croître chaque jour. Java est rapide, sécurisé et fiable. Des
ordinateurs portables aux centres de données, des consoles de jeux aux
superordinateurs scientifiques, des téléphones portables à Internet, la tech-
nologie Java est présente sur tous les fronts !"[2]

Dans notre cas, nous allons utiliser NetBeans IDE dans la programma-
tion en langage Java. NetBeans [12] est un environnement de développe-
ment intégré (EDI), open source. NetBeans est disponible sous Windows,
Linux, Solaris...

3.3.2 Système Multi-Agent (SMA)


Un système multi-agent [29] est un système constitué d’un ensemble
d’agents pour atteindre un but global ou des buts distincts. En se basant
sur des techniques de coordination et de négociation. Ceci permet d’avoir
un comportement cohérent qui optimise la productivité des solutions émer-
gentes.

Les performances et caractéristiques d’un système SMA c’est :


• Fiabilité : la distribution des tâches sur des agents spécifiques, facilite
la résolution des problème rapidement et efficacement.
• Extensibilité : l’Indépendance des agents les uns vis à vis des autres
facilite la modification de leurs comportements
• Efficacité : la capacité de communication entre agents permet de
développer des systèmes de calcul distribués très puissants et très
efficaces.
• Robustesse : la coopération entre agents permet au système de faire
face à des situations incertaines et d’augmenter la tolérance aux
fautes.
• ...

47
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

Concept d’Agent

L’agent [13] est un système capable d’action autonome et réfléchie dans


un environnement réel.

Selon [17]. Certaines propriétés d’un agent :


• Autonomie : un agent peut agir sans revenir à son possesseur afin de
prendre des décisions.
• Réactivité : un agent peut apercevoir, et ensuite réagir aux différents
évènements sur son environnement.
• Raisonnement et rationalité : un agent a la faculté de raisonner ra-
tionnellement afin de choisir les meilleures actions à entreprendre
pour optimiser sa productivité !,
• Mobilité : un cas particulier d’agent logiciel est l’agent mobile qui a
la faculté de se déplacer d’une machine à une autre, afin d’exécuter
des tâches de natures distribuées.
• ...

Jade

Dans cette implémentation nous utilisons également la plateforme JADE


(version 4.5.0) pour le développement des agents. Voir la figure(3.1).

Figure 3.1 – Plateforme Jade (RMA)

JADE est une plateforme implémentée complètement avec le langage


JAVA. Ce Framework est destiné à faciliter le développement des systèmes
multi-agents en conformité totale avec le standard FIPA. La plateforme
JADE fournit une interopérabilité sans limite pour les applications quelles
prend en charge, car cette plateforme est indépendante du système d’ex-
ploitation ainsi que du matériel sur laquelle elle est implémenté [8]. JADE
est composée de trois principaux modules qui dépendent directement des
normes FIPA :

48
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

• DF : pour Dirictor Facilitor en anglais, qui sert à la fourniture d’un


service de "page jaune" à toute la plateforme JADE.
• ACC : pour Agent Communication Channel en anglais, qui re-
présente l’outil de gestion de communication entre agents, pour la
plateforme JADE.
• AMS : pour Agent Management System en anglais, qui représente
l’outil de gestion (authentification, supervision, accès . . . ) des agents
de la plateforme JADE.

Langage de communication

Le langage de communication FIPA-ACL (pour Agent Communication


Langage) est le langage adopté par la plateforme JADE. De façon géné-
rale, la communication entre agents est en mode asynchrone, et elle est
mise en oeuvre en utilisant la classe ACLMessage. On distingue deux cas
d’utilisation de la classe ACLMessage :
• Envoi de messages : quand un agent souhaite envoyer un message,
il doit créer un Objet du type ACLMessage, ajouter les paramètres
qu’il souhaite envoyer, et appeler la méthode send() pour envoyer son
message.
• Réception de messages : quand un agent souhaite recevoir un mes-
sage, il doit faire appel à la méthode recieve() ou blocking receive().

3.4 Formalisation du problème


Dans cette partie, nous nous appuierons sur ce qui est indiqué dans le
chapitre précédent spécifiquement dans les travaux connexes de sélection
d’un service cloud, la méthode utilisée c’est une méthodologie pour la sé-
lection de services cloud à critères multiples [30].

La formalisation et la représentation de problème de sélection des ser-


vices clouds sous forme mathématique généralisée et abstraite comme suit :
1. Services (ensemble) : S = {s1 , s2 , s3 , ...sl } est un ensemble de ser-
vices l où l ≥ 2. Cet ensemble contient touts les offres de service
(publicités).
2. Critères de performance (ensemble) : C = {c1 , c2 , c3 , ...cm } est
l’ensemble des valeurs de m où m ≥ 2 et chaque ci ∈ C représente
les critères de service S.
3. Fonctions de mesure du rendement (ensemble) : À chaque
critère ci ∈ C correspond une fonction unique fi ∈ F lorsqu’il est

49
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

appliqué à un service particulier, retourne une valeur pi c’est une


évaluation de son rendement à une échelle prédéfinie. L’ensemble de
ces fonctions peut être défini comme P = {p1 , p2 , p3 , ...pm }.
4. Descripteur de service (vecteur) : Di est un vecteur (1 x n ma-
trice) qui décrit un service si ∈ S où chaque élément Dj de Di repré-
sente la performance ou l’évaluation du service pi selon les critères
cj ∈ C. En d’autres termes Di = [d1 d2 d3 dm ] où dj = fj (si ).
5. Critères d’exigence utilisateur (vecteur) : Similaire à notre dé-
finition du vecteur descripteur de service, nous définissons un autre
vecteur R = [r1 r2 ... rm ] où chaque rj est l’exigence minimale de
l’utilisateur (décideur) par rapport aux critères cj ∈ C
6. Matrice de décision : Les vecteurs de descripteur de service di de
tout les fournisseurs peuvent être combinés pour former la matrice
de décision a qui est une matrice l x n :
 

a1,1 a1,2 . . . a1,n 

 a2,1 a2,2 . . . a2,n 


.. .. . . . ... 
. .
 
 
 
al,2 al,2 . . . al,n
Où chaque aij est l’évaluation du service i par rapport au critère j.

3.5 Implémentation et test de système


Dans cette partie. Nous allons appliquer ce qui est déjà mentionné dans
la formalisation du problème.

Implémentation de système

Notre application sera en langage Java et en utilisant le programme


NetBeans IDE. Notre programme dépendra du système multi-agent et se
composera de trois agents principaux :

• Agent utilisateur (User Agent) : Un agent qui alloue une inter-


face utilisateur pour demander le service qu’il souhaite, pour entrer
ses besoins, pour envoyer la demande et pour afficher le meilleur four-
nisseur proposé par le système.
• Agent fournisseur (Provider Agent) : Un agent qui alloue une
interface à une société ou à une personne qui souhaite publier le
service et les caractéristiques de ce service, affichant un message au

50
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

fournisseur de service avec le nom de l’utilisateur qui a proposé pour


le service qui a publié.
• Agent intermédiaire (Broker Agent) : Un agent intermédiaire,
est l’agent qui effectue la majeure partie du travail, reçoit la demande
de l’utilisateur et la publicité de fournisseur, puis exécute les procé-
dures et les algorithmes pour choisir le service optimal disponible
pour le client parmi tous les services disponibles.

L’architecture de notre système (système de découvert et de sélection


des services clouds) est simple et il est montré dans la figure(3.2).

Courtier (Intermédiaire)

Figure 3.2 – Architecture de système de découvert et de sélection des services clouds

Un groupe de fournisseurs envoie leurs annonces au courtier (Intermé-


diaire), et le courtier reçoit également de nombreuses demandes d’utili-
sateurs.Ensuite, le courtier choisit l’optimal fournisseur en fonction de la
demande de chaque utilisateur. Pour plus de détails, voir figure(3.3).

51
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

Agent Utilisateur Requête


Demande file d'attente

Consulté

Similarité dans les données textuelles

Retourne le fournisseur optimale

Similarité dans les données numériques

Ontologie
Retourne l'utilisateur recommandé Similarité
Similarité dans les données boolean

Informe
Demande file d'attente

Agent Broker
Agent Fournisseur

Figure 3.3 – Détails du système de découverte et de sélection des services clouds

Lorsque l’agent utilisateur ou l’agent fournisseur apparaît, il affiche une


interface comme dans la figure(3.4), Fait ce qui suit :

Figure 3.4 – Interface de utilisateur/fournisseur

1. Identifier lui-même et ses services dans DF, l’algorithme 1 indique


comment l’agent est enregistré dans DF.

52
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

Algorithm 1 Enregistrement de l’agent dans le DF


1: INITILAIZE :
2: function Setup
3: df d ← DFAgentDescription
4: df d.setName(getAID())
5: df d.addLanguages("Consumer")
6: df d.addOntologies("Consumer, User, Need A Cloud Service")
7: DFService.register(this, dfd) . Enregister The Description Of User Agent In DF
8: end function

2. Rechercher tous les agents Brokers, l’algorithme 2 indique comment


trouver les agents brokers.
Algorithm 2 Trouver les agents brokers
1: INITILAIZE :
2: myAgent ← this
3: function Setup
4: template ← DFAgentDescription
5: sd ← ServiceDescription
6: sd.setName("Brockers Agent")
7: sd.addLanguages("Brockers")
8: sd.addOntologies("Brockers")
9: sd.setType("Brockers")
10: template.addServices(sd)
11: result ← Array Of DFAgentDescription
12: result ← DFService.search(myAgent, template) . Search Of All Agents Have
The same Properties With The Template
13: end function

3. Après que l’utilisateur ou le fournisseur remplisse l’interface et envoie


chaque demandant ou publicité avec un ACLMessage, le message
contient les entrées des champs, aussi l’adresse de courtier et le type
du message(Réquest/Inform), comme indiqué dans l’algorithme 3.

53
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

Algorithm 3 Envoyer ACLMessage


1: INITILAIZE :
2: function Setup
3: content ← Array Of String
4: content ← Put All The Input Values
5: message ← ""
6: for (i from 1 to content.length) do
7: message ← message + content[i]
8: end for
9: msg ← ACLMessage(ACLMessage.REQUEST)
10: msg.addReceiver(result[0].getName())
11: msg.setOntology("Demende Service")
12: msg.setReplyWith("Demande_Reply")
13: msg.setContent(message)
14: send(msg) . Send The Message (Request) To Broker Agent
15: end function

4. Après avoir reçu une ACLMessage du courtier, il écrit le fournisseur


optimal et la durée de traitement pour sa demande dans le cas d’uti-
lisateur, dans le cas de fournisseur il écrit l’utilisateur recommandé,
comme indiqué dans l’algorithme 4.
Algorithm 4 Recevoir une ACLMessage
1: INITILAIZE :
2: myAgent ← this
3: respond ← ACLMessage
4: function action
5: respond ← myAgent.receive()
6: if (respond <> null && respond.getOntology().equals("Services_respond")) then
7: write("The Best Provider Of Your Service Is " + respond.getContent())
8: end if
9: end function

L’agent de courtage (Broker) est responsable de la plupart des travaux


dans notre système, il fait ce qui suit :
1. Identifier lui-même et ses services dans DF.
2. Après avoir reçu ACLMessage de fournisseur (Inform), Il ajoute cette
fournisseur et son service dans une table dynamique contenant tous
les services offerts.
3. Une fois que le courtier reçoit une demande de l’utilisateur, l’agent
broker mesurera la similitude entre cette demande et les services pro-
posés par les fournisseurs (services existants). Au début, vous devez
vous assurer que le service est disponible au moment où l’utilisateur
a demandé,

54
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

La similitude et la convergence entre les besoins des utilisateurs et les


propriétés des services proposés sont mesurées par type de données,
chaque type de données a sa propre méthode pour mesurer la simi-
litude. La similitude de chaque type de données est mesurée comme
suit :
(a) Données textuelles : Pour les données textuelles nous avons
utilisé les méthodes du noyau pour le texte et nous allons appliquer
ce qui est mentionné dans [26] sur notre cas.
• Représentation du texte : Nous allons appliquer une fonc-
tion ∅(x) pour représenter un nom de service ou un champ de
texte t sous forme d’un sac-de-mots, De sorte que le sac de mots
contient tous les sous-mots de t, tel que φ : d 7→ (t1 , t2 , ..., tn )
t1 c’est un sous-mot tel que (1 ≤ t ≥ n) et n c’est le nombre
de tout les sous-mots dans t. L’algorithme 5 est l’algorithme
responsable de l’extraction de tous les sous-mots du texte
Algorithm 5 Extraction des sous-mots
1: INITILAIZE :
2: function subWord
3: Input : text
4: Output : Dynamic table that contains all the sub-words
5: word ← ArrayList<String>
6: for (j from 1 to text.lenght) do
7: for (i from j to text.lenght) do
8: if (text.substring(j, i) <> "") && ( !word.contains(text.substring(j, i)))
then
9: word.add(text.substring(j, i)) ;
10: end if
11: end for
12: end for
13: return word
14: end function

• Calcul de la similitude : La similitude dans le noyau du


texte est mesurée comme indiquer dans l’équation suivante :

Dφ(T 1) φ(T 2) E k(T 1, T 2)


k̂(T 1, T 2) = , = q
kφ(T 1)k kφ(T 2)k k(T 1, T 1)k(T 2, T 2)
T 1 : Texte 1, T 2 : Texte 2
Pour calculer k(T 1, T 2) on utiliser l’équation :

55
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

k(T 1, T 2) = hφ(T 1), φ(T 2)i = φu (T 1).φv (T 2)


  
X X
=
 1


1

T 1:u=φ(T 1) T 2:v=φ(T 2)
X
= 1
(T 1,T 2):u=v

u : sous-mot de T 1, v : sous-mot de T 2

Algorithme 6 est l’algorithme qui calcule la similarité entre


deux textes et renvoie une valeur comprise entre 0 et 1.
Algorithm 6 Calculer la similarité entre deux textes
1: INITILAIZE :
2: function textSim
3: Input :(i) t1 : text 1 (ii) t2 : text 2
4: Output : Value Of Similarity Between 0 & 1
5: text1 ← ArrayList<String>
6: text2 ← ArrayList<String>
7: sim ← 0
8: subWord(t1.toUpperCase().replace(" ", ""), text1) ;
9: subWord(t2.toUpperCase().replace(" ", ""), text2) ;
10: for (String tex1 : text1) do
11: for (String tex2 : text2) do
12: if (tex1.equals(tex2) then
13: sim ← sim + 1
14: end if
15: end for
16: end for
17: sim ← sim / Math.sqrt((text1.size() * text2.size())
18: return sim
19: end function

Le problème avec cette méthode de calcul de la similitude est qu’il


ignore toutes les relations sémantiques, pour résoudre ce problème,
nous utilisons une source externe (Ontologie) sous la forme d’un
fichier XML qui contient de nombreux services sémantiques liés.
Selon [20] ,Pour calculer la similitude entre deux mots, nous cal-
culons la distance entre chaque mot et root du fichier, comme
indiquer dans l’équation suivante :

|Super(x) Super(y)|
T
sim(x, y) = q
Super(x)Super(y)
Super(x) : La distance entre le mot x et root de fichier

56
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

L’algorithme 7 suivant est que vous calculez la similarité séman-


tique entre les services (les textes) :
Algorithm 7 Calculer la similarité sémantique entre deux textes
1: INITILAIZE :
2: function symenticSim
3: Input :(i) s1 : text 1 (ii) s2 : text 2
4: Output : Value Of Similarity Between 0 & 1
5: builder ← SAXBuilder
6: xml ← Document
7: xml ← builder.build(new File("src/symentic/ontologie.xml"))
8: parentS1 ← Array Of String
9: parentS2 ← Array Of String
10: parentS1 ← null
11: parentS2 ← null
12: inter ← 0
13: sim ← 0
14: root ← xml.getRootElement()
15: parentW ord ← String
16: for (Element children : root.getChildren()) do
17: if (children.getName().equals(s1.toLowerCase())) then
18: parentW ord = children.getAttribute("parent").getValue() + "," +
children.getName()
19: parentS1 = parentW ord.split(",")
20: end if
21: if (children.getName().equals(s2.toLowerCase())) then
22: parentW ord = children.getAttribute("parent").getValue() + "," +
children.getName()
23: parentS2 = parentW ord.split(",")
24: end if
25: end for
26: if (parentS1 <> null && parentS2 <> null) then
27: for (i from 1 to parentS1.length) do
28: for (j from 1 to parentS2.length) do
29: if (parentS1[i].equals(parentS2[j])) then
30: inter ← inter + 1
31: end if
32: end for
33: end for
34: end if
35: sim ← (inter / Math.sqrt(parentS1.length * parentS2.length))
36: return sim
37: end function

(b) Données numériques : Pour les données numériques et selon


[21]. Nous pouvons mesurer la similarité d’un critère numérique
en utilisant l’équation suivante :

57
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

yi − x i
sim(xi , yi ) = 1 −
M ax(i) − xi
x : la valeur de critère i dans la demande de l’utilisateur, y : la
valeur de critère i dans le service, M ax(i) : la valeur maximal
de critère i parmi tout les services disponibles, M in(i) : la valeur
minimal de critère i parmi tout les services disponible.
Par exemple, la figure suivante présentée les valeurs de critère
RAM par tout les services tel que :

M ini = 1 Gb, M axi = 40 Gb, xi = 10 Gb c’est ce que l’utilisateur


a demandé, yi = 20 Gb c’est ce que le fournisseur a fourni
Alors la similarité entre la demande d’utilisateur x et le fournisseur
y pour le critère RAM c’est :

y i − xi 20 − 10
sim(xi , yi ) = 1 − =1− = 0.33
M ax(i) − xi 40 − 10
L’algorithme 8 suivant est que vous calculez la similarité dans les
Données numériques :
Algorithm 8 Calculer la similarité des données numériques
1: INITILAIZE :
2: function compSim
3: Input :(i) min : Number (ii) max : Number (iii) x : Number (iv) y : Number
4: Output : Value Of Similarity Between 0 & 1
5: if (y ≥ x) then
6: if ((max - x) <> 0) then
7: return (1 - Math.round(((y − x)/(max − x)) * 1000.0) / 1000.0)
8: else
9: return 1.0
10: end if
11: else
12: return 0.0
13: end if
14: end function

(c) Données logiques (booléen) : Mesurer la similarité des données


booléens n’est pas si difficile que si elles ont la même valeur, le
résultat est 1 et le contraire est 0.

Test de système

Pour tester ce programme, nous avons ajouté 3 fournisseurs comme indi-


qué dans le tableau (3.1) et 2 utilisateurs comme ce qui est dans le tableau

58
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

(3.2), le tableau (3.3) montre le résultat du test et montre également la


similarité entre chaque utilisateur, et tous les fournisseurs
Fournisseur fournisseur1 fournisseur2 fournisseur3
Nom de Service Java latex overleaf gmail
Système d’exploitation windows 10 android linux Mint
Nom de CPU Intel Core i7-8700k AMD Ryzen 5 1600x Intel Pentium G4560
Support mobile Yes Yes No
Heures disponibles (H) 24 8 12
RAM (Gb) 10 6 8
HDD (Gb) 1000 50 250
Bande passante (Gbps) 5.0 2.8 8.0
Latence du réseau (ms) 3000 1500 4000
CPU (Ghz) 3.6 2.4 4.0

Table 3.1 – Annonces Des Fournisseurs

Fournisseur Utilisateur1 Utilisateur2


Nom de Service Java latex Online
Système d’exploitation windows 7 fedora
Nom de CPU Intel Core i7-7820X AMD Ryzen 3 1300X
Support mobile No Yes
Heures disponibles (H) 10 4
RAM (Gb) 4 2
HDD (Gb) 1000 80
Bande passante (Gbps) 3.8 2.0
Latence du réseau (ms) 3500 1500
CPU (Ghz) 3.5 2.8

Table 3.2 – Requêtes des utilisateurs

Utilisateur0 Utilisateur1
fournisseur1 47% 30%
fournisseur2 0% 55%
fournisseur3 33% 30

Table 3.3 – Similitude entre les demandes et les publicités

Le programme a écrit que le meilleur fournisseur pour l’utilisateur 1 c’est


le fournisseur1 (Provider1@192.168.1.34 :1099/JADE) et le meilleur four-
nisseur pour l’utilisateur 2 c’est le fournisseur 2 (Provider2@192.168.1.34 :1099/JADE

3.6 Évaluation des performances


Dans cette section, nous allons expérimentée le système que nous avons
programmé, et évaluer sa performance de plusieurs façons.

59
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

Cette expérimentation a été réalisée sur un PC avec les caractéristique


suivant :
• Processeur : Intel Core i5 de 2.50 GHz.
• Ram : 8 Gb.
• système d’exploitation : Windows 7.

Paramètre

Les paramètres modifiés et manipulés dans notre système sont affichés


dans le tableau (3.4) suivant :
Variables expérimentales Valeur
Nombre de services Cloud Environ 50 noms de service
Systèmes d’exploitations {Windows, Linux, Android, ...}
Processeurs {AMD, Intel, ...}
Support mobile Oui / No
Heures disponibles (H) 1∼100 H
RAM (Gb) 0.256∼36.0 GB
HDD (Gb) 1∼1000 GB
Bande passante (Gbps) 0.1∼10 Gbps
Latence de réseau (ms) 1∼5000 ms
CPU Clock (GHz) 0.1∼6.0 GHz

Table 3.4 – Paramètres d’expérimentation pour les simulations

L’évaluation du système que nous avons appliqué dépendra de trois


choses, et c’est :
• Complexité de système.
• Temps d’exécution.
• Taux de succès.

Complexité de système

Pour calculer la complexité de notre système, nous calculerons le nombre


d’opérations dans notre code, La figure 2 montre la structure abrégée de
notre Code

60
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

...
public class main {
...
public void regesterProvider (){ ... } //--> Complexite de cette
fonction c’est O(m)
//--> Complexite de cette fonction c’est C * n * m
for (i = 0; i < n; i++){
for (i = 0; i < m; i++){
simText();//--> Complexite de cette fonction c’est C
simNum();//--> Complexite de cette fonction c’est C
simBoolean();//--> Complexite de cette fonction c’est C
}
}
public void sendRes (){ ... }//--> Complexite de cette fonction
c’est C
...
}

Figure 3.5 – Complexité de notre système

Selon la figure(3.5). La complexité de notre système c’est O(nm) tel


que :
m : Nombre de services, n : Nombre de requêtes, C : constant.
Alors : m + (3C ∗ m ∗ n) + C = 3Cmn + m + C = O(mn)

la complexité de notre système est linéaire O(mn) parce que le nombre


d’opérations est limité et dépend du nombre de requêtes et du nombre de
services offerts.

Temps d’exécution

Pour mesurer et calculer le temps d’exécution, nous allons fournir 50


fournisseurs (50 services) et de manipuler le nombre de demandes (re-
quêtes). ensuite, nous fournissons 20 requêtes et de manipuler le nombre
de fournisseurs, et dans les deux cas, nous essayons d’utiliser une ontologie
et sans ontologie.
Nous allons refaire chaque expérience 10 fois et prendre le taux moyen.

61
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

# des services = 50 # des requêtes = 20


·105 ·105
1 1
0.9 Sans Ontologie 0.9 Sans Ontologie
0.8 Avec Ontologie Avec Ontologie
0.8
0.7 0.7
T emps(ms)

T emps(ms)
0.6 0.6
0.5 0.5
0.4 0.4
0.3 0.3
0.2 0.2
0.1 0.1
0 0
0 5 10 15 20 25 0 5 10 15 20 25
Requêtes Services

Figure 3.6 – Temps d’exécution en fonction de # des services et de # des requête

La figure(3.6) contient deux graphiques :

Le premier graphique représente le temps d’exécution en fonction du


nombre de requêtes, il semble que le temps d’exécution augmente à mesure
que le nombre de requêtes augmente. Le deuxième graphique représente le
temps d’exécution en fonction du nombre de services disponibles, il montre
que le temps d’exécution augmente à mesure que le nombre de services
disponibles
Nous notons également dans les graphes que l’utilisation d’une ontologie
joue un rôle important dans l’augmentation du temps d’exécution.

Le temps d’exécution lorsque le nombre de requêtes ou de services est


augmenté lorsque vous utilisez une topologie en raison de l’augmentation
du nombre des opérations calculs, lorsqu’une nouvelle requête est ajoutée
le programme calcule la similarité entre la nouvelle requête et tous les
services offerts, lorsque vous ajoutez un nouveau service le programme
mesure toutes les requêtes sont similaires au nouveau service, et lorsque
vous utilisez une ontologie le système compare toutes les requêtes et le
service en fonction de cette ontologie.

Taux de succès

Pour mesurer et calculer le taux de succès (similarité), nous allons four-


nir 50 services et de manipuler le nombre de demandes (requêtes). ensuite,
nous fournissons 20 requêtes et de manipuler le nombre de fournisseurs, et
dans les deux cas, nous essayons d’utiliser une ontologie et sans ontologie.

62
CHAPITRE 3. ÉVALUATION ET RÉSULTATS

# des services = 50 # des requêtes = 20


100 100
90 Sans Ontologie 90 Sans Ontologie
80 Avec Ontologie Avec Ontologie
80
T auxdesuccès(%)

T auxdesuccès(%)
70 70
60 60
50 50
40 40
30 30
20 20
10 10
0 0
0 5 10 15 20 25 0 5 10 15 20 25
Requêtes Services

Figure 3.7 – Taux de succès en fonction de # des services et de # des requête

La figure(3.7) représente le taux de succès en fonction du nombre de re-


quêtes dans le premier graphique et du nombre de services dans le deuxième
graphique. nous remarquons donc que le taux de succès change en chan-
geant le nombre de requêtes ou le nombre de services, mais en utilisant une
ontologique nous remarquons que le taux de succès est meilleur que de ne
pas être utilisé.

Le taux de réussite élevé dans l’utilisation d’une ontologie est causé


par l’ajout un aspect sémantique dans la mesure de la similarité entre les
requêtes et les services.

3.7 Conclusion
Le système de découverte et de sélection de cloud service a éliminé l’un
des plus grands problèmes de l’utilisateur du cloud, il est donc facile pour
l’utilisateur de découvrir et de choisir le service approprié pour lui et ses
besoins.

Le système que nous avons programmé pour découvrir et sélectionner le


meilleur service de cloud selon les besoins de l’utilisateur et selon l’étude
et l’évaluation de performance il est bon par sa complexité et temps d’exé-
cution et taux de réussite.

63
Conclusion et Perspectives

Le cloud computing est une grande évolution technologique dans le do-


maine informatique. C’est un paradigme dans lequel les entreprises peuvent
stocker leurs données à distance et accéder aux services partout, là où ils
en ont besoin et à moindres coûts.

A travers cette mémoire, nous avons donné une vu générale sur le


concept cloud computing ces caractéristiques, avantages, et inconvénients.
Et puis nous avons étudié le problème de découverte et sélection de service
dans le cloud computing. Afin d’atteindre la meilleure façon de suivre la
connexion entre fournisseur, et l’utilisateur. Plusieurs chercheurs ont pro-
posé des modèles et des architectures pour gestion cet organisme, et obtenir
des bons résultats qui satisfaisaient les utilisateurs, c’est ce qu’on a vu dans
l’état de l’art de ce travail.

Finalement nous avons mentionné les outils utilisés et les méthodes ap-
pliquées dans notre modèle qui est basé sur les travaux effectués par les
recherches mentionnés précédemment, nous avons proposé une algorithme
pour faire la découverte et la sélection des services de cloud. Après avoir
expérimenter et analyser les résultats obtenus, le système a prouvé son ef-
ficacité et sa bonne performance.

À l’avenir, vous pouvez ajouter et optimiser ce système en ajoutant


l’emplacement au service et en ajoutant des propriétés réseau. de sorte que
nous avons appliqué des similitudes à d’autres domaines dans ce domaine,
nous nous attendons à ce que, en ajoutant les extrêmes du réseau, l’empla-
cement géographique du service, et d’autres caractéristiques, nous pouvons
obtenir un nouveau système efficace.

64
Bibliographie

[1] Gartner : gartner forecasts worldwide public cloud services revenue


to reach $260 billion in 2017. https://www.gartner.com/newsroom/
id/3815165. Consulté le 22/04/15.
[2] Java : qu’est-ce que la technologie java et pourquoi en ai-je be-
soin ? https://www.java.com/fr/download/faq/whatis_java.xml.
Consulté le 12/03/2018.
[3] Netmedia - Enjeux IT : où en sont les dsi en région
en 2014 ? http://www.vmwaretour2014.com/IMG/pdf/pleniere_
vmware_tour_2014.pdf. Consulté le 30/06/15.
[4] PAC CloudIndex : le niveau de maturité cloud des organisations fran-
çaises a franchi un palier - quatrième édition, décembre 2014. http:
//www.cloudindex.fr/content/tous-les-résultats. Consulté le
30/06/15.
[5] Miha Ahronovitz, Dustin Amrhein, Patrick Anderson, A de An-
drade, J Armstrong, BE Arasan, J Bartlett, R Bruklis, K Ca-
meron, M Carlson, et al. Cloud computing use cases white pa-
per. Discussion Group (Version 4.0). http ://www. cloud-council.
org/Cloud_Computing_Use_Cases_Whitepaper-4_0. pdf, 2010.
[6] Danilo Ardagna and Barbara Pernici. Adaptive service composition in
flexible processes. IEEE Transactions on software engineering, 33(6),
2007.
[7] Anurag S. Barde. Cloud computing and its vision 2015 ! ! International
Journal of Computer and Communication Engineering, pages 450–454,
2013.
[8] Fabio Bellifemine, Agostino Poggi, and Giovanni Rimassa. Jade–a
fipa-compliant agent framework. In Proceedings of PAAM, volume 99,
page 33. London, 1999.
[9] S. Bhowmik. Cloud Computing. Cambridge University Press, 2017.
[10] Robert B Bohn, John Messina, Fang Liu, Jin Tong, and Jian Mao.
Nist cloud computing reference architecture. In Services (SERVICES),
2011 IEEE World Congress on, pages 594–596. IEEE, 2011.

65
BIBLIOGRAPHIE

[11] Miguel L. Bote-Lorenzo, Yannis A. Dimitriadis, and Eduardo Gómez-


Sánchez. Grid characteristics and uses : A grid definition. In Francisco
Fernández Rivera, Marian Bubak, Andrés Gómez Tato, and Ramón
Doallo, editors, Grid Computing, pages 291–298, Berlin, Heidelberg,
2004. Springer Berlin Heidelberg.
[12] Tim Boudreau, Jesse Glick, Simeon Greene, Vaughn Spurlin, and
Jack J Woehr. NetBeans : The Definitive Guide : Developing, De-
bugging, and Deploying Java Code. " O’Reilly Media, Inc.", 2002.
[13] Jose C Brustoloni. Autonomous agents : Characterization and requi-
rements. School of Computer Science, Carnegie Mellon University,
1991.
[14] Rajkumar Buyya. Market-oriented cloud computing : Vision, hype,
and reality of delivering computing as the 5th utility. In 2009 9th
IEEE/ACM International Symposium on Cluster Computing and the
Grid. IEEE, 2009.
[15] Rajkumar Buyya, Chee Shin Yeo, and Srikumar Venugopal. Market-
oriented cloud computing : Vision, hype, and reality for delivering it
services as computing utilities. In High Performance Computing and
Communications, 2008. HPCC’08. 10th IEEE International Confe-
rence on, pages 5–13. Ieee, 2008.
[16] Hoang T. Dinh, Chonho Lee, Dusit Niyato, and Ping Wang. A
survey of mobile cloud computing : architecture, applications, and
approaches. Wireless Communications and Mobile Computing,
13(18) :1587–1611, oct 2011.
[17] Mlungisi Duma. Agents, agent architectures and multi-agent systems.
PhD thesis, University of Johannesburg, 2008.
[18] Ian Foster. What is the grid ? a three point checklist. June 2002.
[19] Saurabh Kumar Garg, Steve Versteeg, and Rajkumar Buyya. Smi-
cloud : A framework for comparing and ranking cloud services. In
Utility and Cloud Computing (UCC), 2011 Fourth IEEE Internatio-
nal Conference on, pages 210–218. IEEE, 2011.
[20] Taekgyeong Han and Kwang Mong Sim. An ontology-enhanced cloud
service discovery system. In Proceedings of the International Multi-
Conference of Engineers and Computer Scientists, volume 1, pages
17–19, 2010.
[21] Jaeyong Kang and Kwang Mong Sim. Towards agents and ontology
for cloud service discovery. In Cyber-Enabled Distributed Computing
and Knowledge Discovery (CyberC), 2011 International Conference
on, pages 483–490. IEEE, 2011.

66
BIBLIOGRAPHIE

[22] Heba Kurdi, Maozhen Li, and Hamed Al-Raweshidy. A classification


of emerging and traditional grid systems. IEEE Distributed Systems
Online, 9(3) :1–1, mar 2008.
[23] Wenmin Lin, Wanchun Dou, Zhanyang Xu, and Jinjun Chen. A
qos-aware service discovery method for elastic cloud computing in an
unstructured peer-to-peer network. Concurrency and Computation :
Practice and Experience, 25(13) :1843–1860, 2013.
[24] Jie Lu and Da Ruan. Multi-objective group decision making : methods,
software and applications with fuzzy set techniques, volume 6. Imperial
College Press, 2007.
[25] Peter Mell and Tim Grance. The NIST Definition of Cloud Compu-
ting, 2009.
[26] John Shawe-Taylor and Nello Cristianini. Kernel methods for pattern
analysis. Cambridge university press, 2004.
[27] Vijayaraghavan Soundararajan and Kinshuk Govil. Challenges in buil-
ding scalable virtualized datacenter management. ACM SIGOPS Ope-
rating Systems Review, 44(4) :95–102, 2010.
[28] Heinz Stockinger. Defining the grid : a snapshot on the current view.
The Journal of Supercomputing, 42(1) :3–17, Oct 2007.
[29] Katia P Sycara. The many faces of agents. AI magazine, 19(2) :11,
1998.
[30] Zia ur Rehman, Farookh K Hussain, and Omar K Hussain. Towards
multi-criteria cloud service selection. In Innovative Mobile and Inter-
net Services in Ubiquitous Computing (IMIS), 2011 Fifth International
Conference on, pages 44–48. IEEE, 2011.
[31] Luis M. Vaquero, Luis Rodero-merino, Juan Caceres, Maik Lindner,
and Telefonica Investigacion Y Desarrollo. A break in the clouds : To-
wards a cloud definition. ACM SIGCOMM Computer Communication
Review, pages 50–55, 2009.
[32] Shangguang Wang, Zibin Zheng, Qibo Sun, Hua Zou, and Fangchun
Yang. Cloud model for service selection. In Computer Communications
Workshops (INFOCOM WKSHPS), 2011 IEEE Conference on, pages
666–671. IEEE, 2011.
[33] Md Whaiduzzaman, Abdullah Gani, Nor Badrul Anuar, Muhammad
Shiraz, Mohammad Nazmul Haque, and Israat Tanzeena Haque. Cloud
service selection using multicriteria decision analysis. The Scientific
World Journal, 2014, 2014.

67
BIBLIOGRAPHIE

[34] Wenying Zeng, Yuelong Zhao, and Junwei Zeng. Cloud service and
service selection algorithm research. In Proceedings of the first ACM/-
SIGEVO Summit on Genetic and Evolutionary Computation, pages
1045–1048. ACM, 2009.
[35] Miranda Zhang, Rajiv Ranjan, Armin Haller, Dimitrios Georgakopou-
los, Michael Menzel, and Surya Nepal. An ontology-based system
for cloud infrastructure services’ discovery. In Collaborative Compu-
ting : Networking, Applications and Worksharing (CollaborateCom),
2012 8th International Conference on, pages 524–530. IEEE, 2012.
[36] Qi Zhang, Lu Cheng, and Raouf Boutaba. Cloud computing : state-
of-the-art and research challenges. Journal of Internet Services and
Applications, 1(1) :7–18, May 2010.

68

You might also like