www2008 restws pautasso talk

30
25.4.2008 WWW2008 ©2008 Cesare Pautasso 1 RESTful Web Services vs. Big Web Services: Making the Right Architectural Decision Cesare Pautasso Olaf Zimmermann Frank Leymann University of Lugano IBM Zurich Research Lab University of Stuttgart Switzerland Switzerland Germany [email protected] http://www.pautasso.info http://soadecisions.org

Upload: kvkpasumarthi

Post on 01-Jul-2015

368 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

1

RESTful Web Services vs. Big Web Services: Making the Right Architectural Decision

Cesare Pautasso Olaf Zimmermann Frank LeymannUniversity of Lugano IBM Zurich Research Lab University of Stuttgart

Switzerland Switzerland [email protected]://www.pautasso.info http://soadecisions.org

Page 2: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

2

The only religious quoteht

tp://

ww

w.lo

udth

inki

ng.c

om/a

rc/0

0058

5.ht

ml

Page 3: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

3

Can we really compare WS-* vs. REST?

WS-* REST

Page 4: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

4

Can we really compare WS-* vs. REST?

WS-*

MiddlewareInteroperability

Standards

REST

Architecturalstyle for the Web

Page 5: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

5

How to compare?

WS-*

MiddlewareInteroperability

Standards

REST

Architecturalstyle for the Web

Architectural

Decision Modeling

Page 6: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

6

Architectural Decisions

• Architectural decisions capture the main design issues and the rationale behind a chosen technical solution

• The choice between REST vs. WS-* is an important architectural decision forintegration projects

• Architectural decisions affect one another

Architectural Decision:Communication Protocol

Architecture Alternatives:1. TCP2. SMTP3. HTTP4. MQ5. BEEP6. CORBA IIOP7. …

Rationale

Page 7: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

7

Application Integration Styles

File Transfer

Shared Database

Message BusRemoteProcedure

Call

WS-*REST

Integration Technology Platform

Page 8: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

8

Related Decisions (WS-*)

File Transfer

Shared Database

Message BusRemoteProcedure

Call

WS-*REST

Page 9: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

9

Related Decisions (RPC)

File Transfer

Shared Database

Message BusRemoteProcedure

Call

WS-*REST

Page 10: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

10

Decision Space Overview

Page 11: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

11

Outline

21 Decisions and 64 alternativesClassified 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-*

Page 12: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

12

Architectural Principles

1. Protocol Layering• HTTP = Application-level Protocol (REST)• HTTP = Transport-level Protocol (WS-*)

2. Dealing with Heterogeneity3. Loose Coupling

Page 13: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

13

RESTful Web Service Example

HTTP Client

(Web Browser)

Web Server Database

GET /book?ISBN=222SELECT *

FROM books WHERE isbn=222

POST /order INSERT INTO orders301 Location: /order/612

POST /order/612 UPDATE ordersWHERE id=612

Page 14: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

14

Big Web Service Example (from REST perspective)

HTTP Client

(Stub Object)

Web Server

POST /soap/endpoint

POST /soap/endpoint

POST /soap/endpoint

return getBook(222)

return new Order()

order.setCustomer(x)

Web Service

Implementation

Page 15: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

15

Protocol Layering• “The Web is the universe of globally

accessible information”(Tim Berners Lee)– Applications should publish their

data on the Web (through URI)

• “The Web is the universal (tunneling) transport for messages”– Applications get a chance to

interact but they remain “outside of the Web”

Application

Resource URI

HTTPPOST

Application

Endpoint URI

POX

HTTPGET

HTTPPUT

HTTPDEL

HTTPPOST

SOAP (WS-*)

MQ…SMTP

RSS JSON …

Page 16: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

16

Dealing with Heterogeneity

CICSIMS

Picture from

Eric N

ewcom

er, ION

A

• Enterprise Computing

HTTP

• Web Applications

Page 17: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

17

Conceptual Comparison

Page 18: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

18

Technology Comparison

Page 19: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

19

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

3527Alternatives1417Decisions

WS-*REST

Decisions with 1 or more alternative options

Page 20: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

20

Measuring Complexity

3527Alternatives1417Decisions

WS-*REST

Decisions with 1 or more alternative options

3216Alternatives125Decisions

WS-*REST

Decisions with more than 1 alternative options

Page 21: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

21

Measuring Complexity

3216Alternatives125Decisions

WS-*REST

Decisions with more than 1 alternative options

• URI Design• Resource Interaction Semantics

• Payload Format• Service Description• Service Composition

Page 22: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

22

Measuring Complexity

3216Alternatives125Decisions

WS-*REST

Decisions with more than 1 alternative options

212DecisionsWS-*REST

Decisions with only 1 alternative option

Page 23: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

23

Measuring Complexity

212DecisionsWS-*REST

Decisions with only 1 alternative option

• Payload Format• Data Representation Modeling

Page 24: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

24

Measuring Effort

212DecisionsWS-*REST

Decisions with only 1 alternative option

05Do-it-yourself Alternatives

WS-*REST

Decisions with only do-it-yourself alternatives

Page 25: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

25

Measuring Effort

05Do-it-yourself Alternatives

WS-*REST

Decisions with only do-it-yourself alternatives

• Resource Identification• Resource Relationship

• Reliability• Transactions• Service Discovery

Page 26: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

26

Freedom of ChoiceFreedom from Choice

Page 27: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

27

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)

Page 28: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

28

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.

Page 29: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

29

PhD positions available!

Cesare PautassoUniversity of Lugano, [email protected]

http://www.pautasso.info

Page 30: Www2008 Restws Pautasso Talk

25.4.2008 WWW2008©2008 Cesare Pautasso

30

What is a “nice” URI?

http://map.search.ch/lugano

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

http://maps.google.com/lugano

Prefer Nouns to Verbs

Keep them Short