Upload
zena-odonnell
View
32
Download
4
Embed Size (px)
DESCRIPTION
chapter 02 : RMI 개요. 학습목표. RMI 개요 RMI Architecture RMI 작성 방법 RMI 실습 예제. RMI 개요. 정의 RMI ( Remote Method Invocation ) 원격지의 메소드를 로컬의 메소드 처럼 호출할 수 있는 분산기술 . 분산되어 존재하는 객체간의 통신이 가능한 분산기술 . 자바의 RMI 기술을 포함한 포괄적인 분산기술 . ( CORBA , DCOM 등 ). 특징 소켓통신의 번거로움을 해결할 수 있다 . - PowerPoint PPT Presentation
Citation preview
chapter 02chapter 02 : :
RMI RMI 개요개요
학습목표학습목표
RMI RMI 개요 개요
RMI ArchitectureRMI Architecture
RMI RMI 작성 방법작성 방법
RMI RMI 실습 예제실습 예제
RMI RMI 개요개요
정의정의
RMI ( RMI ( Remote Method Invocation )Remote Method Invocation )
원격지의 메소드를 로컬의 메소드 처럼 호출할 수 있는원격지의 메소드를 로컬의 메소드 처럼 호출할 수 있는
분산기술분산기술 ..
분산되어 존재하는 객체간의 통신이 가능한 분산기술분산되어 존재하는 객체간의 통신이 가능한 분산기술 ..
자바의 자바의 RMI RMI 기술을 포함한 포괄적인 분산기술기술을 포함한 포괄적인 분산기술 ..
( CORBA , DCOM ( CORBA , DCOM 등 등 ) )
특징특징
소켓통신의 번거로움을 해결할 수 있다소켓통신의 번거로움을 해결할 수 있다 ..
EJB ( Enterprise JavaBeans )EJB ( Enterprise JavaBeans ) 의 기반기술이다의 기반기술이다 ..
직렬화 직렬화 ( Serializable ) ( Serializable )
JNDI ( Java Naming & Directory Interface )JNDI ( Java Naming & Directory Interface )
RMI ArchitectureRMI Architecture
Client Server
JNDI 을 이용한 Name Server
1: 자원등록 ( Binding )
2: 자원검색 ( Lookup )
3: 자원응답
4: 서버 메소드 호출
5: 메소드 실행
6: 메소드 실행 결과 응답
RMI RMI 실습 순서실습 순서
1. 1. 소스 작성소스 작성 ..
2. 2. 소스 컴파일소스 컴파일 ..
3. RMI 3. RMI 컴파일컴파일 ..
4. rmiregistry 4. rmiregistry 실행실행 ..
5. 5. 서버 실행서버 실행 ..
6. 6. 클라이언트 실행클라이언트 실행 ..
RMI RMI 실습실습
RMI RMI 실습 실습 - - 소스작성소스작성
소스 작성소스 작성 인터페이스 작성인터페이스 작성 ..
인터페이스를 구현한 클래스 작성 인터페이스를 구현한 클래스 작성 ( servant , ( servant , 원격객체 원격객체 ). ).
서버 클래스 작성서버 클래스 작성 ..
클라이언트 클래스 작성클라이언트 클래스 작성 ..
인터페이스 사용하는 이유인터페이스 사용하는 이유 클라이언트에서 객체 의존도를 낮추기 위함 클라이언트에서 객체 의존도를 낮추기 위함 ( loose coupling)( loose coupling)
client server
AA
client serverA
A’A’
(tight coupling) (loose coupling)
인터페이스 작성인터페이스 작성
java.rmi.Remote java.rmi.Remote 인터페이스를 상속 받는다인터페이스를 상속 받는다 ..
선언된 모든 메소드는 선언된 모든 메소드는 RemoteExceptionRemoteException 를 를 throws throws 한다한다 ..
RMI RMI 실습 실습 - - 소스작성소스작성
servant servant 작성작성
선언된 인터페이스를 구현한다선언된 인터페이스를 구현한다 ..
java.rmi.server.UnicastRemoteObject java.rmi.server.UnicastRemoteObject 클래스를 상속한다클래스를 상속한다 ..
인자없는 생성자는 반드시 인자없는 생성자는 반드시 RemoteExceptionRemoteException 를 를 throws throws 한다한다 ..
RMI RMI 실습 실습 - - 소스작성소스작성
서버 프로그램 작성서버 프로그램 작성servant servant 객체 생성객체 생성 ..
Name ServerName Server 에 에 Binding.Binding.
클라이언트 프로그램 작성클라이언트 프로그램 작성
servant servant 객체 객체 Lookup.Lookup.
서버 메소드 호출서버 메소드 호출 ..
RMI RMI 실습 실습 - - 소스작성소스작성
소스 컴파일 소스 컴파일
javac *.javajavac *.java
RMI RMI 실습 – 소스 컴파일실습 – 소스 컴파일
RMI RMI 컴파일 컴파일
rmic.exe rmic.exe 명령어로 명령어로 servantservant 를 컴파일 한다를 컴파일 한다 ..
servantservant 이름이름 _Stub.class _Stub.class 파일이 생성된다파일이 생성된다 ..
RMI RMI 실습 – 실습 – RMI RMI 컴파일컴파일
Name Server Name Server 실행 실행
자바 자바 RMIRMI 는 는 rmiregistry rmiregistry 라는 라는 Name ServiceName Service 를 를 사용한다사용한다 ..
RMI RMI 실습 – 실습 – Name server Name server 실행실행
Server Server 실행 실행
Client Client 실행 실행
RMI RMI 실습 실습 ArchitectureArchitecture
EchoClientEchoServer
rmiregistry
1: servant 등록 ( Binding )
2: servant 검색 ( Lookup )
3: 자원응답
4: 서버 메소드 호출
5: 메소드 실행
6: 메소드 실행 결과 응답
Echo
EchoImpl
RMI RMI 실습 실습 ArchitectureArchitecture
EchoClientEchoServer
rmiregistry
1: servant 등록 ( Binding )
2: servant 검색 ( Lookup )
3: 자원응답
4: 서버 메소드 호출
5: 메소드 실행
6: 메소드 실행 결과 응답
Echo
EchoImpl
servant servant 가 가 UnicastRemoteObjectUnicastRemoteObject 를 상속받지 않은 경우를 상속받지 않은 경우 ..
UnicastRemoteObject.exportObject() UnicastRemoteObject.exportObject() 메소드를 이용한다메소드를 이용한다 ..
RMI RMI 실습 – 실습 – UnicastRemoteObject.exportObject() UnicastRemoteObject.exportObject() 메소드메소드
stub stub 기능기능
저수준의 네트워킹 작업과 저수준의 네트워킹 작업과 I/O I/O 역할을 담당한다역할을 담당한다 ..
전송되는 객체들의 직렬화 작업과 역직렬화 작업을 한다전송되는 객체들의 직렬화 작업과 역직렬화 작업을 한다 ..
직렬화 직렬화 : Marshalling: Marshalling
역직렬화 역직렬화 : unMashalling: unMashalling
원격객체 전송과 관련된원격객체 전송과 관련된 대리인 역할을 담당한다대리인 역할을 담당한다 ..
stubstub
EchoClientEchoServer
rmiregistry
stubstub
stub
폴더별 폴더별 RMI RMI 실습실습
폴더별 폴더별 RMI RMI 실습실습
C:\rmi\client>EchoClient.class Echo.class EchoImpl_Stub.class
C:\rmi\server>EchoServer.class Echo.class
EchoImpl.class EchoImpl_Stub.class
rmiregistry
C:\rmi\registry>Echo.class EchoImpl_Stub.class
공부한 내용공부한 내용
RMI RMI 개요개요
RMI ArchitectureRMI Architecture
RMI RMI 실습실습
스텁 스텁 ( Stub ) ( Stub )