What is the difference between gRPC and CORBA?
Asked Answered
H

2

30

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?

Hydrolyte answered 9/6, 2017 at 7:58 Comment(0)
H
32

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

Hardej answered 26/4, 2018 at 10:54 Comment(8)
The most I read about gRPC the most I feel we are going backward. Am I the only one realizing this or I am just too old?Upcast
@JoseParra could you extend your thoughts?Sean
@JoseParra me too, not only that over the past few years I had the same feeling in many situations. ex: 1. key value -> XML -> JSON -> people now talking about having types in JSON 2. WebAssembly / Blazor -> didn't we have ActiveX and Java Applets before? 3. CORBA -> Web Services XML SOAP WSDL -> REST /JSON -> now back to binary remote procedure executionSeaton
@JoseParra, you are right. I think the younger generation is not fully familiar with the older patterns and architectures. CORBA was not easy to use (at least had the reputation of it). It is sometimes better to improve the existing tooling, architecture, performance, and ease of use rather than creating a yet another new paradigm.Sadden
The developer community is constantly rushing into new things. Look how Javascript ecosystem has been evolving. It's crazy. Younger developers think Java is old and not trendy anymore. But Java has made huge progress recently. I work with younger students. For the cool kids, it's a shame to say they develop in Java. This is the wrong culture.Sadden
chiming in here, I remember learning about JINI - java's move away from CORBA - which was even less understood than CORBA. There's a lot to be said for using REST API microservices, but remote object references put the onus on the service provider to do lots of the work, while REST APIs are more client-processing focussed.Sensitive
People end up re-inventing the wheel because they don't take the time to study enough. They just see a problem and think 'I can fix that' without realising that probably thousands of programmers before them thought the exact same thing, and actually built solutions to the problem they faced. Ideas get recycled every generation and repackaged and reimplemented over and over. Hopefully each iteration will yield a better result but it sure is a lot of wasted effort when we could just work to improve existing tools. Maybe it's better though not to have to worry about backwards compatibility.Dawn
I too strongly feel this, though I am among the young generation to join SW engg. My start of career was on Mainframe and in particular CICS transactions server, to my surprise CICS was already using distributed transactions processing and was doing it in scale of millions or even billions per second for banks, airlines etc. Now the reason I see these weren't popular other than the Boomers or Gen X is that this is almost 60 years old technology. But is very mature such that there is no need to reimplement anything. Now when I came across microservices, I thought, are we going backwards?!Saintsimonianism
S
8

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.

Stesha answered 12/6, 2017 at 19:37 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.