A little REST and Relaxation
ApacheCon


                    Roy T. Fielding, Ph.D.
                     Chief Scientist, ...
Between us, we cover all knowledge;
  he knows all that can be known and I know the REST. [Mark Twain]



Representational...
Life's race will run, Life's work well done, Life's victory won,
  Now cometh REST. [Dr. Edward Hazen Parker]



Why me?  ...
Absence of occupation is not REST,
   A mind quite vacant is a mind distress'd. [William Cowper]



The Web Problem (circa...
Everywhere I have sought REST and not found it, except
   sitting in a corner by myself with a little book. [Thomas Kempis...
Da requiem; requietus ager bene credita reddit. [Ovid]
  (Take REST; a field that has RESTed gives a bountiful crop.)



A...
Styles of Architectural Design
Design at the right level of abstraction
    ! Styles help architects communicate architect...
Oh, some seek bread--no more--life's mere subsistence, ...



What is the Web, really?
                                   ...
... And some seek wealth and ease--the common quest; ...



Web Implementation




Roy T. Fielding. “A little REST and Rel...
... And some seek fame, that hovers in the distance; ...



Web Architecture
One abstraction above the implementation
Comp...
... But all are seeking REST. [Rev. Frederick Langbridge]



Web Architectural Style
One abstraction level above Architect...
REST is not quitting the busy career;
  REST is the fitting of self to its sphere. [John Sullivan Dwight]



Web Requireme...
Agenda


REST retrospective
What is REST?
Why REST?
REST at Day


Q&A

Roy T. Fielding. “A little REST and Relaxation.” Ap...
Sometimes the most urgent and vital thing you can possibly do
  is take a complete REST. [Ashleigh Brilliant]



REST on a...
How beautiful it is to do nothing,
  and then REST afterward. [Spanish Proverb]



Style = nil

                 Starting ...
REST is not idleness, ...



Style += Client/Server

                  Apply separation of concerns: Client-Server




   ...
... and to lie sometimes on the grass ...



Style                                += Stateless

                          ...
... under the trees on a summer's day, ...



Style                                += Caching

                           ...
... listening to the murmur of water, ...



Style                                += Uniform Interface

                  ...
... or watching the clouds float across the sky, ...



Style                                += Layered System
           ...
... is by no means a waste of time. [Sir John Lubbock]



REST Style
                        Finally, allow code-on-demand...
REST Uniform Interface
All important resources are identified by one
(uniform) resource identifier mechanism
         ! si...
REST Uniform Interface
Hypertext as the engine of application state
    ! A successful response indicates (or contains) a ...
Hypertext Clarification
Hypertext has many (old) definitions
    ! quot;By 'hypertext,' I mean non-sequential writing — te...
Hypertext Clarification
Hypertext has many (old) definitions
    ! quot;By 'hypertext,' I mean non-sequential writing — te...
Agenda


REST retrospective
What is REST?
Why REST?
REST at Day


Q&A

Roy T. Fielding. “A little REST and Relaxation.” Ap...
Benefits of REST-based Architecture
Maximizes reuse
    ! uniform resources having identifiers = Bigger WWW
    ! visibili...
Benefits of REST-based Architecture
Simplifies
    ! hypertext is standardized (fewer UIs)
Simplifies
    ! identification...
What if: Non-Uniform Interface
If the interface would be resource-specific...
    ! URI is no longer sufficient for resour...
What if: Non-Uniform Interface
        se Bu
If the interface would be resource-specific...
               rlonger suffici...
Client:    Excuse me. Did you say knives?
  Architect: Rotating knives, yes. [Monty Python’s Flying Circus]



Industry Pr...
Cast off the cares that have so long oppressed;
  REST, sweetly REST! [Jane Laurie Borthwick]



Industry Reaction?
Not ve...
REST is sweet after strife. [Lord Edward Robert Bulwer Lytton]



Industry Acceptance
Something has changed ...
    ! Peop...
Agenda


REST retrospective
What is REST?
Why REST?
REST at Day


Q&A

Roy T. Fielding. “A little REST and Relaxation.” Ap...
REST when you're weary. Refresh and renew yourself, your body,
  your mind, your spirit. Then get back to work. [Ralph Mar...
REST when you're weary. Refresh and renew yourself, your body,
  your mind, your spirit. Then get back to work. [Ralph Mar...
Intermediary and Cache Friendly



                                                                    Intermediary
      ...
Intermediary and Cache Friendly

                                                                   REST
Layered Client/Se...
Sep-04-07




Standards


                Accounting                         Marketing                           Legal    ...
Sep-04-07




Standards

                                                                   REST
                       Al...
Products




Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007   36
Products

                                                                   REST
         Hypertext is the
    Engine of ...
Let the weary at length possess quiet REST.
  [Lucius Annaeus Seneca]



Agenda


REST retrospective
What is REST?
Why RES...
Upcoming SlideShare
Loading in...5
×

200711 R E S T Apache Con

1,920

Published on

apache rest day

Published in: Technology, Business
1 Comment
1 Like
Statistics
Notes

  • good presentation about rest...

    <b>[Comment posted from</b> http://wso2.org/library/presentations/autoscaling-axis2-web-services-amazon-ec2]
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
1,920
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
42
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

200711 R E S T Apache Con

  1. 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/200711_REST_ApacheCon.pdf Leading the Wave of Open Source
  2. 2. Between us, we cover all knowledge; he knows all that can be known and I know the REST. [Mark Twain] Representational State Transfer REST retrospective What is REST? Why REST? REST at Day Q&A Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 2
  3. 3. Life's race will run, Life's work well done, Life's victory won, Now cometh REST. [Dr. Edward Hazen Parker] Why me? Oct 07 = 142,805,398 (6,072x) 23,517 Using XMosaic L E libwww-perl OD HTTP editor M CT JE Relative OB www.ics.uci.edu URLs P T 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 US, 15 November 2007 3
  4. 4. 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 US, 15 November 2007 4
  5. 5. 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 US, 15 November 2007 5
  6. 6. 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 US, 15 November 2007 6
  7. 7. 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 ! Architectural patterns are styles with common recipes Just because it’s called architecture ... S MER TO CUS e ecom Os b I re C Whe Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 7
  8. 8. Oh, some seek bread--no more--life's mere subsistence, ... What is the Web, really? Information Browsers Protocols Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 8
  9. 9. ... And some seek wealth and ease--the common quest; ... Web Implementation Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 9
  10. 10. ... And some seek fame, that hovers in the distance; ... Web Architecture One abstraction above the 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, ...: common representation formats to describe and bind resources Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 10
  11. 11. ... But all are seeking REST. [Rev. Frederick Langbridge] Web Architectural Style One abstraction level above Architecture ! two abstraction levels above implementation ! that’s one too many for most folks 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 Constraints induce architectural properties ! both desirable and undesirable properties ! a.k.a., software qualities ! a.k.a., design trade-offs Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 11
  12. 12. REST is not quitting the busy career; REST is the fitting of self to its sphere. [John Sullivan Dwight] Web Requirements Low entry barrier ! Hypermedia User Interface ! Simple protocols for authoring and data transfer ! a.k.a., must be Simple, Reusable, and Extensible Distributed Hypermedia System ! Large data transfers ! Sensitive to user-perceived latency ! a.k.a., must be Data-driven, Streamable, and Cacheable Multiple organizational boundaries ! Anarchic scalability ! Gradual and fragmented change (deployment) ! a.k.a, must be Scalable, Evolvable, Visible, Reliable, ... Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 12
  13. 13. Agenda REST retrospective What is REST? Why REST? REST at Day Q&A Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 13
  14. 14. 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 US, 15 November 2007 14
  15. 15. 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 US, 15 November 2007 15
  16. 16. 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.” ApacheCon US, 15 November 2007 16
  17. 17. ... and to lie sometimes on the grass ... Style += Stateless Constrain interaction to be stateless… simplifies server degrades efficiency improves scalability improves reliability Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 17
  18. 18. ... under the trees on a summer's day, ... Style += Caching Add optional non-shared caching $ $ reduces average latency degrades reliability improves efficiency improves scalability Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 18
  19. 19. ... listening to the murmur of water, ... Style += Uniform Interface Apply generality: uniform interface constraint $ $ $ improves visibility degrades efficiency independent evolvability decouples implementation Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 19
  20. 20. ... or watching the clouds float across the sky, ... Style += Layered System Apply info hiding: layered system constraints $ $ $ $ $ $ $ $ adds latency shared caching legacy encapsulation simplifies clients improves scalability load balancing Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 20
  21. 21. ... is by no means a waste of time. [Sir John Lubbock] REST Style Finally, allow code-on-demand (applets/js) $ $ $ $ $ $ $ $ simplifies clients improves extensibility reduces visibility Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 21
  22. 22. REST Uniform Interface All important resources are identified by one (uniform) resource identifier mechanism ! simple, visible, reusable, stateless communication Access methods (actions) mean the same for all resources (universal semantics) ! layered system, cacheable, and shared caches Resources are manipulated through the exchange of representations ! simple, visible, reusable, cacheable, and stateless communication Exchanged as self-descriptive messages ! layered system, cacheable, and shared caches Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 22
  23. 23. REST Uniform Interface Hypertext as the engine of application state ! A successful response indicates (or contains) a current representation of the state of the identified resource; the resource remains hidden behind the interface. ! Some representations contain links to potential next application states, including direction on how to transition to those states when a transition is selected. ! Each steady-state (Web page) embodies the current application state ! simple, visible, scalable, reliable, reusable, and cacheable ! All application state (not resource state) is kept on client ! All shared state (not session state) is kept on origin server Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 23
  24. 24. Hypertext Clarification Hypertext has many (old) definitions ! quot;By 'hypertext,' I mean non-sequential writing — text that branches and allows choices to the reader, best read at an interactive screen. As popularly conceived, this is a series of text chunks connected by links which offer the reader different pathwaysquot; [Theodor H. Nelson] ! “Hypertext is a computer-supported medium for information in which many interlinked documents are displayed with their links on a high-resolution computer screen.” [Jeffrey Conklin] When I say Hypertext, I mean ... ! The simultaneous presentation of information and controls such that the information becomes the affordance through which the user obtains choices and selects actions. ! Hypertext does not need to be HTML on a browser ! machines can follow links when they understand the data format and relationship types Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 24
  25. 25. Hypertext Clarification Hypertext has many (old) definitions ! quot;By 'hypertext,' I mean non-sequential writing — text that branches and allows choices Hypertext = non-linear documents to the reader, best read at an interactive screen. As popularly conceived, this is a series of text chunks connected by links which offer the reader different pathwaysquot; [Theodor H. Nelson] ! “Hypertext is a computer-supported medium for information in which many interlinked Hypertext = selectable GUI controls documents are displayed with their links on a high-resolution computer screen.” [Jeffrey Conklin] When I say Hypertext, I mean ... ! The simultaneous presentation of information and controls Hypertext = data-guided controls such that the information becomes the affordance through which the user obtains choices and selects actions. ! Hypertext does not need to be HTML on a browser ! machines can follow links when they understand the data format and relationship types Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 24
  26. 26. Agenda REST retrospective What is REST? Why REST? REST at Day Q&A Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 25
  27. 27. Benefits of REST-based Architecture Maximizes reuse ! uniform resources having identifiers = Bigger WWW ! visibility results in serendipity Minimizes coupling to enable evolution ! uniform interface hides all implementation details ! hypertext allows late-binding of application control-flow ! gradual and fragmented change across organizations Eliminates partial failure conditions ! server failure does not befuddle client state ! shared state is recoverable as a resource Scales without bound ! services can be layered, clustered, and cached Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 26
  28. 28. Benefits of REST-based Architecture Simplifies ! hypertext is standardized (fewer UIs) Simplifies ! identification is standardized (less communication) Simplifies ! exchange protocols are standardized (fewer integrations) Simplifies ! interactions are standardized (fewer semantics) Simplifies ! data formats are standardized (fewer translations) Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 27
  29. 29. What if: Non-Uniform Interface If the interface would be resource-specific... ! URI is no longer sufficient for resource identification ! lose benefit of URI exchange (assumed GET) ! require resource description language ! Information becomes segregated by resource type ! walled into gardens (loss of power laws / pagerank) ! important information must be replicated ! Intermediaries cannot encapsulate services ! unable to anticipate resource behavior ! too complex to cache based on method semantics ! No more serendipity ! mashups must be defined per interface ! services become tightly coupled Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 28
  30. 30. What if: Non-Uniform Interface se Bu If the interface would be resource-specific... rlonger sufficient for resource identification tw ! URI is no io us ou ob ly ! lose benefit of URI exchange (assumed GET) ld vbecomes segregated by resource type ! require resource description language su ! Information io an us gg yo ly ! walled into gardens (loss of power laws / pagerank) esservicesn ! important information must be replicated du e ! Intermediaries cannot encapsulate t mb suc ! unable to anticipate resource behavior ide h a ! too complex to cache based on method semantics ! No more serendipity a? n ! mashups must be defined per interface ! services become tightly coupled Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 28
  31. 31. Client: Excuse me. Did you say knives? Architect: Rotating knives, yes. [Monty Python’s Flying Circus] Industry Practice Meanwhile, in a parallel universe ... ! http://www.youtube.com/watch?v=-RxhkWLJH4Y ! Microsoft was selling COM+/DCOM ! IBM and friends were selling CORBA ! Sun was selling RMI ! W3C was developing XML ! Then SOAP was dropped on the shower floor as an Internet Draft ! and quickly laughed out of the IETF ! only to be picked up by IBM and renamed “Web Services” ! and REST became the only counter-argument to multi-billions in advertising Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 29
  32. 32. Cast off the cares that have so long oppressed; REST, sweetly REST! [Jane Laurie Borthwick] Industry Reaction? Not very constructive ! proponents labeled as RESTafarians ! arguments derided as a “religion” ! excused as “too simple for real services” Service-Oriented Architecture (SOA) ! a direct response to REST ! attempt at an architectural style for WS ! without any constraints ! What is SOA? ! Wardrobe, Musical Notes, or Legos? ! http://www.youtube.com/profile_videos?user=richneckyogi Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 30
  33. 33. REST is sweet after strife. [Lord Edward Robert Bulwer Lytton] Industry Acceptance Something has changed ... ! People started to talk about the value of URIs (reusable resources) ! Google maps decided to encourage reuse (Mashups) ! O’Reilly began talking about Web 2.0 ! Rails reminded people that frameworks can be simple and REST(ful) became an industry buzzword Yikes! Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 31
  34. 34. Agenda REST retrospective What is REST? Why REST? REST at Day Q&A Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 32
  35. 35. REST when you're weary. Refresh and renew yourself, your body, your mind, your spirit. Then get back to work. [Ralph Marston] Vision 1 Everything is Content Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 33
  36. 36. REST when you're weary. Refresh and renew yourself, your body, your mind, your spirit. Then get back to work. [Ralph Marston] Vision REST All important resources have uniform identifiers 1 Everything is Content Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 33
  37. 37. Intermediary and Cache Friendly Intermediary Proxy Cache Users Webserver Communiqué Author (Authors) Dispatcher Cache Standalone or AppServer Centralized DataSource RDBMS, NFS, SAN Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 34
  38. 38. Intermediary and Cache Friendly REST Layered Client/Server Design Intermediary Proxy Cache for Intermediate Processing Users Webserver Communiqué Author (Authors) Dispatcher Cache Standalone or AppServer Centralized DataSource RDBMS, NFS, SAN Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 34
  39. 39. Sep-04-07 Standards Accounting Marketing Legal HR R&D Web Frontend Application A Application B Application C Application D Application E JSR-170 API Java Content Repository Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 35
  40. 40. Sep-04-07 Standards REST All resources Accounting Marketing Legal HR R&D have uniform interface Web Frontend Application A Application B Application C Application D Application E JSR-170 API Java Content Repository Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 35
  41. 41. Products Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 36
  42. 42. Products REST Hypertext is the Engine of Application State Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 36
  43. 43. Let the weary at length possess quiet REST. [Lucius Annaeus Seneca] Agenda REST retrospective What is REST? Why REST? REST at Day Q&A Roy T. Fielding. “A little REST and Relaxation.” ApacheCon US, 15 November 2007 37
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×