Article Preview
TopIntroduction
Web services are the means to exchange information on a mobile, search engine, enterprise application and many more, thought formats like XML (Extensible Markup Language) and JSON (Java Script Object Notation). For serialization, data interchange format plays a great role in terms of the rate of data transfer and performance (Helland, 2017). Structure of JSON is similar to the type model of many programming languages, essentially Java Scripting (JS) that makes it flexible, easy to use and independent text format. It is simple and requires no prior knowledge to acquire and practice. JSON is a format that fills a particular niche to integrate multiple services across many platforms. XML and JSON, both being semi-structured and hierarchal data model for data exchange, are popular serialization techniques in Web development. XML as compared to JSON is heavy, complex and requires additional libraries to exchange data. Its model consists of hierarchal complex tags and requires more bytes for data transfer even for a small task. JSON is light weighted, compact and close to many programming languages. It is one of its kind of emerging data-interchange format as compared to XML and many others like Atom, RDF (Ma, Lin, Yan, Zhao, 2018; Ma, Jia, Cheng & Angryk, 2016), REBOL, Gellish, YAML and so on.
JSON document consists of objects that constitute of attributes/keys (string type), value (String, Number, Boolean and NULL), arrays and objects. An object is a collection of pairs (attributes & values) and a pair can again be a JSON object (Bourhis, Reutter, Suárez & Vrgoč, 2017). JSON document can have hierarchical data like nested objects and arrays. Being simple, easy and light weighted, JSON has become a format of choice for most Web services. JSON especially adores for storing temporary data (like filling the form on Web) and exchanging information between servers and clients. Note that it cannot be used for permanent storage, data analysis, and processing of complex queries1. So, database support for storing and querying JSON came into existence (Liu, 2019; Irshad, Ma, & Yan, 2019; Junkkari et al., 2016; Hu & Dessloch, 2015). Although JSON can work standalone, its database support provides secure, easy and fast processing of information. This situation just likes XML for databases (Fong & Shiu, 2012). In addition, it is difficult to manage data sharing by multiple users in the document but it is easy in databases. Two types of database models support JSON data management, which are relational database management system (RDBMS) and NoSQL (Not only SQL) (Liu, 2019; Irshad, Ma, & Yan, 2019). We categorize them on the basis of their data structure, model, data organization, and transaction and querying mechanism.
NoSQL database encompasses document databases, key-value pair stores, columnar stores and graph formats stores (Ma, Capretz, & Yan, 2016). JSON document stores belong to the category of NoSQL document databases that evolve with the popularity of JSON. NoSQL data stores are gaining popularity but still lack powerful standard query language. Although, as compared to many document stores, the query language of MongoDB is easy and close to SQL, it requires MapReduce for aggregation and complex queries. CouchDB provides better consistency but has complex query language. Learning a new language every time as per the need of application/project is a cumbersome and time taking task. Standardization of query language for all NoSQL document stores is the biggest demand at present. NoSQL document stores, CouchDB and MongoDB claim to provide ACID (Atomicity, Consistency, Isolation, Durability) transaction model in a coming version. First, the ACID model is implemented on a single document level only and secondly, it is not fully tested and available yet. BASE transaction model is not suitable for all applications, where things will be eventually consistent as compared to the ACID model.