Cahier des modules de IR de 3e année

Bloc 1: Sciences de l'ingénieur (2 ECTS, responsable: Julien Cervelle)

Conduite de projet II (2 ECTS - coefficient 6)

Volume horaire sur une période :

  • 16h de cours
  • 16h de TD

Compétences

  • Préparer, planifier, suivre, et gérer un projet informatique

Objectifs

  • Savoir initialiser un planning et savoir établir un point d’avancement avec un logiciel de gestion de projet.
  • Savoir analyser des aléas classiques pendant le déroulement d’un projet et proposer des solutions de poursuite.
  • Savoir communiquer l’état d’avancement d’un projet.
  • Intégrer la gestion des délais, la gestion des coûts, la gestion de la qualité et la gestion des personnes dans la conduite d’un projet.
  • Savoir analyser l’information et des tableaux de bord de suivi de projet pour définir les priorités de pilotage.

Contenu

  • Application à la gestion de projet avec un logiciel
    • Initialisation immédiate (sans connaissance opératoire préalable du logiciel) du planning d’un projet simple avec un logiciel de gestion de projet sous un paramétrage simplifié.
    • Visualisation immédiate (sans connaissance opératoire préalable du logiciel) de l’avancement d’un projet simple avec un logiciel de gestion de projet sous un paramétrage simplifié.
    • Déroulement, par groupe de deux participants, d’un projet de développement d’un système en six points d’avancements successifs. Réitération de la séquence suivante pour chaque point : prise de connaissance des données d’avancement et des incidents de déroulement (ressource indisponible, problème technique, oubli d’activité, demande de modification, refus d’un livrable…), calcul de la première projection à achèvement avec le logiciel de gestion de projet, analyse des zones de pilotage, calcul des scénarios de poursuite, mise à jour du tableau de bord, compte rendu d’avancement et présentation des résultats.
  • Pilotage d’un projet avec Simultrain
    • Présentation du simulateur Simultrain et constitution des équipes de quatre participants. Présentation du projet et des différents tableaux de bord de suivi des délais, des coûts, de la qualité et des aspects humains. Affectations des ressources au projet et initialisation des tableaux de bord.
    • Sur trois phases successives le simulateur fait dérouler le temps en accéléré. Les participants qui tiennent le rôle de Chef de projet sont mis dans un état de stress du fait des nombreuses informations qu’ils ont à gérer : messages de la direction, problèmes de logistique, téléphone, mail, problèmes techniques, problèmes humains, etc. Les participants sont sollicités pour prendre des décisions qui auront des effets sur la suite de leur projet et sur les facteurs de performance.
    • Analyse en séances plénières, entre les phases successives, des aléas rencontrés par chaque groupe et des décisions prises.

Bloc 2: Technologie informatique (11 ECTS, responsable: Dominique Revuz)

Génie Logiciel (5 ECTS - coefficient 14)

Projet: 60h

Volume horaire sur trois périodes :

  • 24h de cours
  • 36h de TD

Objectifs

  • Être capable d'analyser et de gérer ensuite un projet.

Contenu

  • Les notions de logiciel
  • Le développement d'applications (en notation UML)
    • Grosses applications
    • Gros systèmes
  • Outils de développement
    • Outils classiques
    • Outils CASE
    • Exemple d'une application de grande taille
  • La notion de risque
  • La qualité logicielle

Langages de scripts (2 ECTS - coefficient 6)

Volume horaire total

  • 28h de cours
  • 28h de TD

Compétences

  • Utilisation de langages de scripts pour des tâches ponctuelles de développement de petits applicatifs ou d'administration système ou réseau

Perl (coefficient 2)

Volume horaire :

  • 12h de cours
  • 12h de TD

Contenu

  • Partie sur Perl
    • Les systèmes informatiques sont de plus en plus hétérogènes et en permanence interconnectés. Les développeurs et les administrateurs système et réseau ont besoin d'être polyvalents dans le monde de l'entreprise, il leur faut donc des outils souples, performants et capables de s'interfacer rapidement à des protocoles et à des formats de fichiers multiples et variés. Ce cours présente deux exemples de logiciels libres permettant cette interopérabilité: le langage Perl avec sa souplesse, sa puissance et ses riches bibliothèques, et Apache, le serveur web le plus utilisé au monde.
    • Perl est un langage très riche et puissant. C'est une boîte à outils fort utile dans de nombreuses situations, le couteau suisse du monde Unix. Ses nombreuses bibliothèques qui touchent des domaines très variés le rendent vite irremplaçable aux yeux de ceux qui en acquièrent la maîtrise.
    • Apache est le serveur web le plus utilisé au monde, c'est la référence dans le domaine du web. La fondation Apache est très motrice dans les technologies web et connexes: XML, Perl, Java, serveurs d'applications, etc. Sa maîtrise facilite le travail de l'administrateur système et réseau ainsi que la compréhension de l'utilisation du web au quotidien.
    Programme:
    • Bases du langage Perl:
      • scalaires,
      • structures de contrôle,
      • listes,
      • tableaux,
      • fonctions,
      • tables de hachage,
      • fichiers et entrées/sorties,
    • Programmation avancée en Perl:
      • expressions régulières,
      • gestions des erreurs et exceptions,
      • références,
      • modules,
      • programmation objet,
    • Modules de Perl:
      • requêtes web avec LWP,
      • analyse de HTML,
      • analyse de XML,
      • interfaces réseau (FTP, SSH, POP3, SMTP, etc),
    • Accès aux bases de données avec BDI,
    • Graphisme avec Perl/Tk.
    • Serveur web Apache:
      • configuration,
      • multilinguisme,
      • restriction par adresse IP ou par mot de passe,
      • hôtes virtuels,
      • HTTPS,
    • Un exemple de web dynamique en Perl/Apache avec CGI:
      • rappels (X)HTML et formulaires,
      • applications web,
      • bases de données,
    • Introduction à mod_perl et Mason, les moteurs Perl d'Apache.

Ruby (coefficient 1)

Volume horaire :

  • 4h de cours
  • 4h de TD

Contenu

  • Introduction à Ruby

Python (coefficient 3)

Volume horaire :

  • 12h de cours
  • 12h de TD

Contenu

  • Introduction au Python. Programme modifiable sans préavis :-)
    • prise en main rapide du langage (les types de base : entiers, chaînes, listes, tables de hachage); manipulations de chaînes
    • structures conditionnelles, fonctions; arguments nommés, arguments par défaut; premiers programmes utiles
    • expressions régulières; gestion de fichiers; exemples: génération de fichiers de zone DNS (forward/reverse)
    • Écriture de classes simples; API Python DB (exemples avec mysql)
    • le Python pour les moins nuls: jouons un peu avec lambda/map/filter/reduce/[ foo(x) for x in l if bar(x) ]
    • surcharge d'opérateurs; foncteurs; exemple: matrices creuses
    • un peu de réseau: sockets, select; écriture d'une petite application client/serveur (invocation distante, introspection)

XML et XSLT (1 ECTS - coefficient 3)

Volume horaire :

  • 12h de cours
  • 12h de TD

Objectifs

  • Maîtriser les programmes XSLT et les schémas XML.

Contenu

  • Introduction à XML.
  • Introduction à XSLT version 2.0 et aux normes annexes X Path, XSLFO.
  • Transformation de documents XML par application de programmes écrits en XSLT: traitement par défaut, création et suppression de noeuds.
  • Production de documents XHTML à partir d'un document XML par transformation en XSLT: combinaison de plusieurs documents XML, production de plusieurs documents XHTML, espaces de noms.
  • Rationalisation de la structure de documents XML par transformation en XSLT.
  • Utilisation et écriture de schémas XML: types nommés, types anonymes; types simples, types complexes; espaces de noms; références à des clés.

Administration de bases de données (1 ECTS - coefficient 4)

Volume horaire :

  • 16h de cours
  • 8h de TD

Objectifs

  • Du SQL à l'administration de bases de données

Contenu

  • Pour le cours:
    • Oracle
    • DBA: le métier
    • Architecture du SGBD
    • Le requêteur
    • Organisation: user, role, profile, tablespace, fichiers
    • Traitement des requêtes
    • Optimisation
  • Pour la partie TP: scripting et console d'administration
    • Écriture assistée d'un script d'aministration
    • Détection des problèmes, analyse et résolution

J2EE environnement distribué (2 ECTS - coefficient 8)

Volume horaire :

  • 24h de cours
  • 24h de TD

Objectifs

  • Acquérir les compétences fondamentales liées aux applications J2EE

Contenu

  • Introduction aux applications Multi-Niveaux
  • Évolution du Web statique vers le Web dynamique
  • Les bases du J2EE
    • Le JDBC
      • les principes de base
      • les "Datasources"
    • Les Servlets
      • les principes de base
      • les Filtres
      • les "Event listener"
    • Les JSPs
      • les principes de base
      • les "Taglibs"
    • Les JavaBeans
    • La sécurité
    • Le déploiement d'une application web
  • Le J2EE en environnement distribué:
    • Le JNDI
    • Le JMS
    • Le RMI/IIOP
    • Le JTA/JTS
    • Les EJBs
      • Session "Stateless et Stateful"
      • Entité
      • MDB
      • Le déploiement d'une application d'entreprise
  • Les exercices consistent à développer une application Web avec Eclipse, ce qui implique:
    • le développement de Servlets, JSPs et Javabeans
    • l'utilisation de JDBC, DataSource et JNDI
    • la mise en oeuvre et l'utilisation de la sécurité
    • le déploiement de l'application dans un environnement Tomcat.

Bloc 3: Ingénierie des réseaux (12 ECTS, responsable: Gilles Roussel)

Corba (2 ECTS - coefficient 5)

Projet: 20h

Volume horaire :

  • 10h de cours
  • 14h de TD

Objectifs

  • Être capable de développer en Java, de sécuriser et d'optimiser des applications réparties Corba.

Contenu

  • L'architecture
    • Architectures réparties et middleware
    • Architecture objet
  • La communication
    • Protocole RPC, GIOP et IIOP
    • Identifiants IOR
  • Le langage IDL
    • Interfaces et Traduction en Java
  • Les techniques de liaison, d'implantation et d'activation
    • Héritage, Délégation, Adaptateurs d'objets BOA/POA
  • La localisation des objets
    • Références
    • Service de nommage
    • Service de courtage
  • L'invocation dynamique et l'invocation asynchrone
    • Invocation dynamique
    • Types génériques
    • Objets par valeurs
  • La sécurité
    • Mécanismes et algorithmes
    • SSL et Corba
    • Service de sécurité Corba
    • Administration de la sécurité
  • L'optimisation de performance
    • Répartition de charge
    • Intercepteur de requêtes
    • Gestion de cache
  • La sûreté de fonctionnement
    • Réplication
    • Transactionnel
  • La communication de groupe

Temps Réel, Théorie et Application avec Java (1 ECTS - coefficient 4)

Volume horaire :

  • 8h de cours
  • 16h de TP

Objectifs

  • Connaissance des problématiques temps réel.
  • Compétence de développement temps réel en Java.

Contenu

  • Ce cours a un double objectif: d'une part de décrire les principes théoriques liés à l'ordonnancement de tâches dans un système temps réel et d'autre part de décrire comment ces principes sont mis en oeuvre en Java grâce à la norme Java Temps Réel (RTSJ).
  • Nous montrerons comment créer une tâche temps réel et comment lui associer des contraintes temporelles ainsi qu'un modèle de trafic. Nous montrerons comment déterminer la faisabilité d'un système de tâches. Cette détermination nécessite de comprendre la méthode de calcul des temps de réponse pire cas des tâches.
  • Nous décrirons les algorithmes de synchronisation utilisés lors du partage d'une ressource ainsi que les problèmes associés (inversions de priorité non bornée, interblocages).

Sécurité des réseaux (1 ECTS - coefficient 4)

Volume horaire :

  • 12h de cours
  • 16h de TP

Objectifs

  • Connaître la problématique de sécurisation de réseaux et de systèmes
  • Savoir définir une stratégie de sécurisation pour une entreprise

Contenu

  • Après une présentation chiffrée des enjeux de la sécurité, le cours décrit les principaux concepts de la sécurité informatique en s'appuyant sur des exemples. Il définit ensuite dans le détail les éléments d'une politique de sécurité et aborde enfin les composants d'une architecture sécurisée. Une dernière partie traite de certains points techniques particuliers liés à la sécurité informatique : les techniques d'authentification et de sécurisation des données, les réseaux sans-fil, les Réseaux Privés Virtuels, les Plans de Continuité d'Activité. Une introduction aux Méthodes et Normes maintenant disponibles en sécurité informatiques clôt le cours. (Durée 8h, utilisation d'Internet pour la recherche d'informations)
  • Le TP sécurisation consiste à protéger une machine de type serveur Web/FTP (Linux - Apache - ProFTP) par sécurisation de son environnement (paramètres kernel, protections fichiers, politique de mots de passe, TCP Wrapping, configuration du Firewall interne [utilisation de netfilter]) et de ses applications (configuration apache, ajout du module SSL, configuration FTP, configuration SSH). Une fois les protections en place, le TP propose la mise en place d'IDS (système [TripWire] et Réseau [Snort]) et l'utilisation rapide d'outils d'audit (Nmap, Nessus). (Durée 8h, utilisation d'Internet pour la recherche d'informations)
  • Le TP intrusion aborde différentes techniques d'intrusion sur une page Web d'authentification dans le but de mieux comprendre les éléments à vérifier lors de la conception de telles pages. Il est basé sur les différents niveaux d'un jeu réalisé par une société spécialisée dans la sécurité. (Durée 8h, utilisation d'Internet pour la recherche d'informations)

Modélisation des réseaux (3 ECTS - coefficient 10)

Projet: 20h

Volume horaire :

  • 18h de cours
  • 18h de TD
  • 18h de TP

Objectifs

  • Savoir construire une modélisation cohérente d'un réseau pour en faire une simulation informative.

Contenu

  • Généralités sur la modélisation et l'analyse des performances
  • Les chaînes de Markov
    • Temps discret
    • Temps continu
  • Les files d'attentes simples
    • Modèles de réseaux à commutation de paquets: M/M/1, M/M/1/N
    • Modèles de réseaux à commutation de circuit: M/M/C/C, M/M/C/C/N
    • Autres modèles
  • Les réseaux de files d'attente
    • Réseaux ouverts: théorème de Jackson
    • Réseaux fermés: théorème de Gordon et Newell, Mean Value Analysis
    • Application au contrôle de flux
  • Les simulations
    • Types de simulation
    • Intervalles de confiance
  • Des applications
    • Modèles de réseaux ATM
    • Modèles de réseaux cellulaires
    • Modèles de réseaux multi-services

Exposés système et réseaux (2 ECTS - coefficient 10)

Volume horaire total

  • 48h de TD

Exposés systèmes d'exploitation (coefficient 5)

Volume horaire :

  • 24h de TD

Objectifs

  • Savoir faire une présentation d'un sujet non étudié en cours.
  • Réaliser un site web introductif sur une technologie informatique.
  • Apprendre à réaliser un exposé technique.

Contenu

    • Réalisation d'un exposé et d'un site Web sur un thème choisi avec le responsable de cours. Les exposés des années précédentes sont à l'adresse suivante: http://www-igm.univ-mlv.fr/~dr/xall.php
    • Quelques sujets d'exposés des années précédentes:
      • Les annotations en Java
      • Introduction à la Programmation Orientée Aspect
      • Automatisation de l'installation de Windows (Unattended)
      • JRat - Analyser pour optimiser
      • Nagios et la supervision
      • La biométrie
    Déjà plus de 250 exposés et 1.500.000 visiteurs.

Nouvelles technologies réseaux (coefficient 5)

Volume horaire :

  • 24h de TD

Objectifs

  • Être capable d'appréhender et de comprendre les nouvelles technologies liées aux réseaux.

Contenu

  • Il s'agit de faire étudier par les apprentis, sous la forme d'exposés présentés à l'ensemble de la promotion, des innovations en matière de réseaux.
    • nouvelles technologies de transmission
    • nouvelles architectures de commutation
    • nouvelles architectures de sécurité
    • nouvelles technologies applicatives
    • nouveaux outils d'administration et de supervision.

Protocoles avancés (1 ECTS - coefficient 4)

Volume horaire total

  • 12h de cours
  • 8h de TP

ATM (coefficient 2)

Volume horaire :

  • 6h de cours
  • 4h de TP

Objectifs

  • Comprendre et être capable de mettre en oeuvre ATM

Contenu

  • ATM
    • Le réseau ATM
      • Architecture et protocole
      • Principe de la commutation
      • Architecture des commutateurs
      • Circuits virtuels
      • Couches d'adaptation
    • La qualité de service dans ATM
      • Classes de services
      • Réservation de ressources
      • Contrôle d'admission
      • Contrôle de congestion
    • Le routage dans les réseaux ATM
      • Protocole PNNI
    • IP sur ATM
      • Protocole CLIP
      • Protocole LANE
      • Protocole MPOA

IPv6 (coefficient 2)

Volume horaire :

  • 6h de cours
  • 4h de TP

Objectifs

  • Comprendre et mettre en oeuvre le protocole IPv6

Contenu

  • IPv6
    • La version actuelle du protocole d'interconnexion IPv4 n'a pas subi de changement substantiel depuis la RFC 791, publiée en 1981. IPv4 s'est révélé robuste, facilement implémentable et offrant une grande inter-opérabilité entre diverses technologies réseaux. Cependant, la conception initiale d'IPv4 n'a pas permis d'anticiper:
      • la croissance exponentielle d'Internet et l'épuisement conséquent de l'espace d'adressage IPv4;
      • le besoin d'une configuration simple;
      • la gestion de la sécurité au niveau de la couche IP;
      • le besoin d'un meilleur support de Qualité de Service pour la transmission de données temps-réel.
      La dernière version du protocole IP (IPv6) se propose de solutionner ces problèmes et d'étendre les fonctionnalités d'IPv4. Ce cours a pour objectif d'apporter la connaissance nécessaire à la compréhension des mécanismes du protocole, dans un contexte de migration de l'IPv4 vers IPv6. Son plan est le suivant:
      • Introduction à l'IPv6 - Limitations de l'IPv4
      • Adressage IPv6
      • L'entête IPv6
      • ICMPv6
      • Neighbor Discovery - Découverte de voisinage
      • Autoconfiguration des adresses
      • Service de résolution de noms sous IPv6
      • Routage avec IPv6
      • Mobilité avec IPv6
      • Coexistence et migration
      Contenu des travaux pratiques:
      • Mise en place et plan d'adressage d'un réseau IPv6 sous Linux/Windows
      • Test de coexistence des deux protocoles avec des protocoles de Tunneling IPv6/IPv4
      • Mise en place d'une infrastructure pour Mobile IP

Qualité de service et applications (1 ECTS - coefficient 4)

Volume horaire total

  • 12h de cours
  • 8h de TP

QoS Internet (coefficient 2)

Volume horaire :

  • 4h de cours

Objectifs

  • Comprendre et être capable de mettre en oeuvre DiffServ

Contenu

  • Le modèle IntServ est difficilement applicable dans le cas de grands réseaux. En effet, il est difficile de maintenir un état de ressources réseau pour chaque flux si le chemin emprunté change fréquemment. Cela est dû au fait que le routage est indépendant de la gestion de QoS. Ce problème de stabilité ne se pose pas dans les réseaux ATM grâce à l'utilisation d'un routage hiérarchique incluant la QoS: PNNI hiérarchique. Le modèle DiffServ consiste à classer le trafic grâce à un code présent dans le paquet IP. On applique ensuite des traitements différenciés aux différentes classes de trafic. Nous avons donc affaire à une granularité moins fine mais qui devient en revanche plus scalable. En effet, la granularité du flot implique la réaction en chaîne suivante : plus il y a d'utilisateurs dans le réseau, plus il y a de flots, plus il y a de variables de classifications et d'ordonnancements dans les routeurs à maintenir, ce qui a pour conséquence une charge importante au niveau des routeurs qui deviennent alors de moins en moins performants.

Voix sur IP (coefficient 1)

Volume horaire :

  • 4h de cours
  • 4h de TP

Objectifs

  • Installer et configurer un serveur de voix sur IP

Contenu

  • Voix sur IP:
    • installation d'un proxy SIP et configuration DNS
    • comparaison de l'impacte de la perte de trames sur la qualité audio en fonction du codec utilisé et des paramètres tel que le taux de remplissage
    • réglage du traffic control de Linux pour restreindre la bande passante accordée au trafic RTP, la bande passante devant être calculée pour obtenir un taux de perte donnée

Streaming vidéo (coefficient 1)

Volume horaire :

  • 4h de cours
  • 4h de TP

Objectifs

  • Installer et configurer un serveur de streaming vidéo

Contenu

  • Streaming vidéo:
    • installation d'un serveur Helix
    • création de flux avec Real Producer
    • qualité de service: adaptation résolution/débit

Réseaux mobiles (1 ECTS - coefficient 3)

Volume horaire :

  • 12h de cours
  • 4h de TD

Objectifs

  • Présenter les différentes générations de réseaux cellulaires
  • Faire une introduction aux technologies de réseaux mobiles.

Contenu

  • Réseaux mobiles
    • Le réseau mobile GSM
      • Introduction à la propagation radio-électrique
      • Planification cellulaire
      • Interface radio
      • Architecture du réseau
    • Les évolutions du GSM: GPRS et EDGE
      • évolutions du GSM
      • Planification cellulaire avancée
      • Demi-débit, réseaux multi-bandes, charge partielle, antennes adaptatives
      • GPRS: principes et classes définies
      • EDGE: principes et impact
    • Les réseaux mobiles de troisième génération: UMTS
      • Besoins
      • Calendrier
      • Wideband CDMA (FDD)
      • Time Domain Duplex (TDD)
    • Comprendre et être capable de mettre en oeuvre IP mobile
      • Le développement de toutes sortes de périphériques nomades et le besoin de l'accès à l'Internet ont rendu crucial le problème de la mobilité. Chaque appareil se trouve au sein d'un réseau, et son adresse dépend de celui-ci. Toute connexion est alors obligatoirement coupée lorsque l'on change de réseau. Le standard Mobile IP, proposé par un groupe de travail de l'IETF (Internet Engineering Task Force), a été conçu pour résoudre ce problème en donnant la possibilité à un noeud réseau d'utiliser deux adresses IP : une adresse mère et une adresse mobile qui change à chaque point de connexion.