The term REST comes from Roy Fielding's PhD dissertation, published in 2000, and it stands for REpresentational State Transfer. REST by itself is not architecture.
REST is a set of constraints that, when applied to the design of a system, creates a software architectural style.
Fielding ends with the following constraints that define a RESTful system:
• It must be a client-server system
• It has to be stateless—there should be no need for the service to keep users’ sessions; in other words, each request should be independent of others
• It has to support a caching system—the network infrastructure should support cache at different levels
• It has to be uniformly accessible—each resource must have a unique address and a valid point of access
• It has to be layered—it must support scalability
• And others.
These constraints don't dictate what kind of technology to use; they only define how data is transferred between components and what are the benefits of following the guidelines.
Therefore, a RESTful system can be implemented in any networking architecture available.
More important, there is no need for us to invent new technologies or networking protocols: we can use existing networking infrastructures such as the Web to create RESTful architectures. Consequently, a RESTful architecture is one that is maintainable, extendable, and distributed.
In September, 2009, the final release of Sun JAX-RS (JSR-311) provides a high level declarative programming model; with the ability to create Restful Web Services by using this implementation we can achieve Resource Oriented Architecture (ROA).
Speaker: Osama Oransa
| Attachment | Size |
|---|---|
| RESTful WS and ROA.pdf | 2.9 MB |