답변:
RPC는 C 기반이며, 구조화 된 프로그래밍 의미론을 가지고있는 반면, RMI는 Java 기반 기술이며 객체 지향적입니다.
RPC를 사용하면 서버로 내 보낸 원격 함수를 호출 할 수 있습니다. RMI에서는 원격 객체에 대한 참조를 보유하고 해당 메소드를 호출 할 수 있으며 많은 JVM 인스턴스간에 분산 될 수있는 더 많은 원격 객체 참조를 전달 및 반환 할 수 있으므로 훨씬 강력합니다. .
RMI는 순수한 클라이언트-서버 아키텍처보다 복잡한 것을 개발해야 할 때 두드러집니다. 네트워크를 통해 개체를 분산시키는 것은 매우 쉽습니다. 개별 클라이언트를 명시 적으로 연결하지 않고도 모든 클라이언트가 통신 할 수 있습니다.
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입니다.
RPC 호출은 C 프로 시저 호출과 같습니다. RPC는 RMI가 메소드 매개 변수 / 반환 유형을 Java 오브젝트로 지원하는 기본 데이터 유형을 지원합니다.
RMI는 RPC와 달리 프로그래밍하기 쉽습니다. 일련의 기본 데이터 유형 대신 오브젝트 측면에서 비즈니스 로직을 생각할 수 있습니다.
RPC는 Java로 제한되는 RMI와 달리 언어 중립적입니다
RMI는 RPC보다 약간 느립니다.
C의 RPC 구현에 대한 이 기사 를 살펴보십시오.
RMI 또는 원격 메소드 Invokation은 서버에 모두 전송 프록시 객체 (또는 스텁)는 그러나 미묘한 차이가 클라이언트 측 RPC의 발동이다 RPC 또는 클라이언트에서 원격 프로 시저 호출과 매우 유사 기능 프록시 기능을 통해 RMI는 호출 방법 스루를 프록시 기능. RMI는 RPC 의 객체 지향 버전 이므로 약간 우수하다고 간주됩니다 .
에서 여기 .
자세한 내용과 예는 여기를 참조하십시오 .
RPC 는 C를 기반으로하는 오래된 프로토콜로, 원격 프로 시저를 호출하여 로컬 호출처럼 보이게 할 수 있습니다. RPC 는 해당 원격 호출을 서버로 전달하고 결과를 클라이언트로 가져 오는 복잡성을 처리합니다.
Java RMI 도 같은 일이지만 약간 다르게 달성합니다. 원격 객체에 대한 참조를 사용 합니다. 따라서 호출하는 메소드의 이름과 함께 원격 객체에 대한 참조를 보냅니다. 대규모 프로그램의 경우 코드 및 네트워크를 통한 객체 배포의 경우 여러 클라이언트가 각 연결을 개별적으로 설정하는 대신 서버에서 메서드를 호출 할 수 있습니다.
RMI
자바gRPC
에서 .Net 과 같은 것 같아요 ...