Services communs CORBA

Slides:



Advertisements
Présentations similaires
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
Advertisements

Transformation de documents XML
Réflexivité et réseaux d’ information
Quelques Infos sur LDAP
Message Oriented Middleware
Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation.
Invocation de Méthode à des Objets distants Exemple : CORBA Common Object Request Broker Architecture Mise en pratique avec Orbacus en JAVA.
CORBA Common Object Request Broker Architecture
Module SI4 Applications réparties Questions Réponses Extraits de Mireille Blay-Fornarino, Audrey Occello et Didier Donsez.
En savoir plus sur le nommage
19 septembre 2006 Tendances Logicielles IBM Rational Data Architect Un outil complet de modélisation et de conception pour SGBD Isabelle Claverie-Berge.
Object Management Architecture (OMA)
Reference Model of Open Distributed Processing
Plan du cours La sérialisation: – comment stocker et restaurer les Objets? Les interfaces graphiques et la programmation évènementielle. –Comment concevoir.
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
Cours 6 : Les Web Services et UDDI Mars Version 1.0 -
Le File Transfer Protocol
Localisation de services techniques dans un modèle à composants H. GRINE, C. Hérault, S. Lecomte, T. Delot Journées Composants, le Croisic 7 avril 2005.
JAV - TD 6 Structures de données JAVA
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV J2EE / JNDI Module Java Expert.
Plan de formation Chapitre 1 : Présentation de SAP
Plan de formation Chapitre 1 : Présentation de SAP
Découverte et description de services distribués Oussama KASSEM ZEIN.
Etude des Technologies du Web services
ManageEngine ADManager Plus 6
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Java Remote Method Invocation (RMI)
Introduction à DOM Maroua Bouzid
Accès aux données généralisé SQL est presque une solution! Le problème: Le SQL n'est pas une langue complète, et doit être intégré dans un langage de programmation.
JDBC ou comment manipuler une base de données en Java ?
Principes de programmation (suite)
GESTION DE PARCS D’ORDINATEURS
Interopérabilité JOnAS - CORBA
Complément Le diagramme des classes
Présentation Structures de Données et TDA
1 1 Corba avec Java et C Jean-Marc Vanel Transiciel - Sogeti.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Les concepts et les méthodes des bases de données
Introduction au bus CORBA
Chapitre 9 Les sous-programmes.
Standard Template Library
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Gestion des transactions SQLServer.
1212 Entrée et sortie de fichiers Objectifs À la fin de ce cours, vous serez capables de : • Lire à partir de la console • Écrire sur la console.
Présentation de CORBA et de IIOP
Java Enterprise Edition, anciennement J2EE
Créer des packages.
Yonel Grusson 1 SQL SERVER 2000 CLIENT/SERVEUR. Yonel Grusson 2 PLAN Présentation Installation Résultat de l'installation L'administration –Par le SQL.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Gérer l'instance Oracle
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
Windows 2003 Server Modification du mode de domaine
Les sockets.
Module 3 : Création d'un domaine Windows 2000
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
Iterator Design Pattern Alessandro Soro Sylvain Giroux.
France Télécom R&D Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.
Module 1 : Vue d'ensemble de Microsoft SQL Server
Plate-forme de réalisation d’agents mobiles. Plan Introduction La plate-forme Voyager implantation Conclusion.
Initiation aux SGBD Frédéric Gava (MCF)
1 Structure en MC Principes Stockage des données dans la mémoire volatile d’un ordinateur Problèmes Stockage temporaire «Petits» volumes de données Langages.
LDAP (Lightweight Directory Access Protocol)
Initiation aux bases de données et à la programmation événementielle
Introduction Module 1.
Java Remote Method Invocation
JNDI, dernière mise à jour : vendredi 29 septembre 2006 © - groupe de recherche
LES CLASSES ET LES OBJETS
FACTORY systemes Module 2 Section 1 Page 2-3 Installation d’Industrial SQL FORMATION InSQL 7.0.
KOSMOS 1 Outils transversaux Module 7 1.L’annuaire 2.La recherche d’informations 3.La réservation de ressources.
FACTORY systemes Module 6 Section 1 Page 6-3 Les ActiveX FORMATION INTOUCH 7.0.
Chapitre 3 Administration des accès aux ressources
Transcription de la présentation:

Services communs CORBA

Les services communs CORBA Service de recherche d’objets : pour retrouver un objet Nommage (Naming) : par un nom : service de « pages blanches » Vendeur (Trader) : par des propriétés: service de « pages jaunes Services concernant la vie des objets : Life Cycle, Property, Relationship, Externalization, Persistent Object, Query, Collection, Versionning, Time, Licencing Services de sûreté de fonctionnement : Security, Transactions, Concurrence Services de communications asynchrones: Events, Notification, Messaging Vendeur : les objets peuvent être recherchés en fonction de leurs caractéristiques.

Les services communs CORBA : historique 1er RFP : 1993 - 1994 Nommage, Cycle de vie, Notification d'événements, Persistance. 2ème RFP : 1994 - 1995 Transactions, Concurrence d ’accès, Externalisation, Relations. 3ème RFP : 1995 - 1996 Sécurité, Serveur de temps. 4ème RFP :1995 - 1996 Propriétés, License, Serveur de requêtes. 5ème RFP :1996 --- Annuaire par fonctionnalités, Collection, Gestionnaire de versions. Request For Proposalrequete dont le résulat c’est des réponses des membres basées sur des otils existants ou en développement des preuves de faisabilité sont alors demandées. RFP sont alors merger .. 12 à 16 mois pour sortir un standard. Actuellement le travail est plus tourné vers les CORBA et JavaBeans, Corba Domains et Business Objects. Et il y a la préparation de Corba 3.0

Les services de recherche d’objets CORBA Bus d’objets répartis CORBA sur Internet (IIOP) Serveur C++ Client Java Repertoire Traitement Service de recherche d’objets IOR IOR équivalent des pages blanches : objets désignés par un nom symbolique . annuaire matérialisé par un graphe de répertoire de désignation. Services Nommage et/ou Vendeur

Le service Vendeur Le service vendeur ou Trader service permet : d ’enregistrer des objets auprès de ce service en les caractérisant par un ensemble de propriétés. de retrouver un service en précisant son type et les critères le caractérisant (différentes politiques de recherche possibles) Opérations principales découvrir et importer des services : Interface LookUp : query (type de service recherché, contraintes, préférences, politique de recherche, ….) parcourir les réponses : Interface OfferIterator mise à jour du service Vendeur : Interface Register export, withdraw …... équivalent des pages jaunes : modes de recherche politique de recherche : un ou des services vendeurs contraintes : le service vendeur définit un langage de contraintes, il est possible d ’en utiliser ou d ’en définir d ’autres SQL par ex. préférences : manières dont les résultats seront rournés : ordre de découverte, aléatoire, etc….

Directory Service Retour sur JNDI et LDAP

Directory Service Naming + attributs

Les fonctions de base void bind(    String stringName,    Object object,    Attributes attributes ) Même méthode que Context, mais avec un paramètre de plus : les attributs. Idem rebind, lookup Idem createSubcontext Créé à partir de InitialDirContext

GetAttributes 2 formes possibles Attributes getAttributes(    String stringName )    String stringName,    String [] rgstringAttributeNames

modifyAttributes Avec les opérations : void modifyAttributes(    String stringName,    int nOperation,    Attributes attributes ) Avec les opérations : ADD_ATTRIBUTE, REPLACE_ATTRIBUTE, et REMOVE_ATTRIBUTE

Search La forme la plus simple passe une liste d'attributs Il est possible d'utiliser des filtres selon la norme RFC 2254 Les contrôles permettent la mise en forme des résultats (par exemple tri ascendant, etc…)

Search : pour faire des requêtes NamingEnumeration search(   String stringName,   Attributes attributesToMatch ) On peut utiliser des filtres de recherche selon la spécification RFC 2254: (cn=Babs Jensen) (!(cn=Tim Howes)) (&(objectClass=Person)(|(sn=Jensen)(cn=Babs J*))) (o=univ*of*mich*) search(Name stringName, String stringRFC2254Filter, SearchControls searchcontrols)

Search : contrôle de la recherche On peut utiliser des contrôles permettant : De définir les attributs à renvoyer De définir la portée de la recherche (récursive en arbre, locale…) Le nombre maximum de réponses Le temps maximum d'attente De renvoyer ou non l'objet Java associé De déréférencer ou non les liens

Un exemple String filter = "(objectclass=Inetorgperson)"; SearchControls controls = new SearchControls(); controls.setSearchScope(SearchControls.SUBTREE_SCOPE); controls.setReturningObjFlag(false); controls.setReturningAttributes(attrIds); try { NamingEnumeration enumDev = initCtx.search("ou=people", filter, sc);

Utilisation d'un SearchResult while (enumDev.hasMore()) { SearchResult sr = (SearchResult)enumDev.next(); Attributes attributes = sr.getAttributes(); NamingEnumeration ne = attributes.getAll(); while (ne.hasMore()) Attribute attr = (Attribute) ne.next(); String attrID = attr.getID(); NamingEnumeration values = attr.getAll(); . . . while (values.hasMore()) child.add( new DefaultMutableTreeNode(values.nextElement())); }

Résumé : Directory Mêmes méthodes que Context Créé à partir de InitialDirContext Rajoute la gestion des attributs Rajoute les fonctions de recherche

Le service de Concurrence Le service de Concurrence ou Concurrency control service permet de contrôler l’accès à un objet de manière à gérer la cohérence et la consistance des opérations entre cet objet et les objets qu’il accède ou bien qui l’accèdent. Il permet de créer des verrous répartis et de spécifier le type de verrou crée (lecture, écriture, mise-à-jour etc...). concu pour être utilisé avec le service Transaction.

Le service de Transaction Le service de Transaction ou Transaction service permet d’assurer la consistance des traitements en respectant les propriétés ACID (Atomicité, Consistance, Isolation et durabilité) des transactions. Il permet : de commencer et de terminer une transaction; de contrôler la propagation d’une transaction; d’associer plusieurs objets répartis à une seule et même transaction; de coordonner la terminaison d’une transaction (2 phase commit). Propriétés ACID : Atomicité : une transaction n’est pas décomposable, il faut qu’elle aille jusqu’au bout ou que rien n’ait été fait. Consistence : après la transaction l’ensemble des données est dans un état cohérent. Isolement : si exécution simultanée de plusieurs transactions, les mise à jour de chacunes n’interfèrent pas avec les autres. Durabilité : après une transaction terminée normalement par un COMMIT, le système conservera les valeurs des données (journalisation, sauvegarde, reprise).

Le service d’Externalisation Le service d’Externalisation ou Externalization service permet : l’externalisation d’un objet, c’est à dire la représentation de l’état de l’objet dans une séquence d’octets (en mémoire, sur disque, sur réseau) transportable, de durée de vie illimitée indépendante de l’environnement (ORB) d’origine. l’internalisation des données, impliquant la création d’un nouvel objet dans le même environnement ou dans un environnement différent. le déplacement (migration d’objets), passage par valeur et la sauvegarde des objets doivent reposer sur ce service.

Le service Cycle de vie Le service Cycle de vie ou Life cycle service permet : de gérer la création, la destruction, la copie et le déplacement des objets du bus; les objets sont créés par l’intermédiaire d’objets appelés Factories dont la référence est accessible au client; un objet est détruit, copié ou déplacé à l’aide d’opérations définies dans l’interface de base LifeCycleObject; The Factory pattern can be applied in a wide variety of situations, including the following: • Security - A client is required to provide security information before the factory object will allow the client to have access to another object. Load-balancing - The factory object manages a pool of objects, often representing some limited resource, and assigns them to clients based on some utilization algorithm. • Polymorphism - A factory object enables the use of polymorphism by returning object references to different implementations depending on the criteria specified by a client.

Le service de Relations Le service de Relations ou Relationships service permet d’établir dynamiquement des relations entre les objets distribués. Une relation est définie par un rôle, un degré, une cardinalité et des attributs. Trois niveaux de services : basique : service de base permettant de créer les relations et les objets et de naviguer à travers la relation, de détruire la relation; graphes d’objet en relation; relations spécifiques : Containment (1-n) et référence (n-m). Ex relation : emploie compangie personne Role de compagnie : employeur Role de personne : employée Degré de la relation emploie : relation binaire (nombre de role requis = 2) Cardinalité de la relation emploie : (nbre max des relations impliquées pour un rôle) Ex => aux nbres max des personnes employés pour une compagnie. Attributs de la relation emploie : titre du job, date de début, etc .... Les relations sont encapsulées dans des objets, des contraintes??, et différents types de relations : appartenance, inclusion, référence, l ’auteur et l ’emploi. Manipulation de graphes d ’objets

Affecte le bus, les services, les utiltaires, les applicatifs Sécurité et temps Le service de Sécurité (Security) permet de gérer les fonctions suivantes : authentification autorisation sûreté et intégrité des communications encryptage administration de la sécurité Le service de Temps (Time) permet la synchronisation périodique d’horloges dans tous les composants d’un système réparti. autentifier les clients , chiffrer et certifier les communications, contrôler les autorisation d’accès. Ce service utilise les notions de serveurs d’authentifications, de clients/rôle/droits (et délégation de droits), d’IIOP sécurisé permet d’obtenir une horloge globale sur le bus de mesurer le temps et de synchroniser les objets. Affecte le bus, les services, les utiltaires, les applicatifs

Le service de notification d'événements La plupart des requêtes CORBA se traduisent par l’exécution synchrone d’une opération (le client connaît la référence de l’objet auquel la requête s’adresse et le client ainsi que l’objet doivent être tous deux actifs) et sinon? Le service d'Evénements ou Event service permet de découpler la communication entre objets. Mode de communication découplé : lorsque le client et l’objet ne se connaissent pas; lorsque le client et l’objet ne sont pas actifs simultanément. Je saurais le compléter.par un dessin.. Il permet aux objets de produire des événements asynchrone à destination d’objets consommateurs. Producteurs et consommateurs dialoguent à travers un intermédiaire appelé canal d’événements. Les producteurs n’ont pas besoins de connaître tous les consommateurs intéressés. Etendu avec le Notification service ou les consommateurs sont notifiés uniquement des évènements les interessant ce qui permet de réduire le trafic. Voir l ’exemple de Douglas si je pouvais recuperer le transparent…. dans le mode push le producteur a l ’initiative de la production le consommateur est notifié. Dans le mode pull, le consommateur demande explicitement les événements, le producteur est alors sollicité. ..

Communication événementielle principes de fonctionnement • concepts de base : événements, réactions (traitements associés à l’occurrence d’un événement) • principe d’attachement : association dynamique entre un nom d’événement et une réaction • communication anonyme : indépendance entre l’émetteur et les “consommateurs” d’un événement

Un canal d’évènements Flot des évènements Consommateur Producteur

Un canal d’évènements : notification PushConsumer PushSupplier Consommateur Producteur Push void push(in any data) raises(Disconnected); Consommateur Producteur Canal Push Consommateur Consommateur Producteur actif / Consommateur réactif Le canal diffuse les évènements

Un canal d’évènements : demande Consommateur Producteur Pull() Consommateur Producteur Canal Pull() Consommateur PullSupplier { //demande de production d’un événement any pull() raises(Disconnected); // présence d’un événement any try_pull(out boolean has_event) raises(Disconnected); demande Like consumers, suppliers can also use push or pull behavior. Push suppliers are the more common type, in which the supplier directly forwards data to the event channel and thus plays the client role in the link to the channel. Pull suppliers, on the other hand, are polled by the event channel and supply an event in response, if a new event is available. Polling is done by the try_pull() operation if it is to be non-blocking or by the blocking pull() call: // IDL interface PullSupplier { any pull() raises(Disconnected); any try_pull(out boolean has_event) void disconnect_pull_supplier(); }; Consommateur Producteur réactif / Consommateur actif Le canal procure les évènements

Un canal d’évènements : file d’évènements Consommateur Producteur Pull() Consommateur Producteur Canal Push() Consommateur Consommateur Producteur actif / Consommateur actif Le canal gère des files d’évènements

Un canal d’évènements : collecte d’évènements Consommateur Producteur Push() Consommateur Producteur Canal Pull() Consommateur Consommateur Producteur réactif / Consommateur réactif Le canal est une entité active voire intelligente

4ème RFP Le service de Propriétés (Properties) permet d’associer dynamiquement une liste de propriétés à un objet. Il est possible d’ajouter, de supprimer, de modifier et de retrouver toute propriété associée à un objet. Le service d’interrogations (Query) permet d’exprimer des requêtes sur des ensembles d’objets CORBA. Le service de License (Licensing) contrôle et gère les rémunérations associées à l’utilisation d’un service objet donné. sans modifier son IDL. Ce sont des attributs spécifiques aux besoins du clients date d’expiration ou annotation par ex. il repose sur SQL et permet d’interroger les attributs des objets Permet de manipuler les requêtes comme des objets Corba, les objets resulat sont mis dans une collection.. briques pour mesurer, contrôler et limiter l’utilisation des objets CORBA. Il produit aussi des info pour facturer les clients et rémunérer les fournisseurs…

5ème RFP Le service de Gestion des versions (Change Management) permet de gérer l’évolution des versions des interfaces des objets ainsi que de l'adéquation avec leurs implémentations. Le service d’Annuaire par fonctionnalités (Trader) permet d’associer des fonctionnalités à des objets CORBA. Le client utilise ce service comme l’annuaire des pages jaunes. Le service de Collection (Collection) permet de créer et de manipuler des collections d’objets. ou vendeur : le fournisseur enregistre ces objets en les caractérisant par des propriétés, ... utilise avec le service interrogations il permet de manipuler et effectuer des traitements itératifs sur des ens. d’objets.

Taxonomie des services Nommage + Annuaire par fonctionnalités Persistance + Externalisation Cycle de vie + Relation Serveur de requêtes + Collections + Properties Transaction + Concurrence Sécurité + License Gestionnaire des versions Time Event

CORBA Services en résumé Persistent Object Save objects to databases Concurrency Managing simultaneous access Licensing Managing licensed services Externalization External representation of objects Relationship Manage relationships between objects that don't know about each other Query Query objects on the network Naming How are objects found? Events Standardized mechanism for client notifications. LifeCycle How are objects created, moved, duplicated and deleted? Trader Find objects that have certain properties Transactions Distributed 2-phase commit Interfaced with the XA standard Security Complete distributed security