Deuxième année

La filière présente en deuxième année une vue d'ensemble des fondements théoriques et des concepts, des modèles structurants, des techniques de base et des solutions architecturales, des pratiques et méthodes, indispensables aux architectes et aux concepteurs-développeurs des logiciels et systèmes répartis.

Les unités d'enseignement

  • SLR201 Bases du développement des applications réparties (en Java)
  • SLR202 Modélisation Orientée Objet et simulation comportementale
  • SLR203 Architectures de Services Web, méthode agile
  • SLR204 Bases de la vérification des systèmes et logiciels répartis
  • SLR206 Fondements des algorithmes répartis
  • SLR207 Infrastructures et plateformes pour l'informatique répartie
  • SLR209 Séminaire de la filière SLR
  • SLR210 Blockains: les bases algorithmiques.

UE du créneau d'UE partagées

  • INF224 : Paradigmes de programmation - théorie et pratique - UE obligatoire
  • SD202 : Bases de Données - UE recommandée

Détail des unités d'enseignement

SLR 201 Bases du développement des applications réparties (en Java) (24h, 2,5 ECTS) Ada Diaconescu, Patrick Bellot

Objectifs de formation

Ce cours introduit aux notions essentielles à la compréhension d'applications réparties et à leur développement en utilisant le langage Java comme exemple. Il introduit aussi au concept d'intergiciel et présente deux exemples concrets d'intergiciels de différents types : basé sur un modèle d'invocation de méthodes à distance et sur un modèle de communication orienté message.

Contenu

Cette UE traite des points suivants :

- Threads Java, synchronisation, sérialisation d'objet, entrées/sorties et sockets ;

- Introduction aux intergiciels et aux modèles de programmation RMI (Remote Method Invocation) et JMS (Java Message Service) pour plate-forme d'exécution Java ;

- La mise en œuvre en TPs de Java avancé, RMI et JMS ; automation de la compilation et de l’exécution du code avec l'outil Apache ANT.

Prérequis une bonne compréhension de la programmation Orienté Objet (POO) et une première expérience de développement en Java

SLR 202 Modélisation Orientée Objet et simulation comportementale (24h, 2,5 ECTS) Etienne Borde, Elie Najm

Objectifs de formation

L'objectif de cette UE est l’apprentissage (i) de la modélisation du périmètre fonctionnel d'une application, (ii) de la conception d'applications orienté objet, et (iii) de la modélisation comportementale. La notation UML, standard le plus utilisé dans l'industrie pour modéliser des architectures logicielles est enseignée dans le cadre d’un processus de développement simple et générique mis en pratique dans un projet.

Contenu

L'UE aborde les points suivants :

- La spécification des exigences, exprimée par des diagrammes de cas d'utilisation et des scénarios.

- La modélisation d'architecture orienté objets, basée sur les diagrammes de classes et se raffinant par des patrons de conception reconnus (Design Patterns GOF).

- La modélisation d'interactions exprimée par des diagrammes de séquences.

- La modélisation comportementale en utilisant les diagrammes de state-chart.

Cette UE propose une démarche de construction d’un modèle mettant en relation ces différents diagrammes UML2 selon les « bonnes pratiques » recommandées dans l'industrie. Les élèves mettront en œuvre cette démarche outillée sur un projet de modélisation.

Prérequis une bonne compréhension de la programmation Orienté Objet (POO)

SLR 203 Architectures logicielles applicatives, méthode agile (24h, 2,5 ECTS) Sylvie Vignes, Gérard Memmi, vacataires

Objectifs

Cette UE forme aux activités d’un concepteur-développeur d'applications Web Java de façon à ce qu'elles soient maintenables, évolutives, et passent à l’échelle. La méthode agile SCRUM est présentée en s’appuyant sur un retour d’expérience.

Contenu

Conception et Développement par étapes d'un serveur d'application multi-tiers client-serveur:

a. Mise en place d'une chaine de production de logiciel (Maven) permettant la pratique de TDD (Test Driven Development)

b. Mise en oeuvre de composants logiciels : architecture MVC Web du framework Java EE; framework de présentation (Spring) et framework de persistance (ORM)

Mise en oeuvre de Web Services et architecture REST

Prérequis INF224 (obligatoire ; occurrence P1 ou P2), INF225 (recommandée ; occurrence P1 ou P2), SLR201

Connaissances avancées en Java telles que les techniques de développement des applications réparties ; des connaissances générales en langages, du modèle MVC et des bases de données; une expérience de développement logiciel avec Eclipse

SLR 204 Bases de la vérification des systèmes et logiciels répartis (24h, 2,5 ECTS) Elie Najm, Jean Leneutre, Gérard Memmi

Objectifs

L'objectif de l'UE est d'introduire les concepts de base de la vérification des systèmes répartis et concurrents.

Contenu

Seront traités, notamment, les aspects suivants :

- Introduction et rôle de la vérification dans le processus de développement, modélisation du comportement, modélisation des propriétés vérifiables, sémantique formelle.

- vérification par exploration des états, vérification par preuve.

- Propriétés remarquables : non déterminisme, blocage, livelock, équité, famine, etc..

- Approche basées Algèbres des processus pour la description des comportements. Systèmes de transitions étiquetés.

- Équivalences entre comportements : comportements traces-équivalents, test équivalents, similaires, bi-similaires.

- Logiques temporelles (LTL et CTL) pour l'expression de propriétés vérifiables, structure de kripke pour l'expression des comportements, vérification par Model Checking, automate de Buchi, point fixe.

- Réseaux de Petri, modélisation de la concurrence, de la synchronisation, du conflit.

- Propriétés des Réseaux de Petri : finitude, invariants de place et invariants de flots.

Prérequis aucun

SLR 206 Fondements des algorithmes répartis (24h, 2,5 ECTS) Petr Kuznetsov

Objectifs

Le principal objectif est d'appréhender les concepts de l'algorithmique répartie.

Contenu

Pour permettre à chacun de comprendre l'intérêt et les problèmes rencontrés pour l'étude et la conception d'algorithmes répartis.

Un effort particulier sera demandé sur la spécification des problèmes, la formalisation des preuves et le défi intellectuel que représente le fait de concevoir soi même des algorithmes répartis.

Un des objectifs de l'UE sera aussi de mettre en relation les approches menées sur des thèmes proches mais différents (par exemple : algorithmique de synchronisation, mémoires transactionnelles, détecteurs de défaillance, réplication de machine d’état).

Prérequis connaissance de base en mathématiques et l'algorithmique classique y compris des calculs de complexité.

SLR 207 Infrastructures et plateformes pour l’informatique répartie (24h, 2,5 ECTS) Rémi Sharrock

Objectifs

Cette UE présentera les technologies de l'informatique répartie et large échelle et illustrera les concepts par une implémentation réelle d'un système large échelle.

Contenu

* Connaître les notions de large échelle, de parallélisation, de virtualisation, d'élasticité, de réseau de recouvrement, d'autonomic computing et leurs applications pour le cloud computing.

* Manipuler les services cloud sur un fournisseur particulier (par exemple Amazon).

* Comprendre les concepts de MapReduce

* Implémenter MapReduce en simulation locale et sur le cloud Amazon

Prérequis SLR 201. Etre capable de développer des applications réparties en Java.

SLR 209 Séminaire de la filière SLR (24h, 2,5 ECTS), A. Diaconescu, P. Bellot, G. Memmi, E. Najm, R. Sharrock, P. Kuznetsov, J. Leneutre, Enseignant-Chercheurs de l’équipe ACES

Objectifs

Il est proposé aux élèves d’approfondir les connaissances fondamentales et conceptuelles introduites dans toutes les UEs de la filière SLR. Chaque élève traitera un sujet d’étude fourni par un enseignant et fera un exposé au séminaire organisé en fin d’UE.

Cette UE est recommandée pour suivre en 3ème année, le M2 COMASIC.

Contenu

Les enseignants proposent différents sujets d’étude avec une bibliographie de base. Ces sujets concernent l’informatique répartie à large échelle (liste générique indicative) : modélisation, vérification, algorithmique répartie, blockchain, architecture, intergiciel, virtualisation, parallélisation, méthodologie, etc

Chaque élève choisit un sujet d’étude qu’il travaille de façon autonome mais régulièrement suivi par un enseignant chercheur, écrit un mémoire et prépare son exposé. L’enseignant encadrant et l’élève se rencontreront lors de plusieurs revues d’avancement du travail programmées dans l’UE.

Prérequis Cette UE est principalement réservée aux élèves inscrits à la filière ou au moins à deux UE SLR.

SLR 210 Blockains: les bases algorithmiques. (24h, 2,5 ECTS) Enseignant-chercheur de l'équipe ACES et Petr Kuznetsov

Objectifs

Compréhension des fondements algorithmiques de la technologie blockchain.

Contenu

Nous étudions les bases algorithmiques derrière les systèmes de stockage décentralisés et cohérents qui tolèrent le désengagement et le comportement malveillant des nœuds participants. Nous commençons par l'étude des protocoles de stockage reconfigurables classiques. Ensuite, nous explorons les protocoles conçus pour les systèmes «ouverts», illustrés par la technologie blockchain de premier plan.

Prérequis SLR206.