2009-12-14 37 views
7

Estoy estudiando para una final y tengo algunas preguntas sobre RMI y CORBA. Estas son preguntas de discusión tomadas de una guía de estudio por lo que no existe un contexto de aplicación real a su alrededor.Diferencias RMI y CORBA?

  1. ¿Por qué RMI y CORBA se basan en TCP? La pregunta establece responder en términos de semántica de invocación.

Lo que he pensado hasta ahora es que TCP va a ser más confiable que UDP y en RMI/CORBA, queremos fiabilidad de la red. También leí en alguna parte que TCP está profundamente integrado en las clases de redes Java nativas. No estoy tan seguro de esta afirmación ya que CORBA puede implementarse en cualquier idioma.

  1. Discuta la diferencia entre el servicio de nombres RMI y CORBA.

Estoy un poco confundido acerca de esta pregunta porque lo que he leído hasta ahora es que RMI y CORBA son tecnologías convergentes y que RMI puede acceder a objetos CORBA. Cómo lo entiendo ahora, los servicios de nombres parecen ser muy similares y cualquier diferencia no vale la pena señalar.

  1. ¿Por qué RMI necesita una invocación dinámica explícitamente diferente de CORBA?

No he encontrado nada.

Me doy cuenta de que estoy haciendo tres preguntas diferentes, pero todas parecen estar relacionadas.

Respuesta

5

RMI/CORBA basado en TCP: Ambos son esencialmente mecanismos de invocación de objetos distribuidos, y es más fácil simplemente construir esto encima de un transporte confiable donde no tiene que preocuparse por la pérdida de datos. Si lo construyeron en UDP, tendrían que tener muchos otros mecanismos para preocuparse por la retransmisión y los duplicados, etc.

Servicio de nombres RMI/CORBA: Mire más profundamente aquí. El servicio de nombres de CORBA se llama denominación de COS, y el servicio de nombres de RMI es JNDI. Están en diferentes niveles de arquitectura. JNDI es esencialmente un conjunto de API y la denominación COS es ambas API (expresadas a través de IDL) y una definición de protcocol wire.
Invocación dinámica. No estoy seguro del significado de esta pregunta. Ambas tecnologías esencialmente le permiten invocar métodos en objetos de forma remota.

Espero que esto ayude un poco.

+2

y debe tenerse en cuenta que RMI también podría usar el protocolo CORBA – Bozho

+0

Cierto, eso se agregó más tarde (ya existía cuando se introdujeron) –

+3

-1 - CORBA no es solo un protocolo de conexión. Cada servicio se especifica en IDL y el IDL se puede traducir a una API en uno de varios idiomas ... incluido Java. –