원격 메서드 호출 프로그래머가 사용하는 방법입니다. 원격으로 개발 환경. 그 모든 방법에 대한 사물 서로 다른 컴퓨터에서 분산 네트워크에서 상호 작용합니다. Java의 원격 메서드 호출에 대한이 기사에서는 클라이언트와 서버에서 RMI 애플리케이션을 만드는 방법을 설명합니다.
시작하자!
해커와 윤리적 해커의 주요 차이점은 다음과 같습니다.
Java에서 RMI 란 무엇입니까?
그만큼 RMI (원격 메서드 호출)은 분산 응용 프로그램을 만드는 메커니즘을 제공하는 API입니다. . RMI를 사용하면 객체가 다른 객체에서 실행중인 객체에서 메서드를 호출 할 수 있습니다. . 원격 메서드 호출은 두 개체를 사용하는 응용 프로그램 간의 원격 통신을 제공합니다. 그루터기 과 해골 .
스텁 및 스켈레톤 이해
클라이언트 컴퓨터의 스텁 개체는 정보 블록을 만들고이 정보를 서버로 보냅니다. 블록은 다음으로 구성됩니다.
- 사용할 원격 개체의 식별자
- 호출 될 메소드 이름
- 원격 JVM에 대한 매개 변수
스켈레톤 오브젝트
스켈레톤 객체는 스텁 객체의 요청을 원격 객체로 전달합니다. 다음 작업을 수행합니다.
서버에있는 실제 개체에서 원하는 메서드를 호출합니다.
스텁 개체에서받은 매개 변수를 메서드로 전달합니다.
이것으로 더 나아가 RMI 응용 프로그램을 만드는 방법을 보겠습니다.
RMI 응용 프로그램을 만드는 단계
아래 단계는 RMI 응용 프로그램을 만드는 데 도움이됩니다.
- 리모컨 정의 상호 작용
- 원격 인터페이스 구현
- 스텁 및 스켈레톤 생성 사물 RMIC (RMI 컴파일러)를 사용하여 구현 클래스에서
- RMI 레지스트리 시작
- 서버 응용 프로그램 생성 및 실행
- 클라이언트 응용 프로그램 생성 및 실행
이제이 단계의 세부 사항을 살펴 보겠습니다.
1 단계 : 원격 인터페이스 정의
가장 먼저해야 할 일은 상호 작용 . 이것은 원격 클라이언트가 호출 할 수있는 메소드에 대한 설명을 제공합니다. 이 인터페이스는 Remote 인터페이스를 확장해야하며 인터페이스 내의 메서드 프로토 타입은 RemoteException을 throw해야합니다.
// 검색 인터페이스 생성 import java.rmi. * public interface Search extends Remote {// 메소드 프로토 타입 선언 public String Query (String search) throws RemoteException}
2 단계 : 원격 인터페이스 구현
다음 단계는 원격 인터페이스를 구현하는 것입니다. 원격 인터페이스를 구현하려면 클래스를 java.rmi 패키지의 UnicastRemoteObject 클래스 . 또한 기본값 건축업자 던지기 위해 만들어야합니다 java.rmi.RemoteException 부모 생성자에서.
// 검색 인터페이스를 구현하는 Java 프로그램 import java.rmi. * import java.rmi.server. * public class SearchQuery extends UnicastRemoteObject implementations Search {// 부모 생성자로부터 RemoteException을 발생시키는 기본 생성자 SearchQuery () throws RemoteException {super ( )} // 쿼리 인터페이스 구현 public String query (String search) throws RemoteException {String result if (search.equals ( 'Reflection in Java')) result = 'true'else result = 'false'return result}}
3 단계 : rmic를 사용하여 구현 클래스에서 Stub 및 Skeleton 객체 생성
RMIC 도구는 Stub 및 Skeleton 객체를 생성하는 RMI 컴파일러를 호출하는 데 사용됩니다. 프로토 타입은 RMIC 클래스 이름입니다.
생성자가 개인 일 수 있습니까?
4 단계 : RMI 레지스트리 시작
명령 프롬프트 start RMIregistry에서 명령을 실행하여 레지스트리 서비스를 시작해야합니다.
5 단계 : 서버 응용 프로그램 생성 및 실행
다음 단계는 서버 응용 프로그램을 만들고 별도의 명령 프롬프트에서 실행하는 것입니다.
서버 프로그램은 createRegistry 인수로 전달 된 포트 번호를 사용하여 서버 JVM 내에서 rmiregistry를 작성하기위한 LocateRegistry 클래스의 메소드.
Naming 클래스의 rebind 메서드는 원격 개체를 새 이름에 바인딩하는 데 사용됩니다.
// 서버 애플리케이션 용 프로그램 import java.rmi. * import java.rmi.registry. * public class SearchServer {public static void main (String args []) {try {// 인터페이스 구현 클래스의 객체 생성 Search obj = new SearchQuery () // 서버 JVM 내에서 // 포트 번호가 1900 인 rmiregistry LocateRegistry.createRegistry (1900) & ltp style = 'text-align : justify'& gt // 이름으로 원격 객체를 바인딩합니다. // edureka Naming.rebind ( 'rmi : // localhost : 1900'+ '/ edureka', obj)} catch (예외 ae) {System.out.println (ae)}}}
6 단계 : 클라이언트 응용 프로그램 생성 및 실행
마지막 단계는 클라이언트 응용 프로그램을 만들고 별도의 명령 프롬프트에서 실행하는 것입니다. Naming 클래스의 조회 메소드는 Stub 객체의 참조를 가져 오는 데 사용됩니다.
위의 클라이언트 및 서버 프로그램은 동일한 컴퓨터에서 실행되므로 localhost가 사용됩니다. 다른 시스템에서 원격 개체에 액세스하려면 localhost를 원격 개체가있는 IP 주소로 대체해야합니다.
그래서 이것은 우리를 RMI의 끝으로 가져옵니다. 조. 유익한 정보를 얻고 기초를 이해하는 데 도움이 되었기를 바랍니다.
확인 전 세계에 걸쳐 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. 우리는 당신의 여정의 모든 단계에서 당신을 돕기 위해 여기에 있습니다.이 자바 인터뷰 질문 외에도 우리는 학생과 전문가가되기를 원하는 전문가를 위해 설계된 커리큘럼을 제안합니다. 자바 개발자. 이 과정은 Java 프로그래밍을 시작하고 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.
C ++ 가상 함수 = 0
질문이 있으십니까? 이 'Java의 RMI'기사의 주석 섹션에 언급하십시오. 가능한 한 빨리 연락 드리겠습니다.