The Essence of REST Architectural Style
There is an increasing interest in understanding and using REST architectural style. Many books and tools have been created but there is still a general lack of understanding its fundamentals as an architecture style. The reason perhaps could be found in the fact that REST was presented in a doctoral dissertation, with relatively high entry barriers for its understanding, or because the description used models that were more oriented towards documentation than to working practitioners.
In this chapter we examine, in a systematic manner, some of the issues about Fielding’s doctoral dissertation that have caused so much confusion. We start examining REST as an architecture style as a sequence of architectural decisions. We use then influence diagrams to build a model that allows us to see how the architectural decisions take us from classic architectural styles like client-server and layered-system to REST. The graphical model not only facilitates the understanding of this important new architectural style, but also serves as a framework to assess the impact of relaxing or adding more constraints to it. As a final example we analyze the resource-oriented architecture (ROA) to find out one important constraint that is present in REST is missing in ROA and this has an impact on both scalability and modifiability.
- Bass, L., Clements, P., and Kazman, R. (2003) Software Architecture in Practice, 2nd Ed., Addison Wesley Professional, Reading, MA, USA.Google Scholar
- Chung, L., Nixon, B. A., Yu, E., and Mylopoulos, J. (1999) Non-Functional Requirements in Software Engineering. International Series in Software Engineering, Vol. 5, Springer, Berlin, Heidelberg, New York.Google Scholar
- Fielding, R. T. (2000) Architectural styles and the design of network-based software architectures. Ph.D. Dissertation, University of California, Irvine.Google Scholar
- Hinchcliffe, D. (2008) What is WOA? It’s the Future of Service-Oriented Architecture (SOA). Dion Hinchcliffe’s Blog – Musings and Ruminations on Building Great Systems. Retrieved January 11th, 2008, http://hinchcliffe.org/archive/2008/02/27/16617.aspx.
- Jansen, A. and Bosch, J. (2005) Software Architecture as a Set of Architectural Design Decisions. Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture, WICSA ’05, Pittsburgh, PA, USA.Google Scholar
- Johnson, P., Lagerström, R., Närman, P., and Simonsson, M. (2007) Enterprise architecture analysis with extended influence diagrams. Information Systems Frontiers, 9 (2–3). doi: 10.1007/s10796–007–9030-y.Google Scholar
- Richardson, L. and Ruby, S. (2007) Restful web services. O’Reilly Media Inc. USA.Google Scholar
- Webber, J., Parastaditis, S., and Robinson, I. (2010) Rest in Practice, O”Reilly Media Inc., USA.Google Scholar