SlideShare a Scribd company logo
REST, Atom, OpenSocial, and Friends Alexandros Marinos [email_address]
I read way too much…
Social Resource Consumption I consume content by a lot of sources, in many formats. (Web, Feeds, YouTube, Amazon, Flickr, etc.) I share things I find interesting by exposing a Feed, through Google Reader, Facebook, and FriendFeed.  The people who read my feed may share the content with their contacts as well.
http://friendfeed.com/alexandros
SOA? If this sounds like SOA, where are the WSDL, SOAP, UDDI in all this? This scenario is actually based on HTTP, RSS, Atom, XML and URI. There is more than one way to do SOA
Disambiguating SOA Business Architecture? SOA! Technical Architectural Style? SOA! And what do we implement it with? Web Services!
Disambiguating SOA Business Architecture? SOA Technical Architectural Style? RPC Implementation? WS-* Stack  (SOAP, WSDL, UDDI, WS-…) http://en.wikipedia.org/wiki/WS-*
Disambiguating SOA Business Architecture? SOA. Technical Architectural Style? REST Implementation? HTTP, URI, XML
Disambiguating SOA
Disambiguating SOA We have two competing styles, arising from different areas of practice.  To make an oversimplification: WS-* started as enterprise technologies and attempts to scale to the web  (Previously: CORBA) REST started as web technologies and claims to be able to satisfy enterprise requirements
Disambiguating SOA Other Contrasts: Top-Down vs. Bottom-Up Resource-orientation vs. Endpoint-Orientation Again, Enterprise vs. web origins.
What is REST Not? REST is agnostic to the underlying network architecture (P2P or Client-Server). It is only concerned with the interface that services expose and are accessed through.
What is REST? An Architectural Style (Such as RPC) A way to decompose an application into smaller parts, so that the whole works better in a distributed setting. A proven design pattern for building loosely-coupled, highly-scalable applications.
A Little REST Magic Enter this in your browser: http://www.youtube.com/user/openmicman
A Little REST Magic Now, try this: http://gdata.youtube.com/feeds/users/openmicman
Key REST Principles Give every “thing” an ID Link things together Use standard methods Communicate statelessly
Give every “thing” an ID http://gdata.youtube.com/feeds/users/openmicman http://gdata.youtube.com/feeds/users/openmicman/favorites http://www.youtube.com/watch?v=6aKe5baPJCQ
Give every “thing” an ID Resources are not only represented as XML XML formats (HTML, XHTML, RSS, etc.) JPG, GIF, PNG MP3, WAV, OGG Anything else that can be on the web. Thomas: maybe Resources = Knowledge Services?
Link things together <order self='http://example.com/customers/1234' >  <amount>23</amount>  <product ref='http://example.com/products/4554' />  <customer ref='http://example.com/customers/1234' />  </order>
Use standard methods GET Properties: Safe, Idempotent Usage: Retrieving a resource PUT Properties: Idempotent Usage: Creating or updating a resource at a known URI DELETE Properties: Idempotent Usage: Deleting a resource POST Properties: UNSAFE Creating a resource within a collection (URI set by server)
Example: WS-Style
Example: REST-Style
Communicate statelessly REST mandates that state be either turned into resource state, or kept on the client. Reduces burden on the server Reduces coupling with a specific machine
Suitability for Mobile  Devices By using REST over HTTP instead of SOAP, we can drastically reduce the overhead of message processing An HTTP server implementation is feasible for a mobile device http://opensource.nokia.com/projects/mobile-web-server/
Who is using REST? Google GData, OpenSocial Standards Atom, WebDAV Amazon S3, SimpleDB Microsoft (!) Project Astoria, Web3S Um… the Web.
Atom Atom Syndication Format A Feed specification based on RSS 2.0 Atom Publishing Protocol a simple HTTP-based protocol for creating and updating web resources.
Google OpenSocial Open Competitor to Facebook’s Application Platform Exposes Three RESTful APIs: People and Friends data API Activities data API Persistence data API
REST Resources RESTful Web Services (2007) – Leonard Richardson and Sam Ruby – O’Reilly Roy T. Fielding‘s PhD Thesis: “Architectural Styles and the Design of Network-Based Software Architectures” A Brief Introduction to REST by Stefan Tilkov http://www.infoq.com/articles/rest-introduction
Questions?
REST Constraints REST has four architectural constraints: separation of resource from representation,  uniform interface,  self-descriptive messages, and  hypermedia as the engine of application state.  ( http://www.stucharlton.com/blog/archives/000141.html  )
Resource Oriented Architecture? ROA is the term for REST on HTTP/URI A Service consists of all the resources available within a certain domain of control Since REST is a type of SOA, ROA is an implementation of SOA as well.
REST Important ‘things’ (nouns) are Resources Addressed through a URI Uniform interface (verbs) In HTTP: GET, PUT, POST, DELETE Verb-noun seperation makes integration easier GET /customer/45  Instead of getCustomer(45) OR viewCustomer(45) OR showCustomer(45)
HTTP Verbs GET Properties: Safe, Idempotent Usage: Retrieving a resource POST Properties: UNSAFE Creating a resource within a collection (resource URI unknown) PUT Properties: Idempotent Usage: Creating or updating a resource at a known URI DELETE Properties: Idempotent Usage: Deleting a resource

More Related Content

PDF
Restful Web Services
PPTX
JSON and REST
PPTX
Rest presentation
PPTX
Design Beautiful REST + JSON APIs
KEY
Rest and the hypermedia constraint
PDF
REST, RESTful API
PPT
The Rest Architectural Style
ODP
The Internet as Web Services: introduction to ReST
Restful Web Services
JSON and REST
Rest presentation
Design Beautiful REST + JSON APIs
Rest and the hypermedia constraint
REST, RESTful API
The Rest Architectural Style
The Internet as Web Services: introduction to ReST

What's hot (20)

PPT
Understanding REST
PDF
Rest web services
PDF
REST - Representational State Transfer
PPT
Soap and Rest
PPT
RESTful services
PPTX
PPTX
Rest & RESTful WebServices
PDF
Representational State Transfer (REST)
PPT
External Data Access with jQuery
PPTX
Webservices Overview : XML RPC, SOAP and REST
PDF
Restful web services by Sreeni Inturi
PPTX
Implementation advantages of rest
PDF
SOAP-based Web Services
PPTX
Soap and restful webservice
PDF
Best Practices in Web Service Design
PPTX
Restful webservice
PDF
Web Services Tutorial
PPTX
Creating Truly RESTful APIs
PPTX
RESTful Architecture
PPT
Introduction to the Web API
Understanding REST
Rest web services
REST - Representational State Transfer
Soap and Rest
RESTful services
Rest & RESTful WebServices
Representational State Transfer (REST)
External Data Access with jQuery
Webservices Overview : XML RPC, SOAP and REST
Restful web services by Sreeni Inturi
Implementation advantages of rest
SOAP-based Web Services
Soap and restful webservice
Best Practices in Web Service Design
Restful webservice
Web Services Tutorial
Creating Truly RESTful APIs
RESTful Architecture
Introduction to the Web API
Ad

Viewers also liked (8)

PDF
RESTful Web Services
PDF
Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009
PPT
PPT
Introduction To REST
PPTX
REST & RESTful Web Services
PDF
Learn REST in 18 Slides
PPTX
HATEOAS 101 - Opinionated Introduction to a REST API Style
PPTX
REST-API introduction for developers
RESTful Web Services
Some REST Design Patterns (and Anti-Patterns) - SOA Symposium 2009
Introduction To REST
REST & RESTful Web Services
Learn REST in 18 Slides
HATEOAS 101 - Opinionated Introduction to a REST API Style
REST-API introduction for developers
Ad

Similar to REST Presentation (20)

PPT
Modified REST Presentation
PPTX
Developing Distributed Web Applications, Where does REST fit in?
PDF
Understanding REST-Based Services: Simple, Scalable, and Platform Independent
PPTX
RESTful Web Services
PPT
Rest introduction
PDF
Rest Vs Soap Yawn2289
PDF
REST in Practice
PDF
Enterprise REST
PDF
Introduction to REST and Jersey
ODP
REST and Resource Oriented Architecture - okcDG March 2008
PDF
ReST Vs SOA(P) ... Yawn
PPT
Introduction to REST
PPT
Rest introduction
PPTX
Unit 2
PDF
REST Basics
PPTX
RESTful services
PDF
REST e Resource Oriented Architectures
PDF
Resource Oriented Architectures
PPT
Oopsla 2007 - The Web: Distributed Objects Realized!
PDF
Applications of the REST Principle
Modified REST Presentation
Developing Distributed Web Applications, Where does REST fit in?
Understanding REST-Based Services: Simple, Scalable, and Platform Independent
RESTful Web Services
Rest introduction
Rest Vs Soap Yawn2289
REST in Practice
Enterprise REST
Introduction to REST and Jersey
REST and Resource Oriented Architecture - okcDG March 2008
ReST Vs SOA(P) ... Yawn
Introduction to REST
Rest introduction
Unit 2
REST Basics
RESTful services
REST e Resource Oriented Architectures
Resource Oriented Architectures
Oopsla 2007 - The Web: Distributed Objects Realized!
Applications of the REST Principle

Recently uploaded (20)

PPT
Teaching material agriculture food technology
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Empathic Computing: Creating Shared Understanding
PDF
GamePlan Trading System Review: Professional Trader's Honest Take
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Machine learning based COVID-19 study performance prediction
PDF
cuic standard and advanced reporting.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Cloud computing and distributed systems.
PDF
Advanced IT Governance
Teaching material agriculture food technology
Network Security Unit 5.pdf for BCA BBA.
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Empathic Computing: Creating Shared Understanding
GamePlan Trading System Review: Professional Trader's Honest Take
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Machine learning based COVID-19 study performance prediction
cuic standard and advanced reporting.pdf
20250228 LYD VKU AI Blended-Learning.pptx
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MYSQL Presentation for SQL database connectivity
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Cloud computing and distributed systems.
Advanced IT Governance

REST Presentation

  • 1. REST, Atom, OpenSocial, and Friends Alexandros Marinos [email_address]
  • 2. I read way too much…
  • 3. Social Resource Consumption I consume content by a lot of sources, in many formats. (Web, Feeds, YouTube, Amazon, Flickr, etc.) I share things I find interesting by exposing a Feed, through Google Reader, Facebook, and FriendFeed. The people who read my feed may share the content with their contacts as well.
  • 5. SOA? If this sounds like SOA, where are the WSDL, SOAP, UDDI in all this? This scenario is actually based on HTTP, RSS, Atom, XML and URI. There is more than one way to do SOA
  • 6. Disambiguating SOA Business Architecture? SOA! Technical Architectural Style? SOA! And what do we implement it with? Web Services!
  • 7. Disambiguating SOA Business Architecture? SOA Technical Architectural Style? RPC Implementation? WS-* Stack (SOAP, WSDL, UDDI, WS-…) http://en.wikipedia.org/wiki/WS-*
  • 8. Disambiguating SOA Business Architecture? SOA. Technical Architectural Style? REST Implementation? HTTP, URI, XML
  • 10. Disambiguating SOA We have two competing styles, arising from different areas of practice. To make an oversimplification: WS-* started as enterprise technologies and attempts to scale to the web (Previously: CORBA) REST started as web technologies and claims to be able to satisfy enterprise requirements
  • 11. Disambiguating SOA Other Contrasts: Top-Down vs. Bottom-Up Resource-orientation vs. Endpoint-Orientation Again, Enterprise vs. web origins.
  • 12. What is REST Not? REST is agnostic to the underlying network architecture (P2P or Client-Server). It is only concerned with the interface that services expose and are accessed through.
  • 13. What is REST? An Architectural Style (Such as RPC) A way to decompose an application into smaller parts, so that the whole works better in a distributed setting. A proven design pattern for building loosely-coupled, highly-scalable applications.
  • 14. A Little REST Magic Enter this in your browser: http://www.youtube.com/user/openmicman
  • 15. A Little REST Magic Now, try this: http://gdata.youtube.com/feeds/users/openmicman
  • 16. Key REST Principles Give every “thing” an ID Link things together Use standard methods Communicate statelessly
  • 17. Give every “thing” an ID http://gdata.youtube.com/feeds/users/openmicman http://gdata.youtube.com/feeds/users/openmicman/favorites http://www.youtube.com/watch?v=6aKe5baPJCQ
  • 18. Give every “thing” an ID Resources are not only represented as XML XML formats (HTML, XHTML, RSS, etc.) JPG, GIF, PNG MP3, WAV, OGG Anything else that can be on the web. Thomas: maybe Resources = Knowledge Services?
  • 19. Link things together <order self='http://example.com/customers/1234' > <amount>23</amount> <product ref='http://example.com/products/4554' /> <customer ref='http://example.com/customers/1234' /> </order>
  • 20. Use standard methods GET Properties: Safe, Idempotent Usage: Retrieving a resource PUT Properties: Idempotent Usage: Creating or updating a resource at a known URI DELETE Properties: Idempotent Usage: Deleting a resource POST Properties: UNSAFE Creating a resource within a collection (URI set by server)
  • 23. Communicate statelessly REST mandates that state be either turned into resource state, or kept on the client. Reduces burden on the server Reduces coupling with a specific machine
  • 24. Suitability for Mobile Devices By using REST over HTTP instead of SOAP, we can drastically reduce the overhead of message processing An HTTP server implementation is feasible for a mobile device http://opensource.nokia.com/projects/mobile-web-server/
  • 25. Who is using REST? Google GData, OpenSocial Standards Atom, WebDAV Amazon S3, SimpleDB Microsoft (!) Project Astoria, Web3S Um… the Web.
  • 26. Atom Atom Syndication Format A Feed specification based on RSS 2.0 Atom Publishing Protocol a simple HTTP-based protocol for creating and updating web resources.
  • 27. Google OpenSocial Open Competitor to Facebook’s Application Platform Exposes Three RESTful APIs: People and Friends data API Activities data API Persistence data API
  • 28. REST Resources RESTful Web Services (2007) – Leonard Richardson and Sam Ruby – O’Reilly Roy T. Fielding‘s PhD Thesis: “Architectural Styles and the Design of Network-Based Software Architectures” A Brief Introduction to REST by Stefan Tilkov http://www.infoq.com/articles/rest-introduction
  • 30. REST Constraints REST has four architectural constraints: separation of resource from representation, uniform interface, self-descriptive messages, and hypermedia as the engine of application state. ( http://www.stucharlton.com/blog/archives/000141.html )
  • 31. Resource Oriented Architecture? ROA is the term for REST on HTTP/URI A Service consists of all the resources available within a certain domain of control Since REST is a type of SOA, ROA is an implementation of SOA as well.
  • 32. REST Important ‘things’ (nouns) are Resources Addressed through a URI Uniform interface (verbs) In HTTP: GET, PUT, POST, DELETE Verb-noun seperation makes integration easier GET /customer/45 Instead of getCustomer(45) OR viewCustomer(45) OR showCustomer(45)
  • 33. HTTP Verbs GET Properties: Safe, Idempotent Usage: Retrieving a resource POST Properties: UNSAFE Creating a resource within a collection (resource URI unknown) PUT Properties: Idempotent Usage: Creating or updating a resource at a known URI DELETE Properties: Idempotent Usage: Deleting a resource