RMI(Remote Method Invocation)
RPC(Remote Procedure Call)를 객체지향으로 구현한 것, 흔히 JAVA버전으로 알려져 있다.서버와 클라이언트 측 모두 Helper가 필요하며 서버 측 Helper가 Skeleton, 클라이언트 측 Helper가 Stub이다.
Stub
원격지에 위치해있는 프로그램을 대리하는 작은 루틴. RPC(혹은 RMI)를 사용하는 프로그램이 컴파일되면 요청된 절차를 제공하는 프로그램의 대역을 한다.클라이언트에서 작업을 요청하는 데이터를 Marshaling하고 작업이 완료된 데이터를 다시 UnMarshaling하는 역할
클라이언트 보조 객체가 Stub이고 서버 보조객체가 Skeleton이다.
Skeleton
Stub와 비슷한 역할로 서버의 보조 객체이다.클라이언트의 Stub에서 데이터가 Marshaling되어 전송되면 Skeleton에서 UnMarshaling하여 원래의 형태로 복원한다.
Marshaling / UnMarshaling
Marshaling은 데이터를 바이트로 쪼개서 TCP/IP같은 통신 채널을 통해 전송될 수 있는 형태로 바꿔주는 과정
UnMarshaling은 반대로 전송 받은 바이트를 원래의 형태로 복원하는 과정
Routine
어떤 프로그램이 실행될 때 불려지거나 반복해서 사용되도록 만들어진 일력의 코드