Your SlideShare is downloading. ×
  • Like
Pres xlin401
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
173
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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