Beyond JSON - Flashback
A Short Story
In the world where even services are becoming micro, I thought
of writing a micro story. I cannot cover it in one blog so dividing it in multiple bogs as below;
1. Flashback
2. Emergence
3. Dominance
4. Alternates
The trigger point of this article is the unquestionable
dominant usage of JSON. You are looked upon with suspicion if you try proposing
to even evaluate an alternate. I have been amazed with the faith in JSON we
have put in many architectural solutions.
There are definitely valid reasons for the faith in JSON but
I feel we should always have our reasons for doing so. In this series, I have
tried to identify the reasons of emergence and reasons to alternates.
Before the need and emergence of the distributed systems, we
were only interacting the APIs in the same memory space (The realistic
Monolithic apps, not what we say in today’s vocabulary to justify and define Micro
services). With the advent of distributed applications, we started delving into
mechanism to perform remote calls. First thing was to identify the protocol and
HTTP over TCP/IP became the immediate choice for obvious reasons. HTTP, as an
application layer protocol, solved the purpose of connecting two applications
over network. Still something was missing. It’s like, two people have mobile
phone in hand but they need a language to talk to each other.
This led to the emergence RPC (Remote Procedure Call) in
around 1981 (we can see some traces of specifications emerging). It is based on
extending the conventional local procedure calling so that the called procedure
need not exist in the same address space as the calling procedure. This clearly
enabled the distributed application development. But RPC had its own negative
as it let to various implementation as marshalling and un-marshalling of the
data was dependent of language, OS etc and it was a costly operation as well.
This led to a new IDL based specifications emerging by 1991
in the form of CORBA 1.0
So specific languages started coming up with their enhanced RPC
implementations like RMI (JAVA) and DCOM (Microsoft). But this came up with a fundamental
problem for solution providers on the technology lock-in. Hence, it was not a
very long-lived solution. It resulted in the emergence of CORBA adopting the
advancement of native implementations like RMI and DCOM, with COBRA 2.x.
There was a world, which was busy in making the object brokers to make the distributed world more technology independent. The processing power was seeing the exponential growth coupled with the distributed systems. Something was waiting to happen and it was not JSON.
Comments
Post a Comment