F2B101A : Paradigmes et modèles pour les systèmes logiciels distribués


Retour
Imprimer la fiche programme
Code analytique: EDF02B101
Responsable  : Yvon KERMARREC   
Programmé en UVF2B101, UVF2B101

Présentation :

Ce module aborde les systèmes informatiques dans un contexte réseaux. En effet, les réseaux fournissent des moyens de communication, de partage et d'interactions pour les applications informatiques et de ce fait ont introduit des changements majeurs pour la conception des systèmes informatiques et logiciels. Nous ferons un bref aperçu de la thématique avant de présenter les différents modèles comme le passage de message, les objets distribués et les middlewares.
Après une présentation de ces modèles en cours, des travaux pratiques permettront de les expérimenter et de développer des applications informatiques destinées à fonctionner plusieurs machines.

Le but de ce module est donc d’explorer le thème de cette association et se décline en 3 objectifs principaux :
- connaître les principes de la programmation des systèmes distribués
- découvrir les plateformes de développement de logiciels
- découvrir une nouvelle approche de conception de systèmes informatiques et de les expérimenter sur des machines en réseau.


Pré-requis :

Aucun – les rappels sur les principes de concurrence et de synchronisation n'imposent pas le suivi de la majeure Informatique mais celle-ci reste cependant recommandée.

Volume horaire : 63h


Contenu détaillé :

Le module se compose de deux parties.

Partie 1 : Un Tronc commun : court – 6h

Introduction au domaine

- des rappels sur les évolutions systèmes et logiciels
- le « rationale » des systèmes distribués pour le partage des ressources
- les classes d’applications visées
- l’importance du réseau et son impact sur les applications : topologie, maillage, propriétés comportementales du réseau, etc…
- modèles d’interactions
- les défaillances et les pannes
- les enjeux et impératifs des intergiciels ("middleware") et les architectures à base de service

Les IPC d'Unix: inter Process Communication

- rappels sur la synchronisation et processus
- synchronisation par message
- la représentation des interactions entre processus
- les modes connectés et non connectés
- les IPC d’UNIX : sockets, RPC, TLI, POSIX…




Partie 2 : Paradigmes et modèles


Modèles de programmation des applications distribuées
Notre objectif est de montrer dans cette partie que les systèmes distribués proposent des approches originales pour la résolution de problèmes et surtout différents niveaux d’abstraction… Nous aborderons en particulier :

- les paradigmes à base de message, de partage, peer-to-peer, de coopération, etc…
- les classes d'applications visées par ces modèles



Le modèle client serveur
Point clé : montrer tous les bénéfices d’une organisation et d’une architecture à base de services

- le modèle et son organisation
- les protocoles sous-jacents
- architecture logicielle et services
- les différents modèles
- le mode avec ou sans état


Le paradigme de passage par message :
point clé : montrer la simplicité mais aussi les pièges de ce paradigme très utilisé. Une série de TPs autour de MPI permettront de mettre en pratique les thèmes abordés en cours et surtout d’expérimenter les interblocages, les problèmes de terminaison, les problèmes de nomage, etc… Parmi les thèmes abordés dans cette section, nous trouvons :
- le passage de message
- les codages des données avec XDR, ASN1 et la prise en compte de l'hétérogénéité
- le codage des paramètres pour des données complexes : marshaling, serialization
- la désignation de son interlocuteur : communication directe ou par intermédiaire (boite aux lettres, canal).
- la communication point à point, diffusion et notions de communications de groupes
- Un système : MPI et des TPs avec développement et exécution sur plusieurs machines.


Le paradigme d’objet distribué :
point clé : une solution largement répandue avec Java RMI et qui propose des alternatives intéressantes au paradigme de passage de message. Les points étudiés seront :

- historique et concepts de l’objet distribué
- le RPC vs. l’invocation distante de méthodes
- le cas Java RMI
- la mise au point des applications distribuées
- Java RMI avancé : les callbacks, la sécurité, les chargements dynamiques des stubs
- des TPs autour de Java RMI simple et un autre autour de Java RMI avancé – différents modèles à explorer


Le stockage en réseau
point clé : il s'agit ici de voir comment les architectures en réseau permettent de stocker de gros volumes de données et de les sécuriser en répliquant les données importantes.
Un cours spécifique permettre de découvrir le cloud et comment ces approches impactent l'entreprise.

Vers le big data:
point clé: les traitements de très gros volumes de données imposent une redéfinition des modèles et approches de calcul - avec en particulier ce que l'on désigne par 'big data'. Plusieurs cours permettront de découvrir ces nouveaux concepts et 2 TP permettront d'expérimenter avec les environnement proposés par Google et les géants du Net.

les webservices
un impératif pour les systèmes d’entreprises à l’heure actuelle


Année 2016/2017
Dernière mise à jour le 26-FEB-16
Validation par le responsable de programme le


IMT Atlantique
Campus de Brest
Technopôle Brest-Iroise
CS 83818
29238 Brest Cedex 3
France

Tél  +33 (0)2 29 00 11 11
Fax +33 (0)2 29 00 10 00