Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau...

33
Informatique de l’Internet Joël Quinqueton Dépt MIAp, UFR IV UPV - Université Montpellier III

Transcript of Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau...

Page 1: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Informatique de l’Internet

Joël QuinquetonDépt MIAp, UFR IVUPV - Université Montpellier III

Page 2: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Contenu du cours

• Les compétences visées : Programmer enréseau

• Programme :– Notion de Système informatique– Réseaux informatiques– L’internet : définition, réalisation de site, utilisation– Langages de l’internet : SGML, HTML, XML ,

PHP, Javascript, Java

Page 3: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Organisation du cours

• Notions sur les systèmes et les réseaux• TDs en Java, PHP, Javascript

– Modification d’une page par elle mêmeavec Javascript

– Notions de pages web dynamiques avecPHP

– Notions élémentaires de programmationpar objets en Java (L3?)

Page 4: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Plan du cours (1)• Généralités

– Infrastructures physique, protocoles basniveaux

– Organisation physique– TCP/IP– Internet

Page 5: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Plan du cours (2)• Couches de niveaux supérieurs

(logicielles)– Protocoles haut niveau: DNS, Mail, ftp,

HTTP, HTML– Programmation réseau (scripts, applets,

servlets, …)

Page 6: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Plan du cours (3)• Concepts réseaux et conceptions des

applications– Agents logiciels, objets distribués– Echange de données: XML, DTD,

schémas, XSL– …

Page 7: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Bibliographie• Nombreux sites contenant des tutoriaux sur

PHP, Javascript, Java• Divers cours, exercices, trouvés sur Internet• http://www.commentcamarche.net/• Le site du cours:http://www.univ-montp3.fr/miap/ens/MASS/XLIN401

Page 8: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Evaluation• TD/TP

– Expérimentation sur machine desprotocoles

– Programmation réseau• Javascript, php,• Éventuellement: Java, Perl, XML, XSL

• Projet personnel: réalisation d’unjoueur automatique au go-moku(morpion) ou Master Mind– Tournoi à travers le réseau

Page 9: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Programmation

• Architecture « Client-Serveur »– Vous naviguez sur le web: vous êtes le

client et vous passez d’un serveur à unautre

• Programmation réseau– Programmer sur (pour) le client– Programmer sur (pour) le serveur

Page 10: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Architecture client-serveur

• Répartition de la charge de travail entreun serveur et un poste distant (le client).Par exemple:– Lancement d’une application stockée sur

un disque distant (l’application tourne sur leposte client)

– Accès à vos comptes et fichiers(l’application « entrée », ou « login »)

Page 11: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Architectureclient-serveur: exemple

• Lancement d’une application stockéesur un disque distant– L’application tourne sur le poste client– L’application demande périodiquement un

accès à vos fichiers

Page 12: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Programmation réseau• Exécution client

– Le navigateur prend en charge l’exécution du code(applets)

– Le code a un accès limité aux ressources côté client

• Exécution serveur– Envoi d’un requête au serveur commandant l’exécution

d’un programme– Scripts embarqués– Application (servlets)

Page 13: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Informatique etprogrammation

• Applets ou servlets: langage Java• Langage de programmation

– Compilé (Java)– Interprété (PHP ou Javascript)

Page 14: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

L’informatique (1)• Il existe une science de l’informatique• Plusieurs théories imbriquées

– logique et calculabilité, algorithmique et analysed'algorithmes, conception et sémantique deslangages de programmation, bases de données,principes des systèmes d'exploitation, architectures desordinateurs et évaluation de leurs performances, réseaux etprotocoles, langages formels et compilation, codes et cryptographie,apprentissage et zero-knowledge algorithms, calcul formel, démonstration automatique,conception et vérification de circuits, vérification et validation de programmes, temps réel etlogiques temporelles, traitement d'images et vision, synthèse d'image, robotique, ...

Page 15: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

L’informatique (2)

• La jeunesse de l'informatique permet àcertains de nier son aspect scientifique

• Mythes du hacker («fous de laprogrammation»)– Programmeur préférant ignorer toute

considération théorique qui puisse l’aiderdans ses constructions souvent trèshabiles

Page 16: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

L’informatique (3)

• Une autre caractéristique del'informatique est le côté instable desprogrammes

• Les phénomènes continus sont rares eninformatique– Une panne n'est en général pas le résultat

d'une dégradation perceptible. Elle arrivesimplement brutalement.

Page 17: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

L’informatique (4)

• Une autre caractéristique del'informatique est le côté instable desprogrammes– C'est ce côté exact de l'informatique qui est

très attrayant– En informatique, il y a peu de solutions

approchées– En informatique, il y a une certaine notion

de l'exactitude

Page 18: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Objectifs

• Rudiments d’algorithmique– Conception et analyse des algorithmes– Implémentations des structures de

données• Initiation à la programmation

– Initiation à la programmation impérative– Initiation à l’approche distribuée

Page 19: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

• Architecture machine• Types de base,

affectation• Instructions

conditionnelles• Boucles• Types de variables• Fonctions• Références et valeurs,

test d’égalité

Plan (1)

• Tris simples (bulles,par insertion)

• Tris récursifs(Quicksort, fusion)

• Recherche dans destables

Page 20: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Références (1)

• Une seule

http://mon.univ-montp2.fr

http://www.univ-montp3.fr/miap/ens

Page 21: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Références (2)

Page 22: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Références (3)• Sites web

– http://www.editeurjavascript.com/cours/– Tutorials d’algorithmique

• Cours de Robert Cori et Jean-Jacques Lévy– Serveur Spédago de Spécif

• Cours / TD sur l'algorithmique• Cours / TD sur la programmation

Page 23: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Références (4)

• Livres– Brondeau J. Introduction à la

programmation objet en Java, Dunod,1999.

– Eckel B. Thinking in Java, Mind View Inc.– Bob Sedgewick, Algorithms, 2nd edition,

Addison-Wesley, 1988. En français:Algorithmes en langage C, trad. par Jean-MichelMoreau, InterEditions, 1991.

Page 24: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Architecture d’un ordinateur(1)

Page 25: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Architecture d’un ordinateur(2)

• Toutes les opérations effectuées enmachine sont exécutées par leprocesseur

• Aucune opération n’est faite enmémoire principale

• Le processeur opère sur des donnéespréalablement stockée en mémoire

Page 26: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Architecture d’un ordinateur(3)

Processeur MIPS 32 4kP

Page 27: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Architecture d’un ordinateur(4)

• La mémoire est une composanteconstituée de circuits spécialisés dansla localisation de mots mémoire à partird’une adresse

• Une adresse = un nombre = un endroitoù se trouve une donnée

Page 28: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Architecture d’un ordinateur(5)

Page 29: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Architecture d’un ordinateur(6)

• Le processeur sait faire un nombre finid’opérations

• Tout programme doit être traduit en unesuite d’opérations qu’il sait exécuter

• Ces opérations sont souvent appeléesinstructions machines

Page 30: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Architecture d’un ordinateur(7)

• Pour additionner deux nombres m et n.– Amener l’adresse de m dans un registre– Amener dans un second registre le contenu de la mémoire

vive à cette adresse– Idem pour le second nombre n– Exécuter l’addition (module arithmétique)– Amener dans un registre l’adresse où stocker le résultat– Le stocker dans la mémoire vive

Page 31: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Architecture d’un ordinateur(8)

Page 32: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Architecture d’un ordinateur(8)

• Un processeur est composé de plusieurs modulesspécialisés– Module arithmétique– Contrôle de flux– Calcul d’adresse– Traitement des interactions avec les périphériques

• Deux processeurs diffèrent par l’ensemble desinstructions machine dont il dispose

Page 33: Informatique de l’Internetjq/Cours/XLIN401/cours/cours07/presXlin401.pdf · Programmation réseau •Exécution client –Le navigateur prend en charge l’exécution du code (applets)

Compilation (1)

• Les langages de programmation dehaut niveau permettent de s’abstrairedu matériel

class Hello { public static void main ( String[] args ) { System.out.println("Hello World!"); }}