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
Post a Comment