skip to main content
article

Principled design of the modern Web architecture

Published:01 May 2002Publication History
Skip Abstract Section

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 application. 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 article we introduce the Representational State Transfer (REST) architectural style, developed as an abstract model of the Web architecture and used 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.

References

  1. Andrews, G. 1991. Paradigms for process interaction in distributed programs. ACM Computing Surv. 23, 1 (March 1991), 49--90.]] Google ScholarGoogle Scholar
  2. Anklesaria, F., et al. 1993. The Internet Gopher protocol (a distributed document search and retrieval protocol). Internet RFC 1436, March 1993.]] Google ScholarGoogle Scholar
  3. Baker, M., et al. 2002. RESTwiki. <http://conveyor.com/RESTwiki/moin.cgi>, April 2002.]]Google ScholarGoogle Scholar
  4. Barrett, D. J., Clarke, L. A., Tarr, P. L., and Wise, A. E. 1996. A framework for event-based software integration. ACM Trans. Soft. Eng. Methodol. 5, 4 (Oct. 1996), 378--421.]] Google ScholarGoogle Scholar
  5. Bass, L., Clements, P., and Kazman, R. 1996. Software Architecture in Practice. Addison Wesley, Reading, MA.]] Google ScholarGoogle Scholar
  6. Berners-Lee, T. 1994. Universal resource identifiers in WWW. Internet RFC 1630, June 1994.]] Google ScholarGoogle Scholar
  7. Berners-Lee, T., Masinter, L., and McCahill, M. 1994. Uniform resource locators (URL). Internet RFC 1738, Dec. 1994.]] Google ScholarGoogle Scholar
  8. Berners-Lee, T. and Connolly, D. 1995. Hypertext markup language---2.0. Internet RFC 1866, Nov. 1995.]] Google ScholarGoogle Scholar
  9. Berners-Lee, T. 1996. WWW: Past, present, and future. Computer 29, 10 (Oct. 1996), 69--77.]] Google ScholarGoogle Scholar
  10. Berners-Lee, T., Fielding, R. T., and Nielsen, H. F. 1996. Hypertext transfer protocol---HTTP/1.0. Internet RFC 1945, May 1996.]] Google ScholarGoogle Scholar
  11. Berners-Lee, T., Fielding, R. T., and Masinter, L. 1998. Uniform resource identifiers (URI): Generic syntax. Internet RFC 2396, Aug. 1998.]] Google ScholarGoogle Scholar
  12. Brooks, C., Mazer, M. S., Meeks, S., and Miller, J. 1995. Application-specific proxy servers as HTTP stream transducers. In Proceedings of the Fourth International World Wide Web Conference (Boston, MA, Dec. 1995), 539--548.]]Google ScholarGoogle Scholar
  13. Chin, R. S. and Chanson, S. T. 1991. Distributed object-based programming systems. ACM Comput. Surv. 23, 1 (March 1991), 91--124.]] Google ScholarGoogle Scholar
  14. Clark, D. D. and Tennenhouse, D. L. 1990. Architectural considerations for a new generation of protocols. In Proceedings ACM SIGCOMM'90 Symposium (Philadelphia, PA, Sept. 1990), 200--208.]] Google ScholarGoogle Scholar
  15. Davis, F., et. al. 1990. WAIS interface protocol prototype functional specification (v.1.5). Thinking Machines Corp., Apr. 1990.]]Google ScholarGoogle Scholar
  16. Fielding, R. T. 1995. Relative uniform resource locators. Internet RFC 1808, June 1995.]] Google ScholarGoogle Scholar
  17. Fielding, R. T. 1994. Maintaining distributed hypertext infostructures: Welcome to MOMspider's web. Comput. Net. ISDN Syst. 27, 2 (Nov. 1994), 193--204.]] Google ScholarGoogle Scholar
  18. Fielding, R. T. 2000. Architectural styles and the design of network-based software architectures. PhD Dissertation. Dept. of Information and Computer Science, University of California, Irvine.]] Google ScholarGoogle Scholar
  19. Fielding, R. T., Gettys, J., Mogul, J. C., Nielsen, H. F., Masinter, L., Leach, P., and Berners-Lee, T. 1999. Hypertext transfer protocol---HTTP/1.1. Internet RFC 2616, June 1999.]] Google ScholarGoogle Scholar
  20. Fielding, R. T., Whitehead, E. J., Jr., Anderson, K. M., Bolcer, G., Oreizy, P., and Taylor, R. N. 1998. Web-based development of complex information products. Commun. ACM 41, 8 (Aug. 1998), 84--92.]] Google ScholarGoogle Scholar
  21. Flanagan, D. 1999. Java™ in a Nutshell, 3rd ed. O'Reilly & Associates, Sebastopol.]] Google ScholarGoogle Scholar
  22. Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., Sink, E., and Stewart, L. 1999. HTTP authentication: Basic and digest access authentication. Internet RFC 2617, June 1999.]] Google ScholarGoogle Scholar
  23. Freed, N. and Borenstein, N. 1996. Multipurpose internet mail extensions (MIME) Part One: Format of internet message bodies. Internet RFC 2045, Nov. 1996.]] Google ScholarGoogle Scholar
  24. Freed, N., Klensin, J., and J. Postel, J. 1996. Multipurpose internet mail extensions (MIME) Part Four: Registration procedures. Internet RFC 2048, Nov. 1996.]] Google ScholarGoogle Scholar
  25. Fuggetta, A., Picco, G. P., and Vigna, G. 1998. Understanding code mobility. IEEE Trans. Soft. Eng. 24, 5 (May 1998), 342--361.]] Google ScholarGoogle Scholar
  26. Garlan, D. and Shaw, M. 1993. An introduction to software architecture. Ambriola and Tortola, eds. In Advances in Software Engineering & Knowledge Engineering, vol. II, World Scientific 1993, 1--39.]]Google ScholarGoogle Scholar
  27. Glassman, S. 1994. A caching relay for the World Wide Web. Comput. Net. ISDN Syst. 27, 2 (Nov. 1994), 165--173.]] Google ScholarGoogle Scholar
  28. Grønbaek, K. and Trigg, R. H. 1994. Design issues for a Dexter-based hypermedia system. Commun. ACM 37, 2 (Feb. 1994), 41--49.]] Google ScholarGoogle Scholar
  29. Heidemann, J., Obraczka, K., and Touch, J. 1997. Modeling the performance of HTTP over several transport protocols. IEEE/ACM Trans. Net. 5, 5 (Oct. 1997), 616--630.]] Google ScholarGoogle Scholar
  30. Holtman, K. and Mutz, A. 1998. Transparent content negotiation in HTTP. Internet RFC 2295, March 1998.]] Google ScholarGoogle Scholar
  31. Kristol, D. and Montulli, L. 1997. HTTP state management mechanism. Internet RFC 2109, Feb. 1997.]] Google ScholarGoogle Scholar
  32. Luotonen, A. and Altis, K. 1994. World-Wide Web proxies. Comput. Net. ISDN Syst. 27, 2 (Nov. 1994), 147--154.]] Google ScholarGoogle Scholar
  33. Manola, F. 1999. Technologies for a Web object model. IEEE Internet Comput. 3, 1 (Jan.-Feb. 1999), 38--47.]] Google ScholarGoogle Scholar
  34. Maurer, H. 1996. HyperWave: The Next-Generation Web Solution. Addison-Wesley, Harlow, England, 1996.]] Google ScholarGoogle Scholar
  35. Mogul, J., Fielding, R. T., Gettys, J., and Nielsen, H. F. 1997. Use and interpretation of HTTP version numbers. Internet RFC 2145, May 1997.]] Google ScholarGoogle Scholar
  36. Nielsen, H. F., Leach, P., and Lawrence, S. 2000. HTTP extension framework, Internet RFC 2774, Feb. 2000.]] Google ScholarGoogle Scholar
  37. Padmanabhan, V. N. and Mogul, J. C. 1995. Improving HTTP latency. Comput. Net. ISDN Syst. 28 (Dec. 1995), 25--35.]] Google ScholarGoogle Scholar
  38. Perry, D. E. and Wolf, A. 1992. Foundations for the study of software architecture. ACM SIGSOFT Soft. Eng. Notes 17, 4 (Oct. 1992), 40--52.]] Google ScholarGoogle Scholar
  39. Postel, J. 1996. Media type registration procedure. Internet RFC 1590, Nov. 1996.]] Google ScholarGoogle Scholar
  40. Postel, J. and Reynolds, J. 1985. File transfer protocol. Internet STD 9, RFC 959, Oct. 1985.]] Google ScholarGoogle Scholar
  41. Rosenblum, D. S. and Wolf, A. L. 1997. A design framework for Internet-scale event observation and notification. In Proceedings of the 6th European Software Engineering Conference and 5th ACM SIGSOFT Symposium on the Foundations of Software Engineering (Zurich, Switzerland, Sept. 1997), 344--360.]] Google ScholarGoogle Scholar
  42. Sinha, A. 1992. Client-server computing. Commun. ACM 35, 7 (July 1992), 77--98.]] Google ScholarGoogle Scholar
  43. Sollins, K. and Masinter, L. 1994. Functional requirements for Uniform Resource Names. Internet RFC 1737, Dec. 1994.]] Google ScholarGoogle Scholar
  44. Spero, S. E. 1994. Analysis of HTTP performance problems. Published on the Web, <http://metalab.unc.edu/mdma-release/http-prob.html>.]]Google ScholarGoogle Scholar
  45. Sullivan, K. J. and Notkin, D. 1992. Reconciling environment integration and software evolution. ACM Trans. Soft. Eng. Methodol. 1, 3 (July 1992), 229--268.]] Google ScholarGoogle Scholar
  46. Taylor, R. N., Medvidovic, N., Anderson, K. M., Whitehead Jr., E. J., Robbins, J. E., Nies, K. A., Oreizy, P., and Dubrow, D. L. 1996. A component- and message-based architectural style for GUI software. IEEE Trans. Soft. Eng. 22, 6 (June 1996), 390--406.]] Google ScholarGoogle Scholar
  47. Waldo, J., Wyant, G., Wollrath, A., and Kendall, S. 1994. A note on distributed computing. Tech. Rep. SMLI TR-94-29, Sun Microsystems Laboratories, Inc., Nov. 1994.]] Google ScholarGoogle Scholar
  48. Wolman, A., Voelker, G., Sharma, N., Cardwell, N., Brown, M., Landray, T., Pinnel, D., Karlin, A., and Levy, H. 1999. Organization-based analysis of Web-object sharing and caching. In Proceedings of the 2nd USENIX Conference on Internet Technologies and Systems (Oct. 1999).]] Google ScholarGoogle Scholar

Index Terms

  1. Principled design of the modern Web architecture

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in

                Full Access

                • Published in

                  cover image ACM Transactions on Internet Technology
                  ACM Transactions on Internet Technology  Volume 2, Issue 2
                  May 2002
                  107 pages
                  ISSN:1533-5399
                  EISSN:1557-6051
                  DOI:10.1145/514183
                  Issue’s Table of Contents

                  Copyright © 2002 ACM

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 1 May 2002
                  Published in toit Volume 2, Issue 2

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • article

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader