SlideShare a Scribd company logo
1 of 43
Download to read offline
REST vs. SOAP:
              Making the Right
            Architectural Decision
                      Cesare Pautasso
                     Faculty of Informatics
            University of Lugano (USI), Switzerland
                  http://www.pautasso.info


7.10.2008           SOA Symposium 2008, Amsterdam     1
                        ©2008 Cesare Pautasso
Agenda
  1. Motivation: A short history of Web Services
  2. Comparing REST vs. SOAP/WS-*
  3. Architectural Decision Modeling
  4. Conceptual Comparison
  5. Technology Comparison
  6. How to measure the “complexity” of WS-*
     or the “simplicity” of REST?
  7. Conclusion: Making the right Architectural
     Decision
7.10.2008        SOA Symposium 2008, Amsterdam     2
                     ©2008 Cesare Pautasso
Web Sites (1992)


        Web              HTML                    Web
      Browser            HTTP                   Server

 WS-* Web Services (2000)

                         SOAP                   WSDL
            Client        XML                   Server
7.10.2008
                          (HTTP) Amsterdam
                     SOA Symposium 2008,                 3
                        ©2008 Cesare Pautasso
RESTful Web Services (2006)




                              PO-XML
                      JSON


                                       RSS
                                                 WADL
                                                  Web
            Client
                             HTTP                Server

 WS-* Web Services (2000)

                          SOAP                   WSDL
            Client           XML                 Server
7.10.2008
                           (HTTP) Amsterdam
                      SOA Symposium 2008,                 4
                         ©2008 Cesare Pautasso
7.10.2008   SOA Symposium 2008, Amsterdam   5
                ©2008 Cesare Pautasso
RESTful
                  RSS


                  XML          JSON


                       MIME


            URI         HTTP


                         SSL
7.10.2008    SOA Symposium 2008, Amsterdam   6
                 ©2008 Cesare Pautasso
Is REST being used?




                                            Slide from Paul Downey, BT
7.10.2008   SOA Symposium 2008, Amsterdam                                7
                ©2008 Cesare Pautasso
Can we really compare
                   WS-* vs. REST?




            WS-*                                    REST




7.10.2008           SOA Symposium 2008, Amsterdam          8
                        ©2008 Cesare Pautasso
Can we really compare
                     WS-* vs. REST?




             WS-*                                     REST

        SOA Middleware                            Architectural
         Interoperability                           style for
            Standards                               the Web



7.10.2008             SOA Symposium 2008, Amsterdam               9
                          ©2008 Cesare Pautasso
How to compare?



                     Arch itectural
                   Decision  Modeling                   REST

            WS-*                                     Architectural
                                                       style for
 SOA Middleware                                        the Web
  Interoperability
     Standards

7.10.2008            SOA Symposium 2008, Amsterdam                   10
                         ©2008 Cesare Pautasso
Architectural Decisions
• Architectural decisions             Architectural Decision:
  capture the main design             Communication Protocol
  issues and the rationale
  behind a chosen technical           Architecture Alternatives:
  solution                            1. TCP
• The choice between REST             2. SMTP
  vs. WS-* is an important            3. HTTP
  architectural decision for          4. MQ
  integration projects                5. BEEP
• Architectural decisions             6. CORBA IIOP
  affect one another                  7. …

                                      Rationale
7.10.2008           SOA Symposium 2008, Amsterdam                  11
                        ©2008 Cesare Pautasso
Application Integration Styles


  Shared            Remote            Message Bus       File
 Database          Procedure                          Transfer
                      Call




            REST                WS-*


     Integration Technology Platform
7.10.2008             SOA Symposium 2008, Amsterdam              12
                          ©2008 Cesare Pautasso
Related Decisions (WS-*)


  Shared            Remote            Message Bus       File
 Database          Procedure                          Transfer
                      Call




            REST                WS-*




7.10.2008             SOA Symposium 2008, Amsterdam              13
                          ©2008 Cesare Pautasso
Related Decisions (RPC)


  Shared            Remote            Message Bus       File
 Database          Procedure                          Transfer
                      Call




            REST                WS-*




7.10.2008             SOA Symposium 2008, Amsterdam              14
                          ©2008 Cesare Pautasso
Decision Space Overview




7.10.2008    SOA Symposium 2008, Amsterdam   15
                 ©2008 Cesare Pautasso
Decision Space Summary
 21 Decisions and 64 alternatives
 Classified by level of abstraction:
 • 3 Architectural Principles
 • 9 Conceptual Decisions
 • 9 Technology-level Decisions


             Decisions help us to measure the
            complexity implied by the choice of
                      REST or WS-*
7.10.2008            SOA Symposium 2008, Amsterdam   16
                         ©2008 Cesare Pautasso
Architectural Principles


      1. Protocol Layering
            • HTTP = Application-level Protocol (REST)
            • HTTP = Transport-level Protocol      (WS-*)
      2. Dealing with Heterogeneity
      3. Loose Coupling



7.10.2008             SOA Symposium 2008, Amsterdam         17
                          ©2008 Cesare Pautasso
RESTful Web Service Example

      HTTP Client                 Web Server               Database
    (Web Browser)

                                                 SELECT *
             GET /book?ISBN=222                 FROM books
                                               WHERE isbn=222

                 POST /order                         INSERT
                                                   INTO orders
            301 Location: /order/612


               PUT /order/612                    UPDATE orders
                                                 WHERE id=612
7.10.2008                 SOA Symposium 2008, Amsterdam               18
                              ©2008 Cesare Pautasso
Big Web Service Example
                      (from REST perspective)
                                                         Web Service
      HTTP Client               Web Server
                                                        Implementation
     (Stub Object)


            POST /soap/endpoint
                                           return getBook(222)

            POST /soap/endpoint
                                             return new Order()

            POST /soap/endpoint
                                           order.setCustomer(x)


7.10.2008               SOA Symposium 2008, Amsterdam                    19
                            ©2008 Cesare Pautasso
Protocol Layering
• “The Web is the universe of globally       • “The Web is the universal (tunneling)
  accessible information”                      transport for messages”
  (Tim Berners Lee)                              – Applications get a chance to
   – Applications should publish their             interact but they remain
     data on the Web (through URI)                 “outside of the Web”


   POX       RSS        JSON         …                        SOAP (WS-*)

  HTTP       HTTP      HTTP      HTTP                            HTTP
                                                    SMTP                     MQ…
  GET        POST      PUT       DEL                             POST

            Resource URI                                      Endpoint URI

              Application                                     Application
7.10.2008                     SOA Symposium 2008, Amsterdam                            20
                                  ©2008 Cesare Pautasso
Dealing with Heterogeneity

• Web Applications                  • Enterprise Computing




                                                             Picture from Eric Newcomer, IONA
             HTTP


                                                     CICS
                                                      IMS


 7.10.2008           SOA Symposium 2008, Amsterdam                21
                         ©2008 Cesare Pautasso
Conceptual Comparison




                            Note: this table
                             will scroll up
                            during the talk


7.10.2008    SOA Symposium 2008, Amsterdam     22
                 ©2008 Cesare Pautasso
Technology Comparison




                                Note: this table
                                 will scroll up
                                during the talk




7.10.2008    SOA Symposium 2008, Amsterdam         23
                 ©2008 Cesare Pautasso
Measuring Complexity
• Architectural Decisions give a
  quantitative measure of the complexity
  of an architectural design space:
      – Total number of decisions
      – For each decision, number of alternative options
      – For each alternative option, estimate the effort
                               REST                     WS-*
      Decisions                 17                       14
      Alternatives              27                       35
             Decisions with 1 or more alternative options
7.10.2008               SOA Symposium 2008, Amsterdam          24
                            ©2008 Cesare Pautasso
Measuring Complexity

                              REST                      WS-*
     Decisions                 5                         12
     Alternatives              16                        32
            Decisions with more than 1 alternative options

                               REST                     WS-*
      Decisions                 17                       14
      Alternatives              27                       35
             Decisions with 1 or more alternative options
7.10.2008               SOA Symposium 2008, Amsterdam          25
                            ©2008 Cesare Pautasso
Measuring Complexity

                              REST                      WS-*
     Decisions                 5                         12
     Alternatives              16                        32
            Decisions with more than 1 alternative options

                 • URI Design
                 • Resource Interaction Semantics
                 • Payload Format
                 • Service Description
                 • Service Composition
7.10.2008               SOA Symposium 2008, Amsterdam          26
                            ©2008 Cesare Pautasso
Measuring Complexity

                              REST                      WS-*
     Decisions                 5                         12
     Alternatives              16                        32
            Decisions with more than 1 alternative options

                              REST                      WS-*
      Decisions                12                        2
            Decisions with only 1 alternative option

7.10.2008               SOA Symposium 2008, Amsterdam          27
                            ©2008 Cesare Pautasso
Measuring Complexity


                            • Payload Format
                            • Data Representation Modeling



                              REST                      WS-*
      Decisions                12                        2
            Decisions with only 1 alternative option

7.10.2008               SOA Symposium 2008, Amsterdam          28
                            ©2008 Cesare Pautasso
Measuring Effort

                              REST                      WS-*
    Do-it-yourself             5                         0
    Alternatives
             Decisions with only do-it-yourself alternatives

                              REST                      WS-*
      Decisions                12                        2
            Decisions with only 1 alternative option

7.10.2008               SOA Symposium 2008, Amsterdam          29
                            ©2008 Cesare Pautasso
Measuring Effort

                             REST                      WS-*
    Do-it-yourself            5                         0
    Alternatives
            Decisions with only do-it-yourself alternatives

               • Resource Identification
               • Resource Relationship
               • Reliability
               • Transactions
               • Service Discovery
7.10.2008              SOA Symposium 2008, Amsterdam          30
                           ©2008 Cesare Pautasso
Freedom of Choice
            Freedom from Choice




7.10.2008   SOA Symposium 2008, Amsterdam   31
                ©2008 Cesare Pautasso
Comparison Summary
• Architectural Decisions measure complexity implied
  by alternative technologies

• REST simplicity = freedom from choice
    – 5 decisions require to choose among 16 alternatives
    – 12 decisions are already taken (but 5 are do-it-yourself)


• WS-* complexity = freedom of choice
    – 12 decisions require to choose among 32 alternatives
    – 2 decisions are already taken (SOAP, WSDL+XSD)
7.10.2008              SOA Symposium 2008, Amsterdam              32
                           ©2008 Cesare Pautasso
Conclusion
• You should focus on whatever solution gets the job
  done and try to avoid being religious about any
  specific architectures or technologies.
• WS-* has strengths and weaknesses and will be
  highly suitable to some applications and positively
  terrible for others. Likewise with REST.
• The decision of which to use depends entirely on the
  application requirements and constraints.
• We hope this comparison will help you make the right
  choice.
7.10.2008         SOA Symposium 2008, Amsterdam      33
                      ©2008 Cesare Pautasso
References
• Cesare Pautasso, Olaf Zimmermann, Frank Leymann,
  RESTful Web Services vs. Big Web Services: Making the Right
  Architectural Decision, Proc. of the 17th International World Wide
  Web Conference (WWW2008), Bejing, China, April 2008.

• Cesare Pautasso, BPEL for REST, Proc. of the 6th International
  Conference on Business Process Management (BPM 2008), Milan,
  Italy, September 2008.

• Cesare Pautasso, Gustavo Alonso: From Web Service Composition
  to Megaprogramming In: Proceedings of the 5th VLDB Workshop on
  Technologies for E-Services (TES-04), Toronto, Canada, August 29-
  30, 2004.

7.10.2008               SOA Symposium 2008, Amsterdam                  34
                            ©2008 Cesare Pautasso
REST vs. SOAP:
              Making the Right
            Architectural Decision
                      Cesare Pautasso
                     Faculty of Informatics
            University of Lugano (USI), Switzerland
                  http://www.pautasso.info


7.10.2008           SOA Symposium 2008, Amsterdam     35
                        ©2008 Cesare Pautasso
Backup Material
                   on REST

                      Cesare Pautasso
                     Faculty of Informatics
            University of Lugano (USI), Switzerland
                  http://www.pautasso.info


7.10.2008           SOA Symposium 2008, Amsterdam     36
                        ©2008 Cesare Pautasso
REST in one Slide
• REpresentational State Transfer defines the architectural
   style of the World Wide Web
• Its four principles can explain the success and the
   scalability of the HTTP protocol implementing them
1. Resource Identification through URI
2. Uniform Interface for all resources:
     GET (Query the state, idempotent, can be cached)
     POST (Update a resource or create child resource)
     PUT (Transfer the state on existing/new resource)
     DELETE (Delete a resource)
3. “Self-Descriptive” Message representations
4. Hyperlinks to define relationships between resources
   and valid state transitions of the service interaction
7.10.2008           SOA Symposium 2008, Amsterdam         37
                        ©2008 Cesare Pautasso
URI: Uniform Resource Identifier

• Internet Standard for resource naming and identification
  (originally from 1994, revised until 2005)
• Examples:
                 http://tools.ietf.org/html/rfc3986

             URI Scheme     Authority             Path
            https://www.google.ch/search?q=rest&start=10#1

                                                          Query   Fragment
• REST advocates the use of “nice” URIs
• In most HTTP stacks URIs cannot have arbitrary length (4Kb)

7.10.2008                 SOA Symposium 2008, Amsterdam                38
                              ©2008 Cesare Pautasso
What is a “nice” URI?
                                                  Prefer Nouns to Verbs
http://map.search.ch/lugano                            Keep them Short
                                      http://maps.google.com/lugano




              http://maps.google.com/maps?f=q&hl=en&q=lugano,
            +switzerland&layer=&ie=UTF8&z=12&om=1&iwloc=addr

7.10.2008              SOA Symposium 2008, Amsterdam                      39
                           ©2008 Cesare Pautasso
Uniform Interface Principle
              (CRUD Example)
      CRUD        REST
                                         Initialize the state of a
     CREATE    POST/PUT                        new resource
                                             at the given URI
                                          Retrieve the current
       READ         GET                   state of the resource
                                             Modify the state
     UPDATE         PUT                        of a resource
                                            Clear a resource,
     DELETE      DELETE                    after the URI is no
                                                longer valid
7.10.2008      SOA Symposium 2008, Amsterdam                         40
                   ©2008 Cesare Pautasso
POST vs. GET

• GET is a read-only operation.
  It can be repeated without
  affecting the state of the
  resource (idem-potent)
• POST is a read-write
  operation and may change
  the state of the resource
  and provoke side effects on
  the server.
  Web browsers warn
  you when refreshing
  a page generated
  with POST


7.10.2008             SOA Symposium 2008, Amsterdam   41
                          ©2008 Cesare Pautasso
RESTful Web Services Design
1. Identify resources to be exposed as




                                                                                 DELETE
   services (e.g., yearly risk report, book




                                                                          POST
   catalog, purchase order, open bugs)




                                                              GET
                                                                    PUT
2. Define “nice” URLs to address them
3. Understand what it means to do a GET,           /loan
   POST, PUT, DELETE on a given resource
   URI                                             /balance         X     X       X
4. Design and document resource                    /client                        ?
   representations (payload formats)
5. Model relationships (e.g., containment,         /book
   reference, state transitions) between           /order                 ?       ?
   resources with hyperlinks that can be
   followed to get more details
6. Implement and deploy on Web server
                                                   /soap      X     X             X
7. Test with a Web browser
7.10.2008                  SOA Symposium 2008, Amsterdam                          42
                               ©2008 Cesare Pautasso
Resource Representation
                      Formats: XML vs JSON
• XML                                • JavaScript Object Notation (JSON)
   – PO-XML                          • Wire format introduced for AJAX
   – SOAP (WS-*)                       Web applications (Browser-
   – RSS, ATOM                         Web Server communication)
• Standard textual syntax for        • Textual syntax for serialization of
  semi-structured data                 non-recurrent data structures
• Many tools available:              • Supported in most languages
  XML Schema, DOM, SAX, XPath,         (not only JavaScript)
  XSLT, XQuery                       • Not extensible
• Everyone can parse it                (does not need to be)
  (not necessarily understand it)    • “JSON has become the X in Ajax”
• Slow and Verbose


7.10.2008               SOA Symposium 2008, Amsterdam                    43
                            ©2008 Cesare Pautasso

More Related Content

What's hot

Clean architecture
Clean architectureClean architecture
Clean architecture.NET Crowd
 
Prometheus
PrometheusPrometheus
Prometheuswyukawa
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean ArchitectureBadoo
 
API Management - Why it matters!
API Management - Why it matters!API Management - Why it matters!
API Management - Why it matters!Sven Bernhardt
 
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Edureka!
 
Clean architecture with asp.net core
Clean architecture with asp.net coreClean architecture with asp.net core
Clean architecture with asp.net coreSam Nasr, MCSA, MVP
 
DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichIvan Paulovich
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To MicroservicesLalit Kale
 
Domain Driven Design Quickly
Domain Driven Design QuicklyDomain Driven Design Quickly
Domain Driven Design QuicklyMariam Hakobyan
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architectureThe Software House
 
Applying Domain-Driven Design to craft Rich Domain Models
Applying Domain-Driven Design to craft Rich Domain ModelsApplying Domain-Driven Design to craft Rich Domain Models
Applying Domain-Driven Design to craft Rich Domain ModelsAlexander van Trijffel
 
APIs in a Microservice Architecture
APIs in a Microservice ArchitectureAPIs in a Microservice Architecture
APIs in a Microservice ArchitectureWSO2
 

What's hot (20)

Clean architecture
Clean architectureClean architecture
Clean architecture
 
Prometheus
PrometheusPrometheus
Prometheus
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
API Management - Why it matters!
API Management - Why it matters!API Management - Why it matters!
API Management - Why it matters!
 
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
Apigee Edge: Intro to Microgateway
Apigee Edge: Intro to MicrogatewayApigee Edge: Intro to Microgateway
Apigee Edge: Intro to Microgateway
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 
Clean architecture with asp.net core
Clean architecture with asp.net coreClean architecture with asp.net core
Clean architecture with asp.net core
 
DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan Paulovich
 
Microservices
MicroservicesMicroservices
Microservices
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
 
Domain Driven Design Quickly
Domain Driven Design QuicklyDomain Driven Design Quickly
Domain Driven Design Quickly
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architecture
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
 
Applying Domain-Driven Design to craft Rich Domain Models
Applying Domain-Driven Design to craft Rich Domain ModelsApplying Domain-Driven Design to craft Rich Domain Models
Applying Domain-Driven Design to craft Rich Domain Models
 
Asp.net web api
Asp.net web apiAsp.net web api
Asp.net web api
 
APIs in a Microservice Architecture
APIs in a Microservice ArchitectureAPIs in a Microservice Architecture
APIs in a Microservice Architecture
 

Viewers also liked

Webservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and RESTWebservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and RESTPradeep Kumar
 
Spring Web Services: SOAP vs. REST
Spring Web Services: SOAP vs. RESTSpring Web Services: SOAP vs. REST
Spring Web Services: SOAP vs. RESTSam Brannen
 
Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Peter R. Egli
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentationguest0df6b0
 
Soap vs. rest - which is right web service protocol for your need?
Soap vs. rest -  which is right web service protocol for your need?Soap vs. rest -  which is right web service protocol for your need?
Soap vs. rest - which is right web service protocol for your need?Vijay Prasad Gupta
 
Web services - A Practical Approach
Web services - A Practical ApproachWeb services - A Practical Approach
Web services - A Practical ApproachMadhaiyan Muthu
 
Layer 7 & Oracle: Cyber Defense for SOA & REST
Layer 7 & Oracle: Cyber Defense for SOA & RESTLayer 7 & Oracle: Cyber Defense for SOA & REST
Layer 7 & Oracle: Cyber Defense for SOA & RESTCA API Management
 
The Rest Architectural Style
The Rest Architectural StyleThe Rest Architectural Style
The Rest Architectural StyleRobert Wilson
 
6 Reasons Why APIs Are Reshaping Your Business
6 Reasons Why APIs Are Reshaping Your Business6 Reasons Why APIs Are Reshaping Your Business
6 Reasons Why APIs Are Reshaping Your BusinessFabernovel
 
Design Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsStormpath
 
Web geliştirmeye başlamak
Web geliştirmeye başlamakWeb geliştirmeye başlamak
Web geliştirmeye başlamakMurat Yüksel
 
Rest vs soap
Rest vs soapRest vs soap
Rest vs soapNaseers
 
S: a Scripting Language for High-Performance RESTful Web Services
S: a Scripting Language for High-Performance RESTful Web ServicesS: a Scripting Language for High-Performance RESTful Web Services
S: a Scripting Language for High-Performance RESTful Web ServicesAchille Peternier
 
Understanding REST-Based Services: Simple, Scalable, and Platform Independent
Understanding REST-Based Services: Simple, Scalable, and Platform IndependentUnderstanding REST-Based Services: Simple, Scalable, and Platform Independent
Understanding REST-Based Services: Simple, Scalable, and Platform IndependentCharles Knight
 
Scalable Reliable Secure REST
Scalable Reliable Secure RESTScalable Reliable Secure REST
Scalable Reliable Secure RESTguestb2ed5f
 

Viewers also liked (20)

SOAP vs REST
SOAP vs RESTSOAP vs REST
SOAP vs REST
 
Webservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and RESTWebservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and REST
 
Soap vs rest
Soap vs restSoap vs rest
Soap vs rest
 
Spring Web Services: SOAP vs. REST
Spring Web Services: SOAP vs. RESTSpring Web Services: SOAP vs. REST
Spring Web Services: SOAP vs. REST
 
REST vs SOAP
REST vs SOAPREST vs SOAP
REST vs SOAP
 
Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentation
 
Soap vs. rest - which is right web service protocol for your need?
Soap vs. rest -  which is right web service protocol for your need?Soap vs. rest -  which is right web service protocol for your need?
Soap vs. rest - which is right web service protocol for your need?
 
Web services - A Practical Approach
Web services - A Practical ApproachWeb services - A Practical Approach
Web services - A Practical Approach
 
Layer 7 & Oracle: Cyber Defense for SOA & REST
Layer 7 & Oracle: Cyber Defense for SOA & RESTLayer 7 & Oracle: Cyber Defense for SOA & REST
Layer 7 & Oracle: Cyber Defense for SOA & REST
 
Soap Vs Rest
Soap Vs RestSoap Vs Rest
Soap Vs Rest
 
The Rest Architectural Style
The Rest Architectural StyleThe Rest Architectural Style
The Rest Architectural Style
 
Web Services Tutorial
Web Services TutorialWeb Services Tutorial
Web Services Tutorial
 
6 Reasons Why APIs Are Reshaping Your Business
6 Reasons Why APIs Are Reshaping Your Business6 Reasons Why APIs Are Reshaping Your Business
6 Reasons Why APIs Are Reshaping Your Business
 
Design Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIs
 
Web geliştirmeye başlamak
Web geliştirmeye başlamakWeb geliştirmeye başlamak
Web geliştirmeye başlamak
 
Rest vs soap
Rest vs soapRest vs soap
Rest vs soap
 
S: a Scripting Language for High-Performance RESTful Web Services
S: a Scripting Language for High-Performance RESTful Web ServicesS: a Scripting Language for High-Performance RESTful Web Services
S: a Scripting Language for High-Performance RESTful Web Services
 
Understanding REST-Based Services: Simple, Scalable, and Platform Independent
Understanding REST-Based Services: Simple, Scalable, and Platform IndependentUnderstanding REST-Based Services: Simple, Scalable, and Platform Independent
Understanding REST-Based Services: Simple, Scalable, and Platform Independent
 
Scalable Reliable Secure REST
Scalable Reliable Secure RESTScalable Reliable Secure REST
Scalable Reliable Secure REST
 

Similar to REST vs. SOAP

Cesare Pautasso R E S T V1
Cesare  Pautasso    R E S T V1Cesare  Pautasso    R E S T V1
Cesare Pautasso R E S T V1SOA Symposium
 
Soa amsterdam-restws-pautasso-talk
Soa amsterdam-restws-pautasso-talkSoa amsterdam-restws-pautasso-talk
Soa amsterdam-restws-pautasso-talkAravindharamanan S
 
WS-* vs. RESTful Services
WS-* vs. RESTful ServicesWS-* vs. RESTful Services
WS-* vs. RESTful ServicesCesare Pautasso
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registrydeimos
 
Building+restful+webservice
Building+restful+webserviceBuilding+restful+webservice
Building+restful+webservicelonegunman
 
Umit Yalcinalp Enterprise Mashupsfor S O A
Umit  Yalcinalp    Enterprise Mashupsfor S O AUmit  Yalcinalp    Enterprise Mashupsfor S O A
Umit Yalcinalp Enterprise Mashupsfor S O ASOA Symposium
 
Next Generation_WVI
Next Generation_WVINext Generation_WVI
Next Generation_WVIPrasad Kapu
 
RESTful Service Composition with JOpera
RESTful Service Composition with JOperaRESTful Service Composition with JOpera
RESTful Service Composition with JOperaCesare Pautasso
 
Radovan Janecek R E S Tor S O A Pv1
Radovan  Janecek    R E S Tor S O A Pv1Radovan  Janecek    R E S Tor S O A Pv1
Radovan Janecek R E S Tor S O A Pv1SOA Symposium
 
200211 Fielding Apachecon
200211 Fielding Apachecon200211 Fielding Apachecon
200211 Fielding ApacheconDaniel Parker
 
Restful web services by Sreeni Inturi
Restful web services by Sreeni InturiRestful web services by Sreeni Inturi
Restful web services by Sreeni InturiSreeni I
 
CMIS Round Table
CMIS Round TableCMIS Round Table
CMIS Round TableNuxeo
 
Stratos and PaaS for London Java Community
Stratos and PaaS for London Java CommunityStratos and PaaS for London Java Community
Stratos and PaaS for London Java CommunityPaul Fremantle
 

Similar to REST vs. SOAP (20)

Cesare Pautasso R E S T V1
Cesare  Pautasso    R E S T V1Cesare  Pautasso    R E S T V1
Cesare Pautasso R E S T V1
 
Soa amsterdam-restws-pautasso-talk
Soa amsterdam-restws-pautasso-talkSoa amsterdam-restws-pautasso-talk
Soa amsterdam-restws-pautasso-talk
 
Www2008 Restws Pautasso Talk
Www2008 Restws Pautasso TalkWww2008 Restws Pautasso Talk
Www2008 Restws Pautasso Talk
 
WS-* vs. RESTful Services
WS-* vs. RESTful ServicesWS-* vs. RESTful Services
WS-* vs. RESTful Services
 
Bicocca Restws Pautasso Talk
Bicocca Restws Pautasso TalkBicocca Restws Pautasso Talk
Bicocca Restws Pautasso Talk
 
SOA with REST
SOA with RESTSOA with REST
SOA with REST
 
BPM with REST
BPM with RESTBPM with REST
BPM with REST
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registry
 
SOA2010 SOA with REST
SOA2010 SOA with RESTSOA2010 SOA with REST
SOA2010 SOA with REST
 
Building+restful+webservice
Building+restful+webserviceBuilding+restful+webservice
Building+restful+webservice
 
Umit Yalcinalp Enterprise Mashupsfor S O A
Umit  Yalcinalp    Enterprise Mashupsfor S O AUmit  Yalcinalp    Enterprise Mashupsfor S O A
Umit Yalcinalp Enterprise Mashupsfor S O A
 
Next Generation_WVI
Next Generation_WVINext Generation_WVI
Next Generation_WVI
 
Www2008 Restws Pautasso Zimmermann Leymann
Www2008 Restws Pautasso Zimmermann LeymannWww2008 Restws Pautasso Zimmermann Leymann
Www2008 Restws Pautasso Zimmermann Leymann
 
RESTful Service Composition with JOpera
RESTful Service Composition with JOperaRESTful Service Composition with JOpera
RESTful Service Composition with JOpera
 
Radovan Janecek R E S Tor S O A Pv1
Radovan  Janecek    R E S Tor S O A Pv1Radovan  Janecek    R E S Tor S O A Pv1
Radovan Janecek R E S Tor S O A Pv1
 
200211 Fielding Apachecon
200211 Fielding Apachecon200211 Fielding Apachecon
200211 Fielding Apachecon
 
Restful web services by Sreeni Inturi
Restful web services by Sreeni InturiRestful web services by Sreeni Inturi
Restful web services by Sreeni Inturi
 
CMIS Round Table
CMIS Round TableCMIS Round Table
CMIS Round Table
 
Soa limitations
Soa limitationsSoa limitations
Soa limitations
 
Stratos and PaaS for London Java Community
Stratos and PaaS for London Java CommunityStratos and PaaS for London Java Community
Stratos and PaaS for London Java Community
 

More from Murat Çakal

Scaling web applications with cassandra presentation
Scaling web applications with cassandra presentationScaling web applications with cassandra presentation
Scaling web applications with cassandra presentationMurat Çakal
 
Mongodb open source_high_performance_database
Mongodb open source_high_performance_databaseMongodb open source_high_performance_database
Mongodb open source_high_performance_databaseMurat Çakal
 
Building web applications with mongo db presentation
Building web applications with mongo db presentationBuilding web applications with mongo db presentation
Building web applications with mongo db presentationMurat Çakal
 
Trouble with nosql_dbs
Trouble with nosql_dbsTrouble with nosql_dbs
Trouble with nosql_dbsMurat Çakal
 

More from Murat Çakal (9)

Cassandra NoSQL
Cassandra NoSQLCassandra NoSQL
Cassandra NoSQL
 
Scaling web applications with cassandra presentation
Scaling web applications with cassandra presentationScaling web applications with cassandra presentation
Scaling web applications with cassandra presentation
 
Mongodb open source_high_performance_database
Mongodb open source_high_performance_databaseMongodb open source_high_performance_database
Mongodb open source_high_performance_database
 
Building web applications with mongo db presentation
Building web applications with mongo db presentationBuilding web applications with mongo db presentation
Building web applications with mongo db presentation
 
Wmware NoSQL
Wmware NoSQLWmware NoSQL
Wmware NoSQL
 
Trouble with nosql_dbs
Trouble with nosql_dbsTrouble with nosql_dbs
Trouble with nosql_dbs
 
NoSql databases
NoSql databasesNoSql databases
NoSql databases
 
RDBMS vs NoSQL
RDBMS vs NoSQLRDBMS vs NoSQL
RDBMS vs NoSQL
 
No sql
No sqlNo sql
No sql
 

Recently uploaded

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 

Recently uploaded (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

REST vs. SOAP

  • 1. REST vs. SOAP: Making the Right Architectural Decision Cesare Pautasso Faculty of Informatics University of Lugano (USI), Switzerland http://www.pautasso.info 7.10.2008 SOA Symposium 2008, Amsterdam 1 ©2008 Cesare Pautasso
  • 2. Agenda 1. Motivation: A short history of Web Services 2. Comparing REST vs. SOAP/WS-* 3. Architectural Decision Modeling 4. Conceptual Comparison 5. Technology Comparison 6. How to measure the “complexity” of WS-* or the “simplicity” of REST? 7. Conclusion: Making the right Architectural Decision 7.10.2008 SOA Symposium 2008, Amsterdam 2 ©2008 Cesare Pautasso
  • 3. Web Sites (1992) Web HTML Web Browser HTTP Server WS-* Web Services (2000) SOAP WSDL Client XML Server 7.10.2008 (HTTP) Amsterdam SOA Symposium 2008, 3 ©2008 Cesare Pautasso
  • 4. RESTful Web Services (2006) PO-XML JSON RSS WADL Web Client HTTP Server WS-* Web Services (2000) SOAP WSDL Client XML Server 7.10.2008 (HTTP) Amsterdam SOA Symposium 2008, 4 ©2008 Cesare Pautasso
  • 5. 7.10.2008 SOA Symposium 2008, Amsterdam 5 ©2008 Cesare Pautasso
  • 6. RESTful RSS XML JSON MIME URI HTTP SSL 7.10.2008 SOA Symposium 2008, Amsterdam 6 ©2008 Cesare Pautasso
  • 7. Is REST being used? Slide from Paul Downey, BT 7.10.2008 SOA Symposium 2008, Amsterdam 7 ©2008 Cesare Pautasso
  • 8. Can we really compare WS-* vs. REST? WS-* REST 7.10.2008 SOA Symposium 2008, Amsterdam 8 ©2008 Cesare Pautasso
  • 9. Can we really compare WS-* vs. REST? WS-* REST SOA Middleware Architectural Interoperability style for Standards the Web 7.10.2008 SOA Symposium 2008, Amsterdam 9 ©2008 Cesare Pautasso
  • 10. How to compare? Arch itectural Decision Modeling REST WS-* Architectural style for SOA Middleware the Web Interoperability Standards 7.10.2008 SOA Symposium 2008, Amsterdam 10 ©2008 Cesare Pautasso
  • 11. Architectural Decisions • Architectural decisions Architectural Decision: capture the main design Communication Protocol issues and the rationale behind a chosen technical Architecture Alternatives: solution 1. TCP • The choice between REST 2. SMTP vs. WS-* is an important 3. HTTP architectural decision for 4. MQ integration projects 5. BEEP • Architectural decisions 6. CORBA IIOP affect one another 7. … Rationale 7.10.2008 SOA Symposium 2008, Amsterdam 11 ©2008 Cesare Pautasso
  • 12. Application Integration Styles Shared Remote Message Bus File Database Procedure Transfer Call REST WS-* Integration Technology Platform 7.10.2008 SOA Symposium 2008, Amsterdam 12 ©2008 Cesare Pautasso
  • 13. Related Decisions (WS-*) Shared Remote Message Bus File Database Procedure Transfer Call REST WS-* 7.10.2008 SOA Symposium 2008, Amsterdam 13 ©2008 Cesare Pautasso
  • 14. Related Decisions (RPC) Shared Remote Message Bus File Database Procedure Transfer Call REST WS-* 7.10.2008 SOA Symposium 2008, Amsterdam 14 ©2008 Cesare Pautasso
  • 15. Decision Space Overview 7.10.2008 SOA Symposium 2008, Amsterdam 15 ©2008 Cesare Pautasso
  • 16. Decision Space Summary 21 Decisions and 64 alternatives Classified by level of abstraction: • 3 Architectural Principles • 9 Conceptual Decisions • 9 Technology-level Decisions Decisions help us to measure the complexity implied by the choice of REST or WS-* 7.10.2008 SOA Symposium 2008, Amsterdam 16 ©2008 Cesare Pautasso
  • 17. Architectural Principles 1. Protocol Layering • HTTP = Application-level Protocol (REST) • HTTP = Transport-level Protocol (WS-*) 2. Dealing with Heterogeneity 3. Loose Coupling 7.10.2008 SOA Symposium 2008, Amsterdam 17 ©2008 Cesare Pautasso
  • 18. RESTful Web Service Example HTTP Client Web Server Database (Web Browser) SELECT * GET /book?ISBN=222 FROM books WHERE isbn=222 POST /order INSERT INTO orders 301 Location: /order/612 PUT /order/612 UPDATE orders WHERE id=612 7.10.2008 SOA Symposium 2008, Amsterdam 18 ©2008 Cesare Pautasso
  • 19. Big Web Service Example (from REST perspective) Web Service HTTP Client Web Server Implementation (Stub Object) POST /soap/endpoint return getBook(222) POST /soap/endpoint return new Order() POST /soap/endpoint order.setCustomer(x) 7.10.2008 SOA Symposium 2008, Amsterdam 19 ©2008 Cesare Pautasso
  • 20. Protocol Layering • “The Web is the universe of globally • “The Web is the universal (tunneling) accessible information” transport for messages” (Tim Berners Lee) – Applications get a chance to – Applications should publish their interact but they remain data on the Web (through URI) “outside of the Web” POX RSS JSON … SOAP (WS-*) HTTP HTTP HTTP HTTP HTTP SMTP MQ… GET POST PUT DEL POST Resource URI Endpoint URI Application Application 7.10.2008 SOA Symposium 2008, Amsterdam 20 ©2008 Cesare Pautasso
  • 21. Dealing with Heterogeneity • Web Applications • Enterprise Computing Picture from Eric Newcomer, IONA HTTP CICS IMS 7.10.2008 SOA Symposium 2008, Amsterdam 21 ©2008 Cesare Pautasso
  • 22. Conceptual Comparison Note: this table will scroll up during the talk 7.10.2008 SOA Symposium 2008, Amsterdam 22 ©2008 Cesare Pautasso
  • 23. Technology Comparison Note: this table will scroll up during the talk 7.10.2008 SOA Symposium 2008, Amsterdam 23 ©2008 Cesare Pautasso
  • 24. Measuring Complexity • Architectural Decisions give a quantitative measure of the complexity of an architectural design space: – Total number of decisions – For each decision, number of alternative options – For each alternative option, estimate the effort REST WS-* Decisions 17 14 Alternatives 27 35 Decisions with 1 or more alternative options 7.10.2008 SOA Symposium 2008, Amsterdam 24 ©2008 Cesare Pautasso
  • 25. Measuring Complexity REST WS-* Decisions 5 12 Alternatives 16 32 Decisions with more than 1 alternative options REST WS-* Decisions 17 14 Alternatives 27 35 Decisions with 1 or more alternative options 7.10.2008 SOA Symposium 2008, Amsterdam 25 ©2008 Cesare Pautasso
  • 26. Measuring Complexity REST WS-* Decisions 5 12 Alternatives 16 32 Decisions with more than 1 alternative options • URI Design • Resource Interaction Semantics • Payload Format • Service Description • Service Composition 7.10.2008 SOA Symposium 2008, Amsterdam 26 ©2008 Cesare Pautasso
  • 27. Measuring Complexity REST WS-* Decisions 5 12 Alternatives 16 32 Decisions with more than 1 alternative options REST WS-* Decisions 12 2 Decisions with only 1 alternative option 7.10.2008 SOA Symposium 2008, Amsterdam 27 ©2008 Cesare Pautasso
  • 28. Measuring Complexity • Payload Format • Data Representation Modeling REST WS-* Decisions 12 2 Decisions with only 1 alternative option 7.10.2008 SOA Symposium 2008, Amsterdam 28 ©2008 Cesare Pautasso
  • 29. Measuring Effort REST WS-* Do-it-yourself 5 0 Alternatives Decisions with only do-it-yourself alternatives REST WS-* Decisions 12 2 Decisions with only 1 alternative option 7.10.2008 SOA Symposium 2008, Amsterdam 29 ©2008 Cesare Pautasso
  • 30. Measuring Effort REST WS-* Do-it-yourself 5 0 Alternatives Decisions with only do-it-yourself alternatives • Resource Identification • Resource Relationship • Reliability • Transactions • Service Discovery 7.10.2008 SOA Symposium 2008, Amsterdam 30 ©2008 Cesare Pautasso
  • 31. Freedom of Choice Freedom from Choice 7.10.2008 SOA Symposium 2008, Amsterdam 31 ©2008 Cesare Pautasso
  • 32. Comparison Summary • Architectural Decisions measure complexity implied by alternative technologies • REST simplicity = freedom from choice – 5 decisions require to choose among 16 alternatives – 12 decisions are already taken (but 5 are do-it-yourself) • WS-* complexity = freedom of choice – 12 decisions require to choose among 32 alternatives – 2 decisions are already taken (SOAP, WSDL+XSD) 7.10.2008 SOA Symposium 2008, Amsterdam 32 ©2008 Cesare Pautasso
  • 33. Conclusion • You should focus on whatever solution gets the job done and try to avoid being religious about any specific architectures or technologies. • WS-* has strengths and weaknesses and will be highly suitable to some applications and positively terrible for others. Likewise with REST. • The decision of which to use depends entirely on the application requirements and constraints. • We hope this comparison will help you make the right choice. 7.10.2008 SOA Symposium 2008, Amsterdam 33 ©2008 Cesare Pautasso
  • 34. References • Cesare Pautasso, Olaf Zimmermann, Frank Leymann, RESTful Web Services vs. Big Web Services: Making the Right Architectural Decision, Proc. of the 17th International World Wide Web Conference (WWW2008), Bejing, China, April 2008. • Cesare Pautasso, BPEL for REST, Proc. of the 6th International Conference on Business Process Management (BPM 2008), Milan, Italy, September 2008. • Cesare Pautasso, Gustavo Alonso: From Web Service Composition to Megaprogramming In: Proceedings of the 5th VLDB Workshop on Technologies for E-Services (TES-04), Toronto, Canada, August 29- 30, 2004. 7.10.2008 SOA Symposium 2008, Amsterdam 34 ©2008 Cesare Pautasso
  • 35. REST vs. SOAP: Making the Right Architectural Decision Cesare Pautasso Faculty of Informatics University of Lugano (USI), Switzerland http://www.pautasso.info 7.10.2008 SOA Symposium 2008, Amsterdam 35 ©2008 Cesare Pautasso
  • 36. Backup Material on REST Cesare Pautasso Faculty of Informatics University of Lugano (USI), Switzerland http://www.pautasso.info 7.10.2008 SOA Symposium 2008, Amsterdam 36 ©2008 Cesare Pautasso
  • 37. REST in one Slide • REpresentational State Transfer defines the architectural style of the World Wide Web • Its four principles can explain the success and the scalability of the HTTP protocol implementing them 1. Resource Identification through URI 2. Uniform Interface for all resources: GET (Query the state, idempotent, can be cached) POST (Update a resource or create child resource) PUT (Transfer the state on existing/new resource) DELETE (Delete a resource) 3. “Self-Descriptive” Message representations 4. Hyperlinks to define relationships between resources and valid state transitions of the service interaction 7.10.2008 SOA Symposium 2008, Amsterdam 37 ©2008 Cesare Pautasso
  • 38. URI: Uniform Resource Identifier • Internet Standard for resource naming and identification (originally from 1994, revised until 2005) • Examples: http://tools.ietf.org/html/rfc3986 URI Scheme Authority Path https://www.google.ch/search?q=rest&start=10#1 Query Fragment • REST advocates the use of “nice” URIs • In most HTTP stacks URIs cannot have arbitrary length (4Kb) 7.10.2008 SOA Symposium 2008, Amsterdam 38 ©2008 Cesare Pautasso
  • 39. What is a “nice” URI? Prefer Nouns to Verbs http://map.search.ch/lugano Keep them Short http://maps.google.com/lugano http://maps.google.com/maps?f=q&hl=en&q=lugano, +switzerland&layer=&ie=UTF8&z=12&om=1&iwloc=addr 7.10.2008 SOA Symposium 2008, Amsterdam 39 ©2008 Cesare Pautasso
  • 40. Uniform Interface Principle (CRUD Example) CRUD REST Initialize the state of a CREATE POST/PUT new resource at the given URI Retrieve the current READ GET state of the resource Modify the state UPDATE PUT of a resource Clear a resource, DELETE DELETE after the URI is no longer valid 7.10.2008 SOA Symposium 2008, Amsterdam 40 ©2008 Cesare Pautasso
  • 41. POST vs. GET • GET is a read-only operation. It can be repeated without affecting the state of the resource (idem-potent) • POST is a read-write operation and may change the state of the resource and provoke side effects on the server. Web browsers warn you when refreshing a page generated with POST 7.10.2008 SOA Symposium 2008, Amsterdam 41 ©2008 Cesare Pautasso
  • 42. RESTful Web Services Design 1. Identify resources to be exposed as DELETE services (e.g., yearly risk report, book POST catalog, purchase order, open bugs) GET PUT 2. Define “nice” URLs to address them 3. Understand what it means to do a GET, /loan POST, PUT, DELETE on a given resource URI /balance X X X 4. Design and document resource /client ? representations (payload formats) 5. Model relationships (e.g., containment, /book reference, state transitions) between /order ? ? resources with hyperlinks that can be followed to get more details 6. Implement and deploy on Web server /soap X X X 7. Test with a Web browser 7.10.2008 SOA Symposium 2008, Amsterdam 42 ©2008 Cesare Pautasso
  • 43. Resource Representation Formats: XML vs JSON • XML • JavaScript Object Notation (JSON) – PO-XML • Wire format introduced for AJAX – SOAP (WS-*) Web applications (Browser- – RSS, ATOM Web Server communication) • Standard textual syntax for • Textual syntax for serialization of semi-structured data non-recurrent data structures • Many tools available: • Supported in most languages XML Schema, DOM, SAX, XPath, (not only JavaScript) XSLT, XQuery • Not extensible • Everyone can parse it (does not need to be) (not necessarily understand it) • “JSON has become the X in Ajax” • Slow and Verbose 7.10.2008 SOA Symposium 2008, Amsterdam 43 ©2008 Cesare Pautasso