Enseignement d'option en Master d'Informatique M1

Titre : "Middleware"  adaptable

Responsable : Sacha Krakowiak <Sacha.Krakowiak at inrialpes.fr>, projet Sardes, IMAG-LSR et INRIA

Membres de l'équipe pédagogique :

2 équipes du Laboratoire IMAG-LSR sont concernées :

Intervenant extérieur : Éric Bruneton (France Telecom R&D)

Objectifs du cours :

Le middleware (intergiciel) est la couche logicielle située entre les couches basses (systèmes d'exploitation, protocoles de communication) et les applications dans un système informatique réparti. Son but est de faciliter le développement de ces applications, en masquant l'hétérogénéité des systèmes sous-jacents et les détails de leurs mécanismes, et en fournissant des interfaces normalisées de haut niveau.
Le middleware est un domaine en plein développement et plusieurs systèmes industriels sont disponibles ou en cours d'élaboration : Corba, EJB, CCM, .Net. Parallèlement, la recherche vise à dégager les concepts de base et à améliorer les performances et l'utilisabilité des logiciels.

Parmi les défis les plus importants figure l'adaptation des applications et du  middleware lui-même. En effet, de nombreuses applications fonctionnent dans des environnements qui évoluent dynamiquement et doivent donc pouvoir répondre à cette évolution. Par ailleurs, des impératifs de réutilisation et de modularité amènent à réaliser les applications par assemblage de composants pouvant être remplacés et reconfigurés.

L'objectif de ce cours est de présenter les concepts de base et les techniques applicables aux aspects avancés du  middlewarepour répondre notamment aux défis de l'adaptabilité et du passage à l'échelle. Cet enseignement prépare à la fois à mener des recherches dans ce domaine et à maîtriser les aspects techniques pour une mise en oeuvre efficace dans un cadre professionnel.

L'enseignement s'appuye largement sur des systèmes avancés issus de la recherche et de l'industrie et disponibles en logiciel libre, et notamment sur ceux distribués par le consortium ObjectWeb.

N.B. Le thème de cet enseignement est prolongé en Master M2 tant dans l'orientation "Professionnelle" que dans l'orientation "Recherche". Cet enseignement d'option n'est pas un prérequis pour suivre ces enseignements de M2, mais les unités correspondantes pourront être proposées, si besoin, à des étudiants de M2.
 

Unité d'enseignement 1 : Infrastructure du middleware et outils pour l'adaptation

Cours :  9H, TD-TP : 21 h.
Objectifs et contenu
Cette unité présente une étude approfondie des infrastructures de base du middleware et un certain nombre de techniques d'adaptation.

Prérequis : Programmation par objets de M1
Co-requis : Module Réseaux et applications réparties

Unité d'enseignement 2 : Composants logiciels
Cours :  9H, TD-TP : 21 h.
Objectifs et contenu
Cette unité introduit les concepts et techniques de base des systèmes répartis à base de composants. Elle présente les modèles fondamentaux et leurs bases, les principaux patrons (patterns) et canevas (frameworks) pertinents, et enfin quelques techniques de réalisation des infrastructures à composants. Elle s'appuie largement sur des études de cas de systèmes industriels et de prototypes de recherche.

Prérequis : Programmation par objets de M1
Co-requis : Module Réseaux et applications réparties

Bibliographie (pour les 2 unités)

Szyperski, C. (2002). Component Software - Beyond Object-Oriented Programming. Addison-Wesley.
          608 pp
AspectJ : http://aspectj.org
Bruneton, É., Coupaye, T., and Stefani, J.-B. (2002a). The Fractal composition framework. ObjectWeb
          Consortium. http://fractal.objectweb.org
Halloway, S. D.  (2002). Component Development for the Java Platform. Addison-Wesley.
          334 pp
Laddad R. (2003). AspectJ in Action, Manning
Rapports du projet RNTL Arcad : http://arcad.essi.fr

Littérature scientifique courante (conférences Middleware, etc.)
Pages web (indiquées selon besoins)