Client / Serveur
Transcription
Client / Serveur
Client / Serveur Rémy Courdier Normes et Standards pour le C/S à base d’objets répartis Client-Serveur : Normes et Standards 1 Rémy Courdier Normes et Standards du Client -Serveur Client-Serveur à base d ’objets rrépartis épartis d’objets ORB : infrastructure L’importance des commune entre objets ditribués standards, L’OMG,... C/S et architecture à CORBA : L’ORB de objets distribués l’OMG BLOB : COM/DCOM - OLE : Binary Large Object & Composants Standard de facto des applications Microsoft Les Documents Composés Client-Serveur : Normes et Standards Java Beans 2 Rémy Courdier L ’importance des standards L’importance Object Management Group : OMG Tunnel JAVA Beans, RMI ActiveX, OLE, COM/DCOM CORBA, IDL, IIOP, GIOP, ESIOP SOM/DSOM Client-Serveur : Normes et Standards 3 Rémy Courdier L ’OMG : L ’Object Management Group L’OMG L’Object Consortium éé en Consortium qui qui regroupe regroupe ++ de de 700 700 acteurs acteurs cr créé en 1989 1989 Consortium a but non lucratif... Ne produit pas de code, fournit des spécifications dans le domaine des architectures objets Toute l’activité de L’OMG est désignée par le Sigle OMA (Object Management Architecture) dont CORBA est un des composants. Objectifs : Réduire le coût et la complexité du dévelop. objet, Permettre l’introduction rapide de nouveaux types d’applications à bases d’objets. Spécification de composants logiciels : interopérables, réutilisables, portables Client-Serveur : Normes et Standards 4 Rémy Courdier C/S et architectures à objets Distribu és Distribués L’approche traditionnelle de la construction d’applications C/S passe par une étape longue de spécifications à partir du problème posé Si la nature du problème change rapidement, le produit développé ne convient plus au besoin du client lors de son déploiement Les architectures à objet répartis visent à permettre une adaptation permanente entre les problèmes et les applications informatiques Client-Serveur : Normes et Standards 5 Rémy Courdier BLOB : Binary Large Objects Objets binaires de grande taille encapsulés sous une représentation objet et qui nécessites une gestion particulière de la part des serveurs Un BLOB peut correspondre à une vidéo, un document intelligent,... Des protocoles doivent être définis pour l’échange de BLOBs entre systèmes et pour l’association de BLOBs avec des programmes qui doivent être capable de les gérer ...Vers l’approche composant (Component) Client-Serveur : Normes et Standards 6 Rémy Courdier Des objets aux composants Objet : bonne réutilisation via héritage et encapsulation, mais seules les applications qui sont liées à ces objets peuvent les utiliser Approche Composant Composant = BLOB intelligent qui encapsule du code et des données et qui peut être utilisé par tout programme sur le réseau Le langage et le compilateur utilisé pour créer un composant sont transparents aux clients On peut demander à un composant ce qu’il sait faire puis l’invoquer dynamiquement Client-Serveur : Normes et Standards 7 Rémy Courdier Objets Distribu és & Composants Distribués entité logicielle qui ne correspond pas une application complète entité logicielle commercialisable entité boite “noire logicielle” : utilisable dans tout contexte logiciel peut sauvegarder son état et le restituer (persistance) doit contenir une version logicielle entité avec une interface normalisée répond à une fonction précise “vendable” et autonome il peut comporter sa propre licence IDL : Interface Définition Langage entité logicielle indépendante des : Langages, compilateurs, OS, réseaux, matériels Client-Serveur : Normes et Standards 8 Rémy Courdier Objets Distribu és & Distribués & Composants(2) Composants(2) “Plug and Play” : intégration automatique de composants logiciels élémentaires + + = Interopérabilité : messagerie transparente n’importe ou dans le monde ORB Portabilité : s’exécute sur différentes plate formes Unix ... Win. Client-Serveur : Normes et Standards 9 Rémy Courdier Objets Distribu és & Composants (3) Distribués Coexistence : coexiste avec des applications traditionnelles avec des interfaces objet ORB Appli. Autonomie : gèrent leurs liens avec les autres objets et les ressources qui leur sont nécessaires Ils sont très dynamiques ORB Dis moi ce que tu sais faire ? Client-Serveur : Normes et Standards 10 Rémy Courdier Applications monolithiques Objets Distribu és & Composants Distribués Utilisateur = acteur Petits développeurs informatique = assemblage de composants par des langages simples : scripts ou langage graphique possibilités à de nombreux développeurs de distribués des briques s’intégrant dans de gros logiciels Grands développements réduction de la complexité des grands logiciels réduction des tests de non régression en cas d’évolution Vx à Vx+1 proposer des solutions sur mesure par assemblage de composants au lieu de proposer des monstres invendables Client-Serveur : Normes et Standards 11 Rémy Courdier Les documents compos és : composés Composants & Conteneurs Document composé : Ensemble d’objets de type différents intégrés dans un même contexte par une application et manipulés de manière uniforme par l’utilisateur Les objets peuvent être de types multiples : texte, tableau, image, son, animation vidéo,... Conteneur (container) : Contexte d’application contenant ou reliant les objets constituant un document composé C’est en fait une application autonome ou un composant qui intègrent des composants pour réaliser ses fonctions Client-Serveur : Normes et Standards 12 Rémy Courdier Les documents compos és : composés Liaison & Incorporation La liaison : mécanisme permettant de référencer les données d’un composant au sein d’un conteneur dans le document composite cela se traduit par la mémorisation d’un lien (moniker) vers un autre document L’incorporation : mécanisme qui consiste à recopier les données d’un composant dans un conteneur dans le document composite cela se traduit par la mémorisation d’un nouveau type de donnée dans un “Stream” du document Dans les 2 cas, les données restent gérées par le composant qui les a créé Client-Serveur : Normes et Standards 13 Rémy Courdier Les documents compos és : composés L ’activation sur place L’activation Mode d’activation d’un composant dans un conteneur L’incorporation de données implique une activation sur place Le menu du conteneur se combine avec le menu du composant, selon des règles de composition précises le composant est chargé et déchargé automatiquement La liaison implique l’activation du conteneur gérant le document contenant les données liées Client-Serveur : Normes et Standards 14 Rémy Courdier ORB : infrastructure de communication entre objets distribu és distribués ORB : Object Request Broker L’ORB est chargé de l’acheminement des requêtes et des retours vers le client Les cinq services que doit fournir un ORB : Une banque d’interface ou IR : Interface Repository Une interface (API) de prog. pour l’ORB lui-même Une implémentation d’un “Object Adapter” tel que LOA : Library Object Adapter Une interface d’invocation dynamique DII : Dynamique Invocation Interface - construction dyn. de messages Une interface de souche dynamique DSI : Dynamique Skeleton Interface - réponse à des messages dyn. Client-Serveur : Normes et Standards 15 Rémy Courdier dapter La notion d ’Object A d’Object Adapter Pourquoi un xOA ? Il existe d’autres types d’Object Adapter Couche logicielle qui doit maintenir l’illusion pour le client que l’objet qu’il invoque est toujours actif, prêt à répondre à ses requêtes Le BOA : suppose le serveur comme une application le LOA (Library Object Adapter) : suppose le serveur comme une librairie dynamique le ODA (Object Database Adapter) : suppose le serveur comme une BD orientée objet Fonctions d’un Object Adapter interprétation des réf. aux objets enregistrement des serveurs activation désactivation des serveurs invocation de méthodes et sécurité des interactions Client-Serveur : Normes et Standards 16 Rémy Courdier Les diff érents types d ’Object Adapter différents d’Object Client-Serveur : Normes et Standards 17 The currently adopted OMG CORBA document provides for normal object access via the Basic Object Adaptor (BOA). For complete generality, flexibility, and interoperability, it executes via an interprocess mechanism (RPC for short) for every dispatch of every method. An extension is the Library Object Adaptor (LOA) that allows direct, considerably faster access to objects. After the first invocation (via the usual ORB mechanism), or through a compile-time optimization, a direct link is established to the object. Later access by the client to the object is then direct until the client notifies the ORB that it has released the object. The Object Database Adaptor (ODA) provides a mechanism to register a subspace of object identifiers with the ORB rather than having to register all objects in the ODBMS. From the client's point of view, the objects in the registered subspace appear just as any other ORB-accessible objects, with the same interface. Rémy Courdier ORB : invocation statique et dynamique Serveurs HOTE 1 Serveurs Clients HOTE N xOA xOA Stub Serveurs Clients DII Skeleton DSI ORB Invocation statique Client-Serveur : Normes et Standards Invocation dynamique 18 Rémy Courdier les 5 domaines de CORBA Object Management Architecture(OMA) Un langage de description des données (IDL) et une infrastructure de distribution d’objets(ORB) Une description de services communs nécessaires aux objets applicatifs : CorbaServices permet d’isoler clients et serveurs des détails d’implémentation (nommage, persistance, annuaire,...) Services communs aux applications et non plus seulement aux objets : CorbaFacilities documents composite (OpenDoc), interface utilisateur,... Collection de services spécialisés par branche industrielle : Domain Services télécommunication, santé, automatisme indust., finance,... Un spécif. normative d’interopérabilité entre ORB Client-Serveur : Normes et Standards 19 Rémy Courdier ll’IDL ’IDL CORBA l’IDL : Interface definition Langage sert à rendre indépendant le client du serveur en terme de langage de programmation La norme IDL Corba spécifie : la syntaxe de spécification des objets distribués les projections (mapping) vers les langage de prog. C, C++, Smalltalk Java, Ada, Cobol travail en général automatisé par les AGL objets : les compilo génèrent automatiquement les souches dans le langage de programmation choisi Stub : code généré pour le Client en corba Skeleton : code généré pour le Serveur Client-Serveur : Normes et Standards 20 Rémy Courdier de IDL à C++ LangageIDL interface Cercle { attribut float Rayon; }` Langage C++ class Cercle { public : float get_Rayon(); void set_Rayon(float r); } Client-Serveur : Normes et Standards 21 Rémy Courdier CorbaServices nommage et annuaire d’objets Naming Services notifications entre objets Event Services cycles de vie, relations entre objets Lifecycle Services, Relationship Services stockage et archivage des objets Persistent Object Service, Externalization Services transaction et parallélisme entre objets Transaction Services, Concurency Services administration des objets Property Services, Query Services sécurité et authentification des objets Security & Licensing Services Services destinés aux programmeurs d’appli. C/S Client-Serveur : Normes et Standards 22 Rémy Courdier service de nommage et d ’annuaire d’annuaire obtenir la référence d’un objet distribué La norme spécifie des interfaces pour : lier les objets à un nom dans un contexte donné résoudre un nom dans un contexte donné détruire un lien dans un contexte donné créer et détruire des contextes parcourir un contexte Un contexte est un objet qui contient un ens. de liens dans lequel les noms sont uniques service d’annuaire : choix d’un objet par ses caractéristiques plutôt que par son nom Client-Serveur : Normes et Standards 23 Rémy Courdier les services de notification Repose sur l’idée d’abonnement Ni les clients, ni les serveurs n’ont besoin de connaître leurs identités respectives les programmes clients s’abonnent à des événements les programmes serveurs notifient au service ces evts. = canal d’événements qui relie consommateurs et producteurs d’événements Les messages de notification sont stockés dans une boite aux lettres si le destinataire est temporairement indisponible (MOM : Message Oriented Middleware ) la norme Corba laisse aux implémentations le choix des mécanismes tech. de notifications Client-Serveur : Normes et Standards 24 Rémy Courdier Cycle de vie et relation entre objets mécanismes responsables de la création et de la destruction d’objets de la duplication et du déplacement d’objets un objet susceptible de créer un autre objet est appelé une usine (factory) les factory sont responsables de la gestion des ressources mémoire... nécessaires pour créer l’objet , ainsi que de sa prise en charge auprès du BOA Client-Serveur : Normes et Standards 25 Rémy Courdier Cycle de vie et relation entre objets(2) Les relationship Services permettent de définir des relations entre objets définition des rôles de chaque objet d’une relation dans les documents composés contenu/contenant définir des opérations de parcours de ce réseau de relations : utilisation d’interfaces spécialisés : Node & Transversal découvrir tous les rôles que joue un objet dans les différentes relations avec les autres objets et parcourir ces relations d’un rôle à l’autre Client-Serveur : Normes et Standards 26 Rémy Courdier Stockage et archivage d ’objets d’objets possibilité de sauvegarder l’état complet d’un objet entre 2 requêtes client Une référence à un objet doit pour le client toujours concerner le même objet dans l’état où il la laissé pour la dernière requête enregistrement en fichier structurés, base de données (objet) Corba unifie la vision externe par une interface IDL standard Client-Serveur : Normes et Standards 27 Rémy Courdier le standard de persistance : les Interfaces IDL Persitence Object : sauvegarde contrôlée par l’objet lui-même ou le conteneur Persistent Object Manager : gère les associations entre objets persistants Persistent Data Services : Pour les objets utilisant des protocoles particuliers protocoles : accès direct (recopie de valeurs), ODMG-93(BDO), Dynamic Data Object Protocol,... Datastore : permet l’enregistrement physique des objets sauvegardés dans des banques de données (norme X/Open) Client-Serveur : Normes et Standards 28 Rémy Courdier Services de transactions et de contrôle de concurrence entre objets extensions des mécanismes objets distribués pour leur donner la robustesse des applications transactionnelles norme compatible avec les moniteur transactionnels du marché : interopérabilité avec le DTP de l’X/Open (TX et XA) coordination de l’accès à des ressources non objet et objet dans une transaction Norme = begin, commit, rollback, suspend, resume... les services de concurrence permettent de verrouiller les ressources utilisées par une transaction en cours, bonne gestion des transactions imbriquées Client-Serveur : Normes et Standards 29 Rémy Courdier Services d ’administration des objets d’administration administration de systèmes comportant un grand nombre d’objets les Property Services permettent à un client d’associer dynamiquement des attributs à un objet pour lui seul. Ces info. ne font pas partie du type de l’objet distant les Query Services langage de requête dérivé de SQL : unification des BD Relationnelles, Orientées Objet, objets Corba évaluateur de requêtes (Query Evaluator) traduit les requêtes d’un système à un autre OQL-93 défini par l’ODMG (Object Database Management Group) sous groupe de l’OMG Client-Serveur : Normes et Standards 30 Rémy Courdier Services de ssécurité écurité et d ’authentification d’authentification service d’identification (le client ou le serveur est bien celui qu’il prétend être) et d’authentification (le client ou le serveur a effectivement le droit de faire... ) pour les utilisateurs et les objets Service d’autorisation et de contrôle d’accès Services d’audit qui conserve la trace de toutes les interactions entre C/S Services de cryptographie Client-Serveur : Normes et Standards 31 Rémy Courdier les ““CorbaFacilities” CorbaFacilities” Quatre Quatre grands grands domaines domaines l’interface utilisateur l’administration de l’information la modélisation, la définition, la sauvegarde, la récupération et l’échange d’info. (formats,...) l’administration de systèmes Tout ce qui touche l’utilisateur d’env. à objets distribués (Les documents composés) intégration de systèmes hétérogènes l’automatisation des flux de documents exécution, séquencement et automatisation des taches (procédures, agents logiciels, macro,...) Client-Serveur : Normes et Standards 32 Rémy Courdier