WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception et réalisation d'un système de contrôle du centre de données


par Abir MBAREK
Université de Sfax, Tunis  - Licence appliqué en réseaux informatique  2017
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

26

Chapitre 2.

Technologies mises en oeuvre

27

I. Introduction

Dans ce chapitre, nous présentons les différentes technologies mises en oeuvre tout en détaillant les outils utilisés pour la réalisation de notre système. Ce chapitre est composé en les grandes parties suivantes :

· Les spécifications matérielles.

· Les spécifications logicielles.

· Le réseau de capteurs.

· Le cloud: UBIDOTS

II. Environnement matériel

Ce chapitre récapitule l'essentiel des recherches que nous avons faites concernant les deux cotés hardware et software pour les différents composants du notre système. Il contient également une justification des différents choix adoptés ainsi que l'explication des étapes suivies.

Figure 4: Environnement matériel

1. La Carte raspberry pi

i. Description

Le Raspberry Pi est un nano-ordinateur mono_carte à processeur ARM conçu

par le créateur de jeux vidéo David Braben, dans le cadre de sa fondation Raspberry Pi. Cet ordinateur (carte Raspberry), qui a la taille d'une carte de crédit, est destiné à encourager l'apprentissage de la programmation informatique. Il permet l'exécution de plusieurs variantes du système d'exploitation libre GNU/Linux et des logiciels compatibles. Il est fourni nu (carte mère seule, sans boîtier, alimentation, clavier, souris ni écran) dans l'objectif de diminuer les coûts de carte.

28

ii. Modèles et choix de la carte raspberry

Tous les modèles de Raspberry Pi sont répartis en deux familles. En effet, chaque modèle appartient à une famille :

· Famille A: modèle A, modèle A+

· Famille B: modèle B, modèle B+, modèle B génération 2 Chaque famille de Raspberry pi se destine à un usage différent :

Famille A: elle est utilisée avec moins de matériel (pas de ports Ethernet, moins de RAM), et caractérisé par une faible consommation d'énergie par rapport à la famille B

Famille B: elle est utilisée avec un meilleur matériel. Ces modèles sont plutôt destinés à des utilisations plus exigeantes en ressources comme le traitement de texte ou le visionnage de vidéos.

Dans notre projet nous travaillons avec la modèle B illustré avec la Figure suivante.

Figure 5: RPI modèle B

iii. Spécifications techniques

Le tableau 1 ci-dessous présente les spécifications techniques du modèle de la

carte Raspberry pi que nous avons utilisée.

29

Tableau 1: Spécifications techniques des modèles des raspberry "famille B"

Critère

Modèle B

Modèle B+

B Génération 2

Processeur

700 MHz

700 MHz

900 MHz

Mémoire vive

512 Mo

512 Mo

1Go

Alimentation

700mA (3,5W) via
micro-USB

600Ma (3,0W) via
micro-USB

600mA (3,0W) via
micro-USB

Stockage des
données

Lecteur de carte
SD/MMC

Lecteur de carte micro-

SD

Lecteur de carte micro-

SD

Port USB

2

4

4

Prix

358

358

358

 

Les périphériques du Raspberry

Les ports disponibles dans la carte Raspberry sont :

· Les ports GPIO

· Les ports USB 2.0

· La sortie audio et sortie vidéo

· Le port Ethernet

· Le port HDMI

· Le connecteur de carte SD,

On peut connecter au Raspberry Pi plusieurs périphériques tels que :

· Les périphériques d'entrée : un clavier, une souris

· Les périphériques de sortie : un moniteur qui est relié par un câble HDMI

· La carte MicroSD ayant comme rôle la mémoire du raspberry vu qu'il n'utilise pas de disque dur comme un ordinateur classique.

Un câble Ethernet pour pouvoir le connecter à Internet ou un dongle wifi USB qui doit être compatible avec le Raspberry- ou une clé dongle 3G

Une caméra qui peut être parmi ces trois types : Caméra IP ou Raspberry Pi

30

Figure 6 : Connectivité du Raspberry avec les périphériques

2. Capteur telos

Chaque modèle de capteur a des caractéristiques spécifiques en termes de capacité de mémoire, capacité de stockage, du modèle du microcontrôleur et du débit des données. La Figure 7 représente des échantillons de capteurs

Figure 7 : Echantillon des capteurs TELOS

Tableau 2 présente les principales caractéristiques des capteurs les plus connus et les plus utilisés dans le domaine de la recherche.

Tableau 2 : Caractéristiques des capteurs les plus courants

Nom du capteur

RAM

Mémoire

Stockage

Débit

Telos

4 KB

128 KB

512 KB

40 Kbps

TelosA

4 KB

60 KB

512 KB

250 Kbps

TelosB

10 KB

48 KB

1 MB

250 Kbps

 

Dans notre travaille nous choisissons le capteur TelosB à base des caractéristiques suivantes :

· Une faible consommation d'énergie.

· Une longue durée de vie de la pile.

· Un débit et une portée moyenne.

31

Caractéristiques TelosB:

· Processeur: MSP430 microcontrôleur, 8 Mhz, 10k RAM, 48k Flash(ROM).

· Sensors: Lumière, Température, Humidité.

· Transmission: Norme de transmission: IEEE 802.15.4 (ZigBee), Débit: 250 Kbps (Bande 2.4-2.4835GhZ), Antenne intégrée.

· Portée: Real-Test: 30 m (indoor: 1 obstacle), 80 m (outdoor), From datasheet: 50 m (indoor), 125 m (outdoor).

· Système d'exploitation: Contiki.

· Programmable via l'USB.

Figure 8: Les capteurs Tmote Sky (TelosB)

32

III. Environnement logiciel et langages utilisés

Dans notre projet nous utilisons les logiciels et les langages suivants :

Figure 9: Environnement logiciel

1. Raspbian OS

Raspbian est un système d'exploitation libre basé sur Debian optimisé pour le matériel Raspberry pi. Il gère les ressources matérielles du Raspberry Pi. Il exécute les applications en leur affectant les ressources nécessaires à leur bon fonctionnement, gère les entrées/sorties et permet d'unifier et de contrôler l'accès des programmes aux ressources matérielles par l'intermédiaire des pilotes.

Cependant, Raspbian ne fournit pas simplement un système d'exploitation basique, il est aussi livré avec plus de 35 000 paquets, c'est-à- dire des programmes pré-compilés livrés dans un format optimisé, pour une installation facile sur votre Raspberry Pi.

2. Contiki/Cooja

i. Instant Contiki

· Un environnement de développement simplifié. Sous la forme d'une

virtuelle Vmware. Contiki est un système d'exploitation open source.

machine

 

· C'est un système configurable pour les réseaux de capteurs.

· Contiki est un système d'exploitation conçu pour prendre le moins de place possible, avec une faible empreinte mémoire parce qu' il est écrit en langage C.

·

33

Contiki autorise deux modes de fonctionnement : soit multitâche, soit basé sur les événements (orienté évènement.).

Un système utilisant Contiki contient des processus (des applications ou des services). La communication entre ces processus se fait par :

Le mode multitâche : une bibliothèque doit être installée. Les fonctions associées à cette bibliothèque n'accèdent pas directement à l'ensemble des ressources du capteur sans fil. Elles doivent, dans certains cas, faire appel à la partie du noyau dédié à la gestion des événements. Cette structure à deux niveaux a pour conséquence une dégradation des performances du système quand le mode multitâche est activé.

L'envoi d'événements : Le noyau du système Contiki est orienté évènement. L'idée d'un tel système est que chaque exécution d'un processus par une application ce n'est qu'une réponse à un évènement.

Les évènements peuvent être classés en trois types :

timer events: sont des évènements basés sur un temporisateur dans le but de générer un évènement après un certain laps de temps. C'est très pratique pour les actions périodiques, ou dans le monde des réseaux comme la synchronisation.

external events: sont des évènements qui proviennent de l'extérieur souvent par des équipements connectés au microcontrôleur par des interfaces d'entrée/Sortie (I/O). Ces équipements lancent des interruptions à chaque fois une actions est détectée (ex. accéléromètre, détecteur de mouvement, etc.)

internal events: sont des évènements internes générés par des processus pour communiquer avec d'autres processus (ex. informer le processus de traitement que les données sont prêtes pour le traitement).

Ces évènements peuvent avoir les informations suivantes :

process: un évènement adressé à un processus. Il peut être destiné à un processus spécifique ou bien à tous les processus enregistrés.

event type: le type d'évènement. Le programmeur peut définir les types d'évènements destinés au processus afin de pouvoir les différencier entre eux (comme le cas de réception de paquet ou de transmission de paquet).

data: certaines données peuvent être générer pour un processus via des évènements.

Ce type d'évènement est le principe de base du système d'exploitation Contiki.
Les évènements sont « postés » aux processus. Les processus s'exécutent pendant

34

qu'ils reçoivent les évènements et ils se bloquent pour attendre d'autres évènements lorsqu'il n'y en a plus.

ii. Simulateur Cooja

Cooja est un simulateur/ émulateur de réseau de capteurs appelé motes pour

Contiki.

Il permet de simuler les connexions réseaux et d'interagir avec les capteurs.

Le code exécuté par les noeuds est le même chargé sur des capteurs ou des

noeuds physiques.

Les capteurs supportés par Cooja sont : Telos, exp5438, wismote, micaz, etc.

La simulation avec Cooja fournit une grande flexibilité, un faible coût et un

contrôle total de la plate-forme expérimentale

3. Outil de développement ANDROID STUDIO

Pour réaliser le développement de notre application de supervision de centre de

données, plusieurs choix d'environnement de développement s'offre à nous (Android Studio, C#, Visual Basic, etc.). Nous avons choisi Android Studio 1.5.1, comme un environnement de développement.

La plateforme Android est un OS (Operating System) pour téléphone mobile et tablette tactile, promu par Google.

4. XML

XML permet à l'utilisateur de définir des marqueurs (balises) qui facilitent le

parcours au sein du fichier et donc la lecture de l'information. Utiliser dans l'application Android pour l'interface graphique.

5. Java

C'est un langage de programmation orienté objet utilisable sur divers systèmes d'exploitation. Il est un langage portable. Il est utilisé très largement dans le monde du développement Android.

6. Python

Python est un langage de programmation objet, multi-paradigme et

multiformes. Il favorise la programmation impérative structurée, fonctionnelle et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions. Il est conçu

35

pour optimiser la productivité des programmeurs en offrant des outils de haut niveau et un système simple à utiliser.

Il permet d'une part, la connexion entre le coordinateur du réseau de capteur et le Raspberry et d'autre part, la connexion entre le carte Raspberry et l'UBIDOTS.

7. PHP

C'est un langage de programmation utilisé pour produire des pages web dynamiques via un serveur http.

Il permet la connexion entre l'application Android et le base de données. Il représente la niveau deux de l'architecture trois tiers.

8. MySQL

Il est un système de gestion de base de données (SGBD). Il est multithread et multiutilisateur. Utiliser pour la création de base de données de l'application.

9. Apache

Le logiciel libre apache http server (apache) est un serveur http créé et maintenu au sien de la fondation Apache.

IV. Le réseau de capteurs

Cette partie consiste à exposer les réseaux des capteurs sans fil qui sont de plus en plus utilisés dans l'environnement et l'industrie grâce notamment aux développements réalisés dans le domaine des technologies sans-fils.

Un réseau de capteurs sans fil RCSF : (WSN: Wireless Sensors Networks) est un ensemble de capteurs autonomes, interconnectés par des liaisons sans fil.

RCSF est un réseau ad hoc (des réseaux sans fil s'organisent sans infrastructure définie préalablement) capables de récolter et de transmettre des données environnementales d'une manière autonome.

Norme IEEE 802.15.4 (couche physique et couche MAC)

Le 802.15.4 est un protocole de communication défini par l'IEEE permet d'obtenir des liaisons sans fil à:

V' Très faible consommation des dispositifs embarqués par mise en veille.

V' faible portée de quelques centaines de mètres (théoriquement 100 mètres)

V' faible débit (maximum 250kB/s)

36

V' Faible taille du code à embarquer

V' Leur durée de vie est la durée de vie de leur batterie (Il faut minimiser les dépenses énergétiques, car l'énergie est une contrainte clé dans les réseaux de capteurs).

V' Bas prix.

Les appareils constituant les réseaux de capteurs sont donc très limités en termes d'énergie, mémoire, et capacité de processeurs.

La norme IEEE 802.15.4 propose une couche physique et une couche liaison de données adaptées aux applications à faible débit dont l'autonomie énergétique est une contrainte forte. Dans cette première partie, nous allons en présenter les rôles de ces deux couches.

1. Couche physique

La couche application a pour Rôle de :

· Détection d'énergie.

· Mesure de la qualité de la liaison.

· Disponibilité du canal.

· Emission et réception des données. Bande de fréquences:

· 16 canaux dans la bande de fréquence de 2.4 GHz: 250 kbps.

· 10 canaux dans la bande de fréquence de 902 à 928 MHz: 40 kbps.

· 1 canal dans la bande de fréquence de 868.3 MHz: 20 kbps.

2. La couche d'accès au médium (MAC)

Rôle de la couche MAC est :

· Gère le mécanisme d'accès au support

· Garantit l'intégrité des données

· Supporte les associations et dissociations au réseau.

· La validation des trames.

Il existe cependant deux modes de fonctionnement de la couche MAC selon le type de topologie utilisé et le besoin en débit garanti, à savoir :

· le mode non- beacon utilisant CSMA/CA

· le mode beacon, avec l'envoi à période régulière d'une balise pour synchroniser les dispositifs, garantissant un débit au capteur ayant un GTS (c'est le mode utilisée dans le réseau des capteurs).

3. Le standard 6LoWPAN

802.15.4 est utilisé par de nombreuses implémentations basées sur des protocoles propriétaires ou sur IP (Internet Protocol), comme le ZigBee et le 6LoWPAN.

La pénurie d'adresse IP est un problème connu qui dispose d'une solution :

(couche réseau et couche application)

37

IPv6. Une tendance est d'amener Internet sur des appareils de plus en plus petits pour pouvoir les contrôler à distance.

Ces deux aspects réunis en un même problème nous donnent comme solution le protocole 6LoWPAN (IPv6 Low Power Wireless Personnal Area Networks). Pour cela nous choisir 6lowpan le standard la plus adapté à être exploité dans notre travaille (on a besoin de l' Internet pour l'envoie de valeurs depuis réseau de capteurs vers Ubidots).

Figure 10 : Architecture réseau du standard 6LoWPAN

4. Couche réseau

6LoWPAN a été développé pour définir une couche d'adaptation d'IPv6 pour des systèmes à faibles ressources.

· Il défini les mécanismes d'encapsulation et de compression d'entêtes permettant

communication IEEE

aux paquets IPv6 d'être envoyés ou reçus via le protocole de 802.15.4.

· 6LoWPAN devrait permettre à IPv6 d'intégrer des matériels informatiques.

38

Figure 11 : Adaptation d'IPv6 par le standard 6LoWPAN

5. Connexion entre les capteurs

Chaque entité (noeud) communique directement avec sa voisine. Pour communiquer avec d'autres entités, il est nécessaire de faire passer ses données par d'autres qui se chargeront de les acheminer. Pour cela, il est d'abord primordial que les entités se situent les unes par rapport aux autres, et soient capables de construire des routes entre elles : c'est le rôle du protocole de routage.

Les capteurs sans fil communiquent par le biais des ondes radioélectriques. N'étant pas intégrés à un réseau préexistant; les capteurs communiquent grâce à un réseau dit « ad hoc », capable de s'organiser sans infrastructure définie préalablement. Ceci implique que chaque capteur puisse retransmettre une information

indépendamment ou avec l'aide des autres capteurs et ceci afin d'envoyer
l'information à une « station de base : sink » capable de transmettre l'information à l'utilisateur final par le biais d'Internet ou d'un réseau télécom GSM dans la majorité des cas (carte raspberry dans notre projet).

V. Le Cloud : UBIDOTS

Le Cloud est une plateforme informatique fournissant aux entreprises des services avec l'illusion d'une infinité des ressources accessible de n'importe quel lieu, quel temps, quel personne.

Il consiste à déporter sur des serveurs distants des stockages et des traitements informatiques traditionnellement localisés sur des serveurs locaux ou sur le poste de l'utilisateur.

Le Cloud est un modèle qui permet un accès réseau à la demande et partage des ressources informatiques configurables (telles que réseaux, serveurs, stockage, applications et services).

Figure 12: Le cloud

· Les différents services

Le Cloud peut être décomposé en trois couches :

1. IaaS (Infrastructure as a Service)

C'est le

: infrastructure en tant que service.

service de plus bas niveau. Il est géré par les architectes réseaux.

39

Figure 13: L'infrastructure as a Service (IaaS)

2. PaaS (Platform as a Service): plate-forme en tant que service. Elle est destinée aux développeurs d'applications

40

Figure 14: La couche PaaS

3. SaaS (software as a service) : logiciel en tant que service. Il est le « produit final » pour les utilisateurs.

Figure 15: Logicielle as a service (SaaS)

VI. Conclusion

Après avoir terminé l'étude du projet et nous choisissons une solution à étudiée, il nous reste de décider dans quel environnement nous allons travailler, exposer les choix techniques utilisés et le langage adopté. Dans le chapitre suivant nous présentent la phase de spécification et conception.

41

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Enrichissons-nous de nos différences mutuelles "   Paul Valery