gRPC和CORBA有什么区别?

时间:2017-06-09 07:58:48

标签: rpc corba grpc

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

先谢谢。

2 个答案:

答案 0 :(得分:7)

gRPC CORBA 的主要概念和构建块类似:客户端 / 服务器架构,带< em>接口定义语言(IDL),用于生成客户端 Stubs 和服务器 Skeletons ,标准数据可互换格式和用于多个编程的绑定语言。

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传输。后来考虑更友好的互联网基础设施(例如防火墙,代理......)。

答案 1 :(得分:2)

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

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