SOA & APIs: Fearless Lessons from the Field

Preview:

Citation preview

1

SOA and APIs:

Fearless Lessons from the Field Mike Amundsen

Principal API Architect

@mamund

2

Fearless

3

Fearless

4

Fearless

5

Mike Amundsen

Architect, Developer, Presenter

Hypermedia Junkie

Principal API Architect for Layer 7

“Help people build great APIs for the Web”

Personal Mission

“Improve the quality and usability of information on the Web.”

6

THE CHALLENGE

7

More Devices

8

More Apps

9

More APIs

10

The Challenge

Mobility

11

The Challenge

Agility

12

The Challenge

Mobility = Agility

13

The Challenge

Increase Agility

14

The Challenge

Maintain Stability

15

Lessons from the field

Models and tools

REST and Hypermedia

Broad Experience

SOAP, CRUD, and Hypermedia

High-level View

The USE Paradigm

16

REST AND HYPERMEDIA

17

REST and Hypermedia

REST is an architectural model for

widely distributed systems

18

REST and Hypermedia - Space

http://www.flickr.com/photos/jram23/3088003105/

19

REST and Hypermedia - Time

http://www.flickr.com/photos/alancleaver/2661425133/

20

REST and Hypermedia - Model

http://www.flickr.com/photos/usnationalarchives/5476286211/

21

REST and Hypermedia - Tools

http://http://www.flickr.com/photos/36247316@N00/3108399560/

22

REST and Hypermedia

Hypermedia is a tool for

implementing remote, evolvable

systems

23

REST and Hypermedia - Space

http://www.flickr.com/photos/jram23/3088003105/

24

REST and Hypermedia - Time

http://www.flickr.com/photos/alancleaver/2661425133/

25

REST and Hypermedia – Evolvable

http://www.flickr.com/photos/isherwoodchris/5811756295/

26

REST and Hypermedia – Evolvable

http://http://www.flickr.com/photos/ecbiosheron/4139220163/

27

REST and Hypermedia – Evolvable

http://http://http://www.flickr.com/photos/nrg07/4735858552/

28

REST and Hypermedia – Real World

http://www.flickr.com/photos/smaku/233763545/

29

SOAP, CRUD, AND HYPERMEDIA

30

SOAP is for Components

http://www.flickr.com/photos/amberwalker/5755325926/

31

SOAP is for Components

32

SOAP is for Components

Strong on XML, Weak on HTTP

33

CRUD is for Objects

http://www.flickr.com/photos/topekalibrary/4294393624/

34

CRUD is for Objects

35

CRUD is for Objects

Strong on HTTP, Weak on Workflow

36

Hypermedia is for Messages

37

Hypermedia is for Messages

38

Hypermedia is for Messages

Strong on HTTP, Strong on Workflow

39

SOAP, CRUD, Hypermedia

Moving away from SOAP

40

SOAP, CRUD, Hypermedia

Implementing CRUD

41

SOAP, CRUD, Hypermedia

Heading toward Hypermedia

42

THE USE PARADIGM

43

Usable

Usability is the ease of use and learnability of

a human-made object.

44

Usable – Action Life Cycle

45

Usable – Focus on tasks

http://www.flickr.com/photos/somoamsterdam/4833837888/

46

Usable – Employ empirical measurement

47

Usable – Iterative design

http://www.flickr.com/photos/aajbutler/5448088057/

48

Usable

Focus

49

Usable

Measure

50

Usable

Iterate

51

Scalable

Scalability is the ability of a system, network,

or process, to handle a growing amount of

work in a capable manner.

52

Scalable – Out vs. Up

53

Scalable

http://www.flickr.com/photos/27976837@N00/4347462236/

54

Scalable – DevOps

http://www.flickr.com/photos/friendlydragon/3864150771/

55

Scalable – Where it counts

56

Scalable

Scale Out

57

Scalable

Automate

58

Scalable

Where it counts

59

Evolvable

Evolvability is defined as the capacity of a

system for adaptive change.

60

Evolvable

61

Evolvable (pandere – to stretch)

http://www.flickr.com/photos/kenjonbro/6277623578/

62

Evolvable (vertere – to turn)

http://www.flickr.com/photos/erdero/2274374743/

63

Evolvable

Versions “break”, extensions don’t.

64

SUMMARY

65

Summary - Challenge

Mobility

Agility

Stability

66

Summary – Models

http://www.flickr.com/photos/usnationalarchives/5476286211/

67

Summary – Tools

http://http://www.flickr.com/photos/36247316@N00/3108399560/

68

Summary – Components

http://http://www.flickr.com/photos/36247316@N00/3108399560/

69

Summary – Objects

http://www.flickr.com/photos/topekalibrary/4294393624/

70

Summary – Messages

71

Summary – Usable

72

Summary – Scalable

73

Summary – Evolvable

74

SOA and APIs:

Fearless Lessons from the Field Mike Amundsen

Principal API Architect

@mamund

Recommended