스텁(Stub)과 스켈레톤(Skeleton)


스텁은 객체 그 자체와 동일한 비즈니스 메소드를 가진 인터페이스를 구현하지만, 스텁의 메소드는 비즈니스 로직 자체를 담고있지는 않으며, 클라이언트가 스텁의 비즈니스 메소드를 호출하면 호출된 메소드 명과 매개변수로 전달된 값들이 스트림 형태로 네트워크를 통해 스켈레톤에 전달된다.


해당 스트림을 스켈레톤이 받게 되면 스켈레톤은 스트림을 분석하여 어떤 메소드가 요청되었는지를 파악하고, 서버에 있는 객체의 비즈니스 메소드를 호출하게 된다. 메소드의 실행 결과값은 다시 스켈레톤에 의해 스텁으로 전달되며, 스텁은 마치 해당 비즈니스 로직을 로컬 컴퓨터에서 처리한 것처럼 클라이언트 애플리케이션에 결과값을 전달한다.


짐작하겠지만, 이 과정은 네트웍을 통한 자료교환을 포함하므로, 로칼에서의 메소드 콜보다는 훨씬 많은 시간을 소모한다. 따라서 원거리 호출의 횟수를 줄이는 것은 수행성능 향상을 위해 반드시 고려되어야 할 사항이다.


아래 그림은 Java RMI를 이용하였을 경우의 클라이언트 측의 스텁과 서버측의 스켈레톤의 형상을 보여주고 있다.


 

'old > Mobile' 카테고리의 다른 글

포트(Port) 개념잡기  (0) 2010.05.10
소켓통신 (TCP 통신과 UDP 통신 비교)  (0) 2010.05.10
Vcard 타입과 Vcalendar 타입  (0) 2010.05.10
OSI 7계층 개념잡기  (0) 2010.05.10
인코딩과 디코딩  (0) 2010.05.10
Posted by jazzlife
,