• No results found

Web Services in 2008: to REST or not to REST?

N/A
N/A
Protected

Academic year: 2021

Share "Web Services in 2008: to REST or not to REST?"

Copied!
17
0
0

Loading.... (view fulltext now)

Full text

(1)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso

3

Web Services in 2008:

to REST or not to REST?

Cesare Pautasso

Faculty of Informatics

University of Lugano, CH

http://www.pautasso.info

Web Sites (1992)

HTTP

HTML

Web

Browser

Server

Web

(HTTP)

SOAP

Server

Client

XML

WSDL

WS-*

Web Services (2000)

(2)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso

5

RESTful

Web Services (2007)

Client

HTTP

PO-XML

RSS

JSON

Web

Server

WADL

WS-*

Web Services (2000)

(HTTP)

SOAP

Server

Client

XML

WSDL

(3)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso 7

XML

URI

HTTP

MIME

JSON

RESTful

SSL

RSS

Is REST being used?

Sl id e fr o m P a ul D o w n e y , BT

(4)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso

9

Can we really compare

WS-* vs. REST?

WS-*

REST

Can we really compare

WS-* vs. REST?

WS-*

Middleware

Interoperability

Standards

REST

Architectural

style for

the Web

(5)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso 11

How to compare?

WS-*

Middleware

Interoperability

Standards

REST

Architectural

style for

the Web

Architect

ural

Decision

Modeling

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 for

integration projects

Architectural decisions

affect one another

Architectural Decision:

Communication Protocol

Architecture Alternatives:

1. TCP

2. SMTP

3. HTTP

4. MQ

5. BEEP

6. CORBA IIOP

7. …

Rationale

(6)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso

13

Application Integration Styles

File

Transfer

Shared

Database

Procedure

Remote

Message Bus

Call

WS-*

REST

Integration Technology Platform

Related Decisions (WS-*)

File

Transfer

Shared

Database

Message Bus

Remote

Procedure

Call

WS-*

REST

(7)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso 15

Related Decisions (RPC)

File

Transfer

Shared

Database

Procedure

Remote

Message Bus

Call

WS-*

REST

(8)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso

17

Outline

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-*

Architectural Principles

1. Protocol Layering

HTTP = Application-level Protocol (REST)

HTTP = Transport-level Protocol

(WS-*)

2. Dealing with Heterogeneity

(9)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso

19

RESTful Web Service Example

HTTP Client

(Web Browser)

Web Server

Database

GET /book?ISBN=222

SELECT *

FROM books

WHERE isbn=222

POST /order

INSERT

INTO orders

301 Location: /order/612

PUT /order/612

UPDATE orders

WHERE id=612

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

(10)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso

21

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

HTTP

POST

Application

Endpoint

URI

POX

HTTP

GET

HTTP

PUT

HTTP

DEL

HTTP

POST

SOAP (WS-*)

MQ…

SMTP

RSS

JSON

Dealing with Heterogeneity

Pi ctur e f rom Er ic N e w c om er

• Enterprise Computing

HTTP

• Web Applications

(11)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso

23

Conceptual Comparison

(12)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso

25

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

35

27

Alternatives

14

17

Decisions

WS-*

REST

Decisions with

1 or more

alternative options

Measuring Complexity

14

17

Decisions

WS-*

REST

32

16

Alternatives

12

5

Decisions

WS-*

REST

(13)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso 27

Measuring Complexity

32

16

Alternatives

12

5

Decisions

WS-*

REST

Decisions with

more than 1

alternative options

URI Design

Resource Interaction Semantics

Payload Format

Service Description

Service Composition

Measuring Complexity

32

16

Alternatives

12

5

Decisions

WS-*

REST

Decisions with

more than 1

alternative options

2

12

Decisions

WS-*

REST

(14)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso 29

Measuring Complexity

2

12

Decisions

WS-*

REST

Decisions with

only 1

alternative option

Payload Format

Data Representation Modeling

Measuring Effort

2

12

Decisions

WS-*

REST

0

5

Do-it-yourself

Alternatives

WS-*

REST

(15)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso 31

Measuring Effort

0

5

Do-it-yourself

Alternatives

WS-*

REST

Decisions with

only do-it-yourself

alternatives

Resource Identification

Resource Relationship

Reliability

Transactions

Service Discovery

Freedom of Choice

(16)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso

33

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)

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.

(17)

19.6.2008 University of Milano Bicocca, Italy ©2008 Cesare Pautasso

35

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.

References

Related documents

From these characteristics, an average profile of WS emerges : describing services with HTML, following the REST architecture, using basic HTTP authentication with a GET access, XML

Figure 6: Execution Time of SOAP Web services Figure 7: Execution Time of REST Web services The comparison of both the services as shown in Figure 8 illustrates that for the

Web Services such as Simple Object Access Protocol (SOAP) and Representational State Transfer (REST) are extremely useful in data transfer and comparatively

The objective of this app model is to participate / consume WS app model with cloud-servers with usage of REST and or SOAP based WSs as a middle ware to

The results obtained on different experiments have shown that both SOAP and REST can be used as communication protocol for distributed evolutionary

From the comparison between SOAP based framework and REST based framework, we conclude that REST based framework is more suitable for handheld, resource

The objective of this app model is to participate / consume WS app model with cloud-servers with usage of REST and or SOAP based WSs as a middle ware to

The third key principle of REST illustrates that, all of the resources in RESTful Web services should be properly achieved through HTTP, using a common, uniform