what is RMI registry

2019-03-08 14:40发布

What is RMI registry? What does it do?

4条回答
够拽才男人
2楼-- · 2019-03-08 15:20

Java's Remote Method Invocation (RMI) Registry is essentially a directory service.

A remote object registry is a bootstrap naming service that is used by RMI servers on the same host to bind remote objects to names. Clients on local and remote hosts can then look up remote objects and make remote method invocations.(Documentation)

You can use RMI or JNDI to bind and lookup your object remotely with rmi registry.

It's a well know use case of proxy design pattern. RMI servers register objects (essentially stubs) on RMI registry. Remote clients lookup these stubs and invoke methods on it. Behind the scene the method to be invoked, it's arguments are serialized and sent to the actual RMI server which has the implementation. RMI server (skeleton code) deserializes the request invokes actual method, collects results, deserializes it and send it back to the client (stub). Stub deserializes the results and returns it back to the code that invoked this method.

查看更多
成全新的幸福
3楼-- · 2019-03-08 15:29

First the server associates a name with a remote object in the RMI registry. When a client wants access to a remote object it looks up the object, by its name, in the registry. Then the client can invoke methods on the remote object at the server.

http://www8.cs.umu.se/education/examina/Rapporter/471App.pdf

查看更多
混吃等死
4楼-- · 2019-03-08 15:33

Essentially the RMI registry is a place for the server to register services it offers and a place for clients to query for those services. See Introduction to Java RMI. Excerpt:

Figure 1 shows the connections made by the client when using RMI. Firstly, the client must contact an RMI registry, and request the name of the service. Developer B won't know the exact location of the RMI service, but he knows enough to contact Developer A's registry. This will point him in the direction of the service he wants to call..

查看更多
唯我独甜
5楼-- · 2019-03-08 15:40

RMI Registry acts a broker between RMI servers and the clients. The server "registers" its services in the registry - hence a RMI Registry can act as a "directory" for many servers/services. The client does not need to know the location of individual servers, and does a lookup on the RMI Registry for the service it needs. The registry, being a naming directory returns the appropriate handle to the client to invoke methods on.

Google around, there is plenty of info on RMI available.

查看更多
登录 后发表回答