I2L:Detail - DptInfo

I2L:Detail

Ce document est proposé à titre indicatif. La répartition cours/TD/TP des heures peut être modifiée ainsi que le détail des modules.

Sommaire

Technologies XML (M1)

Introduction à XML. Transformations de documents XML : feuilles de style (CSS, XSLT), Xpath. Liaison de documents en XML : XLink, Xpointer. Manipulations de documents XML : les API XML, SAX et DOM. XML et les bases de données (XPath, XQuery, ...).

  • Cours 1 (3h) Introduction à XML et transformations de documents XML et XSLT - M. Bouneffa (LIL-ULCO)
  • Cours 2 (3h) XPath, XLink, XPointer et XQuery - M. Bouneffa (LIL-ULCO)
  • Cours 3 (3h) XML et les bases de données - M. Bouneffa (LIL-ULCO)

  • TD 1 (3h) Introduction: structure XML, DTD, et XML Schema
  • TD 2 (3h) XML Schema, expressions XPath
  • TD 3 (3h) Transformations XSLT
  • TP 1 (3h) Tutoriel et exercices sur les expressions XPath
  • TP 2 (3h) Tutoriel et exercices sur les Transformations XSLT
  • TP 3 (6h) L'API DOM, avec Java
  • TP 4 (6h) L'API SAX, avec Java
  • TP 5 (3h) Comparaison des APIs DOM et SAX
  • TP 6 (3h) Développement d'un extracteur/injecteur de données XML, interface avec une base de données

Composants et architectures logicielles (M1)

Prérequis : Génie Logiciel du semestre 1, MCOO (UML) du L3 info et C++ du L3 info.


Module Systèmes, réseaux et sécurité

Etat des lieux des distributions Linux (Debian, Fedora, Mandriva, Novell Linux et Gentoo, par exemple), déploiement de Linux/debian et étude du noyau Linux (Gestion mémoire, gestion de fichiers – ext2, ext3, lufs, ... - , gestion de processus, drivers de périphériques, synchronisation, IPC, ...). Sécurisation des systèmes et des services réseaux (DNS, Web, Mail, ...). Sécurité physique, sécurité des données et sécurisation du système Linux. Filtrage, topologie, segmentation et DMZ (FireWall, IP table, Squid, Reverse Proxy, VPN, ...). Surveillance, audit et outils de monitoring.

  • Cours 1 (3h) - Les distributions Linux - M. Segond (LIL-ULCO)
    • Historique
      • historique rapide du logiciel libre et naissance de la FSF et du projet GNU avec la création de Emacs, GCC, bash et des outils nécessaire à la réalisation d'un Unix libre,
      • historique rapide naissance de Linux et description des premiers versions,
      • apparition des premières distributions, Slackware, RedHat, Debian etc. proposant une composition des projets GNU et Linux,
      • description de la hiérarchie de dossiers.
    • Paquets
      • les paquets éléments fondamentales des distributions Linux :
        • composition : code, source, configuration, doc, dépendances, scripts,
        • pourquoi : simplification maj., diminution espace, sécurité, gestion des dépendances entre paquets et/ou bibliothèques.
      • les paquets, études de cas dse formats RPM, Deb, ebuild, tar.gz
        • descriptions des paquets,
        • protection, signature, crypatage,
        • outils d'utilisation de paquets.
        • paquets sources / paquets statiques / autopackage
    • Distributions
      • fonctionnement des distributions :
        • communautaires,
        • non-communatires,
        • mixtes.
      • distributions courantes : Redhat/Fedora, Debian, Ubuntu, Gentoo, Mandriva, Slackware, Suze
        • cycle de développéments,
        • gestion de la sécurité.
      • Pour chaque distribution étudiées :
        • type d'utilisation / type d'utilisateurs,
        • spécificité de choix logiciels [inetd/xinetd etc. ],
        • spécificité des configurations [/etc/init.d],
        • arborescence spécifique [/var/cache etc.].
  • Cours 2 (3h) - Linux Kernel I - D. Duvivier (LIL-ULCO)
    • Introduction
      • Linux et les autres Unix
      • Les différentes versions
      • Un survol du noyau
    • Gestion mémoire
  • Cours 3 (3h) - Linux Kernel II - D. Duvivier (LIL-ULCO)
    • Les processus
      • fork, signal, thread, semaphore, ...
    • Les interruptions et les exceptions
    • La gestion des entrées-sorties
  • Cours 4 (3h) - Linux Kernel III - D. Duvivier (LIL-ULCO)
    • Les systèmes de fichiers
      • Le système de fichiers virtuels (VFS)
      • Ext2 et Ext3
  • Cours 5 (3h) - Linux en réseau I - E. Leblond (INL)
    • Protocoles niveau 1 et 2
      • ATM, PPP
      • Ethernet, VLAN, Bridging
      • Virtualisation (tuntap, bonding, ...)
    • Pile TCP/IP et autres protocoles de même niveau
      • Présentation
      • Principes d'optimisations
  • Cours 6 (3h) - Linux en réseau II - E. Leblond (INL)
    • Routage avancé et Qualité de Service :
      • Protocole de routage dynamique : RIP,OSPF,BGP;
      • Politique de routage différencié;
      • Qualité de service : Diffserv.
    • Firewall (netfilter/iptables) et VPN

  • TD/TP 1 (3h) - Installation d'une distribution Debian - D. Duvivier (LIL-ULCO)

C'est le premier TP de l'année. L'étudiant installe sa propre machine de l'année : noyau Debian minimal, NFS, OpenLDAP, X server, Window manager et outils de base (développement, réseaux, ...). Le guide d'installation du client et des serveurs.

  • TD/TP 2 (3h) - Système et réseaux 1 - D. Duvivier (LIL-ULCO)
    • comment sécuriser son noyau ?
  • TD/TP 3 (6h) - Système et réseaux 2 - D. Duvivier (LIL-ULCO)
    • fork, thread, mutex et sémaphores
  • TD/TP 4 (9h) - Système 3 - D. Duvivier (LIL-ULCO)
    • Ecriture d'un driver de périphérique sous Linux
  • TD/TP 5 (3h) - Système - D. Duvivier (LIL-ULCO)

DNS - DHCP

  • TD/TP 6 (3h) - Système - D. Duvivier (LIL-ULCO)

FTP - Apache

  • TD/TP 7 (3h) - Système - D. Duvivier (LIL-ULCO)

IP table

  • TD/TP 8 (3h) - Système - D. Duvivier (LIL-ULCO)

Squid

  • TD/TP 9 (3h) - Linux en réseau 1 - E. Leblond (INL)
    • Mise en oeuvre d'ATM (RFC2684) et bridging
  • TD/TP 10 (3h) - Linux en réseau 2 - E. Leblond (INL)
    • Exemple de programmation réseau, mise en oeuvre d'un protocole de routage dynamique (OSPF)
  • TD/TP 11 (3h) - Linux en réseau 3 - E. Leblond (INL)
    • Découverte de Netfilter et expérimentation de quelques fonctionnalités de qualité de service
  • TD/TP 12 (6h) - Distributions BSD - O. Wulveryck
  • TD/TP 13 (3h) - Customisation - M. Segond (LIL-ULCO)
  • TD/TP 14 (6h) - Virtualisation (Xen) - M. Segond (LIL-ULCO)
  • TD/TP 15 (6h) - Installation d'un systeme gnu/hurd à micro-noyau L4 - C. Romain (OneProcess)

Module Développement d’applications Web

Web Services : architecture orientée services (WSDL (http://www.w3.org/TR/wsdl), SOAP (http://www.w3.org/TR/soap/), XML-RPC (http://www.xmlrpc.com/), HTTP, ...). Concepts avancés de Java (JSP (http://java.sun.com/products/jsp/), Servlets (http://java.sun.com/products/servlet/), les EJB (http://java.sun.com/products/ejb/) et Enterprise Service Bus – ESB - ). Déploiement et mise en oeuvre : Python/Zope (http://www.zope.org/), J2EE et serveurs d'applications (Tomcat, Jonas (http://jonas.objectweb.org/), Jboss (http://labs.jboss.com/), ...). Persistance des données (Hibernate (http://www.hibernate.org/), ...). Frameworks PHP : ez-components et PEAR.

  • Cours 1 (3h) - L. Deruelle (commun ISIDIS) (LIL - ULCO)
    • Architectures orientée services (J2EE, .Net, Zope, ...)
  • Cours 2 (3h) - L. Deruelle (commun ISIDIS) (LIL - ULCO)
    • Déploiement et serveur d'applications
  • Cours 3 (3h) - L. Deruelle (commun ISIDIS) (LIL - ULCO)
    • JSP et Servlet
  • Cours 4 (6h) - P. Penet (NoParking)
    • Présentation de PHP (avec Ajax et JSON)
      • l'architecture "share nothing" de PHP
      • les modules existants : SimpleXML, JSON, PDO
    • Présentation de PEAR et de ses "channels" de distribution
      • installation via les commandes PEAR
      • utilisation de eZ Components
  • Cours 5 (4h) - M. Bouneffa (commun ISIDIS) (LIL - ULCO)
    • Persistance des données
    • Mapping Relationnel - Objet : cas d'Hibernate
  • Cours 6 (5h) - L. Belmar-Letelier (Itaapy)
    • Compréhension du protocole HTTP
    • Configuration fine des virtualHost d'Apache
    • architecture RESTfull
    • Python pour le développement d'application WEB

  • TD/TP 1 (3h) - L. Deruelle (LIL - ULCO)
    • Déploiement J2EE
  • TD/TP 2 (3h) - L. Deruelle (LIL - ULCO)
    • Déploiement J2EE
  • TD/TP 3 (3h) - L. Deruelle (LIL - ULCO)
    • JSP/Servlet
  • TD/TP 4 (3h) - L. Deruelle (LIL - ULCO)
    • JSP/Servlet
  • TD/TP 5 (3h) - L. Deruelle (LIL - ULCO)
    • JSP/Servlet
  • TD/TP 6 (3h) - L. Deruelle (LIL - ULCO)
    • JSP/Servlet
  • TD/TP 7 (3h) - L. Deruelle (LIL - ULCO)
    • Manipulation de Struts
  • TD/TP 8 (3h) - L. Deruelle (LIL - ULCO)
    • EJB
  • TD/TP 9 (3h) - L. Deruelle (LIL - ULCO)
    • EJB
  • TD/TP 10 (3h) - L. Deruelle (LIL - ULCO)
    • EJB
  • TD/TP 11 (6h) - M. Bouneffa (LIL - ULCO)
    • Hibernate - Tutorial et applications
  • TD/TP 12 (12h) - P. Penet (NoParking)
    • Développement en TDD (avec SimpleTest)
    • Recette automatisé avec Selenium + Selenium IDE
      • créer un parcours de test
      • lancer les tests automatiquement
    • Test de montée en charge
      • optimiser par le cache HTML
      • installer des caches d'op-code (APC)
      • tests et benchmarks
  • TD/TP 13 (6h) - L. Belmar-Letelier (Itaapy)
    • HTTP, Apache, CGI, Virtual Host
  • TD/TP 14 (15h) - L. Belmar-Letelier (Itaapy)
    • RESTfull et Python

Module Environnement de développement libres

Méthodologies et gestion de projets (méthodes agiles - RAD et eXtreme Programming -,...). Outils de gestion de suivi de projets (bugzilla (http://www.bugzilla.org/), ...). Environnement de développement collaboratif : concepts, méthodologies et outillage (gforge, Eclipse, ...). Test unitaire (JUnit, cppunit, phpunit, PyUnit...). Documentation (doxygen, ...). Architecture de développement et de déploiement (autotools, gestion de paquets, ...). Gestion de versions centralisée (CVS, subversion, ...) et distribuée (git/cogito,...).

  • Cours 1 (4h) Méthodologies et gestion de projets - L. Deruelle (LIL - ULCO)
    • Méthodes agiles - RAD et eXtreme Programming
    • Méthodes par les tests
    • ...
  • Cours 2 (1.5h) Rappels : Python, design patterns et tests unitaires - D. Duvivier (LIL-ULCO)
  • Cours 4 (2h) Gestion de versions centralisées et distribuées. - D. Duvivier (LIL-ULCO)
    • Comparaison entre centralisé et distribués
    • Étude de Git
    • Le reste de TP seront tous en utilisation de systèmes de gestion de version.
  • Cours 7 (6h) - G. Bourguin (LIL - ULCO)
    • Environemment de développement collaboratif.

  • TD/TP 1 (7.5h) - D. Duvivier (LIL-ULCO)
    • exercices sur les design patterns, Python, tests unitaires et XML - sujet
  • TD/TP 2 (7.5h) - D. Duvivier (LIL-ULCO)
    • exercices sur CMake, tests unitaires en C++, XML (en Sax) et Swig - sujet
  • TD/TP 3 (35h) - Projet de développement avec la méthode XP - D. Duvivier (LIL-ULCO)
    • Analyse et conception du projet en UML
    • Trac pour la gestion du projet (guide d'installation)
    • Gestion de versions avec git pour le code
    • CMake pour la gestion de la compilation
    • Tests
    • Coding style
    • Internationalisation de code
    • Documentation
    • lien vers le sujet
  • TD/TP 4 (9h) - G. Bourguin (LIL - ULCO)
    • Ecriture d'un plugin pour Eclipse

Module Migration vers le libre et intégration du Libre

Les annuaires et leur applications (OpenLDAP (http://www.openldap.org/) vs ActiveDirectory). Migration des bases de données (Postgres (http://www.postgresql.org/), MySql (http://www.mysql.com/), ...) et mise en perspective avec Oracle et DB2. Migration des systèmes de mail/Calendrier/Contact. Application multi-tiers. Systèmes d'exploitation : intégration de Linux dans un environnement Windows (Samba (http://www.samba.org/), ...). Parc bureautique (présentation d'une étude de cas).

  • Cours 1 (3h)
    • Les annuaires
  • Cours 2 (3h) - M. Segond (LIL - ULCO)
    • Migration des systèmes d'exploitation client et serveur
    • Intégration de Windows dans un réseau Linux
  • Cours 3 (3h) - Migration des bases de données - J. C. Denis
    • Placements d'un sgbd dans l'architecture d'un SI (Rappels d'architecture de base)
    • Oracle dans l'open source ?
      • Des raisons et des problèmes
      • Enjeux et stratégies
    • Évolution de la philosophie d'Oracle sur le sujet
      • Pas de version 'vraiment' qualifiée pour Linux avant la 9i
      • 10g : Le tournant
    • Oracle sous Linux par la pratique
      • Librairies : "La forêt", Pb d'encodages Système/Serveur/Client
      • Installation, stabilité et interfaces
      • Les flux de données
      • Sécurisation, supervision, clusterisation
  • Cours 4 (3h) - Migration des bases de données - suite - J. C. Denis
    • Migration Oracle vers Oracle sous Linux
      • Là où ça coince Là où ça grince
    • Migration Oracle vers MySQL (en collaboration avec MySQL France)
      • Les outils, les limites
    • Retour d'expérience sur les produits Oracle, migration
      • 9ir2 Oracle
      • 10gr2
    • Comparatif fonctionnels et performances
      • Comparatif fonctionnels et performances Vs MySQL 5.x
      • Comparatif fonctionnels et performances Vs MaxDB (SAP)
      • Comparatif fonctionnels et performances Vs DB2
      • Comparatif fonctionnels et performances Vs PostgreSQL
      • Comparatif fonctionnels et performances Vs Berkeley DB
    • Conclusion
  • Cours 5 (3h) Migration des bases de données - PostGres - suite - Jean-Paul Argudo (Dalibo)
  • Cours 6 (3h) - J. Gilli (OpenWengo)
    • Etat de l'art d'une application de VoIP aujourd'hui ;
    • Présentation technique des différents éléments de l'application WengoPhone ;
    • Présentation plus détaillée des couches de VoIP.

  • TD/TP 1-4 (12h) - M. Segond (LIL - ULCO)
    • Samba + windows + intégration de ldap et active directory
  • TD/TP 5-8 (12h) - M. Segond (LIL - ULCO)
    • migration client/serveur windows vers Linux
  • TD/TP 9 (3h) Migration des bases de données - PostGres - Jean-Paul Argudo (Dalibo)
  • TD/TP 10 (3h) Migration des bases de données - PostGres - Jean-Paul Argudo (Dalibo)
  • TD/TP 11 (3h)
  • TD/TP 12 (3h)
  • TD/TP 13 (3h)
  • TD/TP 14-15 (6h) - J. Gilli (OpenWengo)
    • Tutoriel détaillant l'écriture d'une application de base permettant de passer un appel téléphonique en utilisant les bibliothèques du projet OpenWengo.

Module L’environnement du libre

Historique du phénomène Logiciels Libres. Notions de propriétés intellectuelles. Les licences logicielles (http://www.opensource.org/licenses/). L’informatique libre et le droit des acheteurs. Environnement économique des logiciels libres. Les logiciels libre dans les collectivités locales et territoriales.

Les principaux avantages du Logiciel Libre (éthiques, techniques, économiques) sont présentés.

  • Cours 2 (3h) Aspects légaux et modèles économiques - Frédéric Couchet (April)
  • Cours 3 (3h) Aspects juridiques des logiciels libres - Jérémie Zimmermann (April)

Comment fonctionnent les principales licences de logiciels libres ? Comment les utiliser et les faire respecter (pour un particulier ou en entreprise) ? Quelles menaces juridiques pour les auteurs de logiciels libres ? Comment réagir en cas d'attaque ou cas de violation des licences ?

  • Cours 4 (3h) Gestion de projet de logiciels libres et aspects communautaires - Jérémie Zimmermann (April)

Qu'attendre des communautés de développeurs de logiciels libres ? Comment aggréger une communauté autour d'un projet libre ? Comment optimiser la coopération au sein du projet (principes de gestion de projet et aspects humains) ? Quelle communication pour quel projet ?

  • Cours 5 (3h) Les logiciels libre dans les collectivités locales et territoriales - Loïc Dayot (Ville de Pierrefitte sur Seine)

Particularités des collectivités territoriales qui invitent au recours au Libre : archivage, interopérabilité, pérennité des données, préservation confidentialités, maîtrise des ressources (indépendance)...

  • Cours 6 (3h) Les logiciels libre dans les collectivités locales et territoriales - Loïc Dayot (Ville de Pierrefitte sur Seine)

Difficultés rencontrées et modèles réussis : logiciels métiers traditionnellement propriétaires, mutualisation et partage des coûts, développements internes, recours aux SSLL.


  • TD 1 (3h) Etablir une "stratégie communautaire" pour un projet donné sur le module plus axé gestion de projet. - Jérémie Zimmermann (April)

Module Management du libre

Rappel sur la gestion de projets informatiques. Spécificités de la gestion des projets de développement de logiciels libres. Impact des logiciels libres sur le Marketing des services informatiques.

  • Cours 1 (3h) Dynamique Business - M. Atallah - Support de cours
    • Création d'une société dans le libre
    • Transformer une idée en plan d'affaires
    • Maintenir et développer son business
    • Trouver les bons partenaires
    • But de la structure - un société Open Source comme outil Marketing
    • Quelles questions se posent les financiers sur une société
      • Comprendre les appréhensions du LL
    • Les modèles économiques du libre : éditeur, intégrateur, SSLL
    • Le modèle propriétaire sur Linux
  • Cours 2 (3h) Le marché du LL - Jean-Noël de Galzain
    • La place des LL dans le marché informatique mondial
      • Bref historique informatique
      • La naissance et l'évolution des LL
      • Les grands domaines de l'informatique, les fournisseurs de technologie
      • L'émergence d'un nouveau standard logiciel et recomposition du paysage
      • Évolution du marché de l'informatique mondial
      • Stratégie des LL
  • Cours 3 (2h) Le marché du LL - suite - Jean-Noël de Galzain
    • Structure d'un projet libre
      • organisation
      • environnement juridique,
      • internationalisation
    • Évolution du marché
      • évolution technologique
      • environnement concurrentiel
  • Cours 4 (3h) Le modèle de Création de valeur autour des services OpenSource - Jean-Noël de Galzain
    • Structurer le service autour de l'open source
    • Mettre en valeur les produit, les diffuser, accompagner les entreprise et les utilisateurs. (Modèle mixte)
    • Décomposition de la structure des coûts, dans l'industrie logicielle
    • Un panorama sur l'économie des Logiciels libres
    • L'environnement concurrentiel
    • Les modèles économiques des acteurs du libre.
    • Environnement économique des logiciels libres.

  • TD 1 (3h) Commencer par définir un plan d'affaires - M. Atallah - Document
    • définir une idée (outil brainstorming / affinity diagram)
    • évaluer sa viabilité (outil 5-Forces)
    • choisir son positionnement (important - exemple industrie aérienne)
    • décrire le business et poser des chiffres (décomposer pour expliquer et tableur)
  • TD 2 (2h) Construire un projet libre de A à Z - M. Atallah
    • un projet
    • une technologie
    • une équipe
    • un business modèle, ...
  • TD 3 (3h) Construire un projet libre de A à Z - M. Atallah
    • soutenances par groupe de 2 ou 3 étudiants