본문 바로가기

Development Note

An Overview of RMI Applications

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
An Overview of RMI Applications

RMI applications often comprise two separate programs, a server and a client. A typical server program creates some remote objects, makes references to these objects accessible, and waits for clients to invoke methods on these objects. A typical client program obtains a remote reference to one or more remote objects on a server and then invokes methods on them. RMI provides the mechanism by which the server and the client communicate and pass information back and forth. Such an application is sometimes referred to as a distributed object application.

RMI application은 서버와 클라이언트로 나누어진 프로그램들을 의미합니다. 일반적인 서버 프로그램은 어떤 원격 객체들을 생성하고 객체에 접근할 수 있는 레퍼런스들을 생성합니다. 그리고 생성한 객체들의 메소드를 호출하는 클라이언트들을 기다립니다. 보통 클라이언트 프로그램은 서버에 있는 한 개 이상의 원격 객체들의 원격 레퍼런스를 포함하고 있으며 그 객체들의 메소드를 호출 합니다. RMI는 서버와 클라이언트가 통신하고 정보를 주고  받는 메카니즘을 제공합니다. 이런 application은 때로는 distributed object application 이라고 부르기도 합니다.


Distributed object applications need to do the following:

* Locate remote objects. Applications can use various mechanisms to obtain references to remote objects. For example, an application can register its remote objects with RMI's simple naming facility, the RMI registry. Alternatively, an application can pass and return remote object references as part of other remote invocations.

* Communicate with remote objects. Details of communication between remote objects are handled by RMI. To the programmer, remote communication looks similar to regular Java method invocations.


* Load class definitions for objects that are passed around. Because RMI enables objects to be passed back and forth, it provides mechanisms for loading an object's class definitions as well as for transmitting an object's data.

* 원격 객체를 찾아냅니다. 어플리케이션은 원격 객체의 레퍼런스들이 가지고 있는 다양한 메카니즘들을 사용할 수 있습니다. 예를들어 어플리케이션은 RMI registry라고 하는 간단한 네이밍 기능을 하는 설비로 원격 객체들을 등록할 수 있습니다. 혹은 대신에, 다른 원격 호출들의 부분과 같은 원격 객체의 레퍼런스들을 패스하고 리턴 할 수 있습니다.

* 원격 객체들과 통신을 합니다. 통신의 세부사항과 원격 객체는 RMI에 의해서 제어 됩니다. 프로그래머에게 원격 통신은 보통의 자바 메소드의 호출처럼 보입니다.

* 돌아오게 되는 객체들을 위한 그 클래스의 정의된 것들을 불러옵니다. 왜냐하면 RMI는 객체를 주고 받을 수 있게 합니다. 이것은 객체들의 데이터를 송신하기 위한 것처럼 객체의 클래스에 정의된 것들을 읽어오기 위한 메카니즘들을 제공합니다.
The following illustration depicts an RMI distributed application that uses the RMI registry to obtain a reference to a remote object. The server calls the registry to associate (or bind) a name with a remote object. The client looks up the remote object by its name in the server's registry and then invokes a method on it. The illustration also shows that the RMI system uses an existing web server to load class definitions, from server to client and from client to server, for objects when needed.
사용자 삽입 이미지
아래의 그림은 원격 객체에 대한 레퍼런스를 포함하고 있는 RMI registry를 사용하는 RMI 분산 어플리케이션을 보여줍니다. 서버는 원격 객체의 이름을 사용하여 묶여있는 registry를 호출합니다. 클라이언트는 서버 registry에 있는 이름으로 원격 객체를 찾습니다. 그리고 그 객체에 있는 메소드를 호출합니다. 아래 그림은 또한 RMI 시스템이 클래스에 정의된 것들을 그 객체들이 필요할 때 서버에서 클라이언트로 그리고 클라이언트에서 서버로 읽어오기 위해 현존하는 웹서버를 사용하는 것을 보여줍니다.의된 것들을 불러옵니다. 왜냐하면 RMI는 객체를 주고 받을 수 있게 합니다. 이것은 객체들의 데이터를 송신하기 위한 것처럼 객체의 클래스에 정의된 것들을 읽어오기 위한 메카니즘들을 제공합니다.
RMI 에 대한 간략한 글은 Java Tutorial 에서 발췌 및 해석 했습니다 ^^