RMI注册表是什么?它是用来做什么的?
RMI注册表基本上是一个可以让服务器注册提供的服务并让客户端查询这些服务的地方。详见Java RMI简介。摘录如下:
图1展示了使用RMI时客户端所建立的连接。首先,客户端必须联系RMI注册表,并请求所需服务的名称。开发人员B不知道RMI服务的确切位置,但他知道足够联系到开发人员A的注册表。这将指引他找到所需调用的服务。
RMI注册表是RMI服务器和客户端之间的中间人。服务器将其服务“注册”到注册表中,因此RMI Registry可以作为许多服务器/服务的“目录”。客户端不需要知道各个服务器的位置,在RMI注册表上查找它所需的服务。注册表作为命名目录返回适当的句柄给客户端以调用方法。
在Google上搜索,有大量关于RMI的信息可用。
Java的远程方法调用(RMI)注册表本质上是一个目录服务。
远程对象注册表是一种引导命名服务,用于将远程对象绑定到名称。然后,本地和远程主机上的客户端可以查找远程对象并进行远程方法调用。(文档)
您可以使用RMI或JNDI在rmi注册表中远程绑定和查找对象。
这是代理设计模式的一个众所周知的用例。 RMI服务器在RMI注册表上注册对象(本质上是存根)。 远程客户端查找这些存根并调用其方法。 在幕后,要调用的方法及其参数被序列化并发送到实际具有实现的RMI服务器。 RMI服务器(骨架代码)反序列化请求,调用实际方法,收集结果,对其进行反序列化并将其发送回客户端(存根)。 存根反序列化结果并将其返回给调用此方法的代码。
首先,服务器将远程对象与名称关联在RMI注册表中。当客户端想要访问远程对象时,它通过名称在注册表中查找对象。然后客户端可以在服务器上调用远程对象的方法。
http://www8.cs.umu.se/education/examina/Rapporter/471App.pdf