Pour l’article ayant un titre homophone, voirKorba.

Cet articlene cite pas suffisamment ses sources().
Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant lesréférences utiles à savérifiabilité et en les liant à la section « Notes et références ».
En pratique :Quelles sources sont attendues ?Comment ajouter mes sources ?| CORBA | ||
| Éditeur | Object Management Group (OMG) | |
|---|---|---|
| Genre | Spécification formelle | |
| État | Version 3.3 | |
| Première publication | ||
| Dernière publication | ||
| Standard | omg.org/spec/CORBA | |
| Site web | www.corba.org | |
| modifier | ||
CORBA,acronyme deCommon Object Request Broker Architecture, est unearchitecture logicielle pour le développement de composants et d’object request broker (ORB). Ces composants, qui sont assemblés afin de construire des applications complètes, peuvent être écrits dans deslangages de programmation distincts[1], être exécutés dans des processus séparés, voire être déployés sur des machines distinctes.
À la mode dans les années 1990, CORBA n'est plus qu'une technologie de niche depuis le milieu des années 2000.
Le standard CORBA est maintenu par l’Object Management Group.
CORBA a été à la mode dans les années 1990. Dans les années 2000, des technologies telles queSOAP etDistributed Component Object Model deMicrosoft ont éclipsé CORBA, qui est devenue une technologie de niche[2].
CORBA est une norme définie en1992 par des constructeurs dematériel informatique et deséditeurs de logiciels (dontSun,Oracle,IBM…) regroupés au sein d’un consortium nomméObject Management Group (OMG).
C'est avec la version 2 de CORBA (fin1995) que sont apparus le protocole standardIIOP et l’interface description language (IDL).
La version 2.3 rend interopérables CORBA etRMI (Juin 1991).
La version 3 de CORBA (juillet 2002) spécifie seize types de services (nommage et annuaire des objets, cycle de vie, notification d'événements, transaction, relations et parallélisme entre objets, stockage, archivage, sécurité, authentification et administration des objets, gestion des licences et versions…) mais tous ne sont pas mis en œuvre dans lesORB du marché.
La version 3.1.1 (aout 2011) a été publié par l'ISO, en tant que norme de l'édition 2012, sous les références : ISO/IEC 19500-1[3], 19500-2[4] and 19500-3[5].
La technologie CORBA adopte une approche essentiellementorientée objet : du point de vue d'un langage de programmation, toutes les méthodes sont virtuelles ; il n'y a ni polymorphisme paramétrique, ni méthode protégée ou privée, ni surcharge d'opérateur, ni fonction de première classe. Chaque composant est décrit sous la forme d'une interface écrite en langageIDL.
Une correspondance a été spécifiée entre le langage IDL et différents langages de programmation[1]. Des précompilateurs dédiés permettent de générer automatiquement le squelette de l'interface IDL dans un langage donné, en produisant aussi le code qui assure l'appel de fonctions distantes et le traitement des résultats. Ce code porte le nom destub du côté client et deskeleton du côté serveur. Un module dont l'interface est spécifiée en IDL pourra ainsi être programmé enC++, tandis que des modulesJava qui l'utiliseraient effectueraient en fait des appels sur une interface Java générée à partir du même IDL, l'architecture CORBA assurant l'acheminement des appels entre les processus.
Applications et composants CORBA mélangent typages statique et dynamique. Ainsi, chaque composant est décrit statiquement par une interface mais les composants qui utilisent celui-ci doivent vérifier dynamiquement que l'interface est effectivement implémentée.
L'Object Request Broker (ORB), est un composant fondamental de l'architecture CORBA ; sa mission est de faciliter la communication entre objets : il est chargé d'envoyer les requêtes aux objets et de retourner les réponses au client qui les a invoqués par un processus desérialisation.
Le langage de définition des interfaces ou IDL (Interface Definition Language), est utilisé pour définir les interfaces entre les composants d'une application et permettre l'interopérabilité entre différentes technologies.
IDL ne peut définir que des interfaces, pas d'implémentations. En spécifiant les interfaces entre objets en CORBA, IDL se charge d'assurer l'indépendance avec les langages de programmation utilisés : un module dont l'interface est spécifiée en IDL pourra ainsi être programmé enC++, tandis que des modulesJava qui l'utiliseraient effectueraient en fait des appels sur une interface Java générée à partir du même IDL, l'architecture CORBA assurant l'acheminement des appels entre les processus.
Durant l'exécution, les communications entre composants sont gérées par unORB.
La technologieBonobo du projetGNOME utilise CORBA.
C'est également le cas duframeworkSCADA 'TANGO' de l'ESRF.
| Méthodes | |
|---|---|
| Protocoles |
|