将 Glassfish 与 IIOP 结合使用时的完整协议层次结构是啥

Posted

技术标签:

【中文标题】将 Glassfish 与 IIOP 结合使用时的完整协议层次结构是啥【英文标题】:What is the full protocol hierarchy when using Glassfish with IIOP将 Glassfish 与 IIOP 结合使用时的完整协议层次结构是什么 【发布时间】:2012-07-27 11:32:52 【问题描述】:

设置是 Glassfish 2.1.1 和 Java 独立客户端。通过 IIOP 进行连接。 我们的客户在网络上产生了大量的流量,我正在尝试 找出这是从哪里来的。

据我了解,协议层次结构应该是这样的

Ethernet -> IP -> TCP -> GIOP -> CDR

在 GIOP 之前,这是我在 Wireshark 中看到的,但是 GIOP 消息不清楚。

不幸的是,Wireshark 没有剖析 GIOP 消息的有效负载。 我认为 GIOP 消息应该包含 Java 对象 用 CORBA CDR 序列化,因为那是 CORBA 序列化。 (毕竟对于非 Java 客户端,我必须生成 IDL,所以 CDR 应该是 在任何地方使用)。

我在 Wireshark 中看到的很多很多

XRMI:java.util.Collections\U0024SynchronizedCollection:

后跟一个十六进制字符串和几个字节的二进制数据,然后是 XRMI:.....

从这里我想它是 RMI,我有 RMI over IIOP, 给我

Ethernet -> IP -> TCP -> GIOP -> RMI -> Java Serialization

但如果 GIOP 有效负载是 RMI,那么 CDR 适合哪里。

如何解释 GIOP 消息的负载和 在哪里可以找到 RMI over IIOP 的规范?

【问题讨论】:

找到了 RMI 规范和 Java 序列化规范,都没有提到 XRMI:...这是哪里来的? 【参考方案1】:

如上所述,RMI over IIOP 就是 CDR over GIOP。它不是一个不同的协议,它不使用 Java 序列化。它的全部目的是与 CORBA 兼容。

【讨论】:

好的,CORBA 规范的 CDR 部分定义了数组和序列,它们都以直接的方式序列化。不过,它并没有说任何关于收藏的事情。 'XRMI:java.util.Collections\U0024SynchronizedCollection:' 从何而来? @bbuser 它是一个“按值对象”,专门为 Java 添加到 CORBA 规范中。

以上是关于将 Glassfish 与 IIOP 结合使用时的完整协议层次结构是啥的主要内容,如果未能解决你的问题,请参考以下文章

Glassfish 3.1.2.2:IIOP1002:主要传播:在主题中找不到主要信息

将 SWIG 与 C# 结合使用时的最佳实践是啥?

将 Oracle 集合与瘦 JDBC 结合使用时的全球化问题

Locust 可以测试使用 CORBA IIOP 协议的系统吗

将 Google Data Studio 社区连接器与 BigQuery 结合使用时的时间戳查询问题

将 Heroku Rails 应用程序与 Amazon RDS 后端结合使用时的 AWS 数据传输费用