On using JSON-LD to create evolvable RESTful services

M Lanthaler, C Gütl - Proceedings of the third international workshop on …, 2012 - dl.acm.org
Proceedings of the third international workshop on RESTful design, 2012dl.acm.org
As the amount of data and devices on the Web experiences exponential growth issues on
how to integrate such hugely heterogeneous components into a scalable system become
increasingly important. REST has proven to be a viable solution for such large-scale
information systems. It provides a set of architectural constraints that, when applied as a
whole, result in benefits in terms of loose coupling, maintainability, evolvability, and
scalability. Unfortunately, some of REST's constraints such as the ones that demand self …
As the amount of data and devices on the Web experiences exponential growth issues on how to integrate such hugely heterogeneous components into a scalable system become increasingly important. REST has proven to be a viable solution for such large-scale information systems. It provides a set of architectural constraints that, when applied as a whole, result in benefits in terms of loose coupling, maintainability, evolvability, and scalability. Unfortunately, some of REST's constraints such as the ones that demand self-descriptive messages or require the use of hypermedia as the engine of application state are rarely implemented correctly. This results in tightly coupled and thus brittle systems. To solve these and other issues, we present JSON-LD, a community effort to standardize a media type targeted to machine-to-machine communication with inherent hypermedia support and rich semantics. Since JSON-LD is 100% compatible with traditional JSON, developers can continue to use their existing tools and libraries. As we show in the paper, JSON-LD can be used to build truly RESTful services that, at the same time, integrate the exposed data into the Semantic Web. The required additional design costs are significantly outweighed by the achievable benefits in terms of loose coupling, evolvability, scalability, self-descriptiveness, and maintainability.
ACM Digital Library