1 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. REST (Representational State Transfer) Roger L. Costello Timothy D. Kehoe.

Slides:



Advertisements
Similar presentations
REST (Representational State Transfer)
Advertisements

1. XP 2 * The Web is a collection of files that reside on computers, called Web servers. * Web servers are connected to each other through the Internet.
1 Senn, Information Technology, 3 rd Edition © 2004 Pearson Prentice Hall James A. Senns Information Technology, 3 rd Edition Chapter 7 Enterprise Databases.
1 Copyright © 2002 Pearson Education, Inc.. 2 Chapter 2 Getting Started.
Distributed Systems Architectures
Copyright © 2003 Pearson Education, Inc. Slide 8-1 Created by Cheryl M. Hughes, Harvard University Extension School Cambridge, MA The Web Wizards Guide.
Copyright © 2003 Pearson Education, Inc. Slide 1 Computer Systems Organization & Architecture Chapters 8-12 John D. Carpinelli.
Copyright © 2011, Elsevier Inc. All rights reserved. Chapter 6 Author: Julia Richards and R. Scott Hawley.
Author: Julia Richards and R. Scott Hawley
1 Copyright © 2013 Elsevier Inc. All rights reserved. Appendix 01.
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 3 CPUs.
Properties Use, share, or modify this drill on mathematic properties. There is too much material for a single class, so you’ll have to select for your.
UNITED NATIONS Shipment Details Report – January 2006.
RXQ Customer Enrollment Using a Registration Agent (RA) Process Flow Diagram (Move-In) Customer Supplier Customer authorizes Enrollment ( )
1 Hyades Command Routing Message flow and data translation.
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
4 Copyright © 2005, Oracle. All rights reserved. Creating the Web Tier: Servlets.
11 Copyright © 2005, Oracle. All rights reserved. Creating the Business Tier: Enterprise JavaBeans.
17 Copyright © 2005, Oracle. All rights reserved. Deploying Applications by Using Java Web Start.
XP New Perspectives on Microsoft Office Word 2003 Tutorial 7 1 Microsoft Office Word 2003 Tutorial 7 – Collaborating With Others and Creating Web Pages.
Introduction to HTML, XHTML, and CSS
Representational State Transfer (REST) Paul Townend 8 th February 2007.
1 Advanced Tools for Account Searches and Portfolios Dawn Gamache Cindy Bylander.
1 Click here to End Presentation Software: Installation and Updates Internet Download CD release NACIS Updates.
1 NatQuery 3/05 An End-User Perspective On Using NatQuery To Extract Data From ADABAS Presented by Treehouse Software, Inc.
REST - Representational State Transfer
Representational State Transfer (REST): Representing Information in Web 2.0 Applications this is the presentation Emilio F Zegarra CS 2650.
Building and using REST information services Rion Dooley.
Server Access The REST of the Story David Cleary
REST (Representational State Transfer)
1 The phone in the cloud Utilizing resources hosted anywhere Claes Nilsson.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 2 The OSI Model and the TCP/IP.
EIS Bridge Tool and Staging Tables September 1, 2009 Instructor: Way Poteat Slide: 1.
Copyright 2007, Information Builders. Slide 1 Introduction to Web Services Efrem Litwin Director, WebFOCUS Integration Products Information Builders.
Slide #1 of 39 / {ESC} Return to Main Menu / F1 Help PCS - Parish Computer System The NEXT Generation of Parish Software Archdiocese of Los Angeles PCS.
Sample Service Screenshots Enterprise Cloud Service 11.3.
Copyright © 2012, Elsevier Inc. All rights Reserved. 1 Chapter 7 Modeling Structure with Blocks.
Basel-ICU-Journal Challenge18/20/ Basel-ICU-Journal Challenge8/20/2014.
1..
CMPT 275 Software Engineering
31242/32549 Advanced Internet Programming Advanced Java Programming
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.1 Module 10 Routing Fundamentals and Subnets.
Services Course Windows Live SkyDrive Participant Guide.
Executional Architecture
1 How Do I Order From.decimal? Rev 05/04/09 This instructional training document may be updated at anytime. Please visit and check the.
Macromedia Dreamweaver MX 2004 – Design Professional Dreamweaver GETTING STARTED WITH.
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
: 3 00.
5 minutes.
Chapter 10: The Traditional Approach to Design
Analyzing Genes and Genomes
Systems Analysis and Design in a Changing World, Fifth Edition
Chapter 12 Working with Forms Principles of Web Design, 4 th Edition.
PSSA Preparation.
Essential Cell Biology
CINAHL Keyword Searching. This presentation will take you through the procedure of finding reliable information which can be used in your academic work.
Chapter 13 Web Page Design Studio
Murach’s OS/390 and z/OS JCLChapter 16, Slide 1 © 2002, Mike Murach & Associates, Inc.
RefWorks: The Basics October 12, What is RefWorks? A personal bibliographic software manager –Manages citations –Creates bibliogaphies Accessible.
Import Tracking and Landed Cost Processing An Enhancement For AS/400 DMAS from  Copyright I/O International, 2001, 2005, 2008, 2012 Skip Intro Version.
Benchmark Series Microsoft Excel 2013 Level 2
Profile. 1.Open an Internet web browser and type into the web browser address bar. 2.You will see a web page similar to the one on.
Introduction Peter Dolog dolog [at] cs [dot] aau [dot] dk Intelligent Web and Information Systems September 9, 2010.
Windfall Web Throughout this slide show there will be hyperlinks (highlighted in blue). Follow the hyperlinks to navigate to the specified Topic or Figure.
Chapter 9: Using Classes and Objects. Understanding Class Concepts Types of classes – Classes that are only application programs with a Main() method.

Building RESTful Interfaces
2007cs Servers on the Web. The World-Wide Web 2007 cs CSS JS HTML Server Browser JS CSS HTML Transfer of resources using HTTP.
Representational State Transfer (REST). What is REST? Network Architectural style Overview: –Resources are defined and addressed –Transmits domain-specific.
Web Technologies Lecture 10 Web services. From W3C – A software system designed to support interoperable machine-to-machine interaction over a network.
Presentation transcript:

1 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. REST (Representational State Transfer) Roger L. Costello Timothy D. Kehoe

2 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Overview The Web's simple set of operations, i.e., the Web's API The Web's fundamental components REST Questions and Answers The REST design pattern (summary) References

3 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. The Web's Simple Set of Operations (i.e., the Web's API*) * Application Programming Interface

4 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Web Basics: Retrieving Information using HTTP GET Amazon Web Server GET / HTTP/1.1 Host: GET / HTTP/1.1 Host: The user types in at his browser: - The browser software creates an HTTP header (no payload) - The HTTP header identifies: - The desired action: GET ("get me resource") - The target machine (

5 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Web Basics: Updating Information using HTTP POST Amazon Web Server POST / HTTP/1.1 Host: POST / HTTP/1.1 Host: Book: DaVince Code Credit Card: Visa Number: Expiry: The user fills in the Web page's form - The browser software creates an HTTP header with a payload comprised of the form data - The HTTP header identifies: - The desired action: POST ("here's some update info") - The target machine (amazon.com) - The payload contains: - The data being POSTed (the form data) Book: Da Vince Code Credit Card: Visa Number: Expiry: Book: Da Vince Code Credit Card: Visa Number: Expiry:

6 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Terminology: Header and Payload Amazon Web Server POST / HTTP/1.1 Host: POST / HTTP/1.1 Host: Book: DaVince Code Credit Card: Visa Number: Expiry: Book: Da Vince Code Credit Card: Visa Number: Expiry: Book: Da Vince Code Credit Card: Visa Number: Expiry: This information (the form data) is called the payload. This information (the HTTP data) is called the HTTP header

7 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Web Basics: Simple Set of Operations, via the HTTP API HTTP provides a simple set of operations. Amazingly, all Web exchanges are done using this simple HTTP API: –GET = "give me some info" (Retrieve) –POST = "here's some update info" (Update) –PUT = "here's some new info" (Create) –DELETE = "delete some info" (Delete) The HTTP API is CRUD (Create, Retrieve, Update, and Delete)

8 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Fundamental Web Components

9 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Web Component: Firewalls (Firewall: "Should I allow POSTing to geocities?") POST / HTTP/1.1 Host: POST / HTTP/1.1 Host: Item: Woodworking set Credit Card: Visa Number: Expiry: Item: Woodworking set Credit Card: Visa Number: Expiry: Item: Woodworking set Credit Card: Visa Number: Expiry: FIREWALL Firewall Rules & Policies Prohibit all POSTs to the geocities Web site. Firewall Rules & Policies Prohibit all POSTs to the geocities Web site. –The firewall decides whether an HTTP message should pass through –All decisions are based purely upon the HTTP header. The firewall never looks in the payload. This is fundamental! –This message is rejected!

10 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Basic Web Components: Firewalls, Routers, Caches The Web is comprised of some basic components: –Firewalls: these components decide what HTTP messages get out, and what get in. These components enforce Web security. –Routers: these components decide where to send HTTP messages. These components manage Web scaling. –Caches: these components decide if a saved copy can be used. These components increase Web speed. All these components base their decisions and actions purely upon information in the HTTP header. "Thou shalt never peek inside the HTTP payload!"

11 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Web Components Operate using only Information found in the HTTP Header! HTTP Header HTTP Payload Web Message Check this! Component (firewall, router, cache) Component (firewall, router, cache)

12 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Letter Analogy Why do Web components base their decisions solely on information in the HTTP header? My company has a receiving warehouse. All letters and packages go there first, and from there they are distributed. No one in the receiving warehouse may look inside any letter or package. All decisions about what to do with letters and packages must be made purely by looking at the addressing on the outside. Any attempt to peek inside of letters and packages is a violation of Federal Law (U.S.).

13 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. REST

14 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. What is REST? " REST " was coined by Roy Fielding in his Ph.D. dissertation [1] to describe a design pattern for implementing networked systems. [1]

15 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Why is it called "Representational State Transfer? " Resource Client Boeing747.html The Client references a Web resource using a URL. A representation of the resource is returned (in this case as an HTML document). The representation (e.g., Boeing747.html) places the client in a new state. When the client selects a hyperlink in Boeing747.html, it accesses another resource. The new representation places the client application into yet another state. Thus, the client application transfers state with each resource representation. Fuel requirements Maintenance schedule...

16 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Representational State Transfer "Representational State Transfer is intended to evoke an image of how a well-designed Web application behaves: a network of web pages (a virtual state-machine), where the user progresses through an application by selecting links (state transitions), resulting in the next page (representing the next state of the application) being transferred to the user and rendered for their use." - Roy Fielding

17 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Motivation for REST The motivation for developing REST was to create a design pattern for how the Web should work, such that it could serve as the guiding framework for the Web standards and designing Web services.

18 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. REST - Not a Standard REST is not a standard –You will not see the W3C putting out a REST specification. –You will not see IBM or Microsoft or Sun selling a REST developer's toolkit. REST is just a design pattern –You can't bottle up a pattern. –You can only understand it and design your Web services to it. REST does prescribe the use of standards: –HTTP –URL –XML/HTML/GIF/JPEG/etc. (Resource Representations) –text/xml, text/html, image/gif, image/jpeg, etc. (Resource Types, MIME Types)

19 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Learn by Example The REST design pattern is best explained with an example. I will present an example of a company deploying three Web services using the REST design pattern.

20 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Parts Depot Web Services Parts Depot, Inc has deployed some web services to enable its customers to: –get a list of parts –get detailed information about a particular part –submit a Purchase Order (PO)

21 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. The REST way of Designing the Web Services Web Server HTTP POST URL 3 PO (HTML/XML) HTTP GET request URL 1 HTTP response URL to submitted PO Parts List Part Data PO HTTP response Response (HTML/XML doc) HTTP response Response (HTML/XML doc) HTTP GET request URL 2

22 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Web Service for Clients to Retrieve a List of Parts Service: Get a list of parts –The web service makes available a URL to a parts list resource. A client uses this URL to get the parts list: Note that how the web service generates the parts list is completely transparent to the client. This is loose coupling.

23 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. REST Fundamentals Create a resource for every service. Identify each resource using a URL.

24 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Data Returned - Parts List Note that the parts list has links to get detailed info about each part. This is a key feature of the REST design pattern. The client transfers from one state to the next by examining and choosing from among the alternative URLs in the response document.

25 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. REST Fundamentals The data that a Web service returns should link to other data. Thus, design your data as a network of information. Contrast with OO design, which says to encapsulate information.

26 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Web Service for Clients to Retrieve a Particular Part Service: Get detailed information about a particular part –The web service makes available a URL to each part resource. For example, here's how a client requests a specific part:

27 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Data Returned - Part Widget-A This part is used within the frap assembly Again observe how this data is linked to still more data - the specification for this part may be found by traversing the hyperlink. Each response document allows the client to drill down to get more detailed information.

28 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Questions and Answers

29 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Question What if Parts Depot has a million parts, will there be a million static pages? For example:

30 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Answer We need to distinguish between a logical and a physical entity. The above URLs are logical. They express what resource is desired. They do not identify a physical object. The advantage of using a logical identifier (URL) is that changes to the underlying implementation of the resource will be transparent to clients (that's loose coupling!). Quite likely, Parts Depot will store all parts data in a database. Code at the Parts Depot web site will receive each logical URL request, parse it to determine which part is being requested, query the database, and generate the part response document to return to the client.

31 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Answer (cont.) Contrast the above logical URLs with these physical URLs: These URLs are clearly pointing to physical (HTML) pages. If there are a million parts it will not be very attractive to have a million static pages. Furthermore, changes to how these parts data is represented will effect all clients that were using the old representation.

32 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Question What if I have a complex query? For example: Show me all parts whose unit cost is under $0.50 and for which the quantity is less than 10 How would you do that with a simple URL?

33 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Answer For complex queries, Parts Depot will provide a service (resource) for a client to retrieve a form that the client then fills in. When the client hits "Submit" the browser will gather up the clients responses and generate a URL based on the responses. Thus, oftentimes the client doesn't generate the URL (think about using Amazon - you start by entering the URL to amazon.com; from then on you simply fill in forms, and the URLs are automatically created for you).

34 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. Summary of the REST Design Pattern

35 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. The REST Design Pattern Create a resource for every service. Uniquely identify each resource with a logical URL. Design your information to link to other information. That is, the information that a resource returns to a client should link to other information in a network of related information.

36 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. The REST Design Pattern (cont.) All interactions between a client and a web service are done with simple operations. Most web interactions are done using HTTP and just four operations: –retrieve information (HTTP GET) –create information (HTTP PUT) –update information (HTTP POST) –delete information (HTTP DELETE)

37 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. The REST Design Pattern (cont.) Remember that Web components (firewalls, routers, caches) make their decisions based upon information in the HTTP Header. Consequently, the destination URL must be placed in the HTTP header for Web components to operate effectively. –Conversely, it is anti-REST if the HTTP header just identifies an intermediate destination and the payload identifies the final destination.

38 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. References

39 Copyright © [2005]. Roger L. Costello, Timothy D. Kehoe. All Rights Reserved. References Paul Prescod has written several excellent articles on REST: –Second Generation Web Services –REST and the Real World –SOAP, REST and Interoperability –Evaluating XML for Protocol Control Data