Objectifs
La spécialité Logiciel et Réseaux propose un parcours "ingénierie" à
orientation professionnelle préparant aux fonctions d'ingénieur
logiciel
ou ingénieur réseau et un parcours "science" à vocation
recherche préparant à une poursuite en doctorat. Les thèmes principaux
du parcours "ingénierie" sont: la maitrise du développement des
logiciels et plus particulièrement des logiciels répartis, la maitrise
des architectures et des protocoles des réseaux de nouvelle
génération. Le parcours "recherche" est plus centré sur les aspects
fondamentaux de l'informatique et des réseaux. L'algorithmique y a une
place importante, on y étudie par exemple les problèmes posés par la
conception d'applications temps réel pour des environnements mono ou
multiprocesseurs et pour des architectures distribuées. Les protocoles
de communication, les transmissions multimédia, les systèmes de
sécurité pour les réseaux mobiles
ad'hoc et pour les réseaux de capteurs.
Organisation
La spécialité débute au second semestre de master1 et se poursuit
pendant les deux semestres de master2
Enseignements de master 1: Tronc Commun des parcours ingéniérie et
science
Master 1 / Second Semestre
- Programmation d'application
réseau (Etienne Duris -
UPEMLV)
- Temps Réel: Principes et
application (Serge Midonnet -
UPEMLV)
- Réseaux locaux et réseaux
d'accès (Stéphane Lohier -
UPEMLV)
Programmation d'application réseau
Le cours présente les concepts et
mécanismes réseaux que peut utiliser un programmeur d'application haut
niveau, en l'illustrant avec les API de Java: interfaces, adresses,
sockets et communications en UDP et TCP. Au delà de ces bases.
L'accent est mis sur les spécificités de la programmation
d'applications communiquantes, comme l'utilisation du multi-threads ou
des entrées-sorties non bloquantes. Le protocole HTTP sert de base pour
illustrer les communications de type requête-réponse, sans état, et les
mécanismes qui permettent de réaliser du suivi de session. Le cours
amorce des réflexions sur l'équilibrage de charge, le pair-à-pair, et
la manière dont un protocole peut être conçu et mis en oeuvre pour
répondre à un besoin précis. Les TD consistent à programmer des
exemples assez simples pour mettre en oeuvre les concepts vus en cours,
utiliser les API existantes et prendre conscience des contraintes de
programmation et d'architecture liées aux applications réseaux
(entrées-sorties, encodages, multi-threads...). Un projet de conception
et/ou mise en oeuvre d'un protocole permet aux étudiants de réaliser
une application plus complète.
Temps Réel: Principes et
application
Le langage Java a été initialement
conçu par Sun pour faciliter le développement d'applications embarquées
avec un objectif d'indépendance vis à vis des systèmes d'exploitation
et des équipements physiques. Cet objectif a été atteint au détriment
de l'expression de modèles de comportement comme la politique
d'ordonnancement et de synchronisation ou la politique de gestion de la
mémoire.
La première spécification Java pour le temps réel (RTSJ) publiée en
Mars 2001 propose une extension à la plateforme Java standard pour le
développement d'applications temps réel. Le développement d'une machine
de référence et les retours d'expérience issus des nombreux travaux de
recherche menés autour de cette nouvelle technologie ont permis de
nombreuses corrections dans les versions 1.0.1 (Aout 2004) et 1.0.2
(Juillet 2006). Le premier objectif de ce cours et de présenter les
principes de l'ordonnancement temps réel. Le second objectif de
ce cours est de pésenter les principes de développement d'applications
temps réel avec la spécification pour Java Temps Réel (RTSJ). Nous
décrirons les différents types d'entités ordonnançables supportées RTSJ
ainsi que leurs caractéristiques (modèles d'ordonnancement, modèles
d'activation,
modèles de mémoire). L'analyse de faisabilité permet de garantir le
respect des contraintes temporelles d'un système de tâches. La
compréhension de la méthode d'analyse est indispensable. Nous décrirons
les politiques de contrôle
d'accès à des ressources partagées supportées (protocoles PIP et PCE)
ainsi que l'influence sur l'analyse de faisabilité du système. Nous
décrirons les mécanismes prévu pour la détection des fautes temporelles
comme le dépassement d'une échéance, le dépassement de durée
d'exéciution spécifiée ou enfin le non respect de la fréquence maximale
d'arrivée d'un tâche sporadique.
Réseaux
locaux et réseaux d'accès
L'objectif du cours est de connaitre et
de comprendre les différentes technologies des réseaux locaux filaires
ainsi que les protocoles et technologies des réseaux d'accès (boucle
locale filaire, optique, Wimax, ADSL). La première partie du cours
débute par un rappel sur les codages et méthodes d'accès des réseaux
filaires (4B/5B, CSMA/CD). Les concepts et techniques avancées des
réseaux Ethernet sont ensuite présentés (Ethernet partagé, Ethernet
commuté, fonctionnement d'un switch, Gigabit Ethernet). Enfin, sont
abordés les réseaux locaux virtuels (VLAN) et les protocoles de
communication associés (niveau 1, 2, 3). La deuxième partie du cours
concerne les réseaux d'accès. Seront donc abordés les technologies
présentes sur la boucle locale filaire (supports en paire cuivrée et
fibre optique, modulation ADSL, répartiteurs, dégroupage) ainsi que les
solutions sans fil permettant d'offrir un accès dans des zones non
câblées (WiMAX).
Parcours Logiciel et Réseaux -
Ingéniérie
Master 2 / Premier Semestre
- Interface Graphique 1 (Sébastien Paumier - UPEMLV)
- Java 2 Enterprise Edition (Julien Goulon)
- Programmation concurrente (Rémi Forax - UPEMLV)
- Construction d'application
réparties (Serge Midonnet -
UPEMLV)
- Routage (Gilles Roussel - UPEMLV)
- Réseaux sans fil (Stéphane Lohier - UPEMLV)
- Réseaux cellulaires (Hakim Badis - UPEMLV)
- Programmation générique
avancée - cpp (Sylvain
Lombardy - UPEMLV)
- Technologie des coeurs de
réseaux (Hakim Badis - UPEMLV)
En
option: Vérification des logiciels (Arnaux
Carayol - UPEMLV)
Master 2 / Second Semestre
- Interface Graphique 2 (Sébastien
Paumier - UPEMLV)
- Conduite de projets (Jérôme Dewever - UPEMLV)
- Projet de génie logiciel - J2E (Julien Goulon)
- Sécurité
des réseaux (Yves Lavanant /
Sébastien Lelong - RATP)
En
option: Codage et transmission
multimédia (Alain Fromentel -
EFREI) ou Qualité de service et
applications (Hakim Badis - UPEMLV)
Interface
Graphique
Java 2 Enterprise Edition
Très prisées par les entreprises, les
technologies Java EE apportent une boite à outils puissante et
standardisée pour les développeurs et ingénieurs. Les étudiants sont
familiarisés avec les différentes composantes qui forment Java EE. Un
accent particulier est mis sur les méthodes issues du monde
professionnel qui entourent ces technologies. Le cours présente dans un
premier temps les bases de J2EE: le JDBC, les Servlets et les JSP, les
Java Beans, la sécurité et le déploiement d'applications sur le Web. La
seconde partie du cours traitera de de J2EE en environnement distribué:
les mécanismes de localisation avec JNDI, Java Messaging, les appels de
méthodes a distance avec RMI et le protocoles IIOP. Les services de
synchronisation JTA/JTS et les EJB.
Programmation Concurrente
L'objectif du cours est de comprendre les
spécificités de la programmation concurrente et de savoir proposer et
mettre en oeuvre des algorithmes et applications concurrentes en Java.
La programmation concurrente consiste à étudier les mécanismes proposés
par les processeurs, les noyaux des OS et la machine virtuelle Java
(plus particulièrement les paquetage java.util.concurrent.* de la
JSR166) permettant d'effectuer plusieurs t‚ches en parallele à
l'intérieur d'un mÍme programme, de fixer des points de rendez-vous
entre ces t‚che, d'échanger des données. De plus, nous verrons en
détails le modèle de mémoire (JSR 133) de Java comparé avec l'ancien
modèle (pre-Java 1.5) ansi qu'à d'autre modèles de mémoire. Enfin, nous
nous attarderons sur des structures de données concurrentes et les
modèles de consistance associés.
Construction d'Applications Réparties
Le cours présente les méthodes et
outils offerts par la spécification CORBA. Spécification basée sur
l'utilisation d'un langage de description d'interfaces (IDL : Interface
Description Language).
Nous débuterons le cours par la description de la structure d'une
application client/serveur Corba puis nous présenterons différentes
techniques d'implantation des objets applicatifs (héritage,
délégation).
Nous montrons les mécanismes d'invocations statiques et dynamiques; les
mécanismes de localisation des objets en mettant en oeuvre le service
de nommage Corba. Nous présenterons comment gérer les références
locales (réferences persistentes ou volatiles, les références
multiples. Les intercepteurs sont des mécanismes permettant de
surcharger le code d'une application. Nous présenterons les
intercepteurs de requÍte et les intercepteurs d'IOR. Une dernière
partie du cours porte sur l'étude et la mise en oeuvre des mécanismes
évènementiels de CORBA tels que le service d'évènements et les service
de notification.
Routage
Le rôle d'un routeur est d'acheminer
des paquets entre différents réseaux. Pour cela, il se base sur une
table de routage comportant les éléments nécessaires (adresse du
réseau, masque du réseau, adresse IP du routeur cible, interface de
sortie) au transfert du paquet. De plus le routeur doit connaitre tous
les numéros de réseaux pour lesquels il doit Ítre capable de faire du
routage (ou utilisation d'une route par défaut). Pour éviter un
paramétrage manuel fastidieux de ces tables de routage, surtout si le
nombre de réseaux et de sous réseaux est important, on utilise le
routage dynamique qui s'effectue par des protocoles appelés protocoles
de routage. Il existe deux principales familles : les protocoles
internes (IGP : Interior Gateway Protocol) qui établissent les tables
de routage des routeurs appartenant à une entité unique appelée AS
(Autonomous System : système autonome) et les protocoles externes (EGP
: Exterior Gateway Protocol) permettant l'échange des informations
entre ces systèmes autonomes. Au sein des protocoles internes, il
existe deux types : les protocoles à vecteur de distance (Distant
Vector Protocol) qui utilisent le saut de routeur comme métrique, et
les protocoles à états de liens (Link State Protocol). L'objectif de ce
cours est de comprendre et mettre en oeuvre des protocoles de routage
unicast (RIP, OSPF, BGP, etc.) et multicast (IGMP, DVMRP, PIM, MOSPF)
dans les réseaux IP.
Réseaux sans fil
L'objectif du cours est de connaitre et
de comprendre les différentes technologies des réseaux sans fils et de
savoir a quels types d'usage se rapportent les principales technologies
(Wifi, WiMax, Bluetooth). Le cours débute par des généralités sur
les liaisons radio et la propagation des ondes. Sont ensuite abordées
les différentes méthodes d'accès au support (centralisés,
déterministes, avec collisions). Après une classification des
catégories de réseaux sans fils (WPAN, WLAN, WMAN, WWAN), les
caractéristiques et technologies de ces différents réseaux sont
présentées : les réseaux locaux WLAN (WiFi, IEEE 802.11, UWB, IEEE
802.15.3); les réseaux personnels WPAN (Bluetooth, IEEE 802.15.1,
ZigBee, IEEE 802.15.4); les réseaux d'accès WMAN (WiMAX, IEEE 802.16).
Réseaux cellulaires
Les systèmes de communication
cellulaires se sont développés en plusieurs générations. La première
génération était analogique. La deuxième génération (2G) est numérique
mais orienté mode circuit avec le standard le plus répondu dans le
monde GSM (Global System for Mobile communication) qui offre un service
de voix de 9,6kbits/s et qui permet un transfert de données à faible
vitesse. Il existe une génération dite deux et demi (2G+) avec le GPRS
(General Packet Radio Service) qui est une évolution du système GSM qui
permet en agrégeant plusieurs canaux de voix d'offrir une commutation
en mode paquet allant jusqu'à 115kbits/s. La troisième génération (3G)
permet d'utiliser la commutation en mode paquet dans contexte
multimédia. Le nom générique pour les différentes normes 3G est IMT-200
qui regroupe : (i) l'UMTS (Unuiversal Mobile Telecommunications System)
en Europe qui promet un transfert des données avec un débit théorique
allant jusqu'à 2 Mbps dans les configurations à courte portée
(picocellules) mais généralement 100kbit/s avec des cellules plus
grande (micro-cellules), (ii) CDMA2000 aux Etats-Unis qui est une
évolution de CDMAOne (Code Division Multiple Access) et W-CDMA
(WideBand CDMA) au japon, et (iii) EDGE (Enhanced Data rates for Global
Evolution) parfois appelé E-GPRS (Enhanced GPRS) qui est une évolution
du GPRS et du TDMA. La technologie HSDPA (High-Speed Downlink Packet
Access) est un protocole de téléphonie mobile de troisième génération
baptisé " 3.5G " permettant d'atteindre des débits de l'ordre de 8 à 10
Mbits/s. La technologie HSDPA utilise la bande de fréquence 5 GHz et
utilise le codage W-CDMA.
Les objectifs de ce cours ne sont pas simplement de présenter un état
des lieux des technologies existantes mais aussi : i) d'évaluer ces
différentes technologies de façon critique et de les comparer en termes
de performances, ii) de faire le lien entre les aspects théoriques
constituant les fondements des systèmes de communications cellulaires
numériques et les aspects pratiques et réels auxquels sont confrontées
les équipes intervenant à différents niveaux (dimensionnement des
réseaux cellulaires, planification du sous-système radio, planification
du sous-système réseau, déploiement du réseau, qualité de service,
optimisation et densification du réseau).
Programmation
générique
Avancée
Ce cours présente des concepts plus
avancés de programmation générique.
Tout d'abord une introduction à la
méta-programmation: hiérarchies automatiques, calcul de constantes à la
compilation... Ensuite, on présentera les techniques de "polymorphisme
statique", qui seront illustrées par la présentation de versions
statiques de quelques modèles de conception simples: visiteur,
décorateur, fabrique.
Technologie des coeurs de réseaux
L'objectif du cours est de connaitre et
comprendre les différentes technologies des coeurs de réseau (Sonet SDH
ATM MPLS IPV6) et de connaitre l'organisation hiérarchique de
l'Internet.
La première partie du cours présente l'architecture et du réseau coeur
de l'Internet. En particulier l'organisation hiérarchique des
routeurs et commutateurs de l'Internet et les protocoles associés sont
abordés (systèmes autonomes, EGP, IGP, POP, Gigarouteur).
L'organisation de l'adressage, l'utilisation conjointe d'IPV4 et d'IPV6
ainsi que le routage sans classe (CIDR) sont également détaillés.
La deuxième partie traite des technologies rencontrées aux différents
niveaux du réseau coeur, en particulier les mécanismes de transport de
niveau 2 et 3 (SDH, SONET, ATM) ainsi que les techniques et protocoles
de commutation de paquet (MPLS, LSR). Le protocole ATM est né de l'idée
que les réseaux destinés à la transmission de la voix (réseau
téléphonique), de la video (réseau cablé), et des données (jusqu'alors
dominé par le système BISDN pour Broadband Integrated Services over
Digital Network) devaient fusionner et n'utiliser plus qu'un réseau de
c‚bles commun, ainsi qu'un protocole commun. Les caractéristiques du
protocole reflètent les objectifs alors visés par le forum ATM : le
protocole ATM s'appuie sur la notion de circuit virtuel, ce qui
constitue un compromis entre des protocoles basés sur des circuits
physiques comme ISDN, et ceux basés sur des paquets envoyés sans qu'une
connexion soit préalablement établie (Switched Virtual Connexion) comme
ethernet. le protocole ATM est orienté connexion, ce qui signifie que
deux machines qui veulent communiquer commencent par établir une
connexion avant d'envoyer leurs données, avec un risque minimal de
pertes de celles-ci, et une efficacité maximale pour leur traitement,
ce qui permet notament d'avoir une garantie sur le temps maximal qu'un
paquet passera dans un switch. D'autre part, l'ATM utilise des petits
paquets (appellés cellules) de 48 octets de données et 5 d'en-tÍte,
soit 53 octets.
IPv6 est la nouvelle version de l'Internet Protocol. Il devrait se
substituer progressivement au protocole IPv4 responsable de
l'interconnexion des milliers de réseaux de l'Internet mondial. Il a
été principalement conçu afin d'étendre l'espace d'adressage actuel
devenu trop petit. Les adresses IPv6 128-bit multiplient de ce fait la
taille de l'Internet puisque l'espace d'adressage passe maintenant à
296 adresses utilisables.
Conduite de projet
Lors du lancement d'un projet, il
importe de ne pas oublier d'activités, de mettre en place une
organisation ou chacun sait ce qu'il aura à faire et quels engagements
il doit prendre. L'ensemble doit permettre de calculer un planning et
le plan de charge des ressources pour vérifier l'adéquation entre le
processus de développement, les moyens disponibles et les échéances.
Les "techniques projets" sont des techniques indépendantes du type de
projet et qui contribuent à son lancement, son organisation, son suivi
et son pilotage. Le cours présente :
- les techniques de découpage du projet en activités, de cadrage et
de distribution du travail. Les formalismes WBS, PBS, OBS, et Diagramme
de flux sont d'abord introduits. Puis, les techniques de revue de
complétude puis de cohérence du plan de développement sont expliquées.
Enfin, des règles d'état de l'art sont proposées pour permettre de
caler la granularité des activitéset du suivi nécessaires à une gestion
de projet à la fois efficace et de moindre consommation de temps.
- les techniques de planification utilisées dans les logiciels de
planning : Le PERT pour les activités(aussi appelée "chemin critique"),
le nivellement des plans de charge des Ressources pour résorber les
surcharges, la marge négative pour détecter les incohérences entre les
échéances et le processus de développement. La connaissance de ces
techniques permet d'analyser le résultat des calculs, de rechercher des
solutions et de proposer des actions pertinentes.
- les techniques de suivi : objectif des métriques de suivi,
calibrag de la périodicité d'avancement, structure du cycle de
pilotage. 2 tableaux de bord type sont proposés: le date/date pour les
dérives à achèvement et la valeur gagnée pour les dérives instantanées.
Sécurité des Réseaux
Les objectifs du cours sont de
permettre aux étudiants de connaitre la problématique de sécurisation
de réseaux et des systèmes, de savoir définir une stratégie de
sécurisation pour une entreprise et de connaitre et maitriser certains
outils et techniques liés à la sécurité informatique.
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. Les Méthodes et Normes, maintenant
disponibles en sécurité informatiques, sont abordées et reliées aux
concepts présentés. Le cours 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é.
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 vulnérabilités couramment rencontrés
dans des applications de type Web (Cross Site Scripting, Access
Control, Hidden Form Field Manipulation, Weak Session Cookies, SQL
Injection, Web Services, etc...) au travers de l'outil WebGoat proposé
par la communauté OWASP (Open Web Application Security Project). Son
objectif est d'apprendre à connaÓtre ces vulnérabilités, leur cause et
la façon de les éviter lors du développement d'une application Web.
OPTION: Qualité de service et
applications
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 due 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. Ce
cours a pour objectif dans un premier temps d'étudier et comparer
les modèles de QoS existants (IntServ, DiffServ et MPLS) et ensuite de
comprendre et mettre en oeuvre es applications comme la VoIP et la
vidéo en streaming. 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
chaine 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.
Après avoir défini et caractérisé
l'information multimédia, on étudiera d'abord les moyens de
représentation de cette information, puis on examinera les volumes et
débits requis face aux capacités et bandes passantes respectives des
supports de stockage et des canaux de transmission.
On étudiera alors des systèmes de compression, sans ou avec perte
d'information, adaptés aux problématiques mises en évidence, puis les
systèmes de codage et de modulation propres à pouvoir réaliser
physiquement le stockage et la transmission. On conclura en faisant une
étude sur des systèmes complets tels que le DVD (digital versatile
disc) et le DVB (digital video broadcasting)
Les techniques multimédia traitent des informations liées au son et à
l'image, données destinées à l'homme et empruntant des canaux de
transmission ou des supports de stockage numériques. Cette bivalence
nécessite de tenir compte aussi bien des propriétés et limitations
physiologiques liées à la perception humaine des sons et des images
qu'aux débits ou capacités que peuvent supporter les médias de
communication. Ainsi, il apparaÓt nécessaire de comprimer
l'information, compte tenu des ordres de grandeurs atteints. Enfin, le
concept de diffusion des données multimédia entraÓne la nécessité d'une
normalisation pour tous les niveaux de la transmission.
Ce cours comprend trois parties: l'information multimédia : on y aborde
les éléments de physiologie audiovisuelle; la compression des données :
on y présente les systèmes de compression adaptés à l'information
audiovisuelle; la transmission des données : on y présente les
différents moyens techniques mis en oeuvre pour assurer le stockage sur
support mécanique ainsi que la diffusion hertzienne (ou c‚blée) de
l'information numérique multimédia.