[java] Java RMI와 RPC의 차이점은 무엇입니까?

Java RMI와 RPC의 실제 차이점은 무엇입니까?

RMI가 객체를 사용하는 곳을 읽었습니까?



답변

RPC는 C 기반이며, 구조화 된 프로그래밍 의미론을 가지고있는 반면, RMI는 Java 기반 기술이며 객체 지향적입니다.

RPC를 사용하면 서버로 내 보낸 원격 함수를 호출 할 수 있습니다. RMI에서는 원격 객체에 대한 참조를 보유하고 해당 메소드를 호출 할 수 있으며 많은 JVM 인스턴스간에 분산 될 수있는 더 많은 원격 객체 참조를 전달 및 반환 할 수 있으므로 훨씬 강력합니다. .

RMI는 순수한 클라이언트-서버 아키텍처보다 복잡한 것을 개발해야 할 때 두드러집니다. 네트워크를 통해 개체를 분산시키는 것은 매우 쉽습니다. 개별 클라이언트를 명시 적으로 연결하지 않고도 모든 클라이언트가 통신 할 수 있습니다.


답변

RPC와 RMI의 주요 차이점은 RMI에 개체가 포함 되어 있다는 입니다 . 프록시 함수 를 사용하여 원격으로 프로 시저를 호출하는 대신 프록시 객체 를 사용 합니다 .

기술이 언어에 통합됨에 따라 객체, 참조, 상속, 다형성 및 예외의 악용으로 인해 RMI에는 더 큰 투명성이 있습니다.

RMI는 RPC보다 고급 기능이므로 런타임에 인터페이스를 변경할 수있는 동적 호출 및 추가 추상화 계층을 제공하는 객체 적응 을 허용합니다.


답변

1. 접근 :

RMI는 사용자가 객체와 호출해야하는 객체의 방법을 알아야하는 객체 지향 패러다임을 사용합니다.

RPC는 객체를 다루지 않습니다. 오히려 이미 설정된 특정 서브 루틴을 호출합니다.

2. 일 :

RPC를 사용하면 로컬 호출과 매우 유사한 프로 시저 호출을 얻을 수 있습니다. RPC는 호출을 로컬에서 원격 컴퓨터로 전달하는 것과 관련된 복잡성을 처리합니다.

RMI도 똑같은 일을하지만 RMI는 호출되는 객체와 메소드에 대한 참조를 전달합니다.

RMI = RPC + 객체 지향

3. 더 나은 것 :

RMI는 RPC와 비교하여 더 나은 접근 방식이며, 특히 큰 프로그램에서는 문제가 발생했을 때 쉽게 식별 할 수있는보다 명확한 코드를 제공하기 때문에 더 큰 프로그램에서 더 좋습니다.

4. 시스템 예 :

RPC 시스템 :
SUN RPC, DCE RPC

RMI 시스템 :
Java RMI, CORBA, Microsoft DCOM / COM +, SOAP (Simple Object Access Protocol)


답변

RPC (원격 프로 시저 호출) 는 로컬 또는 원격 컴퓨터에있는 다른 프로세스에서 함수를 호출 할 수있는 프로세스 간 통신입니다.

RMI (Remote Method Invocation) 는 객체 지향 패러다임을 지원하여 Java에서 RPC를 구현하는 API입니다.

  1. RPC 호출은 C 프로 시저 호출과 같습니다. RPC는 RMI가 메소드 매개 변수 / 반환 유형을 Java 오브젝트로 지원하는 기본 데이터 유형을 지원합니다.

  2. RMI는 RPC와 달리 프로그래밍하기 쉽습니다. 일련의 기본 데이터 유형 대신 오브젝트 측면에서 비즈니스 로직을 생각할 수 있습니다.

  3. RPC는 Java로 제한되는 RMI와 달리 언어 중립적입니다

  4. RMI는 RPC보다 약간 느립니다.

C의 RPC 구현에 대한 이 기사 를 살펴보십시오.


답변

RMI 또는 원격 메소드 Invokation은 서버에 모두 전송 프록시 객체 (또는 스텁)는 그러나 미묘한 차이가 클라이언트 측 RPC의 발동이다 RPC 또는 클라이언트에서 원격 프로 시저 호출과 매우 유사 기능 프록시 기능을 통해 RMI는 호출 방법
스루를 프록시 기능. RMI는 RPC 의 객체 지향 버전 이므로 약간 우수하다고 간주됩니다 .

에서 여기 .

자세한 내용과 예는 여기를 참조하십시오 .


답변

RPC와 RMI의 유일한 차이점은 RMI와 관련된 개체가 있다는 것입니다. 프록시 함수를 통해 함수를 호출하는 대신 프록시를 통해 메서드를 호출합니다.


답변

RMI와 RPC의 차이점은 다음과 같습니다.

  • 이름으로 RMI 는 원격 메소드 호출을 나타냅니다. 메소드 또는 오브젝트를 호출합니다. 과
  • RPC 함수를 호출합니다.