gRPC和CORBA有什么区别?

问题描述 投票:6回答:2

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

提前致谢。

rpc corba grpc
2个回答
8
投票

gRPC和CORBA的主要概念和构建块类似:具有接口定义语言(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传输。后来考虑更友好的互联网基础设施(例如防火墙,代理......)。


2
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.