際際滷

際際滷Share a Scribd company logo
Presentation on
Web Services- REST Architecture
Sarwajit Kumar
What are the Web Services ?
2
 Application Programming Interfaces (API)
 Request Services
 REST Architecture
 SOA Architecture
 OASIS
 World Wide Web Consortium (W3C )
What is Web Services ?
3
 Web Services are evolving, middleware platform that facilitate program-to-program
interactions.
 A service is a software entity that can be discovered and invoked by other software
systems.
 Definition from standardization body W3C :
 A Web service is a software system identified by a URI, whose public interfaces
and bindings are defined and described using XML. Its definition can be
discovered by other software systems.These systems may then interact with the
Web service in a manner prescribed by its definition, using XML based
messages conveyed by internet protocols.
 Web services are self contained, self describing, modular applications that can be
published, located, and invoked across the web. Web services perform functions,
which can be anything from simple requests to complicated business processes".
4
Example : Web-Based Purchase
5
How does a Web Service Work ?
 The client sends a request
 Request encoded in XML
 Function (GET, POST) in the file
 The server decodes the file
 The function is executed
 A new XML file is encoded and re-send to the
client
 Clients and servers communicate over the
HyperText Transfer Protocol (HTTP).
6
Types of Web Services
 Can be classified as Big web services and RESTful web services.
 Big web services are based on SOAP standard and often contain a WSDL to describe
the interface that the web service offers.
 Big web services includes architecture to address complex non-functional
requirements like transactions, security, addressing, trust, coordination, and also
handles asynchronous processing and invocation.
 SOAP based Web Services is a great solution when you need,
 Asynchronous processing
 Reliability
 Stateful operations
7
RESTful Web Services
 REST is a term coined by Roy Fielding to describe an architecture style of networked
systems. REST is an acronym standing for Representational State Transfer.
 It is an architectural pattern for developing web services as opposed to a specification.
"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...
 REST web services communicate over the HTTP specification, using HTTP
vocabulary:
 Methods (GET, POST, etc.)
 HTTP URI syntax (paths, parameters, etc.)
 Media types (xml, json, html, plain text, etc)
 HTTP Response codes.
8
Introduction to REST
 Representational
 Clients possess the information necessary to identify, modify, and/or delete a web
resource.
 State
 All resource state information is stored on the client.
 Transfer
 Client state is passed from the client to the service through HTTP.
 The six characteristics of REST:
 Uniform interface
 Decoupled client-server interaction
 Stateless
 Cacheable
 Layered
 Extensible through code on demand (optional).
* Services that do not conform to the above required constraints are not strictly
RESTful web services.
Example : Web-Based Reservation Service
9
 Suppose now the airline (AirIndia.com) wants to provide a Web reservation service for
customers to make flight reservations through the Web.
 There are two main approaches to implementing the Web reservation service.
Approach 1
One-Stop Shopping
Continued...
10
Approach 1 Diadvantages :
 There is currently no industry accepted practice (rules) for expressing priorities.
 It violates Tim Berners-Lee Web Design, Axiom 0 (all resources on the Web must be
uniquely identified with a URI).
Approach 2:
URLs are Cheap! Use Them!
11
Continued...
Approach 2 Advantages :
 The different URLs are discoverable by search engines and UDDI registries.
 There is no need to introduce rules. Priorities are elevated to the level of a URL. "What
you see is what you get."
 It's easy to understand what each service does simply by examining the URL, i.e., it
exploits the Principle of Least Surprise.
 It's easy to implement high priority - simply assign a fast machine at the premier
member URL.
 There is no bottleneck and consistent with Axiom 0.
12
RESTful Web Services : HTTP and REST
HTTP-REST Request Basics
 The HTTP request is sent from the client.
 Identifies the location of a resource.
 Specifies the verb, or HTTP method to use when accessing the resource.
 Supplies optional request headers (name-value pairs) that provide additional
information the server may need when processing the request.
 Supplies an optional request body that identifies additional data to be uploaded to
the server
HTTP-REST Request Basics
 The HTTP response is sent from the server.
 Gives the status of the processed request.
13
Continued...
 Supplies response headers (name-value pairs) that provide additional information
about the response.
 Supplies an optional response body that identifies additional data to be
downloaded to the client
 A REST service framework provides a controller for routing HTTP requests to a request
handler according to:
 The HTTP method used (e.g. GET, POST)
 Supplied path information (e.g /service/listItems)
 Query, form, and path parameters
 Headers, cookies, etc.
14
Main Concepts
Nouns (Resources)
unconstrained
i.e., http://example.com/employees/12345
REST
Verbs
constrained
i.e., GET
Representations
constrained
i.e., XML
Resources
15
 The key abstraction of information in REST is a resource.
 A resource is a conceptual mapping to a set of entities
 Represented with a global identifier (URI in HTTP)
 http://www.boeing.com/aircraft/747
 REST uses URI to identify resources
 http://localhost/classes
 http://localhost/classes/cs2650
 http://localhost/classes/cs2650/students
 As we traverse the path from more generic to more specific, we are navigating the
data.
16
Verbs
 Represent the actions to be performed on resources
 HTTP GET
 How clients ask for the information they seek.
 HTTP POST
 HTTP POST creates a resource
 HTTP PUT
 HTTP PUT updates a resource
 HTTP DELETE
 Removes the resource identified by the URI
17
Representations
 How data is represented or returned to the client for presentation
 Two main formats:
 JavaScript Object Notation (JSON)
 XML
 It is common to have multiple representations of the same data
 XML
 <COURSE>
<ID>CS2650</ID>
<NAME>Distributed Multimedia Software</NAME>
</COURSE>
 JSON
 {course
{id: CS2650}
{name: Distributed Multimedia Sofware}
}
18
Why is it called "Representational State Transfer"?
Client
Resource
http://www.airindia.com/aircraft/111
Fuel requirements
Maintenance schedule
...
airindia111.html
REST way of Implementing the Web Services
19
Thank You

More Related Content

REST Presentation

  • 1. Presentation on Web Services- REST Architecture Sarwajit Kumar
  • 2. What are the Web Services ? 2 Application Programming Interfaces (API) Request Services REST Architecture SOA Architecture OASIS World Wide Web Consortium (W3C )
  • 3. What is Web Services ? 3 Web Services are evolving, middleware platform that facilitate program-to-program interactions. A service is a software entity that can be discovered and invoked by other software systems. Definition from standardization body W3C : A Web service is a software system identified by a URI, whose public interfaces and bindings are defined and described using XML. Its definition can be discovered by other software systems.These systems may then interact with the Web service in a manner prescribed by its definition, using XML based messages conveyed by internet protocols. Web services are self contained, self describing, modular applications that can be published, located, and invoked across the web. Web services perform functions, which can be anything from simple requests to complicated business processes".
  • 5. 5 How does a Web Service Work ? The client sends a request Request encoded in XML Function (GET, POST) in the file The server decodes the file The function is executed A new XML file is encoded and re-send to the client Clients and servers communicate over the HyperText Transfer Protocol (HTTP).
  • 6. 6 Types of Web Services Can be classified as Big web services and RESTful web services. Big web services are based on SOAP standard and often contain a WSDL to describe the interface that the web service offers. Big web services includes architecture to address complex non-functional requirements like transactions, security, addressing, trust, coordination, and also handles asynchronous processing and invocation. SOAP based Web Services is a great solution when you need, Asynchronous processing Reliability Stateful operations
  • 7. 7 RESTful Web Services REST is a term coined by Roy Fielding to describe an architecture style of networked systems. REST is an acronym standing for Representational State Transfer. It is an architectural pattern for developing web services as opposed to a specification. "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... REST web services communicate over the HTTP specification, using HTTP vocabulary: Methods (GET, POST, etc.) HTTP URI syntax (paths, parameters, etc.) Media types (xml, json, html, plain text, etc) HTTP Response codes.
  • 8. 8 Introduction to REST Representational Clients possess the information necessary to identify, modify, and/or delete a web resource. State All resource state information is stored on the client. Transfer Client state is passed from the client to the service through HTTP. The six characteristics of REST: Uniform interface Decoupled client-server interaction Stateless Cacheable Layered Extensible through code on demand (optional). * Services that do not conform to the above required constraints are not strictly RESTful web services.
  • 9. Example : Web-Based Reservation Service 9 Suppose now the airline (AirIndia.com) wants to provide a Web reservation service for customers to make flight reservations through the Web. There are two main approaches to implementing the Web reservation service. Approach 1 One-Stop Shopping
  • 10. Continued... 10 Approach 1 Diadvantages : There is currently no industry accepted practice (rules) for expressing priorities. It violates Tim Berners-Lee Web Design, Axiom 0 (all resources on the Web must be uniquely identified with a URI). Approach 2: URLs are Cheap! Use Them!
  • 11. 11 Continued... Approach 2 Advantages : The different URLs are discoverable by search engines and UDDI registries. There is no need to introduce rules. Priorities are elevated to the level of a URL. "What you see is what you get." It's easy to understand what each service does simply by examining the URL, i.e., it exploits the Principle of Least Surprise. It's easy to implement high priority - simply assign a fast machine at the premier member URL. There is no bottleneck and consistent with Axiom 0.
  • 12. 12 RESTful Web Services : HTTP and REST HTTP-REST Request Basics The HTTP request is sent from the client. Identifies the location of a resource. Specifies the verb, or HTTP method to use when accessing the resource. Supplies optional request headers (name-value pairs) that provide additional information the server may need when processing the request. Supplies an optional request body that identifies additional data to be uploaded to the server HTTP-REST Request Basics The HTTP response is sent from the server. Gives the status of the processed request.
  • 13. 13 Continued... Supplies response headers (name-value pairs) that provide additional information about the response. Supplies an optional response body that identifies additional data to be downloaded to the client A REST service framework provides a controller for routing HTTP requests to a request handler according to: The HTTP method used (e.g. GET, POST) Supplied path information (e.g /service/listItems) Query, form, and path parameters Headers, cookies, etc.
  • 14. 14 Main Concepts Nouns (Resources) unconstrained i.e., http://example.com/employees/12345 REST Verbs constrained i.e., GET Representations constrained i.e., XML
  • 15. Resources 15 The key abstraction of information in REST is a resource. A resource is a conceptual mapping to a set of entities Represented with a global identifier (URI in HTTP) http://www.boeing.com/aircraft/747 REST uses URI to identify resources http://localhost/classes http://localhost/classes/cs2650 http://localhost/classes/cs2650/students As we traverse the path from more generic to more specific, we are navigating the data.
  • 16. 16 Verbs Represent the actions to be performed on resources HTTP GET How clients ask for the information they seek. HTTP POST HTTP POST creates a resource HTTP PUT HTTP PUT updates a resource HTTP DELETE Removes the resource identified by the URI
  • 17. 17 Representations How data is represented or returned to the client for presentation Two main formats: JavaScript Object Notation (JSON) XML It is common to have multiple representations of the same data XML <COURSE> <ID>CS2650</ID> <NAME>Distributed Multimedia Software</NAME> </COURSE> JSON {course {id: CS2650} {name: Distributed Multimedia Sofware} }
  • 18. 18 Why is it called "Representational State Transfer"? Client Resource http://www.airindia.com/aircraft/111 Fuel requirements Maintenance schedule ... airindia111.html
  • 19. REST way of Implementing the Web Services 19