This article is more than 1 year old

Another go at remote objects: Google gRPC hits beta

We were 'too tightly coupled' to Stubby

Google's gRPC project has reached beta status, according to a post by product manager Mugur Marculescu, who adds that it "opens the door for gRPC use in production environments".

The open source project aims to simplify distributed application development, where clients call services running on one or more remote servers. Here is the official summary:

In gRPC a client application can directly call methods on a server application on a different machine as if it was a local object, making it easier for you to create distributed applications and services.

As in many RPC systems, gRPC is based around the idea of defining a service, specifying the methods that can be called remotely with their parameters and return types.

On the server side, the server implements this interface and runs a gRPC server to handle client calls. On the client side, the client has a stub that provides exactly the same methods as the server.

The origin of the project is an internal Google system called Stubby, according to an explanatory piece posted last month.

Google uses microservices, an architecture where applications can be composed of several services each with a tightly defined purpose, and Stubby was designed to improve the development of such applications.

However, Stubby was "too tightly coupled to our internal infrastructure to be considered suitable for public release," the post explains, so the team decided to rework it as an open source project, based on other public standards.

Numerous languages are supported, including C++, Java, Go, Python, Ruby, C#, Objective-C and PHP.

Developers will find the fundamental project goals familiar. CORBA (Common Object Request Broker Architecture) was developed in the nineties as a language-independent architecture for calling remote objects.

Microsoft came up with DCOM (Distributed Component Object Model), an extension of its local COM technology, which first shipped with Windows NT 4.0 in 1996, as well as .NET RPC (Remote Procedure Call) systems including .NET Remoting and Windows Communication Foundation (WCF), based on XML web services. Many other RPC frameworks have been developed.

Google's gRPC can use a variety of protocols for passing data across the wire, but the default is based on its own mechanism for serialising data, called protocol buffers, of which the latest version is called proto3.

The fact that gRPC has emerged from working internal systems is promising. Making it easy to code against remote services in a reliable manner is a huge advantage, which is why so many solutions have been developed over the years.

The risk is that hidden complexity can result in inefficient code or hard-to-find bugs, though you can be sure that the gRPC developers will be anxious to learn from the past and and avoid such problems.®

More about

TIP US OFF

Send us news


Other stories you might like