Vous êtes sur la page 1sur 99

République Tunisienne

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique et des Technologies de l’Information et de la communication

Université de Sousse

Ecole Supérieure des Sciences et de Technologie Hammam Sousse

Supérieure des Sciences et de Technologie Hammam Sousse Mastère Professionnel En Pilotage Des Systèmes Industriels

Mastère Professionnel En Pilotage Des Systèmes Industriels

Rapport de stage de fin d’étude

Cloud Computing Mobile : Cas d’un outil d’aide à la décision d’analyse de flux des caméras IP

Réalisé par : Rawen Nedia

Encadrant Universitaire : Dr. Lobna HLAOUA Encadrant Professionnel : Dr. Zaki BRAHMI

Année Universitaire 2013-2014

Dédicace

Au Dieu tout puissant mon créateur.

A la mémoire de ma grand-mère.

A mon père, en signe d’amour, de reconnaissance et

de gratitude pour tous les soutiens et les sacrifices dont

il a fait preuve à mon égard.

A ma mère, ma raison d’être, ma raison de vivre, la

lanterne qui éclaire mon chemin et m’illumine de

douceur et d’amour.

A toute la famille Rawen.

A ma très chère amie Abir, et à tous mes proches

Je vous dédie ce modeste travail en termes d’amour et de profonde gratitude

Rawen Nedia

Remerciements

C’est avec un grand plaisir que je réserve cette page, en signe de gratitude et de

profonde reconnaissance à tous ceux qui m’ont aidé à la réalisation de ce travail.

Je tiens à exprimer ma vive reconnaissance à Mm. Hlaoua Lobna, pour m’avoir fait le

grand honneur d’accepter l’encadrement tout au long de ce projet et pour ces

conseils.

Je tiens à témoigner mes sincères reconnaissances à Mr. Brahmi Zaki, mon encadrant

externe qui m’a accordé la faveur de faire mon projet au sein du Laboratoire RIADI –

GDL et aussi pour ces efforts, sa disponibilité, son encadrement instructif et ses

précieux conseils qui ont été d’un grand apport tout au long de l’élaboration de ce

travail

Ce travail n’aurait pas pu être réalisé sans la contribution de Mr. Hergli Mounir, je

tiens à lui exprimer mes reconnaissances pour son aide précieuse durant ce travail.Il

m’a toujours conseillé, me faisant profiter ainsi de ses compétences théoriques et de

son expérience.

Je n’oublie pas non plus de remercier tous mes enseignants pour leurs efforts et la

richesse de leurs interventions durant mes études universitaires.

Je remercie, enfin, toutes les personnes qui ont contribué de près ou de loin à la

réalisation de ce travail.

Table de matière

Table des matières

Table des matières

Introduction

1

Chapitre 1: Généralité

3

I. Présentation du laboratoire RIADI-GDL :

3

1.Objectifs:

4

2.Domaines:

4

II.Présentation du projet :

4

III.Outil d’aide à la décision :

6

1.Le système informatique d'aide a la décision (SIAD) :

7

Chapitre 2: Cloud Computing

9

I.Présentation du Cloud Computing :

9

1.Caractéristiques :

9

2.Historique :

11

II.Les facteurs d’adoption du Cloud Computing :

11

1.Démocratisation de l’informatique :

12

2.Démocratisation de l’Internet :

12

3.Développement des réseaux informatiques :

12

4.Développement des techniques de programmation :

13

III.Architectures du Cloud Computing :

13

1.Modèle de services orientés clients :

13

2.Modèles de déploiement :

15

IV.Avantages et inconvénients du Cloud Computing :

18

1.Avantages :

18

2.Inconvénients :

19

V.La sécurité dans le Cloud Computing :

20

VI.Cloud Computing, Services Web et Grille de calcul :

20

1.Les services web :

21

2.Grille de calcul :

23

3.Comparaison entre : Grille de calcul, Services Web et Cloud Computing :

25

VII.Cloud Computing Mobile :

25

1.Concept et principe :

25

2.Architecture :

26

VIII.Plateformes du Cloud Computing

26

1.Etude des principales plateformes Cloud :

26

2.Architecture : 26 VIII.Plateformes du Cloud Computing 26 1.Etude des principales plateformes Cloud : 26

Table des matières

Table des matières

IX.Etude comparative des différentes plateformes :

34

1.Comparatif des principales offres de Plateforme as a Service (PaaS) :

34

2.Comparatif des principales offres d’infrastructure as a Service (IaaS) :

35

3.Comparatif des principales offres de Software as a Service (SaaS) :

36

Chapitre 3: Etude Conceptuelle

38

I.Etude Préliminaire :

38

1.Méthodologie de développement :

38

2.Recueil des besoins fonctionnels :

40

3.Recueil des besoins non fonctionnels :

40

4.Identification des acteurs :

41

5.Modélisation du contexte :

41

II.Analyse des besoins fonctionnels

43

1.Identification des cas d’utilisation :

44

2.Diagramme de paquetage :

49

III.Analyse des besoins techniques :

49

1.Configuration matérielle du système :

50

2.Spécification d’architecture :

51

IV.Conception

52

1.Diagramme de classes :

53

2.Diagramme de séquence :

56

Chapitre 4: Réalisation

60

I.Technologies utilisées :

60

1.Le langage de programmation JAVA :

60

2.La plateforme Android 4.0 (Ice Cream Sandwich) :

60

3.La plateforme Google App Engine (GAE) :

61

4.La technologie NoSQL (Not Only SQL) :

61

II.Environnement de travail :

62

1.Environnement matériel :

62

2.Environnement logiciel :

62

III.Déploiement de l’application sur Google App Engine :

64

1.Les principales interfaces graphiques :

65

Conclusion

71

Glossaire

a

Bibliographie

c

Annexe A

g

Annexe B

l
l

Liste des Figures

Liste des Figures

Liste des Figures

3

Figure 2-1: Utilisation des ressources [SCALES UP, 2011]

10

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

11

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

12

Figure 2-4: Les 3 couches du Cloud Computing [PARISOT, 2011]

13

Figure 2-5: Les modèles de services Cloud [TALYANA, 2012]

15

Figure 2-6: Les modèles de services Cloud [TALYANA, 2012]

16

Figure 2-7: Schéma de l’architecture matérielle d’un Cloud externe

17

Figure 2-8: Schéma de l’architecture matérielle d’un Cloud interne

17

Figure 2-9: Structure d'un message SOAP [IBM, 2010]

22

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

23

Figure 2-11: Architecture du Cloud Computing Mobile [KKKM, 2012]

26

Figure 2-12: Tableau de bord de Google App Engine

28

Figure 2-13: Fonctionnement de Google App Engine [MOCHE-SAMSON, 2009]

29

Figure 2-14: Portail de gestion de la plateforme Windows Azure [ROUSSET, 2010]

29

Figure 2-15: Portail d'administration AMAZON EC2 [DOUGLAS, 2009]

30

Figure 2-16: Interface d'administration pour AMAZON S3 [SOFT32]

31

Figure 2-17: Portail d'administration de la plateforme IAAS OPENNEBULA [OPENNEBULA]

32

Figure 2-18: Tableau de bord de la plateforme EUCALYPTUS [EUCALYPTUS]

33

Figure 2-19: Tableau de bord d'OPENSTACK [OPENSTACK]

34

Figure 3-1: Le processus de développement en Y [ROQUES, 2003]

39

Figure 3-2: Diagramme de contexte dynamique du système

42

Figure 3-3: Diagramme de contexte statistique du système

43

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

43

Figure 3-5: Digramme de cas d'utilisation global initial

44

45

Figure 3-7: Raffinement du cas d'utilisation « Consulter Statistiques »

46

Figure 3-8: Raffinement du cas d'utilisation « Gérer Compte»

47

Figure 3-9:Raffinement du cas d'utilisation « S'Authentifier »

48

Figure 3-10: Digramme de package de l'application

49

Figure 3-11: Situation de la capture des besoins techniques dans 2TUP

50

de package de l'application 49 Figure 3-11: Situation de la capture des besoins techniques dans 2TUP

Liste des Figures

Liste des Figures

Figure 3-12: Digramme de déploiement du système MADS Cloud

50

Figure 3-13: Architecture technique du système

52

Figure 3-14: Diagramme de classe de base de données

53

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

54

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

54

Figure 3-17: Diagramme de classe de conception pour le cas d'utilisation « Consulter Statistiques » . 55

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

56

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

57

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

58

Figure 4-1: Comparaison entre la BD Relationnelle et BD Orientée Colonne [FIGUIERE, 2010]

62

Figure 4-2: Interface de création d’un nouveau compte

65

Figure 4-3: Interface de réception mail

65

Figure 4-4: Interface de récupération mot de passe

66

Figure 4-5: Interface d'authentification

66

Figure 4-6: Interface de Menu Principal

67

Figure 4-7: Interface de Visualisation des Caméras

67

Figure 4-8: Interface d’Ajout d’une Caméra

68

Figure 4-9: Interface de Suppression d’une Caméra

68

Figure 4-10: Interface de consultation des statistiques par jour

69

Figure 4-11: Interface de consultation des statistiques par année

69

Figure 4-12: Interface de modification du profil

70

Figure 4-13: Interface de récupération du mot de passe

70

Figure 4-12: Interface de modification du profil 70 Figure 4-13: Interface de récupération du mot de

Liste des Tableaux

Liste des Tableaux

Liste des Tableaux

Tableau 2-1:Avantages et inconvénients des services nuagiques

15

Tableau 2-2:Tableau comparatif des technologies de grille de calcul, de Services Web et du Cloud Computing

25

Tableau 2-3: Etude comparative des principales plateformes PaaS

35

Tableau 2-4: Etude comparative des plateformes IaaS

36

Tableau 2-5: Etude comparative des offres SaaS

37

Tableau 3-1:Description du diagramme de contexte dynamique

42

Tableau 3-2:Description des cas d’utilisation

44

Tableau 3-3: Tableau de priorités

45

Tableau 3-4:Description du cas d’utilisation « Visualiser Caméra »

46

Tableau 3-5:Description du cas d’utilisation « Ajouter Caméra »

46

Tableau 3-6: Description du cas d’utilisation « Consulter statistiques »

47

Tableau 3-7:Description du cas d’utilisation « Créer Compte »

48

Tableau 3-8:Description du cas d’utilisation « S’authentifier»

48

Tableau 3-9: types de classes d’analyse

55

Tableau 4-1:Description des matériels informatiques

62

48 Tableau 3- 9: types de classes d’analyse 55 Tableau 4-1:Description des matériels informatiques 62

Introduction

Introduction

Introduction

Avec le développement des technologies de communication et l’augmentation exponentielle des capacités de transfert et de sauvegarde de données, l’informatique a atteint un stade où un ordinateur isolé devient généralement désuet. L’informatique est à présent basée sur la communication entre serveurs, postes utilisateurs, « Data Centers 1 » et réseaux. La tendance actuelle est effectivement la mutualisation des ressources afin d’en maximiser l’exploitation et de bénéficier d’économies d’échelle.

Ce concept est un modèle caractérisé par l’usage de ressources extérieures (mémoire, CPU, logiciels, plateformes, machines virtuelles, données…) disponibles à distance par l’intermédiaire de réseaux et utilisables et adaptables en fonction des besoins.

Parallèlement, on assiste actuellement à l’émergence de technologies mobiles de communication et de traitement de l’information. A ce propos, les téléphones mobiles sont devenus un des outils principaux dans la vie quotidienne, personnelle et professionnelle. Ils ont donné naissance à de nouveaux marchés, comme celui des applications mobiles. Cependant, ces terminaux présentent certaines contraintes (limite de capacité de calcul, faible capacité de stockage, restriction sur la consommation d’énergie …) qui les empêchent d’exécuter des applications qui consomment une quantité de ressources importante. La problématique posée se résume par la question suivante : Comment faire fonctionner des applications lourdes sur des appareils mobiles de capacité limitée ?

La solution qu’on adopte est le recours à la technologie du « Cloud Computing mobile ». Cette technologie permet le traitement et le stockage des données dans le nuage informatique. De ce fait, on va réaliser une application mobile, qui permet aux utilisateurs de bénéficier des services sans avoir besoin de matériel complexe et coûteux.

Dans ce cadre, je propose dans mon projet cette nouvelle technologie comme solution d’aide à la décision pour l’analyse des flux des caméras IP pour l’élaboration des statistiques sur le nombre de personnes qui passent devant les panneaux publicitaires. Ce futur système permet aux responsables Marketing, de gérer les caméras IP (ajouter, modifier, supprimer ou

Ce futur système permet aux responsables Marketing, de gérer les caméras IP (ajouter, modifier, supprimer ou

Introduction

Introduction

visualiser les caméras en temps réel), et visualiser les 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 l’aide à la décision, le Cloud Computing, le Cloud Computing mobile et les plateformes de l’informatique en nuage.

La deuxième partie, composée aussi de deux chapitres, sera consacrée à la conception et l’implémentation du notre application. Cette partie comprend dans le premier chapitre, une description détaillée d’étude préliminaire, d’analyse et conception ; ainsi que la réalisation dans le deuxième chapitre.

détaillée d’étude préliminaire, d’analyse et conception ; ainsi que la réalisation dans le deuxième chapitre.

Chapitre i:

Généralité

Chapitre i: Généralité

Chapitre 1 : Généralité

Chapitre 1 : Généralité

Chapitre 1

Généralité

Introduction :

Au cours de ce chapitre, on élabore dans une première partie le laboratoire RIADI-GDL ainsi que ces différents domaine et objectifs. On expose ensuite une description détaillée du projet, puis on présente une étude du système informatique d’aide à la décision et ses outils et méthodes.

I. Présentation du laboratoire RIADI-GDL :

Le laboratoire a été habilité en 1999 par le Ministère de l'Enseignement Supérieur, de la Recherche Scientifique et de la Technologie et par le Secrétariat d'Etat à la Recherche Scientifique et à la Technologie sous le N° de code IT01 pour la période 1999-2002.

Figure ‎1-1: Logo RIADI
Figure ‎1-1: Logo RIADI

Le laboratoire a une grande expérience d'enseignement, de recherche et de collaboration socio-économique particulièrement dans les domaines des technologies d'information et de communication. Jusqu'à 2005, le laboratoire a été dirigé par Professeur Mohamed Ben Ahmed. Actuellement le laboratoire est dirigé par Professeur Henda Hajjami Ben Ghezala. La Réhabilitation du laboratoire RIADI-GDL pour la période 2003-2006 s'est faite sur la base des thématiques de quatre pôles de recherche essentiellement en s'inscrivant de plus en plus dans un contexte innovateur et international :

Pôle Génie de connaissances et de l'information.

Le laboratoire compte 113 membres répartis sur les quatre pôles:

30 Chercheurs permanents encadrants ;

41 doctorants ;

42 Mastères.

répartis sur les quatre pôles:  30 Chercheurs permanents – encadrants ;  41 doctorants ;

Chapitre 1 : Généralité

Chapitre 1 : Généralité

1. Objectifs:

Les objectifs spécifiques de recherche du laboratoire sont :

Traitement de l'information documentaire ;

Construction d'outils logiciels généraux pour le traitement de l'arabe écrit, ces outils s'articulent autour des trois axes de recherche (analyse syntaxique, acquisition des connaissances, construction de dictionnaires) ;

Etude des ontologies, du Knowledge Management et des systèmes multi-agents ;

Ingénierie des méthodes, des processus et développement des outils associés.

2. Domaines:

Les domaines dans lesquels s'inscrivent les travaux du laboratoire sont :

Domaine des sciences cognitives traitant particulièrement les aspects liés à la modélisation des utilisateurs, à l'étude des ontologies et l’étude approfondie en Knowledge Management ;

Domaine des e-services de plus en plus présent sur Internet tel que : le télé- enseignement, le e-businesss, le e-commerce, etc ; Domaine combinant les deux autres faisant apparaître de nouvelles recherches en Web sémantique ;

Domaine d'ingénierie des systèmes. Il s'agit en fait de fournir des méthodes , des techniques et des outils permettant de développer et d'implanter le plus efficacement possible les systèmes informatiques de natures diverses en vue de l'amélioration de la productivité et de la qualité.

II. Présentation du projet :

Les systèmes d'information sont aujourd'hui au cœur des préoccupations des directions marketing et vente. Pour analyser, suivre les performances des commerciaux, piloter les actions marketing, mener une politique orientée client Les directeurs marketing et commerciaux n'y associent pas immédiatement les outils dont

ils disposent. C'est à travers des mots-clés tels que base de données, outils d'extraction ou

statistiques et tableaux de bord

,

qu'ils établissent le lien.

tels que base de données, outils d'extraction ou statistiques et tableaux de bord , qu'ils établissent

Chapitre 1 : Généralité

Chapitre 1 : Généralité

Le futur système offre aux responsables Marketing une opportunité d’aide décisionnel, grâce à l’élaboration des statistiques sur le nombre de personnes qui passent devant les panneaux publicitaires. L’analyse des flux vidéo est une tâche intéressante qu’il est nécessaire de mesurer et de maîtriser pour le secteur Marketing. Elle permet aux responsables de :

Suivre en temps réel l'évolution du nombre de clients ou de visiteurs ;

Mesurer les variations de fréquentation sur une zone donnée (lieu public, centre commercial…) ;

Analyser les performances des opérations marketing réalisées ;

Suivre l'impact d'une publicité ;

Prendre des décisions finement corrélées aux faits ;

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

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

L’installation de ces systèmes est souvent complexe ;

La zone de détection des capteurs est limitée. D’autre part, la réalisation d’applications mobiles pour l’analyse des flux vidéo est difficile. En effet, les appareils mobiles ont une capacité de traitement et de stockage limitée, ce qui les empêchent de supporter des applications de ce genre. La solution qu’on propose 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:

personnes qui passent devant les panneaux publicitaires. Les fonctionnalités offertes par le futur système seront donc:

Chapitre 1 : Généralité

Chapitre 1 : Généralité

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 :

Dans un centre commercial, l’analyse de flux de caméra IP est essentielle car elle offre plusieurs fonctionnalités pour les responsables marketing, et notamment :

La mesure de l'impact des actions promotionnelles ;

Le calcul de l'efficacité commerciale en comparant les visites et les ventes ;

La comparaison des performances de différents sites.

Les lieux publics :

Les exploitants de lieux publics ou organisateurs d’événements sont tenus de ne pas dépasser le nombre de visiteurs autorisés. L’analyse de flux des caméras IP permet de surveiller en permanence le nombre de personnes présentes dans une salle et, par exemple, d’ouvrir si nécessaire des espaces supplémentaires pour accueillir les visiteurs en surplus.

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.

III. Outil d’aide à la décision :

La signification du terme décision peut fortement varier. D’une manière générale La décision réfère à un processus complexe, et plus précisément, à un processus d’identification et de résolution de problèmes.

Dans la théorie de la décision normative ou statistique, la décision est l’action de sélectionner une stratégie particulière entre plusieurs voies possibles d’actions ;

Dans la théorie des organisations, la théorie de la décision empirique et le domaine de l’intelligence artificielle, la décision est le processus de traitement de l’information ou le processus organisationnel lui-même. Pour les psychologues, la décision peut être assimilée à un certain type de comportement.

organisationnel lui-même. Pour les psychologues, la décision peut être assimilée à un certain type de comportement.

Chapitre 1 : Généralité

Chapitre 1 : Généralité

1. Le système informatique d'aide a la décision (SIAD) :

Le SIAD est un outil d’observation et de description qui vise, à partir de données de gestion et/ou de statistiques, à donner aux managers d’une entreprise les moyens d’identifier des alertes de gestion, de suivre l’évolution de l’activité et de disposer d’outils d’investigation de sujets ou phénomènes particuliers. Il ne fournit pas les explications ni les commentaires qui relèvent d’une phase de travail postérieure à l’observation.

a. Types de SIAD :

Il est d’usage de distinguer trois types différents du système informatique :

les systèmes supportant la conception des produits (calcul numérique, CAO,

les systèmes industriels : (conduite de machines, contrôle de process industriel,

les systèmes de gestion : Ces derniers couvrent toutes les activités de gestion du

fonctionnement de l’entreprise (marketing, vente, achat, production, logistique, finance, ressources humaines, R&D 2 ).

) ;

) ;

b. But d’un SIAD :

Dans l’entreprise, le SIAD a pour objectif de faciliter l’établissement et la mise en œuvre de la stratégie, en particulier de concrètement supporter la réalisation des activités. Il vise à :

Présenter des informations utiles : ceci implique qu’il soit construit selon des critères de sélectivité en choisissant, parmi toutes les statistiques qu’il est possible de produire, celles qui peuvent servir à telle ou telle catégorie d’utilisateurs ;

Fournir aux utilisateurs un outil de consultation commode, d’une ergonomie aisée, de façon à minimiser les tâches de recherche de l’information et de présentation des résultats ;

Produire des statistiques, en adressant au coup par coup des requêtes à une application opérationnelle, est coûteux en traitement ;

Protéger les bases de données opérationnelles en s’intercalant comme un tampon entre elles et les utilisateurs et en préparant la plupart des statistiques dont ces derniers ont besoin.

c. Outils et Méthodes de l’aide à la décision :

L’aide à la décision utilise des techniques et des méthodologies issues du domaine des mathématiques appliquées telles que l’optimisation, les statistiques, la théorie de la décision

les statistiques, la théorie de la décision 2 R&D : Le management de la Recherche et

2 R&D : Le management de la Recherche et développement est une discipline dont l'objectif est de mettre en place dans l'entreprise des processus permettant la circulation des savoir-faire d'abord au travers des équipes responsables des nouveaux produits puis jusqu'à la mise en production de ceux-ci.

Chapitre 1 : Généralité

Chapitre 1 : Généralité

ainsi que des théories de domaines moins formelles telles que l’analyse des organisations

et les sciences cognitives.

Outils de l’aide à la décision :

Les outils de l’aide à la décision sont classés selon qu’ils soient destinés à l’usage

individuel, à un groupe ou à l’organisation dans son ensemble. Pour chaque type on cite les

principaux outils :

Les tableaux de bord comportant des alertes ;

Les tableaux préformatés contenant l’essentiel de la statistique d’activité et

d’environnement ;

Les tableaux et graphiques restituant les résultats d’interrogations en utilisant la

technologie" hypercubes 3 ";

La restitution d’analyses sophistiquées (analyse de corrélation, simulation etc.)

utilisant les outils de " datamining 4 ".

Méthodes de l’aide à la décision :

L'aide à la décision représente l'ensemble des moyens (modèles, méthodes, outils,

concepts,…) mis a la disposition du décideur pour faciliter la prise de décision. Chaque outil

informatique est doté de ses propres méthodes de réalisation et de mise en œuvre:

Méthodes KOD (Knowledge Oriented Design) [Vogel 88] ou KADS (Knowledge

Acquisition and Documentation Structuring) [Breuker 94] pour les systèmes experts,

Data Mining ;

Méthodes KDD (Knowledge Discovery in Databases) [Fayyad 96] pour l’extraction

des connaissances a partir des données, Data Warehouse 5 [Kimball 00].

Les méthodes sont diversifiées, nombreuses, non reliées, utilisant des concepts ou formalismes différents selon les outils. Seule la modélisation des données reste un point à peu prés partage.

Conclusion :

On a présenté dans ce chapitre le laboratoire RIADI-GDL, ainsi que la description détaillée

du projet et les outils d’aides à la décision pour le secteur marketing. Dans le prochain

chapitre on présentera le cloud computing et ses différentes plateformes.

le cloud computing et ses différentes plateformes. 3 hypercubes :

3 hypercubes : http://www.bearingpoint.com/fr-fr/7-7531/la-technologie-hypercube-destinee-au-secteur-de-la-sante/ 4 datamining : L’exploration de données, connue aussi sous l'expression de fouille de données, data mining, ou encore extraction de connaissances à partir de données, « ECD » en français, « KDD » en anglais, a pour objet l’extraction d'un savoir ou d'une connaissance à partir des données. 5 Data Warehouse : Le terme Entrepôt de données désigne une base de données utilisée pour collecter, ordonner, journaliser et stocker des informations provenant de base de données opérationnelles et fournir ainsi un socle à l'aide à la décision en entreprise.

Chapitre ii :

Cloud Computing

Chapitre 2 Cloud Computing

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

Introduction :

La technologie de l’Internet se développe de manière exponentielle depuis sa création. Actuellement, une nouvelle tendance a fait son apparition dans le monde des technologies de l'information et de la communication, il s'agit du « cloud computing ». Dans le présent chapitre, on présente dans une première partie le concept du cloud computing et ses caractéristiques. On expose ensuite les facteurs d’émergence et l’architecture de ce nouveau modèle informatique. Puis, on parle de la relation existante entre le cloud computing, les services web et les grilles de calcul. Enfin, on présente le concept du cloud computing mobile ainsi que les différentes plateformes.

I. Présentation du Cloud Computing :

A ce jour, il n’existe pas de définition officielle ou standardisée du Cloud Computing. Toutes 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. Caractéristiques :

Selon

la

définition

proposée

par

le

NIST 6 ,

caractéristiques principales [Scales Up, 2011].

a. Accès réseau universel :

le

cloud

computing

comprend

cinq

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.)

dispositifs terminaux (PC, Tablette, Smartphone, etc.) 6 NIST (National Institute for Standards and Technology)

6 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.

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

b. Mutualisation des ressources :

Les ressources informatiques du fournisseur sont de divers types : serveurs, capacité de stockage, bande passante, puissance de traitement, etc. Ces ressources sont mises en commun pour servir plusieurs clients, et sont allouées et libérées dynamiquement suivant la demande. La notion de partage de ressources s’appuie sur le concept de virtualisation qui permet de faire fonctionner simultanément plusieurs systèmes d’exploitation dans des machines virtuelles, sur un même serveur physique. Le client n’a en général ni le contrôle ni la connaissance de l’emplacement exact de ses données et ressources, même s’il peut parfois choisir des préférences géographiques (par pays, continent).

c. Elasticité :

L’élasticité est l’une des caractéristiques fondamentales du cloud computing. Elle signifie la capacité à modifier dynamiquement la quantité de ressources allouées en fonction de l'utilisation. Ce concept offre à l’utilisateur l’impression d’avoir en permanence des ressources de calcul et/ou de stockage illimitées. Ces ressources peuvent être facilement et rapidement allouées ou retirées, afin de répondre aux besoins de l’utilisateur. Illustrons le principe d’élasticité, par la figure 2.1 ci-dessous :

principe d’élasticité, par la figure 2.1 ci-dessous : Figure ‎ 2-1: Utilisation des ressources [SCALES UP,

Figure 2-1: Utilisation des ressources [SCALES UP, 2011]

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.

suivant ses propres besoins, de façon automatisée, sans nécessiter d’interaction humaine avec les fournisseurs.

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

e. Service mesurable et facturable :

Les fournisseurs de services cloud computing sont capables de mesurer de façon précise la

consommation des différentes ressources (CPU, Stockage, bande passante

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é.

Cette mesure

).

2. 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 7 affirmait que "cette puissance de traitement informatique serait accessible au public dans le futur ". Le Cloud Computing a été mis en œuvre par Amazon 8 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.La figure ci- dessous illustre l’évolution de l’informatique depuis le Minitel jusqu’au Cloud Computing :

depuis le Minitel jusqu’au Cloud Computing : Figure ‎ 2-2: Evolution de l'informatique [DIRECCTE,

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

II. Les facteurs d’adoption du Cloud Computing :

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

et des techniques de programmation et la crise économique. 7 John McCarthy :(né le 4 septembre

7 John McCarthy :(né le 4 septembre 1927, à Boston, Massachusetts) est le principal pionnier de l'intelligence artificielle et également l'inventeur du langage Lisp. 8 Amazon : 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…).

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

1. Démocratisation de l’informatique :

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

2. Démocratisation de l’Internet :

Internet a considérablement influencé nos habitudes, tant au bureau qu'à la maison. Cette technologie a suivi des évolutions majeures, qui en font aujourd’hui une plate-forme d’échange à grande échelle, permettant la communication entre un utilisateur et une application, mais aussi la dissémination de logiciels au sein du réseau. Cette dernière décennie aura vu l'augmentation du nombre d’abonnés à Internet. La figure 2.3 démontre le phénomène:

à Internet. La figure 2.3 démontre le phénomène: Figure ‎ 2-3: Evolution du nombre d'internautes dans

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

3. Développement des réseaux informatiques :

Le développement des réseaux informatiques est l’un des facteurs clés de l’adoption du Cloud Computing. Ce progrès consiste en :

Une augmentation de la bande passante, de ce fait, il devient possible d'accéder à des applications distantes sans souffrir de problèmes d’accès à Internet ;

Fiabilité du réseau à tel point que les utilisateurs transitent leurs informations personnelles et bancaires sur le réseau ;

du réseau à tel point que les utilisateurs transitent leurs informations personnelles et bancaires sur le

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

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.

4. Développement des techniques de programmation :

Au cours de ces dernières années, de nouveaux langages et de nouvelles technologies sont apparues. Ces techniques de programmation ont permis de changer radicalement le comportement d'une application sans en modifier le code. C'est particulièrement vrai pour les applications web, grâce à des Frameworks 9 tels que Symfony 10 pour PHP, ou Groovy 11 pour Java.

III. Architectures du Cloud Computing :

1. Modèle de services orientés clients :

Le Cloud Computing comprend trois modèles de services qu’il est important de les différencier, à savoir :

Software as a Service (SaaS): « produit final » pour les utilisateurs ;

Platform as a Service (PaaS) : destinée aux développeurs d’applications ;

Infrastructure as a Service (IaaS) : plutôt gérée par les architectes réseaux. La Figure 2.4 représente les différents services du cloud computing :

représente les différents services du cloud computing : Figure ‎ 2-4: Les 3 couches du Cloud

Figure 2-4: Les 3 couches du Cloud Computing [PARISOT, 2011]

‎ 2-4: Les 3 couches du Cloud Computing [PARISOT, 2011] 9 Framework : kit de composants

9 Framework : 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.

10 Symfony : http://symfony.com/

11 groovy :http://groovy.codehaus.org/

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

a. La couche SaaS (Software as a Service) :

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

b. La couche PaaS (Platform as a Service) :

Cette couche permet aux développeurs d'applications d'avoir une plateforme de travail souple, distribuée et virtualisée dans laquelle ils n'ont besoin d'aucune compétence dans les domaines sous-jacents (réseau, matériel, système d’exploitation Le modèle PaaS abstrait les systèmes d’exploitation, les bases de données, la couche Middleware ainsi que la couche de serveur web nécessaire au déploiement des applications. En général, cette abstraction s’accompagne de la fourniture d’un certain nombre d’outil de développement et de déploiement destinés à faciliter le travail des développeurs sur la plate- forme. Les principales plateformes sont actuellement Windows Azure de Microsoft [Microsoft1], App Engine de Google [Google] et Force.com de Salesforce [Salesforce].

c. La couche IaaS (Infrastructure as a Service) :

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

2.5 illustre bien les caractéristiques et les frontières de contrôle suivant les modèles de services Cloud

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing
Chapitre 2 : Cloud Computing Figure ‎ 2-5: Les modèles de services Cloud [TALYANA, 2012] Dans

Figure 2-5: Les modèles de services Cloud [TALYANA, 2012]

Dans le tableau 2.1, on présente une étude des différents modèles de services, et ceci, suivant leurs avantages et inconvénients :

 

Avantages

 

Inconvénients

 

-

Libération des charges techniques

- Soucis de confidentialité

(installation, mise à jour, sécurité

)

- Dépendance aux prestataires de services

SaaS

-

Rapidité de déploiement

- Applications non personnalisables

L’application est accessible à tout moment et en tout lieu

- Possibilité de tester sans engager

-

Intégration difficile avec le système d’informations interne

-

- Optimisation des coûts

 

- Développement d’applications sur mesure

-

Limité par les fonctions offertes par l’hébergeur

PaaS

- Déploiement automatisé

(exemple aux technologies Python ou Java pour Google App Engine)

- Problème de sécurité des données

Possibilité d’offrir l’application développée en mode SaaS

-

 

- Abstraction de l’infrastructure

- Pas de contrôle de machines virtuelles sous-jacentes

IaaS

- Gestion automatique de l’infrastructure

-Besoin d’administrateurs systèmes -La création des machines virtuelles est difficile

- Déploiement de tout type de logiciel

 

- Grande flexibilité d’utilisation

 

Tableau 2-1: Avantages et inconvénients des services nuagiques

2. Modèles de déploiement :

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

dans des Datacenter. On identifie communément trois modèles de déploiement, associé à trois types de cloud

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

a. Cloud public :

L’appellation Cloud public est utilisée lorsque les ressources sont fournies par un

prestataire tiers, et mutualisées pour un usage par plusieurs clients. Il n’y a donc aucun

investissement initial pour l’utilisateur, et l’on paie uniquement pour les ressources que l’on

utilise. On peut citer comme exemple de cloud public :

Amazon Elastic Compute Cloud (EC2);

Sun Cloud [Oracle] ;

IBM’s Blue Cloud [IBM] ;

Google App Engine [Google] ;

Windows Azure Services Platform [Microsoft1].

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

2 .6 explique l’a rchitecture matérielle du cloud public. Figure ‎ 2-6: Les modèles de services

Figure 2-6: Les modèles de services Cloud [TALYANA, 2012]

Il s’agit d’un ensemble de ressources géré par des entreprises spécialisées qui proposent leur service à d’autres, qu’elles soient utilisatrices du Cloud ou elles-mêmes prestataires de service sur ce Cloud.

b. Cloud privé :

C’est un modèle de déploiement interne aux entreprises ou organisations qui en sont les

propriétaires. On distingue 2 types de cloud privé :

Cloud privé externe : Il est dédié à une seule entreprise mais dont la gestion est

externalisée à un prestataire. C’est le cas par exemple avec Amazon Virtual Private

Cloud (Amazon VPC) ;

gestion est externalisée à un prestataire. C’est le cas par exemple avec Amazon Virtual Private Cloud

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

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

de l'architecture matérielle du cloud privé externe : Figure ‎ 2-7

Figure 2-7:Schéma‎de‎l’architecture‎matérielle‎d’un‎Cloud‎externe

Un prestataire fourni à l’entreprise un Cloud, qu’elle seule, utilisera mais la gestion échoie au fournisseur et non au client.

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 2.8) .

réseau sécurisé, interne et fermé (Figure 2.8) . Figure ‎ 2-8

Figure 2-8:Schéma‎de‎l’architecture‎matérielle‎d’un‎Cloud‎interne

Il s’agit d’un Cloud géré et hébergé en interne par l’entreprise propriétaire.

c. Cloud hybride :

Un cloud hybride est l’utilisation de plusieurs Clouds, qu’ils soient privés ou publics. Par exemple, on pourra exporter nos applications dans un cloud public mais ces applications utiliseront également des données stockées sur un cloud privé. On se trouve donc dans le cas d’un cloud hybride. L’approche hybride du Cloud Computing sera la solution pour les entreprises qui auraient la possibilité de ne pas externaliser les données sensibles, d’où un contrôle total de leurs informations.

auraient la possibilité de ne pas externaliser les données sensibles, d’où un contrôle total de leurs

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

IV. Avantages et inconvénients du Cloud Computing :

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

1. Avantages :

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

a. Avantages du coté client :

Les avantages du coté client sont multiples, citons :

La réduction des coûts : les services cloud payants sont généralement moins chers que les systèmes physiques traditionnels. En effet, l’utilisateur n'est plus contraint d’investir en matériel et logiciel, il accède à son service sans avoir besoin de payer pour la maintenance régulière ou les mises à niveau ;

La maîtrise de budget : concept de consommation à l’usage ;

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 ;

La simplicité : le cloud computing transfère la complexité d’une infrastructure interne vers le centre de calcul d’un fournisseur spécialisé ;

La productivité : les services cloud permettent aux collaborateurs de travailler à distance grâce à une simple connexion Internet ;

La sécurité : les fournisseurs Cloud sécurisent leurs centres de calcul non seulement du coté physique, mais utilisent sur leurs serveurs les dernières technologies de sécurité et effectuent en permanence des mises à jour des données clients ;

La mobilité : l’utilisateur peut accéder à ses applications à tout moment et de n’importe quel appareil connecté à Internet (PC, Tablette, Smartphone …).

b. Avantages du coté fournisseur :

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

Adoption de nouveaux services : le fournisseur de services Cloud Computing a tout intérêt à compléter leurs offres logicielles par de nouveaux services tel que la facilité

Cloud Computing a tout intérêt à compléter leurs offres logicielles par de nouveaux services tel que

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

d’accès, la disponibilité, la réactivité face aux montées et descentes en charge de l'utilisateur … ;

Acquisition de nouvelles compétences : le prestataire de services Cloud Computing doit développer de nouvelles compétences autres que des compétences purement informatiques, notamment dans les domaines de la gestion des contrats, des audits des garanties de SLA 12 ;

Possibilités de virtualisation : qui s’offrent la mutualisation et la virtualisation des serveurs permettent de réduire les coûts tout en gagnant en efficacité et en agilité. Ainsi, une virtualisation bien planifiée permet au fournisseur d’obtenir un retour sur investissement élevé et durable ;

Nouveaux modes de tarification : en mutualisant leurs offres, les fournisseurs de solution Cloud Computing peuvent proposer des prix plus compétitifs et une tarification attractive pour de nouveaux clients.

2. Inconvénients :

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

a. Inconvénients du coté client :

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

La dépendance au réseau Internet : Si l’utilisateur n’a pas de connexion Internet, ou une connexion insuffisante, il ne pourra pas accéder à sa plateforme de travail ;

La confidentialité et sécurité des données : Les risques d’attaque et de perte de confidentialité sont augmentés, car selon le système utilisé, l’entreprise ne pourra pas travailler ou disposer de ses données en dehors du réseau Internet qui est vulnérable aux attaques et au piratage ;

La perte du contrôle des données : L’entreprise perd la maîtrise de son système informatique. Elle dépend de son prestataire, tant au niveau technique que de la qualité de service ;

La localisation des données : Il est difficile de localiser l’emplacement physique des données stockées à l’intérieur d’un nuage. Ce manque de visibilité peut entraîner des problèmes de sécurité et de conformité.

b. Inconvénients du coté fournisseur :

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

le Cloud Computing à ses fournisseurs sont les suivantes: 1 2 SLA (Service Level Agreement) :

12 SLA (Service Level Agreement) : contrat définissant les engagements de l'hébergeur quant à la qualité de sa prestation,

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

Adoption d’une méthodologie différente : le cloud computing est une technologie complètement différente qui demande de nouvelles connaissances et une vision renouvelée du marché ;

Coût d’infrastructure élevé : pour être capable d’héberger des services de plus en plus diversifiées, le fournisseur des services cloud computing doit investir dans des Data Center. Cependant, chaque centre de données représente un investissement compris entre 500 millions et un milliard de dollars [Naugès, 2010] ;

Défaillance du système : cette catégorie de risques concerne l'échec imprévisible des mécanismes de stockage, de mémoire, de routage….

V.

La sécurité dans le Cloud Computing :

La notion de sécurité des données est devenue l’un des principaux sujets de discussion à propos du cloud computing car les exemples de déconvenues sont aujourd’hui nombreux. Parmi les accidents de l’informatique dans les nuages, on peut citer :

Les cyber-attaques : ces attaques exploitent les failles logicielles et peuvent causer des fuites de données, affectant des millions d'utilisateurs.

Les catastrophes naturelles : Ces événements amènent les fournisseurs de services Cloud à une perte des données. Les recommandations à prendre en compte pour réduire les risques sont les suivantes :

Identifier les données et les traitements qui passeront dans le Cloud ;

Définir les exigences de sécurité technique et juridique ;

Analyser les risques afin de définir les mesures de sécurité à mettre en place ;

Identifier le type de Cloud pertinent pour le traitement envisagé ;

Choisir un prestataire présentant des garanties suffisantes ;

Définir la politique de sécurité interne ;

Surveiller les évolutions dans le temps. Avant d’être en mesure de confier une application informatique au nuage, il conviendra de procéder à une solide analyse des risques et de contrôler les vulnérabilités identifiées, dans le cadre de mesures organisationnelles, techniques et naturellement juridiques.

VI.

Cloud Computing, Services Web et Grille de calcul :

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

la relation qui existe entre ses différentes technologies ainsi que les similitudes et les différences entre

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

1. Les services web :

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

a. Définition :

Plusieurs définitions des services Web ont été élaborées par différents auteurs. On cite 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 13 . Sa définition peut être 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 »

b. Technologies des Services Web :

Les standards XML utilisés par la technologie de services web sont :

La couche transport SOAP :

Simple Object Access Protocol (SOAP), comme protocole de communication. 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 HTTP 14 , 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 ;

de méthodes ainsi que les informations sur les réponses. Il doit être présent de manière unique

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

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

La figure 2. 9 montre la structure d’un message SOAP : Figure ‎ 2-9:Structure d'un message

Figure 2-9:Structure d'un message SOAP [IBM, 2010]

La couche description WSDL :

WSDL (Web Service Description Language) est un langage de description de services Web basé sur XML. Il permet de fournir une description structurelle et fonctionnelle des services indépendamment de la plateforme et du langage utilisé [IBM, 2012]. Un document WSDL est composé de deux parties :

La partie abstraite : décrit les messages et les opérations. Elle est composée des éléments :

< types> : définit les types de données utilisées par le service Web

< message> : décrit les messages utilisés par le service Web

< portType > : contient les opérations réalisées par le service Web

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

< binding > : définit les protocoles de communication utilisés par le service Web

< services > : regroupe l'ensemble de ports

La couche découverte UDDI :

L’annuaire UDDI (Universal Description Discovery and Integration) est un standard pour la publication et la découverte des informations sur les services Web [SoftDeath, 2013]. La spécification UDDI vise à créer une plate-forme indépendante, un espace de travail ouvert pour la description, la découverte et l'intégration des services des entreprises. Ce modèle se compose de cinq types de structures de données :

L’entité fournisseur (Business Entity) : comprend des informations concernant l'entreprise qui expose le service ;

Le service (Business Service) : représente l’ensemble des services exposés par l'entreprise.

le service ;  Le service (Business Service) : représente l’ensemble des services exposés par l'entreprise.

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

Les accès au service (Binding Template) : fournissent des informations sur le lieu d'hébergement du service ;

Le type de service (tModel) : permet de donner le mode d’accès au service ;

Le publisher Assertion : décrit l’ensemble des informations contractuelles pour accéder au service. L’architecture type d’un annuaire UDDI est illustrée dans la Figure 2.10 ci-dessous :

UDDI est illustrée dans la Figure 2 .10 ci-dessous : Figure ‎ 2-10:Schéma générale de l'annuaire

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

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.

2. Grille de calcul :

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

a. Définition :

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.

de ressources informatiques potentiellement partagées, distribuées, hétérogènes, délocalisées et autonomes.

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

Son rôle consiste à partager ces ressources entre des participants, des organisations et des entreprises afin de pouvoir 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.

b. Avantages :

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

Le partage de ressources informatiques (matérielles et logicielles) ;

L’accès transparent aux ressources;

Le calcul et le stockage à la demande ;

L’augmentation de la puissance de calcul à moindre coût ;

Fiabilité et disponibilité des services;

L’exploitation de la puissance de calcul inutilisée;

L’allègement des charges des calculateurs;

L’optimisation de la productivité et du travail collaboratif.

c. Inconvénients :

Il existe plusieurs limites à ce que l’architecture des grilles peut accomplir dans un environnement d’entreprise. On peut citer :

La faiblesse du niveau de sécurité ;

La lenteur des temps d’accès aux ressources ;

L’absence d’administration centralisée ;

La difficulté de création des applications qui marchent sur toutes les plateformes ;

Le manque d’adaptation des applications traditionnelles avec la grille de calcul.

d. Domaines d’applications :

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

Le secteur financier ;

Le secteur de la biotechnologie ;

Le secteur industriel ;

Le secteur de l’astronomie.

financier ;  Le secteur de la biotechnologie ;  Le secteur industriel ;  Le

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

3. Comparaison entre : Grille de calcul, Services Web et Cloud Computing :

Le tableau 2.2 représente une étude comparative des technologies :

   

Similitudes

   

Différences

   

-Le cloud computing est considéré comme une évolution de grille de calcul

-

L’informatique en nuage n’offre pas seulement des

Cloud computing et Grille de calcul

Les deux systèmes partagent le même objectif qui est l’allocation de ressources informatiques (stockage et puissance de calcul) en fonction des demandes des utilisateurs.

ressources à la demande, mais fournit également de nouveaux services et fonctionnalités selon les besoins de chaque client. - Le cloud computing procure la notion de virtualisation et d’élasticité des ressources alors que la grille de calcul fournit les ressources de façon

équitable entre les organisations.

 

-

Le cloud offre un accès immédiat à ses applications

et ses données, par contre, dans le cas de grille de calcul le temps d’accès aux ressources est très lent.

 

Le

cloud

computing

et

les

Les deux technologies se diffèrent dans la façon d’utilisation des ressources :

services

 

web

sont

Cloud computing et Services Web

incontournables

pour

la

le Cloud Computing focalise sur l’optimisation des ressources, alors que les services Web se limitent à donner accès à des capacités, sans se préoccuper de quelle façon les ressources seront utilisées.

réduction

du

temps

et

des

 

coûts associés au déploiement

et

à

la

maintenance

des

applications.

   

Grille de calcul et Services Web

l’utilisation de services Web est le point critique pour la réussite de la mise en place d’une infrastructure de grille, et notamment pour faire face aux problèmes d’hétérogénéité du matériel et des logiciels.

le Cloud computing tente de renforcer le concept de grille de calcul et d'éviter le point de défaillance unique lorsqu'une unité échoue. Le cloud computing est conçu pour agir comme un tout et ses unités composées sont automatiquement interchangeables.

Tableau 2-2:Tableau comparatif des technologies de grille de calcul, de Services Web et du Cloud Computing

VII. Cloud Computing Mobile :

Dans cette section, on présente d’abord le concept du cloud computing mobile. On passe ensuite à décrire son architecture, ses avantages et défis. Enfin, on expose ses différents domaines d’application.

1. Concept et principe :

Le cloud computing mobile est l'une des tendances de la technologie mobile dans l’avenir. De nombreuses définitions existent pour ce nouveau concept. Il s’agit donc d’un nouveau modèle permettant l’accès à des applications en mode « SaaS » depuis des terminaux mobiles tels que les Smartphones, les tablettes… Ces application sont construites, réalisées et hébergées via la technologie du cloud computing. Le cloud computing mobile se différencie de l'informatique mobile car les dispositifs mobiles exécutent des applications web,

computing mobile se différencie de l'informatique mobile car les dispositifs mobiles exécutent des applications web,

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

basées sur le cloud plutôt que des applications natives 15 . [Claybrook, 2011]

2. Architecture :

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

cloud computing mobile est représentée dans la figure 2.11 Figure ‎ 2-11: Architecture du Cloud Computing

Figure 2-11: Architecture du Cloud Computing Mobile [KKKM, 2012]

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

VIII. Plateformes du Cloud Computing :

De nos jours, on parle de plus en plus du Cloud Computing, tant pour les solutions de type PaaS, IaaS ou SaaS. Au cours de cette phase, on étudiera en détails les différentes plateformes proposées par les grands acteurs de l’informatique en nuages. Ainsi, on présente une étude comparative des principales plateformes et offres SaaS.

1. Etude des principales plateformes Cloud :

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

on détaille le fonctionnement de chacune d’elles. 1 5 Une application native désigne un logiciel à

15 Une application native désigne un logiciel à télécharger depuis un store (exemple : Google Play) et à installer sur un appareil mobile. 16 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.

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

a. Plateforme Google App Engine (GAE) :

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

Le démarrage simple et rapide ;

L’évolutivité automatique ;

La fiabilité et la sécurité ;

L’hébergement économique ;

La période d’essai sans risques.

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

l’environnement d'exécution Java: est compatible avec de nombreux environnements logiciels Java tels que NetBeans, Eclipse… Ainsi, les applications App Engine peuvent être écrites en Java ou dans tout langage compatible JVM 17 (par exemple JRuby 18 , Groovy, Scala 19 , etc.).

L’environnement d'exécution Python: inclut un interpréteur et une bibliothèque Python standard. Il ne prend en charge que la version Python 2.5.

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

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

la quantité de ressources consommées à la seconde. 1 7 JVM : M achine virtuelle Java

17 JVM : 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. 18 JRuby : http://jruby.org/ 19 Scala : http://www.scala-lang.org/

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

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

2.12 montre le tableau de bord de la plateforme App Engine. Figure ‎ 2-12: Tableau de

Figure 2-12: Tableau de bord de Google App Engine

La console d’administration de la plateforme App Engine est constituée de plusieurs éléments, notamment :

Logs: cette rubrique permet l’affichage des erreurs de l’application ;

Datastore Viewer: il permet de voir le contenu de la base de données ;

Application Settings: cette fonctionnalité assure le paramétrage de l’application ;

Permissions: elle permet de gérer les permissions sur l’application ;

Version: Ce menu assure la gestion des différentes versions de l’application ;

Cron jobs: le Cron jobs permet de configurer des tâches planifiées qui s'exécutent à des heures définies ou à des intervalles réguliers. On peut utiliser le service Cron jobs, par exemple, pour l’envoi des e-mails de rapport quotidien, pour mettre certaines informations à jour… Pour notre cas, le Cron jobs déclenche la méthode d’analyse des flux des caméras IP permettant le comptage de personnes ainsi que l’envoi des statistiques de comptage à la base de données.

b. Fonctionnement de la plateforme App Engine :

Comme l’indique la figure 2.13, 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.

de données Google BigTable en utilisant le langage GQL. Des traitements en arrière-plan peuvent également se

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing
Chapitre 2 : Cloud Computing Figure ‎ 2-13: Fonctionnement de Google App Engine [MOCHE-SAMSON, 2009] c.

Figure 2-13: Fonctionnement de Google App Engine [MOCHE-SAMSON, 2009]

c. Plateforme Windows Azure de Microsoft :

Microsoft a fait le pari du succès de l'informatique en nuage en publiant la plateforme PaaS Windows Azure. Cette plateforme permet aux développeurs d’héberger et intégrer des applications dans les centres de données globales de Microsoft. Windows Azure offre un portail d’administration permettant de superviser et d’administrer les différents services de la plateforme. Comme l’indique la figure 2.14, ce portail comporte les sections suivantes :

figure 2.14, ce portail comporte les sections suivantes : Figure ‎ 2-14: Portail de gestion de

Figure 2-14: Portail de gestion de la plateforme Windows Azure [ROUSSET, 2010]

comporte les sections suivantes : Figure ‎ 2-14: Portail de gestion de la plateforme Windows Azure

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

La plateforme Azure propose aussi un ensemble de services destinés à être utilisés individuellement ou de manière combinée par les développeurs d’applications. Ces services sont :

Windows Azure ;

SQL Azure ;

.NET services ;

Live Services ;

Windows Azure AppFabric.

d. Plateforme Amazon Web Services (AWS):

Amazon a lancé depuis 2002 un ensemble d’outils et de services permettant de créer et d’héberger des applications Web. Parmi ces services on peut noter 2 services principaux :

e. Amazon EC2 (Elastic Computing Cloud):

C’est un service web qui fournit une capacité de calcul redimensionnable dans le nuage. L'interface du service Web Amazon EC2 (figure 2.15) 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.

sur l'environnement informatique d'Amazon. Figure ‎ 2-15: Portail d'administration AMAZON EC2

Figure 2-15: Portail d'administration AMAZON EC2 [DOUGLAS, 2009]

l'environnement informatique d'Amazon. Figure ‎ 2-15: Portail d'administration AMAZON EC2 [DOUGLAS, 2009]

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

f. Amazon S3 (Simple Storage) :

C’est un service web de stockage en ligne, conçu pour faciliter l'accès aux ressources informatiques. Comme indique la figure 2.16, 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 buckets 20 et sont accessibles au travers d'un ensemble de services Web (création, suppression, visualisation, sauvegarde, restauration…).

suppression, visualisation, sauvegarde, restauration…). Figure ‎ 2-16: Interface d'administration pour AMAZON

Figure 2-16: Interface d'administration pour AMAZON S3 [SOFT32]

g. Plateforme Force.com de Salesforce :

Force.com est une plateforme de développement d’applications web, lancée en Septembre 2005. Elle supporte les différentes étapes de l'élaboration d'une application, soit le développement, les tests, le déploiement, ainsi que la maintenance [Salesforce2]. Les applications construites sur cette plateforme peuvent être facilement partagées, échangées et installées en quelques clics via le marché en ligne de Salesforce. Force.com propose également un ensemble de fonctionnalités pour créer tout type d’applications professionnelles :

Un système d’exploitation à la demande ;

La possibilité de créer n’importe quelle base de données à la demande ;

Un moteur de workflow 21 pour gérer les échanges entre utilisateurs ;

Le langage de programmation Apex Code pour créer des systèmes complexes ;

Apex Code pour créer des systèmes complexes ; 2 0 Bucket : c’est un es pace

20 Bucket : c’est un espace de stockage sur Amazon S3. 21 Workflow : c’est est la représentation d'une suite de tâches ou opérations effectuées par une personne.

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

Les services Web API de pour la programmation ;

Un environnement pour créer des interfaces graphiques sur mesure.

h. Plateforme OpenNebula :

OpenNebula est une plateforme open-source, permettant de construire n'importe quel type de nuage (privé, public et hybride). Elle a été créée en tant que projet de recherche en 2005 et son premier lancement public a eu lieu en mars 2008. Cette solution gère le stockage, le réseau et les technologies de virtualisation afin de permettre la mise en place dynamique de services multi-niveaux (des groupes de machines virtuelles interconnectées) sur les infrastructures distribuées. Parmi les avantages d’OpenNebula on peut citer :

la construction et la gestion de centres de données virtualisés et des nuages IaaS ;

Le haut niveau de personnalisation du cloud ;

La possibilité d’avoir des informations sur la localisation des machines physiques et virtuelles. En contrepartie, les contraintes que présente cette plateforme sont les suivantes :

Utilisation par défaut du protocole NFS 22 qui n’est pas sécurisé ;

Nécessité d’une grande maîtrise de la part de l’administrateur. L’interface d’administration de cette plateforme est représentée dans la figure 2.17. Elle permet aux développeurs et aux utilisateurs la gestion des ressources physiques et virtuelles.

la gestion des ressources physiques et virtuelles. Figure ‎ 2-17: Portail d'administration de la

Figure 2-17: Portail d'administration de la plateforme IAAS OPENNEBULA [OPENNEBULA]

de la plateforme IAAS OPENNEBULA [OPENNEBULA] 2 2 NFS (Network File System) : c’est un protocole

22 NFS (Network File System) : c’est un protocole qui permet à un ordinateur d’accéder à des fichiers via un réseau.

Chapitre 2 : Cloud Computing

Chapitre 2 : 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.

i. Plateforme Eucalyptus :

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

Créer, lancer, et arrêter des instances de serveurs (ou machines virtuelles) en fonction de ses besoins ;

Mettre en place des machines virtuelles isolées physiquement (qui ne s'exécutent pas sur le même serveur physique). Comme cela en cas de panne, il sera possible de restaurer les instances endommagées et d'assurer une continuité de service ;

Gérer le stockage des données traitées par les machines virtuelles du cloud ;

Configurer de multiples grappes de serveurs comme un seul nuage ;

S’interfacer avec le cloud d’Amazon EC2. Comme l’indique la figure 2.18, la plateforme Eucalyptus fournit une interface Web permettant aux utilisateurs d’effectuer des opérations en libre-service.

d’effectuer des opérations en libre -service. Figure ‎ 2-18: Tableau de bord de la plateforme

Figure 2-18: Tableau de bord de la plateforme EUCALYPTUS [EUCALYPTUS]

j. Plateforme OpenStack :

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

La scalabilité ;

La compatibilité ;

L’évolutivité.

lancée en Mars 2010 et se caractérise par :  La scalabilité ;  La compatibilité

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

La plateforme est composée de trois modules :

OpenStack Compute ;

OpenStack Object Storage ;

OpenStack Image Service. 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.19 montre le tableau de bord d’OpenStack.

La figure 2.19 montre le tableau de bord d’OpenStack. Figure ‎ 2-19 : Tableau de bord

Figure 2-19 : Tableau de bord dOPENSTACK [OPENSTACK]

IX. Etude comparative des différentes plateformes :

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

1. Comparatif des principales offres de Plateforme as a Service (PaaS) :

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

supportés, système de stockage de données, date de lancement et interaction avec les autres plateformes ou

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing
 
     
 
     
 
     

Plateforme Azure

Google AppEngine

Amazon Web Services (AWS)

Fournisseur

Microsoft

Google

Amazon

 

-Microsoft Visual Studio

- Eclipse

- Eclipse

Outils de

- Google Plugin for

- AWS Toolkit for Eclipse

développement

- SDK Azure Services

Eclipse

- Django

- Apache Ant

 

- .Net (C#, C++,

-

Java

- J2EE

Langage

supportés

VB.Net, Delphi …)

-

Python

- .Net

- PHP

-

PHP (Via Java)

- PHP

- Java

-

D’autres langages vont

- Python

 

- Python, Ruby

être supportés à l’avenir

- Ruby …

- Perl (A venir)

 

Stockage de fichiers, tables simples, fichiers sur l’Azure Storage

-

-

Stockage des fichiers

Base de données :

Système de

stockage de

données

avec Google File System

- SQL Server

-

appelée Google Big

Base de données

- MySQL

- Oracle …

 

-

Stockage de données

Table

Fichiers :

structurées sur SQL

Sur le disque dur ou sur le service

services

Exemples d’application développée sur la plateforme

- Hotmail

- Google Wave

- New York Times

- Xbox Live

- Best Buy

- Autodesk

- Bing

- 3Scale

- Rackspace

- Live Mesh…

- Caucho Technology

- Harvard Medical School

Date de

lancement

- Version bêta en

- Avril 2008 pour la

-Version bêta en Août 2006

Octobre 2008 -Version commerciale fin 2009

version Python

-

Version commerciale sortie

 

Avril 2009 pour la version Java

-

en Octobre 2008

Interaction avec

Interopérabilité entre Azure et Google App Engine

-

-Migration possible des applications Zoho sur Google App Engine.

-

ébauche dInteropérabilité

les autres

entre Azure ,

OpenStack et

plateformes ou

Amazon

services

 

-

Intégration avec

Salesforce

Tableau 2-3 : Etude comparative des principales plateformes PaaS

Chacune de ses plateformes présentent des avantages ainsi que des inconvénients. Windows Azure supporte plusieurs langages de programmation et offre une base de données relationnelle. Cependant, il est limité à deux instances de serveurs sur la version bêta.

2. Comparatif des principales offres d’infrastructure as a Service (IaaS) :

L’étude des plateformes IaaS 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 :

(GoGrid, OpenStack et AWS), présenté dans le tableau 2.4. La comparaison est basée sur les critères

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing

Fournisseur ;

Serveur type ;

Systèmes d’exploitation supportés ;

logiciels inclus ;

tarification ;

date de lancement.

 
     
 
     
 
     

Fournisseur

 

ServePath

Rackspace et NASA

 

Amazon

   

-

Serveur avec 2 Go de

-

1.7 Go de RAM 160 Go

-

1 Go de RAM

   

Serveur type

Processeur mono-vis-à- vis à 3 GHz

-

RAM

d’espace disque

80 Go d’espace disque

-

-

Processeur Xeon 1.2 GHz

 

(1coeur)

     

- Windows Server 2003

Systèmes

d’exploitation

-

CentOS Gentoo

- RedHat Linux

-

Windows Server 2003 et

 

-

Debian

- Fedora

2008

-

Fedora

- Gentoo

supportés

- RedHat Linux

- CentOS

-

Ubuntu

- Debian

-

RedHat

- Ubuntu

 

- Suse

 

- IIS7

 

- SQL Server ou MySQL

- SQL Server

-

PHP

- IIS 6 ou Apache IBM

Logiciels inclus

- PHP

-

Apache

DB2

- Apache

-

MySQL

- IBM IDS

- MySQL

 

- Oracle

 

Service de stockage de données : 0.15$ par Go stockés et par mois

Service de sauvegarde : 0.15$ par Go sauvegardés et par mois

Tarification pour les instances EC2 :

Tarification

0,12 $ par heure pour l’usage Windows

*

   

*

0.095 $ par heure

Pour l’usage Linux / Unix

     

-

Version bêta sortie en

Date de lancement

Mars 2008

Février 2008

Août 2006 -Version commerciale sortie en Octobre 2008

Tableau 2-4 : Etude comparative des plateformes IaaS

3. Comparatif des principales offres de Software as a Service (SaaS) :

Dans le tableau 2.5, on présente une étude comparative des principales offres SaaS :

Google Apps, Microsoft Office et SalesCloud. La comparaison est basée sur les critères suivants : Fournisseur, type de paiement, tarif et caractéristiques principales.

comparaison est basée sur les critères suivants : Fournisseur, type de paiement, tarif et caractéristiques principales.

Chapitre 2 : Cloud Computing

Chapitre 2 : Cloud Computing
 
   
   
 
   

Fournisseur

Google

Microsoft

 

Salesforce.com

Type de

Abonnement annuel par utilisateur

Abonnement mensuel par utilisateur

Abonnement mensuel par utilisateur

paiement

 

- 40 € pour la version complète

   

Tarif

- Version standard

De 5,25 à 22 €

 

De 4 à 270 €

   

Plate-forme applicative : - Microsoft Exchange (Messagerie)

-

-

Microsoft SharePoint

 

Accès à des applications multiples

 

Mise à disposition

-

- Gmail (messagerie)

- Google Documents (partage de

documents)

des outils de gestion

Caractéristi

(Partage de documents)

de la relation Client

(CRM)

- Google Agenda

- Google Cloud Connect (interface

Microsoft Office (Logiciels bureautiques)

-

ques

principales

-

Automatisation des

avec les produits Microsoft Office)

-

Offres modulables et

forces de vente et

- Réduction des coûts informatiques

calculées selon les besoins

gestion de contacts.

- Favorise le travail collaboratif

précis de lentreprise

-

Maîtrise des coûts

 

Tableau 2-5 : Etude comparative des offres SaaS

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

La simplicité d’utilisation de l’application ;

L’accès direct à l’application depuis n’importe où dans le monde ;

Les fonctionnalités limitées de l’application (par exemple SalesCloud offre uniquement des outils de gestion de la relation Client, de même, Microsoft Office 365 fournit que les logiciels bureautiques). Les différences sont au niveau :

Des tarifs proposés ;

Du type de paiement (Abonnement mensuel, annuel …) ;

Des versions offertes pour chaque solution SaaS (exemple Google offre une version standard gratuite et une version payante pour son produit, par contre, Salesforce offre uniquement une version payante de son offre Sales Cloud).

Conclusion :

On a présenté dans ce chapitre une description détaillée du cloud computing ainsi que ses

différentes plateformes. Ainsi, on a exposé une étude comparative des principales solutions de marché

(offres PaaS, IaaS et SaaS). Le choix s’est fixé sur la plateforme Google App Engine pour plusieurs

raisons qu’on détaillera dans la partie réalisation. Dans le prochain chapitre on présentera une étude

conceptuelle d’un outil d’aide à la décision d’analyse de flux des caméras IP.

on présente ra une étude conceptuelle d’un outil d’aide à la décision d’analyse de flux des

Chapitre iii :

Etude Conceptuelle

Chapitre 3 Etude Conceptuelle

Chapitre 3 : Etude Conceptuelle

Chapitre 3 : Etude Conceptuelle

Introduction :

Au cours de ce chapitre nous établirons une étude préliminaire du système. On entamera ensuite l’analyse des besoins , cette phase est identifiée par la description des besoins fonctionnels qui présentent les différentes fonctions du système, les besoins non fonctionnels 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 dutilisation et les contraintes techniques existantes. 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 à la conception de la solution.

I. Etude Préliminaire :

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.

1. Méthodologie de développement :

a. UML (Unified Modeling Language) :

Avant de se lancer dans la programmation et l’écriture du code, il est nécessaire d’organiser les idées, les documenter, puis organiser la réalisation en définissant les modules et les étapes. Cette démarche s’appelle la modélisation, elle a été standardisée en produisant un langage de modélisation unifié appelé UML. Pour modéliser les fonctionnalités que doit offrir notre système, on a 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]. Le choix d’UML est justifié par les raisons suivantes :

C’est un langage formel et normalisé, qui encourage l’utilisation doutils et assure le gain de précision et le gage de stabilité ;

C’est un support de communication performant qui facilite la compréhension de représentations abstraites complexes.

C’est un support de communication performant qui facilite la compréhension de représentations abstraites complexes.

Chapitre 3 : Etude Conceptuelle

Chapitre 3 : Etude Conceptuelle

b. Processus de développement 2 TUP :

La famille des « Unified Process » constitue une trame commune pour intégrer les meilleures pratiques de développement. Un processus UP est itératif et incrémental, centré sur l’architecture, conduit par les exigences des utilisateurs, piloté par les risques et orienté composants. Le processus de développement logiciel 2TUP « 2 Track Unified Process » [ROQUES, 2003] se situe dans cette lignée, en insistant sur la non-corrélation initiale des aspects fonctionnels et techniques. Les deux branches d’étude fusionnent ensuite pour la conception du système, ce qui donne la forme d’un processus de développement en Y. Comme l’indique la figure 3.1, le processus 2TUP sarticule autour de 3 phases essentielles :

2TUP s ’ articule autour de 3 phases essentielles : Figure ‎ 3-1 : Le processus

Figure 3-1 : Le processus de développement en Y [ROQUES, 2003]

La branche gauche (fonctionnelle) comporte :

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

L’analyse, qui consiste à étudier précisément la spécification fonctionnelle de manière à obtenir une idée de ce que va réaliser le système en termes de métier.

La branche droite (technique) comporte :

La capture des besoins techniques, qui recense toutes les contraintes et les choix dimensionnant la conception du système ; La conception générique, qui définit les composants nécessaires à la construction de l’architecture technique.

conception générique, qui définit les composants nécessaires à la construction de l’architecture technique. 

Chapitre 3 : Etude Conceptuelle

Chapitre 3 : Etude Conceptuelle

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

risques de niveau technique.

La branche du milieu comporte :

La conception préliminaire, qui représente une étape délicate, car elle intègre le modèle danalyse fonctionnelle dans larchitecture 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é.

On a 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 continue

imposées aux systèmes d’information de l’entreprise :

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

peut le réaliser sous différentes technologies : il suffit de greffer une nouvelle

architecture technique pour mettre à jour un système existant.

Ajout de fonctionnalités : on peut réutiliser une architecture technique.

2. Recueil des besoins fonctionnels :

On désigne par les besoins fonctionnels les différentes fonctionnalités qui seront assurées

par le système et qui seront offertes à l’utilisateur final.

Le futur système doit offrir aux utilisateurs les fonctions suivantes :

Obtenir des statistiques précises sur le nombre de passagers ;

Consulter les statistiques de n’importe où et à tout moment ;

Gérer l’ensemble des caméras installées à différents endroits ;

Afficher la vidéo de la caméra en temps réel ;

Exploiter localement les données quotidiennes de comptage afin d’établir des analyses marketing.

3. Recueil des besoins non fonctionnels :

Après avoir détaillé les besoins fonctionnels de l’application, il est intéressant de se baser

sur certains critères afin de répondre aux besoins non fonctionnels. Ces besoins peuvent être

décrits comme suit :

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

réussite d’une application. Cette contribution est d’autant plus importante lorsqu’il s’agit

23 Ergonomie : http://developer.android.com/design/index.html.

est d’autant plus importante lorsqu’il s’agit 2 3 Ergonomie : http://developer.android.com/design/index.html.

Chapitre 3 : Etude Conceptuelle

Chapitre 3 : Etude Conceptuelle

d’une application mobile. En effet, les interfaces doivent être simples afin de permettre aux

utilisateurs de se concentrer sur les principales fonctionnalités. Ainsi, le nombre de boutons

doit être minimum afin de permettre une navigation plus simple.

Les aspects ergonomiques que doit offrir notre applications sont nombreuses, citons :

Les ActionBar : ce composant remplace les menus disponibles dans les anciennes versions d’Android et permet à l’utilisateur d’accéder facilement aux fonctionnalités les plus importantes de l’application ;

Les Fragments : ils ont pour objectif de permettre une plus grande flexibilité pour les écrans larges tels que les tablettes tactiles ou les Smartphones ;

ListView avec choix multiple : ce composant permet le choix de plusieurs menus

simultanément.

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

réponse des requêtes envoyées au prestataire de service doit être réduit.

La sécurité : le système doit assurer un accès privilégié (chaque utilisateur n’accède à

l’application qu’après une authentification), la confidentialité et l’intégrité des

données stockées dans la base.

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

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

fonctionnalités.

4. Identification des acteurs :

Un acteur est une entité externe qui interagit avec le système par l’envoi et la réception de

messages sous forme d’échange de données. Les acteurs du système MADS Cloud (Mobile

Application of Decision Support Cloud) sont :

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

fonctionnalités du système.

Le Serveur mail : c’est un acteur secondaire, il vérifie l’existence du mail lors de

l’inscription de l’utilisateur. Ainsi, il permet d’envoyer un nouveau mot de passe si

l’utilisateur a perdu ou oublié son ancien mot de passe.

Le Serveur de la caméra IP : c’est un acteur secondaire, il se charge d’envoyer le

flux vidéo de la caméra au système.

5. Modélisation du contexte :

Le modèle de contexte sert à représenter les interactions entre le domaine détude et

l’environnement, et entre le domaine détude et les éventuels domaines connexes.

entre le domaine d ’ étude et l’environnement, et entre le domaine d ’ étude et

Chapitre 3 : Etude Conceptuelle

Chapitre 3 : Etude Conceptuelle

a. Modélisation du contexte dynamique :

Un acteur doit consulter et/ou modifier directement l’état du système, il doit communiquer directement avec le système par émission et réception de messages. Tous les messages peuvent être représentés de façon synthétique sur un diagramme que l’on peut qualifier de diagramme de contexte dynamique. La figure 3.2 représente le diagramme de contexte dynamique du notre système.

le diagramme de contexte dynamique du notre système. Figure ‎ 3-2 : Diagramme de contexte dynamique

Figure 3-2 : Diagramme de contexte dynamique du système

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

Message

 

Entrées

Sorties

1

L’utilisateur s’identifie en introduisant son mail et son mot de passe.

Le système autorise l’accès.

   

Le système enregistre les mises à jour effectuées ;

-

Le système envoie le flux vidéo en temps réel.

-

-

Demande d’ajout, modification ou suppression des

2

caméras ;

-

Demande de visualisation des caméras.

3

L’utilisateur demande d’afficher les statistiques sur le nombre de passagers

Le système affiche les données

4

- L’utilisateur demande de créer un nouveau compte ;

Le système lui crée un nouveau profil

-

- L’utilisateur demande de modifier ses données personnelles.

Le système enregistre les modifications.

-

 

Le système demande au serveur mail de vérifier l’existence

Le serveur de messagerie effectue la vérification et renvoie la réponse au système.

5

de l’adresse mail saisie par l’utilisateur lors de la création de son compte

6

Le système demande au serveur mail de récupérer le mot de passe oublié par l’utilisateur.

Le serveur de messagerie renvoie à l’utilisateur un mot de passe aléatoire.

7

Le système demande d’afficher le flux vidéo de la caméra en temps réel.

Le serveur de la Caméra IP renvoie le flux vidéo.

Tableau 3-1 : Description du diagramme de contexte dynamique

Le serveur de la Caméra IP renvoie le flux vidéo. Tableau ‎ 3-1 : Description du

Chapitre 3 : Etude Conceptuelle

Chapitre 3 : Etude Conceptuelle

b. Modélisation du contexte statique :

On peut compléter le modèle de contexte dynamique par l’étude du contexte statique. Ce dernier spécifie le nombre d’instances d’acteurs reliées au système à un moment donné. La figure montre le diagramme de contexte statique de système MADS Cloud.

le diagramme de contexte statique de système MADS Cloud. Figure ‎ 3-3 : Diagramme de contexte

Figure 3-3 : Diagramme de contexte statistique du système

II. Analyse des besoins fonctionnels :

L’analyse des besoins fonctionnels est la première étape de la branche gauche du cycle en Y. Elle formalise et détaille ce qui a été ébauché au cours de l’étude préliminaire. La figure 3.4 montre la phase de capture des besoins fonctionnels dans le processus de développement

2TUP.

fonctionnels dans le processus de développement 2TUP. Figure ‎ 3-4 : Situation de la capture des

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

de développement 2TUP. Figure ‎ 3-4 : Situation de la capture des besoins fonctionnelles dans 2TUP

Chapitre 3 : Etude Conceptuelle

Chapitre 3 : Etude Conceptuelle

1. Identification des cas d’utilisation :

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

Acteur

Cas d’utilisation

Description

- Responsable Marketing

S’authentifier

L’utilisateur doit s’authentifier afin d’accéder aux différentes fonctionnalités du système.

- Serveur Mail

- Responsable Marketing

 

Ce cas d’utilisation permet à l’utilisateur de créer un nouveau compte ou de modifier ses données personnelles

- Serveur Mail

Gérer compte

- Responsable Marketing

 

L’utilisateur peut gérer l’ensemble de ses caméras (Visualisation, Ajout, modification et suppression).

- Serveur Caméra

Gérer caméra

Responsable Marketing

Consulter statistiques

Ce cas d’utilisation permet d’afficher les données de comptage sous forme d’un graphique (courbe, histogramme, cercle)

Tableau 3-2 : Description‎des‎cas‎d’utilisation

a. Diagramme de cas d’utilisation global initial :

du

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

Le

modèle

de

cas

d’utilisation

global

permet

de

donner

une

vision

globale

d’utilisation global permet de donner une vision globale Figure ‎ 3-5 : Digramme de cas d

Figure 3-5 : Digramme de cas dutilisation global initial

global permet de donner une vision globale Figure ‎ 3-5 : Digramme de cas d ’

Chapitre 3 : Etude Conceptuelle

Chapitre 3 : Etude Conceptuelle

b. Affectation des priorités aux cas d’utilisations :

L’application permet de manipuler une diversification d’opérations. Ceci nous mène à affecter des priorités pour la classification des différents cas d’utilisation selon leurs degrés d’importance dans le système. Le tableau 3.3 représente la priorité associée à chaque cas d’utilisation.

Cas d’utilisation

Priorité *

Gérer caméra

1

Consulter statistiques

1

Gérer Compte

2

S’authentifier

3

Tableau 3-3 : Tableau de priorités

c. Raffinement des cas d’utilisations :

Priorité 1 : Pour le cas d’utilisation le plus prioritaire. Priorité 2 : Pour le cas d’utilisation moyennement prioritaire Priorité 3 : Pour le cas d’utilisation le moins prioritaire

Pour décomposer le système, on a 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, on élabore les diagrammes de cas dutilisation raffinés.

Gérer Caméra :

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

Visualiser caméra ;

Ajouter caméra ;

Modifier caméra ;

Supprimer caméra. La figure 3.6 représente le raffinement du cas d’utilisation « Gérer Caméra »

le raffinement du cas d’utilisation « Gérer Caméra » Figure ‎ 3-6: Raffinement du cas d'utilisation

Figure 3-6: Raffinement du cas d'utilisation « Gérer Caméra »

Chapitre 3 : Etude Conceptuelle

Chapitre 3 : Etude Conceptuelle

Le tableau 3.4 présente la description textuelle du cas d’utilisation «Visualiser Caméra»

Cas d’utilisation

 

Visualiser Caméra

Résumé

Ce cas d’utilisation permet à l’utilisateur de visualiser l’ensemble de ses caméras

Acteurs

Responsable Marketing Serveur de la caméra

Pré condition

Utilisateur identifié et autorisé

Post condition

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

 

1.

L’utilisateur sélectionne une ou plusieurs caméras

2.

Il choisit l’option de visualisation

Scénario principal

3.

Le système demande le flux vidéo du serveur de la caméra

4.

Le serveur renvoie le flux

5.

Le système affiche la vidéo à l’utilisateur

exceptions

Si le serveur de la caméra est en panne, le système affiche un message d’erreur.

Tableau 3-4 : Description‎du‎cas‎d’utilisation‎«‎Visualiser‎Caméra »

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

Cas d’utilisation

Ajouter Caméra

Résumé

Ce cas d’utilisation permet à l’utilisateur d’ajouter une nouvelle caméra au système.

Acteurs

Responsable Marketing

Pré condition

Utilisateur authentifié

Post condition

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

Scénario

1. L’utilisateur saisit les données de la caméra (adresse IP, nom, login, mot de passe, numéro de port et 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

principal