Web Server Design Week 16 Old Dominion University

Slides:



Advertisements
Similar presentations
REST Introduction 吴海生 博克软件(杭州)有限公司.
Advertisements

Building and using REST information services Rion Dooley.
Practical Uses for Web Services in Application Express
Server Access The REST of the Story David Cleary
REST (Representational State Transfer)
Amazon S3 – An SOA By: Minam Ulhaq.
JamesRH  7 major AWS Services (  Amazon E-Commerce Service (ECS)  Amazon.
STANFORD UNIVERSITY INFORMATION TECHNOLOGY SERVICES IT Services Storage And Backup Low Cost Central Storage (LCCS) January 9,
Web Services CS Web Services Internet-available services using XML messaging, for computer-computer interaction Not tied to any OS or language Self-describing:
CS 415 N-Tier Application Development By Umair Ashraf July 6,2013 National University of Computer and Emerging Sciences Lecture # 9 Introduction to Web.
REST.  REST is an acronym standing for Representational State Transfer  A software architecture style for building scalable web services  Typically,
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
Robert Lyon  Design Review  November 11, 2011.
Introduction to the SharePoint 2013 REST API. 2 About Me SharePoint Solutions Architect at Sparkhound in Baton Rouge
NHIN DIRECT REST IMPLEMENTATION Prepared by: The NHIN Direct REST Team June 8, 2010.
Representational State Transfer (REST). What is REST? Network Architectural style Overview: –Resources are defined and addressed –Transmits domain-specific.
Web Server Design Assignment #4: Authentication Due: 04/14/2010 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein.
Service Oriented Programming 1 Javier Espinosa, PhD
RESTful Web Services What is RESTful?
Web Server Design Week 15 Old Dominion University Department of Computer Science CS 495/595 Spring 2010 Martin Klein 4/21/10.
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.
AJAX and REST. Slide 2 What is AJAX? It’s an acronym for Asynchronous JavaScript and XML Although requests need not be asynchronous It’s not really a.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Android Programming Steve Ko Computer Sciences and Engineering University at Buffalo.
Programming for RESTful-SOA An introduction to building a SOA System with light-weighted RESTful Web Services (Web Services without SOAP or WSDL) Xiong.
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.
Peer-to-Peer Information Systems Week 12: Naming
Course: Cluster, grid and cloud computing systems Course author: Prof
Better RESTFul API – Best Practices
WEB SERVICES From Chapter 19 of Distributed Systems Concepts and Design,4th Edition, By G. Coulouris, J. Dollimore and T. Kindberg Published by Addison.
Amazon Storage- S3 and Glacier
WEB SERVICES.
REST: Web Services Abel Sanchez.
REST- Representational State Transfer Enn Õunapuu
Cosc 5/4730 REST services.
Node.js Express Web Services
AJAX and REST.
Web Server Design Assignment #5: Unsafe Methods & CGI
An introduction to REST for SharePoint 2013
What is REST API ? A REST (Representational State Transfer) Server simply provides access to resources and the REST client accesses and presents the.
Introduction to Persistent Identifiers
Web Server Design Assignment #4: Authentication
Web Server Design Week 11 Old Dominion University
Amazon AWS Solution Architect Associate Exam Dumps For Full Exam Info Visit This Link:
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 13 Old Dominion University
Web Server Design Week 16 Old Dominion University
Web Server Design Week 10 Old Dominion University
Web Server Design Week 13 Old Dominion University
Web Server Design Week 13 Old Dominion University
Web Server Design Week 11 Old Dominion University
MS AZURE By Sauras Pandey.
WEB SERVICES From Chapter 19, Distributed Systems
Web Server Design Week 11 Old Dominion University
Web APIs In computer programming, an application programming interface (API) is a set of subroutine definitions, protocols, and tools for building application.
Web Programming Assignment 4 - Extra Credit
Web Server Design Week 14 Old Dominion University
Web Server Design Assignment #1: Basic Operations
Peer-to-Peer Information Systems Week 12: Naming
Data Portability It’s Mine, Mine, Mine!
Web Server Design Assignment #5 Extra Credit
Informer 5 API How to get connected and start integrating
Introduction to Digital Libraries Assignment #1
Presentation transcript:

Web Server Design Week 16 Old Dominion University Department of Computer Science CS 495/595 Spring 2012 Michael L. Nelson <mln@cs.odu.edu> 04/24/12

Representational State Transfer http is an implementation of REST http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm REST is best understood in contrast to Remote Procedure Call (RPC) style interfaces like SOAP http://en.wikipedia.org/wiki/Representational_State_Transfer http://en.wikipedia.org/wiki/SOAP_(protocol) 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… Operation SQL HTTP Create Insert POST, PUT Read/Retrieve Select GET Update PUT Delete/Destroy Delete DELETE http://en.wikipedia.org/wiki/Create,_read,_update_and_delete

Example Design RPC: REST: http://example.com/userApp?method=getUser&arg1=X&arg2=Y http://example.com/userApp?method=addUser&arg1=X&arg2=Y http://example.com/userApp?method=removeUser&arg1=X&arg2=Y http://example.com/userApp?method=updateUser&arg1=X&arg2=Y http://example.com/userApp?method=getLocation&arg1=X&arg2=Y http://example.com/userApp?method=addLocation&arg1=X&arg2=Y http://example.com/userApp?method=removeLocation&arg1=X&arg2=Y http://example.com/userApp?method=updateLocation&arg1=X&arg2=Y http://example.com/userApp?method=listUsers&arg1=X&arg2=Y http://example.com/userApp?method=listLocations&arg1=X&arg2=Y http://example.com/userApp?method=findLocation&arg1=X&arg2=Y http://example.com/userApp?method=findUser&arg1=X&arg2=Y RPC: http://example.com/users/ http://example.com/users/{user} (one for each user - where {user} is either the user name or the user id) http://example.com/findUserForm http://example.com/locations/ http://example.com/locations/{location} (one for each location - where {location} is the location name or the location id) http://example.com/findLocationForm REST: adapted from: http://en.wikipedia.org/wiki/Representational_State_Transfer

Amazon S3 “Simple Storage Service” Premise: http://aws.amazon.com/s3 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 http://aws.amazon.com/s3/pricing/ no initial fee, no maintenance fee $0.11 per GB/month storage (first 50TB) $0.12 per GB/month transferred (first 10TB) private/public X read/write access available

Core Concepts Registration: Bucket Object 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 1-100 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: http://s3.amazonws.com/bucket/key http://bucket.s3.amazonws.com/key http://bucket/key Where: bucket = your namespace key = identifier of the object in the bucket For more info: http://docs.amazonwebservices.com/AmazonS3/2006-03-01/VirtualHosting.html

Examples: These are the same (& real): http://s3.amazonaws.com/doc/2006-03-01/AmazonS3.wsdl http://doc.s3.amazonaws.com/2006-03-01/AmazonS3.wsdl These would be the same (but not real): http://s3.amazonaws.com/MichaelNelsonFords/1966/Fairlane427 http://michaelnelsonfords.s3.amazonaws.com/1966/Fairlane427 http://fords.michaelnelson.org/1966/Fairlane427

Authenticating to AWS Can authenticate to AWS via: “Authorization” http header using the AWS authentication scheme cf. “Basic” & “Digest in RFC-2616 URL arguments http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTAuthentication.html HMAC: Keyed-Hashing for Message Authentication RFC-2104: http://www.ietf.org/rfc/rfc2104.txt

A Tour of the REST API for S3 http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTAPI.html

GData: Atom + REST http://en.wikipedia.org/wiki/Atom_(standard) http://code.google.com/apis/gdata/ http://code.google.com/apis/gdata/docs/2.0/basics.html