Dans un système réparti, même l’interface fournie par les systèmes d’exploitation et de communication est encore trop complexe pour être utilisée directement par les applications à cause de l’hétérogénéité, de la complexité  des  mécanismes  (bas niveau) et la nécessité  de  gérer  (et de  masquer, au moins partiellement) la répartition. Une solution consiste à introduire une couche de logiciel intermédiaire (répartie) entre les niveaux bas (systèmes et communication) et le niveau haut (applications) : c’est l’intergiciel. Ce dernier est la couche ”du milieu” (Middleware) qui joue un rôle analogue à celui d’un ”super-système d’exploitation” pour un système réparti. L'objectif de ce cours est d’étudier l'architecture et la programmation distribuée et de voir les principes de base des Applications Client Serveur Objet, par interaction sous forme d'appels de méthodes distantes via les Middlewares Java RMI et CORBA