Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.



Published on

Published in: Technology
  • Login to see the comments


  1. 1. Give it a REST already Arnon Rotem-Gal-Oz VP R&D xsights
  2. 2. Some Theory
  3. 3. Making sense of the terminology soup Code/Detailed Design Design Design Patterns Architecture Architectural Patterns Architectural Styles
  4. 4. SOA vs. REST REST SOA Pipes and Filters Client Server Uniform Interface Virtual Machine Distributed Agents Layered System Replicated Repository Code On Demand Stateless Comm. Cacheable
  5. 5. REST = "Representation State Transfer" Put (New State in XML) OK Get (Latest State) Representation(JSON) Dispatcher WebApp Cache (Resource)
  6. 6. Layers should have some constraints on communications Layer? Layer? Layer? Layer?
  7. 7. Layers should have some constraints on communications Layer Component Component Layer Componet
  8. 8. Client/Server Client Server Capabilities (services) Requests initiator Request Reply
  9. 9. Replicated Repository is about having more than one copy providing the same service looks like one copy better performance and latency copy copy copy copy copy copy copy copy copy
  10. 10. The uniform interface
  11. 11. Document Centric messages provide the client with the needed state and allow stateless communications
  12. 12. REST also externalize state transitions
  13. 13. Use IDs that are links e.g. a
  14. 14. Technology Mapping
  15. 15. HTTP is the most common REST implementation
  16. 16. But you can create others Waka canoe
  17. 17. GET = query/read a resource for a representation
  18. 18. PUT = create with ID set by the client / replace
  19. 19. POST = Create a subordinate resource with ID set by server / update
  20. 20. DELETE= remove the URI (most likely delete the resource)
  21. 21. HEAD = GET but only retrieves metadata (headers)
  22. 22. OPTIONS – The currently available verbs / requirements for communication
  23. 23. Why REST?
  24. 24. Example – Resource Manager
  25. 25. http://devrig:52141/RM/Sessions/abc/ <ul><li>ATOMPUB </li></ul><ul><ul><li>Session details </li></ul></ul><ul><ul><ul><li>URI (ID) </li></ul></ul></ul><ul><ul><ul><li>State (start/end/status etc.) </li></ul></ul></ul><ul><ul><ul><li>Resources </li></ul></ul></ul><ul><ul><ul><ul><li>Knows status </li></ul></ul></ul></ul><ul><ul><ul><ul><li>URI for the Resource representation on the RM </li></ul></ul></ul></ul><ul><ul><ul><ul><li>URI for the Resource itself </li></ul></ul></ul></ul>
  26. 26. Common REST misconceptions
  27. 27. REST = CRUD
  28. 28. REST is the ultimate architecture
  29. 29. REST = HTTP
  30. 30. REST will automagically make you write perfect distributed systems
  31. 31. REST is Simple r