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

ECSA'15 - Modeling REST-ful conversations

Embed Size (px)

Citation preview

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