主要概念和构建块 的 GRPC 强> 和 的 CORBA 强> 类似的: 客户 / 服务器 建筑与 接口定义语言 (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传输。后来考虑更友好的互联网基础设施(例如防火墙,代理......)。
CORBA是一个面向对象的框架,具有大量的功能和分布式计算的灵活性,gRPC只是一个基于http / 2和protobuf的远程过程调用框架。
只需比较规格的大小 - CORBA有数千页,而gRPC可能只有十分之一的CORBA。