Contenu du cours Informatique de l Internet Joël Quinqueton Dépt MIAp, UFR IV UPV Université Montpellier III Les compétences visées : Programmer en ré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, script, Organisation du cours Notions sur les systèmes et les réseaux TDs en, PHP, script Notions élémentaires de programmation par objets en Notions de pages web dynamiques avec PHP Modification d une page par elle même avec script Généralités Plan du cours (1) Infrastructures physique, protocoles bas niveaux Organisation physique TCP/IP Internet Plan du cours (2) Couches de niveaux supérieurs (logicielles) Protocoles haut niveau: DNS, Mail, ftp, HTTP, HTML Programmation réseau (, servlets, scripts ) 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 Visualisation de réseaux d information: problématique, applications, aspects génie logiciel, format d échange de données, 1
Bibliographie Nombreux sites contenant des tutoriaux sur, PHP, script Site de Sun Divers cours, exercices, trouvés sur Internet Le site du cours: www.univ-montp3.fr/miap/ens/mass/xlin401 TD/TP Evaluation Expérimentation sur machine des protocoles Programmation réseau javascript, php, Éventuellement: Perl, XML, XSL Projet personnel: réalisation d un joueur automatique au go-moku (morpion) Tournoi à travers le réseau Programmation Architecture «Client-Serveur» Vous naviguez sur le web: vous êtes le client et vous passez d un serveur à un autre Programmation réseau Programmer sur le client Programmer sur le serveur Architecture client-serveur Répartition de la charge de travail entre un serveur et un poste distant (le client). Par exemple: Lancement d une application stockée sur un disque distant (l application tourne sur le poste client) Accès à vos comptes et fichiers (l application «entrée», ou «login») Architecture client-serveur: exemple Lancement d une application stockée sur un disque distant L application tourne sur le poste client L application demande périodiquement un accès à vos fichiers 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) 2
Informatique et programmation Applets ou servlets: langage Langage de programmation Compilé () Interprété (PHP ou script) L informatique (1) 10% des investissements des sociétés (hors bâtiments) Croissance très rapide du nombre de cadres et techniciens informaticiens [1982-1991] Science encore jeune (30 ans) Gigantesque cathédrale de constructions matérielles et intellectuelles Cori, Levy L informatique (2) Il existe une science de l informatique Plusieurs théories imbriquées logique et calculabilité, algorithmique et analyse d'algorithmes, conception et sémantique des langages de programmation, bases de données, principes des systèmes d'exploitation, architectures des ordinateurs et évaluation de leurs performances, réseaux et protocoles, 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 et logiques temporelles, traitement d'images et vision, synthèse d'image, robotique,... L informatique (3) La jeunesse de l'informatique permet à certains de nier son aspect scientifique Mythe du hacker («fous de la programmation») hacker [...] n. 2. One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming. L informatique (4) La jeunesse de l'informatique permet à certains de nier son aspect scientifique Mythes du hacker («fous de la programmation») Programmeur préférant ignorer toute considération théorique qui puisse l aider dans ses constructions souvent très habiles L informatique (5) Une autre caractéristique de l'informatique est le côté instable des programmes Les phénomènes continus sont rares en informatique Une panne n'est en général pas le résultat d'une dégradation perceptible. Elle arrive simplement brutalement. 3
L informatique (6) Une autre caractéristique de l'informatique est le côté instable des programmes 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 Objectifs Initiation à la programmation objet Initiation à la programmation impérative Initiation à l approche objet avec Rudiments d algorithmique Conception et analyse des algorithmes Implémentations des structures de données Plan (1) Plan (2) Architecture machine Types de base, affectation Instructions conditionnelles Tris simples (bulles, par insertion) Tris récursifs (Quicksort, fusion) Recherche dans des tables Objets Champs et Méthodes Références et valeurs, test d égalité Méthodes: valeur de retour visibilité classe vs instance La jdk (AWT, java.util, ) Boucles Références (1) Références (2) Une seule http://ead.univ-montp3.fr:8900 http://www.univ-montp3.fr/miap/ens 4
Références (3) Sites web Tutorials Kjell, CCSU (USA) Brandeis University (USA) Campione and Walrath, Addison Wesley 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 Références (4) Livres Brondeau J. Introduction à la programmation objet en, Dunod, 1999. Eckel B. Thinking in, Mind View Inc. Bob Sedgewick, Algorithms, 2nd edition, Addison-Wesley, 1988. En français: Algorithmes en langage C, trad. par Jean-Michel Moreau, InterEditions, 1991. (1) (2) Toutes les opérations effectuées en machine sont exécutées par le processeur Aucune opération n est faite en mémoire principale Le processeur opère sur des données préalablement stockée en mémoire (3) (4) La mémoire est une composante constituée de circuits spécialisés dans la localisation de mots mémoire à partir d une adresse Une adresse = un nombre = un endroit où se trouve une donnée Processeur MIPS 32 4kP 5
(5) (6) Le processeur sait faire un nombre fini d opérations Tout programme doit être traduit en une suite d opérations qu il sait exécuter Ces opérations sont souvent appelées instructions machines (7) (8) 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 (8) Un processeur est composé de plusieurs modules spé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 des instructions machine dont il dispose Compilation (1) Les langages de programmation de haut niveau permettent de s abstraire du matériel class Hello { public static void main ( String[] args ) { System.out.println("Hello World!"); } } 6
Compilation (2) La compilation consiste à traduire un langage de haut niveau en langage machine System.out.println("Hello World!"); 00011011011010010100 000110110101 11011010010010010100 001110110110 00110011011010010100 000110110111 Compilation (3) Le résultat d une compilation dépend de la plate-forme (type d ordinateur) sur lequel elle est effectuée Un programme compilé sur Mac ne tourne pas sur un PC, un programme compilé sur PC ne tourne pas sous Linux, etc. (1) est un langage portable Le même programme, compilé une seule fois, peut-être exécuté sur n importe quelle plate-forme (2) La compilation produit le même fichier de bytecodes, quel que soit la plateforme Salut.java javac Salut.class Hello.java javac Hello.class Compilation Compilation Bytecodes Compilation Compilation Bytecodes (3) Le même programme, compilé une seule fois, peut-être exécuté sur n importe quelle plate-forme Heuh? La Machine Virtuelle (JVM) Les bytecodes sont interprétées différemment selon la plate-forme sur laquelle ils sont exécutés Hello.class Interpréteur Le processeur Bytecodes Machine Virtuelle 7
Avantages / Inconvénients Algorithmique (1) Portabilité Génération automatique de la documentation des programmes Rapide dissémination via Internet Très grande compatibilité http Performances amoindries par l interpréteur Gestion de la mémoire via le «garbage collector» Un programme présente deux aspects un contenu et une forme un sens et une grammaire Pour l'ordinateur, il suffit que le programme soit correct au niveau de la forme (la syntaxe) Darmont Algorithmique (2) L ordinateur effectuera toujours les manipulations commandées par un programme syntaxiquement correct La première étape de la compilation consiste à vérifier que le programme écrit est syntaxiquement correct Si l'on fait une erreur de syntaxe, le compilateur affiche un message d'erreur Algorithmique (3) La cohérence du programme (du contenu) n'est pas examinée ou évaluée par le compilateur L'analyse du problème à traiter, la preuve de la cohérence et de la pertinence de sa solution sont préalable à l écriture du programme On doit Algorithmique (4) fixer l'objectif du programme établir la liste des données à manipuler et des opérations à exécuter, et les ordonner. La description de la suite des opérations élémentaires ordonnées capables de résoudre le problème posé constitue un algorithme Premier programme Algorithme: Imprimer(«bonjour tout le monde») Programme: public class BonjourApplet extends Applet { public void init() { System.out.println("Bonjour tout le monde"); } } 8