【问题标题】:What is the difference between gRPC and CORBA?gRPC 和 CORBA 有什么区别?
【发布时间】:2017-11-11 03:40:43
【问题描述】:

我在开发 SOAP 和 REST Web 服务(在 Java 平台中)方面有一定的经验。我试图了解 gRPC 和 CORBA 在各个方面的区别,除了两者都支持在分布式环境中进行平台中立的通信方式这一事实。这两个概念的目标/目的到底在哪里以及如何不同?

【问题讨论】:

    标签: rpc corba grpc


    【解决方案1】:

    gRPCCORBA 共享非常相似的概念和构建块:Client/Server 架构与 接口定义语言 (IDL),用于生成客户端存根和服务器骨架、标准数据可互换格式和多种编程语言的绑定。

    CORBA 使用OMG's IDL 定义对象接口,使用GIOP 标准化消息可互换格式。 gRPC 使用ProtocolBuffer's IDL 来定义消息格式和rpc 服务接口。 IIOP(TCP/IP 协议)是用于 CORBA 的最常见的 GIOP 实现,而 gRPC 在 HTTP/2 之上实现了其传输协议。

    一个显着的区别是对远程对象引用(或 gRPC 的远程服务)的支持。虽然 CORBA 支持远程对象引用的概念(例如,您可以在服务调用中传递远程对象引用),但 gRPC 只允许数据消息结构作为服务调用参数。

    传输协议通常也被视为一个重要的区别! CORBA 使用GIOP/IIOP - 基于 TCP/IP 的协议,而 gRPC 使用 HTTP/2 传输。后来考虑对互联网基础设施(例如防火墙、代理......)更友好。

    【讨论】:

    • 我读到的关于 gRPC 的文章最多,我觉得我们正在倒退。我是唯一一个意识到这一点的人还是我太老了?
    • @JoseParra 你能扩展你的想法吗?
    • @JoseParra 我也是,不仅在过去的几年里,我在很多情况下都有同样的感觉。例如: 1. 键值 -> XML -> JSON -> 人们现在谈论在 JSON 中具有类型 2. WebAssembly / Blazor -> 我们以前不是有 ActiveX 和 Java Applets 吗? 3. CORBA -> Web Services XML SOAP WSDL -> REST /JSON -> 现在回到二进制远程过程执行
    • @JoseParra,你是对的。我认为年轻一代并不完全熟悉旧的模式和架构。 CORBA 不容易使用(至少有它的名声)。有时改进现有的工具、架构、性能和易用性比创建另一个新范例更好。
    • 开发者社区不断涌入新事物。看看 Javascript 生态系统是如何发展的。这很疯狂。年轻的开发人员认为 Java 已经过时,不再流行。但是 Java 最近取得了巨大的进步。我和年轻的学生一起工作。对于酷孩子来说,说他们用 Java 开发是一种耻辱。这是错误的文化。
    【解决方案2】:

    CORBA 是一个面向对象的框架,具有大量的特性和分布式计算的灵活性,gRPC 只是一个基于 http/2 和 protobuf 的远程过程调用框架。

    只需比较规范的大小 - CORBA 有数千页,而 gRPC 可能只有 CORBA 的十分之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-06
      • 2016-06-12
      • 2018-12-28
      • 2020-10-11
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多