Rapport Final Ismail & Hazem

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 138

Université de la Manouba

Ecole Supérieure de Commerce de Tunis

RAPPORT DE STAGE DE FIN D’ETUDES


pour l’obtention de la
Licence Fondamentale en Informatique de Gestion

Présenté et soutenu par :


Ismail BEN RABIE
Mohamed Hazem BEN HMIDA

Cloud Computing Mobile : Cas d’un outil d’aide à la décision d’analyse


de flux des caméras IP

Préparée au sein du « Laboratoire RIADI-GDL »

Dirigé par :

Dr. Zaki BRAHMI (ESC)

Prof. Mohamed Mohsen GAMMOUDI (RIADI-GDL ENSI)

Année Universitaire : 2012/2013


Dédicaces

Qu’il me soit permis au seuil de ce modeste mémoire d’exprimer ma plus profonde


reconnaissance À :

Mon très cher père Abdellatif qui n’a jamais cessé de me soutenir, m’assister et
m’encourager. A celui qui a sacrifié ses plus belles années pour embellir les miennes, je
dois ma réussite, Aucun mot ne serait assez pour témoigner de l’étendue des sentiments
que j’éprouve à son égard.

Ma très chère mère Amel pour tout l’amour qu’elle a su me donner et pour tous les
sacrifices qu’elle a faits pour moi durant toute ma vie. Que Dieu me la garde et j’espère
vraiment que j’étais à la hauteur de leurs espérances.

Mes très chers frères Hamza & Mohamed et ma sœur Amina qui m’ont énormément
aidé et à qui je témoigne ma profonde reconnaissance,

Mon très cher enseignant Dr. Zaki Brahmi qui m’a toujours aidé, écouté, soutenu et qui a
su trouver les mots pour me redonner la force de continuer et d’aller au bout de cette
aventure,

Mon binôme Hazem et à toute sa famille pour leurs encouragements et leur soutien
moral,

Tous mes ami(e)s qui n’ont pas arrêté de me pousser vers l’avant.

ISMAIL
Dédicaces

Je dédie ce travail À:

Mon très cher père Fethi qui a été toujours là pour moi et qui m’a donné un
magnifique modèle de labeur et de persévérance,

Ma très douce mère Afifa, Que nulle dédicace ne puisse exprimer ce que je lui
dois, pour sa bienveillance depuis ma plus jeune enfance, son affectation et son
soutien. En témoignage de mon profond amour et ma gratitude pour les sacrifies
qu’elle avait consentis,

Mes adorables sœurs Meriem & Rim pour leur soutien moral et leurs sacrifices
tout au long de ma formation,

Mon grand-père Chedli et ma grand-mère Hbiba qui par leurs prières, leurs
encouragements et leur soutien m’ont toujours été un grand secours. Que Dieu vous
préserve la santé et une longue vie,

Mon parrain Dr. Zaki Brahmi pour les nombreux sacrifices qu’il a consentis à
l’aboutissement du présent travail qu’il a suivi patiemment,

Mon cher enseignant Mr. Hatem Raies pour son soutien incommensurable tout au
long de mes études,

Mon cher binôme Ismail et à toute sa famille.

HAZEM
Remerciements

Ce travail est l’aboutissement d’un long cheminement au cours duquel on a bénéficié


l’encadrement, l’encouragement et le soutien de plusieurs personnes, à qui nous tenons à
dire profondément et sincèrement merci.

Nous tenons à remercier tout d’abord Dieu le tout puissant, qui nous a donné la force et
la patience d’accomplir ce modeste travail.

Notre gratitude va aussi à notre encadreur de l’école Mr. Zaki BRAHMI, Maître
assistant à l’ISITCOM de Sousse, pour sa serviabilité, ses hautes qualités morales et ses
conseils précieux tout au long de notre recherche.

Nos remerciements s’adressent également à notre encadreur du laboratoire


Mr. Mohamed Mohsen GAMMOUDI, Professeur à l’Institut Supérieur des Arts
Multimédias de la Manouba, pour son soutien, son encadrement de qualité et ses conseils
judicieux tout au long de la période du stage.

Nos vifs remerciements vont aussi à tous les membres de l’équipe de recherche
SCO-ECRI (Extraction de Connaissances et Recherche d’Information) pour l’accueil
chaleureux et leur soutien qui ont fait avancer ce travail.

Nous tenons à remercier tout le cadre administratif et les enseignants de l’ESCT, en


particulier Mme Boutheina JLIFI, Mme Olfa BELKAHLA et Mr Hedi HAMDI, pour
la formation de qualité et l’ambiance qu’ils ont su instaurer pendant toutes les années
d’études.

Enfin nous tenons à manifester notre profond respect et adresser nos vifs
remerciements aux membres du jury d’avoir accepté d’évaluer notre travail.
Table des matières

Table des matières

Introduction générale ............................................................................ 1

1. Le Cloud Computing .......................................................................... 3

Introduction ...............................................................................................................................3
1.1 Présentation du Cloud Computing ...................................................................................3
1.1.1 Définition ...............................................................................................................3
1.1.2 Caractéristiques.......................................................................................................4
1.1.3 Historique ...............................................................................................................6
1.2 Les facteurs d’adoption du Cloud Computing..................................................................7
1.2.1 Démocratisation de l’informatique ..........................................................................7
1.2.2 Démocratisation de l’Internet ..................................................................................8
1.2.3 Développement des réseaux informatiques ..............................................................8
1.2.4 Développement des techniques de programmation...................................................9
1.2.5 Crise économique ...................................................................................................9
1.3 Architectures du Cloud Computing .................................................................................9
1.3.1 Modèle de services orientés clients ..........................................................................9
1.3.1.1 La couche SaaS (Software as a Service) ......................................................... 10
1.3.1.2 La couche PaaS (Platform as a Service) ......................................................... 12
1.3.1.3 La couche IaaS (Infrastructure as a Service) .................................................. 12
1.3.2 Modèles de déploiement ........................................................................................ 14
1.3.2.1 Cloud public .................................................................................................. 15
1.3.2.2 Cloud privé ................................................................................................... 15
1.3.2.3 Cloud hybride................................................................................................ 17
1.4 Avantages et inconvénients du Cloud Computing .......................................................... 17
1.4.1 Avantages ............................................................................................................. 17
1.4.1.1 Avantages du coté client ............................................................................... 17
1.4.1.2 Avantages du coté fournisseur ...................................................................... 18
1.4.2 Inconvénients ........................................................................................................ 19
1.4.2.1 Inconvénients du coté client........................................................................... 19
1.4.2.2 Inconvénients du coté fournisseur .................................................................. 19
1.5 La sécurité dans le Cloud Computing ............................................................................ 20
1.5.1 Historique des attaques ......................................................................................... 20
1.5.2 Les recommandations pour réduire le risque .......................................................... 20
1.6 Cloud Computing, Services Web et Grille de calcul ...................................................... 22
1.6.1 Les services web ................................................................................................... 22
1.6.1.1 Historique ..................................................................................................... 22
1.6.1.2 Définition ...................................................................................................... 22
1.6.1.3 Technologies des Services Web ..................................................................... 23
1.6.2 Grille de calcul ...................................................................................................... 26
1.6.2.1 Définition ...................................................................................................... 26
1.6.2.2 Historique ..................................................................................................... 27
1.6.2.3 Avantages ..................................................................................................... 27
1.6.2.4 Inconvénients ................................................................................................ 28
1.6.2.5 Domaines d’applications ............................................................................... 28
1.6.3 Comparaison entre la grille de calcul, les Services Web et le Cloud Computing ..... 29
1.7 Cloud Computing Mobile ............................................................................................. 31
1.7.1 Concept et principe ............................................................................................... 31
1.7.2 Architecture .......................................................................................................... 32
1.7.3 Avantages ............................................................................................................. 32
1.7.4 Défis et solutions .................................................................................................. 33
1.7.5 Domaines d’applications ....................................................................................... 34
1.7.5.1 Commerce mobile (M-Commerce) ............................................................... 35
1.7.5.2 L’apprentissage mobile (M- Learning) ........................................................... 35
1.7.5.3 Services médicaux mobiles (M- Healthcare) .................................................. 36
Conclusion ............................................................................................................................... 36
2. Les plateformes du Cloud Computing .............................................. 37

Introduction ............................................................................................................................. 37
2.1 Etude des principales plateformes Cloud ....................................................................... 37
2.1.1 Plateforme Google App Engine (GAE).................................................................. 37
2.1.2 Plateforme Windows Azure de Microsoft .............................................................. 41
2.1.3 Plateforme Amazon Web Services (AWS) ............................................................ 44
2.1.4 Plateforme Force.com de Salesforce ...................................................................... 47
2.1.5 Plateforme OpenNebula ........................................................................................ 48
2.1.6 Plateforme Eucalyptus .......................................................................................... 49
2.1.7 Plateforme OpenStack ........................................................................................... 50
2.2 Etude comparative des différentes plateformes .............................................................. 51
2.2.1 Comparatif des principales offres de Plateforme as a Service (PaaS)...................... 51
2.2.2 Comparatif des principales offres d’infrastructure as a Service (IaaS) .................... 53
2.2.3 Comparatif des principales offres de Software as a Service (SaaS) ........................ 55
Conclusion ............................................................................................................................... 57
3. Etude préliminaire ........................................................................... 58

Introduction ............................................................................................................................. 58
3.1 Présentation du projet ............................................................................................... 58
3.2 Méthodologie de développement................................................................................... 60
3.2.1 UML (Unified Modeling Language) ...................................................................... 60
3.2.2 Processus de développement 2 TUP ...................................................................... 60
3.3 Recueil des besoins fonctionnels ................................................................................... 62
3.4 Recueil des besoins opérationnels ................................................................................. 63
3.5 Identification des acteurs .............................................................................................. 63
3.6 Modélisation du contexte .............................................................................................. 64
3.6.1 Modélisation du contexte dynamique .................................................................... 64
3.6.2 Modélisation du contexte statique ......................................................................... 66
Conclusion ............................................................................................................................... 66
4. Capture des besoins ......................................................................... 67

Introduction ............................................................................................................................. 67
4.1 Capture des besoins fonctionnels .................................................................................. 67
4.1.1 Identification des cas d’utilisation ......................................................................... 68
4.1.1.1 Diagramme de cas d’utilisation global initial ................................................. 68
4.1.1. 2 Affectation des priorités aux cas d’utilisations ............................................... 69
4.1.1.3 Raffinement des cas d’utilisations .................................................................. 70
a. Raffinement du cas d’utilisation « Gérer Caméra » ................................................ 70
b. Raffinement du cas d’utilisation « Consulter Statistiques » .................................... 70
c. Raffinement du cas d’utilisation « Gérer Compte » ............................................... 70
d. Raffinement du cas d’utilisation « S’authentifier » ............................................... 70
4.1.2 Diagramme de paquetage ...................................................................................... 76
4.2 Capture des besoins techniques ..................................................................................... 77
4.2.1 Configuration matérielle du système ..................................................................... 77
4.2.2 Spécification d’architecture ................................................................................... 78
Conclusion ............................................................................................................................... 80
5. Analyse et Conception ...................................................................... 81

Introduction ............................................................................................................................. 81
5.1 Analyse des cas d’utilisation ........................................................................................ 81
5.1.1 Analyse du cas d’utilisation « Visualiser Caméra ».............................................. 82
5.1.2 Analyse du cas d’utilisation « Consulter Statistiques ».......................................... 84
5.1.3 Analyse du cas d’utilisation « S’authentifier » ...................................................... 85
5.2 Conception des cas d’utilisation .................................................................................... 85
5.2.1 Conception du cas d’utilisation « Visualiser Caméra ».......................................... 86
5.2.2 Conception du cas d’utilisation « Consulter statistiques » ..................................... 88
5.2.3 Conception du cas d’utilisation « S’authentifier » ................................................. 90
5.3 Diagramme de classe .................................................................................................... 91
Conclusion ............................................................................................................................... 92
6. La Réalisation................................................................................... 93

Introduction ............................................................................................................................. 93
6.1 Technologies utilisées ................................................................................................... 93
6.1.1 Le langage de programmation JAVA .................................................................... 93
6.1.2 La plateforme Android 4.0 (Ice Cream Sandwich) ................................................ 94
6.1.3 La plateforme Google App Engine (GAE) ............................................................. 94
6.1.4 La technologie NoSQL (Not Only SQL)................................................................ 95
6.2 Environnement de travail .............................................................................................. 96
6.2.1 Environnement matériel ........................................................................................ 96
6.2.2 Environnement logiciel ......................................................................................... 97
6.2.2.1 Power AMC .................................................................................................. 97
6.2.2.2 Eclipse IDE ................................................................................................... 97
6.2.2.3 Java Development Kit 1.6 (JDK) ................................................................... 97
6.2.2.4 Software Development Kit 4.0 (SDK) ........................................................... 98
6.2.2.5 Android Development Tools (ADT) .............................................................. 98
6.2.2.6 Plug-in Google App Engine ........................................................................... 98
6.2.2.7 AChartEngine 1.0 .......................................................................................... 98
6.2.2.8 Objectify 3.1 ................................................................................................. 99
6.2.2.9 Restlet 2.0 ..................................................................................................... 99
6.2.3.0 OpenCV ........................................................................................................ 99
6.3 Déploiement de l’application sur Google App Engine ................................................... 99
6.3.1 Création du serveur App Engine ............................................................................ 99
6.3.2 Création de l’application Web ............................................................................. 101
6.3.3 Configuration de l’application ............................................................................. 102
6.3.4 Déploiement de l’application ............................................................................... 102
6.4 Les principales interfaces graphiques .......................................................................... 103
6.4.1 Interface Créer Compte ....................................................................................... 103
6.4.2 Interface de Mail reçu ......................................................................................... 103
6.4.3 Interface d’authentification ................................................................................. 104
6.4.4 Interface Menu principal ..................................................................................... 104
6.4.5 Interface Visualiser Caméra ................................................................................ 105
6.4.6 Interface Ajouter Caméra .................................................................................... 106
6.4.7 Interface Supprimer Caméra ................................................................................ 106
6.4.8 Interfaces Consulter statistiques .......................................................................... 107
6.4.9 Interface Modifier profil ..................................................................................... 108
6.5.0 Interface Récupérer mot de passe ........................................................................ 109
6.5.1 Interface représentant le mail de récupération du mot de passe ............................ 110
Conclusion générale ............................................................................ 111

Bibliographie ...................................................................................... 113

Annexe A ............................................................................................. 119

Annexe B ............................................................................................. 122


Table des figures

Figure 1.1 - Utilisation des ressources ............................................................................................5


Figure 1.2 - Evolution de l'informatique ........................................................................................7
Figure 1.3 - Evolution du nombre d'internautes dans le monde (1995-2010) ..................................8
Figure 1.4 - Les 3 couches du Cloud Computing .......................................................................... 10
Figure 1.5 - Les modèles de services Cloud .................................................................................. 15
Figure 1.6 - Schéma de l’architecture matérielle d’un Cloud externe............................................. 16
Figure 1.7 - Schéma de l’architecture matérielle d’un Cloud interne ............................................. 16
Figure 1.8 - Structure d'un message SOAP ................................................................................... 24
Figure 1.9 - Schéma générale de l'annuaire UDDI ........................................................................ 25
Figure 1.10 - Architecture du Cloud Computing Mobile ............................................................... 32
Figure 1.11 - Le potentiel de croissance du M-Commerce ............................................................ 35

Figure 2.1 - Tableau de bord de Google App Engine .................................................................... 39


Figure 2.2 - Fonctionnement de Google App Engine .................................................................... 41
Figure 2.3 - Portail de gestion de la plateforme Windows Azure ................................................... 43
Figure 2.4 - Portail d'administration AMAZON EC2 .................................................................... 45
Figure 2.5 - Interface d'administration pour AMAZON S3 ........................................................... 47
Figure 2.6 - Portail d'administration de la plateforme IAAS OPENNEBULA ............................... 49
Figure 2.7 - Tableau de bord de la plateforme EUCALYPTUS ..................................................... 50
Figure 2.8 - Tableau de bord d'OPENSTACK .............................................................................. 51

Figure 3.1 - Le processus de développement en Y ........................................................................ 61


Figure 3.2 - Diagramme de contexte dynamique du système ......................................................... 64
Figure 3.3 - Diagramme de contexte statistique du système .......................................................... 66

Figure 4.1 - Situation de la capture des besoins fonctionnelles dans 2TUP .................................... 67
Figure 4.2 - Digramme de cas d'utilisation global initial ............................................................... 69
Figure 4.3 - Raffinement du cas d'utilisation « Gérer Caméra » .................................................... 70
Figure 4.4 - Raffinement du cas d'utilisation « Consulter Statistiques »......................................... 72
Figure 4.5 - Raffinement du cas d'utilisation « Gérer Compte » .................................................... 74
Figure 4.6 - Raffinement du cas d'utilisation « S'Authentifier »..................................................... 75
Figure 4.7 - Digramme de package de l'application....................................................................... 76
Figure 4.8 - Situation de la capture des besoins techniques dans 2TUP ......................................... 77
Figure 4.9 - Digramme de déploiement du système MADS Cloud ................................................ 78
Figure 4.10 - Architecture technique du système .......................................................................... 79
Figure 5.1 - Traçabilité du cas d'utilisation « Visualiser Caméra » ................................................ 83
Figure 5.2 - Diagramme de collaboration pour le CU « Visualiser Caméra »................................. 83
Figure 5.3 - Traçabilité du cas d'utilisation « Consulter Statistiques » ........................................... 84
Figure 5.4 - Digramme de collaboration pour le CU « Consulter Statistiques » ............................. 84
Figure 5.5 - Traçabilité du cas d'utilisation « S'Authentifier » ....................................................... 85
Figure 5.6 - Digramme de collaboration « S'Authentifier » ........................................................... 85
Figure 5.7 - Traçabilité Analyse-Conception du cas d'utilisation « Visualiser Caméra » ................ 86
Figure 5.8 - Diagramme de classe de conception pour le cas d'utilisation « Visualiser Caméra » ... 86
Figure 5.9 - Diagramme de séquence du cas d'utilisation « Visualiser Caméra » ........................... 87
Figure 5.10 - Traçabilité analyse-conception du cas d'utilisation « Consulter Statistiques » ........... 88
Figure 5.11 - Digramme de classe de conception pour le cas d'utilisation « Consulter Statistiques »
.................................................................................................................................................... 88
Figure 5.12 - Digramme de séquence du cas d'utilisation « Consulter Statistiques » ...................... 89
Figure 5.13 - Traçabilité analyse-conception du cas d'utilisation « S'Authentifier » ....................... 90
Figure 5.14 - Diagramme de classe de conception pour le cas d'utilisation « S'Authentifier » ........ 90
Figure 5.15 - Diagramme de séquence du cas d'utilisation « S'Authentifier » ................................ 91
Figure 5.16 - Diagramme de classe de base de données ................................................................ 92

Figure 6.1 - Comparaison entre la BD Relationnelle et BD Orientée Colonne ............................... 96


Figure 6.2 - Création de l'application sur Google App Engine ..................................................... 100
Figure 6.3 - Tableau de bord de l'application .............................................................................. 100
Figure 6.4 - Création de l’application Web sur Eclipse ............................................................... 101
Figure 6.5 - Fichier de configuration appengineweb.xml ............................................................ 102
Figure 6.6 - Déploiement de l’application sur Google App Engine.............................................. 102
Figure 6.7 - Interface de création d’un nouveau compte .............................................................. 103
Figure 6.8 - Interface représentant le mail reçu ........................................................................... 103
Figure 6.9 - Interface d'authentification ...................................................................................... 104
Figure 6.10 - Interface Menu Principal ....................................................................................... 105
Figure 6.11 - Interface Visualiser Caméra .................................................................................. 105
Figure 6.12 - Interface Ajouter Caméra ...................................................................................... 106
Figure 6.13 - Interface Supprimer Caméra .................................................................................. 107
Figure 6.14 - Interface consulter statistiques par jour .................................................................. 107
Figure 6.15 - Interface consulter statistiques par année ............................................................... 108
Figure 6.16 - Interface modifier profil ........................................................................................ 109
Figure 6.17 - Interface récupérer mot de passe............................................................................ 109
Figure 6.18 - Interface représentant le mail reçu de récupération du mot de passe ....................... 110
Liste des tableaux

Tableau 1.1 - Comparatif des coûts entre le modèle SaaS et le modèle classique .......................... 11
Tableau 1.2 - Avantages et inconvénients des services nuagiques ................................................. 14
Tableau 1.3 - Tableau comparatif des différentes technologies de grille de calcul, Services Web et
Cloud Computing......................................................................................................................... 29

Tableau 2.1 - Quotas globaux du Google App Engine .................................................................. 38


Tableau 2.2 - Les limites de la plateforme Google App Engine .................................................... 40
Tableau 2.3 - Etude comparative des principales plateformes PaaS ............................................... 53
Tableau 2.4 - Etude comparative des plateformes IaaS ................................................................. 55
Tableau 2.5 - Etude comparative des offres SaaS.......................................................................... 56

Tableau 3.1 - Description du diagramme de contexte dynamique .................................................. 65

Tableau 4.1 - Description des cas d’utilisation .............................................................................. 68


Tableau 4.2 - Tableau de priorités ................................................................................................ 69
Tableau 4.3 - Description du cas d’utilisation « Visualiser Caméra » ............................................ 71
Tableau 4.4 - Description du cas d’utilisation « Ajouter Caméra » ................................................ 72
Tableau 4.5 - Description du cas d’utilisation « Consulter statistiques »........................................ 73
Tableau 4.6 - Description du cas d’utilisation « Créer Compte » ................................................... 75
Tableau 4.7 - Description du cas d’utilisation « S’authentifier» .................................................... 76

Tableau 5.1 - Description des classes d’analyse ........................................................................... 82


Tableau 6.1 - Description des matériels informatiques .................................................................. 96
Introduction générale

Avec le développement des technologies de communication et l’augmentation


exponentielle des capacités de transfert et de sauvegarde de données, l’informatique
a atteint un stade où un ordinateur isolé devient généralement désuet.
L’informatique est à présent basée sur la communication entre serveurs, postes utilisateurs,
« data centers » et réseaux. La tendance actuelle est effectivement la mutualisation des
ressources afin d’en maximiser l’exploitation et de bénéficier d’économies d’échelle.
Ces évolutions et tendances ont donné naissance à un concept majeur nommé le
« Cloud Computing ».
Ce concept est un modèle caractérisé par l’usage de ressources extérieures (mémoire, CPU,
logiciels, plateformes, machines virtuelles, données…) disponibles à distance par
l’intermédiaire de réseaux et utilisables et adaptables en fonction des besoins.

Parallèlement, nous assistons actuellement à l’émergence de technologies mobiles de


communication et de traitement de l’information. A ce propos, les téléphones mobiles sont
devenus un des outils principaux dans la vie quotidienne, personnelle et professionnelle.
Ils ont donné naissance à de nouveaux marchés, comme celui des applications mobiles.
Cependant, ces terminaux présentent certaines contraintes (limite de capacité de calcul,
faible capacité de stockage, restriction sur la consommation d’énergie …) qui les
empêchent d’exécuter des applications qui consomment une quantité de ressources
importante.
La problématique posée se résume par la question suivante : Comment faire fonctionner
des applications lourdes sur des appareils mobiles de capacité limitée ?
La solution que nous adopterons est le recours à la technologie du « Cloud Computing
mobile ». Cette technologie permet le traitement et le stockage des données dans le nuage
informatique. De ce fait, l’utilisateur peut bénéficier des services sans avoir besoin de
matériel complexe et coûteux.

1
Introduction générale

L’objectif principal de ce mémoire est la réalisation d’une application mobile d’aide à la


décision pour le secteur Marketing. Nous nous intéressons en particulier à l’analyse des
flux des caméras IP pour l’élaboration des statistiques sur le nombre de personnes qui
passent devant les panneaux publicitaires.

Le futur système offre aux responsables Marketing les fonctionnalités suivantes :

- Gestion des caméras IP, que ce soit par l’ajout, la modification, la suppression ou la
visualisation des caméras en temps réel.
- Visualisation des statistiques sur le nombre de passagers

Le présent rapport est structuré en deux parties couvrant l’ensemble des aspects de
notre travail :
La première partie, composée de deux chapitres, sera consacrée à l’explication détaillée
des concepts précités à savoir le Cloud Computing, le Cloud Computing mobile et les
plateformes de l’informatique en nuage.
La deuxième partie, composée de quatre chapitres, sera consacrée à la conception et
l’implémentation du notre application. Cette partie comprend les chapitres suivants qui
correspondent aux phases du processus de développement 2TUP, à savoir : l’étude
préliminaire, la capture des besoins, l’analyse et conception et la phase de réalisation.

2
Chapitre 1

Le Cloud Computing

Introduction

La technologie de l’Internet se développe de manière exponentielle depuis sa création.


Actuellement, une nouvelle tendance a fait son apparition dans le monde des technologies
de l'information et de la communication, il s'agit du « cloud computing ».
Dans le présent chapitre, nous présentons dans une première partie le concept du cloud
computing et ses caractéristiques. Nous exposons ensuite l’historique et les facteurs
d’émergence de ce nouveau modèle informatique. Puis, nous parlons de la relation
existante entre le cloud computing, les services web et les grilles de calcul. Enfin, nous
présentons le concept du cloud computing mobile ainsi que ses défis et solutions.

1.1 Présentation du Cloud Computing


Nous présentons dans cette section la notion du Cloud Computing ainsi que ses
caractéristiques.

1.1.1 Définition
A ce jour, il n’existe pas de définition officielle ou standardisée du Cloud Computing.
Quelques définitions ont été proposées dans la littérature informatique, citons celles de :
 NIST1 : « C’est un modèle qui permet l’accès au réseau à la demande.
Les ressources sont partagées et la puissance de calcul est configurable en fonction
des besoins. Le client peut bénéficier d’une flexibilité importante avec un effort
minimal de gestion » [MG, 2011]

1
NIST (National Institute for Standards and Technology) : c’est une agence du département du
commerce américain. Son objectif est de promouvoir l’innovation et la compétitivité de l’industrie au travers de la
technologie et des standards .

3
Chapitre 1. Le Cloud Computing

 Burton Group 2 : « Le cloud computing regroupe l’ensemble des disciplines,


technologies et modèles d’entreprise utilisés pour fournir des capacités informatiques
(logiciels, plates-formes, matériels) à la manière d’un service à la demande, évolutif et
élastique » [Kaskade, 2009]
 Génération NT3 : « Le cloud computing est un concept d’organisation informatique
qui place Internet au cœur de l’activité des entreprises. Il permet d’utiliser des
ressources matérielles distantes pour créer des services accessibles en ligne »
[Cavazza, 2011]

Toutes ces définitions nous mène à déduire que le cloud Computing est un concept
majeur dans l’évolution informatique. Il consiste à déporter sur des serveurs distants des
données et des traitements informatiques traditionnellement effectués sur des ordinateurs
locaux. Les utilisateurs ou les entreprises ne sont plus gérants de leurs propres capacités
informatiques mais peuvent ainsi accéder via Internet à de nombreux services en ligne sans
avoir à gérer l’infrastructure sous-jacente, souvent complexe.

1.1.2 Caractéristiques

Selon la définition proposée par le NIST, le cloud computing comprend cinq


caractéristiques principales [Scales Up, 2011] :
- Accès réseau universel
- Mutualisation des ressources
- Elasticité
- Libre-service à la demande
- Service mesurable et facturable

a - Accès réseau universel :

Les grands fournisseurs du cloud computing répartissent leurs centres de traitements sur
la planète pour fournir un accès aux systèmes en moins de 50 ms de n’importe quel
endroit. Les prestations sont accessibles via Internet, ce qui permet une utilisation dans le
monde entier avec divers dispositifs terminaux (PC, Tablette, Smartphone, etc.)

2
Burton Group : Il fait partie de Gartner Inc. qui est le principal fournisseur de recherche et d'analyse sur l'industrie
informatique mondiale.
3
Génération NT : C’est le portail Hi-Tech français consacré aux nouvelles technologies (Internet, logiciel, matériel,
mobilité, entreprise)
4
Chapitre 1. Le Cloud Computing

b - Mutualisation des ressources :

Les ressources informatiques du fournisseur sont de divers types : serveurs, capacité de


stockage, bande passante, puissance de traitement, etc. Ces ressources sont mises en
commun pour servir plusieurs clients, et sont allouées et libérées dynamiquement suivant
la demande.
La notion de partage de ressources s’appuie sur le concept de virtualisation qui permet
de faire fonctionner simultanément plusieurs systèmes d’exploitation dans des machines
virtuelles, sur un même serveur physique. Il en découle donc des économies à plusieurs
niveaux: moins de serveurs impliquent moins de maintenance, moins d’unités à refroidir,
moins de courant consommé, moins de surface de bureau utilisée, moins de surveillance,
moins de support.
Le client n’a en général ni le contrôle ni la connaissance de l’emplacement exact de ses
données et ressources, même s’il peut parfois choisir des préférences géographiques (par
pays, continent).

c - Elasticité :

L’élasticité est l’une des caractéristiques fondamentales du cloud computing. Elle


signifie la capacité à modifier dynamiquement la quantité de ressources allouées en
fonction de l'utilisation. Ce concept offre à l’utilisateur l’impression d’avoir en permanence
des ressources de calcul et/ou de stockage illimitées. Ces ressources peuvent être
facilement et rapidement allouées ou retirées, afin de répondre aux besoins de l’utilisateur.

Pour illustrer le principe d’élasticité, analysons la figure 1.1 ci-dessous :

Figure 1.1 - Utilisation des ressources [SCALES UP, 2011]

5
Chapitre 1. Le Cloud Computing

A chaque fois que les ressources actuelles sont au même niveau que la prévision de
charge, l’entreprise investit dans de nouvelles infrastructures. Cependant, la charge réelle
est très rarement linéaire, elle fluctue selon de nombreux critères imprévisibles. De ce fait
les ressources seront souvent en excédant et parfois lors de forte montée en charge en
insuffisance.

d - Libre-service à la demande :

Dans un environnement de type Cloud, l’utilisateur peut allouer et libérer des ressources
suivant ses propres besoins, de façon automatisée, sans nécessiter d’interaction humaine
avec les fournisseurs. Par exemple, un développeur qui souhaite tester son application sur
une machine virtuelle, peut seul et au travers d’un portail Web, utiliser une machine sans
devoir solliciter l’équipe IT. C’est la notion de self-service.

e - Service mesurable et facturable

Les fournisseurs de services cloud computing sont capables de mesurer de façon précise
la consommation des différentes ressources (CPU, Stockage, bande passante...). Cette
mesure leurs permet ensuite de facturer le client selon l’usage.
L’utilisation des ressources est donc surveillée, signalée et gage de transparence aussi bien
pour le fournisseur que pour le consommateur du service utilisé.

1.1.3 Historique

Le concept du Cloud Computing est loin d'être nouveau, il est même présent depuis des
décennies. On en trouve les premières traces dans les années 1960, quand John McCarty 4
affirmait que "cette puissance de traitement informatique serait accessible au public dans
le futur ".

Pendant longtemps la machine n’était qu’une simple interface de visualisation de


l’information et tout son traitement était internalisé (l’ère du Minitel), puis les machines
ont embarqué de la puissance de traitement et de la mémoire, et les calculs ont alors été
externalisés et effectués en local. Aujourd’hui, nous nous dirigeons, avec l’émergence des
tablettes tactiles, vers un retour à la notion d’interface de travail. Les logiciels et les
données sont dans la majeure partie hébergés dans des serveurs privés ou communautaires
à travers le monde.

4
John McCarthy (né le 4 septembre 1927, à Boston, Massachusetts) est le principal pionnier de l'intelligence artificielle et
également l'inventeur du langage Lisp.
6
Chapitre 1. Le Cloud Computing

La figure ci-dessous illustre l’évolution de l’informatique depuis le Minitel jusqu’au


Cloud Computing :

Figure 1.2 - Evolution de l'informatique [DIRECCTE, 2012]

Le Cloud Computing a été mis en œuvre par Amazon5 pour absorber la charge
importante des commandes faites sur leurs sites pendant les fêtes de Noël. Récemment,
d’autres acteurs comme Google, IBM et Microsoft entrent sur le marché du Cloud
Computing.

1.2 Les facteurs d’adoption du Cloud Computing


L'adoption de la philosophie « Cloud Computing » ne s'est pas faite sans facteurs.
Plusieurs catalyseurs ont grandement favorisé son expansion. Citons la démocratisation de
l’informatique et de l’Internet, le développement des réseaux informatiques et des
techniques de programmation et la crise économique.

1.2.1 Démocratisation de l’informatique


De nos jours, tout le monde possède un ordinateur, et la plupart des travailleurs de
l'information sont devenus familiers avec l'utilisation de la souris, du clavier et des
interfaces homme-machine conventionnelles. Cette démocratisation tend à faciliter
l'adoption de processus d'ingénierie complexe et permet aux entreprises de faire reposer
leur stratégie interne non plus sur l'informatique elle-même, mais sur la connaissance de
l'informatique par leurs employés.

5
Amazon : C’est une entreprise de commerce électronique américaine. Sa spécialité la plus connue est la vente de livres,
mais elle est diversifiée dans d'autres produits, notamment dans la vente de tous types de produits culturels (CD, DVD,
appareils photos numériques…)

7
Chapitre 1. Le Cloud Computing

1.2.2 Démocratisation de l’Internet


Internet a considérablement influencé nos habitudes, tant au bureau qu'à la maison.
Cette technologie a suivi des évolutions majeures, qui en font aujourd’hui une
plate-forme d’échange à grande échelle, permettant la communication entre un utilisateur
et une application, mais aussi la dissémination de logiciels au sein du réseau.

Cette dernière décennie aura vu l'augmentation du nombre d’abonnés à Internet.


La figure 1.3 démontre le phénomène : s Interne

Figure 1.3 - Evolution du nombre d'internautes dans le monde (1995-2010) [SEMEL, 2006]

1.2.3 Développement des réseaux informatiques

Le développement des réseaux informatiques est l’un des facteurs clés de l’adoption du
Cloud Computing. Ce progrès consiste en :
 Une augmentation de la bande passante, de ce fait, il devient possible d'accéder à des
applications distantes sans souffrir de problèmes d’accès à Internet.
 Fiabilité du réseau à tel point que les utilisateurs transitent leurs informations
personnelles et bancaires sur le réseau.
 Apparition de la technologie de virtualisation qui permet une gestion optimisée des
ressources matérielles c’est-à-dire le fait de fonctionner un ou plusieurs systèmes
d’exploitation, sur un serveur au lieu d’en installer un seul par machine.
 Avènement des réseaux sans fils dont le développement est en plein essor.

8
Chapitre 1. Le Cloud Computing

1.2.4 Développement des techniques de programmation

Au cours de ces dernières années, de nouveaux langages et de nouvelles technologies


sont apparues. Ces techniques de programmation ont permis de changer radicalement le
comportement d'une application sans en modifier le code. C'est particulièrement vrai pour
les applications web, grâce à des Frameworks6 tels que Symfony7 pour PHP, ou Groovy8
pour Java …

1.2.5 Crise économique

Nous sommes dans une situation économique où la crise fait de gros dégâts dans la
plupart des secteurs d'activité. A cet égard, les gérants d'entreprise et les actionnaires
tentent de réduire le budget de leurs systèmes d'informations. De ce fait, l'adoption d'offres
en cloud computing permet d’éviter les frais liés à la maintenance que ce service
nécessiterait s’il était physiquement présent dans l'entreprise .

Conclusion
Tous ces facteurs influencent à l'adoption du Cloud Computing par les divers gérants,
qui voient ici une très bonne opportunité de réduire les coûts de façon fiable en se
débarrassant de tout ce qui ne fait pas leur cœur de métier dans l'entreprise.

1.3 Architectures du Cloud Computing


Le Cloud Computing comprend trois modèles de services qu’il est important de les
différencier, à savoir le PaaS, l’IaaS et le SaaS. Ainsi, il existe trois modèles de
déploiement (Cloud public, Cloud privé et Cloud hybride).

1.3.1 Modèle de services orientés clients

L’informatique en nuage peut être décomposée en trois couches :

 Applicative (SaaS, Software as a Service)


 Plateforme (PaaS, Platform as a Service)
 Infrastructure (IaaS, Infrastructure as a Service)

6
Framework : C’est un kit de composants logiciels structurels, qui sert à créer les fondations ainsi que les grandes lignes
de tout ou d’une partie d'un logiciel
7
http://symfony.com/
8
http://groovy.codehaus.org/
9
Chapitre 1. Le Cloud Computing

La Figure 1.4 représente les différents services du cloud computing de la couche la


moins visible pour les utilisateurs finaux à la plus visible.

L’infrastructure as a Service (IaaS) est plutôt gérée par les architectes réseaux, la couche
PaaS est destinée aux développeurs d’applications, et la couche le Software as a Service
(SaaS) est le « produit final » pour les utilisateurs.

Figure 1.4 - Les 3 couches du Cloud Computing [PARISOT, 2011]

1.3.1.1 La couche SaaS (Software as a Service)

C’est un modèle qui consiste à fournir des services ou des logiciels informatiques par le
biais d'Internet ou par le Web. De cette façon, l'utilisateur n'a plus besoin d'installer et
maintenir les applications sur sa machine, mais juste d’un terminal pour y accéder à travers
le Cloud Computing. Contrairement au modèle classique qui nécessite l’achat de licence et
l’installation sur un serveur local, le modèle SaaS propose l'application accessible à
distance comme un service.

Le tableau 1 présente une comparaison entre le modèle SaaS et le modèle classique en


termes de coût :

10
Chapitre 1. Le Cloud Computing

Modèle SaaS Modèle classique

- L’utilisateur paye L’utilisateur est le propriétaire


Le prix du
mensuellement ou annuellement. du logiciel, il paye une fois,
logiciel
- Les mises à jour sont mais il doit renouveler les
automatiques. licences tous les 2 à 3 ans pour
- L’utilisateur a le droit d’utiliser toujours avoir la version à jour.
le logiciel mais également à un
certain nombre de services.

- Aucune maintenance n'est - Les mises à jour faites sur


Le prix de la
nécessaire. Tout se fait chaque poste utilisateur ont un
maintenance
automatiquement et est compris coût important en termes de
logicielle du parc
dans l’abonnement. licence ou de main d'œuvre.
utilisateur

Aucun déploiement n’est les mises à jour peuvent


Le prix de la
nécessaire entrainer des corruptions ou
maintenance
des pertes de données. D’où un
logicielle du parc
coût de maintenance important
serveur

On peut utiliser les SaaS via des Les logiciels traditionnels


Le prix du parc
interfaces qui peuvent fonctionnent la plupart du
des postes de
fonctionner avec des clients temps sur des PC gourmands
travail
légers .Ceci coûte moins cher en énergie et rapidement
pour l’utilisateur obsolètes.

L’entreprise paye en fonction du - Le prix d'un parc de serveurs


Le prix du parc
temps d'usage des serveurs. dédié coûte cher : Il faut au
de serveurs
moins 2 centres de données
entièrement équipées
- La consommation électrique
est le plus gros poste de
dépense

Tableau 1.1 - Comparatif des coûts entre le modèle SaaS et le modèle classique

11
Chapitre 1. Le Cloud Computing

A partir de ce tableau, nous déduisons que l'utilisation du modèle SaaS permet aux
entreprises de se recentrer sur leur cœur de métier au lieu d'avoir à se soucier de problèmes
informatiques.

1.3.1.2 La couche PaaS (Platform as a Service)

Cette couche permet aux développeurs d'applications d'avoir une plateforme de travail
souple, distribuée et virtualisée dans laquelle ils n'ont besoin d'aucune compétence dans les
domaines sous-jacents (réseau, matériel, système d’exploitation..).

Le modèle PaaS abstrait les systèmes d’exploitation, les bases de données, la couche
Middleware ainsi que la couche de serveur web nécessaire au déploiement des
applications. En général, cette abstraction s’accompagne de la fourniture d’un certain
nombre d’outil de développement et de déploiement destinés à faciliter le travail des
développeurs sur la plate-forme.

Les principales plateformes sont actuellement Windows Azure de Microsoft


[Microsoft1], App Engine de Google [Google] et Force.com de Salesforce [Salesforce].

1.3.1.3 La couche IaaS (Infrastructure as a Service)

Cette couche forme le socle du Cloud Computing. Elle permet de fournir des ressources
physiques (serveurs, mémoire RAM, espace disque, bande passante…) en tant que service.
Auparavant, l'entreprise cliente louait un serveur physique avec des caractéristiques bien
déterminées, mais avec ce service elle peut louer un serveur dont les ressources peuvent
évoluer en fonction de ses besoins de façon dynamique. De ce fait, Le cloud de type IaaS
simplifie le travail de certains développeurs en leur permettant de s’abstraire largement des
contraintes matérielles et de disposer d’une capacité informatique virtuellement illimitée.
Parmi les prestataires d’IaaS, on peut citer : Amazon avec EC2 [Amazon] ou Orange
Business Services avec Flexible Computing [Orange].

La figure 1.5 illustre bien les caractéristiques et les frontières de contrôle suivant les
modèles de services Cloud Computing :

 Pour le modèle IaaS, le prestataire fournit l'infrastructure technique, c'est-à-dire les


serveurs, le stockage, le réseau, les pare-feu, etc. et vous n'avez plus qu'à gérer le
système d’exploitation, l’environnement d’exécution, les données et les logiciels.

12
Chapitre 1. Le Cloud Computing

 Pour le modèle PaaS, le fournisseur fournit le système d’exploitation,


l'environnement de programmation, la base de données et un serveur web.
L’utilisateur est responsable uniquement des données et des logiciels.

 Pour le modèle SaaS, les prestataires fournissent en plus les logiciels et les données.

Figure 1.6 - Les modèles de services Cloud [TALYANA, 2012]

Dans le tableau 2, nous présentons une étude comparative des différents modèles de
services, et ceci, suivant leurs avantages et inconvénients :

13
Chapitre 1. Le Cloud Computing

Avantages Inconvénients

- Libération des charges techniques - Soucis de confidentialité


(installation, mise à jour, sécurité...)
- Dépendance aux prestataires de
- Rapidité de déploiement services
SaaS
- L’application est accessible à tout - Applications non personnalisables

moment et en tout lieu - Intégration difficile avec le


- Possibilité de tester sans engager système d’informations interne
- Optimisation des coûts

- Développement d’applications sur - Limité par les fonctions offertes


mesure par l’hébergeur (exemple
- Déploiement automatisé aux technologies Python ou Java
- Possibilité d’offrir l’application pour Google App Engine)
PaaS
développée en mode SaaS
- Problème de sécurité des données
- Abstraction de l’infrastructure - Pas de contrôle de machines
virtuelles sous – jacentes

- Gestion automatique de -Besoin d’administrateurs systèmes


l’infrastructure -La création des machines virtuelles
IaaS - Déploiement de tout type de est difficile
logiciel
- Grande flexibilité d’utilisation

Tableau 1.2 - Avantages et inconvénients des services nuagiques

1.3.2 Modèles de déploiement

Une des caractéristiques des solutions cloud étant d’être installées dans des Datacenter9.
On identifie communément trois modèles de déploiement, associé à trois types de
cloud computing: le cloud public, le cloud privé et le cloud hybride.

9
Data Center : C’est un site physique sur lequel se trouvent regroupés des équipements constituants le système
d’information de l’entreprise (mainframes, serveurs, baies de stockage, équipements réseaux et de télécommunications,
etc.). Il peut être interne et/ou externe à l’entreprise, exploité ou non avec le soutien de prestataires.
14
Chapitre 1. Le Cloud Computing

1.3.2.1 Cloud public

L’appellation Cloud public est utilisée lorsque les ressources sont fournies par un
prestataire tiers, et mutualisées pour un usage par plusieurs clients. Il n’y a donc aucun
investissement initial pour l’utilisateur, et l’on paie uniquement pour les ressources que
l’on utilise. On peut citer comme exemple de cloud public :

 Amazon Elastic Compute Cloud (EC2)


 Sun Cloud [Oracle]
 IBM’s Blue Cloud [IBM]
 Google App Engine [Google]
 Windows Azure Services Platform [Microsoft1]

La figure 1.6 explique l’architecture matérielle du cloud public.

Entreprise 1 Fournisseur Cloud

Internet

Entreprise 2
Réseau public Serveurs mutualisés

Figure 1.5 - Les modèles de services Cloud [TALYANA, 2012]

1.3.2.2 Cloud privé

C’est un modèle de déploiement interne aux entreprises ou organisations qui en sont les
propriétaires. On distingue 2 types de cloud privé :
 Cloud privé externe : Il est dédié à une seule entreprise mais dont la gestion est
externalisée à un prestataire. C’est le cas par exemple avec Amazon Virtual Private
Cloud (Amazon VPC).

15
Chapitre 1. Le Cloud Computing

La figure ci-dessous montre le schéma de l'architecture matérielle du cloud privé externe :

Entreprise 1 Fournisseur Cloud

Réseau privé Serveurs dédiés


des entreprises Internet

Entreprise 2

Serveurs dédiés

Figure 1.6 - Schéma de l’architecture matérielle d’un Cloud externe

 Cloud privé interne : C’est un type de Cloud à travers lequel la Direction des
systèmes d’informations est propriétaire de son infrastructure qui lui permet
d’accéder par le biais d'un réseau sécurisé, interne et fermé (Figure 1.8)

Entreprise

Réseau privé

de l’entreprise
Internet

Réseau public

Figure 1.7 - Schéma de l’architecture matérielle d’un Cloud interne


16
Chapitre 1. Le Cloud Computing

Si l'entreprise souhaite conserver le contrôle de ses ressources physiques, elle doit opter
pour un nuage privé, géré par l'entreprise elle-même ou par un tiers de confiance.

1.3.2.3 Cloud hybride

Un cloud hybride est l’utilisation de plusieurs Clouds, qu’ils soient privés ou publics.
Par exemple, on pourra exporter nos applications dans un cloud public mais ces
applications utiliseront également des données stockées sur un cloud privé. On se trouve
donc dans le cas d’un cloud hybride.

L’approche hybride du Cloud Computing sera la solution pour les entreprises qui
auraient la possibilité de ne pas externaliser les données sensibles, d’où un contrôle total de
leurs informations.

1.4 Avantages et inconvénients du Cloud Computing


Le Cloud Computing est indéniablement l’une des principales avancées technologiques
de ces dernières années. Il représente une forme d’évolution des systèmes d’information
pouvant apporter des avantages à une entreprise ainsi qu’un ensemble de risques.
Cette section, donne un aperçu sur les apports et les limites de ce nouveau concept.

1.4.1 Avantages
Cette partie traitera les avantages du Cloud dont bénéficient le client et le fournisseur.

1.4.1.1 Avantages du coté client

Les avantages du coté client sont multiples, citons :

- La réduction des coûts : les services cloud payants sont généralement moins chers que
les systèmes physiques traditionnels. En effet, l’utilisateur n'est plus contraint
d’investir en matériel et logiciel, il accède à son service sans avoir besoin de payer pour
la maintenance régulière ou les mises à niveau.
- La maîtrise de budget : le cloud computing est lié au concept de consommation à
l’usage : l’utilisateur ne paie que ce qu’il consomme, avec une tarification à l’heure, au
jour, au mois…
- La flexibilité : l’espace de stockage et la puissance de calcul évoluent de manière
dynamique. Le client ne réserve que ce dont il a besoin, et désactive ce dont il a plus
besoin.

17
Chapitre 1. Le Cloud Computing

- La simplicité : le cloud computing transfère la complexité d’une infrastructure interne


vers le centre de calcul d’un fournisseur spécialisé.
- La productivité : les services cloud permettent aux collaborateurs de travailler à distance
grâce à une simple connexion Internet.
- La sécurité : les fournisseurs Cloud sécurisent leurs centres de calcul non seulement du
coté physique, mais utilisent sur leurs serveurs les dernières technologies de sécurité et
effectuent en permanence des mises à jour des données clients.
- La mobilité : l’utilisateur peut accéder à ses applications à tout moment et de n’importe
quel appareil connecté à Internet (PC, Tablette, Smartphone …).

1.4.1.2 Avantages du coté fournisseur

Les avantages dont bénéficient les fournisseurs de services cloud sont les
suivants:

- Adoption de nouveaux services : le fournisseur de services Cloud Computing a tout


intérêt à compléter leurs offres logicielles par de nouveaux services tel que la facilité
d’accès, la disponibilité, la réactivité face aux montées et descentes en charge de
l'utilisateur …

- Acquisition de nouvelles compétences : le prestataire de services Cloud Computing doit


développer de nouvelles compétences autres que des compétences purement
informatiques, notamment dans les domaines de la gestion des contrats, des audits des
garanties de SLA10 …
- Possibilités de virtualisation qui s’offrent : la mutualisation et la virtualisation des
serveurs permettent de réduire les coûts tout en gagnant en efficacité et en agilité. Ainsi,
une virtualisation bien planifiée permet au fournisseur d’obtenir un retour sur
investissement élevé et durable.
- Nouveaux modes de tarification : en mutualisant leurs offres, les fournisseurs de solution
Cloud Computing peuvent proposer des prix plus compétitifs et une tarification
attractive pour de nouveaux clients.

10
SLA (Service Level Agreement) : contrat définissant les engagements de l'hébergeur quant à la qualité de sa
prestation, et des pénalités engagées en cas de manque.

18
Chapitre 1. Le Cloud Computing

1.4.2 Inconvénients

Le cloud computing présente de nombreux avantages mais également de nombreux


inconvénients. Cette partie, traite les limites de l’informatique en nuage du côté client et du
côté fournisseur.

1.4.2.1 Inconvénients du coté client

Les risques qu’apporte le cloud computing à ses clients sont :

- La dépendance au réseau Internet : Si l’utilisateur n’a pas de connexion Internet, ou une


connexion insuffisante, il ne pourra pas accéder à sa plateforme de travail.
- La confidentialité et sécurité des données : Les risques d’attaque et de perte de
confidentialité sont augmentés, car selon le système utilisé, l’entreprise ne pourra pas
travailler ou disposer de ses données en dehors du réseau Internet qui est vulnérable aux
attaques et au piratage.
- La perte du contrôle des données : L’entreprise perd la maîtrise de son système
informatique. Elle dépend de son prestataire, tant au niveau technique que de la qualité
de service.
- La localisation des données : Il est difficile de localiser l’emplacement physique des
données stockées à l’intérieur d’un nuage. Ce manque de visibilité peut entraîner des
problèmes de sécurité et de conformité.

1.4.2.2 Inconvénients du coté fournisseur

Les contraintes qu’apporte le Cloud Computing à ses fournisseurs sont les


suivantes :
- Adoption d’une méthodologie différente : le cloud computing est une technologie
complètement différente qui demande de nouvelles connaissances et une vision
renouvelée du marché.
- Coût d’infrastructure élevé : pour être capable d’héberger des services de plus en plus
diversifiées, le fournisseur des services cloud computing doit investir dans des Data
Center. Cependant, chaque centre de données représente un investissement compris
entre 500 millions et un milliard de dollars [ Naugès, 2010].
- Défaillance du système : cette catégorie de risques concerne l'échec imprévisible des
mécanismes de stockage, de mémoire, de routage… On peut citer l’incident survenu en

19
Chapitre 1. Le Cloud Computing

2009 au service Ovi de Nokia qui, à la suite d’une panne de son système de
refroidissement, avait perdu la totalité de ses données.

1.5 La sécurité dans le Cloud Computing


La notion de sécurité des données est devenue l’un des principaux sujets de discussion à
propos du cloud computing car les exemples de déconvenues sont aujourd’hui nombreux.
Nous présentons dans cette section les accidents de l’informatique dans les nuages ainsi
que les recommandations à prendre en compte pour réduire les risques.

1.5.1 Historique des attaques


Le développement du cloud computing a créé de nouvelles menaces en matière de
sécurité. Parmi ces menaces on peut citer :

a- Les cyber-attaques : ces attaques exploitent les failles logicielles et peuvent causer
des fuites de données, affectant des millions d'utilisateurs. Exemple, En 2012 Zappos11 a
été victime d'une cyber-attaque qui a violé les données d'environ 24 millions de clients, y
compris leurs noms, adresses e-mail, adresses physiques, numéros de téléphone, numéros
de cartes bancaires et mots de passe cryptés [Jcbrechard, 2012].

b- Les catastrophes naturelles : Ces événements amènent les fournisseurs de services


Cloud à une perte des données. Par exemple, en Juin 2012, un orage violent a touché les
Data Center d’Amazon EC2. La panne a entrainé l’indisponibilité de sites web à fort trafic
tels que Netflix12, Instagram13 et Pinterest14.

1.5.2 Les recommandations pour réduire le risque

Comme chaque avancée technologique, le cloud computing apporte son lot de risques
qu’il convient de prendre en compte avant de pouvoir en tirer parti. Les recommandations
proposées par le CNIL15 [CNIL, 2012] reflètent les bonnes pratiques générales en matière
de sécurisation du Cloud Computing. Ces recommandations sont les suivantes :

11
Zappos : c’est la plus grande boutique de chaussures du monde
12
https://signup.netflix.com/global
13
http://instagram.com/
14
http://pinterest.com/
15
CNIL (Commission Nationale de l’Informatique et des libertés) : c’est une autorité administrative
indépendante française chargée de veiller à ce que l’informatique soit au service du citoyen et qu’elle ne porte atteinte ni à
l’identité humaine.

20
Chapitre 1. Le Cloud Computing

1 - Identifier les données et les traitements qui passeront dans le Cloud :


Avant d’envisager le recours au cloud computing, le client doit clairement identifier les
données, traitements ou services qui pourraient être hébergés dans le nuage informatique.

2 - Définir les exigences de sécurité technique et juridique :


Le client doit définir ses propres exigences et évaluer si les offres envisagées répondent à
l’ensemble des exigences formulées. Ces exigences doivent comprendre l’ensemble des
points importants pour le client et notamment :
 Les contraintes légales (localisation des données, garantie de sécurité et de
confidentialité, etc.) ;
 Les contraintes pratiques (disponibilité, portabilité, etc.) ;
 Les contraintes techniques (interopérabilité avec le système existant, etc.).

3 - Analyser les risques afin de définir les mesures de sécurité à mettre en place :
Conduire une analyse de risques est essentiel pour définir les mesures de sécurité à exiger
du prestataire ou à mettre en œuvre au sein de l’entreprise.

4 - Identifier le type de Cloud pertinent pour le traitement envisagé :


Chaque offre de service de Cloud computing étant spécifique, il convient de les comparer
en identifiant les forces et les faiblesses de chacune au regard du traitement considéré.

5- Choisir un prestataire présentant des garanties suffisantes :


Les clients doivent choisir des prestataires garantissant la mise en place de mesures de
sécurité et de confidentialité, et qui soient transparents vis-à-vis de leurs clients sur les
moyens employés pour exécuter leurs prestations.

6 - Définir la politique de sécurité interne :


Les utilisateurs de services de Cloud Computing doivent être conscients des risques liés à
l’utilisation d’Internet et aux terminaux mobiles (Smartphones, PC portables…) et doivent
s’assurer qu’ils bénéficient d’une protection suffisante.

7 - Surveiller les évolutions dans le temps :


Il est important d’évaluer régulièrement votre service de cloud computing pour garantir son
efficacité dans le temps et l’adéquation de la solution choisie avec les risques encourus.

Conclusion

Avant d’être en mesure de confier une application informatique au nuage, il conviendra


de procéder à une solide analyse des risques et de contrôler les vulnérabilités identifiées,
dans le cadre de mesures organisationnelles, techniques et naturellement juridiques.
21
Chapitre 1. Le Cloud Computing

1.6 Cloud Computing, Services Web et Grille de calcul


L’objectif de cette section est de décrire la relation qui existe entre ses différentes
technologies ainsi que les similitudes et les différences entre eux.

1.6.1 Les services web

L’accès aux systèmes d’information s’appuie aujourd’hui sur les technologies Internet.
Les efforts de standardisation dans ce contexte ont accentué l’engouement des personnes et
des organisations pour l’utilisation de l’Internet et ont permis l’émergence des services
Web comme support de développement des applications accessibles par Internet.

1.6.1.1 Historique

L’histoire des services web a commencé en 1975 lorsque l’informatique souffrait encore
de peu de standardisation, et les éditeurs de logiciels se rendent compte de la nécessité
d’uniformiser les échanges de données. A ce propos, de nombreuses technologies sont
apparues telles que RMI16, DCOM17 et CORBA18 ,mais aucune de ces technologies n’a
réussi à s’imposer comme un standard universel, en raison de la diversité des plates-formes
utilisées et de leur usage qui n'était pas adapté à Internet (problème de passage à travers
des Firewalls, etc.) d'où la lenteur, voire l'absence de réponses sur ce réseau
[Ben Aissi, 2010].
Les progrès techniques de ces dernières années ont permis de faciliter l’utilisation de
composants grâce à une nouvelle forme de composants distribués basée sur l’infrastructure
d’Internet, appelée services Web.

1.6.1.2 Définition

Plusieurs définitions des services Web ont été élaborées par différents auteurs.
Nous citons ci-dessous une définition généralement acceptée et fournie par le consortium
W3C [W3C-WSA-Group, 2004].
« Un service web est un système logiciel identifié par une URI, dont les interfaces
publiques et les associations sont définies et décrites en XML. Sa définition peut être

16
RMI (Remote Method Invocation) : c’est interface de programmation (API) pour le langage JAVA qui permet d’appeler
des méthodes distantes.
17
DCOM (Distributed Component Object Model): c’est une technique propriétaire de Microsoft qui permet la
communication entre des composants logiciels distribués au sein d'un réseau
18
CORBA (Common Object Request Broker Architecture) : c’est une architecture logicielle, pour le développement de
composants et d’Object Request Broker ou ORB.
22
Chapitre 1. Le Cloud Computing

découverte par d’autres systèmes logiciels. Ces systèmes peuvent alors interagir avec le
Service Web selon les modalités indiquées dans sa définition, en utilisant des messages
XML transmis par des protocoles Internet »

En d'autres termes, les services Web sont des composants logiciels publiés, découverts
et invoqués à travers le Web grâce à l'utilisation d'Internet comme infrastructure de
communication et de XML comme format d’échange de données. Ainsi, la technologie de
de services web permet de développer des applications qui seraient capables d’échanger
des données entre des systèmes hétérogènes, ce qui constitue en soi-même une solution aux
problèmes d’interopérabilité rencontrés au sein des entreprises.

1.6.1.3 Technologies des Services Web

Les standards XML19 utilisés par la technologie de services web sont SOAP (Simple
Object Access Protocol) comme protocole de communication, WSDL (Web Service
Description Language) comme langage de description et UDDI (Universal Description
Discovery and Integration) comme protocole de découverte.

- La couche transport SOAP :

Les interactions entre les services Web s’effectuent par le biais d’envois de messages
structurés au format XML. Le protocole SOAP qui est un standard de W3C fournit le cadre
permettant ces échanges. En effet, il autorise un objet à invoquer des méthodes d'objets
physiquement situés sur un autre serveur. Le transfert se fait le plus souvent à l'aide du
protocole HTTP20, mais peut également se faire par un autre protocole, tel que le SMTP
(Simple Mail Transport Protocol).

Un message SOAP est un document XML constitué d’une enveloppe contenant deux
parties :
 SOAP Header : c'est un élément optionnel qui contient les données d'en-têtes comme les
informations d’authentification et le contexte de transaction.
 SOAP Body : c'est le corps du message qui contient les appels de méthodes ainsi que
les informations sur les réponses. Il doit être présent de manière unique dans chaque
message.

19
XML (Extensible Markup Language) : c’est un langage informatique de balisage destiné pour l’échange de données
entre applications
20
Hyper Text Transport Protocol : c’est un protocole destiné à transférer des données d’un serveur Web à un poste client
23
Chapitre 1. Le Cloud Computing

La figure 1.9 montre la structure d’un message SOAP :

Figure 1.8 - Structure d'un message SOAP [IBM, 2010]

- La couche description WSDL :

WSDL (Web Service Description Language) est un langage de description de services


Web basé sur XML. Il permet de fournir une description structurelle et fonctionnelle des
services indépendamment de la plateforme et du langage utilisé [IBM, 2012].

Un document WSDL est composé de deux parties : une partie abstraite et une partie
concrète :
 La partie abstraite décrit les messages et les opérations. Elle est composée des
éléments :
< types > : définit les types de données utilisées par le service Web
< message > : décrit les messages utilisés par le service Web
< portType > : contient les opérations réalisées par le service Web

 La partie concrète décrit le protocole et le type d'encodage à utiliser. Elle est composée
des éléments :

< binding > : définit les protocoles de communication utilisés par le service Web
< services > : regroupe l'ensemble de ports

- La couche découverte UDDI :

L’annuaire UDDI (Universal Description Discovery and Integration) est un standard


pour la publication et la découverte des informations sur les services Web
[SoftDeath, 2013].

La spécification UDDI vise à créer une plate-forme indépendante, un espace de travail


ouvert pour la description, la découverte et l'intégration des services des entreprises.

24
Chapitre 1. Le Cloud Computing

Ce modèle se compose de cinq types de structures de données : le Business Entity, le


Business Service, le binding Template, le tModel et le publisher Assertion.

 L’entité fournisseur (Business Entity) comprend des informations concernant


l'entreprise qui expose le service.
 Le service (Business Service) représente l’ensemble des services exposés par
l'entreprise.
 Les accès au service (Binding Template) fournissent des informations sur le lieu
d'hébergement du service.
 Le type de service (tModel) permet de donner le mode d’accès au service.
 Le publisher Assertion décrit l’ensemble des informations contractuelles pour accéder
au service.

L’architecture type d’un annuaire UDDI est illustrée dans la Figure 2 ci-dessous.
En effet, les fournisseurs de services publient les descriptions de leurs services Web en
UDDI, sous la forme de fichiers WSDL. Ainsi, les clients peuvent plus facilement
rechercher les services Web dont ils ont besoin en interrogeant le registre UDDI.
Lorsqu'un client trouve une description de service Web qui lui convient, il télécharge son
fichier WSDL depuis le registre UDDI. Ensuite, à partir des informations inscrites dans le
fichier WSDL, notamment la référence vers le service Web, le client peut invoquer le
service et lui demander d'exécuter certaines de ses fonctionnalités.

Figure 1.9 - Schéma générale de l'annuaire UDDI [SOFTDEATH, 2013]

25
Chapitre 1. Le Cloud Computing

Conclusion

Un service web est décrit à l'aide de WSDL dans un annuaire UDDI et communique
avec d'autres services à l'aide de messages SOAP.

1.6.2 Grille de calcul

Deux nouveaux concepts de calcul sont en train de modifier le monde informatique,


comme l’a fait Internet à partir des années 80 : ce sont les concepts de grilles de calcul ou
Grid Computing et de l’informatique en nuage. Ces modèles sont apparus pour répondre à
une demande croissante des scientifiques et des industriels en puissance de calcul, en
ressources de stockage et en applicatifs.

Nous présentons dans cette section, le concept de grille de calcul, son historique, ses
avantages, ses inconvénients et ses domaines d’application.

1.6.2.1 Définition

Il existe plusieurs définitions du terme grille de calcul. En voici quelques-unes :


 D’après Ian Foster21 et Carl Kesselman22 : « A computational Grid is a hardware and
software infrastructure that provides dependable, consistent, pervasive and inexpensive
access to high-end computational capabilities. » [Foster, 2003]
 Selon IBM23 , le calcul en grille est définit comme étant « une méthode utilisant une
panoplie de protocoles standards pour avoir l’accès aux applications et aux données, à
la puissance de calcul, à la capacité de stockage entre un vaste réseau de ressources
informatiques à travers Internet » [PW, 2006]
 De même pour CERN24 qui considère que le Grid Computing est « un service pour le
partage de puissance informatique et de capacité de stockage à travers l’Internet »
[CERN]

A partir de ces définitions, nous déduisons que la grille de calcul est une infrastructure
virtuelle constituée d’un ensemble de ressources informatiques potentiellement partagées,
distribuées, hétérogènes, délocalisées et autonomes. Son rôle consiste à partager ces
ressources entre des participants, des organisations et des entreprises afin de pouvoir

21
Ian Foster : C’est un chercheur en sciences physique et le directeur du laboratoire national d’Argonne
22
Carl Kesselman : C’est un chercheur en informatique et professeur au département d'Epstein de l'industrie et
l'ingénierie des systèmes.
23
IBM (International Business Machines Corporation) : C’est une société multinationale américaine présente dans les
domaines du matériel informatique, du logiciel et des services informatiques.
24
CERN (European Organization for Nuclear Research) : C’est l’un des plus gros consommateurs de puissance de
calcul à travers à travers la technologie du Grid Computing
26
Chapitre 1. Le Cloud Computing

exécuter des applications de calcul intensif ou des traitements de très gros volume de
données.

Cette infrastructure est qualifiée de virtuelle car les relations entre les entités qui la
composent n'existent pas sur le plan matériel mais d'un point de vue logique.

1.6.2.2 Historique

La notion de Grid Computing a été introduite en 1969 par Leonard Kleinrock25 en


imaginant une infrastructure de grilles de calcul: « Nous verrons probablement l’expansion
des outils de calcul comme les réseaux électriques et les réseaux téléphoniques qui iront
jusqu’à chaque maison et chaque bureau ». Cette vision a été peu à peu implémentée
durant les années suivantes par la création de centres de calcul partagés et l’intégration de
plusieurs ressources informatiques.
En 1998, le terme « grille » a été formalisé et défini par Ian Foster et Carl Kesselman
qui ont publié un livre intitulé " The Grid : Blueprint for a New Computing Infrastructure".
Cet ouvrage a été considéré comme la bible de grille de calcul [Leclere, 2009].

1.6.2.3 Avantages

Les avantages de Grid Computing portent principalement sur [Soueid] :


 Le partage de ressources informatiques (matérielles et logicielles) ;
 L’accès transparent aux ressources : les utilisateurs peuvent accéder aux données sans
avoir à se soucier de la situation géographique, ni du type de support sur lequel elles
sont stockées ;
 Le calcul et le stockage à la demande ;
 L’augmentation de la puissance de calcul à moindre coût ;
 Fiabilité et disponibilité des services : les ressources fédérées par une grille de calcul
sont géographiquement dispersées, ce qui permet d’assurer la continuité du service si
certaines ressources deviennent inaccessibles ;
 L’exploitation de la puissance de calcul inutilisée : les études montrent que les
ordinateurs personnels et les stations de travail sont inactifs la plupart du temps. A cet
égard, les grilles de calcul permettront d’utiliser les cycles processeurs durant lesquels
les machines sont inactives ;

25
Leonard Kleinrock: (né en 1934), il est l'inventeur des principes de la commutation de paquets.
27
Chapitre 1. Le Cloud Computing

 L’allègement des charges des calculateurs : les entreprises qui possèdent déjà des
supercalculateurs, pourront alléger les charges de ces derniers en lançant des calculs
sur une architecture basée sur le Grid Computing ;
 L’optimisation de la productivité et du travail collaboratif.

1.6.2.4 Inconvénients

Il existe plusieurs limites à ce que l’architecture des grilles peut accomplir dans un
environnement d’entreprise. Nous pouvons citer : [LR]
 La faiblesse du niveau de sécurité qui dissuade les entreprises de se lancer dans un tel
projet.
 La lenteur des temps d’accès aux ressources
 L’absence d’administration centralisée
 La difficulté de création d’applications qui marchent sur toutes les plateformes.
 Le manque d’adaptation des applications traditionnelles avec la grille de calcul

1.6.2.5 Domaines d’applications

La technologie de grille de calcul est utilisée dans des projets nécessitant de telles
puissances de calculs. Parmi les secteurs concernés par cette technologie nous citons :

 Le secteur financier : Les grandes compagnies d’assurances et les banques


s’intéressent à cette technologie afin d’augmenter leurs capacités d’analyse et de
traitement à moindre coût.

 Le secteur de la biotechnologie : Les calculs concernant les génomes,


l’imagerie médicale et les structures moléculaires sont utilisées pour le développement
de nouveaux médicaments.

 Le secteur industriel : Le leader mondial des secteurs de l'aéronautique EADS26 utilise


le Grid Computing pour faire des simulations fortement consommatrices de puissance
de calcul (conception d’un Airbus ou d’une fusée Ariane) ainsi que pour collaborer
avec les différentes entités du groupe qui sont réparties à travers l’Europe.
 Le secteur de l’astronomie: Les programmes de recherche d’intelligences extra-
terrestres sont basés sur la technologie de grille de calcul. Citons l’exemple du projet
seti@home dont le but est d’exploiter la puissance inutilisée de millions d’ordinateurs
connectés via Internet pour un projet de recherche de vie extra-terrestre.

26
EADS est un leader mondial des secteurs de l'aéronautique, de l'espace, de la défense et des services associés.
28
Chapitre 1. Le Cloud Computing

En résumé, le Grid Computing ouvre de larges horizons à l’analyse de données et à la


résolution de calculs dans différents domaines : l’astronomie, la biologie, la médecine, la
climatologie, les mathématiques, les sciences de la terre, la nanotechnologie… [AM]

1.6.3 Comparaison entre la grille de calcul, les Services Web et le


Cloud Computing

Le tableau 1.3 représente une étude comparative des technologies de grille de calcul, de
Services Web et du Cloud Computing.

Similitudes Différences

Le Cloud computing Les deux systèmes partagent Le cloud computing est


et la grille de calcul le même objectif qui est considéré comme une
l’allocation de ressources évolution de grille de calcul
informatiques (stockage et - - L’informatique en nuage
puissance de calcul) en n’offre pas seulement des
fonction des demandes des ressources à la demande, mais
utilisateurs. fournit également de nouveaux
services et fonctionnalités
selon les besoins de chaque
client.
- - Le cloud computing procure
la notion de virtualisation et
d’élasticité des ressources
alors que la grille de calcul
fournit les ressources de façon
équitable entre les
organisations.
- - Le cloud offre un accès
immédiat à ses applications et
ses données, par contre, dans
le cas de grille de calcul le
temps d’accès aux ressources
est très lent.

29
Chapitre 1. Le Cloud Computing

Les deux technologies se


Le Cloud computing Le cloud computing et les
diffèrent dans la façon
et les Services Web services web sont
d’utilisation des ressources :
incontournables pour la
le Cloud Computing focalise
réduction du temps et des
sur l’optimisation des
coûts associés au
ressources, alors que les
déploiement et à la
services Web se limitent à
maintenance des
donner accès à des capacités,
applications.
sans se préoccuper de quelle
façon les ressources seront
utilisées.

La grille de calcul et l’utilisation de services Web Les grilles de calcul sont des
les Services Web est le point critique pour la infrastructures caractérisées par
réussite de la mise en place des ressources dispersées et
d’une infrastructure de hétérogènes. En revanche, les
grille, et notamment pour services Web permettent
faire face aux problèmes l’accès aux ressources
d’hétérogénéité du matériel matérielles et logicielles
et des logiciels. indépendamment des systèmes
hétérogènes. Ils favorisent
l’interopérabilité des systèmes
d’informations et permettent de
distribuer les traitements, pour
obtenir une utilisation optimale
des ressources, et notamment
un équilibrage de la charge des
machines.

Tableau 3 - Tableau comparatif des technologies de grille de calcul, de Services Web et


du Cloud Computing

30
Chapitre 1. Le Cloud Computing

Depuis quelques années, le Cloud Computing est devenu un concept majeur dans le
domaine des Services Web et de la programmation orientée vers les Services. En effet,
la composition logicielle de ce concept repose sur les Services Web. Ces services
permettent l’accès à un ensemble de ressources informatiques (machines, réseau, stockage,
systèmes d’exploitation, plateformes de développement d'applications…) fournis par le
prestataire de services Cloud Computing.
On distingue également trois types de nuages informatiques :
 Le cloud public offre des services web publics d’accès gratuit ou payant.
 Le cloud privé offre des services web personnalisés pour les besoins de chaque
client.
 Le cloud hybride permet de fournir les deux types de services

Les grilles de calcul sont des infrastructures caractérisées par des ressources dispersées
et hétérogènes. Avec les méthodes traditionnelles, les utilisateurs ne peuvent pas manipuler
le nombre croissant de services. De ce fait, l’utilisation de Services Web demeure
obligatoire pour la mise en place d’une infrastructure grille.

Quant au concept de grille de calcul et du Cloud Computing, on peut dire que


l’informatique en nuage tente de renforcer le concept de la grille et d’éviter ses
défaillances.

1.7 Cloud Computing Mobile


Dans cette section, nous présentons d’abord le concept du cloud computing mobile.
Nous passons ensuite à décrire son architecture, ses avantages et défis. Enfin, nous
exposons ses différents domaines d’application.

1.7.1 Concept et principe

Le cloud computing mobile est l'une des tendances de la technologie mobile dans
l’avenir. De nombreuses définitions existent pour ce nouveau concept, citons celle de
Aepona27 qui le définit comme suit : " Mobile Cloud Computing is a new paradigm for
mobile applications whereby the data processing and storage are moved from the mobile
device to powerful and centralized computing platforms located in clouds. These
centralized applications are then accessed over the wireless connection based on a thin
native client or web browser on the mobile devices." [DLNW, 2011]

27
Aepona est le leader du marché mondial de services réseau et de services cloud.
31
Chapitre 1. Le Cloud Computing

Il s’agit donc d’un nouveau modèle permettant l’accès à des applications en mode
« SaaS » depuis des terminaux mobiles tels que les Smartphones, les tablettes… Ces
application sont construites, réalisées et hébergées via la technologie du cloud computing.

Le cloud computing mobile se différencie de l'informatique mobile car les dispositifs


mobiles exécutent des applications web basées sur le cloud plutôt que des applications
natives28. [Claybrook, 2011]

1.7.2 Architecture

L’architecture générale du cloud computing mobile est représentée dans la figure 2.1.

Figure 1.10 - Architecture du Cloud Computing Mobile [KKKM, 2012]

Comme l’indique la figure précédente, l’opération se déroule comme suit : Les clients
mobiles interagissent avec le fournisseur de services cloud en utilisant des applications
web accessibles via un navigateur. Ils se connectent donc au réseau mobile via les stations
de base (Satellite, point d’accès, Base Transceiver Station 29…) et communiquent avec le
nuage informatique à travers Internet.

1.7.3 Avantages

Le cloud computing mobile offre de nombreux avantages pour les fournisseurs ainsi que
les utilisateurs finaux. Du côté client, les avantages sont : [SelfGrowth]
 La réduction des coûts : le Cloud Mobile permet le traitement et le stockage des
données dans les nuages. De ce fait, l’utilisateur bénéficie des services sans avoir
besoin de matériel complexe et coûteux. De même, les entreprises n’ont plus à investir

28
Une application native désigne un logiciel à télécharger depuis un store (exemple : Google Play) et à installer sur un
appareil mobile
29
Base Transceiver Station ( BTS) : c’est un élément de base du système cellulaire de téléphonie mobile GSM, appelé
plus communément antenne-relais GSM
32
Chapitre 1. Le Cloud Computing

dans leur propre infrastructure, ils peuvent développer, déployer et gérer leurs
applications mobiles en contrepartie d’un prix fixe par utilisateur.

 La mobilité : le client peut accéder à ses données à partir de n’importe quel endroit,
grâce à une simple connexion Internet.
 La simplicité : grâce au Cloud Computing Mobile, les utilisateurs n'ont plus besoin
d'installer le logiciel sur leurs appareils mobiles. Ils accèdent aux services via un
simple navigateur web.
 La fiabilité : les services du Cloud sont basés sur des infrastructures performantes
possédant des politiques efficaces de tolérance aux pannes et mis à disposition de tous
les utilisateurs.
 La sécurité : le déploiement d’applications mobiles via le cloud permet la création des
mesures de sécurité. En effet, une plateforme cloud peut s’avérer efficace pour
identifier, isoler et bloquer l’accès au serveur de tout trafic malveillant tel que les
attaques par déni de service, tout en continuant à satisfaire le trafic légitime sans perte
de performance.

Du coté fournisseur, les apports du Cloud Computing mobile sont:

 La réduction des coûts de développement : les développeurs n'ont pas à investir dans la
construction d'infrastructures et de ressources. Ils créent leurs applications mobiles
grâce à des outils gratuits et évolutifs, ce qui leurs permet de réinvestir et de développer
des produits de meilleure qualité.
 La scalabilité : grâce à la flexibilité des ressources, les fournisseurs Cloud peuvent
facilement ajouter ou modifier un service.
 Multi-location : Les prestataires de services Cloud Computing se partagent les
ressources et les coûts pour soutenir une variété d'applications et un grand nombre
d'utilisateurs.
 La facilité d’intégration : Plusieurs services de différents fournisseurs peuvent être
intégrés afin de répondre aux demandes des de l’utilisateur

1.7.4 Défis et solutions

Malgré que le cloud computing mobile fournit un accès instantané aux données, les
développeurs d’applications sont confrontés à de nouveaux défis tels que les limites des
appareils mobiles, les contraintes des réseaux mobiles et l’hétérogénéité des
environnements de développement. [Gani, 2012]

33
Chapitre 1. Le Cloud Computing

 Les limites des appareils mobiles : la multiplication et la diversité des dispositifs


mobiles ont entraîné de nouveaux défis pour les concepteurs: capacité de mémoire
limitée, capacité CPU30 faible, diversité des systèmes d'exploitation, restriction sur la
consommation d’énergie… Pour ces raisons, le développeur doit toujours être vigilant
sur les ressources nécessaires au fonctionnement de son application. Ainsi, il doit
développer son application autour d’une architecture logicielle économe en ressources
matérielles.
 Les contraintes des réseaux mobiles : les dispositifs mobiles sont généralement
connectés à Internet via des réseaux mobiles (EDGE ou 3G+). Cependant, ces réseaux
présentent certaines limites telles que la diminution de la bande passante,
l’affaiblissement de la vitesse de transmission, la connexion instable, la sécurité...
De ce fait, le réseau 4G31 apparaît comme une technologie prometteuse permettant de
surmonter ses limites et apporter une révolution dans l'amélioration de la bande
passante. D’ailleurs, il offre des vitesses de téléchargement plus rapides et des temps de
latence plus courts ce qui facilite l’accès aux services Cloud.

 L’hétérogénéité des environnements de développement : les développeurs se trouvent


face à une forte hétérogénéité des environnements de développement et des langages de
programmation entre les plateformes mobiles. Ainsi, le manque de standards induit un
coût de développement et de maintenance important si l’on souhaite être présent sur
chacune de ces plateformes. La solution consiste donc à utiliser des Frameworks Open
Source tel que JQueryMobile 32 et Titanium33 permettant le développement multi-
plateforme.

1.7.5 Domaines d’applications

Les applications prises en charge par le Cloud Computing mobile sont nombreuses.
Dans cette partie, nous présentons les domaines les plus importants : le commerce mobile,
l’apprentissage mobile et les services médicaux mobiles. [T.Dinh, 2011]

30
CPU (central processing unit) : C’est l’unité centrale de traitement ou processeur
31
Réseau 4G : Le terme 4G signifie la quatrième génération de réseaux mobiles.
32
JQueryMobile : C’est un Framework dont le but est de simplifier le développement
d'applications web multi-plateformes, exécutées sur des appareils mobiles.
33
Titanium : C’est un Framework open-source destiné aux téléphones mobiles utilisant Android
ou iOS
34
Chapitre 1. Le Cloud Computing

1.7.5.1 Commerce mobile (M-Commerce)

Le commerce mobile désigne l'ensemble des transactions commerciales réalisées à


partir d’un appareil mobile (Tablette, PDA, téléphone intelligent, etc.). [Rouse, 2005]
34
Selon les estimations du cabinet Xerfi (Figure 2.2), les ventes sur mobile devraient
passer de 2 milliards € en 2012 à près de 5 milliards € en 2015. Cette croissance s’explique
par l’augmentation de l’adoption des téléphones intelligents ainsi que la hausse de la
confiance des utilisateurs concernant l’achat de biens en ligne.

Figure 1.11 - Le potentiel de croissance du M-Commerce [Raynal, 2012]

Face à l’usage croissant des applications mobiles de commerce, les entreprises sont
confrontées à de nouveaux problèmes tels que la sécurité des données, la complexité des
configurations d'appareils mobiles, la faible bande passante … De ce fait, les directeurs des
systèmes d’informations ont opté pour la technologie du cloud mobile qui consiste à
utiliser des applications en mode SaaS, accessibles depuis n’importe quel navigateur.

1.7.5.2 L’apprentissage mobile (M- Learning)

L’explosion des moyens de télécommunication portables, tels que les Smartphones, les
tablettes numériques ou les ordinateurs de poches, a permis d’envisager une nouvelle
approche de l’apprentissage nommée le M-learning.

34
Xerfi est un Institut d’études économiques privé, spécialisé dans les analyses sur les secteurs et les entreprises.
35
Chapitre 1. Le Cloud Computing

L’apprentissage mobile est un type d’apprentissage électronique, qui utilise les


technologies mobiles, et conçu pour répondre de façon convenable à la mobilité et aux
préférences de l’étudiant moderne. [MATI Montréal]

L'apprentissage mobile apporte de nombreux avantages pour les mobinautes : D’une


part, l’apprenant aura la possibilité d'apprendre en tout lieu et à tout moment. D’autre part,
les enseignants se connectent à distance pour publier des devoirs, créer des plans de cours
et améliorer leurs compétences pédagogiques.

Il existe plusieurs applications mobiles hébergées via la technologie du cloud computing


pour l’apprentissage mobile. Nous citons l’exemple de "Saba People Cloud " [Saba] qui
permet aux professionnels de recevoir des formations en déplacement avec une flexibilité
optimale et sans compromis quant à la qualité de l’apprentissage.

1.7.5.3 Services médicaux mobiles (M- Healthcare)


Les applications médicales sont en train de se développer massivement. Certaines sont
destinées aux professionnels de santé tels que les médecins, les spécialistes, les étudiants
en médecine, les infirmières etc., d’autres sont dédiées au grand public. Citons l’exemple
de " ZonePharma " qui est une application mobile permettant d’accéder facilement à une
base de données contenant des renseignements détaillés sur les médicaments.
[Bellefoy, 2012]

L’intégration de la technologie du cloud computing mobile pour ce type d’applications,


permet de minimiser les limites de traitement médical traditionnel. En effet, les
professionnels de santé disposent d’un accès mobile et instantané aux informations de leurs
patients. Ainsi, ils bénéficient de nouvelles solutions pour diagnostiquer et bien réagir aux
situations d'urgences et aux problèmes de santé. Cependant, certains défis restent à relever,
tels que l’utilisation de terminaux mobiles au sein des hôpitaux qui pose des problèmes de
sécurité avec le système de communication interne ou avec certains appareils complexes…

Conclusion
Nous avons présenté dans ce chapitre le concept du "cloud computing" et le
fonctionnement de cette technologie. Par la suite, nous avons étudié les technologies de
grilles de calcul et des services Web ainsi que leurs rapports avec l’informatique en nuage.
Enfin, nous avons parlé du cloud computing mobile en mettant l’accent sur ces défis et
solutions. Dans le suivant chapitre, nous présentons les plateformes cloud des différents
types de services (PaaS, IaaS et SaaS).
36
Chapitre 2

Les plateformes du Cloud Computing

Introduction

De nos jours, on parle de plus en plus du Cloud Computing, tant pour les solutions de
type Plateforme as a Service, Infrastructure as a Service ou Software as a Service.
Au cours de chapitre nous étudierons en détails les différentes plateformes proposées par
les grands acteurs de l’informatique en nuages. Ainsi, nous présentons une étude
comparative des principales plateformes et offres SaaS.

2.1 Etude des principales plateformes Cloud


Les principales plateformes des grands acteurs du Cloud Computing sont :
Google App Engine de Google, Windows Azure de Microsoft, Amazon Web Services
d’Amazon, Force.com de Salesforce, OpenNebula, Eucalyptus et OpenStack. Dans cette
partie, nous détaillons le fonctionnement de chacune d’elles.

2.1.1 Plateforme Google App Engine (GAE)

Google a été un des pionniers dans le domaine du PaaS avec son fameux Google App
Engine sorti en Avril 2008. Cette plate-forme de développement et d'hébergement
d'applications dans le Cloud, permet de générer des applications sans avoir à gérer
l'infrastructure correspondante [Google2].

Les avantages de la plateforme App Engine sont nombreux. Citons quelques-


uns [Google3] :

 Le démarrage simple et rapide : Après avoir écrit le code de l’application, il suffit de


le tester sur un ordinateur local, puis le déployer dans les Datacenters de Google à l’aide
d'un simple clic. De ce fait, l’utilisateur n’a plus besoin de se soucier des problèmes

37
Chapitre 2. Les plateformes du Cloud Computing

d'administration système et de mises à jour, c’est plutôt Google qui s’occupe de gérer la
montée en charge de l’application.

 L’évolutivité automatique : La fonctionnalité d'évolutivité automatique est


directement intégrée à Google App Engine. Ceci permet à l’utilisateur de profiter des
mêmes technologies évolutives que celles utilisées pour développer les applications
Google (Gmail, Google doc, Google drive…).

 La fiabilité et la sécurité : Les applications App Engine bénéficient des mêmes règles
de sécurité, de confidentialité et de protection des données que celles appliquées aux
applications développées par Google.

 L’hébergement économique : Le déploiement et l'hébergement d'une application sur


GAE est gratuit dans la limite de certains quotas (bande passante, CPU utilisé…).
Au-delà de ce quota, il est nécessaire d'activer le système de facturation pour acheter
des services supplémentaires. Le tableau 2.1 indique les quotas gratuits et payants pour
chaque ressource :

Ressource Quota gratuit par jour Maximum du Quota


payant par jour

Nombre de requêtes 1.300.000 43.000.000

Temps CPU 6.5 heures 1729 heures

Nombre d’appels à la base 10.000.000 140.000.000


de données

Taille de données 1 GB Pas de maximum

Tableau 2.1 - Quotas globaux du Google App Engine [Google4]

 La période d’essai sans risques : Grâce à la plateforme App Engine, il est possible de
créer un compte et publier une application prête à l'emploi sans frais, ni obligations.

En résumé, les gros avantages d’une application AppEngine sont la scalabilité automatique
et les quotas gratuits généreux.

38
Chapitre 2. Les plateformes du Cloud Computing

Google App Engine prend en charge deux environnements d’application, Java et


Python: l’environnement d'exécution Java est compatible avec de nombreux
environnements logiciels Java tels que NetBeans, Eclipse… Ainsi, les applications
35
App Engine peuvent être écrites en Java ou dans tout langage compatible JVM (par
36 37
exemple JRuby , Groovy, Scala , etc.).
L’environnement d'exécution Python, inclut un interpréteur et une bibliothèque Python
standard. Il ne prend en charge que la version Python 2.5.

Google App Engine permet de gérer l'ensemble des applications déployées grâce à une
console d’administration. Parmi les fonctions disponibles dans cette console on notera :

 Le tableau de bord (Dashboard): il permet aux développeurs d'évaluer et de


surveiller en toute simplicité le système App Engine : il mesure les performances de
tous les principaux composants d’App Engine, à savoir du magasin de données,
de l'infrastructure de service, du cache mémoire, de l'authentification utilisateur, de la
manipulation des images et de l'infrastructure de messagerie. Les informations fournies
sont instantanées et indiquent, pour les dernières 24 heures, la quantité de ressources
consommées à la seconde.

La figure 2.3 montre le tableau de bord de la plateforme App Engine.

Figure 12.1 - Tableau de bord de Google App Engine

35
JVM : c’est la machine virtuelle Java qui permet d’exécuter des programmes compilés sous forme de bytecode Java.
Elle assure l'indépendance du matériel et du système d'exploitation lors de l'exécution des applications Java
36
http://jruby.org/
37
http://www.scala-lang.org/
39
Chapitre 2. Les plateformes du Cloud Computing

La console d’administration de la plateforme App Engine est constituée de plusieurs


éléments, notamment :
 Logs : cette rubrique permet l’affichage des erreurs de l’application
 Datastore Viewer : il permet de voir le contenu de la base de données.
 Application Settings : cette fonctionnalité assure le paramétrage de l’application
 Permissions : elle permet de gérer les permissions sur l’application.
 Version : Ce menu assure la gestion des différentes versions de l’application.
 Cron jobs : le Cron jobs permet de configurer des tâches planifiées qui s'exécutent à
des heures définies ou à des intervalles réguliers. Ces tâches sont automatiquement
déclenchées par ce service.
On peut utiliser le service Cron jobs, par exemple, pour l’envoi des e-mails de rapport
quotidien, pour mettre certaines informations à jour… Pour notre cas, le Cron jobs
déclenche la méthode d’analyse des flux des caméras IP permettant le comptage de
personnes ainsi que l’envoi des statistiques de comptage à la base de données.

Les contraintes techniques de la plateforme App Engine sont illustrées dans le tableau 2.2.

Restriction Quantité

Taille d’une requête 10 Mo

Taille d’une réponse 10 Mo

Durée d’une requête 30 secondes

Nombre total de fichier, au maximum (fichiers d’applications 3000


et fichiers statiques)

Taille maximale d’un fichier d’application 10 Mo

Taille maximale d’un fichier statique 10 Mo

Taille maximale du total des fichiers d’application et des 150 Mo


fichiers statiques

Tableau 2.2 - Les limites de la plateforme Google App Engine [Google5]

40
Chapitre 2. Les plateformes du Cloud Computing

Fonctionnement de la plateforme App Engine :

Comme l’indique la figure 2.4, les utilisateurs interagissent avec une application Web
(Python ou Java) via un site web ou un service web. L’application communique avec la
base de données Google BigTable en utilisant le langage GQL. Des traitements en arrière-
plan peuvent également se dérouler.

Figure 28 - Fonctionnement de Google App Engine [MOCHE-SAMSON, 2009]

2.1.2 Plateforme Windows Azure de Microsoft

Microsoft a fait le pari du succès de l'informatique en nuage en publiant la plateforme


PaaS Windows Azure. Cette plateforme permet aux développeurs d’héberger et intégrer
des applications dans les centres de données globales de Microsoft. Elle offre également
plusieurs avantages tels que [Microsoft2] :

 La mise en place d’une structure de coûts prévisibles


 Le support de plusieurs langages de programmation
 La possibilité d’interconnecter des services de type « Cloud » avec des applications
existantes.
 L’élasticité : les services d'hébergement traditionnels fournissent un nombre déterminé
de ressources, ce qui permet aux utilisateurs d’avoir une capacité de réponse limitée
lorsque leur utilisation change. En revanche, l’utilisation de la plateforme Azure permet
d’adapter la consommation de ressources informatiques aux besoins réels.

41
Chapitre 2. Les plateformes du Cloud Computing

 La réduction des coûts : la plateforme Azure permet aux éditeurs de logiciels


d’exécuter des applications et de stocker des données, avec une facturation basée
uniquement sur les ressources utilisées.
 La facilité de déploiement : le déploiement d’applications peut se faire en seulement
quelques clics et sans aucun code source.
 La simplicité : le développeur n'a plus à investir dans l'installation de l'application et des
machines, ni même des licences annuelles pour un nombre de postes prédéfinis.
L’application sera facturée d'un service d'utilisation au volume traité.

Néanmoins, les limites de la plateforme Azure consistent à la scalabilité manuelle et


l’absence de session.

L’offre actuelle de Microsoft permet d’obtenir gratuitement 90 jours de ressources


comprenant [Microsoft3] :
 Le calcul : 750 heures d'une petite instance de calcul
 Le stockage : 20 Go avec 50 000 transactions de stockage
 Les transferts de données : Données sortantes : 20 Go ; données entrantes : illimité
 La base de données relationnelle : 1 Go de base de données SQL Azure Web Edition
 Le contrôle d'accès : 100 000 transactions

Windows Azure offre un portail d’administration permettant de superviser et


d’administrer les différents services de la plateforme. Comme l’indique la figure 2.5, ce
portail comporte les sections suivantes :

 Ruban : il affiche les actions possibles selon l'élément sélectionné


 Navigation : permet d'accéder aux différents types de fonctionnalités du portail.
Les boutons de navigation principaux se trouvent dans la partie inférieure du volet.
Les sous-zones de chaque bouton de navigation principal sont répertoriées dans la partie
supérieure du volet.
 Liste d'éléments : affiche les regroupements hiérarchiques des éléments selon le
bouton de navigation sélectionné.
 Volet des propriétés : affiche les propriétés associées à l'élément sélectionné.

42
Chapitre 2. Les plateformes du Cloud Computing

Figure 2.3 - Portail de gestion de la plateforme Windows Azure [ROUSSET, 2010]

La plateforme Azure propose aussi un ensemble de services destinés à être utilisés


individuellement ou de manière combinée par les développeurs d’applications. Ces
services sont : Windows Azure, SQL Azure, .NET services, Live Services et AppFabric.

 Windows Azure : C’est le principal composant de la plateforme Azure. Il s’agit d’un


système d’exploitation, installé sur les serveurs de Microsoft, permettant de fournir un
ensemble de services tels que le stockage de données, l’exécution des applications,
l’hébergement et la répartition de la charge CPU entre les serveurs.

 SQL Azure : C’est la version Cloud du SGBD 38 Microsoft SQL Server. Il permet de
stocker les données de l'application dans une base de données relationnelle.
D’un point de vue infrastructure, SQL Azure offre la puissance et la haute disponibilité
d’un cluster SQL Server sans la complexité de mise en place et d’administration.

 .NET services : La possibilité d’héberger des applications et des données est la


condition nécessaire mais pas suffisante pour proposer une offre de cloud computing.
Une offre de services vient donc compléter l’offre d’hébergement : .Net Services.
Ces services permettent de rendre plus facile le développement d’applications dans le
cloud, en proposant différentes fonctionnalités telles que la gestion du contrôle d’accès
et la connectivité entre des briques applicatives.

38
SGBD : Système de gestion de base de données
43
Chapitre 2. Les plateformes du Cloud Computing

 Live Services : Ces services sont considérés comme une couche logicielle de haut
niveau permettant de manipuler les différents éléments intervenant dans l’utilisation
d’une application : les utilisateurs et les données qui y sont associées (identités,
contacts, amis, périphériques, documents, photos, fichiers, etc.)

 Windows Azure AppFabric : Il permet aux développeurs de connecter des


applications et des services dans le cloud. Cela inclut les applications fonctionnant sur
Windows Azure, Windows Server et un certain nombre d’autres plates-formes,
y compris Java, Ruby, PHP.

2.1.3 Plateforme Amazon Web Services (AWS)

Amazon a lancé depuis 2002 un ensemble d’outils et de services permettant de créer et


d’héberger des applications Web. Parmi ces services on peut noter 2 services principaux :
Amazon EC2 et Amazon S3.

 Amazon EC2 ( Elastic Computing Cloud )

C’est un service web qui fournit une capacité de calcul redimensionnable dans le nuage.
Il est conçu pour permettre aux développeurs de louer des instances de serveurs,
c’est à-dire des machines virtuelles sur lesquelles ils peuvent installer n’importe quel
logiciel comme MySQL Enterprise, Oracle Database 11g, Hadoop, Apache HTTP ou IBM
WebSphere… [Amazon2]

Amazon propose différents types d’instances appelés AMIs39 qui peuvent offrir à
l’utilisateur plus ou moins de mémoire, de puissance de calcul et d’espace disque.
En fonction de leurs besoins, les clients instancient autant de machines virtuelles que
nécessaire.

Amazon EC2 offre à l’utilisateur plusieurs avantages, notamment :

 La possibilité de créer ses propres AMIs, répondant à ses besoins et selon ses standards
 La fourniture de services supplémentaires tels que le VPC (Virtual Private Cloud).
 L’élasticité : lorsque les demandes de calcul changent de manière inattendue, le service
Amazon peut y répondre de manière instantanée. Ceci permet aux développeurs de
contrôler le nombre de ressources utilisées à tout moment.

39
AMIs (Amazon Machine Images) : ce sont des instances préconfigurées par Amazon
44
Chapitre 2. Les plateformes du Cloud Computing

 Contrôle total : l’utilisateur dispose d'un contrôle total de ses instances, il a accès à la
racine de chacune d'elles et peut interagir avec elles comme il le fait avec n'importe
quelle machine.
 Réduction des coûts : Jusqu'à maintenant, les petits développeurs n'avaient pas les
fonds nécessaires pour obtenir de grandes capacités de calcul. Amazon EC2 permet à
tous les développeurs de profiter des avantages d'Amazon sans avoir besoin d'effectuer
de grands investissements.
 Fiabilité : Amazon EC2 propose un environnement hautement fiable, où les instances
de remplacement peuvent être rapidement mises en service de façon prévisible.
 Rapidité : Amazon réduit le temps requis pour obtenir et démarrer de nouvelles
instances de serveurs à quelques minutes.

Cependant, les limites de ce service sont multiples, citons :


 Le prix flou
 Les fortes contraintes architecturales pour le développement d’applications web
scalables (par exemple : gestion de la session inter AMIs).

L'interface du service Web Amazon EC2 (figure 2.6) permet d'obtenir et de configurer
des capacités avec un minimum d'efforts. Elle fournit également un contrôle complet de
ressources informatiques et permet d'exécuter l’application sur l'environnement
informatique d'Amazon.

Figure 2.4 - Portail d'administration AMAZON EC2 [DOUGLAS, 2009]


45
Chapitre 2. Les plateformes du Cloud Computing

 Amazon S3 (Simple Storage)

C’est un service web de stockage en ligne, conçu pour faciliter l'accès aux ressources
informatiques. Il permet aux développeurs d'accéder à la même infrastructure hautement
évolutive, fiable et peu coûteuse qu'Amazon utilise pour faire fonctionner son propre
réseau mondial de sites [Amazon3].

Parmi les atouts du service Amazon S3, on cite :

 La simplicité : Amazon permet de faire une abstraction totale de la couche physique.


De ce fait, l’utilisateur ne s’occupe plus des serveurs, de leur maintenance, des
problématiques liées à l’emplacement géographique ou à l’espace disque.

 La sécurité des données : le service Amazon supporte plusieurs mécanismes de


contrôle d'accès et de cryptage de données, afin de garantir un transit et un stockage
sécurisé.

 La durabilité et fiabilité des données : Amazon offre une infrastructure de stockage


durable, pensée pour le stockage de données d’une manière redondante sur plusieurs
sites. Contrairement aux systèmes classiques qui requièrent de lourdes opérations de
vérification et de réparation manuelles, Amazon S3 effectue des vérifications régulières
et systématiques de l'intégrité des données.

 Le paiement à l’utilisation : Amazon fournit un niveau d'utilisation gratuit qui inclut


5 Go de stockage, 20 000 demandes "Get" et 2 000 demandes "Put". Au-delà de ce
quota, les utilisateurs payent seulement pour les ressources qu’ils utilisent et il n'y a pas
de contrat à long-terme ou d'engagements à l'avance [Amazon4].

Comme indique la figure 2.7, Amazon offre une simple interface de services Web qui
permet de stocker et d'extraire des données de n'importe quelle taille. Ces données sont
stockées dans des conteneurs appelés buckets40 et sont accessibles au travers d'un
ensemble de services Web (création, suppression, visualisation, sauvegarde,
restauration…).

40
Bucket : c’est un espace de stockage sur Amazon S3
46
Chapitre 2. Les plateformes du Cloud Computing

Figure 2.5 - Interface d'administration pour AMAZON S3 [SOFT32]

2.1.4 Plateforme Force.com de Salesforce

Force.com est une plateforme de développement d’applications web, lancée en


Septembre 2005. Elle supporte les différentes étapes de l'élaboration d'une application, soit
le développement, les tests, le déploiement, ainsi que la maintenance [Salesforce2].
Les applications construites sur cette plateforme peuvent être facilement partagées,
échangées et installées en quelques clics via le marché en ligne de Salesforce.

Force.com propose également un ensemble de fonctionnalités pour créer tout type


d’applications professionnelles :

 Un système d’exploitation à la demande,


 La possibilité de créer n’importe quelle base de données à la demande,
 Un moteur de workflow 41 pour gérer les échanges entre utilisateurs,
 Le langage de programmation Apex Code pour créer des systèmes complexes,
 Les services Web API de pour la programmation,
 Un environnement pour créer des interfaces graphiques sur mesure.

Les avantages fournis par la plateforme sont nombreux, citons quelques-uns :

41
Workflow : c’est est la représentation d'une suite de tâches ou opérations effectuées par une personne
47
Chapitre 2. Les plateformes du Cloud Computing

 La sécurité optimale : Force.com assure la protection des données clients à plusieurs


niveaux : sécurité physique, cryptage des données, authentification des utilisateurs et
sécurité des applications.
 L’évolutivité : la plate-forme s'est adaptée avec succès à l'augmentation de la base de
clients de salesforce.com. Aujourd'hui, elle prend en charge 77 300 clients, 100 000
applications personnalisées et plus de dix milliards de transactions par trimestre
[Salesforce3].
 Disponibilité des données : Force.com offre une récupération des données transparente
en cas de problème.

2.1.5 Plateforme OpenNebula

OpenNebula est une plateforme open-source, permettant de construire n'importe quel


type de nuage (privé, public et hybride). Elle a été créée en tant que projet de recherche en
2005 et son premier lancement public a eu lieu en mars 2008.
Cette solution gère le stockage, le réseau et les technologies de virtualisation afin de
permettre la mise en place dynamique de services multi-niveaux (des groupes de machines
virtuelles interconnectées) sur les infrastructures distribuées.

Parmi les avantages d’OpenNebula on peut citer :


 la construction et la gestion de centres de données virtualisés et des nuages IaaS
 Le haut niveau de personnalisation du cloud
 La possibilité d’avoir des informations sur la localisation des machines physiques et
virtuelles.

En contrepartie, les contraintes que présente cette plateforme sont les suivantes :

 Utilisation par défaut du protocole NFS 42 qui n’est pas sécurisé.


 Nécessité d’une grande maîtrise de la part de l’administrateur.

L’interface d’administration de cette plateforme est représentée dans la figure 2.8. Elle
permet aux développeurs et aux utilisateurs la gestion des ressources physiques et
virtuelles.

42
NFS (Network File System) : c’est un protocole qui permet à un ordinateur d’accéder à des fichiers via un réseau
48
Chapitre 2. Les plateformes du Cloud Computing

Figure 2.6 - Portail d'administration de la plateforme IAAS OPENNEBULA [OPENNEBULA]

La plateforme OpenNebula est largement utilisée dans de nombreux secteurs, tels que
les industries d’hébergement de sites Internet, de télécommunications ou de
l’e-Government.

2.1.6 Plateforme Eucalyptus

C’est une plateforme IaaS permettant de créer des solutions de type cloud privé ou
hybride [Eucalyptus]. Elle offre à l’utilisateur la possibilité de :

 Créer, lancer, et arrêter des instances de serveurs (ou machines virtuelles) en fonction de
ses besoins.
 Mettre en place des machines virtuelles isolées physiquement (qui ne s'exécutent pas
sur le même serveur physique). Comme cela en cas de panne, il sera possible de
restaurer les instances endommagées et d'assurer une continuité de service.
 Gérer le stockage des données traitées par les machines virtuelles du cloud.
 Configurer de multiples grappes de serveurs comme un seul nuage.
 S’interfacer avec le cloud d’Amazon EC2

Comme l’indique la figure 2.9, la plateforme Eucalyptus fournit une interface Web
permettant aux utilisateurs d’effectuer des opérations en libre-service.

49
Chapitre 2. Les plateformes du Cloud Computing

Figure 2.7 - Tableau de bord de la plateforme EUCALYPTUS [EUCALYPTUS]

2.1.7 Plateforme OpenStack

C’est une plateforme open-source qui permet la construction de cloud privé et public
[Rackspace]. Elle a été lancée en Mars 2010 et se caractérise par :

 La scalabilité: cette solution est déjà déployée à travers le monde dans des sociétés dont
les volumétries de données se mesure en pétabytes sur des architectures distribuées et
évolutives.
 La compatibilité : OpenStack supporte la plupart des solutions de virtualisation du
marché.
 L’évolutivité : OpenStack est une technologie Open Source, le code est donc
modifiable et adaptable en fonction des besoins des utilisateurs.

La plateforme est composée de trois modules :


 OpenStack Compute : Il permet la gestion des machines virtuelles ;
 OpenStack Object Storage : Il sert à la création d’espace de stockage redondant
et scalable pour le stockage de données à grande échelle ;
 OpenStack Image Service : Il fournit des services de stockage, de découvertes,
d’enregistrements et de distributions pour les images disques de machines
virtuelles.

50
Chapitre 2. Les plateformes du Cloud Computing

OpenStack offre également de nombreux avantages. L’utilisateur aura la possibilité de :


 Contrôler et automatiser les pools de ressources
 Optimiser l’allocation de ressources
 Garantir la conformité

Cette plateforme offre aussi un portail d’administration dont les utilisateurs et les
administrateurs se servent pour contrôler les ressources allouées. La figure 2.11
montre le tableau de bord d’OpenStack.

Figure 2.8 - Tableau de bord d'OPENSTACK [OPENSTACK]

2.2 Etude comparative des différentes plateformes


Dans cette partie, nous réalisons une étude comparative entre les différentes plateformes
cloud étudiées dans la section précédente. La première partie se focalise sur les plateformes
PaaS. La deuxième partie traite les différentes plateformes IaaS. La troisième partie est
consacrée à la comparaison des offres SaaS.

2.2.1 Comparatif des principales offres de Plateforme as a Service (PaaS)

Le tableau 2.3 illustre les différences entre les principales plateformes PaaS et ceci en
se basant sur les critères suivants : Fournisseur, outils de développement, langages
supportés, système de stockage de données, date de lancement et interaction avec les autres
plateformes ou services.

51
Chapitre 2. Les plateformes du Cloud Computing

Plateforme Azure Google AppEngine Amazon Web


Services (AWS)

Fournisseur Microsoft Google Amazon

Outils de -Microsoft Visual - Eclipse - Eclipse


développement Studio - Google Plugin for - AWS Toolkit for
- SDK Azure Eclipse Eclipse
Services - Django
- Apache Ant

Langage supportés - .Net (C#, C++, - Java - J2EE


VB.Net, Delphi …) - Python - .Net
- PHP - PHP (Via Java) - PHP
- Java - Python
- D’autres langages
- Python, Ruby - Ruby …
vont être supportés
- Perl (A venir) à l’avenir

Système de - Stockage de - Stockage des Base de données :


stockage de fichiers, tables fichiers avec - SQL Server
données simples, fichiers sur Google File System - MySQL
l’Azure Storage - Base de données - Oracle …
- Stockage de appelée Google Fichiers :
données structurées Big Table Sur le disque dur ou
sur SQL services sur le service
Amazon S3

- Google Wave
Exemples - Hotmail - New York Times
- Best Buy
d’application - Xbox Live - Autodesk
- 3Scale
développée sur la - Bing - Rackspace
- Caucho
plateforme - Live Mesh… - Harvard Medical
Technology School

52
Chapitre 2. Les plateformes du Cloud Computing

Date de lancement - Version bêta en - Avril 2008 pour la -Version bêta en


Octobre 2008 version Python Août 2006
-Version - Avril 2009 pour la - Version
commerciale fin version Java commerciale sortie
2009 en Octobre 2008

Interaction avec - Interopérabilité -Migration possible


les autres entre Azure et des applications
plateformes ou Google App Engine Zoho sur Google
services App Engine.
- Intégration avec
Salesforce

Tableau 2.3 - Etude comparative des principales plateformes PaaS

Chacune de ses plateformes présentent des avantages ainsi que des inconvénients.
Windows Azure supporte plusieurs langages de programmation et offre une base de
données relationnelle. Cependant, il est limité à deux instances de serveurs sur la version
bêta. La plateforme App Engine offre des mécanismes de scalabilité et d’élasticité
transparents pour le développeur et peut servir 400 à 500 requêtes par secondes.
Néanmoins, la durée d’une requête est limitée à 30 secondes, le système de fichiers est en
lecture seule, le choix des langages de programmation est limité et l’accès aux bases de
données relationnelles est impossible.

Amazon Web Services fournit aussi des mécanismes d’agilité et d’élasticité instantanée
et offre des tarifs bas sans abonnements et sans frais à avancer, mais aucune version
gratuite n’est disponible pour l’utilisateur.

2.2.2 Comparatif des principales offres d’infrastructure as a Service (IaaS)

Notre étude des plateformes IaaS nous a permis d’élaborer un comparatif des trois
solutions (GoGrid, OpenStack et AWS), présenté dans le tableau 2.4. La comparaison est
basée sur les critères suivants : Fournisseur, Serveur type, Systèmes d’exploitation
supportés, logiciels inclus, tarification et date de lancement.

53
Chapitre 2. Les plateformes du Cloud Computing

GoGrid OpenStack Amazon Web Services

Fournisseur ServePath Rackspace et NASA Amazon

- 1 Go de RAM - Serveur avec 2 Go - 1.7 Go de RAM


Serveur type
- Processeur mono- de RAM - 160 Go d’espace
cœur à 3 GHz - 80 Go d’espace disque
disque - Processeur Xeon
1.2 GHz (1cœur)

- Windows Server - CentOS - Windows Server


Systèmes
2003 et 2008 - Gentoo 2003
d’exploitation
- RedHat Linux - Debian - RedHat Linux
supportés
- CentOS - Fedora - Fedora
- Ubuntu - Gentoo
- RedHat - Debian
- Ubuntu
- Suse

- IIS7 - PHP - SQL Server ou


Logiciels inclus
- SQL Server - Apache MySQL
- PHP - MySQL - IIS 6 ou Apache
- Apache - IBM DB2
- MySQL - IBM IDS
- Oracle

Service de stockage Service de Tarification pour les


Tarification
de données : sauvegarde : instances EC2 :
0.15$ par Go 0.15$ par Go * 0,12 $ par heure
stockés et par mois sauvegardés et par pour l’usage
mois Windows
* 0.095 $ par heure
54
Chapitre 2. Les plateformes du Cloud Computing

Pour l’usage
Linux / Unix

Date de Mars 2008 Février 2008 - Version bêta sortie


lancement en Août 2006
- Version
commerciale sortie
en Octobre 2008

Tableau 2.4 - Etude comparative des plateformes IaaS

Ces différentes plateformes présentent plusieurs atouts et limites :

GoGrid utilise des technologies et des protocoles standards. Leurs services permettent
aux clients de déployer rapidement et facilement des serveurs Windows ou Linux en ne
payant que pour la RAM déployées et le transfert des données utilisées. Cependant, cette
plateforme elle est limitée à 2 instances de serveurs sur la version bêta.

La plateforme Rackspace offre des tarifs moins chers et fournit une capacité de serveurs
importante. Néanmoins, ces serveurs sont situés uniquement aux États-Unis et au
Royaume-Uni et ne supportent pas le système d’exploitation Windows Server.

Amazon Web Services est doté d’une infrastructure importante, ce qui permet de
réduire les risques des pannes et diminue la latence réseau. En contrepartie, la plateforme
présente des contraintes architecturales pour le développement d’application web scalable

2.2.3 Comparatif des principales offres de Software as a Service (SaaS)

Dans le tableau 2.5, nous présentons une étude comparative des principales offres
SaaS : Google Apps, Microsoft Office 365 et SalesCloud. La comparaison est basée sur les
critères suivants : Fournisseur, type de paiement, tarif et caractéristiques principales.

55
Chapitre 2. Les plateformes du Cloud Computing

Fournisseur Google Microsoft Salesforce.com

Type de Abonnement annuel Abonnement Abonnement


paiement par utilisateur mensuel par mensuel par
utilisateur utilisateur

Tarif - 40 € pour la version De 5,25 à 22 € De 4 à 270 €


complète
- Version standard
gratuite

Caractéristiques Accès à des - Plate-forme - Mise à


principales applications multiples applicative : disposition des
- Gmail (messagerie) - Microsoft outils de gestion
- Google Documents Exchange de la relation
(partage de documents) (Messagerie) Client (CRM)
- Google Agenda - Microsoft - Automatisation
- Google Cloud SharePoint des forces de
Connect (interface avec (Partage de vente et gestion de
les produits Microsoft documents) contacts.
Office) - Microsoft Office

- Réduction des coûts (Logiciels


informatiques bureautiques)
- Favorise le travail - Offres modulables

collaboratif et calculées selon


les besoins précis
de l'entreprise
- Maîtrise des coûts

Tableau 2.5 - Etude comparative des offres SaaS

56
Chapitre 2. Les plateformes du Cloud Computing

D’après ce tableau comparatif, nous déduisons que les solutions de type « SaaS »
présentent des similitudes et des différences.
Les points communs sont multiples, citons :

 La simplicité d’utilisation de l’application ;


 L’accès direct à l’application depuis n’importe où dans le monde ;
 Les fonctionnalités limitées de l’application (par exemple SalesCloud offre uniquement
des outils de gestion de la relation Client, de même, Microsoft Office 365 fournit que
les logiciels bureautiques)

Les différences sont au niveau :

 Des tarifs proposés


 Du type de paiement (Abonnement mensuel, annuel …)
 Des versions offertes pour chaque solution SaaS (exemple Google offre une version
standard gratuite et une version payante pour son produit, par contre, Salesforce offre
uniquement une version payante de son offre Sales Cloud).

Conclusion
Nous avons présenté dans ce chapitre une description détaillée des différentes
plateformes du computing cloud. Ainsi, nous avons exposé une étude comparative des
principales solutions de marché (offres PaaS, IaaS et SaaS). Notre choix s’est fixé sur la
plateforme Google App Engine pour plusieurs raisons que nous détaillerons dans la partie
réalisation. Dans le prochain chapitre nous présentons une étude de cas d’un outil d’aide à
la décision d’analyse de flux des caméras IP.

57
Chapitre 3

Etude préliminaire

Introduction
L’étude préliminaire est la première étape de notre processus de développement. Elle
survient à la suite d’une décision de démarrage du projet, et consiste à effectuer un premier
repérage des besoins fonctionnels et opérationnels. Au cours de ce chapitre nous établirons
un recueil initial des besoins fonctionnels et opérationnels. Nous identifierons ensuite les
entités externes qui interagissent directement avec le système. Nous représenterons
finalement l’ensemble de ces interactions sur le modèle de contexte dynamique.

3.2.3 Présentation du projet


L’analyse des flux vidéo est une tâche intéressante qu’il est nécessaire de mesurer et de
maîtriser pour le secteur Marketing. Elle permet aux responsables de :
- Suivre en temps réel l'évolution du nombre de clients ou de visiteurs ;
- Mesurer les variations de fréquentation sur une zone donnée (lieu public, centre
commercial…) ;
- Analyser les performances des opérations marketing réalisées ;
- Suivre l'impact d'une publicité ;
- Prendre des décisions finement corrélées aux faits ;
- Améliorer la qualité de service à la clientèle.

Plusieurs technologies sont disponibles dans le domaine d’analyse des flux vidéo.
Cependant, elles ne sont pas toutes adaptées aux environnements extérieurs et certaines
sont simplement ni fiables ni efficaces. Les technologies récentes dans ce domaine
consistent aux systèmes électroniques basés sur les capteurs de mouvement. Ils permettent
la détection de personnes et la collecte des données sur le nombre de passagers, cependant,
ils présentent certaines limites et inconvénients :

58
Chapitre 3. Etude préliminaire

- Ils sont coûteux et représentent un investissement important. ;


- L’installation de ces systèmes est souvent complexe ;
- La zone de détection des capteurs est limitée.

D’autre part, la réalisation d’applications mobiles pour l’analyse des flux vidéo est
difficile. En effet, les appareils mobiles ont une capacité de traitement et de stockage
limitée, ce qui les empêchent de supporter des applications de ce genre.

La solution que nous proposons est la réalisation d’un outil d’aide à la décision pour
l’analyse des flux des caméras IP. Cet outil sera basé sur la technologie du Cloud
Computing qui consiste à déporter sur des serveurs distants des traitements informatiques
complexes et des quantités de données importantes.

Notre projet consiste donc à concevoir et réaliser une application mobile hébergée via la
technologie « Cloud Computing » permettant l’analyse des flux des caméras IP, et ceci afin
d’élaborer des statistiques sur le nombre de personnes qui passent devant les panneaux
publicitaires. Les fonctionnalités offertes par le futur système seront donc:
- La gestion des caméras IP (Ajout, modification, Suppression et visualisation).
- La collection des données sur le nombre de personnes.

Les autres domaines d’applications du notre projet sont multiples, citons les lieux
commerciaux, les lieux publics et le secteur de transport:

 Les lieux commerciaux :

Dans un centre commercial, l’analyse de flux de caméra IP est essentielle car elle offre
plusieurs fonctionnalités pour les responsables marketing, et notamment :
- La mesure de l'impact des actions promotionnelles ;
- Le calcul de l'efficacité commerciale en comparant les visites et les ventes ;
- La comparaison des performances de différents sites.

 Les lieux publics :

Les exploitants de lieux publics ou organisateurs d’événements sont tenus de ne pas


dépasser le nombre de visiteurs autorisés. L’analyse de flux des caméras IP permet de
surveiller en permanence le nombre de personnes présentes dans une salle et, par exemple,
d’ouvrir si nécessaire des espaces supplémentaires pour accueillir les visiteurs en surplus.

59
Chapitre 3. Etude préliminaire

 Le secteur de transport :

L’analyse des flux pour le secteur de transport est une préoccupation importante : les
opérateurs de transport cherchent une information de comptage fiable et précise pour
pouvoir planifier et gérer de la manière la plus adéquate les ressources humaines,
financières et matérielles.

3.2 Méthodologie de développement


Après une première étude, nous avons choisi un certain nombre de technologies-clés
pour l’élaboration de ce projet. Ces technologies sont principalement le langage de
modélisation UML et le processus de développement 2TUP [ROQUES, 2003].

3.2.1 UML (Unified Modeling Language)

Avant de se lancer dans la programmation et l’écriture du code, il est nécessaire


d’organiser les idées, les documenter, puis organiser la réalisation en définissant les
modules et les étapes. Cette démarche s’appelle la modélisation, elle a été standardisée en
produisant un langage de modélisation unifié appelé UML.

Pour modéliser les fonctionnalités que doit offrir notre système, nous avons choisi ce
langage de modélisation graphique et textuel, il est destiné à comprendre et décrire des
besoins, spécifier et documenter des systèmes, concevoir des solutions et communiquer des
points de vue [ROQUES, 2002].

UML unifie les notations nécessaires aux différentes activités d’un processus de
développement et offre, par ce biais, le moyen d’établir le suivi des décisions prises, depuis
la définition des besoins jusqu’au codage.

Le choix d’UML est justifié par les raisons suivantes:


 C’est un langage formel et normalisé, qui encourage l'utilisation d'outils et assure le
gain de précision et le gage de stabilité ;
 C’est un support de communication performant qui facilite la compréhension de
représentations abstraites complexes.

3.2.2 Processus de développement 2 TUP

La famille des « Unified Process » constitue une trame commune pour intégrer les
meilleures pratiques de développement. Un processus UP est itératif et incrémental, centré

60
Chapitre 3. Etude préliminaire

sur l’architecture, conduit par les exigences des utilisateurs, piloté par les risques et orienté
composants.

Le processus de développement logiciel 2TUP « 2 Track Unified Process » [ROQUES,


2003] se situe dans cette lignée, en insistant sur la non-corrélation initiale des aspects
fonctionnel et technique. Les deux branches d’étude fusionnent ensuite pour la conception
du système, ce qui donne la forme d’un processus de développement en Y.

Comme l’indique la figure 3.1, le processus 2TUP s'articule autour de 3 phases


essentielles :

Figure 3.1 - Le processus de développement en Y [ROQUES, 2003]

 La branche gauche (fonctionnelle) comporte:

- La capture des besoins fonctionnels, qui produit un modèle des besoins focalisé sur le
métier des utilisateurs. Elle qualifie au plus tôt le risque de produire un système
inadapté aux utilisateurs ;

- L’analyse, qui consiste à étudier précisément la spécification fonctionnelle de manière à


obtenir une idée de ce que va réaliser le système en termes de métier.

 La branche droite (technique) comporte:

- La capture des besoins techniques, qui recense toutes les contraintes et les choix
dimensionnant la conception du système ;

61
Chapitre 3. Etude préliminaire

- La conception générique, qui définit les composants nécessaires à la construction de


l’architecture technique.

L’architecture technique construit le squelette du système informatique et écarte la


plupart des risques de niveau technique.

 La branche du milieu comporte:

- La conception préliminaire, qui représente une étape délicate, car elle intègre le modèle
d'analyse fonctionnelle dans l'architecture technique de manière à tracer la cartographie
des composants du système à développer ;
- La conception détaillée, qui étudie ensuite comment réaliser chaque composant ;
- L’étape de codage, qui produit ces composants et teste au fur et à mesure les unités de
codes réalisés ;
- L’étape de recette, qui consiste enfin à valider les fonctions du système développé.

Nous avons choisi la méthode de développement 2TUP car elle s’appuie sur UML tout
au long du cycle de développement, et elle apporte une réponse aux contraintes de
changement continuel imposées aux systèmes d’information de l’entreprise :

- Changement de technologies : une entreprise qui maintiendrait son modèle fonctionnel


peut le réaliser sous différentes technologies : il suffit de greffer une nouvelle
architecture technique pour mettre à jour un système existant.
- Ajout de fonctionnalités : on peut réutiliser une architecture technique.

3.3 Recueil des besoins fonctionnels


Nous désignons par les besoins fonctionnels les différentes fonctionnalités qui seront
assurées par le système et qui seront offertes à l’utilisateur final.
Le futur système doit offrir aux utilisateurs les fonctions suivantes :

- Obtenir des statistiques précises sur le nombre de passagers.


- Consulter les statistiques de n’importe où et à tout moment.
- Gérer l’ensemble des caméras installées à différents endroits.
- Afficher la vidéo de la caméra en temps réel.
- Exploiter localement les données quotidiennes de comptage afin d’établir des analyses
marketing.

62
Chapitre 3. Etude préliminaire

3.4 Recueil des besoins opérationnels


Après avoir détaillé les besoins fonctionnels de l’application, il est intéressant de se
baser sur certains critères afin de répondre aux besoins opérationnels. Ces besoins peuvent
être décrits comme suit :

- L’ergonomie : Les interfaces Homme/Machine constituent un élément important dans la


réussite d’une application. Cette contribution est d’autant plus importante lorsqu’il
s’agit d’une application mobile. En effet, les interfaces doivent être simples afin de
permettre aux utilisateurs de se concentrer sur les principales fonctionnalités. Ainsi, le
nombre de boutons doit être minimum afin de permettre une navigation plus simple.
Les aspects ergonomiques43 que doit offrir notre applications sont nombreuses, citons :
 Les ActionBar : ce composant remplace les menus disponibles dans les anciennes
versions d’Android et permet à l’utilisateur d’accéder facilement aux fonctionnalités les
plus importantes de l’application.
 Les Fragments : ils ont pour objectif de permettre une plus grande flexibilité pour les
écrans larges tels que les tablettes tactiles ou les Smartphones.
 ListView avec choix multiple : ce composant permet le choix de plusieurs menus
simultanément

- La performance : Vu que notre application sera déployée dans le Cloud, le temps de


réponse des requêtes envoyées au prestataire de service doit être réduit .
- La sécurité : le système doit assurer un accès privilégié (chaque utilisateur n’accède à
l’application qu’après une authentification), la confidentialité et l’intégrité des données
stockées dans la base.

- L’extensibilité : dans le développement des différents modules de cette application, il


faut tenir compte de la possibilité de son extension par l’ajout de nouvelles
fonctionnalités.

3.5 Identification des acteurs


Un acteur est une entité externe qui interagit avec le système par l’envoi et la réception
de messages sous forme d’échange de données.

Les acteurs du système MADS Cloud 44 sont :

43
http://developer.android.com/design/index.html
44
MADS Cloud : Mobile Application of Decision Support Cloud
63
Chapitre 3. Etude préliminaire

- Le responsable Marketing : c’est un acteur principal, il a accès à toutes les


fonctionnalités du système.
- Le Serveur mail : c’est un acteur secondaire, il vérifie l’existence du mail lors de
l’inscription de l’utilisateur. Ainsi, il permet d’envoyer un nouveau mot de passe si
l’utilisateur a perdu ou oublié son ancien mot de passe.
- Le Serveur de la caméra IP : c’est un acteur secondaire, il se charge d’envoyer le flux
vidéo de la caméra au système.

3.6 Modélisation du contexte


Le modèle de contexte sert à représenter les interactions entre le domaine d'étude et
l’environnement, et entre le domaine d'étude et les éventuels domaines connexes.

3.6.1 Modélisation du contexte dynamique

Un acteur doit consulter et/ou modifier directement l’état du système, il doit


communiquer directement avec le système par émission et réception de messages.
Tous les messages peuvent être représentés de façon synthétique sur un diagramme que
l’on peut qualifier de diagramme de contexte dynamique.

La figure 3.2 représente le diagramme de contexte dynamique du notre système.

Figure 3.2 - Diagramme de contexte dynamique du système

64
Chapitre 3. Etude préliminaire

Le tableau ci-dessous montre une description détaillée des messages échangés avec le
système :

Message Entrées Sorties

L’utilisateur s’identifie en Le système autorise l’accès


1
introduisant son mail et son mot de
passe

- Demande d’ajout, modification ou - Le système enregistre les


suppression des caméras mises à jour effectuées
2
- Demande de visualisation des - Le système envoie le flux
caméras vidéo en temps réel

L’utilisateur demande d’afficher les Le système affiche les données


3
statistiques sur le nombre de
passagers

- L’utilisateur demande de créer un - Le système lui crée un


nouveau compte nouveau profil
4
- L’utilisateur demande de modifier - Le système enregistre les
ses données personnelles modifications

Le système demande au serveur mail Le serveur de messagerie


de vérifier l’existence de l’adresse effectue la vérification et
5
mail saisie par l’utilisateur lors du renvoie la réponse au système
création de son compte

Le système demande au serveur mail Le serveur de messagerie


6
de récupérer le mot de passe oublié renvoie à l’utilisateur un mot de
par l’utilisateur passe aléatoire

Le système demande d’afficher le Le serveur de la Caméra IP


7 flux vidéo de la caméra en temps renvoie le flux vidéo
réel

Tableau 3.1 - Description du diagramme de contexte dynamique

65
Chapitre 3. Etude préliminaire

3.6.2 Modélisation du contexte statique

On peut compléter le modèle de contexte dynamique par l’étude du contexte statique.


Ce dernier spécifie le nombre d’instances d’acteurs reliées au système à un moment donné.

La figure 3.3 montre le diagramme de contexte statique du système MADS Cloud.

Figure 3.3 - Diagramme de contexte statistique du système

Conclusion
Dans ce chapitre, nous avons effectué un premier repérage des besoins fonctionnels et
opérationnels de l’application. Dans le chapitre suivant, nous entamons la partie capture
des besoins qui permet de préciser le contexte du système.

66
Chapitre 4

Capture des besoins

Introduction
Après une première étude préliminaire du système, on entamera la capture des besoins.
Cette phase a pour objectif d’aboutir à un engagement mutuel entre le développeur et le
client. Elle est identifiée par la description des besoins fonctionnels qui présentent les
différentes fonctions du système, les besoins opérationnels qui présentent les contraintes
que le système doit vérifier, et les besoins techniques qui permettent d’assurer la
correspondance entre les cas d'utilisation et les contraintes techniques existantes.

4.1 Capture des besoins fonctionnels


La capture des besoins fonctionnels est la première étape de la branche gauche du cycle
en Y. Elle formalise et détaille ce qui a été ébauché au cours de l’étude préliminaire.

La figure 4.1 montre la phase de capture des besoins fonctionnels dans le processus de
développement 2TUP.

Figure 4.1 - Situation de la capture des besoins fonctionnelles dans 2TUP [ROQUES, 2003]

67
Chapitre 4. Capture des besoins

4.1.1 Identification des cas d’utilisation

Les cas d’utilisations permettent de structurer les besoins des utilisateurs à travers un
système sans présenter les solutions d’implémentation. Ils donnent une vue claire et filtrée
sur les acteurs et leur interaction avec le système.

Le tableau 4.1 fournit une description détaillée des cas d’utilisation.

Acteur Cas d’utilisation Description

L’utilisateur doit s’authentifier afin


- Responsable S’authentifier
d’accéder aux différentes fonctionnalités du
Marketing
système.
- Serveur Mail

Gérer compte Ce cas d’utilisation permet à l’utilisateur de


- Responsable
créer un nouveau compte ou de modifier ses
Marketing
données personnelles
- Serveur Mail

Gérer caméra L’utilisateur peut gérer l’ensemble de ses


- Responsable
caméras (Visualisation, Ajout, modification
Marketing
et suppression).
- Serveur Caméra

Ce cas d’utilisation permet d’afficher les


Responsable Consulter
données de comptage sous forme d’un
Marketing statistiques
graphique (courbe, histogramme, cercle)

Tableau 4.1 - Description des cas d’utilisation

4.1.1.1 Diagramme de cas d’utilisation global initial

Le modèle de cas d’utilisation global permet de donner une vision globale du


comportement fonctionnel du système. La figure 4.2 représente le diagramme de cas
d’utilisation global initial.

68
Chapitre 4. Capture des besoins

Figure 4.2 - Digramme de cas d'utilisation global initial

4.1.1.2 Affectation des priorités aux cas d’utilisations

Notre application permet de manipuler une diversification d’opérations. Ceci nous mène
à affecter des priorités pour la classification des différents cas d’utilisation selon leurs
degrés d’importance dans le système.

Le tableau 4.2 représente la priorité associée à chaque cas d’utilisation.

Cas d’utilisation Priorité

Gérer caméra 1

Consulter statistiques 1

Gérer Compte 2

S’authentifier 3

Tableau 4.2 - Tableau de priorités

Index :
1 : Pour le cas d’utilisation le plus prioritaire.
2 : Pour le cas d’utilisation moyennement prioritaire
3 : Pour le cas d’utilisation le moins prioritaire
69
Chapitre 4. Capture des besoins

4.1.1.3 Raffinement des cas d’utilisations

Pour décomposer le système, nous avons recours au raffinement ayant pour objectif de
détailler les scénarios identifiés précédemment et d’illustrer les relations entre les cas
d’utilisation. Dans ce qui suit, nous élaborons les diagrammes de cas d'utilisation raffinés.

a. Raffinement du cas d’utilisation « Gérer Caméra »

Le cas d’utilisation « Gérer Caméra » comprend les fonctionnalités :

- Visualiser caméra
- Ajouter caméra
- Modifier caméra
- Supprimer caméra

La figure 4.3 représente le raffinement du cas d’utilisation « Gérer Caméra »

Figure 4.3 - Raffinement du cas d'utilisation « Gérer Caméra »

Dans le tableau 4.3 nous présentons la description textuelle du cas d’utilisation


« Visualiser Caméra »

70
Chapitre 4. Capture des besoins

Cas d’utilisation Visualiser Caméra

Résumé Ce cas d'utilisation permet à l’utilisateur de visualiser


l’ensemble de ses caméras

Acteurs Responsable Marketing

Serveur de la caméra

Pré condition Utilisateur identifié et autorisé

Post condition La vidéo s’affiche sur l’écran

Scénario principal 1. L’utilisateur sélectionne une ou plusieurs caméras


2. Il choisit l’option de visualisation
3. Le système demande le flux vidéo du serveur de la
caméra
4. Le serveur renvoie le flux
5. Le système affiche la vidéo à l’utilisateur

exceptions Si le serveur de la caméra est en panne, le système


affiche un message d’erreur.

Tableau 4.3 - Description du cas d’utilisation « Visualiser Caméra »

Le tableau 4.4 représente la description textuelle du cas d’utilisation « Ajouter Caméra »

Cas d’utilisation Ajouter Caméra

Résumé Ce cas d'utilisation permet à l’utilisateur d’ajouter une


nouvelle caméra au système.

Acteur Responsable Marketing

Pré condition Utilisateur authentifié

Post condition La caméra est ajoutée avec succès

Scénario principal 1. L’utilisateur saisit les données de la caméra (adresse


IP, nom, login, mot de passe, numéro de port et

71
Chapitre 4. Capture des besoins
localisation) puis confirme sa saisie
2. Le système vérifie la saisie et l’existence de la caméra
3. Si les données sont valides et la caméra n’existe pas,
le système enregistre l’opération d’ajout
4. Le système affiche un message de succès

exceptions Si la caméra existe dans le système, une erreur est


générée.

Tableau 4.4 - Description du cas d’utilisation « Ajouter Caméra »

b. Raffinement du cas d’utilisation « Consulter statistiques »

La figure 4.4 ci-dessous indique le raffinement du cas d’utilisation « consulter


statistiques »

Figure 4.4 - Raffinement du cas d'utilisation « Consulter Statistiques »

72
Chapitre 4. Capture des besoins

Le tableau 4.5 décrit le cas d’utilisation « Consulter Statistiques »

Cas d’utilisation Consulter Statistiques

Résumé Ce cas d’utilisation permet à l’utilisateur d’obtenir des


statistiques sur le nombre de passagers.

Acteur Responsable Marketing

Pré condition Utilisateur identifié

Post condition Affichage des statistiques de comptage

Scénario principal 1. L’utilisateur sélectionne le type de graphique à


visualiser (Histogramme, courbe, cercle) puis détermine
l’adresse IP de la caméra.

2. Il choisit le type de statistiques (par jour, par mois ou


par année) et sélectionne la date
3. Si la date choisie est valide, le système affiche les
données.

exceptions Si la date sélectionnée est invalide, le système affiche


un message d’erreur

Tableau 4.5 - Description du cas d’utilisation « Consulter statistiques »

c. Raffinement du cas d’utilisation « Gérer Compte »

Le cas d’utilisation « Gérer Compte » comprend les fonctionnalités Créer Compte


et Modifier Compte.

La figure 4.5 représente le raffinement du cas d’utilisation « Gérer compte »

73
Chapitre 4. Capture des besoins

Figure 4.5 - Raffinement du cas d'utilisation « Gérer Compte»

Le tableau ci-dessous indique la description textuelle du cas d’utilisation « Créer Compte »

Cas d’utilisation Créer compte

Résumé Ce cas d’utilisation permet à l’utilisateur de créer un


nouveau compte afin de pouvoir connecter au système

Acteur Responsable Marketing

Serveur mail

Pré condition L’utilisateur n’a pas de compte

Post condition Création d’un nouveau compte

Scénario principal 1. L’utilisateur introduit ses données (Nom, E-mail, sexe)


puis valide l’opération
2. Le système contrôle la saisie et vérifie l’existence du
mail avec le serveur mail
3. Si les données sont valides et le mail existe dans le
serveur de messagerie, un mot de passe sera envoyé à
l’adresse mail de l’utilisateur et le nouveau compte sera

74
Chapitre 4. Capture des besoins
créé.

exceptions Si les données saisies sont erronées ou le mail n’existe


pas, le système affiche un message d’erreur

Tableau 4.6 - Description du cas d’utilisation « Créer Compte »

d. Raffinement du cas d’utilisation « S’authentifier »

La figure ci-dessous montre le raffinement du cas d’utilisation « S’authentifier »

Figure 4.6 - Raffinement du cas d'utilisation « S'Authentifier »

Le tableau 4.7 représente une description textuelle du cas d’utilisation « S’authentifier »

Cas d’utilisation S’authentifier

Résumé Ce cas d'utilisation permet à l’utilisateur de s'authentifier


auprès du système

Acteur Responsable Marketing

Pré condition L’utilisateur n’est pas connecté au système

Post condition L’utilisateur est identifié


Affichage du menu principal

Scénario principal 1. L’utilisateur saisit les paramètres d’authentification

75
Chapitre 4. Capture des besoins
(mail et mot de passe) et confirme sa saisie
2. Les informations seront envoyées au système.
3. Le système vérifie la validité des informations saisies
4. Si les données sont valides, l’utilisateur sera connecté
au système.

exceptions Si les données saisies sont erronées, le système affiche


un message d’erreur

Tableau 4.7 - Description du cas d’utilisation « S’authentifier»

4.1.2 Diagramme de paquetage

Un paquetage étant un conteneur logique permettant de regrouper et d'organiser les


éléments dans le modèle UML. Les classes regroupées dans un package partagent les
mêmes spécificités.

Le diagramme de paquetage sert à représenter les dépendances entre paquetages, c’est-à


dire les dépendances entre un ensemble de définitions.

La figure 4.7 représente le diagramme de package de notre application.

Figure 4.7 - Digramme de package de l'application

76
Chapitre 4. Capture des besoins

4.2 Capture des besoins techniques


La spécification technique est une activité de la branche droite du cycle en Y ; elle est
primordiale pour la conception d’architecture. Cette étape a lieu lorsque les architectes ont
obtenu suffisamment d’informations sur les prérequis techniques. Ils doivent a priori
connaître au moins le matériel, à savoir les machines et réseaux, les progiciels à intégrer, et
les outils retenus pour le développement.

La figure 4.8 indique la situation de la capture des besoins techniques dans 2TUP.

Figure 4.8 - Situation de la capture des besoins techniques dans 2TUP

4.2.1 Configuration matérielle du système

Les choix des prérequis techniques impliquent des contraintes relatives à la


configuration du réseau matériel, les performances d’accès aux données, l’intégration des
applications, la volumétrie et la sécurité du système.

La configuration matérielle de notre système est schématisée par un diagramme de


déploiement (figure 4.9) qui décrit la structure physique du système en montrant la
répartition des fonctions sur les différents nœuds de calcul du réseau.

77
Chapitre 4. Capture des besoins

Figure 4.9 - Digramme de déploiement du système MADS Cloud

Comme l’indique la figure, le système est équipé des éléments suivants :

 Un appareil mobile supportant Android OS : ce nœud comporte le niveau


présentation. Il permet à l’utilisateur d’interagir avec l’application.
 Le serveur Google App Engine : il comporte le niveau traitement et le niveau des
données: il intègre la logique métier et comporte l’enregistrement des données de
l’application.
 Le serveur mail : Son rôle consiste à vérifier l’existence de l’adresse mail lors de
l’inscription de l’utilisateur. Ainsi, il permet d’envoyer un nouveau mot de passe si
l’utisateur a oublié ou perdu son ancien mot de passe.
 Le serveur de la caméra IP : il se charge d’envoyer le flux vidéo des caméras au
système MADS Cloud.

4.2.2 Spécification d’architecture

Notre application doit permettre l'extensibilité du système par l’ajout de nouvelles


fonctionnalités. Pour assurer c, nous avons opté à l’architecture orientée service : c’est une
architecture distribuée fondée sur la description et l’interaction de services. Elle représente
la solution la plus adaptée à notre système car elle offre :

78
Chapitre 4. Capture des besoins

 Une répartition des tâches entre les acteurs du système ;


 L’interopérabilité : c’est la gestion de l'intégration entre les applications de plateformes
différentes ;
 La réutilisation permettant le partage de modules entre les applications ;
 L’agilité : c’est la facilité de modification ;
 L’évolutivité permettant aux applications de greffer de nouveaux modules ;
 La pérennité impliquant le support des technologies existantes et à venir.

Nous avons choisi également les services Web REST (REpresentational State Transfer).
Les principales motivations pour ce choix sont:

 L'indépendance vis à vis du langage de programmation ;


L'indépendance vis à vis de la plateforme sur laquelle ils sont déployés ;
 La simplicité d'implémentation car la couche transport n'a pas besoin d'être redéfinie et
il n'est plus nécessaire de créer un dictionnaire de données comme on le fait avec
SOAP ;
 L'utilisation de multiples formats pour l'échange de données (XML, JSON, HTML).

La figure 4.10 décrit l’architecture technique de notre application.

Figure 4.10 - Architecture technique du système


79
Chapitre 4. Capture des besoins

Comme l’indique la figure, l’utilisateur accède à l’application via son appareil mobile
qui est connecté à Internet à travers un réseau Wi-Fi45 ou bien à travers un réseau
téléphonique (Réseau 3G, GPRS, EDGE…). Les demandes de service sont envoyées au
nuage informatique qui se charge de traiter les requêtes et allouer les ressources
nécessaires.

Le serveur de la caméra IP intervient lorsque l’utilisateur demande de visualiser les


caméras en temps réel.

Le serveur de messagerie permet de vérifier l’adresse mail de l’utilisateur lors de son


inscription, ainsi il assure l’envoi d’un nouveau mot de passe si l’utilisateur a perdu ou
oublié son ancien mot de passe.

Conclusion
Dans ce chapitre, nous avons présenté dans une première partie les besoins fonctionnels
ébauchée durant l’étude préliminaire. En second lieu, nous avons présenté la spécification
technique de l’application, et ceci par la modélisation de la configuration matérielle du
système et l’architecture technique de l’application.

45
Wi-Fi (Wireless Fidelity) : C’est une norme du réseau sans fils.
80
Chapitre 5

Analyse et Conception

Introduction
Après avoir défini les objectifs de notre application et après avoir détaillé par des
diagrammes de cas d’utilisation les différentes fonctionnalités désirées, nous passerons à
l’analyse et la conception de la solution. Cette phase est cruciale dans le cycle de
développement du projet. Dans le présent chapitre, nous présentons une vue dynamique du
système par la modélisation des diagrammes de séquence, et une vue statique par la
modélisation de diagramme de classe de base de données.

5.1 Analyse des cas d’utilisation


L'analyse permet de structurer les besoins et les exigences de telle sorte que leur
compréhension, leur préparation, leur modification, leur réutilisation en soient facilité.

Une « réalisation-analyse » d’un cas d’utilisation décrit la façon dont le cas d’utilisation
est réalisé en termes de classes d’analyse.

Le tableau 5.1 ci-dessous décrit les trois types de classes d’analyse.

Classe Stéréotype Rôle

Elles permettent l’interaction entre


Les classes de dialogues l’IHM et les utilisateurs. Ces
« boundary » classes sont directement issues de
l’analyse de maquette.

Ces classes modélisent la


Les classes de contrôles cinématique de l’application. Elles
« control » font la jonction entre les dialogues
et les classes métiers en permettant
aux différentes vues de
81
Chapitre 5. Analyse et Conception
l’application de manipuler les
informations détenues par un ou
plusieurs objets métier.

Ces classes sont généralement


persistantes, elles proviennent
Les classes entités directement du modèle du domaine
« Entity » et permettent à des données et des
relations d’être stockées dans des
fichiers ou des bases de données.

Tableau 5.1 - Description des classes d’analyse [AUDIBERT, 2009]

Au cours de cette section, nous analysons les cas d’utilisations suivants : Visualiser
caméra, Consulter statistiques et S’authentifier. Cette analyse consiste à réaliser la
traçabilité entre le modèle du cas d’utilisation et le modèle d’analyse, ainsi que
l’élaboration du diagramme de collaboration.

5.1.1 Analyse du cas d’utilisation « Visualiser Caméra »

 Traçabilité entre le modèle du cas d’utilisation et le modèle d’analyse pour le cas


d’utilisation « Visualiser Caméra »

82
Chapitre 5. Analyse et Conception

Figure 5.1- Traçabilité du cas d'utilisation « Visualiser Caméra »

 Diagramme de collaboration

Pour les diagrammes de collaborations qui suivent on va supposer que l’utilisateur va


s’authentifier afin d’effectuer son choix à partir des menus qui lui sont offert.

Figure 5.2 - Diagramme de collaboration pour le CU « Visualiser Caméra »

83
Chapitre 5. Analyse et Conception

5.1.2 Analyse du cas d’utilisation « Consulter Statistiques »


 Traçabilité entre le modèle du cas d’utilisation et le modèle d’analyse pour le cas
d’utilisation « Consulter Statistiques »

Figure 5.3 - Traçabilité du cas d'utilisation « Consulter Statistiques »

 Diagramme de collaboration

Figure 5.4- Digramme de collaboration pour le CU « Consulter Statistiques »

84
Chapitre 5. Analyse et Conception

5.1.3 Analyse du cas d’utilisation « S’authentifier »


 Traçabilité entre le modèle de cas d’utilisation et le modèle d’analyse pour le cas
d’utilisation « S’authentifier

Figure 5.5 - Traçabilité du cas d'utilisation « S'Authentifier »

 Diagramme de collaboration

Figure 5.6 – Diagramme de collaboration « S’Authentifier»

5.2 Conception des cas d’utilisation


La phase de conception consiste à organiser le système et à lui donner une forme et une
architecture. C´est au cours de cette étape que le projet commence à se concrétiser.

85
Chapitre 5. Analyse et Conception

Au cours de cette activité, nous allons concevoir les cas d'utilisations déjà analysés.
D’abord, nous réalisons la traçabilité entre le modèle d'analyse et le modèle de conception,
Ensuite, nous élaborons le diagramme de classe de conception. Enfin, nous présentons le
diagramme de séquence.

5.2.1 Conception du cas d’utilisation « Visualiser Caméra »

 Traçabilité entre le modèle d'analyse et le modèle de conception pour le cas


d’utilisation « Visualiser Caméra »

Figure 5.7 - Traçabilité Analyse-Conception du cas d'utilisation « Visualiser Caméra »

 Diagramme de classe de conception

Figure 5.8 - Diagramme de classe de conception pour le cas d'utilisation « Visualiser Caméra »

86
Chapitre 5. Analyse et Conception

 Diagramme de séquence

Figure 5.9 - Diagramme de séquence du cas d'utilisation « Visualiser Caméra »

La figure 5.9 présente les étapes de l’affichage de flux vidéo des caméras IP. Tout
d’abord, l’utilisateur doit s’authentifier au système. Une fois identifié, il choisit le menu
Camera Management et l’option de visualisation. Ensuite, il sélectionne le(s) caméra(s) à
visualiser. Si le nombre des caméras cochées ne dépasse pas quatre, le flux vidéo sera
affiché à l’écran, sinon un message d’erreur est apparu.
87
Chapitre 5. Analyse et Conception

5.2.2 Conception du cas d’utilisation « Consulter statistiques »

 Traçabilité entre le modèle d'analyse et le modèle de conception pour le cas


d’utilisation « Consulter Statistiques »

Figure 5.10 - Traçabilité analyse-conception du cas d'utilisation « Consulter Statistiques »

 Diagramme de classe de conception

Figure 5.11 - Digramme de classe de conception pour le cas d'utilisation « Consulter Statistiques »

88
Chapitre 5. Analyse et Conception

 Diagramme de séquence

Figure 5.12 - Digramme de séquence du cas d'utilisation « Consulter Statistiques »

La figure 5.13 illustre le scénario d’affichage des statistiques. Après authentification,


l’utilisateur choisit le menu Statistics. Ensuite, il sélectionne le type de graphique, l’adresse
IP de la caméra et la date des statistiques. Après vérification, si la date choisie est valide
les statistiques seront affichées, sinon un message d’erreur est apparu.
89
Chapitre 5. Analyse et Conception

5.2.3 Conception du cas d’utilisation « S’authentifier »

 Traçabilité entre le modèle d'analyse et le modèle de conception

Figure 5.13 - Traçabilité analyse-conception du cas d'utilisation « S'Authentifier »

 Diagramme de classe de conception

Figure 5.14 - Diagramme de classe de conception pour le cas d'utilisation « S'Authentifier »

90
Chapitre 5. Analyse et Conception

 Diagramme de séquence

Figure 5.15 - Diagramme de séquence du cas d'utilisation « S'Authentifier »

Avant l’accès à l’application, l’utilisateur doit s’authentifier avec la saisie de son mail et
mot de passe. Après vérification, si l’utilisateur est accepté, il aura accès au système et la
fenêtre du Menu principal s’affiche, sinon on aura un message d’erreur.

5.3 Diagramme de classe


Le diagramme de classe est un élément important dans une démarche de conception
orientée objet. Il représente les différentes entités intervenant dans le système et les
relations entre celles-ci.

Le diagramme de classe ci-dessous (figure 5.16) représente les classes mises en


évidence dans notre application.

91
Chapitre 5. Analyse et Conception

Figure 5.16 - Diagramme de classe de base de données

Conclusion
Dans ce chapitre, nous avons présenté la conception de l’application suivant le
processus de développement 2TUP et le langage de modélisation UML. Dans une première
partie, nous avons présenté l’étape d’analyse qui nous a permis de passer d’une
structuration fonctionnelle via les cas d’utilisations à une structuration objet via les classes.
Dans une deuxième partie, nous avons élaboré la conception de l’application d’un point de
vue statique et dynamique.

A partir de cette conception, nous allons entamer la partie réalisation qui fera l’objet du
chapitre suivant.

92
Chapitre 6

La Réalisation

Introduction

Après avoir achevé la phase de conception de l’application, nous allons entamer dans ce
chapitre la partie réalisation dans laquelle nous présentons les différentes technologies
utilisées, l’environnement de travail et quelques captures d’écran de l’application.

6.1 Technologies utilisées


Pour la réalisation de l’application, nous avons adopté les technologies suivantes :
le langage de programmation JAVA, la plateforme Android 4.0, la plateforme Google App
Engine et la technologie NoSQL.

6.1.1 Le langage de programmation JAVA

Java est un langage de programmation évolué et orienté objet. Ses caractéristiques ainsi
que la richesse de son écosystème lui ont permis d'être très largement utilisé pour le
développement d'applications d’entreprises et mobiles.

Notre choix du langage Java se justifie par plusieurs raisons, notamment :

 L’exploitation des possibilités offertes par Android OS ;


 La compatibilité avec la plateforme App Engine de Google ;
 La simplicité : La syntaxe de Java est une simplification de celle de C++ ;
 La fiabilité : Java a été conçu pour que les programmes qui l’utilisent soient fiables ;
 La programmation orienté objet : Java se concentre sur les objets et sur les interfaces
avec ces objets. Il offre aussi de nombreuses classes permettant de manipuler les objets
 La portabilité : Elle signifie qu’un programme écrit une seule fois fonctionnera sur
différentes plateformes sans nécessiter une modification de code ;

93
Chapitre 6. La Réalisation

 Langage interprété : un programme compilé n'est pas directement exécutable par le


système d'exploitation mais il doit être interprété par un autre programme, qu'on
appelle interpréteur.

6.1.2 La plateforme Android 4.0 (Ice Cream Sandwich)

Android est une couche logicielle pour les appareils mobiles qui inclut un système
d'exploitation, un middleware et des applications clés. Parmi les points forts de cette
technologie on peut citer le coté Open Source, l’intégration transparente avec les services
Google (Gmail, Maps...), la facilité de synchronisation …

Le choix de la version 4.0 de la plateforme Android se justifie par les raisons suivantes :

 Capacité à unifier le développement des interfaces Smartphone, tablette, télévision


connectée et système embarqué ;
 Navigation simple avec des gestes intuitives ;
 L’offre de nouvelles fonctionnalités tels que : le déverrouillage par reconnaissance
faciale, la suppression des boutons physiques, une interface graphique plus
ergonomique, un navigateur web plus performant… ;
 Le multitâche : Android permet d'ouvrir plusieurs logiciels simultanément.

Les nouvelles fonctionnalités d’Ice Cream Sandwich en font un sérieux prétendant sur
le marché mobile et tablette.

6.1.3 La plateforme Google App Engine (GAE)

Suite à une première étude des différentes plateformes cloud, nous avons choisi de
développer et déployer notre application sur la plateforme Google App Engine.
Ce choix est justifié par les raisons suivantes :

 Le support du langage Java de cette plateforme ;


 C’est la seule offre actuelle d’hébergement qui répond à notre besoin : pouvoir
déployer rapidement, facilement et presque gratuitement une application écrite en
Java ;
 GAE est un service qui permet le déploiement de l’application sur l’infrastructure de
Google qui s’occupera de gérer la montée en charge de cette application. Ceci est un
avantage par rapport à un serveur dédié ;

94
Chapitre 6. La Réalisation

 En utilisant cette plateforme, on n’a plus besoin de se soucier des problèmes


d'administration système tels que la sécurité, les mises à jour, les patches, les
sauvegardes … ;
 En plus d'être simple d'emploi, GAE nous offre un espace de stockage gratuit pouvant
atteindre 1Go. D’où une possibilité de démarrer un projet sans rien payer ;
 Google fournit un plugin pour Eclipse qui permet de créer le projet, de tester
l'application sur un environnement local puis la déployer sur la plateforme ;
 L’infrastructure de Google est réputée pour son haut degré de fiabilité ainsi que pour
l'excellent niveau de ses performances.

6.1.4 La technologie NoSQL (Not Only SQL)

Le NoSQL est une catégorie de bases de données qui se différencie du modèle


relationnel que l’on retrouve dans les SGBD connues tels que MS SQL Server, Oracle,
PostgresSQL… Cette technologie résout les problèmes de rapidité en lecture et en écriture
sur les données et élimine les goulots d’étranglement générés par les outils classiques.

Le NoSQL fait également le compromis d’abandonner certaines fonctionnalités


classiques des SGBD relationnels au profit de la simplicité, la performance et une forte
scalabilité.

La base de données qu’on va utiliser via la plateforme App Engine est une base NoSQL.
Elle est orientée colonne c’est-à-dire que sur chaque ligne on peut insérer un grand nombre
de colonnes et sur chaque colonne les données sont représentées par un couple clé -valeur.

Comme le montre la figure 6.1, dans une base de données relationnelle, une table est un
ensemble de données organisées en colonnes dont le nombre est fixe quel que soit le
nombre d’enregistrements. Contrairement au modèle orienté colonne dont le nombre de
colonnes peut varier pour chaque enregistrement.

95
Chapitre 6. La Réalisation

Figure 6.1 - Comparaison entre la BD Relationnelle et BD Orientée Colonne [F IGUIERE, 2010]

6.2 Environnement de travail


Avant de commencer la démarche de réalisation, il convient de présenter
l’environnement de travail d’un point de vue matériel et logiciel.

6.2.1 Environnement matériel

Cette application a été implémentée sur deux micro-ordinateurs ayant les


caractéristiques suivantes :

Ordinateur Caractéristiques

Marque : Dell inspiron N-5110


Processeur : Intel Core i5 2.40 GHz

Ordinateur 1 Mémoire vive : 4.00 Go


Disque dur : 500 Go
Système d’exploitation : Microsoft Windows 7 64 bits

Marque : Dell inspiron N-5110


Processeur : Intel Core i7 2.20 GHz
Ordinateur 2 Mémoire vive : 6.00 Go
Disque dur : 300 Go
Système d’exploitation : Microsoft Windows 7 64 bits

Tableau 6.1 - Description des matériels informatiques


96
Chapitre 6. La Réalisation

6.2.2 Environnement logiciel

Afin de concevoir et développer l’application, nous avons utilisé un ensemble de


logiciels et d’outils de développement :

6.2.2.1 Power AMC

C’est un environnement intégré d’analyse et de conception d’applications, permettant


d'effectuer les tâches suivante s :

- Modélisation intégrée via l'utilisation de méthodologies et de notation standard ;


- Génération automatique de code via des templates personnalisables (Java, SQL...) ;
- L’ajout des règles, des commandes, des concepts et des attributs à nos méthodologies de
modélisation et de codage ;
- Une solution de référentiel d'entreprise avec des fonctionnalités de sécurité et de
gestion des versions très complètes pour permettre un développement multiutilisateur ;
- Fourniture d’outils de modélisation professionnels qui associent les techniques et la
notation standard de modélisation de processus métiers, des données et d'applications
UML.

6.2.2.2 Eclipse IDE

Eclipse est un environnement de développement extensible, universel et polyvalent. Il a


été conçu pour le langage Java mais ses nombreux greffons en font un environnement de
développement pour des autres langages de programmation tels que C, C++, Python, PHP,
Ruby…
La spécificité d’Eclipse vient du fait que son architecture est totalement développée
autour de la notion de plug-in.

6.2.2.3 Java Development Kit 1.6 (JDK)

Le kit de développement, communément appelé JDK, est indispensable pour le


développement et l’exécution de notre application. Il comprend plusieurs outils nécessaires
pour développer et tester des programmes écrits en Java. Parmi ces outils on cite :
- Javac : le compilateur Java ;
- Javadoc : un générateur de documentation ;
- Jar : un outil de compression de classes Java.

97
Chapitre 6. La Réalisation

Notre choix s’est fixé sur la version 1.6 vu qu’elle est compatible avec la plateforme
Google App Engine.

6.2.2.4 Software Development Kit 4.0 (SDK)

C’est un ensemble complet d’outils de développement. Il permet de fournir les


bibliothèques d’API et les outils nécessaires pour construire, tester et déboguer des
applications Android.

6.2.2.5 Android Development Tools (ADT)

C’est un plug-in du logiciel Eclipse qui a été conçu afin de donner un environnement
puissant et intégré dans lequel on peut établir des applications Android.
ADT étend les fonctionnalités d’Eclipse pour nous laisser installer rapidement des
nouveaux projets Android, ajouter des paquets basés sur l'API 46 Android,
corriger nos applications en utilisant les outils d’Android SDK, exporter des APK47 afin
de distribuer notre application.

6.2.2.6 Plug-in Google App Engine

Avec le plug-in Google Pour Eclipse nous avons pu programmer notre application
App Engine Java. En effet, ce greffon permet de créer, tester et transférer des applications
App Engine à partir d'Eclipse. Il facilite également le développement à l’aide de Google
Web Toolkit GWT48 en vue de leur exécution dans App Engine ou dans d'autres
environnements. [Annexe A]

6.2.2.7 AChartEngine 1.0

C’est une bibliothèque graphique pour les applications Android. Elle permet de générer
plusieurs types de tracés notamment les graphiques en ligne, en aires, en anneau, à barres,
les chronogrammes, les diagrammes de dispersion…
Nous avons utilisé ce Framework pour la représentation graphique de données statistiques.

46
API (Application Programming Interface) : Interface de programmation indispensable à
l’interopérabilité entre les composants logiciels.
47
APK (Android Application Package) : Format de fichier utilisé pour distribuer et installer
l'application.
48
GWT (Google Web Toolkit) : c’est un ensemble d’outils logiciels développé par Google

98
Chapitre 6. La Réalisation

6.2.2.8 Objectify 3.1

Objectify est un Framework conçu spécialement pour la base de données de Google.


Il permet de simplifier la persistance des données et de leurs manipulations, ainsi, elle
rajoute une couche d'abstraction facilitant énormément les différentes interactions.

6.2.2.9 Restlet 2.0

C’est un Framework RESTful web pour Java. Il permet d'utiliser le style d'architecture
du Web REST et de bénéficier de sa simplicité et son évolutivité. Par ailleurs, il peut être
utilisé dans différents environnements d'exécution basés sur Java, côté client comme côté
serveur et s'intègre particulièrement dans les plateformes Cloud notamment Google App
Engine.

6.2.3.0 OpenCV

C’est une bibliothèque graphique libre, développé à la base par Intel et spécialisée dans
le traitement d’images et vidéos. On a utilisé ce Framework pour la détection et la
reconnaissance de formes des êtres humains. [Annexe B]

6.3 Déploiement de l’application sur Google App Engine


Après avoir installé l’environnement de développement, tout est prêt pour que nous
commencions à créer notre application App Engine.

Dans cette section, nous allons présenter les étapes de déploiement de notre application
MADS Cloud sur la plateforme Google App Engine.

6.3.1 Création du serveur App Engine

Pour créer le serveur App Engine, il suffit de connecter sur l’adresse


https://appengine.google.com/ à l’aide du compte Google. Une fois connecté, l’interface
intitulée « Create an application » est affichée (Figure 6.2).

- Le champ « Application Identifier » contient l’id de l’application à mettre dans le fichier


web.xml. L’URL complète de l’application sera http://application-id.appspot.com/

- Le champ « Application Title » contient le titre de l’application.

99
Chapitre 6. La Réalisation

Figure 6.2 - Création de l'application sur Google App Engine

Une fois l’application créée, nous allons accéder au tableau de bord contenant les
différents éléments de l’application (Figure 6.3)

Figure 6.3 - Tableau de bord de l'application

100
Chapitre 6. La Réalisation

6.3.2 Création de l’application Web

Pour créer une nouvelle application App Engine, nous allons utiliser le bouton et
accéder à la rubrique « New Web Application Project ».

Lorsque la fenêtre « Create a Web Application » s’ouvre, Nous allons :

- Donner un nom à notre premier projet : Dans notre cas « AdsCloud »


- Donner un nom au Package : Pour notre projet « com.riadi.ads »
- Cocher les cases « Use Google App Engine » et « Generate project sample code »
- Décocher la case « Use Google Web Toolkit »
- Cliquer sur le bouton Finish.

La figure 6.4 indique la création de l’application Web sur l’IDE Eclipse.

Figure 6.4 - Création de l’application Web sur Eclipse


101
Chapitre 6. La Réalisation

6.3.3 Configuration de l’application

Maintenant que nous avons créé notre projet App Engine, il faut configurer l’application
par le biais du fichier « appengineweb.xml » qui se trouve dans le dossier « war/WEB-
INF ». La configuration consiste à ajouter l’id de l’application créé précédemment entre les
balises <application> </application>

Le fichier appengineweb.xml de notre application est le suivant (Figure 6.5) :

Figure 6.5 - Fichier de configuration appengineweb.xml

6.3.4 Déploiement de l’application

Une fois terminée, nous allons déployer le projet sur la plateforme de Google (Figure 6.6)

Figure 6.6 - Déploiement de l’application sur Google App Engine


102
Chapitre 6. La Réalisation

6.4 Les principales interfaces graphiques


Nous essayerons dans cette partie de présenter quelques captures d’écran de
l’application afin d'illustrer les diverses fonctionnalités.

6.4.1 Interface Créer Compte

Cette fenêtre permet à l’utilisateur de créer un nouveau compte afin d’accéder aux
différentes fonctionnalités de l’application. Les données à introduire sont le nom, l’Email
et le sexe.

Figure 6.7 - Interface de création d’un nouveau compte

6.4.2 Interface de Mail reçu

Une fois le compte créé, un courrier électronique sera envoyé à l’utilisateur contenant
ses coordonnées (Email et Mot de passe). La Figure 6.8 représente le mail reçu.

Figure 6.8 - Interface représentant le mail reçu


103
Chapitre 6. La Réalisation

6.4.3 Interface d’authentification

À partir de cette interface, un utilisateur déjà inscrit pourra se connecter à l’application.


Il suffit d’entrer son mail et son mot de passe puis cliquer sur le bouton Log In

Figure 6.9 - Interface d'authentification

6.4.4 Interface Menu principal

La figure 6.11 montre le menu principal de notre application. A partir de cette interface,
l’utilisateur peut gérer l’ensemble de ses caméras, visualiser les statistiques ou modifier les
données de son profil.

104
Chapitre 6. La Réalisation

Figure 6.10 - Interface Menu Principal

6.4.5 Interface Visualiser Caméra

Cette fenêtre permet à l’utilisateur d’afficher le flux vidéo des caméras implantées sur
plusieurs sites distants.

Figure 6.11 - Interface Visualiser Caméra


105
Chapitre 6. La Réalisation

6.4.6 Interface Ajouter Caméra

Pour ajouter une nouvelle caméra au système, l’utilisateur doit renseigner les champs
suivants : adresse IP, Nom de la caméra, login, mot de passe, numéro de port et
localisation.

Figure 6.12 - Interface Ajouter Caméra

6.4.7 Interface Supprimer Caméra

L’utilisateur du système peut supprimer une ou plusieurs caméras via cette interface.
La figure 6.14 présente la fenêtre de suppression des caméras.

106
Chapitre 6. La Réalisation

Figure 6.13 - Interface Supprimer Caméra

6.4.8 Interfaces Consulter statistiques

Les interfaces ci-dessous montrent les statistiques sur le nombre de passagers, que ce
soit par jour ou par année.

Figure 6.14 - Interface consulter statistiques par jour

107
Chapitre 6. La Réalisation

Figure 6.15 - Interface consulter statistiques par année

6.4.9 Interface Modifier profil

Une fois authentifié, l'utilisateur peut accéder au système pour modifier ses données
personnelles (Nom, Mail, Mot de passe et sexe).

108
Chapitre 6. La Réalisation

Figure 6.16 - Interface modifier profil

6.5.0 Interface Récupérer mot de passe


En cas de perte ou d’oubli de mot de passe, l’utilisateur peut en demander un nouveau
en saisissant son adresse mail. La figure 6.18 montre l’interface de récupération de mot de
passe.

Figure 6.17 - Interface récupérer mot de passe

109
Chapitre 6. La Réalisation

6.5.1 Interface représentant le mail de récupération du mot de passe

Lorsque l’utilisateur valide l’opération de récupération du mot de passe, un nouveau


mot de passe lui sera envoyé instantanément. La figure 6.19 montre la réception du mail.

Figure 6.18 - Interface représentant le mail reçu de récupération du mot de passe

Conclusion
Ce chapitre a été consacré à la réalisation du projet. Au début nous avons décrit le
l’environnement logiciel et matériel de notre projet, puis nous avons présenté quelques
interfaces de la solution MADS Cloud. Et c’est par cette phase que nous clôturons notre
travail.

110
Conclusion générale

Durant ce projet, nous avons touché à plusieurs domaines : le Cloud Computing, les
grilles de calcul, les services Web et le Cloud Computing mobile. Dans la première partie
du mémoire, composée de deux chapitres, nous avons exposé le Cloud Computing et les
concepts clés liés à cette technologie, ainsi, nous avons détaillé les différentes plateformes
de l’informatique en nuage (PaaS, IaaS et SaaS). Dans la deuxième partie, nous avons
présenté la conception et la réalisation d’une application mobile d’analyse de flux des
caméras IP, déployé dans le nuage informatique via la plateforme Google App Engine.

Ce projet a été très enrichissant et bénéfique pour notre formation : il nous a offert
l’occasion de découvrir et de travailler avec une nouvelle technologie du cloud computing
et d’accroître nos compétences dans ce domaine en abordant plusieurs aspects techniques.
Ainsi, il nous a aidés à améliorer nos capacités d’adaptation aux différentes contraintes
rencontrées durant les différentes phases de développement. Ces contraintes peuvent être
résumées comme suit :

- Le manque de documentation au niveau des outils et des nouvelles technologies de


développement que nous avons utilisé ;
- La découverte de sources d’informations fiables : les technologies abordées sont assez
récentes, et l’inexistence de standard a rendu parfois difficile la découverte de
l’information fiable. Les concepts varient parfois d’un auteur à l’autre ;
- L’intégration de toutes ces nouvelles notions : notre travail nous a permis d’explorer un
champ assez large et les liens entre toutes les notions abordées n’ont pas toujours été
aisés à établir.

Le travail que nous avons réalisé peut être étendu de plusieurs manières. Nous
proposons comme améliorations que cette application ne se limite pas aux appareils
mobiles supportant Android OS, mais éventuellement avec tout type de terminaux mobile.
Ainsi, il est conseillé de prendre en considération la problématique de la sécurité au niveau
de l’application développée.

111
En conclusion, ce mémoire nous a permis de découvrir un domaine prometteur du
monde informatique, de le comprendre, de l’analyser. Dans un avenir proche, de nombreux
projets bénéficieront des opportunités nouvelles offertes par cette technologie.

112
Bibliographie

[MG, 2011] Peter Mell et Timothy Grance. The NIST Definition of Cloud
Computing : Recommendations of the National Institute of Standards and
Technology.Septembre 2011, NIST Special Publication 800-145
(Consulté le 01/02/2013)

[Kaskade,2009] Jim Kaskade. Definition of Cloud Computing - Again. 8 Novembre


2009. (Consulté le 01/02/2013)

[Cavazza,2011] Frédéric Cavazza. Définition et usages du cloud computing. 16 mars


2011. (Consulté le 01/02/2013)

[ScalesUp,2011] Scales Up. Le cloud computing. 1 décembre 2011. Web :


http://www.scalesup.com/ressources/post/2011/12/01/Le-cloud-
computing.aspx (Consulté le 02/02/2013)

[Direccte,2012] Direction régionale des entreprises, de la concurrence,


de la consommation du travail et de l’emploi. Le cloud computing une
nouvelle filière fortement structurante. Septembre 2012. (Consulté le
02/02/2013)

[Semel,2006] Terry Semel. The Next Yahoo: Defining the Future. 2006. Analyst Day
2006 (Consulté le 02/02/2013)

[Parisot,2011] Mathieu Parisot. Le cloud - les concepts de base. 13 Septembre 2011.


Web: http://blog.soat.fr/2011/09/le-cloud-13-les-concepts-de-base/
(Consulté le 03/02/2013)

[Microsoft1] Microsoft. Web: http://www.windowsazure.com/fr-fr/ (Consulté le


05/02/2013)

[Google] Google. Web: https://developers.google.com/appengine/?hl=fr

(Consulté le 06/02/2013)

[Salesforce] Salesforce. Web: http://www.force.com/ (Consulté le 07/02/2013)

[Amazon] Amazon. Web: http://aws.amazon.com/fr/ec2/ (Consulté le 07/02/2013)

113
Bibliographie

[Orange] Orange. Web: http://www.orange-business.com/fr

(Consulté le 09/02/2013)

[Talyana, 2012] Talyana C. Communauté francophone du cloud Computing In


the cloud. 31 Mai 2012. (Consulté le 10/02/2013)

[Oracle] Oracle. Web :


http://www.oracle.com/technetwork/systems/s3compatibility-
139866.html (Consulté le 10/02/2013)

[IBM] IBM. Web: http://www.ibm.com/cloud-computing/us/en/


(Consulté le 11/02/2013)

[Naugès, 2010] Louis Naugès. L’Europe face aux défis des infrastructures
Cloud Computing. 24 Mars 2010. (Consulté le 11/02/2013)

[Jcbrechard, 2012] Jcbrechard. Zappos.com victime du vol des données de 24


millions de clients. 8 Avril 2012. Actualité étrangère.
(Consulté le 15/02/2013)

[CNIL, 2012] Commission Nationale de l’informatique et des libertés.


Recommandations pour les entreprises qui envisagent de
souscrire à des services de Cloud computing. 2Juillet 2012.
(Consulté le 18/02/2013)

[Ben Aissi, 2010] Akram Ben Aissi. Historique des web services. 4 Juin 2010.
Web :http://akrambenaissi.wordpress.com/2010/06/04/historiq
ue-des-web-services/#more-52 (Consulté le 23/02/2013)

[W3C-WSA-Group,2004] Hugo Haas, Allen Brown. Web Services Architecture.


11 Février 2004. http://www.w3.org/TR/ws-gloss/

[IBM, 2010] IBM. 30 Septembre 2010. Web : http://pic.dhe.ibm.com/


(Consulté le 24/02/2013)

[SoftDeath, 2013] SoftDeath. Les services web. 8 Janvier 2013. Web:


http://www.siteduzero.com/informatique/tutoriels/les-services-
web/l-annuaire-des-services-uddi (Consulté le 24/02/2013)

[Beaulieu, 2009] Alain Beaulieu. Le nuage informatique: un concept nouveau.


20 Février 2009. (Consulté le 24/02/2013)

114
Bibliographie

[Foster, 2003] Ian Foster. Ian Foster Named 2003 Innovator of the Year. 10
Octobre 2003, (Consulté le 24/02/2013)

[PW, 2006] Pawel Plaszczak et Richard Wellner. Grid Computing: The Savvy
Manager's Guide. 2005. San Francisco: Morgan Kaufmann, 2006.
(Consulté le 25/02/2013)

[CERN] CERN.The Grid. October 2009. Geneva, Switzerland


Communication Group, CERN-Brochure-2009-008-Eng (Consulté le
27/02/2013)

[Leclere, 2009] Olivier Leclere. Maslintcho on the Cloud. 31 Août 2009. Web:
http://maslintchoonthecloud.blogspot.com/2009_08_01 archive.html
(Consulté le 28/02/2013)

[Soueid] Toni Soueid. Grilles de calcul : Etat de l’art. Juin 2003. 56 pages.
Travail de diplôme réalisé en vue de l'obtention du mémoire de
recherche, école nationale supérieure des télécommunications, 2003.
(Consulté le 28/02/2013)

[LR] Cantone Laurent et Unal Résoul. Le Grid Computing et son utilisation


dans les entreprises et les industries.2005.Travail de diplôme réalisé en
vue de l'obtention du mémoire de recherche, Université Claude
Bernard Lyon1, 2004-2005. (Consulté le 27/02/2013)

[AM] Frédéric Arlhac et Jérôme Mattera. Le Grid Computing.2004.


27 pages. Rapport de bibliographie, Université Claude Bernard Lyon,
2003-2004. (Consulté le 02/03/2013)

[DLNW, 2011] Hoang T. Dinh et Chonho Lee et Dusit Niyato et Ping Wang, A
Survey of Mobile Cloud Computing: Architecture, Applications, and
Approaches. Septembre 2011, (pp. 1-38). (Consulté le 02/03/2013)

[Claybrook, 2011] Bill Claybrook. Enterprises usher in mobile cloud computing.


Septembre 2011. SearchCloudComputing (Consulté le 04/03/2013)

[KKKM, 2012] Abdul Nasir Khan et M.L. Mat Kiah et Samee U. Khan et Sajjad A
Madani. Towards secure mobile cloud computing: A Survey. Août
2012, (pp. 1-22). Future Generation Computer Systems. (Consulté le
11/03/2013)

115
Bibliographie

[SelfGrowth] The online Self Improvement Community. Web:


http://www.selfgrowth.com/articles/how-mobile-cloud-
computing-benefits-development-and-usage-of-mobile-apps
(Consulté le 14/03/2013)

[Rouse, 2005] Margaret Rouse. m-commerce (mobile commerce), Septembre


2005. SearchMobileComputing. (Consulté le 15/03/2013)

[Raynal, 2012] Juliette Raynal, Les 3 dernières études à découvrir, 19


Novembre 2012. Le Magazine des professionnels FrenchWeb
(Consulté le 16/03/2013)

[MATI Montréal] MATI Montréal. Web :


http://www.matimtl.ca/recherches/projet.jsp?id=57 (Consulté
le 16/03/2013)

[Saba] Saba. http://www.saba.com/blogs/?p=2229 (Consulté le


17/03/2013)

[Bellefoy, 2012] Sandra Bellefoy, Tendance 2012: les applications médicales.


20 janvier 2012, pages 1-10. Web : http://www.synchro-
blogue.com/apps/suggestions-sympatico/iphoneipad-
suggestions-sympatico/tendance-2012-les-applications-
medicales/4/ (Consulté le 19/03/2013)

[Google2] Google Developers. Web: (Consulté le 23/03/2013)


http://support.google.com/a/bin/answer.py?hl=fr&answer=91
077

[Google3] Google Developers. 26 mars 2012. Web:


https://developers.google.com/appengine/whyappengine?hl=f
r. (Consulté le 23/03/2013)

[Google4] Google Developers.13 Février 2013. Web:


https://developers.google.com/appengine/docs/quotas
(Consulté le 23/03/2013)

[Google5] Google Developers. 26 mars 2012. Web :


https://developers.google.com/appengine/docs/python/runtim
e?hl=fr#Pure_Python (Consulté le 23/03/2013)

116
Bibliographie

[MOCHE-SAMSON, 2009] Aurélien MOCHE-SAMSON. Le Cloud Computing fondera-


t-il les architectures informatiques de demain. 2009. 55
pages. Travail réalisé en vue de l’obtention de Mastère de
recherche, 2008-2009 (Consulté le 26/03/2013)

[Microsoft2] Microsoft. Web:


https://mspartner.microsoft.com/fr/fr/Pages/Solutions/Windo
ws-azure-platform.aspx. (Consulté le 27/03/2013)

[Microsoft3] Microsoft. Web http://www.microsoft.com/france/visual-


studio/scenarios/developper-pour-le-cloud.aspx (Consulté le
27/03/2013)

[Rousset, 2010] David Rousset. Comment exposer une application WCF RIA
Services à d’autres clients : la migration vers Azure. 23
Décembre 2010. (Consulté le 29/03/2013)

[Amazon2] Amazon Web Services. Web: http://aws.amazon.com/fr/ec2/


(Consulté le 30/03/2013)

[Douglas, 2009] Jeff Douglas. Amazon’s EC2 Console Makes Cloud


Computing Fun and Easy. 9 Juin 2009. Web :
http://blog.jeffdouglas.com/2009/01/09/amazons-ec2-
console-makes-cloud-computing-fun-and-easy/ (Consulté le
31/03/2013)

[Amazon3] Amazon Web Services. Web: http://aws.amazon.com/fr/s3/


(Consulté le 02/04/2013)

[Amazon4] Amazon Web Services. Web:


http://aws.amazon.com/fr/free/(Consulté le 02/04/2013)

[Soft32] Soft32. Web: http://s3-browser.soft32.com/ (Consulté le


05/04/2013)

[Salesforce2] Salesforce.com. Web:


http://www.salesforce.com/fr/platform/features.jsp (Consulté
le 07/04/2013)

[Salesforce3] Salesforce. Web:


http://www.salesforce.com/fr/platform/service-delivery/
(Consulté le 08/04/2013)

117
Bibliographie

[OpenNebula] OpenNebula. Web:


http://opennebula.org/documentation:archives:rel2.2:sunstone
(Consulté le 10/04/2013)

[Eucalyptus] Eucalyptus. Web: http://www.eucalyptus.com/eucalyptus-


cloud/iaas/functionality (Consulté le 12/04/2013)

[Rackspace] Rackspace. Web: http://www.rackspace.com/cloud/openstack/


(Consulté le 14/04/2013)

[OpenStack] OpenStack. Web: http://openstackdev.wordpress.com/ (Consulté le


14/04/2013)

[ROQUES, 2002] Pascal Roques. Les Cahiers du programmeur UML : Modéliser un


site e-commerce. Edition 2002. (Consulté le 17/04/2013)

[ROQUES, 2003] Pascal ROQUES, Franck VALLÉE. UML en action. In : De


l’analyse des besoins à la conception en Java. Deuxième édition
2003. (Consulté le 18/04/2013)

[Figuière, 2010] Michaël Figuière. NoSQL Europe : Bases de données orientées


colonnes et Cassandra. 4 mai 2010. (Consulté le 20/04/2013)

[AUDIBERT, 2009] Laurent AUDIBERT. UML 2 : de l’apprentissage à la pratique.


31/10/2006. Accessible à http://laurent-
audibert.developpez.com/Cours-UML/html/index.html (Consulté le
20/04/2013)

118
Annexe A

Plateforme Google App Engine

La création d'une application App Engine est très simple, et ne prend que quelques
minutes. Les étapes de création sont présentées comme suit :

1- Tout d’abord, l’utilisateur doit se connecter à son compte Google App Engine via
l’adresse suivante : https://appengine.google.com/.
Il introduit donc son adresse mail et son mot de passe, puis clique sur le bouton
« connexion »

Remarque : Si l’utilisateur ne dispose pas d'un compte Google, il peut télécharger le SDK
App Engine et de développer ses applications.

2- Une fois authentifié, l’utilisateur sera redirigé vers la page de validation du compte.
A partir de cette interface, il peut introduire son numéro de téléphone et attendre l’arrivée
d’un code secret par SMS pour compléter la création du compte GAE.
119
Annexe A

Remarque : Un numéro de téléphone portable donné ne peut être utilisé qu'une seule fois
pour la création d'une instance AppEngine.

3- Dès que le numéro de téléphone est confirmé et que l’utilisateur est connecté, l’interface
"Create an application" est affichée (Figure ci-dessous).

- Le champ Application Identifier contient l’id de l’application à mettre dans le fichier


web.xml. l'URL complète de votre application sera http://application-id.appspot.com/
- Le champ Application Title contient le titre de l’application.

4 - Enfin, l’application est créée et un message s’affiche à l’utilisateur « Application


Registered Successfully »

120
Annexe A

Pour plus de détails, vous pouvez consultez notre tutoriel sur l’adresse suivante :
http://www.zakibrahmi.com/wp-content/uploads/2013/04/Tuto-Android-Google-App-
Engine.pdf

121
Annexe B

Détection de personnes avec JavaCV

La détection de passagers est un domaine de la vision par ordinateur consistant à


détecter un humain dans une image numérique.

Nous nous intéressons dans ce tutoriel à la détection de personnes par la technique


JavaCV (Java Computer Vision) : c’est une implémentation en Java de la librairie
OpenCV. Elle permet de réaliser le traitement d'images - vidéo et elle dispose de plusieurs
milliers de fonctions dédiées.

Les utilisations typiques possibles sont :

 Les traitements d'image de base


 Les traitements de vidéo (reconnaissance et suivi d'objet,…)
 Les algorithmes d'analyse d'image (reconnaissance de lignes, de cercle)
 La détection de contour

Installation de JavaCV et configuration des variables d’environnement

Les outils de développement qu’on va utiliser sont :

 Eclipse
 JDK
 JavaCV
 OpenCV

1. Tout d’abord, il faut télécharger tous ces outils


2. Extraire les fichiers compressés des Frameworks JavaCv et OpenCV sous C:\
3. Configurer les variables d’environnement : Cette configuration est schématisée par la
figure ci-dessous.

122
Annexe B

 Nom de la première variable : CLASSPATH


 Valeur de la première variable:

C:\opencv\build\x86\vc10\lib;C:\opencv\build\common\tbb\ia32\vc10;C:\opencv\buil-
d\x86\vc10\staticlib;%CLASSPATH%

 Nom de la deuxième variable : PATH


 Valeur de la deuxième variable:

C:\opencv\build\common\tbb\ia32\vc10\;C:\opencv\build\x86\vc10\bin\;

La figure ci-dessous illustre la configuration des variables d’environnement

Création du projet

Une fois la configuration effectuée, vous devez créer un nouveau projet sur Eclipse et
importez les JARs (JavaCV & OpenCV) téléchargés. Il suffit donc d’accéder à la rubrique
Librairies > Add External JARs

123
Annexe B

Création du package com.riadi.test.detector

Dans ce package nous allons créer tout d’abord les classes nécessaires pour la détection
de personnes. Ensuite, nous ajouterons la classe Camera.java qui assure la connexion avec
la Webcam.

Camera.java

package com.riadi.test.detector;
import java.awt.image.BufferedImage;
import com.google.common.base.Throwables;
import com.googlecode.javacv.FrameGrabber;
import com.googlecode.javacv.OpenCVFrameGrabber;

public class Camera {

private final FrameGrabber frame_grabber = initGrabber();

public void start() {


try {
frame_grabber.start();
} catch (FrameGrabber.Exception e) {
Throwables.propagate(e);
}
}

public BufferedImage capture() {


try {
return frame_grabber.grab().getBufferedImage();
} catch (FrameGrabber.Exception e) {
124
Annexe B
throw Throwables.propagate(e);
}
}

public void stop() {


try {
frame_grabber.stop();
frame_grabber.release();
} catch (FrameGrabber.Exception e) {
Throwables.propagate(e);
}
}

private FrameGrabber initGrabber() {


try {
return FrameGrabber.createDefault(0);
} catch (Exception e) {
return new OpenCVFrameGrabber(0);
}
}
}

A ce stade, il faut ajouter le fichier person_detector.xml. qui contient les fonctions de


détection et de comparaison de formes.

Une fois le fichier xml créé, nous ajoutons la classe PersonDetcor.java qui permet le
comptage et le traçage des contours. Ci-dessous un extrait de cette classe :

PersonDetcor.java

public class PersonDetector {

public static class PotentialFace {


public final Rectangle box;
public String name;
public double confidence;

static PotentialFace newUnidentifiedFace(Rectangle box) {


return new PotentialFace(box, null, Double.NaN);
}

PotentialFace(Rectangle box, String name, double confidence) {


this.box = box;
this.name = name;
this.confidence = confidence;
}

@Override
public String toString() {
return String.format("%s found at (%d,%d) with confidence =
%s",
name, box.x, box.y, confidence);
}
}

125
Annexe B
public static synchronized List<PotentialFace> run(BufferedImage image,
PersonDb db) {
final List<PotentialFace> p = detectPerson(image);

if (db != null && db.size() > 0) {


if (!trainingCache.containsKey(db)) {
System.out.println("Training ...");
trainingCache.put(db, new Training(db));
}
final Training training = trainingCache.get(db);

for (PotentialFace face : p) {


training.identify(image, face);
}
}

return p;
}

private static Map<PersonDb, Training> trainingCache = Maps


.newConcurrentMap();

static void invalidateTrainingCache(PersonDb db) {


trainingCache.remove(db);
}

private PersonDetector() {

}
}

Le résultat final de l’application est schématisé par la figure ci-dessous :

126

Vous aimerez peut-être aussi