Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle



Documents pareils
CORBA. (Common Request Broker Architecture)

NFP111 Systèmes et Applications Réparties

Intergiciels pour la répartition CORBA : Common Object Request Broker. Patrice Torguet torguet@irit.fr Université Paul Sabatier

Composants Logiciels. Le modèle de composant de CORBA. Plan

Software Engineering and Middleware A Roadmap

Meta Object Facility. Plan

Remote Method Invocation en Java (RMI)

Remote Method Invocation (RMI)

Programmation répartie: Objet distribué. CORBA (Common Object Request Broker Architectur)

CORBA haute performance

Java RMI. Arnaud Labourel Courriel: Université de Provence. 8 mars 2011

1. Introduction à la distribution des traitements et des données

RMI le langage Java XII-1 JMF

Le cadre des Web Services Partie 1 : Introduction

GEI 465 : Systèmes répartis

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

OS Réseaux et Programmation Système - C5

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Programmation Web Avancée Introduction aux services Web

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

Etude critique de mécanismes de sécurité pour l architecture Jini

Introduction à CORBA

2 Chapitre 1 Introduction

Intergiciel - concepts de base

Patrons de Conception (Design Patterns)

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Introduction aux intergiciels

Conception et réalisation d un système d instrumentation distribuée basé sur l architecture Jini

Le Network File System de Sun (NFS)

Projet de Veille Technologique

Architectures d'intégration de données

La carte à puce. Jean-Philippe Babau

Vulgarisation Java EE Java EE, c est quoi?

Dis papa, c est quoi un bus logiciel réparti?

Nouvelles Plateformes Technologiques

3A-IIC - Parallélisme & Grid GRID : Définitions. GRID : Définitions. Stéphane Vialle. Stephane.Vialle@supelec.fr

Évaluation et implémentation des langages

Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

MEAD : temps réel et tolérance aux pannes pour CORBA

Contribution à l allocation dynamique de ressources pour les composants expressifs dans les systèmes répartis

Interministerial crisis management and operational centre - COGIC

Description de la formation

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

Automatisation de l administration système

Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)

Développement d un interpréteur OCL pour une machine virtuelle UML.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Programmation répartie RPC & RMI

Intégration de systèmes client - serveur Des approches client-serveur à l urbanisation Quelques transparents introductifs

L architecture des services Web

Introduction aux applications réparties

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Mise en œuvre des serveurs d application

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Projet CORBA : gestion de supermarchés

EXA1415 : Annotations

RTDS G3. Emmanuel Gaudin

CORBA. (Common Object Request Broker Architecture) Denivaldo LOPES

Introduction au langage C

Java et les bases de données

Urbanisation des Systèmes d'information

Le modèle client-serveur

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

1 Introduction à l infrastructure Active Directory et réseau

Conception des systèmes répartis

ACTIVITÉ DE PROGRAMMATION

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

NSY102. Conception de logiciels Intranet Introduction

Chapitre 2 - Architecture logicielle et construction d applications client-serveur

Java - RMI Remote Method Invocation. Java - RMI

Java Naming and Directory Interface

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

CAHIER DES CHARGES D IMPLANTATION

Systèmes d'informations historique et mutations

Étude et applications de l approche MDA pour des plates-formes de Services Web

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Programmation réseau avec Java. 3/7 RMI, un peu de sécurité et CORBA

IFT2255 : Génie logiciel

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Module.NET 3 Les Assemblys.NET

JOnAS 5. Serveur d application d

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Loi sur la remise de certaines dettes liées à l aide publique au développement. Forgiveness of Certain Official Development Assistance Debts Act

Limitations of the Playstation 3 for High Performance Cluster Computing

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

1.Introduction - Modèle en couches - OSI TCP/IP

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Gouvernance IT : par où commencer? Hubert Lalanne DE, Chief Architect for Industries IBM Software France

Environnements de Développement

Plan du cours. Historique du langage Nouveautés de Java 7

TP1 : Initiation à Java et Eclipse

Transcription:

2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation 2 Principes Corba : Un mécanisme de RPC (RMI) de haut niveau en environnement hétérogène Communication entre objets distants : Y.f( ); X f( ) { } Y Processus P1 Processus P2 Machine Machine Windows Comm. network Unix Coopération entre différents environnements : C C++ Java CORBA bus Eiffel SmallTalk 3 1

Principes Description officielle : CORBA = Common Request Broker Architecture Bus logique pour la gestion d objets distribués - Première version en 1991 - Pour construire des applications distribuées de grande taille Masque l hétérogénéité des environnements - différents langages - différents OS - différentes architectures Basé sur le Remote Method Invocation (RMI) - du RPC entre objets Fruit d un consortium international (un standard) 4 Principes Composition de Corba : Un modèle objet : OMG object model Une architecture objet globale : Management Architecture (OMA) Un bus logique d objets distribués : Request Broker architecture (ORB) Un langage de description d interface : Interface Description Language (IDL) Des implantations variées Non spécifiées 5 1 Principes 2 Architecture 3 4 Aperçu d utilisation 6 2

CORBA est juste un ensemble de spécifications : Un schéma de 9 blocs fonctionnels Pas de spécifications d implantation chaque implanteur de CORBA est libre d inventer une mise en oeuvre efficace +IDL compiler Interface Repository 4 Client IDL s: DII: Static Dynamic Invocation Invocation Interface Interface 2 3 ORBI: ORB Interface 5 1 ORB Core IDL Skeleton s DSI: Dynamic Skeleton Interface 6 7 Adapter Implementation Repository 9 Adapter Interface 8 7 ORB core: - Route les RPC/RMI entre les objets - Optimisation du mécanisme de routage : - entre machines : par le réseau, - entre processus de la même machine : par la mémoire partagée, - entre parties du même processus : par appels de fonctions Mais Corba reste considéré comme «lent»! - ORB core est inaccessible aux applications (couche cachée) 8 Les «talons» coté client : IDL s / Static Interface Invocation: - Pour les RMI sur des objets et méthodes connues à la compilation - Permettent aux clients de faire des appels locaux (à des s ) -Les s empaquètent et dépaquètent les RMI et se chargent des vrais appels distants Dynamic Invocation Interface: - Utile quand l interface des objets à appeler est inconnue à la compilation (ex : pour implanter des interpréteurs de cmd) - Doit rassembler beaucoup d info sur l objet à appeler Beaucoup plus complexe que les RMI statiques 9 3

Les «talons» coté serveur : Static Skeleton Interface - Dépaquètent les appels des clients - Transmettent aux objets appelés et connus à la compilation - Empaquètent les résultats destinés aux clients -Les skeletons sont générés par IDL (comme les s ) Dynamic Skeleton Interface - Permet d accepter des appels sans connaître les règles de dépaquetage à la compilation (sans connaître les skeleton ) - Utile pour s interfacer avec des langages interprétés 10 Les objets appelés peuvent être plus complexes Adapter - ORB core délègue le traitement des appels à l Adapter - Les objets peuvent avoir différents supports : processus, BdD, - L Adapter masque ces différences: activation de processus, accès à une BdD, - L Adapter lit les données de l implementation repository Implementation Repository - Stocke les données relatives à l implantation des objets - Ex : noms des exécutables, droit d accès, politique d activation des exécutables, 11 Classification des objets Corba en 5 grandes catégories : Des objets utiles à une application, non standardisés Pour réaliser les communications, masquer l hétérogénéité, accéder aux autres objets distribués Application interfaces Des objets métiers, classés par domaines et standardisés Domain interfaces Request Broker services Common facilities Pour les services de base, utilisés par toutes les applications, avec des interfaces standardisées (ex : naming, security, ) Pour les services de haut niveau commun à beaucoup d applications, avec des interfaces standardisées Conçu dés le départ pour capitaliser des développements 12 4

1 Principes 2 Architecture 3 4 Aperçu d utilisation 13 L IDL n est pas un language de programmation, seulement un langage de description IDL permet de : - décrire des coopérations entre clients et serveurs - établir un contrat (agreement) entre clients et serveurs Client IDL agreement CORBA bus skeleton En CORBA l IDL est un langage à part entière avec son générateur de s et skeletons, mais qui ne fait que de la description. 14 IDL agreement Client projections CORBA bus skeleton Les contrats IDL sont : indépendants de l environnement de développement projetés dans des environnements de développement : s coté clients skeleton coté serveurs suivant des règles de projection (IDL C++, IDL Java, ) par le pré-compilateur IDL réalisés par : les s + le bus Corba (ORB) + les skeletons 15 5

Exemple de syntaxe IDL : définition d un service de date (1) module ServiceDate { // Data type definitions // - basic type definitions typedef unsigned short Day; enum Month { January, February, March, April, May, June, July August, September, October, November, December}; typedef unsigned short Year; // - One date (structure) struct Date { Day the_day; Month the_month; Year the_year; }; // - sequence: unlimited set of dates typedef sequence<date> SomeDates; 16 Exemple de syntaxe IDL : définition d un service de date (2) // a first interface in the module interface Calendar { // attribute: object variables accessible from other // objects (possibility to be more accurate) attribute Year current_year; // operations: object methods with input and output // parameters (possibility to be more accurate) boolean Check_one_date(in Date d); void the_day_after(inout Date d); // definitions of specific exception(s) exception IrrelevantDate{String reason;}; // operations using exception(s) Date translate_string(in string one_string) raises(irrelevantdate); string translate_date(in Date one_date) raises(irrelevantdate); }; 17 Exemple de syntaxe IDL : définition d un service de date (3) // a second interface that inherits of the first interface CalendarWithOfficialHolydays : Calendar { // one more operation void official_holydays(in Year the_year, out SomeDates dates); }; }; //end of the module L IDL de CORBA est un langage structuré, avec des concepts «objet» Mais ne définissant que des types et des prototypes de méthodes Sans aucune réelle «instruction» 18 6

Exemple de projection en C++ et Java IDL agreement C++ Client C++ & IDL CORBA bus Java Java & IDL skeleton Règles de projection : IDL C++ Java autre module namespace package structure structure class operation virtual method method 19 1 Principes 2 Architecture 3 4 Aperçu d utilisation 20 Aperçu d utilisation Présence d un serveur de nom (global) : Il existe un annuaire de tous les objets CORBA accessible à travers le bus logique (l ORB) : le serveur de nom de CORBA Inutile de connaitre les machines hébergeant les services Il suffit de connaitre un objet-serveur par son nom mais il faut quand même interroger le serveur de nom (se simplifiera avec les RPC de Grid) /* Identification du service de naming global sur le bus Corba*/ ORB orb = ORB.init(); NamingContext NameServer = NamingContextHelper.narrow( orb.resolve_initial_references( NameService )); /* operation d identification de l objet réalisant le service */ ClasseService ObjetService = ClasseServiceHelper.narrow(NameServer.resolve( calcul )); /* objet (service) distant utilisé comme un objet local */ res = ObjetService.calcul(12,a,b,c); 21 7

Aperçu d utilisation Sémantique puissante Syntaxe lourde : CORBA a plus de puissance d expression que les JAVA-RMI Ex : il dispense le développeur de connaitre le nom des serveurs physiques, et gère l hétérogénéité. Pour cela il s appuie sur une couche de middleware importante Mais sa syntaxe reste lourde (plus lourde que les JAVA-RMI) très critiqué et toujours utilisé (dans des couches cachées) 22 Aperçu d utilisation Co-simulation de systèmes d armes Architecture TENA de cosimulation distribuée (2000-2010) ORB-CORE Bus CORBA (TAO OpenSRC version) 23 8