What is the difference between gRPC and CORBA?

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 ...).


CORBA is an objected oriented framework with a huge set of features and flexibility for distributed computing, gRPC is just a remote procedure call framework based on http/2 and protobuf.

Just compare the size of specs - CORBA has thousands of pages and gRPC has maybe a tenth of CORBA.

Tags:

Rpc

Grpc

Corba