RMI는 원격 메소드 호출을 나타냅니다. . 한 시스템(JVM)에 상주하는 객체가 다른 JVM에서 실행 중인 객체에 액세스/호출할 수 있도록 하는 메커니즘입니다.
RMI는 분산 애플리케이션을 구축하는 데 사용됩니다. Java 프로그램 간의 원격 통신을 제공합니다. java.rmi 패키지에 제공됩니다. .
RMI Java 애플리케이션을 작성하려면 다음 단계를 따라야 합니다. -
Step1 - 원격 인터페이스 정의
원격 인터페이스는 특정 원격 개체의 모든 메서드에 대한 설명을 제공합니다. 클라이언트는 이 원격 인터페이스와 통신합니다. 따라서 미리 정의된 인터페이스인 java.rmi를 확장하는 인터페이스를 만들어야 합니다.Remote .
예시
import java.rmi.Remote; import java.rmi.RemoteException; public interface Hello extends Remote { void printMsg() throws RemoteException; }
2단계 - 구현 클래스 개발(원격 개체)
이전 단계에서 만든 원격 인터페이스를 구현해야 합니다. (구현 클래스를 별도로 작성하거나 서버 프로그램이 이 인터페이스를 구현하도록 직접 만들 수 있습니다.) 따라서 원격 인터페이스의 모든 추상 메소드에 구현을 제공하십시오.
예시
public class ImplExample implements Hello { public void printMsg() { System.out.println("This is an example RMI program"); } }
3단계 − 서버 프로그램 개발
RMI 서버 프로그램은 원격 인터페이스를 구현하거나 구현 클래스를 확장해야 합니다. 여기에서 원격 개체를 만들고 RMI 레지스트리에 바인딩해야 합니다. . 따라서 아래와 같이 서버 프로그램을 개발하십시오 -
예시
import java.rmi.registry.Registry; import java.rmi.registry.LocateRegistry; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; public class Server extends ImplExample { public Server() {} public static void main(String args[]) { try { ImplExample obj = new ImplExample(); Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0); Registry registry = LocateRegistry.getRegistry(); registry.bind("Hello", stub); System.err.println("Server ready"); } catch (Exception e) { System.err.println("Server exception: " + e.toString()); e.printStackTrace(); } } }
4단계 − 클라이언트 프로그램 개발
그 안에 클라이언트 프로그램을 작성하고 원격 개체를 가져오고 이 개체를 사용하여 필요한 메서드를 호출합니다.
예시
import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; public class Client { private Client() {} public static void main(String[] args) { try { Registry registry = LocateRegistry.getRegistry(null); Hello stub = (Hello) registry.lookup("Hello"); stub.printMsg(); } catch (Exception e) { System.err.println("Client exception: " + e.toString()); e.printStackTrace(); } } }
5단계 - 애플리케이션 컴파일
응용 프로그램을 컴파일하려면 -
-
원격 인터페이스를 컴파일합니다.
-
구현 클래스를 컴파일합니다.
-
서버 프로그램을 컴파일합니다.
-
클라이언트 프로그램을 컴파일합니다.
Step6 − 애플리케이션 실행
-
rmi 시작 다음 명령을 사용하여 레지스트리.
Start rmiregistry
그러면 rmi 가 시작됩니다. 별도의 창에 레지스트리를 표시합니다.
-
아래와 같이 서버 클래스 파일을 실행합니다 -
-
아래와 같이 클라이언트 클래스 파일을 실행합니다. -
-
인증 − 클라이언트를 시작하자마자 서버에 다음과 같은 출력이 표시됩니다.