Slideshow transcript
Slide 1: A little REST and Relaxation ApacheCon Roy T. Fielding, Ph.D. Chief Scientist, Day Software V.P., Apache HTTP Server http://roy.gbiv.com/talks/200804_REST_ApacheCon.pdf Leading the Wave of Open Source
Slide 2: Between us, we cover all knowledge; he knows all that can be known and I know the REST. [Mark Twain] Representational State Transfer Web retrospective Understanding Architecture What is REST? Why REST? REST at Day Q&A Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 2
Slide 3: Life's race will run, Life's work well done, Life's victory won, Now cometh REST. [Dr. Edward Hazen Parker] Context Mar 08 = 162,662,052 (6,917x) 23,517 10,022 2,738 623 130 Jun 93 Dec 93 Jun 94 Dec 94 Jun 95 Public WWW servers [Matthew Gray] Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 3
Slide 4: Life's race will run, Life's work well done, Life's victory won, Now cometh REST. [Dr. Edward Hazen Parker] Context Mar 08 = 162,662,052 (6,917x) 23,517 Using XMosaic www.ics.uci.edu wwwstat 10,022 MOMspider Conditional GET 2,738 1st WWW 623 130 Jun 93 Dec 93 Jun 94 Dec 94 Jun 95 Public WWW servers [Matthew Gray] Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 3
Slide 5: Life's race will run, Life's work well done, Life's victory won, Now cometh REST. [Dr. Edward Hazen Parker] Context Mar 08 = 162,662,052 (6,917x) 23,517 Using XMosaic www.ics.uci.edu wwwstat 10,022 MOMspider Conditional GET 2,738 1st WWW 623 130 Jun 93 Dec 93 Jun 94 Dec 94 Jun 95 Public WWW servers [Matthew Gray] Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 3
Slide 6: Life's race will run, Life's work well done, Life's victory won, Now cometh REST. [Dr. Edward Hazen Parker] Context Mar 08 = 162,662,052 (6,917x) 23,517 Using XMosaic libwww-perl Relative www.ics.uci.edu URLs wwwstat HTML 10,022 2.0 MOMspider Conditional 2nd WWW GET 2,738 1st WWW 623 130 Jun 93 Dec 93 Jun 94 Dec 94 Jun 95 Public WWW servers [Matthew Gray] Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 3
Slide 7: Life's race will run, Life's work well done, Life's victory won, Now cometh REST. [Dr. Edward Hazen Parker] Context Mar 08 = 162,662,052 (6,917x) 23,517 Using XMosaic L E libwww-perl OD HTTP editor M CT JE Relative OB www.ics.uci.edu URLs TP HT AS NS wwwstat GI BE HTML ST 10,022 RE 2.0 MOMspider SJ IETF Conditional 2nd WWW GET 2,738 1st WWW 623 130 Jun 93 Dec 93 Jun 94 Dec 94 Jun 95 Public WWW servers [Matthew Gray] Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 3
Slide 8: Absence of occupation is not REST, A mind quite vacant is a mind distress'd. [William Cowper] The Web Problem (circa 1994) Early architecture based on solid principles ‣ URLs, separation of concerns, simplicity lacked architectural description and rationale Protocols assumed a direct server connection ‣ no awareness of caching, proxies, or spiders ‣ many independent extensions Emerging awareness of the Web ‣ exponential growth threatened the Internet commercialization meant new stakeholders with new (selfish) requirements A modern Web architecture was needed ‣ but how do we avoid breaking the Web in the process? Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 4
Slide 9: REST is not quitting the busy career; REST is the fitting of self to its sphere. [John Sullivan Dwight] Web Requirements & Properties Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 5
Slide 10: REST is not quitting the busy career; REST is the fitting of self to its sphere. [John Sullivan Dwight] Web Requirements & Properties Low entry barrier Hypermedia User Interface Simple protocols for authoring and data transfer ‣ must be Simple and Reusable; want Extensible Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 5
Slide 11: REST is not quitting the busy career; REST is the fitting of self to its sphere. [John Sullivan Dwight] Web Requirements & Properties Low entry barrier Hypermedia User Interface Simple protocols for authoring and data transfer ‣ must be Simple and Reusable; want Extensible Distributed Hypermedia System Large data transfers Sensitive to user-perceived latency ‣ must be Data-driven and Streamable; want Performant Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 5
Slide 12: REST is not quitting the busy career; REST is the fitting of self to its sphere. [John Sullivan Dwight] Web Requirements & Properties Low entry barrier Hypermedia User Interface Simple protocols for authoring and data transfer ‣ must be Simple and Reusable; want Extensible Distributed Hypermedia System Large data transfers Sensitive to user-perceived latency ‣ must be Data-driven and Streamable; want Performant Multiple organizational boundaries Anarchic scalability Gradual and fragmented change (deployment) ‣ must be Scalable, Portable, Evolvable; want Reliable, Visible, Customizable, Configurable, Extensible, ... Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 5
Slide 13: Oh, some seek bread--no more--life's mere subsistence, ... What is the Web, really? Information Browsers http://www.w3.org/TR/html4/ next table of contents elements attributes index Network Working Group R. Fielding Request for Comments: 2068 UC Irvine Category: Standards Track J. Gettys J. C. Mogul DEC H. Frystyk T. Berners-Lee HTML 4.01 Specification MIT/LCS January 1997 W3C Recommendation 24 December 1999 This version: http://www.w3.org/TR/1999/REC-html401-19991224 Hypertext Transfer Protocol -- HTTP/1.1 (plain text [794Kb], gzip'ed tar archive of HTML files [371Kb], a .zip archive of HTML files [405Kb], gzip'ed Postscript file [746Kb, 389 pages], gzip'ed PDF file [963Kb]) Latest version of HTML 4.01: Status of this Memo http://www.w3.org/TR/html401 Latest version of HTML 4: http://www.w3.org/TR/html4 file://localhost/Users/fielding/ws/labs-webarch/uri/rfc/rfc3986.html This document specifies an Internet standards track protocol for the Internet community, and requests Latest version of HTML: discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official http://www.w3.org/TR/html Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this Previous version of HTML 4.01: Network Working Group T. Berners-Lee memo is unlimited. http://www.w3.org/TR/1999/PR-html40-19990824 Request for Comments: 3986 W3C/MIT Previous HTML 4 Recommendation: Obsoletes: 2732, 2396, 1808 R. Fielding AbstractDay Software http://www.w3.org/TR/1998/REC-html40-19980424 STD: 66 Editors: Dave Raggett <dsr@w3.org> Updates: 1738 L. Masinter The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, Arnaud Le Hors, W3C Category: Standards Track Adobe Systems hypermedia information systems. It is a generic, stateless, object-oriented protocol which can be used for Ian Jacobs, W3C many tasks, such January 2005 and distributed object management systems, through extension of its as name servers Copyright ©1997-1999 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use request methods. A feature of HTTP is the typing and negotiation of data representation, allowing systems and software licensing rules apply. to be built independently of the data being transferred. Uniform Resource Identifier (URI):by the World-Wide Web global information initiative since 1990. This specification HTTP has been in use Generic Syntax the protocol referred to as “HTTP/1.1”. Abstract defines This specification defines the HyperText Markup Language (HTML), the publishing language of the Status of this Memo World Wide Web. This specification defines HTML 4.01, which is a subversion of HTML 4. In addition to the text, multimedia, and hyperlink features of the previous versions of HTML (HTML 3.2 [HTML32] and HTML 2.0 [RFC1866]), HTML 4 supports more multimedia options, This document specifies an Internet standards track protocol for the Internet community, scripting languages, style sheets, better printing facilities, and documents that are more accessible to users with disabilities. and suggestions for improvements. Please refer to the current and requests discussion HTML 4 also takes great strides towards the internationalization of documents, with the goal of making edition of the “Internet Official Protocol Standards” (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. the Web truly World Wide. Copyright Notice HTML 4 is an SGML application conforming to International Standard ISO 8879 -- Standard Generalized Markup Language [ISO8879]. Copyright © The Internet Society (2005). All Rights Reserved. Status of this document Abstract This section describes the status of this document at the time of its publication. Other documents may Protocols supersede this document. The latest status of this document series is maintained atResource Identifier (URI) is a compact sequence of characters that identifies an A Uniform the W3C. abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative 4/2/08 12:09 AM grammar for URIs; that task is performed by the individual specifications of each URI scheme. Fielding, et al Standards Track [Page 1] Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 6
Slide 14: ... And some seek wealth and ease--the common quest; ... Web Implementation (user view) Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 7
Slide 15: ... And some seek wealth and ease--the common quest; ... Web Implementation (user view) Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 7
Slide 16: ... And some seek wealth and ease--the common quest; ... Web Implementation (user view) Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 7
Slide 17: ... And some seek wealth and ease--the common quest; ... Web Implementation (user view) Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 7
Slide 18: ... And some seek wealth and ease--the common quest; ... Web Implementation (user view) Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 7
Slide 19: ... And some seek wealth and ease--the common quest; ... Web Implementation (user view) Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 7
Slide 20: ... And some seek fame, that hovers in the distance; ... Web Implementation (origin view) Intermediary Proxy Cache User Agents Webservers/Gateways Application Servers Accelerator Cache Dynamic Content Centralized Data RDBMS, NFS, SAN Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 8
Slide 21: ... But all are seeking REST. [Rev. Frederick Langbridge] Web Architecture A vertical abstraction on implementation User Agents $ $ $ Proxies Gateways Origin Servers $ $ $ $ $ Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 9
Slide 22: ... But all are seeking REST. [Rev. Frederick Langbridge] Web Architecture A vertical abstraction on implementation http://www.w3.org/TR/html4/ next table of contents elements attributes index Network Working Group R. Fielding Request for Comments: 2068 UC Irvine Category: Standards Track J. Gettys J. C. Mogul DEC H. Frystyk T. Berners-Lee HTML 4.01 Specification MIT/LCS January 1997 W3C Recommendation 24 December 1999 This version: http://www.w3.org/TR/1999/REC-html401-19991224 Hypertext Transfer Protocol -- HTTP/1.1 (plain text [794Kb], gzip'ed tar archive of HTML files [371Kb], a .zip archive of HTML files [405Kb], gzip'ed Postscript file [746Kb, 389 pages], gzip'ed PDF file [963Kb]) Latest version of HTML 4.01: Status of this Memo http://www.w3.org/TR/html401 Latest version of HTML 4: http://www.w3.org/TR/html4 file://localhost/Users/fielding/ws/labs-webarch/uri/rfc/rfc3986.html This document specifies an Internet standards track protocol for the Internet community, and requests Latest version of HTML: discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official http://www.w3.org/TR/html Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this Previous version of HTML 4.01: Network Working Group T. Berners-Lee memo is unlimited. http://www.w3.org/TR/1999/PR-html40-19990824 Request for Comments: 3986 W3C/MIT Previous HTML 4 Recommendation: Obsoletes: 2732, 2396, 1808 R. Fielding AbstractDay Software http://www.w3.org/TR/1998/REC-html40-19980424 STD: 66 Editors: Dave Raggett <dsr@w3.org> Updates: 1738 L. Masinter The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, Arnaud Le Hors, W3C Category: Standards Track Adobe Systems hypermedia information systems. It is a generic, stateless, object-oriented protocol which can be used for Ian Jacobs, W3C many tasks, such January 2005 and distributed object management systems, through extension of its as name servers Copyright ©1997-1999 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use request methods. A feature of HTTP is the typing and negotiation of data representation, allowing systems and software licensing rules apply. to be built independently of the data being transferred. Uniform Resource Identifier (URI):by the World-Wide Web global information initiative since 1990. This specification HTTP has been in use Generic Syntax the protocol referred to as “HTTP/1.1”. Abstract defines This specification defines the HyperText Markup Language (HTML), the publishing language of the Status of this Memo World Wide Web. This specification defines HTML 4.01, which is a subversion of HTML 4. In addition to the text, multimedia, and hyperlink features of the previous versions of HTML (HTML 3.2 [HTML32] and HTML 2.0 [RFC1866]), HTML 4 supports more multimedia options, This document specifies an Internet standards track protocol for the Internet community, scripting languages, style sheets, better printing facilities, and documents that are more accessible to users with disabilities. and suggestions for improvements. Please refer to the current and requests discussion HTML 4 also takes great strides towards the internationalization of documents, with the goal of making edition of the “Internet Official Protocol Standards” (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. the Web truly World Wide. Copyright Notice HTML 4 is an SGML application conforming to International Standard ISO 8879 -- Standard Generalized Markup Language [ISO8879]. Copyright © The Internet Society (2005). All Rights Reserved. Status of this document Abstract This section describes the status of this document at the time of its publication. Other documents may Protocols supersede this document. The latest status of this document series is maintained atResource Identifier (URI) is a compact sequence of characters that identifies an A Uniform the W3C. abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative 4/2/08 12:09 AM grammar for URIs; that task is performed by the individual specifications of each URI scheme. Fielding, et al Standards Track [Page 1] 4/2/08 12:16 AM Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 10
Slide 23: Web Architecture A vertical abstraction on implementation Components ‣ User agents, Intermediaries, Servers ‣ Browsers, Spiders, Proxies, Gateways, Origin Servers Connectors ‣ HTTP: a standard transfer protocol to prefer over many Data ‣ URI: one identifier standard for all resources ‣ HTML, XML, RDF, PDF, JPEG, JSON, ... common representation formats to describe and bind resources Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 11
Slide 24: Agenda Web retrospective Understanding Architecture What is REST? Why REST? REST at Day Q&A Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 12
Slide 25: NOT “Enterprise Architecture” Half of what you read about Architecture in Software Industry trade rags is WRONG ‣ it usually isn’t even about architecture strategic vision resource planning requirements analysis stakeholder reviews staffing & purchasing software structure libraries/frameworks buzzword-compliance The same folks will be selling REST ‣ there will be lots of miscommunication (in and out) Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 13
Slide 26: NOT “Enterprise Architecture” Half of what you read about Architecture in Software Industry trade rags is WRONG ‣ it usually isn’t even about architecture strategic vision resource planning requirements analysis stakeholder reviews This MSDN site panders in the worst way... staffing & purchasing “Solutions Architect” software structure “Infrastructure Architect” (CTO/sysadmins) libraries/frameworks “Enterprise Architect” (CIO/manager) buzzword-compliance The same folks will be selling REST ‣ there will be lots of miscommunication (in and out) Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 13
Slide 27: Everywhere I have sought REST and not found it, except sitting in a corner by myself with a little book. [Thomas Kempis] Software Architecture A software architecture is an abstraction of the run-time elements of a software system during some phase of its operation. ‣ A system may be composed of many levels of abstraction and many phases of operation, each with its own software architecture. ‣ A software architecture is defined by a configuration of architectural elements—components, connectors, and data—constrained in their relationships in order to achieve a desired set of architectural properties. A configuration is the structure of architectural relationships among components, connectors, and data during a period of system run-time. Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 14
Slide 28: Da requiem; requietus ager bene credita reddit. [Ovid] (Take REST; a field that has RESTed gives a bountiful crop.) Architectural Styles An architectural style is a coordinated set of architectural constraints that restricts the roles and features of architectural elements, and the allowed relationships among those elements, within any architecture that conforms to that style. ‣ A style can be applied to many architectures. ‣ An architecture can consist of many styles. Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 15
Slide 29: Architectural Design Process Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 16
Slide 30: Architectural Design Process think, think, think, think, think, think, still thinking ... Maybe there’s a template in Visio Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 16
Slide 31: Architectural Design Process Look at what think, think, think, works in practice, think, think, think, identify styles, ... still thinking and see how they can Maybe there’s a be combined to template in Visio obtain properties Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 16
Slide 37: Architectural Styles A horizontal abstraction on architecture ‣ that’s one too many abstractions for most folks ‣ a way of naming architectural patterns in implementation An architectural style is a set of constraints ‣ unfortunately, constraints are hard to visualize kind of like gravity or electromagnetism observed only by their effect on others ‣ and they are voluntary there are no architecture police, but there are many architecture critics Constraints induce architectural properties ‣ both desirable and undesirable properties a.k.a., software qualities and design trade-offs Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 22
Slide 38: Styles of Architectural Design Design at the right level of abstraction ‣ Styles help architects communicate architecture ‣ Architecture determines potential system properties ‣ Implementation determines actual system properties Sometimes known by other names ‣ Systems Engineering (when it includes software) ‣ Architectural Patterns (styles with common recipes) Just because it’s called architecture ... Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 23
Slide 39: Agenda Web retrospective Understanding Architecture What is REST? Why REST? REST at Day Q&A Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 24
Slide 40: Sometimes the most urgent and vital thing you can possibly do is take a complete REST. [Ashleigh Brilliant] REST on a slide pro layered gra replicated mm uniform interface abl separated e RR CS LS VM U i nt pr erme oc d on-demand stateless es iat mobile simple sin e visible g $ CSS LCS COD reusable reliable shared extensible cacheable scalable multi- C$SS LC$SS org. LCODC$SS REST Figure 5-9. REST Derivation by Style Constraints the disadvantages) of the optional constraints when they are known to be in effect for some Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 25
Slide 41: How beautiful it is to do nothing, and then REST afterward. [Spanish Proverb] Style = nil Starting from a condition of no constraints… WWW Roy T. Fielding. “A little REST and Relaxation.” ApacheCon Europe, 10 April 2008 26
Slide 42: REST is not idleness, ... Style += Client/Server Apply separation of concerns: Client-Server improves UI portability simplifies server enables multiple organizational domains Roy T. Fielding. “A little REST and Relaxation.


Add a comment on Slide 1
If you have a SlideShare account, login to comment; else you can comment as a guest- Favorites & Groups
Showing 1-50 of 4 (more)