Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么是RMI注册表_Java_Networking_Rmi - Fatal编程技术网

Java 什么是RMI注册表

Java 什么是RMI注册表,java,networking,rmi,Java,Networking,Rmi,什么是RMI注册表?它做什么?基本上,RMI注册表是服务器注册其提供的服务的地方,也是客户端查询这些服务的地方。看见摘录: 图1显示了客户端在使用RMI时进行的连接。首先,客户端必须联系RMI注册表,并请求服务的名称。开发人员B不知道RMI服务的确切位置,但他知道的足够多,可以联系开发人员A的注册中心。这将为他指明他想呼叫的服务方向 RMI注册表在RMI服务器和客户端之间充当代理。服务器在注册表中“注册”其服务-因此RMI注册表可以充当许多服务器/服务的“目录”。客户机不需要知道各个服务器的位置

什么是RMI注册表?它做什么?

基本上,RMI注册表是服务器注册其提供的服务的地方,也是客户端查询这些服务的地方。看见摘录:

图1显示了客户端在使用RMI时进行的连接。首先,客户端必须联系RMI注册表,并请求服务的名称。开发人员B不知道RMI服务的确切位置,但他知道的足够多,可以联系开发人员A的注册中心。这将为他指明他想呼叫的服务方向


RMI注册表在RMI服务器和客户端之间充当代理。服务器在注册表中“注册”其服务-因此RMI注册表可以充当许多服务器/服务的“目录”。客户机不需要知道各个服务器的位置,而是在RMI注册表上查找它所需的服务。注册表是一个命名目录,它将适当的句柄返回给客户端,以便在其上调用方法


通过谷歌搜索,有大量关于RMI的信息可用。

首先,服务器将名称与RMI注册表中的远程对象关联。当客户端希望访问远程对象时,它会在注册表中按对象的名称查找该对象。 然后,客户机可以在服务器上调用远程对象上的方法


Java的远程方法调用(RMI)注册表本质上是一个目录服务

远程对象注册表是一种引导命名服务,同一主机上的RMI服务器使用该服务将远程对象绑定到名称。然后,本地和远程主机上的客户端可以查找远程对象并进行远程方法调用。()

您可以使用RMI或JNDI通过RMI注册表远程绑定和查找对象


这是一个众所周知的代理设计模式用例。RMI服务器在RMI注册表上注册对象(基本上是存根)。远程客户端查找这些存根并调用其中的方法。在要调用的方法的幕后,它的参数被序列化并发送到具有实现的实际RMI服务器。RMI服务器(框架代码)反序列化请求,调用实际方法,收集结果,反序列化并将其发送回客户端(存根)。存根反序列化结果并将其返回给调用此方法的代码

这里还有一个有趣的地方可以了解更多关于JavaRMI的信息:@LuckyLuc同意。不仅是一个有趣的地方,而且是一个更好的地方。这里不应该在官方参考之前引用任意的互联网垃圾,当然也不应该在RMI规范等规范性参考之前引用。因此,每个程序只有一个RMI注册表,但可以有许多服务器。对吗?