rpc - gRPC 和 CORBA 有什么区别?

标签 rpc corba grpc

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

最佳答案

gRPC 科尔巴 共享非常相似的概念和构建 block :使用接口(interface)定义语言 (IDL) 生成客户端 stub 和服务器骨架的客户端/服务器架构、标准数据可互换格式和多种编程语言的绑定(bind)。
科尔巴 使用 OMG's IDL用于定义对象接口(interface)和GIOP规范消息可互换格式。 gRPC 使用 ProtocolBuffer's IDL用于定义消息格式和 rpc 服务接口(interface)。 IIOP(TCP/IP 协议(protocol))是用于 CORBA 的最常见的 GIOP 实现,而 gRPC 在 HTTP/2 之上实现了其传输协议(protocol)。
一个显着的区别是对远程对象引用(或 gRPC 的远程服务)的支持。虽然 CORBA 支持远程对象引用的概念(例如,您可以在服务调用中传递远程对象引用),但 gRPC 只允许数据消息结构作为服务调用参数。
传输协议(protocol)通常也被视为一个重要的区别! CORBA 使用 GIOP/IIOP - 基于 TCP/IP 的协议(protocol),而 gRPC 使用 HTTP/2 传输。后来考虑对 Internet 基础设施(例如防火墙、代理...)更友好。

关于rpc - gRPC 和 CORBA 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44452399/

相关文章:

c++ - CORBA::短值检查

java - hessian,服务器接口(interface)升级时的兼容性

c++ - 使用 64 位 regsvr32 注册 32 位 DLL

http - HTTP和RPC的比较

java - 使用 Java 在 CORBA 方法中发送和接收自己的类

apache-flex - 闪存和 CORBA

streaming - gRPC客户端流是如何实现的

rest - Protobuf Field Mask 可以应用于 grpc only case 吗?

java - maven-jar-plugin mainClass - 无法找到或加载主类

c - 使用 RPC 将消息从一个客户端发送到其他客户端