Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parHorace Chretien Modifié depuis plus de 11 années
1
Objets Distribués Chronique d ’une invasion annoncée
Pourquoi ? Comment? Qui : Corba / COM-DCOM / Java RMI...
2
Pourquoi ? Maturation de la technologie orientée objet
ADA, Modula Smalltalk , C++, Java Maturation des communications Client-Serveur sockets RPC couches OSI
3
Maturation de la technologie orientée objet
Crediter debiter Compte AM montant Objet = module logiciel Compte AM Crediter 1000 Interaction entre objets : message
4
Objets + Messages Modules logiciels
Application = Collection d ’objets interagissant Modules logiciels indépendance de la programmation et de la construction unité autonome Méthode = comportement des objets Messages = interaction entre objets de l ’application
5
Classes et héritage Mécanisme d ’abstraction + Généralisation
Surcharge des méthodes par héritage
6
Classe et Composition VEHICULE CARROSSERIE MOTEUR
7
Architectures à base d ’objets
Smalltalk Java Base de données Objets Classes Messages IHM Modèles et méthodologies de développement
8
Application traditionnelle vs application objets
Réponse ponctuelle à une tâche ou à une opération particulière déroulement linéaire des étapes adaptation aux changements difficile Représentation des entités physiques des processus réels entités réutilisables lisibilité processus d ’assemblage d ’objets existants
9
Objets = briques logicielles
Assembler des briques élémentaires Réduire la complexité des systèmes d ’information Séparation entre interface et implémentation Représentation et types de données Mécanismes d ’abstraction
10
Séparation entre interface et implémentation
Séparation de la définition et de l ’implémentation : encapsulation interface : partie visible de l ’objet implémentation : partie privée inaccessible depuis d ’autres objets interface = contrat entre l ’objet et le monde extérieur
11
Séparation entre interface et implémentation
Assemblage des objets dépend uniquement des interfaces, le changement local d ’un objet ne perturbe pas l ’ensemble de l ’application. Importance de la nomenclature des objets substitution logique liée à la substitution physique
12
Représentation et Types de données
Définition de nouveaux types Choix d ’un type pour une donnée (ex. montant) devient une contrainte sur la conception. Types de données Abstraits considérés comme des types de base
13
Mécanismes d ’abstraction
Abstraction des données : essence du procédé de construction de systèmes d ’information à base d ’objets distribués par Classe et/ou Composition Des mises en œuvre différentes selon les cas
14
Maturation des communications Client Serveur
Des programmes (fonctionnant sur des machines différentes) qui communiquent au travers du réseau. Un programme Client envoie des requêtes à un programme serveur (qui prend en charge l ’implémentation)
15
Infrastructure Client Serveur
requêtes
16
Appel de Procédure à Distance
CLIENT SERVEUR Connexion au serveur Attente de requêtes Préparation de la requête envoi de la requête attente du résultat …. Analyse du résultat reçu Analyse de la requête ….. Exécution …. Préparation de la réponse envoi de la réponse
17
Appel de Procédure à Distance
CLIENT SERVEUR F(1, x) F(1,x) unmarshalling marshalling 10 marshalling unmarshalling
18
Langages de spécifications
Spécifications des types de données qui transitent sur le réseau Protocole := CHOICE { requete [0] REQUETE, reponse [1] REPONSE } ASN.1 et norme ISO Programme reqrep { version { REPONSE rerep(REQUETE) = 1 }= 1 } = 10000 XDR et RPC de SUN
19
Générateurs de Stubs Spécifications des données XDR ASN1 Générateurs
RPCGEN / MAVROS Fichiers générés Types de données C Lisp Java Librairie marshalling et unmarshalling squelettes du client et du serveur Types de données C
20
Circulation de messages et machines hétérogènes
Infrastructure informatique de distribution Couche de transport Responsable de l ’administration des objets et de l ’acheminement des messages Couche de services Objets de l ’application qui résultent de la conception du modèle
21
Introduction de services
Gestionnaires de noms (x500, nis, dns…) Synchronisation (Transaction …) Sécurité
22
Objets distribués Un programme (objet) peut être à la fois client de certains serveurs et serveur d ’autres clients Il peut y avoir reconfiguration dynamique des rôles Client Serveur
23
Infrastructure Objets Distribués
Client Client Serveur Serveur
24
Implémentation des objets distribués
Corba indépendant des langages de programmation Projections C,C++, Java Un langage de Spécification IDL Orienté C++ Tout Java
25
CORBA, DCOM et JAVA implémentation de plusieurs interfaces possibles
Une interface = une unité élémentaire héritage des interfaces aucune interface imposée normalisation des interface Au moins une interface : Iunknown non transmissible par héritage composition d ’interfaces héritage de classe implémentation de plusieurs interfaces possibles
26
Générateurs Stubs Skeletons Proxy Spécifications des données Int. Java
IDL Générateurs RMIC / Orbix... Fichiers générés Stubs Skeletons Proxy (mise en œuvre de la sérialisation et désérialisation…)
27
Comment activer des objets distribués ?
Messages échangés entre objets = Requêtes ou Résultats Certains envois de messages n ’attendent pas de résultats Requête = Destinataire + nom de méthode + Paramètres Résultat = Donnée ou indication d ’une erreur ou d ’une défaillance
28
Comment activer des objets distribués ?
Mécanisme d ’exécution ou de transport définit comment les messages sont véhiculés de l ’objet client vers l ’objet serveur (destinataire) retrouver et activer les objets adéquats Un objet client a deux manières d ’envoyer des messages invocation statique invocation dynamique
29
Invocation statique Le nom de l ’objet destinataire et le message sont connus au moment du développement Ne permet ni l ’ajout ni le retrait d ’objets dans les serveurs
30
Invocation dynamique Permet au programme client de découvrir
les objets à l ’exécution les interfaces proposés par ces objets construire dynamiquement messages et requêtes envoyer et recevoir le résultat de telles requêtes Systèmes réactifs faciles à modifier OFFERT PAR CORBA, DCOM et JAVA
31
Invocation dynamique + surcharge
Flexibilité du code briques logicielles avec les mêmes messages pour des objets de différentes natures définir de nouveaux objets sans modifier l ’interface changements qui n ’affectent pas les clients
32
Rôle du client Invoquer les services dont il a besoin par envoi de requêtes Accès à l ’objet destinataire par une référence à son implémentation par l ’interface ID Unités autonomes - solidité - robustesse - adaptation
33
Rôle de l ’infrastructure
administre les implémentations, la création et la destruction d ’objets réceptionne les requêtes, localise le serveur, vérifie son état et celui du destinataire active au besoin le serveur, lui envoie les données de la requête ramène les résultats au client doit être informée de l ’arrêt d ’un serveur doit gérer la persistance
34
Rôle du serveur Administrer un flot de requêtes pour un ou plusieurs objets dont il a la responsabilité Ordonnancer la séquence des opérations de réponses à une requête
35
Rôle du serveur d ’objets
active si besoin l ’objet destinataire recherche et exécute la méthode passe le résultat à l ’infrastructure plusieurs requêtes peuvent arriver simultanément arrêt du serveur : desactiver tous les objets et enregistrer leur état
36
Un peu plus sur l ’infrastructure
Transport des messages localisation des serveurs et des objets persistance JDK1.1 ORB pour CORBA norme Corba 1 DCOM pour OLE non formelle
37
Transport des messages
Références aux objets identifiant (libre choix d ’implémentation dans le norme CORBA) nombres codés sur 128 bits en OLE url Uniform Resource Locator en Java RMI Performances différentes et incompatibilités entre ORBs et entre ORB et COM
38
Interface avec l ’infrastructure Un peu de vocabulaire
Coté client : stub en CORBA proxy en OLE stub/proxy en Java Côté Serveur : stub en OLE skeleton en CORBA implémentation d ’une interface en RMI BOA Objects Adaptaters
39
Mécanisme de Transport : Client - Serveur
Appel direct : DLL (in process - utilisation du même espace mémoire) Appel indirect : LRPC (application sur la même machine) passe par le proxy RPC (sur 2 machines différentes) IIOP en Corba
40
Invocations Invocations statiques IDL et ODL sont incompatibles
IDL en CORBA stub + skeleton En OLE appel direct si in process proxy + stub si application fournis uniquement pour les applications MicroSoft Versions récentes définition du langage ODL IDL et ODL sont incompatibles
41
Invocations Invocations dynamiques Du ressort de l ’infrastructure
DII en CORBA IDispatch en OLE Du ressort de l ’infrastructure
42
CORBA vs OLE Définition du serveur très générale laissée à l ’implémentation flexibilité primordiale pour l ’intégration de systèmes (BDD…) processus formel avec l ’OMG Un serveur est une application ou une DLL stratégie commerciale et pratique
43
Un bref comparatif
44
Un bref comparatif
45
Un bref comparatif
46
Un bref comparatif
47
Petite Conclusion Problèmes d ’intégration et d ’interopérabilité
Arrivée de internet Effort d ’interopérabilité et d ’efficacité
48
OUFFFFF Virginie maman papa maman papa Virginie
49
ezcbbbbbb,,,,,;,;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.