2013년 10월 21일 월요일

원격 객체와 Stub

원격 객체와 Stub

 RMI 클라이언트는 원격 객체의 원격 메소드 만을 호출 할 수 있으며 이 호출을 위해 실제의 원격객체에 대한 참조 대신 원격 객체의 stub reference를 이용한다고 하였다. 이는 곧 원격객체가 구현한 모든 원격메소드를 원격객체에 대한 stub 객체도 함께 가지고 있다는 것을 의미 한다.(물론 동일 한 것은 아니다.)
앞서 작성한 “Hello World”의 경우 HelloImpl은 원격 인터페이스 Hello를 구현한 원격 객체 클래스 이며 이를 통해 rmic를 통해 작성된 HelloImpl_stub 역시 HelloImpl과 동일한 Hello를 구현 한 클래스 이다.
 
 
 
 
앞서 작성한 “Hello World”의 클라이언트 ApplicationHelloClient.java를 살펴보면 lookup 메소드를 통해 Return되는 실제 객체는 HelloRemote라는 이름으로 등록된 원격객체 HelloImpl 객체에 대한 stubHelloImpl_stub 객체가 Return 될 것이다.
또한 stub reference renoteObjHello로 캐스팅 가능한 이유는 remoteObj가 참조하는 stub 객체인 HelloImpl_stubHello 인터페이스를 구현 했기 때문이다.
javap HelloImpl_stub 명령을 통해 stub 객체의 메소드를 확인하는 것은 가능하다.

댓글 없음:

댓글 쓰기