Technologies du Web - Architectures matérielles et logicielles

Post on 24-May-2015

248 views 1 download

description

Support de formation

Transcript of Technologies du Web - Architectures matérielles et logicielles

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Technologies Web

Architectures matérielle/logicielle — 9 heures

Pôle universitaire Léonard de Vinci

ILV : MBA MCI Full/Part Time

Année 2013/2014

Progr. MCI Full Time – 9 h

1. Fondamentaux de l’informatique (3 h)

2. Architecture des ordinateurs (1 h 30)

3. Architecture des réseaux (1 h 30)

4. Architecture des applications (1 h)

5. Cloud computing (1 h)

6. Évaluation (questionnaire) (1 h)

Progr. MCI Part Time – 8 h

1. Fondamentaux de l’informatique (2 h)

2. Architecture des ordinateurs (1 h)

3. Architecture des réseaux (1 h)

4. Architecture des applications (2 h)

5. Cloud computing (1 h)

6. Évaluation (questionnaire) (1 h)

Bibliographie

[Za-1] P. ZANELLA, Y. LIGIER, Architecture et technologie

des ordinateurs, 4e édition, DUNOD, 2011.

[Ta-1] A. TANENBAUM, D. WETHERALL, Réseaux, 5e édition,

PEARSON, 2011.

[Ro-1] , P. ROQUES, UML par la pratique, 2e édition,

EYROLLES, 2011.

[Bu-1] R. BUYYA, J. BROBERG, A. GOSCINSKI, CLOUD

COMPUTING (Principles and Paradigms), WILEY, 2011.

Groupes de travail

Organisme Fonction

ICANN Gestion des DNS et attribution des adresses IP

IETF Spécification des protocoles (rédaction des RFCs)

IRTF Spécification des protocoles (rédaction des RFCs)

W3C Spécification des standards du web (patterns et langages)

WHATWG Spécification du langage HTML

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Partie I Fondamentaux

Informa[tion] + [robo]tique = Informatique

1. Fondamentaux de l’informatique

2. Architecture des ordinateurs

3. Architecture des réseaux

4. Architecture des applications

5. Cloud computing

Programme sur fondamentaux

Principaux composants de l’ordinateur

Types d’information/opération

Représentation externe vs interne

Encodage vs codage

Principaux composants

Processeur, aussi appelé CPU*

Espaces** mémoire

Unités périphériques

Clavier

Souris

Écran

Imprimante, etc.

* Central Processing Unit. ** Plusieurs types d’espace mémoire.

Fonction du processeur

Le processeur sert à exécuter les

instructions d’un programme. (Un

programme en cours d’exécution s’appelle

un processus.)

Fonction de la mémoire

Les espaces mémoire (mémoire de masse,

mémoire centrale et registres) servent à

stocker des programmes, des instructions

ou des données.

Fonction des périphériques

Les périphériques (clavier, écran, etc.)

permettent d’interagir avec l’ordinateur. La

communication périphériques-ordinateur est

assurée par le système d’exploitation.

Trois types d’information

Instructions

Données non numériques

Données numériques

Composition d’une instruction

Les instructions associent un code opération

et des opérandes. Ces opérandes désigne

l’ensemble des paramètres impliqués dans

l’exécution d’une opération.

Illustration. — L’addition de deux nombres

fait intervenir une opération – l’addition – et

deux opérandes.

Trois types d’opérations

Opérations d’écriture et de lecture

Opérations logiques

Opérations arithmétiques

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Représentation externe/interne

Codage et adressage de l’information

Problématique du stockage

Fixer la capacité de stockage

Fixer la taille des espaces de stockage

Adresser les espaces de stockage

Parabole du parking

Dimensionnement et adressage des espaces de stockage

Quatre unités de base

Unité de stockage physique

Unité élémentaire d’information

Unité logique d’information

Unité d’information adressable

1

2

3

4

5

6

Commentaire

1. Chaque cellule contient un condensateur et un transistor.

2. Chaque cellule fait l’objet d’une représentation logique (chiffre binaire).

3. Ce chiffre binaire (bit) constitue l’unité d’information la plus élémentaire.

4. L’unité d’information élémentaire sert à former l’unité logique d’information*.

5. L’unité logique d’information est couplée à une adresse.

6. L’unité d’information adressable associe adresse et unité logique.

* L’unité logique porte sur un ou plusieurs octets.

Bit (binary digit)

Le bit est un chiffre binaire qui prend soit la

valeur 0, soit la valeur 1 ; il constitue l’unité

d’information la plus élémentaire : toute

information fait l’objet d’un codage faisant

appel au bit.

Octet (byte)

L’octet représente un jeu de huit bits. Ces

huit bits constituent l’unité logique

d’information « de base » : toute information

fait l’objet d’un codage sur un ou plusieurs

octets.

Mot mémoire

Le mot mémoire constitue l’unité

d’information adressable : il associe unité

logique d’information, dont la fonction est

d’« héberger » une information codée en

binaire, et une adresse.

Écriture et lecture

Les opérations d’écriture et de lecture

portent obligatoirement sur un mot mémoire

qui associe à chaque unité logique

d’information une adresse, facilitant ainsi

l’accès aux informations enregistrées.

Exemples de codage

Caractère Y : 01011001

Chiffre 1 : 00000001

Instruction addition : 10000001

Taille logique des mots

Nombre de bits

1 bit

2 bits

3 bits

8 bits =1 octet (byte)

n bits

Nombre d’informations

21 informations

22 informations

23 informations

28 informations

2n informations

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Codage de l’information

Cas des entiers

Exemple de codage

65 en base décimale i.e. 6510

se traduit par

01000001 en binaire i.e. 010000012.

Explication

65 en base décimale i.e. 6510

est égal à

6 x 101 + 5 x 100

donc 65 en notation condensée.

Explication (suite)

65 en base binaire

est égal à

0+(1 x 26)+0+0+0+0+0+(1x20)

donc 01000001 en notation condensée.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Codage de l’information

Cas des caractères

Standard Unicode

Le standard Unicode se définit comme un

système de codage de caractères universel

associant représentation externe, point de

code et représentation interne.

Cas de la lettre A

Représentation externe : A

Point de code (hex.*) : 0041

Représentation interne (bin.) : 01000001

* Les points de code sont représentés en base hexadécimale (base 16).

Écran BabelMap (I)

Écran BabelMap (II)

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Encodage de l’information

Contrôle des erreurs, cryptage et compression

Problématique de l’ENcodage

Sûreté[-intégrité] des données*

Sécurité des données

Optimisation des ressources

* NON corruption des données.

ENcodage - enjeux

CONTRÔLE DES ERREURS SÛRETÉ DES DONNÉES

COMPRESSION/DÉCOMPRESSION OPTIMISATION DES RESSOURCES

CRYPTAGE/DÉCRYPTAGE SÉCURITÉ DES DONNÉES

Ce qu’il faut retenir

Instructions et données sont

nécessairement représentées par une

séquence de chiffres binaires (0/1).

Conséquence

Il faut distinguer les langages de haut

niveau*, qui permettent de définir le code

source des applications, et les langages de

bas niveau, utilisés pour définir le code

machine*.

* PHP, Java, C++, C, etc. ** Code soumis au processeur avant exécution.

À savoir

Le code source est transformé en code

machine par des logiciels qu’on appelle des

traducteurs ; ces traducteurs font appel à

des langages de haut niveau* et des

langages de bas niveau**.

* Langage C le plus souvent. ** Langage d’assemblage aussi appelé assembleur.

Traduction en deux temps

Première traduction : le compilateur

transforme le code source en bytecode en

faisant abstraction des attentes du

processeur.

Deuxième temps : l’assembleur, aussi

appelé machine virtuelle, traduit le bytecode

en code machine*.

* Le code machine dépend spécifiquement du processeur cible.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Partie II Architecture des ordinateurs

CPU, mémoires et OS

1. Fondamentaux de l’informatique

2. Architecture des ordinateurs

3. Architecture des réseaux

4. Architecture des applications

5. Cloud computing

Programme sur architecture

Architecture du processeur

Hiérarchie des mémoires

Rôle du système d’exploitation

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Architecture du processeur

Unité de commande et unité arithm. et logique

Unité centrale : RAM + CPU

[Za-1] : « Présentation générale », p.26.

Unité de commande

Principaux dispositifs

Compteur ordinal [CO] (registre)

Registre instruction [RI] (registre)

Décodeur (automate)

Séquenceur (automate)

Compteur ordinal [CO]

Le compteur ordinal est un registre (cellule

mémoire) dont la fonction est d’enregistrer

l’ADRESSE de la prochaine instruction à

exécuter.

Registre instruction [RI]

Le registre instruction est un registre (cellule

mémoire) dont la fonction est d’enregistrer

l’INSTRUCTION à exécuter.

Décodeur

Le décodeur est un automate dont la

fonction est de déterminer l’OPÉRATION À

EXÉCUTER à partir du code [opération]

fournie par le registre instruction.

Illustration. — Le code 101 active la sortie

n°5 (8 sorties possibles en tout).

* Rappel. — Les instructions associent code opération et opérandes.

Séquenceur

Le séquenceur est un automate dont la

fonction est de COMMANDER le chargement

des opérandes [dans l’accumulateur] et

l’exécution de l’opération.

Remarque. — Les opérandes sont d’abord

chargées dans le registre mot.

Unité arithmétique et logique

Principaux dispositifs

Accumulateur (registre)

Unité de calcul (de 50 à 250 opérations)

Transferts des données

Opérations logiques

Opérations arithmétiques

Etc.

Accumulateur

L’accumulateur est un registre (cellule

mémoire) dont la fonction est d’enregistrer

les OPÉRANDES des opérations à exécuter.

Cycle de recherche du CPU

[Za-1] : « Unité centrale de traitement », p.193.

Circulation/transfert des informations initié par le CPU

Cycle d’exécution du CPU

[Za-1] : « Unité centrale de traitement », p.194.

Circulation/transfert des informations initié par le CPU

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Hiérarchie des mémoires

Typologie ; rapport vitesse/capacité associé

Typologie des mémoires

Registres

Mémoire centrale i.e. RAM, mémoire vive

Mémoire de masse, de stockage i.e. ROM

Hiérarchie des mémoires

[Za-1] : « Mémoires », p. 154.

Rapport vitesse/capacité

[Za-1] : « Mémoires », p. 185.

Parabole du bureau

Illustration du rapport vitesse/capacité

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Rôle du système d’exploitation

Exploitation des ressources et virtualisation

Exploitation des ressources

Gestion des processus*

Gestion de la mémoire centrale

Gestion des entrées/sorties

Gestion des fichiers

* Allocation du CPU, planification et interruption.

Pile OS

Mémoire

Entrées/Sorties

Processus

Fichiers

Pile système d’exploitation

Virtualisation

En introduisant un niveau d’abstraction entre

l’utilisateur et la machine (interface

graphique ou commande en ligne), le

système d’exploitation est devenu une

machine virtuelle.

Exemples de commandes Linux

login

logout

mkdir (make directory)

vi (editor)

cp (copy)

chmod (change mode)

OS orientés Web

Multitâche/transactionnel

Multiutilisateur

Sûr (conçu pour fonctionner 24h/24h)

Commentaire. — UNIX, Windows Server et

Linux sont les trois systèmes d’exploitation

les plus utilisés*.

* Source : « Usage share of operating systems », wiikipedia.org.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Système d’exploitation

Gestion de la mémoire

Gestion des adresses

Partition : espace mémoire faisant

intervenir une borne inférieure et une borne

supérieure.

Réallocation dynamique : l’adresse

effective des instructions est recalculée par

addition de l’adresse de base* et du

déplacement.

* Borne inférieure de la partition allouée au programme.

Partitions de taille variable

[Za-1] : « Systèmes d’exploitation », p. 370.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Partie III Architecture des réseaux

Architecture matérielle et protocolaire

1. Fondamentaux de l’informatique

2. Architecture des ordinateurs

3. Architecture des réseaux

4. Architecture des applications

5. Cloud computing

Programme sur réseaux

Architecture matérielle

Architecture des protocoles

Terminologie du protocole HTTP

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Architecture matérielle

Typologie des réseaux et des équipements

Typologie des réseaux

E/S (entrées/sorties) : 1 m

PAN (Personal Area Network) : 10 m

LAN (Local Area Network) : 1 km

WAN (Wide Area Network)

Typologie des équipements*

Concentrateur (hub)

Commutateur (switch)

Routeur

* Ne sont présentés que les équipements les plus communs.

Fonction du concentrateur

Le concentrateur est un équipement qui sert

à interconnecter plusieurs ordinateurs à

l’échelle du LAN*.

Exemple. — 50 PC sur un même étage.

* Les ordinateurs ainsi connectés forment un « segment ».

Fonction du commutateur

Le commutateur est un équipement qui sert

à interconnecter plusieurs segments à

l’échelle du LAN*.

Exemple. — 150 PC répartis sur trois

étages-: les trois concentrateurs sont

connectés au commutateur.

* Le commutateur permet d’optimiser la gestion des flux d’information.

Fonction du routeur

Les routeurs sont des équipement qui

servent à interconnecter plusieurs LAN à

l’échelle du WAN.

Remarque. — Internet : association de

« inter » et « network » (le réseau des

réseaux) puis troncation.

Couplage LAN-WAN

routeur

PC

PC

hub switch

switch

hub

PC

PC switch

serveur

serveur

routeur

PC

PC

hub switch

switch

hub

PC

PC switch

serveur

serveur

sous-réseau de communication

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Architecture des protocoles

Principes de fonctionnement

Problématique des réseaux

Dissocier les données et les entêtes*

Structurer les entêtes

Encapsuler/désencapsuler les données

* Informations utilisées par le réseau pour acheminer les données.

Parabole de la lettre

Encapsulation, routage et désencapsulation de la lettre

Modèle OSI

Les logiciels de réseaux se réfèrent à un

modèle d’architecture qu’on appelle le

modèle OSI (Open Systems

Interconnection). Ce modèle fait intervenir

sept couches/strates/niveaux.

Couches du modèle OSI

Logiciels de réseaux

À chacune des couches du modèle OSI

correspond une couche logicielle constituée

de logiciels de réseaux spécialisés.

Couche logicielle vs protocole et PDU

La couche logicielle génère des PDU (messages) en faisant

référence à un protocole

Protocole

Les protocoles désignent un ensemble de

règles destinées à standardiser le

séquencement et le format des informations

contenues dans les « messages » générés

par les logiciels de réseaux.

Parabole de l’enveloppe

Protocole : nom du destinataire, numéro et nom de rue etc.

Types de PDU*

Message : PDU des niveaux 6/7

Segment : PDU des niveaux 4/5

Datagramme : PDU du niveau 3

Frame/paquet : PDU du niveau 2

* Protocol Data Unit.

Principe d’encapsulation

Données Entête Niveau N+ 1

Niveau N Données Entête

Données Entête Niveau N-1

PDU N+ 1

PDU N

PDU N-1

Chemin physique vs logique

[Za-1] : « Réseaux », p. 326.

Exemples de protocoles

HTTP : présentation/appl. (niveaux 6/7)

TCP : transport/session (niveaux 4/5)

IP : réseau (niveaux 3)

Ethernet : liaison (niveau 2)

Protocoles appl. : niveaux 6/7

Protocole Spécification Mise à jour

FTP 1971 1985

SMTP 1982 2008

HTTP 1990 1999

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Partie IV Architecture des applications

Typologie des architectures et langages

1. Fondamentaux de l’informatique

2. Architecture des ordinateurs

3. Architecture des réseaux

4. Architecture des applications

5. Cloud computing

Programme arch. et langages

Modèle d’architecture client-serveur

Modèle d’architecture 3-Tiers

Modèles d’architecture du Web 2.0

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Modèle d’arch. client-serveur

Externalisation/distribution des ressources

Architecture client/serveur

Externalisation des ressources i.e. données/programmes

Message Definition

“The basic unit of HTTP communication,

consisting of a structured sequence of

octets.”

Client and User Agent Definition

Client : “a program that establishes

connections for the purpose of sending

requests.”

User agent : “the client which initiates a

request. These are often browsers, spiders

(web-traversing robots).”

Server Definition

“An application program that accepts

connections in order to service requests by

sending back responses.”

Format des URL

"http:" "//"

host [":" port]

[abs_path]

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Modèle d’architecture 3-Tiers

Éclatement des couches logicielles

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8" />

<title>CV de M. Dupont</title>

</head>

<body>

<h1>M. Dupont</h1>

<h2>Expérience</h2><p>[…]</p>

<h2>Compétences</h2><p>[…]</p>

<h2>Diplômes</h2><p>[…]</p>

</body>

</html> Ap

p.

sta

tiq

ue CV-dupont.html

Architecture 3-Tiers

1. Couche présentation

2. Couche application-métier

3. Couche persistance des données

Couche présentation* :

Couche logicielle responsable de la mise en

page, de la typographie et de la navigation

du site.

Exemples de langages : (X)HTML et CSS

notamment, mais aussi, Javascript.

* Les scripts sont exécutés par le poste client.

Couche application* :

Couche logicielle responsable de la logique

métier et des services techniques : gestion

des sessions et sécurité notamment.

Exemples de langages applicatifs : PHP,

Java, etc.

* Les scripts sont exécutés par le serveur.

Couche données* :

Couche logicielle responsable de l’accès

aux données et de la persistance des

données.

Exemple de langage de requête : SQL.

* Les requêtes sont exécutées par le serveur.

Parabole des couches logicielles

Prise de commande, préparation et approvisionnement

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Plate-forme vs arch. logicielle

Plate-forme Lamp

Plate-forme logicielle

La notion de plate-forme désigne l’ensemble

des composants logiciels (système

d’exploitation et environnement d’exécution)

qui supportent le fonctionnement d’une

application.

Ex. : plate-forme Lamp

Système d’exploitation Linux

Serveur HTTP Apache

Serveur de base de données MySQL

Composant applicatif PHP (Zend Engine*)

* Moteur d’exécution des scripts codés en PHP.

Intégration du composant PHP

Option 1 : le composant PHP est un

module, c’est-à-dire une extension du

serveur HTTP Apache.

Option 2 : le composant PHP n’est pas

utilisé comme module du serveur HTTP

Apache. Dans ce cas, le couplage Apache-

PHP est assuré par une interface*.

* Source : « PHP : SAPI et modes de communication », developpez.com.

Zend Engine

Le composant PHP contient un moteur

d’exécution (scripting engine) — Zend

Engine — dont la fonction est d’interpréter

les scripts codés en PHP. (Zend Engine

transforme le code source en code machine

puis exécute le code.)

Architecture logicielle

La notion d’architecture logicielle désigne

l’ensemble des composants (ou briques

logicielles) qui structurent une application.

Couches logicielles et plate-forme associée

Couches HTML/CSS, PHP et SQL | Plate-forme LAMP

Les 3 couches logicielles

Pile application

Couche Métier

Couche Données

Env. d’exécution

Couche Présentation

Pile Application

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Modèles d’arch. du Web 2.0

Participation, RIA, SOA et Web sémantique

Patterns du Web 2.0

Participation Pattern : Wiki, CMS, Blog

RIA/MVC Pattern : applications riches

SOA Pattern : Web Services

Semantic Web Pattern

Tech. des Wikis/CMS/Blogs

Langage de structuration (X)HTML

Feuilles de style CSS

Langage d’interaction Javascript*

Langage applicatif PHP

Langage de requête SQL

* Utilisé pour exécuter des programmes interactifs sur poste client.

Tech. des patterns RIA/MVC

Framework Flex (Adobe)

Framework Silverlight (Microsoft)

Technologie(s) AJAX

Commentaire. — Les frameworks sont des

espaces de travail qui associent langage,

outils de développement et environnement

d’exécution.

Tech. du pattern SOA

Protocole SOAP

Format de description des services WSDL

Annuaire de référencement UDDI*

Framework .NET (Microsoft)

Framework Java/J2EE

* Web service dédié à la publication des services disponibles.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Partie V Cloud computing

Virtualisation et classes de services

1. Fondamentaux de l’informatique

2. Architecture des ordinateurs

3. Architecture des réseaux

4. Architecture des applications

5. Cloud computing

Programme cloud computing

Principes de la virtualisation

Logiciels de virtualisation

Avantages de la virtualisation

Modèle économique du cloud

Classes de services

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Principes de la virtualisation

Hyperviseur vs superviseur

Base technologique du cloud

Multicore computing : plusieurs UAL

Clustering : N serveurs — LAN

Grid computing : N serveurs — WAN

VMM* vs machines virtuelles

* Virtual Machine Monitor.

[Bu-1] : « Virtual machines provisionning and migration services », p. 126.

Virtualization Layer (VMM or Hypervisor)

Workload

La notion de workload désigne une

application et sa plate-forme logicielle hors

système d’exploitation.

Exemple de workload

CMS WordPress

Serveur HTTP Apache

Serveur de base de données MySQL

Module applicatif PHP (Zend Engine)

Philosophie de l’hypervision*

Principe 1 : avoir un minimum de code pour

réduire le nombre de failles de sécurité.

Principe 2 : limiter le code partagé entre

[…] machines virtuelles pour augmenter leur

isolation réciproque.

* Source : « Présentation des hyperviseurs xen et kvm », octo.com.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Logiciels de virtualisation

VMM vs VIM

Logiciels de virtualisation

Les logiciels de virtualisation sont des

hyperviseurs aussi appelés VMM (Virtual

Machine Monitor).

Hyperviseurs leaders du marché : VMWare,

Xen et KVM (hyperviseurs open source).

* Hyperviseur [vs superviseur : système d’exploitation].

Logiciels d’administration

Les logiciels d’administration des machines

virtuelles sont des VIM (Virtual Infrastructure

Manager).

Outils leaders du marché : VMWare vCloud,

Open Nebula et Apache VCL.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Avantages de la virtualisation

En termes de qualité logicielle

La virtualisation…

Plus de rendement

Plus de sûreté/sécurité

Plus de stabilité

Plus d’élasticité

… en termes de qualité.

Rendement

Le chargement de plusieurs machines

virtuelles sur un même serveur permet de

diminuer le nombre de serveurs… et la

consommation électrique.

Sûreté

En cas d’accident, le cloud permet de

récupérer – sans rupture de service – une

machine virtuelle préalablement répliquée

sur d’autres serveurs.

Sécurité

Le plantage d’une machine virtuelle – qui

serait dû à une attaque –, n’a pas

d’incidence sur le fonctionnement des autres

machines virtuelles.

Stabilité

La mise à jour de l’OS d’une des machines

virtuelles, n’aura pas d’incidence sur les

machines virtuelles qui utiliseraient une

version antérieure.

Élasticité

En cas de besoin – pic de charge

(augmentation brutale du trafic) –, le cloud

permet de solliciter automatiquement des

ressources supplémentaires sur d’autres

serveurs… Inversement, le cloud est

capable de libérer de ressources.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Modèle économique du cloud

Ressource as a [Service vs Product]

Comparaison des modèles

Ressource as a Service

Abonnement

Segmentation

Mutualisation

Ressource as a Product

Investissement*

Standardisation

Logique propriétaire

* L’investissement implique un amortissement qui engage dans la durée.

Ressource as a Product

Stratégie

de « courte traîne »

basée sur

standardisation

Ressource as a Service

Stratégie de « longue traîne »

basée sur

segmentation [personnalisation]

Mutualisation des services

SaaS : mutualisation de logiciels

PaaS : mutualisation des plates-formes

IaaS : mutualisation des infrastructures

Valeur ajoutée du cloud…

Réduction des coûts (virtualisation)

Flexibilité des coûts (pay-per-use)

Contrôle des coûts (longue traîne)

… en termes de coûts.

Valeur ajoutée du cloud…

Accès ATAWAD

Fonctions de partage

Simplicité des interfaces

… en termes d’usages.

Valeur ajoutée du cloud…

Pas de logiciel/matériel à installer

Pas de contrainte de ressources

Pas de maintenance

… en termes d’administration.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Classes de services du cloud

IaaS, PaaS et SaaS

Classes de services

IaaS (Infrastructure as a Service)

PaaS (Platform as a Service)

SaaS (Software as a Service)

Rôle des acteurs du cloud

Exploitant

Architecte

Éditeur

Architecte

Éditeur

Utilisateur

PaaS

IaaS

SaaS

met en œuvre

met en œuvre

développe

dimensionne

déploie

utilise

Services IaaS côté client

Nombre de machines virtuelles

Nombre de CPU et espace de stockage

Degré d’élasticité (Load Balancing)

Disponibilité (en %)

Services PaaS côté client

Sélection du langage de développement

Synchronisation* des plates-formes

Administration des applications

Facturation des applications

* Déploiement : migration de l’application vers la plate-forme de production.

Déploiement vers Google App Engine

Déploiement d’une application depuis l’environnement Eclipse

Services Google App Engine

Main (Instances, Versions etc.), Data, Administration, Billing

Services SaaS côté client

Gestion des ressources

Partage des ressources

Agrégation de flux/données

Ouverture/intégration de services*

* Web services : API permettant d’accéder à des ressources.

Ce qu’il faut retenir

Self-service ATAWAD*

Facturation des services à la demande

Scalabilité/élasticité des applications

* Any Where, Any Time, Any Device.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Conclusion

Ordres de grandeurs et

synthèse sur couches logicielles

Ordres de grandeur

Processeurs : le Pentium IV compte environ 125 millions

de transistors.

Systèmes d’exploitation : les systèmes d’eploitation

comptent plusieurs millions de LOC*.

Centres de données : les centre de données (Data

Center) plusieurs milliers de serveurs.

Applications : les applications modernes comptent

plusieurs dizaines de milliers de LOC*.

* Lines of Code.

Pile OS

Mémoire

Entrées/Sorties

CPU

Fichiers

Pile OS

Pile { OS+réseau }

Couche 5

Couche 3

Couche 1

Couche 7

Couche 4

Couche 2

Couche 6

Pile Réseau

Pile OS

Pile { OS+réseau+applications }

Couche Métier

Couche Données

Env. d’exécution

Couche Présentation

Pile Applications

Pile Réseau

Pile OS

Contexte Interface(s) MACHINE VIRTUELLE Couche virtualisée

Utilisateur Administration d’un

ordinateur

Interfaces

graphiques :

Windows, MacOs ,

etc.

Logiciel : système

d’exploitation Hardware

Développeur Développement

d’une application

Code source de

haut niveau : PHP,

Python, Java, etc.

Composant logiciel

de traduction :

compilateur

Code exécutable de

bas niveau :

assembleur

Éditeur de langage Développement

d’un compilateur

Code source de

haut niveau : Java,

C, C++, etc.

Composant logiciel

de traduction :

assembleur

(JVM, CLR, AVM)

Code machine

[soumis au

processeur]

Exploitant d’un

centre de données

Administration d’une

ferme de serveurs

(data center)

Interface

graphique : VIM ;

hyperviseur : VMM

Environnement :

workload et système

d’exploitation

Hardware

Synonymes. — Code exécutable - bytecode.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Annexe : fondamentaux

Systèmes de numération

Systèmes de numération

[Za-1] : « Représentation interne des informations », p. 45.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Annexe : fondamentaux

Types de données

Types de données

[Za-1] : « Représentation interne des informations », p. 56.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Annexe : fondamentaux

Langages

Définition d’un langage

[Za-1] : « Langages de programmation », p. 425.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Annexe : fondamentaux

Programmation

Env. de programmation

[Za-1] : « Langages de programmation », p. 419.

Edition des Liens

[Za-1] : « Langages de programmation », p. 421.

Macro vs sous-programme

[Za-1] : « Langages de programmation », p. 413.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Annexe : arch. des ordinateurs

Ordres de grandeur

Transistors

[Za-1] : « Présentation générale »; p. 21.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Annexe : arch. des ordinateurs

Système d’exploitation

Trois scénarios…

1. Lancement manuel de 3 programmes

2. Lancement automatisé et séquentiel

3. Lancement automatisé

et exécution des programmes en parallèle

… Trois systèmes.

Exploitation par lots - batch

[Za-1] : « Systèmes d’exploitation », p. 355.

PA

S d

e s

ystè

me d

’explo

itatio

n

Exploitation par lots - spooling

[Za-1] : « Systèmes d’exploitation », p. 355.

Multiprogrammation

[Za-1] : « Systèmes d’exploitation », p. 357.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Annexe : arch. des réseaux

Complément sur les protocoles

Trois principes…

Hiérarchisation - couche logicielle

Encapsulation - service

Abstraction - machine virtuelle

…Trois définitions

Principe de hiérarchisation

Une couche n doit nécessairement faire

appel aux services de la couche (n-1) ; la

couche n ne peut pas accéder aux services

subalternes de niveaux (n-2), (n-3), etc.

* Aussi appelées API (Application Programming Interface).

Principe d’encapsulation

Une couche n fait appel aux services* de la

couche (n-1) sans pouvoir accéder au

programme de la couche (n-1).

* Aussi appelées API (Application Programming Interface).

Principe d’abstraction (I)

Une couche n fait abstraction des

problématiques traitées par la couche de

niveau (n-1). Les logiciels de la couche (n-1)

sont des machines virtuelles.

Principe d’abstraction (II)

En introduisant un niveau d’abstraction entre

l’utilisateur et la machine, le système

d’exploitation apparaît lui aussi comme une

machine virtuelle*.

* Voir supra : transparent n°66.

Rôle de la couche physique

La couche physique fait intervenir les

équipements dont le rôle est de transformer

le signal numérique en signal analogique et

inversement.

Exemple. — Le modem*.

* Modulateur-demodulateur.

Numérique vs analogique

[Za-1] : « Réseaux », p. 315

Protocole IP : niveau 3

Protocole TCP : niveau 4/5

Generic HTTP Message

Request-Line | Status-Line

Suivi de :

*(message-header CRLF)

Suivi de :

CRLF [ message-body ]

Requête du client

Request-Line

Method (GET, POST, etc.)

URI

Protocol Version

Exemple. — GET /rfc.html HTTP/1.1

Réponse du serveur

Status Line + Header + Body

Status Line

- Success Code | Error Code

- Protocol Version

Message Header

Message Body

Typologie des Status Code

Successful : 2xx

Redirection : 3xx

Client Error : 4xx (404 - Not Found)

Server Error : 5xx

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Annexe : arch. des applications

Définition d’un proxy ; définition d’un cache

Proxy Definition

“An intermediary program which acts as

both a server and a client.” [Les serveurs

d’application jouent aussi le rôle de client en

soumettant leurs requêtes à des serveurs de

bases de données.]

Cache Definition

“A program that stores responses in order to

reduce the response time and network

bandwidth consumption.”

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Annexe : arch. des applications

Langages incontournables du Web

Langages orientés Web

PHP (Utilisé côté serveur.)

Java [utilisé côté serveur : servlets]

Java [utilisé côté client : applets]

Javascript (Utilisé côté client.)

Indice TIOBE 2013

Source : « TIOBE programming … October 2013 », tiobe.com.

Indice TIOBE 2012

Source : tiobe.com.

Indice TIOBE 2011

Source : tiobe.com.

Objective-C

Main programming language used by Apple

for the OS X and iOS operating systems and

their respective APIs.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Annexe : arch. des applications

Zend Engine vs JVM

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Annexe : arch. des applications

Qualité logicielle

Facteurs qualité ISO 9126

Capacité fonctionnelle (Functionnality)

Fiabilité (Reliability)

Facilité d’utilisation (Usability)

Facteurs qualité ISO 9126

Rendement (Efficiency)

Maintenabilité (Maintainability)

Portabilité (Portability)

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Annexe : cloud computing

Modèles de virtualisation

Paravirtualisation*

« Modification du noyau de l’OS de la

machine virtuelle afin de coopérer avec

l’hyperviseur pour l’accès aux ressources

physiques et délégation des opérations

d’E/S. »

Source : « Présentation des hyperviseurs xen et kvm », octo.com.

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Annexe : cloud computing

Modèles de déploiement

Modèles de déploiement

Cloud public (mode partagé ou dédié)

Cloud privé

Cloud hybride (public et privé)

Modèle cloud public partagé

[Bu-1] : « SLA management », p. 419.

Modèle cloud public dédié

[Bu-1] : « SLA management », p. 416.

Modèle cloud public : PaaS

Exploitant

Architecte

Éditeur

Architecte

Éditeur

Utilisateur

PaaS

IaaS

SaaS

met en œuvre

met en œuvre

développe

dimensionne

déploie

utilise

Modèle cloud public : IaaS

Exploitant

Architecte

Architecte

Utilisateur

PaaS

IaaS

SaaS

met en œuvre

met en œuvre

développe

dimensionne

déploie

utilise Éditeur

Éditeur

Modèle cloud privé

Exploitant

Architecte

Architecte

Utilisateur

PaaS

IaaS

SaaS

met en œuvre

met en œuvre

développe

dimensionne

déploie

utilise

Éditeur

Éditeur

Frédéric Simonet

Formateur Entreprise 2.0

Email : frederic.simonet@yourwebsite.fr

Tél. : 06 62 63 94 49

Annexe : création de valeur

Stratégie acquisition vs vente

Stratégies d’acquisition*

Achat de licence (Buy)

Location de service (Lease)

Développement

Build on Services

Build on Open Source

* Motivées par réduction des coûts/gains de productivité.

Stratégies de vente*

Modèle propriétaire

Modèle « as a Service »

Modèle open source

* Motivées par la création de valeur.