Rapport Final Ismail & Hazem
Rapport Final Ismail & Hazem
Rapport Final Ismail & Hazem
Dirigé par :
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,
HAZEM
Remerciements
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 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.
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
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
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
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
1
Introduction générale
- 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
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
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
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
c - Elasticité :
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.
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 ".
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
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.
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
Figure 1.3 - Evolution du nombre d'internautes dans le monde (1995-2010) [SEMEL, 2006]
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
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.
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
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.
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.
10
Chapitre 1. Le Cloud Computing
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.
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.
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 :
12
Chapitre 1. Le Cloud Computing
Pour le modèle SaaS, les prestataires fournissent en plus les logiciels et les données.
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
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
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 :
Internet
Entreprise 2
Réseau public Serveurs mutualisés
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
Entreprise 2
Serveurs dédiés
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
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.
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.1 Avantages
Cette partie traitera les avantages du Cloud dont bénéficient le client et le fournisseur.
- 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
Les avantages dont bénéficient les fournisseurs de services cloud sont les
suivants:
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
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.
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].
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
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.
Conclusion
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.
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.
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
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
24
Chapitre 1. Le Cloud Computing
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.
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.
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
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
1.6.2.3 Avantages
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
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 :
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
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
29
Chapitre 1. Le Cloud Computing
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.
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.
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.
1.7.2 Architecture
L’architecture générale du cloud computing mobile est représentée dans la figure 2.1.
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.
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
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 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
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.
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
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
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.
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].
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.
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.
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 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 :
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
Les contraintes techniques de la plateforme App Engine sont illustrées dans le tableau 2.2.
Restriction Quantité
40
Chapitre 2. Les plateformes du Cloud Computing
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.
41
Chapitre 2. Les plateformes du Cloud Computing
42
Chapitre 2. Les plateformes du Cloud Computing
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.
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.)
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.
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.
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.
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].
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
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
En contrepartie, les contraintes que présente cette plateforme sont les suivantes :
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
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.
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
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.
50
Chapitre 2. Les plateformes du Cloud Computing
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.
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
- 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
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.
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
Pour l’usage
Linux / Unix
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
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
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 :
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.
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
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:
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.
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.
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.
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.
- 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 ;
- 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 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 :
62
Chapitre 3. Etude préliminaire
43
http://developer.android.com/design/index.html
44
MADS Cloud : Mobile Application of Decision Support Cloud
63
Chapitre 3. Etude préliminaire
64
Chapitre 3. Etude préliminaire
Le tableau ci-dessous montre une description détaillée des messages échangés avec le
système :
65
Chapitre 3. Etude préliminaire
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
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.
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
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.
68
Chapitre 4. Capture des besoins
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.
Gérer caméra 1
Consulter statistiques 1
Gérer Compte 2
S’authentifier 3
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
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.
- Visualiser caméra
- Ajouter caméra
- Modifier caméra
- Supprimer caméra
70
Chapitre 4. Capture des besoins
Serveur de la caméra
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
72
Chapitre 4. Capture des besoins
73
Chapitre 4. Capture des besoins
Serveur mail
74
Chapitre 4. Capture des besoins
créé.
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.
76
Chapitre 4. Capture des besoins
La figure 4.8 indique la situation de la capture des besoins techniques dans 2TUP.
77
Chapitre 4. Capture des besoins
78
Chapitre 4. Capture des besoins
Nous avons choisi également les services Web REST (REpresentational State Transfer).
Les principales motivations pour ce choix sont:
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.
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.
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.
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.
82
Chapitre 5. Analyse et Conception
Diagramme de collaboration
83
Chapitre 5. Analyse et Conception
Diagramme de collaboration
84
Chapitre 5. Analyse et Conception
Diagramme de collaboration
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.
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
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
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
90
Chapitre 5. Analyse et Conception
Diagramme de séquence
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.
91
Chapitre 5. Analyse et Conception
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.
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.
93
Chapitre 6. La Réalisation
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 :
Les nouvelles fonctionnalités d’Ice Cream Sandwich en font un sérieux prétendant sur
le marché mobile et tablette.
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 :
94
Chapitre 6. La Réalisation
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
Ordinateur Caractéristiques
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.
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.
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]
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
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]
Dans cette section, nous allons présenter les étapes de déploiement de notre application
MADS Cloud sur la plateforme Google App Engine.
99
Chapitre 6. La Réalisation
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)
100
Chapitre 6. La Réalisation
Pour créer une nouvelle application App Engine, nous allons utiliser le bouton et
accéder à la rubrique « New Web Application Project ».
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>
Une fois terminée, nous allons déployer le projet sur la plateforme de Google (Figure 6.6)
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.
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.
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
Cette fenêtre permet à l’utilisateur d’afficher le flux vidéo des caméras implantées sur
plusieurs sites distants.
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.
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
Les interfaces ci-dessous montrent les statistiques sur le nombre de passagers, que ce
soit par jour ou par année.
107
Chapitre 6. La Réalisation
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
109
Chapitre 6. La Réalisation
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 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)
[Semel,2006] Terry Semel. The Next Yahoo: Defining the Future. 2006. Analyst Day
2006 (Consulté le 02/02/2013)
(Consulté le 06/02/2013)
113
Bibliographie
(Consulté le 09/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)
[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)
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)
[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)
[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)
[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
116
Bibliographie
[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)
117
Bibliographie
118
Annexe A
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).
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
Eclipse
JDK
JavaCV
OpenCV
122
Annexe B
C:\opencv\build\x86\vc10\lib;C:\opencv\build\common\tbb\ia32\vc10;C:\opencv\buil-
d\x86\vc10\staticlib;%CLASSPATH%
C:\opencv\build\common\tbb\ia32\vc10\;C:\opencv\build\x86\vc10\bin\;
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
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;
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
@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);
return p;
}
private PersonDetector() {
}
}
126