Despite the ubiquity of the web, many have had difficulties applying the architectural principles of the web to their systems. Representational State Transfer (REST), the architecture behind the web is quickly becoming a real alternative to be considered by architects developing distributed systems. In a recently released InfoQ article, Stefan Tilkov delves into the ways of designing systems using REST and examines the similarities and differences between classic interface-based approaches.
Read A Brief Introduction to REST.First outlining the key principles of REST, Tilkov flattens much of the learning curve of this much-debated architecture:
- Give every "thing" an ID
- Link things together
- Use standard methods
- Resources with multiple representations
- Communicate statelessly
Some of the benefits outlined include:
[A] consistent naming scheme for things [so] that you don't have to come up with your own scheme — you can rely on one that has already been defined, works pretty well on global scale and is understood by practically anybody.
As well as:
[A] uniform interface [that] enables every component that understands the HTTP application protocol to interact with your application. Examples of components that benefit from this are generic clients such as curl and wget, proxies, caches, HTTP servers, gateways, even Google/Yahoo!/MSN, and many more.
For those interested in more of the theory behind REST, Tilkov also gives the background as well as links to the definitive works on the subject.