Difference between RPC technologies.

 


What is a RPC?

Remote Procedure Call (RPC) is a protocol that one program can use to request a service from a program located in another computer on a network without having to understand the network's details. RPC is used to call other processes on the remote systems like a local system. A procedure call is also sometimes known as a function call or a subroutine call.

RPC Technologies.

1)     SOAP

·       Stands for "Simple Object Access Protocol," and can do more than just get your hands clean. SOAP is a method of transferring messages, or small amounts of information, over the Internet. SOAP messages are formatted in XML and are typically sent using HTTP (hypertext transfer protocol). Both are widely supported data transmission standards. HTTP, which is the protocol that Web pages are sent over, has the additional advantage of avoiding most network firewalls. Since firewalls usually do not block port 80 (HTTP) traffic, most SOAP messages can pass through without any problems.

 

2)     REST

·       REST, or REpresentational State Transfer, is an architectural style for providing standards between computer systems on the web, making it easier for systems to communicate with each other. REST-compliant systems, often called RESTful systems, are characterized by how they are stateless and separate the concerns of client and server. We will go into what these terms mean and why they are beneficial characteristics for services on the Web.

 

3)    gRPC

•     gRPC is a modern, lightweight, open-source remote procedure call system that built from Google. This is based on Google project called Stubby. This is an internal framework, but just only for Google.

•     gRPC uses HTTP/2 as the communication protocol, but HTTP is not exposed to the API. gRPC-generate stubs and skeletons that hide HTTP from the client and the server, so no need of how the RPC concepts is mapped to HTTP. So, these stubs and skeletons responsible for marshalling and unmarshalling. Specially gRPC enables client and server applications to communicate transparently without any hesitate and makes it easier to build connected systems.

 

4     Thrift

•     Thrift is a lightweight, language-independent software stack with an associated code generation mechanism for RPC. Thrift provides clean abstractions for data transport, data serialization, and application-level processing. Thrift was originally developed by Facebook and now it is open sourced as an Apache project. Apache Thrift is a set of code-generation tools that allows developers to build RPC clients and servers by just defining the data types and service interfaces in a simple definition file. Given this file as an input, code is generated to build RPC clients and servers that communicate seamlessly across programming languages


 

5)      CORBA

·       The CORBA (Common Request Broker Architecture) is designed to exchange of information, programming languages, operating systems, and computing hardware between systems by Object Management Group (OMG).

·       CORBA uses IDL (Interface Definition Language) for specifying the interfaces that objects present to the outer world and mapping from Interface Definition Language to a specific implementation language.

·       CORBA’s key benefits are.

o   support many existing languages (Java, C++, Perl and Python etc.),  

o   supports both distribution and Object Orientation,

o   flexible data typing and CORBA provides a higher degree of interoperability.


Difference between these five technologies.

1)     SOAP

Difference

SOAP

First release

 

Late 1990 s

 

 

Formatting type

 

XML

 

 

Key strength

 

Widely used and established.

 

 

Style

 

Protocol

 

 

Function

 

Function-driven

 

 

Learning curve

 

Difficult for developers to use and learn.

 

 

Security

 

Support WS security and SSL

 

 

Bandwidth

 

Require more resources and bandwidth.

 

 

Data cache

 

Can’t be cached.

 

 

Payload handling

 

Needs knowledge of everything before any interaction.

 

 

ACID compliance

 

Has built-in ACID compliance to reduce.

Anomalies

 

 

Java-API

JAX-WS

 


2)    
REST

Difference

REST

First release

 

In 2000

 

 

Formatting type

 

JSON XML and others

 

 

Key strength

 

Flexible data formatting

 

 

Style

 

Architectural Style

 

 

Function

 

Data-driven

 

 

Learning curve

 

Easy for developers to use and learn.

 

 

Security

 

Support SSL and HTTPS

 

 

Bandwidth

 

Require fewer resources and lightweight.

 

 

Data cache

 

Can be cached.

 

 

Payload handling

 

Needs no knowledge of API s

 

 

ACID compliance

 

Lacks ACID compliance

 

 

Java-API

JAX-RS

 

 


3)    
gRPC

Difference

gRPC

First release

 

In 2015

 

 

Formatting type

 

JSON, Protobuf

 

 

Key strength

 

Gives convenient human readable messages.

 

 

Style

 

Framework for Microservices

 

 

Function

 

Event-Driven

 

 

Learning curve

 

This has a steep learning curve.

 

 

Security

 

Support SSL/TLS

 

 

Bandwidth

 

High throughput or low latency required.

 

 

Data cache

 

Can handle caching.

 

 

Payload handling

 

Uses a binary payload.

 

 

ACID compliance

 

Difficult to implement ACID.

 

 

Java-API

Java-gRPC-API.

 

 


4)    
Thrift

Difference

Thrift

First release

 

In 2007.

 

 

Formatting type

 

JSON, XML, plain text, compact binary etc.

 

Key strength

 

Faster to process than the text protocol.

 

Style

 

Architectural Style.

 

 

Function

 

Structure driven.

 

 

Learning curve

 

Easy for developers to use and learn.

 

 

Security

 

Support SSL and HTTPS.

 

 

Bandwidth

 

Require fewer resources and lightweight.

 

 

Data cache

 

Can be cached.

 

 

Payload handling

 

Needs no knowledge of API s.

 

 

ACID compliance

 

 

 

Java-API

 


5)    
Cobra

Difference

CORBA

First release

 

 

In 1991

Formatting type

 

CDR

 

Key strength

 

Rarely specified for new systems.

Style

 

Distributed object style

Function

 

 

Event -driven

Learning curve

 

 

Hard for programmers to learn.

 

Security

 

Support SSL, IIOP.

Bandwidth

 

Require more resources and bandwidth.

 

Data cache

 

Can be cached

Payload handling

 

Needs knowledge of everything before any interaction.

ACID compliance

 

Easy to implement ACID.

 

Java-API

Java CORBA API

 

 

 

 

 

 

 

 

 

Comments

Popular posts from this blog

Programming Using GNU Octave

Library Problem

What Is A Gamma Ray Burst?