ECSA'15 - Modeling REST-ful conversations

34
Modeling RESTful Conversations with Extended BPMN Choreography Diagrams Cesare Pautasso, Ana Ivanchikj University of Lugano (USI) Switzerland Silvia Schreier innoQ Deutschland GmbH Germany pean Conference on Software Architecture at, September 7-11 ECSA 2015

Transcript of ECSA'15 - Modeling REST-ful conversations

Page 1: ECSA'15 - Modeling REST-ful conversations

Modeling RESTful Conversations with Extended

BPMN Choreography Diagrams

Cesare Pautasso, Ana IvanchikjUniversity of Lugano (USI)

Switzerland

Silvia SchreierinnoQ Deutschland GmbH

Germany

European Conference on Software Architecture Cavtat, September 7-11

ECSA 2015

Page 2: ECSA'15 - Modeling REST-ful conversations

[email protected]

2

RESTful conversation

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

[email protected]

Resource

URI

Resource

URI

Resource

URI

GET URI GET URI

PUT U

RI

reference create

Link Relationships (Hypermedia)

303 See Other

200 OK

Page 3: ECSA'15 - Modeling REST-ful conversations

[email protected]

3

RESTful conversation

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

[email protected]

Resource

URI

Resource

URI

Resource

URI

GET URI GET URI

PUT U

RI

reference create

Link Relationships (Hypermedia)

303 See Other

201 Created

200 OK

Page 4: ECSA'15 - Modeling REST-ful conversations

[email protected]

4

REST API structure - RAML

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 5: ECSA'15 - Modeling REST-ful conversations

[email protected]

5

REST API structure- Swagger

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 6: ECSA'15 - Modeling REST-ful conversations

[email protected]

6

GET /resource 1 HTTP/1.1

HTTP/1.1 303 See OtherLocation: /resource2GET /resource2 HTTP/1.1

HTTP/1.1 200 OK

REST API dynamics

UML Sequence diagram BPMN Choreography diagram

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

- Redirect -

Page 7: ECSA'15 - Modeling REST-ful conversations

[email protected]

7

BPMN Choreography

Inclusive gateway

Parallel gateway

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Exclusive gateway

Page 8: ECSA'15 - Modeling REST-ful conversations

[email protected]

8

GET /resource 1 HTTP/1.1

HTTP/1.1 303 See OtherLocation: /resource2GET /resource2 HTTP/1.1

HTTP/1.1 200 OK

REST API dynamics

UML Sequence diagram BPMN Choreography diagram Our proposal

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

- Redirect -

Page 9: ECSA'15 - Modeling REST-ful conversations

[email protected]

9

Extended BPMN Choreography

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Assumption:ONE client – ONE server

Page 10: ECSA'15 - Modeling REST-ful conversations

[email protected]

10REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 11: ECSA'15 - Modeling REST-ful conversations

[email protected]

11REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 12: ECSA'15 - Modeling REST-ful conversations

[email protected]

12REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 13: ECSA'15 - Modeling REST-ful conversations

[email protected]

13

Long-running Request-RESTful Conversation Example-

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

e.g.: http://docs.aws.amazon.com/amazonglacier/latest/dev/job-operations.html

Page 14: ECSA'15 - Modeling REST-ful conversations

[email protected]

14

Long-running Request- Happy path -

Create job POST / job HTTP/1.1

HTTP/1.1 202 AcceptedLocation: / job / 42

Poll GET / job / 42 HTTP/1.1

HTTP/1.1 200 OK

Read results GET / job / 42 / output HTTP/1.1

HTTP/1.1 200 OK

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

GET / job / 42 HTTP/1.1

HTTP/1.1 303 See OtherLocation: / job / 42 / output

Page 15: ECSA'15 - Modeling REST-ful conversations

[email protected]

15

Long-running Request- Resending the request -

Create job POST / job HTTP/1.1

Poll GET / job / 42 HTTP/1.1

HTTP/1.1 200 OK

GET / job / 42 HTTP/1.1

HTTP/1.1 303 See OtherLocation: / job / 42 / output

Read results GET / job / 42 / output HTTP/1.1

HTTP/1.1 200 OK

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

HTTP/1.1 202 AcceptedLocation: / job / 42

POST / job HTTP/1.1

Page 16: ECSA'15 - Modeling REST-ful conversations

[email protected]

16

Long-running Request- Reading the results -

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Create job POST / job HTTP/1.1

Poll GET / job / 42 HTTP/1.1

HTTP/1.1 200 OK

GET / job / 42 HTTP/1.1

HTTP/1.1 303 See OtherLocation: / job / 42 / output

Read results GET / job / 42 / output HTTP/1.1

HTTP/1.1 200 OK

HTTP/1.1 202 AcceptedLocation: / job / 42

POST / job HTTP/1.1

GET / job / 42 / output HTTP/1.1

HTTP/1.1 200 OK

Page 17: ECSA'15 - Modeling REST-ful conversations

[email protected]

17

Long-running Request- Deleting the output resource -

Delete output DELETE / job / 42 / output HTTP/1.1

HTTP/1.1 200 OK

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Create job POST / job HTTP/1.1

Poll GET / job / 42 HTTP/1.1

HTTP/1.1 200 OK

GET / job / 42 HTTP/1.1

HTTP/1.1 303 See OtherLocation: / job / 42 / output

Read results GET / job / 42 / output HTTP/1.1

HTTP/1.1 200 OK

HTTP/1.1 202 AcceptedLocation: / job / 42

POST / job HTTP/1.1

GET / job / 42 / output HTTP/1.1

HTTP/1.1 200 OK

Page 18: ECSA'15 - Modeling REST-ful conversations

[email protected]

18

Long-running Request- Deleting the output resource -

Delete output DELETE / job / 42 / output HTTP/1.1

HTTP/1.1 200 OK

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Create job POST / job HTTP/1.1

Poll GET / job / 42 HTTP/1.1

HTTP/1.1 200 OK

GET / job / 42 HTTP/1.1

HTTP/1.1 303 See OtherLocation: / job / 42 / output

HTTP/1.1 202 AcceptedLocation: / job / 42

POST / job HTTP/1.1

Page 19: ECSA'15 - Modeling REST-ful conversations

[email protected]

19

Long-running Request

Clean up DELETE / job / 42 HTTP/1.1

HTTP/1.1 200 OK

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Delete output DELETE / job / 42 / output HTTP/1.1

HTTP/1.1 200 OK

Create job POST / job HTTP/1.1

Poll GET / job / 42 HTTP/1.1

HTTP/1.1 200 OK

GET / job / 42 HTTP/1.1

HTTP/1.1 303 See OtherLocation: / job / 42 / output

HTTP/1.1 202 AcceptedLocation: / job / 42

POST / job HTTP/1.1

- Deleting the job resource -

Page 20: ECSA'15 - Modeling REST-ful conversations

[email protected]

20

Long-running Request

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Create job POST / job HTTP/1.1

HTTP/1.1 202 AcceptedLocation: / job / 42

POST / job HTTP/1.1

Delete job DELETE / job / 42 HTTP/1.1

HTTP/1.1 200 OK

- Deleting the job resource -

Page 21: ECSA'15 - Modeling REST-ful conversations

[email protected]

21

Long-running Request

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 22: ECSA'15 - Modeling REST-ful conversations

[email protected]

22

Long-running Request- Short happy path -

Create job POST / job HTTP/1.1

HTTP/1.1 202 AcceptedLocation: / job / 42

Read results GET / job / 42 / output HTTP/1.1

HTTP/1.1 200 OK

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Poll GET / job / 42 HTTP/1.1

HTTP/1.1 303 See OtherLocation: / job / 42 / output

Page 23: ECSA'15 - Modeling REST-ful conversations

[email protected]

23

Long-running Request

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 24: ECSA'15 - Modeling REST-ful conversations

[email protected]

24

Long-running Request- Long unhappy path -

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Delete output DELETE / job / 42 / output HTTP/1.1

HTTP/1.1 200 OK

Create job POST / job HTTP/1.1

Read results GET / job / 42 / output HTTP/1.1

HTTP/1.1 200 OK

HTTP/1.1 202 AcceptedLocation: / job / 42

POST / job HTTP/1.1

GET / job / 42 / output HTTP/1.1

HTTP/1.1 200 OK

Poll GET / job / 42 HTTP/1.1

HTTP/1.1 200 OK

GET / job / 42 HTTP/1.1

HTTP/1.1 303 See OtherLocation: / job / 42 / output

GET / job / 42 HTTP/1.1

HTTP/1.1 200 OK

Delete job DELETE / job / 42 HTTP/1.1

HTTP/1.1 200 OK

Page 25: ECSA'15 - Modeling REST-ful conversations

[email protected]

25

Long-running Request-BPMN Choreography-

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 26: ECSA'15 - Modeling REST-ful conversations

[email protected]

26

Long-running Request-Extended BPMN Choreography-

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 27: ECSA'15 - Modeling REST-ful conversations

[email protected]

27

Abstractions and Simplifications

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 28: ECSA'15 - Modeling REST-ful conversations

[email protected]

28

Abstraction – Server Error Response

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 29: ECSA'15 - Modeling REST-ful conversations

[email protected]

29

Abstraction – Idempotent requests

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 30: ECSA'15 - Modeling REST-ful conversations

[email protected]

30

Simplification – End events

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 31: ECSA'15 - Modeling REST-ful conversations

[email protected]

31

Simplification - Hyperlinks

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 32: ECSA'15 - Modeling REST-ful conversations

[email protected]

32

Simplifications and abstractions summary

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 33: ECSA'15 - Modeling REST-ful conversations

[email protected]

33

• Survey– Understandability– Ease of use

Future Work

• Conversation Patterns – Expressiveness– Collection– Reusability

REST BPMN Choreography Extended BPMN Choreography Example Model Abstractions and Simplifications Future work

Page 34: ECSA'15 - Modeling REST-ful conversations

Contact us at:[email protected]

[email protected]@innoq.com

Contribute to our research by filling in the survey!!!http://restfulconversations.limequery.com/index.php/215135/lang-en