Descriptif
Ce cours introduit les notions de base pour comprendre et développer des applications distribuées (axées sur la programmation Java). Il introduit la notion de middleware, qui facilite le développement et la gestion de systèmes distribués. Il fournit ensuite deux exemples concrets de différents types de middleware : basés sur des invocations de méthodes à distance et des modèles de communication orientés message.
Programme : Ce cours comprend les matières suivantes :
- Notions avancées de programmation distribuée (basées sur Java) : threads, synchronisation, sérialisation d'objets, entrées/sorties et sockets ;
- Introduction au middleware et à deux technologies concrètes pour l'invocation de méthodes à distance et la communication basée sur des messages ;
- Des travaux pratiques illustreront l'application concrète des notions théoriques
Objectifs pédagogiques
Acquis d'apprentissageÀ l'issue de l'UE, l'élève sera capable de:
- Expliquer le rôle et le fonctionnement général des plates-formes middleware, à base de différents modèles de distribution (ex : appel de méthode à distance, envoi de message, publication/souscription)
- Développer des applications répartis à base des technologies exemplifiées en cours
- Comparer et analyser différentes types de middleware afin d'identifier leurs points forts et faibles. Déterminer par conséquent leur applicabilité au contexte d'application souhaité.
Compétences de rattachement (et justification)
- BC8.3 – Concevoir et développer des solutions technologiques en s’appuyant sur un paradigme de programmation spécifique ou en concevant des architectures matérielles et logicielles spécifiques; Justification : L'UE amènes les élèves à utiliser des technologies et des concepts du middleware pour la programmation répartie
- BC1.3 – Elaborer une ou plusieurs solutions technologiques, en s’appuyant sur la modélisation théorique et la méthode scientifique de manière à faire ressortir la pertinence desdites solutions permettant une prise de décision; Justification : L'UE montre plusieurs modèles de communication au sein des systèmes répartis ; et met en avant des axes permettant leur comparaison afin de faciliter des choix adaptés cas-par-cas.
Diplôme(s) concerné(s)
- Echange international non diplomant
- M2 PDS - Parallel and Distributed Systems
- M1 PDS - Parallel and Distributed Systems
- Diplôme d'ingénieur
Parcours de rattachement
Pour les étudiants du diplôme Echange international non diplomant
Une bonne compréhension de la Programmation Orientée-Objet (de préférence en Java)
Pour les étudiants du diplôme M2 PDS - Parallel and Distributed Systems
Une bonne compréhension de la Programmation Orientée-Objet (de préférence en Java)
Pour les étudiants du diplôme M1 PDS - Parallel and Distributed Systems
Une bonne compréhension de la Programmation Orientée-Objet (de préférence en Java)
Pour les étudiants du diplôme Diplôme d'ingénieur
Une bonne compréhension de la Programmation Orientée-Objet (de préférence en Java)
Format des notes
Numérique sur 20Littérale/grade européenPour les étudiants du diplôme Echange international non diplomant
Vos modalités d'acquisition :
un contrôle écrit permettra d'évaluer les acquis théoriques
le développent des exercices en TD/TP sera également évalué (directement ou indirectement)
le projet pratique permettra d’estimer labilité des étudiants à appliquer leur connaissances via une application concrète
- Crédits ECTS acquis : 2.5 ECTS
La note obtenue rentre dans le calcul de votre GPA.
Pour les étudiants du diplôme M2 PDS - Parallel and Distributed Systems
Vos modalités d'acquisition :
un contrôle écrit permettra d'évaluer les acquis théoriques
le développent des exercices en TD/TP sera également évalué (directement ou indirectement)
le projet pratique permettra d’estimer labilité des étudiants à appliquer leur connaissances via une application concrète
- Crédits ECTS acquis : 2.5 ECTS
La note obtenue rentre dans le calcul de votre GPA.
Pour les étudiants du diplôme M1 PDS - Parallel and Distributed Systems
Vos modalités d'acquisition :
un contrôle écrit permettra d'évaluer les acquis théoriques
le développent des exercices en TD/TP sera également évalué (directement ou indirectement)
le projet pratique permettra d’estimer labilité des étudiants à appliquer leur connaissances via une application concrète
- Crédits ECTS acquis : 2.5 ECTS
La note obtenue rentre dans le calcul de votre GPA.
Pour les étudiants du diplôme Diplôme d'ingénieur
Vos modalités d'acquisition :
un contrôle écrit permettra d'évaluer les acquis théoriques
le développent des exercices en TD/TP sera également évalué (directement ou indirectement)
le projet pratique permettra d’estimer labilité des étudiants à appliquer leur connaissances via une application concrète
- Crédits ECTS acquis : 2.5 ECTS
- Crédit d'UE électives acquis : 2.5
La note obtenue rentre dans le calcul de votre GPA.
L'UE est évaluée par les étudiants.
Programme détaillé
Cette UE traite des points suivants :
- Threads Java, synchronisation, sérialisation d'objet, entrées/sorties et sockets ;
- gestion de versions via git avancé (ex : branches gestion de conflits, outil SmartGit) ;
- automation de la compilation, de l’archivage et de l’exécution du code avec l'outil Apache ANT ou Maven ;
- introduction à la méthode agile (ex : Scrum) pour le développent des projets informatiques
Mots clés
distributed systems, middleware, threads, sockets, remote method invocation, message-oriented communication, distributed objectsMéthodes pédagogiques
Les concepts principaux sont présentés en cours magistral et mis en application en TD et/ou en TP.Un projet sera également assigné (travail à la maison) afin d'approfondir ces notions via un développement d'application moins encadré.