728x90
반응형
클라이언트-서버(분산 시스템) 환경에서의 통신
- 소켓 (Sockets)
- 원격 프로시저 호출 (RPC: Remote Procedure Calls)
- 원격 메소드 호출 (RMI: Remote Method Invocation(Java))
소켓 (Sockets)
프로세스간 데이터를 교환하는 통신 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)
별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있게하는 프로세스 간 통신 기술
- 절차적인 언어에서 사용
- Client가 원격지 프로시저를 호출하는 것을 마치 자신의 프로시저를 호출하는 것처럼 처리해줌
- 스터브(Stub) 사용
- 스터브(Stub): 나중에 적재되거나 원격지에 위치해 있는 큰 프로그램을 대리하기 위한 프로그램 루틴
- 포트(Port)를 알아내고, 파라미터를 마샬링(Marshalling) 함
파라미터 마샬링 (Parameter Marshalling)
: 프로시저에게 전송할 파라미터 를 네트워크로 전송 or 저장 하기 위해서, 적절한 형태로 재구성하는 작업
원격 메소드 호출 (RMI: Remote Method Invocation)
‘자바’가 제공하는 RPC기능,
쓰레드’로 하여금 ‘원격 객체’에 있는 ‘메소드’를 호출 할 수 있게 함
RPC와 차이점
- 객체 기반, ‘객체’ 자체를 원격 메소드에 파라미터로 전달해 줄 수 있음
- JVM환경에서 실행, XDR(eXternal Data Representation)과 같이, 다른 시스템 간에 이식 가능한 형태로 데이터를 코드화는 표준 방법을 필요로 하지 않음
- → Java Compiler는 byte code를 내뱉기 때문
장점
- 구현이 쉬움
- 신뢰성 높음
- 자바 기반
728x90
반응형
'Computer Science > Operating System' 카테고리의 다른 글
[OS] 멀티코어 프로그래밍 (Multicore Programming), 병렬 실행(Parallelism) (0) | 2024.05.01 |
---|---|
[OS] 스레드(Thread)란? (1) | 2024.05.01 |
[OS] 파이프(Pipe)란? 일반 파이프(Ordinary Pipes), 지명 파이프(Named Pipes) (0) | 2024.04.29 |
[OS] 메세지 전달(Message Passing)이란? (0) | 2024.04.29 |
[OS] 프로세스간 통신 (Cooperating Processes) (0) | 2024.04.29 |