문제
나는 결승을 위해 공부하고 있으며 RMI와 Corba에 대해 몇 가지 질문이 있습니다. 이것들은 학습 가이드에서 가져온 논의 질문이므로 주변에 실제 응용 프로그램 컨텍스트가 없습니다.
- RMI와 CORBA가 TCP를 기반으로하는 이유는 무엇입니까? 이 질문은 호출 시맨틱의 관점에서 대답해야합니다.
지금까지 내가 생각한 것은 TCP가 UDP보다 더 신뢰할 수 있고 RMI/CORBA에서는 네트워크 신뢰성을 원한다는 것입니다. 또한 TCP가 기본 Java 네트워킹 클래스에 깊이 내장되어 있다는 것을 읽었습니다. Corba는 어떤 언어로든 구현 될 수 있기 때문에이 진술에 대해 확신하지 못합니다.
- RMI와 Corba 이름 서비스의 차이점에 대해 논의하십시오.
지금까지 읽은 내용은 RMI와 Corba가 기술을 수렴하고 RMI가 Corba 객체에 액세스 할 수 있다는 것입니다. 내가 지금 이해하는 방법, 이름 서비스는 매우 유사한 것으로 보이며 차이점은 주목할 가치가 없습니다.
- RMI가 Corba와 달리 동적 호출이 명시 적으로 필요한 이유는 무엇입니까?
나는 무엇이든 생각해 냈습니다.
나는 세 가지 다른 질문을하고 있다는 것을 알고 있지만 모두 관련이있는 것 같습니다.
해결책
TCP를 기반으로하는 RMI/CORBA : 둘 다 본질적으로 분산 된 객체 호출 메커니즘이며, 데이터가 삭제되는 것에 대해 걱정할 필요가없는 신뢰할 수있는 전송 위에이를 구축하는 것이 더 쉽습니다. 그들이 UDP에 그것을 구축했다면, 재전송 및 복제 등에 대해 걱정할 다른 메커니즘이 많이 있어야합니다.
RMI/CORBA 이름 서비스 : 여기에서 더 깊이 살펴보십시오. Corba 이름 서비스를 COS Naming이라고하며 RMI 이름 서비스는 JNDI입니다. 그들은 다른 수준의 아키텍처에 있습니다. JNDI는 본질적으로 API 세트이며 COS 이름은 API (IDL을 통해 표현 된)와 와이어 프로토콜 정의입니다.
동적 호출. 이 질문의 의미를 잘 모르겠습니다. 두 기술 모두 기본적으로 원격으로 객체에서 메소드를 호출 할 수 있습니다.
이것이 조금 도움이되기를 바랍니다.