1 / 21

chapter 02 : RMI 개요

chapter 02 : RMI 개요. 학습목표. RMI 개요 RMI Architecture RMI 작성 방법 RMI 실습 예제. RMI 개요. 정의 RMI ( Remote Method Invocation ) 원격지의 메소드를 로컬의 메소드 처럼 호출할 수 있는 분산기술 . 분산되어 존재하는 객체간의 통신이 가능한 분산기술 . 자바의 RMI 기술을 포함한 포괄적인 분산기술 . ( CORBA , DCOM 등 ). 특징 소켓통신의 번거로움을 해결할 수 있다 .

Download Presentation

chapter 02 : RMI 개요

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. chapter 02 : RMI 개요

  2. 학습목표 • RMI 개요 • RMI Architecture • RMI 작성 방법 • RMI 실습 예제

  3. RMI 개요 • 정의 • RMI ( Remote Method Invocation ) • 원격지의 메소드를 로컬의 메소드 처럼 호출할 수 있는 • 분산기술. • 분산되어 존재하는 객체간의 통신이 가능한 분산기술. • 자바의 RMI 기술을 포함한 포괄적인 분산기술. • ( CORBA , DCOM 등 ) • 특징 • 소켓통신의 번거로움을 해결할 수 있다. • EJB ( Enterprise JavaBeans )의 기반기술이다. • 직렬화 ( Serializable ) • JNDI ( Java Naming & Directory Interface )

  4. JNDI을 이용한 Name Server 1: 자원등록 ( Binding ) 2: 자원검색 ( Lookup ) 3: 자원응답 Client 4: 서버 메소드 호출 Server 6: 메소드 실행 결과 응답 5: 메소드 실행 • RMI Architecture

  5. RMI 실습 순서 • 1. 소스 작성. • 2. 소스 컴파일. • 3. RMI 컴파일. • 4. rmiregistry 실행. • 5. 서버 실행. • 6. 클라이언트 실행.

  6. RMI 실습

  7. A’ A A A’ client server client server A • RMI 실습 - 소스작성 • 소스 작성 • 인터페이스 작성. • 인터페이스를 구현한 클래스 작성 ( servant , 원격객체 ). • 서버 클래스 작성. • 클라이언트 클래스 작성. • 인터페이스 사용하는 이유 • 클라이언트에서 객체 의존도를 낮추기 위함 ( loose coupling) (tight coupling) (loose coupling)

  8. RMI 실습 - 소스작성 • 인터페이스 작성 • java.rmi.Remote 인터페이스를 상속 받는다. • 선언된 모든 메소드는 RemoteException를 throws 한다.

  9. RMI 실습 - 소스작성 • servant 작성 • 선언된 인터페이스를 구현한다. • java.rmi.server.UnicastRemoteObject 클래스를 상속한다. • 인자없는 생성자는 반드시 RemoteException를 throws 한다.

  10. RMI 실습 - 소스작성 • 서버 프로그램 작성 • servant 객체 생성. • Name Server에 Binding. • 클라이언트 프로그램 작성 • servant 객체 Lookup. • 서버 메소드 호출.

  11. RMI 실습 –소스 컴파일 • 소스 컴파일 • javac *.java

  12. RMI 실습 – RMI 컴파일 • RMI 컴파일 • rmic.exe 명령어로 servant를 컴파일 한다. • servant이름_Stub.class 파일이 생성된다.

  13. RMI 실습 – Name server 실행 • Name Server 실행 • 자바 RMI는 rmiregistry 라는 Name Service를 사용한다. • Server 실행 • Client 실행

  14. rmiregistry 1: servant 등록 ( Binding ) 2: servant 검색 ( Lookup ) 3: 자원응답 Echo 4: 서버 메소드 호출 EchoImpl EchoClient EchoServer 6: 메소드 실행 결과 응답 5: 메소드 실행 • RMI 실습 Architecture

  15. rmiregistry Echo EchoImpl EchoClient EchoServer • RMI 실습 Architecture 1: servant 등록 ( Binding ) 2: servant 검색 ( Lookup ) 3: 자원응답 4: 서버 메소드 호출 6: 메소드 실행 결과 응답 5: 메소드 실행

  16. RMI 실습 – UnicastRemoteObject.exportObject() 메소드 • servant 가 UnicastRemoteObject를 상속받지 않은 경우. • UnicastRemoteObject.exportObject() 메소드를 이용한다.

  17. rmiregistry EchoClient EchoServer stub stub stub • stub • stub 기능 • 저수준의 네트워킹 작업과 I/O 역할을 담당한다. • 전송되는 객체들의 직렬화 작업과 역직렬화 작업을 한다. • 직렬화 : Marshalling • 역직렬화 : unMashalling • 원격객체 전송과 관련된대리인 역할을 담당한다.

  18. 폴더별 RMI 실습

  19. C:\rmi\registry>Echo.class EchoImpl_Stub.class rmiregistry C:\rmi\client>EchoClient.class Echo.class EchoImpl_Stub.class C:\rmi\server>EchoServer.class Echo.class EchoImpl.class EchoImpl_Stub.class • 폴더별 RMI 실습

  20. 공부한 내용 • RMI 개요 • RMI Architecture • RMI 실습 • 스텁 ( Stub )

More Related