2009-10-14 8 views

risposta

14

RMI è una tecnologia Java-specifici. CORBA ha implementazioni per molte lingue. È possibile utilizzare CORBA per condividere oggetti tra programmi scritti in lingue diverse (ad esempio C++ e Java).

CORBA utilizza IDL (Interface Definition Language) per separare l'interfaccia dall'implementazione. RMI utilizza solo interfacce Java.

Poiché CORBA non è legato a un particolare linguaggio, i tipi di dati non sempre corrispondono esattamente ai tipi utilizzati dal linguaggio di programmazione (ad esempio, un IDL lungo è un int in Java).

I programmi RMI possono scaricare nuove classi da JVM remote. CORBA non ha questo meccanismo di condivisione del codice.

E 'stato un po', ma mi ricordo (da porting di un'applicazione Java da CORBA a RMI), che CORBA (o almeno l'attuazione usavamo) preso cura di un sacco della sincronizzazione necessaria per il codice concorrente, che è stato qualcosa che dovevamo fare esplicitamente quando si utilizza RMI.

RMI può essere configurato per funzionare su IIOP (il protocollo utilizzato da CORBA).