분산 시스템에서 소프트웨어를 구현하는 한 가지 방법은 원시 네트워킹 지원을 사용하는 것입니다. 이 방법은 소켓, 명명된 파이프 또는 HTTP POST, GET 등을 포함합니다. 이러한 모든 모델은 개발자가 NDR(네트워크 데이터 표현), 데이터 패키징, 네트워크 트래픽 및 오류 조건 관리, 데이터 무결성 보호 및 암호화 등을 처리하도록 하는 하위 수준 프로그래밍 기본 형식을 사용해야 합니다.
RPC는 개발자가 풍부한 API를 통해 클라이언트와 서버 간의 네트워크 상호 작용을 세밀하게 제어하는 프로그래밍 모델을 제공하며, 분산 시스템이 도입하는 경향이 있는 세부 정보 및 부담으로부터 개발자를 절약할 수 있습니다.
예를 들어 분산 시스템에서 메시지 교환의 무결성 및 개인 정보를 보호하기 위한 다양한 접근 방식과 관련된 부담을 고려합니다. 패킷 교환에 대한 네트워크 보안을 고려할 때 일부 보호는 약하고 일부는 더 강력합니다. 진정한 네트워크 보안은 없으며 다양한 패킷 기반 보안 메커니즘만 있습니다. 호출자를 식별하는 보안(패킷 콘텐츠는 전송 중에 종종 변경될 수 있으므로 약한 경향이 있음), 개인 정보를 보호하지 않고 패킷의 무결성을 보호하는 보안(다양한 서명 및 해시), 메시지 교환의 개인 정보 보호 보안(다양한 암호화 메커니즘).
보안 분산 시스템을 구현하는 또 다른 부담은 암호화, 서명, 인증 등과 같은 보안 기본 형식을 구현하는 데 필요한 알고리즘입니다. 개발자는 이러한 알고리즘을 구현할 수 있지만 결과 알고리즘에 미묘한 보안 결함이 있는 경우가 많기 때문에 어렵고 오류가 발생하기 쉽고 위험하기도 합니다. 또는 개발자가 사용 가능한 보안 공급자를 사용하여 분산 시스템 내의 네트워크 상호 작용에 대한 보호를 구현할 수 있습니다.
RPC를 사용하면 이러한 두 가지 부담이 모두 매우 쉽게 해결됩니다. 개발자는 RPC에 사용할 보안 패키지와 메시지 교환에 적용해야 하는 보안 보호(인증, 암호화, 상호 인증, 발신자 ID 추적 등)를 알려야 합니다. RPC는 효율적인 방식으로 백그라운드에서 모든 세부 정보를 처리하지만, 개발자가 데이터를 보호하는 방법을 정확하게 제어할 수 있도록 합니다.