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.

Next - Beyond JSON - The Emergence

Comments

Popular posts from this blog

Hibernate: a different object with the same identifier value was already associated with the session

BeanDefinitionStoreException: Failed to parse configuration class: Could not find class [javax.jms.ConnectionFactory]