Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between gRPC and CORBA?

Tags:

I have a reasonable experience in developing both SOAP and REST web services (in java platform). I am trying to understand the difference between the gRPC and CORBA in every aspect apart from the fact that both enables platform-neutral way of communication in distributed environment. where and how is the Goal/Purpose of these two concepts differ anyway?

like image 530
Praveen Avatar asked Jun 09 '17 07:06

Praveen


People also ask

What is RPC and Corba?

In addition to providing users with a language and a platform-neutral remote procedure call (RPC) specification, CORBA defines commonly needed services such as transactions and security, events, time, and other domain-specific interface models.

What is difference between gRPC and RPC?

gRPC is a framework that uses RPC to communicate. RPC is not Protobuf but instead Protobuf can use RPC and gRPC is actually Protobuf over RPC. You don't need to use Protobuf to create RPC services within your app. This is a good idea if you are doing libraries/apps from small to medium size.

What is the difference between gRPC and rest?

What is the difference between REST APIs and gRPC? REST APIs generally use JSON or XML message formats, while gRPC uses protocol buffers. To signal errors, REST APIs use HTTP status codes, while gRPC uses error codes. gRPC's message sizes tend to be dramatically smaller than those of REST APIs.

What is gRPC used for?

gRPC is a robust open-source RPC (Remote Procedure Call) framework used to build scalable and fast APIs. It allows the client and server applications to communicate transparently and develop connected systems. Many leading tech firms have adopted gRPC, such as Google, Netflix, Square, IBM, Cisco, & Dropbox.


1 Answers

gRPC and CORBA share very similar concepts and building blocks: Client/Server architecture with Interface Definition Language (IDL) to generate client Stubs and server Skeletons, standard data interchangeable format and bindings for multiple programming languages.

CORBA uses the OMG's IDL for defining object interfaces and GIOP to standardize the message interchangeable format. gRPC uses the ProtocolBuffer's IDL for defining the message formats and rpc service interfaces. The IIOP (TCP/IP protocol) is the most common GIOP implementation used for CORBA, while gRPC has implemented its transport protocol on top of HTTP/2.

One significant difference is the support for remote object references (or remote services for gRPC). While CORBA supports the notion of remote object references (e.g. you can pass a remote object reference in your service call), the gRPC allows only data message structures as service call arguments.

The Transport protocol is often seen as an important distinction too! CORBA uses GIOP/IIOP - a TCP/IP based protocol while gRPC uses HTTP/2 transport. Later is consider friendlier for the Internet infrastructures (e.g. firewalls, proxies ...).

like image 171
tzolov Avatar answered Oct 11 '22 04:10

tzolov