Vous êtes sur la page 1sur 13

Cours Intergiciels, Option Informatique/Master Web Intelligence 2, ENSM-SE

Intergiciels (Middleware)
Introduction

2010, Laurent Vercouter

Cours Intergiciels, Option Informatique/Master Web Intelligence 2, ENSM-SE

Intergiciels : sances
Lundi 15/11 (13h30-17h30) Cours Intergiciels, RMI TP RMI Mercredi 22/11 (13h30-17h30) TP RMI Lundi 29/11 (13h30-17h30) Cours Corba TP Corba Lundi 6/12 (13h30-17h30) Exposs Mardi 7/12 (13h30-17h30) Exposs Lundi 13/12 (13h30-17h30) TP Corba

Pr-requis : Programmation Java


2010, Laurent Vercouter

Cours Intergiciels, Option Informatique/Master Web Intelligence 2, ENSM-SE

Introduction aux intergiciels


L'intergiciel (Middleware) est la couche du milieu
APIs de haut niveau

Application

Application

...

Application

APIs de haut niveau

Intergiciel
APIs de bas niveau Systme d'exploitation Systme d'exploitation APIs de bas niveau

... Communication

2010, Laurent Vercouter

Cours Intergiciels, Option Informatique/Master Web Intelligence 2, ENSM-SE

Fonctions d'un intergiciel


Quatre fonctions
Fournir une interface ou API (Applications Programming Interface) de haut niveau aux applications Masquer l'htrognit des systmes sous-jacents Rendre la rpartition invisible ( transparente ) Fournir des services rpartis d'usage courant

Un intergiciel vise faciliter la programmation rpartie


Dveloppement, volution, rutilisation des applications Portabilit des applications entre plate-formes Interoprabilit d'applications htrognes

2010, Laurent Vercouter

Cours Intergiciels, Option Informatique/Master Web Intelligence 2, ENSM-SE

Services, contrats et interfaces


Dfinition
Une application rpartie est constitue d'un ensemble de composants mis en interaction Un service est un comportement dfini par contrat, qui peut-tre implment et fourni par un composant pour tre utilis par un autre composant, sur la base exclusive du contrat

Mise en oeuvre
Un service est accessible via une ou plusieurs interfaces Une interface dcrit l'interaction entre client et fournisseur du service
Point de vue oprationnel : dfinition des oprations et structures de donnes qui concourent la ralisation du service Point de vue contractuel : dfinition du contrat entre client et fournisseur

2010, Laurent Vercouter

Cours Intergiciels, Option Informatique/Master Web Intelligence 2, ENSM-SE

Dfinitions d'interfaces (1)


Contrat Client
Interface requise Interface fournie

Fournisseur

La fourniture d'un service met en jeu 2 interfaces


Interface requise (ct client) Interface fournie (ct fournisseur)

Le contrat spcifie la compatibilit entre ces interfaces


Chaque partie est une bote noire pour l'autre Client et fournisseur peuvent tre remplacs par des composants respectant le contrat
2010, Laurent Vercouter

Cours Intergiciels, Option Informatique/Master Web Intelligence 2, ENSM-SE

Dfinitions d'interfaces (2)


Partie oprationnelle
Description dans un langage de prog., (e.g. interface Java) Description dans un IDL (Interface Definition Language)

Partie contractuelle
Plusieurs niveaux de contrats
Sur la forme : spcification de types -> conformit syntaxique Sur le comportement : assertions -> conformit smantique Sur les interactions entre mthodes : synchronisation Sur les aspects non fonctionnels : QoS, ...

2010, Laurent Vercouter

Cours Intergiciels, Option Informatique/Master Web Intelligence 2, ENSM-SE

Schmas d'interaction
Client Serveur

Synchrone

Asynchrone

Semi-synchrone

Synchrone (avec callback)

2010, Laurent Vercouter

Cours Intergiciels, Option Informatique/Master Web Intelligence 2, ENSM-SE

Liaison rpartie
La mise en relation d'un client et d'un fournisseur passe par plusieurs tapes
La rsolution qui transforme un nom symbolique ou une description en une rfrence
ex: rmi://myprinters/hp4550 -> 193.54.183.167

La liaison qui cr chez le client un point d'accs au fournisseur partir d'une rfrence
ex: 193.54.183.167 -> _PrinterStub.class

2010, Laurent Vercouter

Cours Intergiciels, Option Informatique/Master Web Intelligence 2, ENSM-SE

Annuaire
Client
Point d'accs rfrence 4. accs 3. liaison Implmentation du service (servant)

Fournisseur

2. recherche(nom)

Annuaire
<nom,rfrence> <nom,rfrence> <nom,rfrence> ...

1.enregistrement

2010, Laurent Vercouter

Cours Intergiciels, Option Informatique/Master Web Intelligence 2, ENSM-SE

Remote Procedure Call (RPC)


L'appel de procdure distance (RPC) permet d'invoquer une fonction distante dans des applications client-serveur crite dans un langage procdural.
Appel local
... int a = f(3,4); ...

Appel distant
... int a = f(3,4); ...

f(3,4)

int f(int x, int y) { return x+y; }

f(3,4)

int f(int x, int y) { return x+y; }

Le mme traitement est requis (sauf dfaillance rseau)

2010, Laurent Vercouter

Cours Intergiciels, Option Informatique/Master Web Intelligence 2, ENSM-SE

RPC (2)
f(x,y)

Application
pack parameters send parameters wait receive results unpack results

f(x,y)

Souche client

Intergiciel

receive parameters unpack parameters call procedure pack results send results

Souche serveur

send receive

receive

Rseau

send

2010, Laurent Vercouter

Cours Intergiciels, Option Informatique/Master Web Intelligence 2, ENSM-SE

Diverses formes de Middleware


Messages
JMS, JORAM, LPD

RPC
XML-rpc, SOAP

Object Request Broker


RMI, CORBA, Eclipse Communication Framework

Accs transparent aux donnes


ODBC, Peer-to-Peer (JXTA, Chord), space-based architecture, GSN

Accs transparent aux composants htrognes


OSGI, Sodium, OLE, COM, Kpart, JQuery

Accs transparent aux composants distribus


SETI@home (BOINC), Folding@home, MMO(RP)G (RTF)
2010, Laurent Vercouter