我在开发SOAP和REST Web服务(在java平台中)方面有着丰富的经验.我试图理解gRPC和CORBA在各个方面的区别,除了它们都能在分布式环境中实现平台中立的通信方式.无论如何,这两个概念的目标/目的在哪里以及如何不同?
提前致谢.
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 的十分之一。
| 归档时间: |
|
| 查看次数: |
2491 次 |
| 最近记录: |