gRPC和CORBA有什么区别?

Pra*_*een 8 rpc corba grpc

我在开发SOAP和REST Web服务(在java平台中)方面有着丰富的经验.我试图理解gRPC和CORBA在各个方面的区别,除了它们都能在分布式环境中实现平台中立的通信方式.无论如何,这两个概念的目标/目的在哪里以及如何不同?

提前致谢.

tzo*_*lov 9

gRPCCORBA的主要概念和构建块类似:具有接口定义语言(IDL)的客户端/服务器体系结构,用于生成客户端存根和服务器骨架,标准数据可互换格式和多种编程语言的绑定.

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

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

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

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

wei*_*mat 5

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

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