728x90
반응형

클라이언트-서버(분산 시스템) 환경에서의 통신

  • 소켓 (Sockets)
  • 원격 프로시저 호출 (RPC: Remote Procedure Calls)
  • 원격 메소드 호출 (RMI: Remote Method Invocation(Java))

 


소켓 (Sockets)

소켓 (Socket)을 사용한 통신

 

 

프로세스간 데이터를 교환하는 통신 Endpoint
  • 두 프로세스가 통신하기 위해서는 프로세스마다 하나씩, 총 2개의 소켓(Sockets)이 필요
  • 모든 통신은 유일(Unique)함
    • 모든 연결마다 유일한 소켓 쌍 사용
  • 효율적이지만 너무 낮은 수준(Low-level)

 

소켓 ID

IP주소(IP Address) + 포트(Port) 번호

ex) 소켓 ID: 161.25.19.8:1625   →   IP주소: 161.25.19.8, Port번호: 1625


원격 프로시저 호출 (RPC: Remote Procedure Calls)

RPC 실행 과정 (Mach)

 

별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있게하는 프로세스 간 통신 기술
  • 절차적인 언어에서 사용
  • Client가 원격지 프로시저를 호출하는 것을 마치 자신의 프로시저를 호출하는 것처럼 처리해줌
  • 스터브(Stub) 사용
    • 스터브(Stub): 나중에 적재되거나 원격지에 위치해 있는 큰 프로그램을 대리하기 위한 프로그램 루틴
    • 포트(Port)를 알아내고, 파라미터마샬링(Marshalling)
파라미터 마샬링 (Parameter Marshalling)
: 프로시저에게 전송할 파라미터 를 네트워크로 전송 or 저장 하기 위해서, 적절한 형태로 재구성하는 작업

원격 메소드 호출 (RMI: Remote Method Invocation)

프로시저 마샬링

‘자바’가 제공하는 RPC기능,
쓰레드’로 하여금  ‘원격 객체’에 있는 ‘메소드’를 호출 할 수 있게 함

 

RPC와 차이점

  • 객체 기반, ‘객체’ 자체를 원격 메소드에 파라미터로 전달해 줄 수 있음
  • JVM환경에서 실행, XDR(eXternal Data Representation)과 같이, 다른 시스템 간에 이식 가능한 형태로 데이터를 코드화는 표준 방법을 필요로 하지 않음
  • Java Compiler는 byte code를 내뱉기 때문

 

장점

  • 구현이 쉬움
  • 신뢰성 높음
  • 자바 기반

 

 

728x90
반응형
HaSeon9