Young

RPC (Remote Procedure Call) 본문

Web

RPC (Remote Procedure Call)

yyjjang9 2020. 9. 30. 18:18
728x90
반응형

1. 왜 RPC 개념이 나왔는가?

분산 네트워크 환경에서 편하게 프로그래밍하기 위해 등장.

 

 

2. RPC 어떻게 편한가?

  • client-server 간의 커뮤니케이션에 필요한 네트워크 관련 코딩 및 지식은 최대한 감춤.
  • client 와 server 모두 일반적인 함수를 호출하는 것처럼 호출, 따라서 일반 Procedure Call 과 같이 requesting program 에 결과가 리턴될 때까지 정지(지연) 됨.

 

3. RPC 에 대하여

운영체제를 공부하다 보며 프로세스간 통신을 위해 IPC(Inter-Process Communication)을 이용하는 내용을 볼 수 있는데, IPC 의 한 종류.

 

네트워크에 대한 자세한 이해와 코딩 없이 사용 중인 프로그래밍 언어를 통해 다른 주소 공간 또는 원격 컴퓨터 (보통의 경우 원격 컴퓨터가 대상) 의 procedure 실행을 요청할 때 사용하는 프로토콜.

 

RPC 모델은 분산컴퓨팅 환경에서 많이 사용되어옴.

현재에는 MSA(Micro Software Archtecture)에서 마이크로 서비스간에도 많이 사용되는 방식.

서비스간의 프로시저 호출을 가능하게 해줌에 따라 언어나 환경에 구애받지 않고 확장이 가능하며, 비지니스 로직에 집중하여 생산성을 증가시킬 수 있음.

 

 

 

 

 

 

 

(1) 우선 IDL(Interface Definition Language)를 통해 호출에 대한 인터페이스를 정의합니다.

(2) IDL에 의해 정의된 인터페이스는 client의 stub과 server의 skeleton 생성의 기반이 되며, rcpgen(유틸리티)를 통해 각각의 stub과 skeleton을 생성합니다.

(3) 클라이언트는 리모트의 프로시저를 사용하기 위해 설계된 스텁의 프로시저를 호출하고, 프로시저 호출에 필요한 인자와 비지니스에 로직에 필요한 메소드를 호출합니다.

(4) 스텁은 서버가 이해할 수 있는 형태로 데이터의 캐스팅 진행하고, 서버 측 RPC로 호출을 진행합니다.

(5) 서버는 수신된 호출에 대한 데이터를 처리합니다.

(6) 서버측 RPC 프로토콜은 처리된 데이터를 캐스팅하여 클라이언트로 응답합니다.

 

 

 

4. RPC의 대표적인 구현체

 

728x90
반응형

'Web' 카테고리의 다른 글

HTTP 란?  (0) 2020.10.04
HTTP, TCP, IP 란?  (0) 2020.10.04
reactive  (0) 2020.10.01
gRPC  (0) 2020.10.01
TCP / IP  (0) 2019.12.14