SlideShare a Scribd company logo
Friday, June 25, 2010
Why RESTful Design for Cloud is Best
                Galder Zamarreño
                Senior Software Engineer, Red Hat
                25th June 2010




Friday, June 25, 2010
Who is Galder?


      • Core R&D engineer on Infinispan and JBoss Cache
      • Contributor and committer on JBoss AS, Hibernate,
           JGroups, JBoss Portal...etc




Friday, June 25, 2010
Agenda


      • Brief introduction to RESTful principles
      • Cloud APIs and REST
      • Cloud storage with Infinispan REST module
      • Applying RESTful principles to other APIs
      • Demo




Friday, June 25, 2010
What is REST?


      • REpresentational State Transfer (Roy Fielding)
      • An architectural style
      • Part of the web from day 1 (sort of...)
           • Evolved with HTTP 1.1




Friday, June 25, 2010
What it is not


      • A protocol
      • An interface
      • An API
      • A standard
      • A drop in replacement for SOAP (or RPC)




Friday, June 25, 2010
What is right with REST


      • Fixed well defined verbs
           •    GET = Read only operation to query info
           •    PUT = Stores body sent in location
           •    POST = Create subordinate resources
           •    DELETE = Remove resources
           •    HEAD = Like GET but no response body




Friday, June 25, 2010
What is right with REST


      • Focus on resources (not services)
           • Makes “service implementors” work harder
      • Requests are stateless
      • Hypermedia As The Engine of Application State
           (HATEOAS)




Friday, June 25, 2010
Cloud APIs and REST


      • 2 categories for Cloud APIs with different requirements
           • IT/Cloud resource management
                • Non-REST APIs: SNMP, WBEM, WMI, JMX/RMI, OSGI...etc
           • Cloud storage
             • Non-REST APIs: NFS, CIFS, WebDAV...etc
      •    REST can provide a consistent set of principles




Friday, June 25, 2010
REST for resource management APIs


      • Short term:
           • REST reduces invalid state transition calls
           • REST is to IT management protocol design what
                classical music training is to a rock musician
      • Long term:
           • REST enables IT management console “in the cloud”
      • But above all:
           • The API doesn't constrain the design of the URI space



Friday, June 25, 2010
What REST can't do for resource management


      • Querying: “Get all JBoss AS instances running on
           Linux that don't have patch JBAS-1234 applied”
           • Links are part of resource representation, not resources
                of their own
      • Retrieving resource configuration change history
           • Can you guarantee that URIs will remain unchanged?
      • These problems beg for an RPC pattern




Friday, June 25, 2010
Who is using REST for resource management?


      • Sun Cloud API
           • Unfortunately dropped :(
      • Rackspace
           • Multiple representation - JSON/XML...etc
      • EC2
           • No REST; Plain HTTP or SOAP
      • VMWare vCloud



Friday, June 25, 2010
REST for cloud storage APIs


      • REST promotes a “stateless” architecture
           • No need for maintaining sessions, easier to scale up
      • Improved network efficiency thanks to caching
      • Internet is highly latent
           • NFS or CIFS only valid in local network access




Friday, June 25, 2010
REST for cloud storage APIs


      • WebDAV is useful over an internet connection
           • … but limited to traditional file operations
           • i.e. store, retrieve...etc
      • REST offers a solution...
           • … that is more flexible and robust
           • … and works in both remote and local access modes




Friday, June 25, 2010
Who is using REST for cloud storage?


      • Tons!
           • Amazon S3, Eucalyptus, Rackspace, Mezeo,
                Nirvanix, ...etc
      • Cloud storage abstractions libraries ease transition
           • jclouds for java/clojure
           • Simple Cloud for PHP




Friday, June 25, 2010
Cloud storage DYI with Infinispan


      • No need to rely on 3rd party
      • You can build your own based on Infinispan
           •    Infinispan is an in-memory data grid platform
           •    Consistent hash based data distribution
           •    Built-in eviction, prevents OOMs!
           •    GUI management and monitoring provided by JOPR




Friday, June 25, 2010
Cloud storage DYI with Infinispan


      • Infinispan is remotely accessible via:
           •    Hot Rod - a custom binary protocol
           •    Memcached text protocol
           •    WebSocket for javascript clients (HTML5)
           •    RESTful interface (of course!)




Friday, June 25, 2010
Infinispan RESTful interface


      • PUT /{cacheName}/{cacheKey}
           • Insert or update payload in cache's key
      • POST /{cacheName}/{cacheKey}
           • Same as PUT but if key exists, returns HTTP conflict
      • Headers for PUT/POST
           • Content-Type mandatory – use media/mime-types
           • Optional: timeToLiveSeconds, maxIdleTimeSeconds,
                performAsync




Friday, June 25, 2010
Infinispan RESTful interface


      • GET /{cacheName}/{cacheKey}
           • Return value of cached key as body in response
      • DELETE /{cacheName}/{cacheKey}
           • Remove given key from cache
      • DELETE /{cacheName}
           • Remove ALL the entries from given cache




Friday, June 25, 2010
Infinispan REST Clients


      • Any HTTP client will do, example:




Friday, June 25, 2010
Applying RESTful principles to other APIs


      • Any Resource Oriented Architecture (ROA)
           • i.e. A library with books and members as resources
      • A resource has...
           • Unique ID (and hence an URI)
                • i.e. http://my.library.com/book/1234




Friday, June 25, 2010
Applying RESTful principles to other APIs


      • A resource can...
           • Be related/linked via hypermedia
           • Have different state and representations
             • i.e. Borrowed/Available, JSON/HTML/XML...etc
      •    Systems with single entry point and rest discovered
           • i.e. Library as entry point and books/members linked




Friday, June 25, 2010
Applying RESTful principles to other APIs


      • Business processes represented HTTP methods
           • i.e. Borrowing a book represented as:
             • PUT http://my.library.com/member/5678/book/1234
      •    Use self-descriptive messages
           • i.e. application/my.library.com.Book+json




Friday, June 25, 2010
If REST told you to jump off a bridge, would you?


      • Complex queries with many parameters are tricky
           • i.e. “List the female Spanish members aged between 20
                and 30 that borrowed books between 1980 and 1990,
                and never returned them”
      • Do not make resources out of such queries
      • RPC-like query operation is much better suited here




Friday, June 25, 2010
Demo




Friday, June 25, 2010
Summary


      • REST suits cloud management APIs
           • But remember limitations with history and queries
      • REST and cloud storage APIs are made for each other
      • Cloud storage with Infinispan REST module is simple
      • RESTful principles are applicable to other APIs
           • Don't convert queries into resources, use RPC




Friday, June 25, 2010
Questions?

      • Personal:
           • Site: http://galder.zamarreno.com
           • Twitter: @galderz
      • Project:
           • Site: http://www.infinispan.org
           • Blog: http://blog.infinispan.org
           • Twitter: @infinispan
      • Tweet:
           • #infinispan, #summitjbw



Friday, June 25, 2010
Friday, June 25, 2010

More Related Content

PDF
Ruby-on-Infinispan
PDF
Infinispan for Dummies
PDF
Data Grids vs Databases
PDF
Data Grids and Data Caching
PPTX
The Four Horsemen of Storage System Performance
PDF
Flickr Architecture Presentation
PDF
Planet-scale Data Ingestion Pipeline: Bigdam
PPTX
It's the End of Data Storage As We Know It (And I Feel Fine)
Ruby-on-Infinispan
Infinispan for Dummies
Data Grids vs Databases
Data Grids and Data Caching
The Four Horsemen of Storage System Performance
Flickr Architecture Presentation
Planet-scale Data Ingestion Pipeline: Bigdam
It's the End of Data Storage As We Know It (And I Feel Fine)

What's hot (16)

PPTX
Out of the Lab and Into the Datacenter - Which Technologies Are Ready?
KEY
From 100s to 100s of Millions
PPTX
Gestalt IT - Why It’s Time to Stop Thinking In Terms of Silos
PDF
Vitess: Scalable Database Architecture - Kubernetes Community Days Africa Ap...
PDF
Technologies, Data Analytics Service and Enterprise Business
PDF
When is Myrocks good? 2020 Webinar Series
PDF
AWS Cloud experience concepts tips and tricks
PPTX
Developing a Staff-Only Samvera Application
PDF
Technologies for Data Analytics Platform
PPTX
Repository performance tuning
PPT
January 2011 HUG: Kafka Presentation
PDF
KubeCon_NA_2021
PDF
Erlang at Nu Echo
PPTX
Boost on!!next generation big data platform
PPT
Scaling MySQL using Fabric
ODP
Copycat presentation
Out of the Lab and Into the Datacenter - Which Technologies Are Ready?
From 100s to 100s of Millions
Gestalt IT - Why It’s Time to Stop Thinking In Terms of Silos
Vitess: Scalable Database Architecture - Kubernetes Community Days Africa Ap...
Technologies, Data Analytics Service and Enterprise Business
When is Myrocks good? 2020 Webinar Series
AWS Cloud experience concepts tips and tricks
Developing a Staff-Only Samvera Application
Technologies for Data Analytics Platform
Repository performance tuning
January 2011 HUG: Kafka Presentation
KubeCon_NA_2021
Erlang at Nu Echo
Boost on!!next generation big data platform
Scaling MySQL using Fabric
Copycat presentation
Ad

Viewers also liked (8)

PDF
What's New in Infinispan 6.0
PDF
Infinispan,Lucene,Hibername OGM
PDF
Infinispan – the open source data grid platform by Mircea Markus
PDF
Infinispan
PDF
Infinispan Data Grid Platform
PDF
London JBUG April 2015 - Performance Tuning Apps with WildFly Application Server
PDF
Introducing Infinispan
PPTX
Infinispan, a distributed in-memory key/value data grid and cache
What's New in Infinispan 6.0
Infinispan,Lucene,Hibername OGM
Infinispan – the open source data grid platform by Mircea Markus
Infinispan
Infinispan Data Grid Platform
London JBUG April 2015 - Performance Tuning Apps with WildFly Application Server
Introducing Infinispan
Infinispan, a distributed in-memory key/value data grid and cache
Ad

Similar to Why RESTful Design for the Cloud is Best (20)

PDF
Understanding REST-Based Services: Simple, Scalable, and Platform Independent
PDF
Introduction to REST and Jersey
PDF
RESTful applications: The why and how by Maikel Mardjan
PDF
Paul Querna - libcloud
PPT
REST Introduction.ppt
PDF
Res tful web services oracle
PDF
RESTful WebServices
PDF
REST in ( a mobile ) peace @ WHYMCA 05-21-2011
PDF
What are restful web services?
PDF
Cwinters Intro To Rest And JerREST and Jersey Introductionsey
PDF
Restful风格ž„web服务架构
PDF
Rest Vs Soap Yawn2289
PDF
Creating Restful Web Services with restish
PDF
Enterprise REST
PDF
REST & API Management with the WSO2 ESB
PDF
Rest api webinar(3)
PPT
restful based web services a presentation
PPTX
Pragmatic REST APIs
PDF
There is REST and then there is "REST"
PPTX
REST and RESTful Services
Understanding REST-Based Services: Simple, Scalable, and Platform Independent
Introduction to REST and Jersey
RESTful applications: The why and how by Maikel Mardjan
Paul Querna - libcloud
REST Introduction.ppt
Res tful web services oracle
RESTful WebServices
REST in ( a mobile ) peace @ WHYMCA 05-21-2011
What are restful web services?
Cwinters Intro To Rest And JerREST and Jersey Introductionsey
Restful风格ž„web服务架构
Rest Vs Soap Yawn2289
Creating Restful Web Services with restish
Enterprise REST
REST & API Management with the WSO2 ESB
Rest api webinar(3)
restful based web services a presentation
Pragmatic REST APIs
There is REST and then there is "REST"
REST and RESTful Services

Recently uploaded (20)

PDF
Electronic commerce courselecture one. Pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPT
Teaching material agriculture food technology
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
cuic standard and advanced reporting.pdf
PPTX
Big Data Technologies - Introduction.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
Electronic commerce courselecture one. Pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Unlocking AI with Model Context Protocol (MCP)
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Teaching material agriculture food technology
CIFDAQ's Market Insight: SEC Turns Pro Crypto
cuic standard and advanced reporting.pdf
Big Data Technologies - Introduction.pptx
The AUB Centre for AI in Media Proposal.docx
Building Integrated photovoltaic BIPV_UPV.pdf
MYSQL Presentation for SQL database connectivity
Empathic Computing: Creating Shared Understanding
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Spectral efficient network and resource selection model in 5G networks
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Review of recent advances in non-invasive hemoglobin estimation
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Dropbox Q2 2025 Financial Results & Investor Presentation
Digital-Transformation-Roadmap-for-Companies.pptx

Why RESTful Design for the Cloud is Best

  • 2. Why RESTful Design for Cloud is Best Galder Zamarreño Senior Software Engineer, Red Hat 25th June 2010 Friday, June 25, 2010
  • 3. Who is Galder? • Core R&D engineer on Infinispan and JBoss Cache • Contributor and committer on JBoss AS, Hibernate, JGroups, JBoss Portal...etc Friday, June 25, 2010
  • 4. Agenda • Brief introduction to RESTful principles • Cloud APIs and REST • Cloud storage with Infinispan REST module • Applying RESTful principles to other APIs • Demo Friday, June 25, 2010
  • 5. What is REST? • REpresentational State Transfer (Roy Fielding) • An architectural style • Part of the web from day 1 (sort of...) • Evolved with HTTP 1.1 Friday, June 25, 2010
  • 6. What it is not • A protocol • An interface • An API • A standard • A drop in replacement for SOAP (or RPC) Friday, June 25, 2010
  • 7. What is right with REST • Fixed well defined verbs • GET = Read only operation to query info • PUT = Stores body sent in location • POST = Create subordinate resources • DELETE = Remove resources • HEAD = Like GET but no response body Friday, June 25, 2010
  • 8. What is right with REST • Focus on resources (not services) • Makes “service implementors” work harder • Requests are stateless • Hypermedia As The Engine of Application State (HATEOAS) Friday, June 25, 2010
  • 9. Cloud APIs and REST • 2 categories for Cloud APIs with different requirements • IT/Cloud resource management • Non-REST APIs: SNMP, WBEM, WMI, JMX/RMI, OSGI...etc • Cloud storage • Non-REST APIs: NFS, CIFS, WebDAV...etc • REST can provide a consistent set of principles Friday, June 25, 2010
  • 10. REST for resource management APIs • Short term: • REST reduces invalid state transition calls • REST is to IT management protocol design what classical music training is to a rock musician • Long term: • REST enables IT management console “in the cloud” • But above all: • The API doesn't constrain the design of the URI space Friday, June 25, 2010
  • 11. What REST can't do for resource management • Querying: “Get all JBoss AS instances running on Linux that don't have patch JBAS-1234 applied” • Links are part of resource representation, not resources of their own • Retrieving resource configuration change history • Can you guarantee that URIs will remain unchanged? • These problems beg for an RPC pattern Friday, June 25, 2010
  • 12. Who is using REST for resource management? • Sun Cloud API • Unfortunately dropped :( • Rackspace • Multiple representation - JSON/XML...etc • EC2 • No REST; Plain HTTP or SOAP • VMWare vCloud Friday, June 25, 2010
  • 13. REST for cloud storage APIs • REST promotes a “stateless” architecture • No need for maintaining sessions, easier to scale up • Improved network efficiency thanks to caching • Internet is highly latent • NFS or CIFS only valid in local network access Friday, June 25, 2010
  • 14. REST for cloud storage APIs • WebDAV is useful over an internet connection • … but limited to traditional file operations • i.e. store, retrieve...etc • REST offers a solution... • … that is more flexible and robust • … and works in both remote and local access modes Friday, June 25, 2010
  • 15. Who is using REST for cloud storage? • Tons! • Amazon S3, Eucalyptus, Rackspace, Mezeo, Nirvanix, ...etc • Cloud storage abstractions libraries ease transition • jclouds for java/clojure • Simple Cloud for PHP Friday, June 25, 2010
  • 16. Cloud storage DYI with Infinispan • No need to rely on 3rd party • You can build your own based on Infinispan • Infinispan is an in-memory data grid platform • Consistent hash based data distribution • Built-in eviction, prevents OOMs! • GUI management and monitoring provided by JOPR Friday, June 25, 2010
  • 17. Cloud storage DYI with Infinispan • Infinispan is remotely accessible via: • Hot Rod - a custom binary protocol • Memcached text protocol • WebSocket for javascript clients (HTML5) • RESTful interface (of course!) Friday, June 25, 2010
  • 18. Infinispan RESTful interface • PUT /{cacheName}/{cacheKey} • Insert or update payload in cache's key • POST /{cacheName}/{cacheKey} • Same as PUT but if key exists, returns HTTP conflict • Headers for PUT/POST • Content-Type mandatory – use media/mime-types • Optional: timeToLiveSeconds, maxIdleTimeSeconds, performAsync Friday, June 25, 2010
  • 19. Infinispan RESTful interface • GET /{cacheName}/{cacheKey} • Return value of cached key as body in response • DELETE /{cacheName}/{cacheKey} • Remove given key from cache • DELETE /{cacheName} • Remove ALL the entries from given cache Friday, June 25, 2010
  • 20. Infinispan REST Clients • Any HTTP client will do, example: Friday, June 25, 2010
  • 21. Applying RESTful principles to other APIs • Any Resource Oriented Architecture (ROA) • i.e. A library with books and members as resources • A resource has... • Unique ID (and hence an URI) • i.e. http://my.library.com/book/1234 Friday, June 25, 2010
  • 22. Applying RESTful principles to other APIs • A resource can... • Be related/linked via hypermedia • Have different state and representations • i.e. Borrowed/Available, JSON/HTML/XML...etc • Systems with single entry point and rest discovered • i.e. Library as entry point and books/members linked Friday, June 25, 2010
  • 23. Applying RESTful principles to other APIs • Business processes represented HTTP methods • i.e. Borrowing a book represented as: • PUT http://my.library.com/member/5678/book/1234 • Use self-descriptive messages • i.e. application/my.library.com.Book+json Friday, June 25, 2010
  • 24. If REST told you to jump off a bridge, would you? • Complex queries with many parameters are tricky • i.e. “List the female Spanish members aged between 20 and 30 that borrowed books between 1980 and 1990, and never returned them” • Do not make resources out of such queries • RPC-like query operation is much better suited here Friday, June 25, 2010
  • 26. Summary • REST suits cloud management APIs • But remember limitations with history and queries • REST and cloud storage APIs are made for each other • Cloud storage with Infinispan REST module is simple • RESTful principles are applicable to other APIs • Don't convert queries into resources, use RPC Friday, June 25, 2010
  • 27. Questions? • Personal: • Site: http://galder.zamarreno.com • Twitter: @galderz • Project: • Site: http://www.infinispan.org • Blog: http://blog.infinispan.org • Twitter: @infinispan • Tweet: • #infinispan, #summitjbw Friday, June 25, 2010