Web Server Design Week 15 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 4/21/10.

Slides:



Advertisements
Similar presentations
Practical Uses for Web Services in Application Express
Advertisements

Amazon S3 – An SOA By: Minam Ulhaq.
JamesRH  7 major AWS Services (  Amazon E-Commerce Service (ECS)  Amazon.
HTTP HyperText Transfer Protocol. HTTP Uses TCP as its underlying transport protocol Uses port 80 Stateless protocol (i.e. HTTP Server maintains no information.
SOAP Chandra Dutt Yarlagadda Introduction  Why ?  What ?  How ?  Security Issues in SOAP  Advantages  Uses  Conclusion.
2/9/2004 Web and HTTP February 9, /9/2004 Assignments Due – Reading and Warmup Work on Message of the Day.
Hypertext Transport Protocol CS Dick Steflik.
 What is it ? What is it ?  URI,URN,URL URI,URN,URL  HTTP – methods HTTP – methods  HTTP Request Packets HTTP Request Packets  HTTP Request Headers.
CS 415 N-Tier Application Development By Umair Ashraf July 6,2013 National University of Computer and Emerging Sciences Lecture # 9 Introduction to Web.
SOAP Simple Object Access Protocol by Vinubalaji Gopal (Vinu)
Human-Computer Interface Course 5. ISPs and Internet connection.
Web Server Design Week 5 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 2/10/10.
FTP (File Transfer Protocol) & Telnet
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
Application Layer 2 Figures from Kurose and Ross
CS 190 Lecture Notes: Tweeter ProjectSlide 1 Uniform Resource Locators (URLs) Scheme Host.
Web Server Design Week 14 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 4/14/10.
Robert Lyon  Design Review  November 11, 2011.
Web Server Design Week 8 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 3/3/10.
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 8 Omar Meqdadi Department of Computer Science and Software Engineering University of.
Web Server Design Week 4 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 2/03/10.
Web Server Design Assignment #1: Basic Operations Due: 02/03/2010 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin.
Web Server Design Week 11 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 3/24/10.
Web Server Design Assignment #2: Conditionals & Persistence Due: 02/24/2010 Old Dominion University Department of Computer Science CS 495/595 Spring 2010.
The Basics of HTTP Jason Dean
Web Server Design Week 2 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 1/20/10.
Web Server Design Week 7 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 2/24/10.
Web Server Design Week 13 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 4/7/10.
Web Server Design Assignment #4: Authentication Due: 04/14/2010 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein.
RESTful Web Services What is RESTful?
Web Services An Introduction Copyright © Curt Hill.
Web Technologies Lecture 10 Web services. From W3C – A software system designed to support interoperable machine-to-machine interaction over a network.
Web Server Design Week 6 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 2/17/10.
Lecture VI: SOAP-based Web Service CS 4593 Cloud-Oriented Big Data and Software Engineering.
Web Server Design Week 10 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 3/17/10.
SOAP, Web Service, WSDL Week 14 Web site:
REST REPRESENTATIONAL STATE TRANSFER Scott Ainsworth & Louis Nguyen (Group 1) Old Dominion University, CS 791: Web Syndication Formats, January 29, 2008.
REST API Design. Application API API = Application Programming Interface APIs expose functionality of an application or service that exists independently.
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
Web Server Design Week 13 Old Dominion University Department of Computer Science CS 495/595 Spring 2012 Michael L. Nelson 04/03/12.
Web Server Design Week 15 Old Dominion University Department of Computer Science CS 495/595 Spring 2009 Michael L. Nelson 4/20/09.
Web Server Design Week 3 Old Dominion University Department of Computer Science CS 495/595 Spring 2006 Michael L. Nelson 1/23/06.
Web Server Design Week 6 Old Dominion University Department of Computer Science CS 495/595 Spring 2006 Michael L. Nelson 2/13/06.
Intro to REST Joe Gregorio Google. REST is an Architectural Style.
REST in Practice COMP6017 Topics on Web Services Dr Nicholas Gibbins –
Hypertext Transfer Protocol
What is REST API ? A REST (Representational State Transfer) Server simply provides access to resources and the REST client accesses and presents the.
Web Server Design Week 11 Old Dominion University
Ashish Pandit IT Architect, Middleware & Integration Services
WEB API.
Web Server Design Assignment #5 Extra Credit
Chapter 9 Web Services: JAX-RPC, WSDL, XML Schema, and SOAP
Web Server Design Week 4 Old Dominion University
Building a Database on S3
Web Server Design Week 15 Old Dominion University
Web Server Design Week 5 Old Dominion University
Web Server Design Week 16 Old Dominion University
Web Server Design Week 16 Old Dominion University
Web Server Design Week 10 Old Dominion University
Web Server Design Week 11 Old Dominion University
Web Server Design Week 11 Old Dominion University
Web Server Design Week 3 Old Dominion University
Web Server Design Week 4 Old Dominion University
Web Server Design Week 16 Old Dominion University
Web Server Design Week 12 Old Dominion University
Web Server Design Week 12 Old Dominion University
Web Server Design Week 14 Old Dominion University
Web Server Design Assignment #1: Basic Operations
Web Server Design Assignment #5 Extra Credit
Informer 5 API How to get connected and start integrating
Presentation transcript:

Web Server Design Week 15 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 4/21/10

Representational State Transfer HTTP is an implementation of REST – REST is best understood in contrast to Remote Procedure Call (RPC) style interfaces like SOAP – – The simplest explanation is RESTful URIs are nouns, and RPC URIs are verbs –it is not true that REST URIs do not have arguments / query strings Philosophies: –RPC: HTTP is just a transport protocol to tunnel an application-specific protocol; other protocols (e.g., SMTP or future protocols) can be used too –REST (HTTP implementation): HTTP already has basic mechanisms for almost anything you need and will be around forever. Embrace it in your system design.

All You Need is CRUD… OperationSQLHTTP CreateInsertPOST, PUT Read/RetrieveSelectGET Update PUT Delete/DestroyDeleteDELETE

Example Design (one for each user - where {user} is either the user name or the user id) (one for each location - where {location} is the location name or the location id) RPC: REST: adapted from:

Amazon S3 “Simple Storage Service” – –part of a family of Amazon Web Services (AWS), including “Elastic Compute Cloud (EC2)” and “Simple Queueing Service (SQS)” Premise: –cheap, remote storage service accessible via http –no initial fee, no maintenance fee –$0.15 per GB/month storage (first 50TB) –$0.10 per GB transferred –private/public X read/write access available

Core Concepts Registration: –AWS access key ID semantic free name space for your account –Secret access key used to authenticate to AWS Bucket –namespace for referencing your objects; must be globally unique –you can have buckets per AWS access key –buckets hold 0 or more objects Object –files (placed in buckets); up to 5GB in a single object –“key” is the identifier for the object placed in a bucket

Access Points SOAP and REST interfaces provided 3 different URLs for REST access: – – – Where: –bucket = your namespace –key = identifier of the object in the bucket For more info: –

Examples: These are the same (& real): These would be the same (but not real):

Authenticating to AWS Can authenticate to AWS via: –“Authorization” HTTP header using the AWS authentication scheme cf. “Basic” & “Digest in RFC-2616 –URL arguments 01/RESTAuthentication.htmlhttp://docs.amazonwebservices.com/AmazonS3/ /RESTAuthentication.html HMAC: Keyed-Hashing for Message Authentication –RFC-2104:

Authentication Header Example Authorization: AWS AWSAccessKeyId:Signature Authorization = "AWS" + " " + AWSAccessKeyId + ":" + Signature; Signature = Base64( HMAC-SHA1( UTF-8-Encoding-Of( YourSecretAccessKeyID, StringToSign ) ) ); StringToSign = HTTP-Verb + "\n" + Content-MD5 + "\n" + Content-Type + "\n" + Date + "\n" + CanonicalizedAmzHeaders + CanonicalizedResource; CanonicalizedResource = ….

A Tour of the REST API for S3 nS3/ /RESTAPI.htmlhttp://docs.amazonwebservices.com/Amazo nS3/ /RESTAPI.html

Create a Bucket # create bucket request PUT /[bucket-name] HTTP/1.0 Date: Wed, 08 Mar :06:15 GMT Authorization: AWS [aws-access-key-id]:[header-signature] Host: s3.amazonaws.com # create bucket response HTTP/ OK x-amz-id-2: VjzdTviQorQtSjcgLshzCZSzN+7CnewvHA+6sNxR3VRcUPyO5fm… x-amz-request-id: 91A8CC60F9FC49E7 Date: Wed, 08 Mar :06:15 GMT Location: /[bucket-name] Content-Length: 0 Connection: keep-alive Server: AmazonS3

Write an Object # put object request PUT /[bucket-name]/[key-name] HTTP/1.0 Date: Wed, 08 Mar :06:16 GMT Authorization: AWS [aws-access-key-id]:[header-signature] Host: s3.amazonaws.com Content-Length: 14 x-amz-meta-title: my title Content-Type: text/plain this is a test # put object response HTTP/ OK x-amz-id-2: wc15E1LUrjDZhNtT4QZtsbtadnOMKGjw5QTxkRDVO1owwbA6Y… x-amz-request-id: 7487CD42C5CA7524 Date: Wed, 08 Mar :06:16 GMT ETag: "54b0c58c7ce9f2a8b ee0938" Content-Length: 0 Connection: keep-alive Server: AmazonS3

GData: Atom + REST queries.htmlhttp://code.google.com/apis/base/docs/2.0/attrs- queries.html