RMI

참고 : 소설같은 자바2

RMI(Remote Method Invocation)

  • 네트워크의 신뢰성과 안정성 보장
  • 원격지에 존재하는 객체의 메서드 호출
  • 원격지에 존재하는 메서드의 매개변수 및 반환값은 직렬화 기법으로 처리

RPC(Remote Procedure Call)의 종류 


RMI Registry
원격 객체를 관리하고 서비스하는 원격 객체 컨테이너
RMI Registry에 Binding은 원격 객체 등록하는 과정이고 등록시 객체를 식별할 수 있는 식별자와 함께 등록해야 한다.

호출 순서

  • 클라이언트 프로그램에서 RMI Registry에 등록되어 있는 원격 객체를 검색한다.(룩업이라고 함)
  • 룩업은 바인딩 과정에서 바인딩시 등록한 식별자를 이용한다.
  • 록업을 하면 RMI Register는 원격 참조 객체를 클라이언트로 전송한다.
  • 클라이언트는 원격 참조 객체(가짜객체)를 이용하여 원격 객첼의 메서드를 호출한다.

서버 작업
  • 실제 업무를 수행할 메서드를 포함하고 있는 원격 객체 생성
  • RMI Registry에 원격 객체 등록
  • 클라이언트가 서버에 요청하면 원격 객체를 참조할 수 있는 원격 참조 객체를 넘겨 준다.

클라이언트 작업
  • 서버에게 자신이 사용하려는 메서드를 가진 원격 객체의 참조 객체를 요청(룩업)
  • 서버로부터 원격 참조 객체를 받음
  • 원격 참조 객체를 사용해서 메소드 호출
  • 원격 참조 객체를 프록시 객체라고 부름

바인딩 작업
  • 원격 interface의 작성 (Remote interface 상속)
  • 원격 interface와 UnicastRemoteObject를 상속한 클래스 작성
  • 원격 객체 생성
스텁(Stub)클래스 (원격 참조 객체 만들기 위함)
  • rmic.exe 툴을 사용해서 생성
  • 스텁 클래스의 객체는 원격 참조 객체가 된다.





댓글

이 블로그의 인기 게시물

Spring Batch - JobParameters Default Value 만들기

Hsqldb Server 재기동 시 오류