To this end, one answer is to use interfaces that are application-friendly RESTful (rep‐
resentational state transfer) interfaces. It happens that these interfaces are generally
defined using modern approaches such as JSON (JavaScript Object Notation). JSON
solves many of the shortcomings just described because its schema is defined using
human-readable XML, is self-referential, is hierarchical, and is something that is easily
built into Java applications—the most common application programming language of
the past decade. The code snippet here demonstrates a JSON example (other modern,application-friendly interfaces are Thrift and Google Buffers—we will describe these
and a few others later in this chapter):