2009-10-14 9 views

Répondre

14

RMI est une technologie spécifique à Java. CORBA a des implémentations pour de nombreuses langues. Vous pouvez utiliser CORBA pour partager des objets entre des programmes écrits dans différentes langues (par exemple, C++ et Java).

CORBA utilise IDL (Interface Definition Language) pour séparer l'interface de l'implémentation. RMI utilise juste les interfaces Java. Étant donné que CORBA n'est pas lié à un langage particulier, les types de données ne correspondent pas toujours exactement aux types utilisés par votre langage de programmation (par exemple, un IDL long est un int en Java).

Les programmes RMI peuvent télécharger de nouvelles classes à partir de JVM distantes. CORBA n'a pas ce mécanisme de partage de code. Cela fait un moment, mais je me souviens (du portage d'une application Java de CORBA à RMI) que CORBA (ou au moins l'implémentation que nous utilisions) prenait en charge une grande partie de la synchronisation nécessaire pour le code concurrent, qui était quelque chose que nous devions faire explicitement en utilisant RMI. R12 peut être configuré pour fonctionner sur IIOP (le protocole utilisé par CORBA).