Java CORBA::使用IIOP获取客户机ORB地址和端口
我使用IIOP协议在CORBA中应用,我使用JDK 6的JavaIDL组件,这是另一个ORB实现 用Java语言实现客户端和服务器 JDK ORB实现中是否有任何方法可以从 服务器(ORB)代码 或 有没有办法使用IIOP协议,让客户端获得主机和端口Java CORBA::使用IIOP获取客户机ORB地址和端口,java,corba,iiop,orb,Java,Corba,Iiop,Orb,我使用IIOP协议在CORBA中应用,我使用JDK 6的JavaIDL组件,这是另一个ORB实现 用Java语言实现客户端和服务器 JDK ORB实现中是否有任何方法可以从 服务器(ORB)代码 或 有没有办法使用IIOP协议,让客户端获得主机和端口 这是我们为识别客户而做的工作,以跟踪请求的用户我认为没有任何便携式方法可以做到这一点。我不知道,也许对你的特殊球体有什么好处。回想一下,CORBA非常努力地向应用程序隐藏传输细节。应用程序甚至可能没有使用IIOP,因此在任何情况下都无法获取TCP主
这是我们为识别客户而做的工作,以跟踪请求的用户我认为没有任何便携式方法可以做到这一点。我不知道,也许对你的特殊球体有什么好处。回想一下,CORBA非常努力地向应用程序隐藏传输细节。应用程序甚至可能没有使用IIOP,因此在任何情况下都无法获取TCP主机和端口信息
您可能想考虑向IDL中添加额外的标识符参数,以便服务器能够识别客户端。您也可以考虑让客户端在服务器上调用“登记”函数,服务器发出一个标识符,所有客户端在后续调用中都必须返回服务器。
该标识符可以简单到字符串或整数,也可以复杂到服务器必须使用公钥验证的某种安全令牌。这完全取决于应用程序的要求。这取决于具体情况,但有时您需要从IOR中提取主机/端口,以便进行测试、记录和调试。IOR包含主机和端口,您只需要从IOR表示的字节数组对其进行解码。因此,只要以来自GNU类路径的CORBA规范和IorParser.java(大规模依赖项)为例,如果周末有时间,就自己解码:) 如果您没有像我一样的时间,可以使用ORBs附带的命令行实用程序:
有一个基于JacORB的解决方案。这是我的另一个选择。但是,想要从IIOP协议本身获得一些本机支持来解决这个问题CORBA背后的整个思想是应用程序不需要知道传输细节。因此,没有可移植的方式来获取这些信息。例如,我可以在IIOP之外的另一个传输上运行CORBA,其中寻址细节与TCP/IP完全不同。@AudriusMeškauskas没有人提到安全性。他需要一种识别客户机的方法,而这可能是在CORBA中实现可移植性的唯一方法。您不必传递IP地址作为标识符,您可以传递服务器可以验证的哈希安全令牌。请记住IOR也可能被欺骗。@AudriusMeškauskas还有,一些客户端可能只是纯客户端,甚至没有IOR要注册。@AudriusMeškauskas如果注册步骤是一个可接受的答案,客户端最好只提供其IP地址而不是IOR,并删除所有的错误。您能更好地解释您的问题吗?我认为你用另一种方式解决你的问题。