RMI-IIOP (leído RMI sobre IIOP) denota la interfaz RMI de Java sobre el sistema CORBA.
Este estándar fue creado intentando simplificar el desarrollo de las aplicaciones CORBA, mientras preservaba todos los beneficios principales. RMI-IIOP está ampliamente basado en el concepto Objeto por Valor (descrito en la página CORBA) que sirve como un contenedor o un reemplazo directo para estructuras CORBA, uniones, secuencias, arrays y strings. La IDL no se usa. En cambio, las definiciones de la estructura de datos "supuestas" automáticamente, recolectan los datos necesarios a través de mecanismos de reflexión. Cuando CORBA normalmente necesita una clase generada suplementaria para cada estructura de datos no trivial que está siendo transferida, RMI-IIOP solo usa el código generado para los objetos remotos. Menos código generado resulta en menos huella.
Ambas CORBA y RMI-IIOP usan el mismo estándar de comunicación GIOP. Si se necesitara, es posible generar las definiciones de IDL para las estructuras de datos RMI-IIOP involucradas y usar esas definiciones para alcanzar la interoperabilidad entre las aplicaciones RMI-IIOP y CORBA planas.
Las versiones recientes de RMI-IIOP derivan sus servants desde la clase estándar Servant (CORBA). Por lo tanto es posible conectarlos al CORBA ORB manualmente, involucrando, si es necesario, el Adaptador de Objeto Portable, Interceptores Portables, servicio de nombrado CORBA y todas las demás características estándar CORBA.
Ejemplo Hola Mundo (java)
El nombre estándar para el paquete de implementación Java RMI-IIOP es javax.rmi.CORBA.
Las interfaces
Las implementaciones cliente y servidor, suministrando la funcionalidad.
La herramienta de desarrollo RMI-IIOP, usualmente llamada rmic, utilizará las dos clases anteriores y creará dos stubs (para uso en el lado remoto) y los dos lazos (para uso en la parte servidora), un par para el servidor y otro par para el cliente.
El código, necesario para iniciar el servidor
El código, requerido para iniciar el cliente
Ahora, en cualquier momento desde el código, después de que el hilo ORB ha sido iniciado, podemos llamar:
the_client.talk("it is raining");
Ejecutando
El servidor (primero) y el cliente (segundo) son iniciados en dos máquinas diferentes (o como dos procesos separados en la misma máquina). El servidor imprime The client says: it is raining. El cliente imprime And the answer is: Yes, it is raining, it is raining, it is raining...
El código de ejemplo sugerido Hello world debe funcionar con Sun Microsystems java 1.5 y GNU Classpath 0.19 (usa la pestaña discusión para informar si no fuera así). Debido a posteriores bugs solucionados los ejemplos no funcionarán con los releases más antiguos de las dos plataformas.
Estado legal del acrónimo
IIOP es la marca resgistrada OMG y debe usarse con cuidado. Dado que este protocolo es puesto en la parte superior de GIOP, en algunos casos puede ser recomendable decir que la application usa o implementa GIOP.
Bibliografía
- El estándar oficial RMI-IIOP del grupo OMG (descarga,.pdf, 890 Kb).
- El estándar oficial CORBA del grupo OMG (descarga,.pdf, 10 Mb).




