【问题标题】:Can I use CORBA/RMI to make live audio streaming?我可以使用 CORBA/RMI 制作实时音频流吗?
【发布时间】:2010-08-11 13:02:10
【问题描述】:

我需要在服务器/客户端之间进行通信。我看到 CORBA 用于不同的语言来像 RMI 一样工作,是吗? 在我的应用程序中,我将不得不在客户端/服务器之间传输对象、传输二进制文件(我看到我可以使用 RMI 来完成)以及从一个客户端到另一个客户端播放实时流。 我在考虑 CORBA,因为如果需要,它也可以与 C++ 一起使用,不是吗? 那么我可以使用 CORBA 播放流媒体吗?

【问题讨论】:

  • 我几乎会做任何事情来避免使用 CORBA - 而且它的设计肯定没有考虑到流等应用程序。
  • 我不确定其他 ORB,但 TAO ACE 在传递大对象时确实存在内存问题。

标签: java c++ audio streaming corba


【解决方案1】:

RMI 和 CORBA 是用于分布式对象的技术。然后,您可以像在本地对象上一样调用远程对象上的方法。

当然,如果您实现了这样做的方法(例如void sendChunk(byte[] data)),您就可以发送和接收字节。但我认为它们不适合流媒体。同样对于流媒体,您应该选择一些东西来解决流的服务质量问题——RMI 或 CORBA 绝对不会这样做。为此,我可能会看看 UDP 套接字或类似的东西,如果通道饱和,它只会丢弃数据包。

【讨论】:

  • 我需要多播流,所以我需要让 clint 在收到来自服务器的 RMI 指令时监听 UDP 套接字?
【解决方案2】:

CORBA 为您提供了很多服务,它可能不是流媒体的最佳选择。我能想到的两个原因(尽管一个也可以找到更多反对的理由)

  1. 对象负载不仅仅是数据(编组和解组)
  2. CORBA(特别是实现)通常会争取良好的 QoS,即同一个调用会重试

也就是说,已经证明 ORB 也可以使用real-time 通信。因此,CORBA 作为一个框架并没有完全脱离桌面。

不过,我不确定 CORBA 的多播通信功能。

【讨论】:

    【解决方案3】:

    如果您一心想使用 CORBA 来解决这个问题,请查看 RT-CORBA(实时 corba)。我相信 TAO 有它的实现,但是我从未使用过 RT-CORBA,所以如果它能给你提供流式传输所需的性能,我不能直接说。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 2011-09-02
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多