102
Modèles pour le client serveur 1 Cours d’introduction Modèles d’interactions pour le client serveur et exemples d’architectures les implantant Gérard Florin Conservatoire National des Arts et Métiers Laboratoire CEDRIC

Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

  • Upload
    doanh

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 1

Cours d’introduction

Modèles d’interactions pourle client serveur et exemples

d’architectures les implantant

Gérard Florin

Conservatoire National des Arts etMétiers

Laboratoire CEDRIC

Page 2: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 2

IntroductionProblématique de la coopération

Application coopérative Application réalisée par des programmes

communicants (processus, objets, ...).

Avantages potentiels

- Modularité.- Réutilisation (par composition).- Performances.

Motivations actuelles importantes pourles applications coopératives

- Applications systèmes et réseaux(algorithmique répartie).

- Applications objets, objets répartis, àbase de composants.

- Systèmes d’informations,Parallélisme, Intelligence artificielle=> Presque tous les types d’applicationsinformatiques sont concernées.

Page 3: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 3

Des problèmes spécifiques à lacoopération

Cycle de vie

- Exprimer la coopération.- Développer l’application.- Déployer l’application.- Gérer son exécution.

Sous des hypothèses d’environnement

- Performances.- Pannes.- Sécurité.- Répartition.

Page 4: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 4

Exprimer la coopération

Le principal problème abordé actuellement.

Coopération : Le point de vue local

Ensemble de programmes coopérantsutilisant des données locales

Programmes : schéma de contrôle local àun site (flot d’exécution local).

Données : traitées par le programme,disponibles localement sur le site.

Vision plutôt ascendante : ‘émergence’ ducomportement coopératif.

Terminologies multiples

Application répartie , distribuée ,coopérative, n tiers

Page 5: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 5

Coopération : Le point de vue global

Une application coopérative offre unservice externe en encapsulant une structure

de données réparties

Programme réparti : schéma de contrôleglobal à un ensemble de sites(comportement de groupe).

Données : une structure de donnéesencapsulée par le traitement (en faitdistribuée sur les différents sites, ‘structurede données partitionnée).

Vision plutôt descendante : lecomportement coopératif visé est placé a

priori.

Page 6: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 6

Coopération avec utilisation d’interactionsclient serveur

Client serveur : une approcheuniversellement adoptée pour structurer les

applications coopératives.

A l’origine des services généraux offertspar les couches application réseau.

Exemples : Serveurs de fichiers Serveurs de base de données, Serveurs d’impression Serveurs de noms (annuaires) Serveurs applicatifs usager.

Client A

Client B

Serveur

Service 1

Service n

Page 7: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 7

Modèle client serveur

Un ensemble de choix de réalisations del’interaction de communication en point

à point ayant des points communs.

Client serveur : Vue du client

- Mode de synchronisation locale desprimitives requête, réponse.

- Mode de synchronisation distante.- Parallélisme interne au client.

Client Service distant

Réponse

Requête

Page 8: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 8

Client serveur : Vue du serveur

- Gestion des requêtes.- Exécution du service :

séquentiel, concurrent- Mémorisation ou non de l’état du client.

Alternatives au mode client serveur

Des schémas de contrôle applicatifsréutilisables (‘design patterns’) générantdirectement des modes complexesd’interaction

Impliquant des groupes d’entitéscommunicantes.

Exécution du service

RequêtesRéponses

Page 9: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 9

Développer une applicationen client-serveur

Choisir une sémantique de base précisesupportant le mode client serveur

Pour exprimer la synchronisation entre descoopérants au moyen d’une interaction de

base (‘design pattern’).

Propriétés des outils d’expression de lacoopération

1 Définition d’un modèle d’interaction etd’exécution.

Présentation des différentes catégoriesde modèles dans cette introduction.2 Définition d’une API (interface deprogrammation) supportant le modèle.

Dans les cours de détail.3 Outils de développement.4 Environnements d’exécution.

Services systèmes d’accueil surdifférents types d’infrastructure.

Page 10: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 10

Architecture globale

Outils dedéveloppement

Outils d’administration

Services applicatifs(fichiers répartis, transactionnels,…

Services systèmes(communications, désignation,sécurité…)

Médiateur (Middleware)

Application

Systèmes d’exploitationMachines et réseaux

Page 11: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 11

Plan du cours :Les modèles d’interactions actuels pour

le client serveur

Modèles de communication par messages.

Modèles de communication à événements.

Modèles client serveur de base de données. (ODBC).

Modèles client serveur en RPC.

- Client serveur à RPC traditionnel (DCE).

- Client serveur à objets répartis.(CORBA, DCOM).

- Client serveur à composants (EJB, CCM).

Egalement

Modèles à base de code mobile.Modèles à mémoire virtuelle partagéerépartie.

Page 12: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 12

MODELES CLIENT SERVEUR

A MESSAGES

Page 13: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 13

Client serveur par messages:Introduction

Mode de communication basique parmessages asynchrones

- Communication asynchrone : Emission non bloquante Réception bloquante.- Communication par messages typés.- Communication sur les processusdestinataires ou sur des boites à lettres(portes) de communication.

CLIENT SERVEUR

Requète

Réponse

Send(bals,serv, params

Msg=get(bals)

Put(balc,res)Msg=get(bals)

exec(serv)bals

balc

Page 14: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 14

Communications par messages :exemples de mise en oeuvre

Interfaces des piles réseaux

Couche transport : Sockets, TLI, NetBEUI .

Interfaces de programmation parallèle

PVM , MPI.

Interfaces de systèmes répartis

Chorus, Mach

Autres environnements par message

Multi-agent,

Dernière version du modèle : les MOM

(fin des années 1980)

Mode messages asynchrones +

Mode asynchrone avec persistance : lesfiles de messages.

Page 15: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 15

Communication à files de messages :

MOM Messages Oriented Middleware

Deux modes de fonctionnement:. mode message (habituel).. mode file de messages (caractéristique)

Messages

Identification unique.

Structure.

Entête : identifiant, informationsprotocolaires pour l’acheminement. Attributs : couples (nom, valeur)utilisables pour la sélection des messages. Données : charge utile.

Paramètres d’acheminement. Durée de vie Priorité Sécurité. Confidentialité, contrôle d’accès.

Page 16: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 16

Motivations pour les files de messages

Les styles Asynchrones et Synchrones ontdes forces et des faiblesses.

Mode synchrone (bloquant)

Il est terminant (on est certain de la fin).Avec acquittement (réponse).

PB : arrêt complet du fonctionnement duclient quand le serveur ne répond pas.

Mode asynchrone (non bloquant)

Pour assurer l’acquittement et laterminaison il faut un protocole.

L’asynchronisme des modes messageshabituels devient assez vite égalementbloquant car on peut saturer un site distantqui ne peut pas tenir le rythme des servicesdemandés (serveur non opérationnel).

=> Amélioration : les files de messages.

Page 17: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 17

Files de messages

Structures de données de stockage demessages asynchrones

- Identification unique

- Propriétés de persistance (style transactionnel)Les messages dans les files sont journalisés(résistance aux défaillances, gestion desclients en ligne ou hors ligne).

- Partagées (par les applications).

- Mode de réception variable (selon ledestinataire).

Exemples : IBM MQSeries, MicrosoftMessage Queue Server, DECmessageQ,TIPCO, etc.

Page 18: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 18

EXEMPLE MOM : IBM MQSERIES

LES QUATRE TYPES DE MESSAGES

‘Datagram’: messages isolés

‘Request’ : l’émetteur attend une réponse.

‘Reply’: réponses aux requêtes

‘Report’ : pour informer d’événementsexceptionnels.

LES ONZE PRIMITIVES

MQCONN - Connecte une application à ungestionnaire de file (‘queue manager’).

MQOPEN - Ouvre un objet MQSeriescomme une file et retourne un descriptif(‘handle’).

MQGET - Demande pour obtenir desmessages d’une file locale. MQGET peutêtre utilisée de façon bloquante ou non.

Page 19: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 19

LES ONZE PRIMITIVES (SUITE)

MQPUT - Envoie un message sur une filelocale ou distante

MQPUT1 - Séquence de MQOPEN,MQPUT d’un message et MQCLOSE.

MQCLOSE - Fermeture avec destructiond’une file.

MQDISC - Déconnexion avec ungestionnaire de files MQSeries.

MQINQ - Interrogation d’attributs d’objetsMQSeries (des files).

MQSET - Positionnement ou modificationd’attributs d’objets MQseries.

MQCMIT - Indique au gestionnaire de lafile que toutes les opérations ‘get’ et ‘put’depuis le précédent point desynchronisation sont validées.

MQBACK - Demande de reprise arrièrepour tous les ‘get’ et ‘put’ depuis le dernierpoint de synchronisation.

Page 20: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 20

Les files de messages : conclusion

AvantagesUne interaction par message asynchroneavec des améliorations.

Augmentent l’interopérabilité, la portabilitédans la mesure ou l’interface MOM isolel’application des logiciels sous jacents.

Les infrastructures client serveur à MOMsont assez simples et donc à maturité=> de nombreuses entreprises utilisent desMOM (exemple le secteur bancaire).

Les autres styles de ‘middleware’ ne sontpas simples ni jugés aussi murs.=> Introduction de service MOM enCORBA (chez IBM Mqseries en DSOM)

InconvénientsSémantique limitée du mode messageasynchrone.

Page 21: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 21

MODELES CLIENT SERVEUR

A EVENEMENTS

Page 22: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 22

Client serveur à événements :Introduction

Besoin : définir une approche ‘asynchrone’(événementielle) de communication..

Programmation événementielle :systèmesréactifs, messages asynchrones, graphique,

Environnements : un plus dans lesenvironnements objets répartis (servicesd’événements CORBA, composantsCORBA, JMS Java Messaging Service).

Concepts

- Notions d’événements (un signal) et deréactions (un code, une procédure exécutépar un abonné lors d’un événement).

- Attachement : association dynamiqueentre un événement et une réaction.

- Communication anonyme :indépendance entre l’émetteur d’unévénement et les consommateurs de cetévénement.

Page 23: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 23

Communication événementielle :schéma général

- Des sources produisent des événements :publish.

- Des consommateurs s’abonnent à desévénements : subscribe.

Programme cons

Subscribe (event1,reaction1)

Reaction1 :

Programme prod

Publish (event1)

Service de gestiondes événements etdes abonnementsSubscribe (event1,

12

3Bal

Page 24: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 24

Communication événementielle :Sémantique de consultation des boites à

lettre

Mode ‘Pull’

- Le consommateur doit consulter sa boite àlettre pour traiter les événements en attente.

=> Il contrôle le moment de traitement desévénements.

Mode ‘Push’

- Le consommateur attache une méthode àchaque type d’événement.

=> L’occurrence d’un événement déclencheautomatiquement le traitement associé.

Page 25: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 25

Communication événementielle :Architecture du service d’événement

centralisée

Mode ‘Hub and Spoke’

- Le service centralisé de gestion desévénements dialogue en mode point à pointavec des clients producteurs ouconsommateurs d’événements.

Courtiercentraliséd’événements

Clientproducteur

Clientproducteur

Clientconsommateur

Page 26: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 26

Communication événementielle :Architecture du service d’événement

répartie

Mode ‘Snowflake’

- Les courtiers coopèrent pour offrir unservice réparti de gestion des événements.

Courtier

Clientproducteur

Clientproducteur

Clientconsommateur

Courtier

Courtier

Page 27: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 27

Communication événementielle :Architecture du service d’événement à

bus de messages

- Les courtiers coopèrent au moyen d’unprotocole à diffusion des événements.

Courtier

Clientproducteur

Clientproducteur

Clientconsommateur

Courtier

Courtier

Répéteur

Page 28: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 28

ENVIRONNEMENT A EVENEMENTS,EXEMPLE : JMS ‘JAVA MESSAGE

SERVICE’

Une API JAVA pour offrir un accèsunique aux différents protocoles de files

de messages (MOM MQSeries, Tibco …). - Gestion événementielle des messages. - Mode ‘publish’/’subscribe’

JMS

Clientproducteur

Clientconsommateur

JVM

Pile MQ X

Accès MQ X

JMS

JVM

Pile MQ X

Accès MQ X

Réseau

Page 29: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 29

Java Message Service : Architecture

JNDI

JMS Client

Destination

Connectionfactory

Connection

Session

MessageProducer

MessageConsummer

Page 30: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 30

Commentaires Architecture JMS

- JMS utilise JNDI (‘Java Naming andDirectory Interface’) pour trouver lalocalisation des ressources souhaitées.

- Un client JMS (le créateur d’uneapplication JMS) doit réaliser les étapes :

1.Créer une connexion avec leprestataire d’échange de messages.

2.Créer une ou plusieurs sessions pourémettre et recevoir des messages.

3.Créer des producteurs de messages(‘MessageProducers’) qui publient desmessages et des consommateurs demessages (‘MessageConsumers’) quireçoivent les messages.

Page 31: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 31

Client serveur à événements :Conclusion

Avantages

Une sémantique de communication‘asynchrone’ demandée par différentes

applications (différents métiers).

- Diffusion d’informations sur le WEB(Smartsockets, Castanet, Ambrosia,ActiveWeb, iBus, TIB/rendezvous).

- Diffusion de logiciels.

- Workflow

Inconvénients

- Des outils souvent propriétaires.

- Des outils de développementsommaires.

Page 32: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 32

Modèle client serveurDe données

Page 33: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 33

Le client serveur de données :Principes généraux

Une approche des applications clientserveur orientée accès distant à une base de

données.

Fonctions du client

Traitements applicatifs non lié au stockagedes données :

- dialogue avec l’utilisateur,- traitements divers,- ….

Fonctions du serveur

Stockage des données ,- Interprétation des requêtes,- Optimisation des requêtes- Gestion de la persistance- Gestion de la sécurité des données- …..

Page 34: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 34

Le client serveur de données :schéma de base

Très nombreux standards et produitspropriétaires.

Client Serveur

Codeclient

SGBD

Requête SQL

Résultats:tuples

Médiateur(Middleware)

Page 35: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 35

Exemple : Client serveur de bases dedonnées relationnelles

L'API CLI de l’X/OPEN"Call Level Interface"

Une API en mode message pour l'accès àdes BD relationnelles (31 primitives).Une standardisation de la formulation desrequêtes offrant la conformité SQL2. | AllocHandle | BindCol | BindParam | Cancel | CloseCursor | Connect | CopyDesc | DescribeCol | Disconnect | EndTran | ExecDirect | Execute | Fetch | FreeHandle | GetCol | GetCursorName | GetConnectAttr | GetDescField | GetDescRec | GetDiagField | GetDiagRec | GetEnvAttr | GetStmtAttr | NumResultCols | Prepare | ReleaseEnv | SetCursorName | SetDescField | SetDescRec | SetEnvAttr | SetStmtAttr

Page 36: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 36

Exemple : Le client serveur de bases dedonnées orientées objet

Objectifs

Permettre la portabilité des sources d’uneapplication utilisant une approche BD objetsur différents moteurs de SGBD objets.

Solutions ODMG : ‘Object DataManagement Group’

- Choix d’un modèle objet (sur ensembledu modèle objet de l’OMG ‘ObjectManagement Group’).

- Langage de définition de donnéesODL (‘Object Description Language’) basésur IDL CORBA).

- Langage d’interrogation orienté objetOQL (‘Object Query Language’)

- Intégration aux langages objets existants.

Page 37: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 37

Environnements client serveur dedonnées : Exemple ODBC

"Open Data Base Connection"

. Un produit définit par extensions à partirla CLI de l’X/OPEN (depuis 1992).

. Ensuite de très nombreux rattachements àce standard de facto. Existence sur lesprincipaux OS de pilotes pour un grandnombre de bases de données.

. Mais des évolutions successives avec desvariations importantes (V1, V2, V3 ..).

Exemple ODBC 2.0

. Noyau: 23 primitives de base.

. Niveau 1: 19 appels pour les accès auxcatalogues des bases de données, les grosobjets et des fonctions spécifiques despilotes.. Niveau 2: 19 appels supplémentaires pourdes accès utilitaires.

Page 38: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 38

Organisation générale de ODBC

API ODBC

Pilote 1FAP 2

Pilote 2FAP 1

Gestionnaire de pilotes

OracleSQL*Net DRDADB2

API Pilotes fournisseurs

- Couche de réception des requêtes ODBC.

- Couche de gestion des pilotes (à quelpilote passer une requête?)

- Selon un format standard pour les pilotesODBC.

- Chaque pilote de bases de donnéesencapsule les requêtes dans le formatpropre à chaque fournisseur de bases dedonnées.

- Notion de FAP (‘Format And Protocol’)structure des messages et codage desdonnées pour un SGBD.

Page 39: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 39

Client Serveur de données : Conclusion

- La transmission à distance de requêtesd'accès à des bases de données est unproblème résolu:

. Choix d'un service (dérivé de SQL)

. Choix d'un protocole.

- Difficulté : le client serveur de donnéesest rendu très opaque par le jeu des éditeursde logiciels qui veulent couvrir tout lespectre des interactions client serveur dansdes solutions propriétaires :

. Commandes de bases SQL enrichiesde multiples fonctionnalités.

. Procédures stockées et déclencheursajoutent des RPC synchrones ouasynchrones.

. Les propositions propriétaires nonstandardisées sont trop nombreuses.

Nombreux problèmes à résoudre pourune homogénéisation des approches et

peu de volonté d'y arriver.

Page 40: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 40

Modèle client serveuren RPC traditionnel

Page 41: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 41

APD ‘Appel de procédure distante’RPC ‘Remote Procedure Call’

Introduction

Objectif d’un RPCPrésenter les interactions distantes sous une

forme (syntaxe) et un effet (sémantique)analogue à celui d’un appel de procédure

local.

- L’opération appelée (le serveur) estprésentée sous la forme d’une procéduresituée sur un site distant dont unprogramme appelant (le client) demandel’exécution.

- L’interaction est généralement synchronecomme un appel de procédure habituel (lemode asynchrone est possible)

- Le RPC offre un changement importantpar rapport à la structuration au modemessage (qui ne permet qu’undéclenchement asynchrone d’action àdistance définie par une séquence de code).

Page 42: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 42

RPC : Principes de réalisation encommunication par messages

Birrell et Nelson 1984

V

V

Appelant Appelé

Réseau

SoucheAppelant

SoucheAppelé

1

2

3

4

5

Page 43: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 43

RPC : Notion de souche ou talon (‘stub’)

Deux procédures intermédiaires (chezle client et le serveur) pour l’adaptation del’invocation à l’environnement réparti.

Elles transforment un appel local enappel distant.Z Un exemple type de démarche réflexivede tissage (‘wrapping’).

Souche Appelant (‘stub’)

- Reçoit l’appel en mode local.- Emballe les paramètres d’appel dans unmessage de requête (‘marshalling’).- Emet le message de requête.- Se met en attente du message de réponse.- Déballe les paramètres réponse.- Retourne les paramètres réponse commeun retour local.

Page 44: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 44

Souche Appelé (‘skeleton’)

- Reçoit le message d’appel.

- Déballe les paramètres d’appel(‘unmarshalling’).

- Fait réaliser l’exécution par la procédureappelée.

- Récupère par le retour local les résultats.

- Emballe les paramètres réponse dans lemessage de réponse.

- Emet le message réponse vers la soucheappelant.

Page 45: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 45

Invocation distante et invocation locale

Objectifs pour une invocation distante

Le plus souvent affiché : obtenir eninvocation distante la même sémantiquequ’en invocation locale (atteindre une‘transparence’ de la répartition).

Très difficile à atteindre (actuellement onest encore loin de compte)

- Syntaxe : beaucoup plus lourde enappel distant qu’en appel local

Description de la signature en IDL.Usage d’interfaces systèmes (API).Modes de désignation (références).

- Sémantique de l’appel distant différentede celle de l’appel local

PerformancesTransmission des argumentsModes de panne

Page 46: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 46

RPC : De nombreuses difficultés de miseen œuvre

PerformancesRéalisation des invocations distantes avecdes temps de réponse satisfaisants.

Gestion des pannesPannes franches du client ou du serveur.

Ouverture (interopérabilité)Des langages évolués utilisés.De la représentation des données.Des systèmes d’exploitation utilisés.Des architectures de réseau.

Désignation et liaisonStructuration des références.Localisation des serveurs.

SécuritéAutorisation des accès aux procédures

Authentification des clientsVérification des droits.

Page 47: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 47

RPC : Traitement des pannes

Cas des pannes franches ou transitoires

- Mécanismes de reprise- Sémantique des reprises en cas de pannedans l’exécution d’un RPC.

Nombre de fois ou le serveur est exécuté

Exactement une fois- Difficile (sauvegarde totale du

contexte, reprise sur erreur).

Au plus une fois (‘at most once’)- Identification des appels, une seule

exécution . Exception si erreur.

Au moins une fois (‘at least once’)- Tentatives d’exécution jusqu’à ce que

l’une réussisse.

N’importe quoi

Page 48: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 48

RPC Interopérabilité : Problèmes dereprésentation des données

Présentation = Conversion desparamètres échangés entre l’appelant et

l’appelé.

A partir d’une syntaxe abstraite :description dans un langage évolué des

types de données échangés

Génération d’une syntaxe de transfert :syntaxe de la représentation des paramètres

dans les messages.

Opérations de codage / décodage : à partirde la génération des souches.

Page 49: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 49

RPC : Syntaxes de transfert

Choisir un format de représentation desdonnées échangées.

- facile à comprendre, à générer. Coder et décoder efficacement à partir desreprésentations locales.

- rapidement,- faible volume généré.

Solutions des codages ‘binaires’

Les paramètres sont codés sous une formebinaire prédéfinie, compacte, nondirectement lisible (exemple format CDRde CORBA).

Solutions de codages ‘caractères’

Les paramètres sont codés en format textelisible (‘human readable’) typiquement enutilisant XML.

Page 50: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 50

RPC : Syntaxes abstraites

Besoin de langages de descriptiond’interface : IDL

‘Interface Definition Language’

- Spécification unique de l’appel (IDL deslangages de déclaration de types communappelant/appelé).

- Spécification indépendante du langagede programmation de l’appel (IDL langageunique, langage pivot).

- Amélioration de la réalisation del’invocation distante par des directivesspécifiques (références uniques, paramètresmodes in out, contraintes d’échéances, ….).

Mise en œuvre

- IDL langage déclaratif de typage.- Utilisé pour générer des souches.- Code stocké dans un répertoired’interfaces.

Page 51: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 51

RPC : Utilisation du code IDL

Procédureappelante(client)

Procédureappelée(serveur)

Description IDLde l’interfaceappelée

Générateurde souches

Souche client

Compilateurlangage client

Définitionscommunes

Code del’appelant(client)

Compilateurlangage serveur

Souche serveur

Code del’appelé(serveur)

Bibliothèque

Page 52: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 52

RPC : Désignation et de liaison

Désignation (nommage)

Créer des références (des structures dedonnées) qui supportent le mécanismed’invocation (ici à distance).

De préférence indépendantes de lalocalisation (migration).

- L’adresse du site du serveur (@IP).- L’adresse dans le protocole qui

permet de l’atteindre (@port TCP)- La procédure à exécuter.

Plus finement- Le conteneur de la procédure à

atteindre.- La désignation de la procédure dans le

conteneur.

Page 53: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 53

Liaison

Retrouver la procédure à partir de laréférence.

- Liaison statique (au préalable)- Liaison dynamique avec utilisation

d’un annuaire de références.- Liaison dynamique avec utilisation

d’un annuaire d’interfaces (liaisonretardée).

RPC : Mise en œuvre de la liaison

Enregistrement

Communication réseau

Consultation

Interaction RPCProcédureAppelante(client)

ProcédureAppelée(serveur)

SoucheAppelant(client)

SoucheAppelé(serveur)

Service de nommage(désignation)

Pile réseauAppelant(client)

Pile réseauAppelé(serveur)

Page 54: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 54

EXEMPLE : ENVIRONNEMENT D'APPEL

DE PROCEDURE DISTANTE DCE

DCE : ARCHITECTURE

- DCE ‘DISTRIBUTED COMPUTING

ENVIRONMENT’ est une boite à outils pourdévelopper des applications réparties.

- Services organisés autour d’un RPC.

SYSTEME D'EXPLOITATION

FONCTIONS DE TRANSPORT D'UNE ARCHITECTURE RESEAU

ACTIVITES

"THREADS"

Appel de

procédure

distante

RPC

SERVICES

DE

SECURITE

SERVICES

ANNUAIRE

DNS X500

SERVICES

DE

SYNCHRO

D'HORLOGE

SERVICES

DE

FICHIERS

REPARTIS

APPLICATION DCE

Remarques

- Certains services en utilisent d’autres.

- Existence de fonctions transversales :administration et outils de développement.

Page 55: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 55

DCE : Evaluation

Avantages

- Accès à un ensemble d’API systèmesrépartis via des interfaces normalisées.

- Pour une structuration d’applicationsréparties ‘gros grain’ (les entitéscommunicantes sont plutôt des processus)

- Un standard assez diffusé (surtoutcomme base de Microsoft DCOM).

Inconvénients

- Développement d’applications ’grain fin’(les entités sont de la taille d’un objet oud’une variable) très lourde.

Utilisation des API des services d’activités(‘threads’) et d’appel distant (RPC).

- Peu d’outils de développement disponible.

Page 56: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 56

RPC Version de base : Conclusion

Un mécanisme améliorant et simplifiantde façon significative la structuration des

applications réparties par rapport aumode message.

Un mécanisme de bas niveau

- Permet de décrire l’interaction d’appel deprocédure entre deux programmes : pas devision globale de l’application.

- Mécanisme de base d’appel synchrone :besoin de sémantiques plus variées, deservices additionnels : désignation,sécurité, …

- Outils de développement limités à lagénération automatique des souches mais àla base rien pour le déploiement, la miseau point ….

Page 57: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 57

MODELES CLIENT SERVEUR

A OBJETS REPARTIS

Page 58: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 58

Client serveur à objets répartis

A la convergence de deux approches.

L'approche objet

- Objet : une unité de programmationtrès utilisée permettant une structurationdes applications performante.

- Objet : associe les traitements et lesdonnées en rendant les codes moinscoûteux à développer, à maintenir, àréutiliser.

Données

Methode M1Methode M2

Objet O

AbstractionComportement communs => Typage.

EncapsulationAssociation des actions aux données.

HéritageRéutilisation du code.

PolymorphismeRéutilisation des références.

Page 59: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 59

La répartition

Une intégration de l’univers objet et del’univers réparti

Données

Méthode M1 Méthode M2

Données

Méthode M3

M3

Site S1 Site S2Objet O1 Objet O2

- Placement des objets sur différentssites, les réseaux permettent réalisation del’opération d’invocation entre objets.

- L'interface du système d'objet répartiest un ensemble de primitives ou unlangage objet concurrent et réparti offrant lapossibilité d'implanter et d'exécuter à lademande des objets (donnée, traitement)sur des sites quelconques. . Création à distance d'instances . Exécution à distance des méthodes.

. Autres fonctions ou services: transactionnel, sécurité,placement ...

Page 60: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 60

Objets répartis : Réalisation d’uneinvocation

Eléments d’une invocation

- Référence d’objet (‘pointeur universeld’objet au niveau système réparti)

- Identification de la méthode appelée(une chaîne).

- Paramètres d’appel et de retour etsignaux d’exception Modes de transmission possibles

. par valeur (types élémentaires et typesconstruits).

. par référence (objets)

Page 61: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 61

Client serveur à objets répartis : mise enœuvre d’une invocation

Retour ParamètresExceptions

Référence MéthodeParamètres

APPEL

Objet clientSOUCHE

CLIENT

Objet serveurS SO EU RC VH EE U R

EtatMéthode 1Méthode 2

Méthode n

Page 62: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 62

Systèmes d’objets répartis homogènes‘langages’

- Une représentation unique des objetspropre à un langage.

Typiquement java,Instanciation de classes java.

- Un mode d’interaction optimisé(simplifié).

Typiquement Java RMI(‘Remote Method Invocation’).

Page 63: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 63

Systèmes d’objets répartis hétérogènes‘ouverts’

- Supportent une variété importante deformes d’objets (choix des références, dereprésentation, d’invocation, ….) définispar différents environnements langages etsystèmes.

- Un mode d’interaction unique surlequel se projettent tous les modesd’interaction.

OMG/CORBA‘Object Management Group / CommonObject Requests Broker Architecture’

Microsoft OLE/DCOM"Object Link Embedding / DistributedComponent Object Model".

Page 64: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 64

ENVIRONNEMENT A OBJETS REPARTIS,EXEMPLE : CORBA

Un modèle de référence pour unearchitecture dédiée aux d'objets répartis.

"ORB Object Request Broker"

ServicesCORBA

Objets applicatifs

FacilitésCORBA

Environnement cooperatif de composants client-server

Echangeur de requêtes objets

CORBA permet à des objets (descomposants) d'interagir en univers

ouvertDécouvrir la localisation, réaliser lesinvocations, pour de nombreux langages,environnements d'exécution, réseaux decommunication.

Page 65: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 65

ARCHITECTURE CORBA 2.0

Client

Invocation dynamique

Souches clients (invocation

statique)Interface

ORB

Référentiel d'interfaces

Souches serveurs Squelettes

Squelettes dynamique

Serveur(appelant) (appelé)

Adaptateur d'objets

Noyau échangeur de requêtes ("ORB Core")

In Arguments

Out ArgumentsValeurs retour

Operation ()

(protocoles GIOP / IIOP)

Valeurs d'appel

DIIIDL Stubs

DSI IDL Skeletons"OA

Object Adapter"

Référentiel d'implantations

Ex : L'interface d'invocation statiqueLangage IDL CORBA

("Interface Definition Language").

Les souches clients sont définies dans l'IDLCORBA ("Interface Definition Language").

Page 66: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 66

Exemple de déclaration d'interface enlangage IDL

module Voiture{ /* Définition d'une classe cabriolet */ interface Cabriolet :véhicule_thermique ;

{attribute integer consommation ;exception Panne (string explication) ;void accélère ( in short durée)

raises (Panne) ;void freine ( in short durée)

raises (Panne) ;....}

interface Monospace :véhicule_thermique;

{attribute integer place ;void accélère ( in short durée)....}

} /* Fin de module */

Page 67: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 67

Objets répartis : Conclusion

Avantages

Si le paradigme objet réparti est adopté :uniformisation de toutes les abstractions

utilisées sous le concept objet.

Simplifie et uniformise les accès et lescommunications offerts par les réseaux,les interfaces systèmes et les codesutilisateurs.

- Désignation universelle. - Interactions de communication

simplifiées et universelles. - Protection et sécurité universelle

Page 68: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 68

Inconvénients (actuels)

- Performance des systèmes etapplications développées en approcheobjets répartis.Les solutions objets imposent des délaisd'interactions très importants.

- Faiblesse des outils dedéveloppement (production desapplications, déploiement,administration ….

- Faiblesse de la normalisationpermettant l'interopérabilité desapplications.

Page 69: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 69

MODELES CLIENT SERVEUR

A COMPOSANTS

Page 70: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 70

Client serveur à composants :Origines

La gestion de documentscomposites

Objectif : simplification du processus decréation et d’utilisation des documentscomposites c’est à dire formés à partir dedocuments d’origines différentes.

Problèmes à résoudre : interopérabilitéentre composants logiciels binaires crééspar des utilitaires différents.

Solutions : Environnement d’interactionunique en approche client serveur, formatsde données pivot, procédure de conversion.

Exemples:OLE/COM, OPENDOC/CORBA

La synthèse graphique

A partir d’objets graphiques : mêmeproblème que précédemment.

Page 71: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 71

Illustration gestion de documentscomposites

OLE/COM : Objects Linking andEmbedding Component Object Model

Opendoc :

Document composite

Lien versdocument 1

Lien versdocument 2

Copie dedocument 3

Liens(linking)

Document 1(image)

Document 2(tableau)

Document 3(texte)

Incorporation(embedding)

Page 72: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 72

Client serveur à composants :la vision actuelle (1)

Quelques idées pour une notion decomposant qui diffère du modèle objet

réparti.

1 Composant : une unité de code de taillesignificative

Idée assez souvent reprise bien qu’un peucontroversée.

2 Composant : une unité de réutilisationet d’intégration

Réutilisation : code (binaire) existant àintégrer dans une application.Notion de composant sur étagères.COTS : ‘Components Off The Shelf’.Intégration : rajouter de la glu.ADL : ‘Architecture Definition Language’.

Page 73: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 73

Client serveur à composants :la vision actuelle (2)

3 Composant :une unité d’administrationen réparti

Déploiement : Un code développé pour unenvironnement système et qui doit retrouverpour son exécution cet environnement(conteneur).Suivi : du fonctionnement du composant.

4 Composant: pour associer despropriétés non fonctionnelles à un code

Code de base : pour un environnementdonné, doit être adapté pour supporter unautre environnement : pannes, temps réel,…Propriétés non fonctionnelles : ajoutées àla sémantique fonctionnelle du service. Persistance : service transactionnel. Echéances : QOS temps réel, Sécurité : authentification des clients etautorisation des accès.

Page 74: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 74

Composants : Les avantages attendus

La possibilité de construire des logiciels parassemblage de composants commerciaux.

Réutilisation de logiciels existants testés.

Amélioration de la modularité et desinterfaces.

Cycle de développement raccourci.

Extensibilité en exécution (‘Run-time’)des applications basées composants.

Des systèmes plus maintenable.

Amélioration des moyens decommunication.

Construction de systèmes plus portables.

Des modèles de développements logicielsplus abstraits (scripts langages ADL)

Page 75: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 75

ENVIRONNEMENT A COMPOSANTS,EXEMPLE : CCM ‘CORBA COMPONENTS

MODEL’

Un apport important de CORBA 3 quiétend sur différents points le modèle

objet réparti.

CORBA extensions CIDL ‘ComponentImplementation Definition Language’

Notion de ports facettes, réceptacles,sources et puits d’événements, attributs.

Pour définir un graphe de connexions.- Interfaces multiples.- Interfaces offertes (réceptacles) et

demandées (clauses use et provide)

Un service de configuration decomposants

- Notion d’attributs

Page 76: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 76

Fonctionnalités CCM

Un service d’événements prévu d’emblée‘Notification Service’ (modèle push)

Une standardisation du cycle dedéveloppement CIF

‘Component Implementation Framework’

Une standardisation du cycle dedéploiement

Notion de conteneur : gère un composantselon ses besoins.

- Une vue unifiée pour le composant del’environnement en exécution.

- Interfaces offertes aux composantspour les services CORBA (minimumPOA et ORB, autres servicespersistance, sécurité, selon besoins).

Une proposition qui récupère la baseobjets répartis CORBA existante

Page 77: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 77

Client serveur à composants : Conclusion

Avantages

Un objectif atteint: offrir des solutions àquelques problèmes bien identifiés del’approche objets répartis en insistantd’abord et avant tout sur la réutilisation.

Inconvénients

De nombreux problèmes restent posés

- Courtage : Retrouver un composant enfonction de ses propriétés syntaxiques maisaussi sémantiques pour apparier lesinterfaces demandées et offertes, les besoinssystèmes et les conteneurs.

- Cadre pour l’adaptation des composantsà des environnements quelconques :programmation par aspects.

- Faiblesse de la réflexion d’ensemble surla répartition.

Page 78: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 78

MODELES CLIENT SERVEUR

A CODE MOBILE

Page 79: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 79

Code Mobile : Généralités

Assurer les interactions distantes endéplaçant le code à exécuter.

Exemples : requêtes SQL, applet Java,sérialisation d’objets JAVA …

Motivation essentielleRapprocher les traitements des donnéespour réduire le volume des échanges.

Nombreux exemples évoqués- Collecte d’informations disséminéesdans un réseau (recherche et filtrage).- Surveillance de données.- Administration de réseaux.- Reconfiguration, Placement.- Réseaux actifs.- Distribution d’informations ciblées.- Applications orientées flots dedonnées (‘workflow’).- Négociation (agendas, commerceélectronique, enchères, …).- Calcul parallèle (envoi de calculs).- Jeux en réseaux.

Page 80: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 80

Code Mobile : Nombreux problèmes

Interopérabilité des codes exécutables :- Mêmes architectures machines,

mêmes environnements systèmes- Utilisation d’interpréteurs dans les

mêmes environnements.

Sécurité (avec méfiance mutuelle)- du site acceptant du code.- De l’agent mobile

Structuration des applications à basede code mobile : Intégration avec d’autres approchesdu client serveur. Transparence de la programmation encode mobile ?

Partage des ressources Quelle cohérence ?

Que déplace t’on ?Comment ? Migration faible/forte ?

Page 81: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 81

Code Mobile : Modèles d’exécutionpour la mobilité

- Code à la demande. Mobilité Faible.On bouge du code sans contexte variable(Exemple : ‘applet’ java)

- Agents Mobiles. Mobilité Forte.On bouge du code exécutable, desdonnées locales, un contexte d’exécution

Processus 1

Site A Site B

CodeProcessus

Code

Site A

Code, CTX

Processus 2

Site B

Code, CTX

Page 82: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 82

Code Mobile : Etude de la mobilité‘forte’

Notions utilisées

Objets: les unités de codes exécutables(clients et serveurs) (objets passifs).

Sites : environnements d’exécution.

Activités: flots de contrôle des appelss’étendant sur plusieurs objets ou sites.

Domaines : ensembles de droits sur desressources d’une machine (en particulier surdes segments de mémoire).

Base de la classification

- Les activités sont dans le même domaine.- Les activités sont dans des domainesdifférents du même site.- Les activités sont dans des domainesdifférents de sites différents.

Page 83: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 83

Types de partage

Partage dans le même domaine- Réalisé systématiquement (notion degrappe, cluster d’objets).

Partage entre domaines différents- Opération de changement de domaine.- Mécanisme de couplage entre domaines etobjets.

Partage en exclusion mutuelle- Une seule activité est autorisée à uninstant donné à utiliser un objet- Agréable pour assurer la cohérence desérialisation des objets.

Partage avec réplication- Nécessité de mise en œuvre d’unestratégie de cohérence par l’applicationentre les différentes copies.

Page 84: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 84

Partage par migration en exclusionmutuelle

N’autoriser le partage que sur un seul site.=> Exclusion mutuelle entre les sites ayantaccès à l’objet.=> Mécanisme de déplacement des objetsou des activités.

Migration des activités

- Une activité voulant accéder à un objetdéjà couplé sur un autre site change de site.- On effectue alors un partage d’accès entreactivités sur le même site (même domaineou domaines différents).

Migration des objets

- Une activité voulant accéder à un objetd’un autre site demande le découplage del’objet (opération de fermeture nécessaire sil’objet est en cours d’accès).- L’objet est déplacé sur le site client.- L’objet est couplé sur le site client.

Page 85: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 85

Partage par réplication

- Autoriser la possibilité le couplaged’un même objet sur plusieurs sites enmême temps.

- Assurer la cohérence entre les versionsdes objets qui permet aux applicationsutilisatrices de fonctionner correctement.

a) Les problèmes de cohérences sont vusau niveau applicatif : détection deslectures et des écritures dans lesvariables partagées à la compilation=> Appel à un code de mise en œuvred’une cohérence de partage.

b) Les problèmes de cohérence sont vusau niveau des accès mémoire : plusfacile en exécution à l’aide des outils dedétection matériels.=> Le partage est vu au niveau de lamémoire physique (approche demémoire virtuelle partagée répartie).

Page 86: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 86

ENVIRONNEMENTS A CODE MOBILE,EXEMPLE : LES AGLETS

Une extension proposée par IBM Japonqui étend le modèle des applets Java.

- Comme une applet une aglet permet latransmission d’un code Java.- L’API Aglet permet également letransport de l’état (en fait une partie).- La gestion de la sécurité est renforcéepar l’utilisation par les aglets d’ungestionnaire de sécurité spécifique.

Page 87: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 87

Le cycle de vie d’une aglet

Created: création : initialisation de l’état,lancement des activités ‘threads’.

Cloned: duplication : l’état courant originald’une aglet est dupliqué dans un clone).

Dispatched: Une aglet migre sur un autrehôte avec son état.

Retracted: Une aglet ayant migré estramenée du site distant avec son état.

Deactivated: Une aglet est mise ensommeil : son état est stocké sur disque.

Activated: Une aglet désactivée estréctivée : son état est restauré partir dudisque.

Disposed of: Une aglet est détruite : sonétat est perdu.

Page 88: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 88

Migration d’une aglet

Mécanisme de sérialisation Java(JDK 1.1)

Un objet Java appartenant à une aglet esttransmis d’un site à un autre au moyen dumécanisme de sérialisation : transformationen une suite d’octets et opération inverse.

Sérialisation d’une aglet

- Sérialisation d’un objet Java de baseassocié à l’aglet.- Sérialisation de l’arbre des objets Javaformant l’aglet.- Sérialisation d’une partie du contexte. Image du tas dans sa partie données. Pas de sérialisation du pointeurd’exécution courant, ni de la pile(difficultés techniques liées à la JVM).=> Pas tout à fait encore complet.=> Tout ce que l’on veut envoyer doit êtreplacé manuellement dans le tas au momentde la migration.

Page 89: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 89

L’API Aglets

Cinq classes standards peuvent êtreredéfinies pour adapter l’aglet lors d’uneopération de migration:onCloning() : appelé avant clonageonDispatch() : appelé avant migration.OnReverting(): appelé avant retraction.onDeactivating() : appelé avant la

désactivation.onDisposing() : appelé avant la

destruction.Les points d’entrées correspondants sont :clone(), dispatch(), retract(),deactivate(), dispose().

Lors d’une initialisation, on exécute selonles cas run()de la classe.onCreation() : la première foisonClone() : lors d’un clonageonArrival() : lors d’une migration ou

d’un retouronActivation() : lors d’une activation.

Page 90: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 90

Code Mobile : Conclusion

- Des avantages indiscutables pour le clientserveur dans certaines circonstances :besoin de dynamicité, d’adaptabilité,

Possibilité d’exécution à distance Code à la demande

- Un domaine très porteur Nombreux prototypes de recherche Concepts et mécanismes encore en coursd’étude.

- Des problèmes non résolusSécurité.

Environnements de développement. Des applications à réaliser.

Page 91: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 91

MODELES CLIENT SERVEUR

A MEMOIRE PARTAGEE REPARTIE

Page 92: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 92

Mémoire partagée répartie:Généralités

Réalisation des interactions distantesen mémoire commune répartie comme

espace de communication.

ExemplesOpération read et write sur des pages. Exemples : treadmarks, …Modèles à espaces de tuples Exemples : BD réparties, javaspacesModèles à espaces d’objets répartispartagés.

Motivation essentielle

Offrir à un développeur les conditions detravail de l’univers centralisé :programmation de la coopération parvariables partagéesmasquant les difficultés de la répartition.

Page 93: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 93

Mémoire partagée répartie : Lesproblèmes principaux

Performance des implantations.

Support des diverses cohérences. Cohérences fortes Atomique, séquentielle Cohérences faibles Causale, relachée.

Support des outils de développementexistants : langages, compilateurs, dévermineurs.

Page 94: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 94

Mémoire partagée répartie : principesde réalisation

Une simulation d’un espace mémoireunique dans un ensemble d’espaces

mémoires réels distribués.

- Espace d’objets répartis partagés.- Interface d’accès commune (nommage,invocation des méthodes, …)- Mode de réalisation par projection del’espace virtuel partagé dans l’espacemémoire réel des différents sites.

Mémoire

Site A

Objet 1

Mémoire

Site B

Objet 3

Espace virtuel commun

Objet 1 Objet 2 Objet 3

Page 95: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 95

ENVIRONNEMENTS MEMOIRE PARTAGEE

REPARTIE, EXEMPLE : JAVASPACES

- Un javaspace : un espace de tuples ouentrées.

- Une entrée : un ensemble de référencesà des objets Java.

JAVASPACE

Entrée

Références

Page 96: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 96

Javaspaces : les opérations de base

- Ecriture dans un javaspace (read).

- Lecture dans un javaspace (write)

- Retrait dans un javaspace (take)

- Notification de l’écriture d’une entrée (notify).

- Transaction regroupant plusieursopérations dans plusieurs javaspaces(respect des propriétés ACID). Cohérence transactionnelle (de sérialisation) Persistance transactionnelle (technique de validation).

Page 97: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 97

Javaspaces : les techniquesd’utilisation

- Pas de modifications sur les données :on ajoute ou on retire des références.

- Coopération entre applicationsréparties pour connaître des références(mécanismes d’accès au moyen de‘templates’, des modèles pour larecherche d’entrées). Découplage entreclient et serveur.

- La sérialisabilité transactionnellegarantit la cohérence des accès.

- Le partage des objets réels s’effectueensuite au moyen de l’invocation deméthodes (RMI).

- Les objets réels peuvent être dupliqués.Tout reste à construire (cohérence) dansle partage des objets réels.

Page 98: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 98

Mémoire partagée répartie:Conclusion

Avantages

- Facilité de développement d’uneapplication répartie ou de portage d’uneapplication centralisée en univers réparti.

- Performances excellentes lorsquel’objet est chargé localement.

Inconvénients

- Performances mauvaises lorsquel’objet est distant (les cohérences fortessont très coûteuses en réparti).- Les cohérences faibles sont plusperformantes mais délicates d’emploi.

- L’approche est très peu ouverteun seul langage interprété ou une seuleforme de présentation des données sinonil faut en plus convertir les données àchaque déplacement.

Page 99: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 99

Conclusion : Modèles et outils deprogrammation pour le client-serveur

Page 100: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 100

Problème majeur pour le développeurd’applications: quel modèle, quel outil

Une très grande variabilité de l’offreaussi bien sur le plan des modèles que

sur celui des plateformes.

- Mode de synchronisation distante : synchrone ou asynchrone.

- Approche langage ou système effort de développement complexité du système produit.

- Développement d’un nouveau codepour le réparti ou intégration dessolutions centralisées existantes.

- Granularité des codes communicantsgrain moyen ‘in the small’ : objet répartigros grain ‘in the large’ : composants.

Page 101: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 101

Bibliographie

Références générales

R. Balter ‘Modes de structuration d’applicationsréparties’. Cours de l’école d’été : Construction desapplications réparties.http://sirac.inrialpes.fr/ecole/99/cours/index.html

G.Gardarin, O. Gardarin. ‘ le client serveur’ Eyrolles1996

R. Orfali, D. Harkey, J. Edwards ‘ Client serveur guidede survie’ Wiley

Modèles à messages et à événements

http://www.software.ibm.com/ts/mqserieshtttp://www.openhorizon.comhttp://rv.tibco.com

Modèles à RPC et à Objets

http://www.osf.org/dcehttp://www.omg.org/corba.htm

Page 102: Cours d’introduction Modèles d’interactions pour le …t4clive.free.fr/pour%20bien%20reussir%20ton%20BTS%20%3B-)/co…Coopération : Le point de vue global Une application coopérative

Modèles pour le client serveur 102

Bibliographie (suite)

Modèles à code mobile

D. Hagimont, J. Mossière ‘Problèmes de désignation,de localisation et d’accès dans les systèmes répartis àobjets’ TSI 15(1) 1996

Sacha Krakowiak ‘Code mobile, Principes et mise enœuvre’ Cours de l’école d’été : Construction desapplications réparties.http://sirac.inrialpes.fr/ecole/99/cours/index.html

J.E. White, Telescript Technology: The Foundation for theElectronic Market-place, General Magic Inc., MountainView, CA, 1994.