Objets Distribués Chronique d ’une invasion annoncée

Slides:



Advertisements
Présentations similaires
Applications N-Tiers Rappels: architecture et méthodologie
Advertisements

Les protocoles réseau.
Xavier Blanc Web Services Xavier Blanc
Introduction aux environnements répartis
Objets Distribués et Composants
Retour sur RMI.
1 Plan de lenseignement Cours Introduction au réseau via les objets distants (Application à RMI) Ce que cache RMI : programmation socket – mode connecté
ORB (1/2) ORB : Object Request Broker
Des sockets à RMI Programmation réseau versus programmation objet
Objets Distribués Chronique dune invasion annoncée Pourquoi? Comment? Qui : Corba / COM-DCOM / Java RMI...
ESSI AM Dery Merci à Rémi Vankeisbelck, Michel Riveill etc
ESSI AM Dery Merci à Rémi Vankeisbelck, Michel Riveill etc
Des sockets à RMI. Pourquoi ? Maturation de la technologie orientée objet –ADA, Modula –Smalltalk, C++, Java Maturation des communications Client- Serveur.
Chapitre 1 Introduction
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Virtualisation dorchestration de services TER Master 1 Infomatique 4 Avril 2008 Encadrant : Philippe Collet.
Object Management Architecture (OMA)
Exposé de Système - Informatique et Réseau
Reference Model of Open Distributed Processing
Vue d'ensemble Implémentation de la sécurité IPSec
Architecture de réseaux
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -

UML (Unified Modeling Langage)
Introduction aux services WEB
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
Principes de la technologie orientée objets
Réalisée par :Samira RAHALI
Java Remote Method Invocation (RMI)
Programmation Approche composants Ing5 SI
CAT 2000 LES MIDDLEWARES Présenté par : Tagmouti Siham Smires Ali
Interopérabilité JOnAS - CORBA
Objets Distribués Chronique d’une invasion annoncée Pourquoi? Comment?
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Module 3 : Création d'un domaine Windows 2000
Introduction au bus CORBA
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
CORBA (Common Request Broker Architecture)
Patrons de conceptions de créations
4 - Annuaires Les Annuaires d ’Entreprises Offres et solutions
SGBD orientés Objet Standards : OMG et ODMG.
Travail réalisé par : LATRECHE Imed Eddine MENASRIA Med Lamine
Présentation de CORBA et de IIOP
CENTRALISATION DES CANDIDATS LOCATAIRES
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
CORBA Un concept de l ’OMG Mathieu Estival Biomédical, 3°Année.
Supports de formation au SQ Unifié
Structures de données avancées : Concepts réseaux et protocole de communication. D. E ZEGOUR Institut National d ’Informatique.
Créer des packages.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Le web service
Mastère Professionnel Systèmes de Communication et Réseaux
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Introduction au Génie Logiciel
Application de gestion des retards
Initiation à la conception des systèmes d'informations
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
Module 3 : Création d'un domaine Windows 2000
Les RPC remote procedure call
La programmation par objets Principes et concepts Etude de Smalltalk.
Java RMI: Remote Method Invocation
PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03.
21/02/2003DEA DISIC 1 Grid Computing Programming the grid: Distributed Software Components, P2P and Grid Web Services for Scientific Applications Tarak.
Web Services 17/01/2009.
Architecture Client/Serveur
Java Remote Method Invocation
Applications distribuées Introduction Jean-Jacques LE COZ.
Transcription de la présentation:

Objets Distribués Chronique d ’une invasion annoncée Pourquoi ? Comment? Qui : Corba / COM-DCOM / Java RMI...

Pourquoi ? Maturation de la technologie orientée objet ADA, Modula Smalltalk , C++, Java Maturation des communications Client-Serveur sockets RPC couches OSI

Maturation de la technologie orientée objet Crediter debiter Compte AM montant Objet = module logiciel Compte AM Crediter 1000 Interaction entre objets : message

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

Classes et héritage Mécanisme d ’abstraction + Généralisation Surcharge des méthodes par héritage

Classe et Composition VEHICULE CARROSSERIE MOTEUR

Architectures à base d ’objets Smalltalk Java Base de données Objets Classes Messages IHM Modèles et méthodologies de développement

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

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

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

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

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

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

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)

Infrastructure Client Serveur requêtes

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

Appel de Procédure à Distance CLIENT SERVEUR F(1,  x) F(1,x) unmarshalling marshalling 10 marshalling unmarshalling

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

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

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

Introduction de services Gestionnaires de noms (x500, nis, dns…) Synchronisation (Transaction …) Sécurité

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

Infrastructure Objets Distribués Client Client Serveur Serveur

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

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

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…)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Invocations Invocations dynamiques Du ressort de l ’infrastructure DII en CORBA IDispatch en OLE Du ressort de l ’infrastructure

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

Un bref comparatif

Un bref comparatif

Un bref comparatif

Un bref comparatif

Petite Conclusion Problèmes d ’intégration et d ’interopérabilité Arrivée de internet Effort d ’interopérabilité et d ’efficacité

OUFFFFF Virginie maman papa maman papa Virginie

ezcbbbbbb,,,,,;,;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;