ABSTRACT
The World Wide Web has succeeded in large part because its software architecture has been designed to meet the needs of an Internet-scale distributed hypermedia system. The modern Web architecture emphasizes scalability of component interactions, generality of interfaces, independent deployment of components, and intermediary components to reduce interaction latency, enforce security, and encapsulate legacy systems. In this paper, we introduce the Representational State Transfer (REST) architectural style, developed as an abstract model of the Web architecture to guide our redesign and definition of the Hypertext Transfer Protocol and Uniform Resource Identifiers. We describe the software engineering principles guiding REST and the interaction constraints chosen to retain those principles, contrasting them to the constraints of other architectural styles. We then compare the abstract model to the currently deployed Web architecture in order to elicit mismatches between the existing protocols and the applications they are intended to support.
- 1.Andrews, G. Paradigms for process interaction in distrib-uted programs. ACM Computing Surveys 23,1(Mar. 1991), pp. 49-90.]] Google ScholarDigital Library
- 2.Anklesaria, F., et al. The Internet Gopher protocol (a distributed document search and retrieval protocol). Internet RFC 1436, Mar. 1993.]] Google ScholarDigital Library
- 3.Bass,L.,P.Clements,andR.Kazman.Software Architecture in Practice. Addison Wesley, 1998.]] Google ScholarDigital Library
- 4.Berners-Lee, T. WWW: Past, present, and future. Computer 29, 10 (Oct. 1996), pp. 69-77.]] Google ScholarDigital Library
- 5.Berners-Lee, T., R.T. Fielding, and H.F. Nielsen. Hypertext Transfer Protocol - HTTP/1.0. Internet RFC 1945, May 1996.]] Google Scholar
- 6.Berners-Lee, T., R.T. Fielding, and L. Masinter. Uniform Resource Identifiers (URI): Generic syntax. Internet RFC 2396, Aug. 1998.]] Google ScholarDigital Library
- 7.Chin, R.S., and S.T. Chanson. Distributed object-based programming systems. ACM Computing Surveys 23,1 (Mar. 1991), pp. 91-124.]] Google ScholarDigital Library
- 8.Davis, F., et. al. WAIS interface protocol prototype functional specification (v.1.5). Thinking Machines Corporation, Apr. 1990.]]Google Scholar
- 9.Fielding, R.T. Maintaining distributed hypertext infostructures: Welcome to MOMspider's web. Computer Networks and ISDN Systems 27,2(Nov. 1994), pp. 193~-204.]] Google ScholarDigital Library
- 10.Fielding, R.T., J. Gettys, J.C. Mogul, H.F. Nielsen, L. Masinter, P. Leach, and T. Berners-Lee. Hypertext Transfer Protocol -HTTP/1.1. Internet RFC 2616,June 1999. {Obsoletes RFC 2068, Jan. 1997.}]] Google ScholarDigital Library
- 11.Fielding, R.T., E.J. Whitehead Jr., K.M. Anderson, G.Bolcer,P.Oreizy,andR.N.Taylor.Web-based development of complex information products. Comm. of the ACM 41, 8 (Aug. 1998), pp. 84-92.]] Google ScholarDigital Library
- 12.Fuggetta, A., G.P. Picco, and G. Vigna. Understanding code mobility. IEEE Transactions on Software Engineering 24, 5 (May 1998), pp. 342-361.]] Google ScholarDigital Library
- 13.Garlan, D., and M. Shaw. An introduction to software architecture. Ambriola & Tortola (eds.), Advances in Software Engineering & Knowledge Engineering, vol. II, World Scientific Pub Co., 1993, pp. 1-39.]]Google Scholar
- 14.Gr~nbaek, K., and R.H. Trigg. Design issues for a Dexter-based hypermedia system. Communications of the ACM 37, 2 (Feb. 1994), pp. 41-49.]] Google ScholarDigital Library
- 15.Kristol, D., and L. Montulli. HTTP State Management Mechanism. Internet RFC 2109, Feb. 1997.]] Google ScholarDigital Library
- 16.Manola, F. Technologies for a Web object model. IEEE Internet Computing 3, 1 (Jan.-Feb. 1999), pp. 38-47.]] Google ScholarDigital Library
- 17.Perry, D.E., and A. Wolf. Foundations for the study of software architecture. ACM SIGSOFT Software Engineering Notes 17, 4 (Oct. 1992), pp. 40-52.]] Google ScholarDigital Library
- 18.Postel, J. Media type registration procedure. Internet RFC 1590, Nov. 1996.]] Google ScholarDigital Library
- 19.Postel, J., and J. Reynolds. File Transfer Protocol. Internet STD 9, RFC 959, Oct. 1985.]] Google ScholarDigital Library
- 20.Sinha, A. Client-server computing. Communications of the ACM 35, 7 (July 1992), pp. 77-98.]] Google ScholarDigital Library
- 21.Sollins, K., and L. Masinter. Functional requirements for Uniform Resource Names. Internet RFC 1737,Dec. 1994.]] Google ScholarDigital Library
- 22.Taylor, R.N., N. Medvidovic, K.M. Anderson, E.J. Whitehead Jr., J.E. Robbins, K.A. Nies, P. Oreizy, and D.L. Dubrow. A component- and message-based architectural style for GUI software. IEEE Transactions on Software Engineering 22, 6 (Jun. 1996), pp. 390-406.]] Google ScholarDigital Library
Index Terms
- Principled design of the modern Web architecture
Recommendations
Principled design of the modern Web architecture
The World Wide Web has succeeded in large part because its software architecture has been designed to meet the needs of an Internet-scale distributed hypermedia application. The modern Web architecture emphasizes scalability of component interactions, ...
A Review on Software Architecture Styles with Layered Robotic Software Architecture
ICCUBEA '15: Proceedings of the 2015 International Conference on Computing Communication Control and AutomationThis paper provides an introduction to the field of software engineering requires facility in architectural software design. The goal is to demonstrate the current state of the discipline and examine the ways in which architectural design can impact ...
Software architecture: reflections on an evolving discipline
ESEC/FSE '11: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineeringSoftware Architecture emerged in the 1990's as an important sub-field of software engineering. While good architectural design had long been recognized as critical to the success of any complex software system, before then the practice of architecting ...
Comments