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 ce cours, 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)
UE de rattachement
- CSC_4SLS1_TP : Filière Systèmes logiciels répartis (créneau A) - Semestre 1
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 20Pour 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
- le rattrapage est obligatoire si :
- Note initiale < 10
Le coefficient de l'UE est : 1
L'UE est évaluée par les étudiants.
Pour les étudiants du diplôme Echange international non diplomant
Le rattrapage est autorisé (Note de rattrapage conservée)- le rattrapage est obligatoire si :
- Note initiale < 10
Le coefficient de l'UE est : 1
Programme détaillé
Ce cours 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