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
:
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
:
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
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
:
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)
Python
(coefficient 3)
Volume horaire
:
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
:
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
:
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
:
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
:
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
:
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
:
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)
Exposés systèmes d'exploitation
(coefficient 5)
Volume horaire
:
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
:
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)
ATM
(coefficient 2)
Volume horaire
:
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
- IP sur ATM
- Protocole CLIP
- Protocole LANE
- Protocole MPOA
IPv6
(coefficient 2)
Volume horaire
:
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)
QoS Internet
(coefficient 2)
Volume horaire
:
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
:
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
:
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
:
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.