Measuring REST

Post on 03-Jul-2015

580 views 1 download

Tags:

description

Slides from my talk at restfest 2011.

transcript

Measuring REST

Subbu Allamarajuhttp://www.subbu.org

http://twitter.com/sallamar

My (Im)Maturity

Level 1: What is REST?Level 2: Wow! … What? … Aha!Level 3: Explain, rationalizeLevel 4: Build stuff

Hypermedia and Media Types

 

How to measure REST?

What to measure?

Performance – network performance, user perceived performance, and network efficiency

ScalabilitySimplicity Modifiability – evolvability, extensibility, customizability, configurability, and reusability

VisibilityPortabilityReliability

REST Constraints

100  %  REST?  

•  But “glory” is not a systemic quality.

•  Glory is not measurable•  Does not lead to $$$

Show me 100% RESTful apps

Is REST a hoax then?

Question #1: Is this a marketing or messaging problem?

Question #2: Can you prove that sum(constraints) leads to

sum(qualities)?

Hand-waveReason out and rationalize in the abstract

Nah, we need to put some engineering back into software

Question #3: Can you prove that any given constraint leads to

any quality?

Hand-waveAdvocate: “Make judicious tradeoffs”

But how do I know if I’m making judicious tradeoffs?

Step #1: Agree on a set of qualities that matter for your app

Ex:•  Performance•  Ease of use •  Adoption

Roy’s list is not the super-set

Step #2: Contextualize the qualities into scenarios

•  Performance•  Serve a photo in “t” msec•  Process “n” photos per hour

•  Ease of use •  A developer should be able to build

a client app in 30 minutes•  Adoption

•  Must gain “y00” developers in 3 months after launch

Step #3: Prioritize qualities and scenarios

•  Adoption•  Must gain “y00” developers in 3

months after launch•  Performance

•  Serve a photo in “t” msec•  Process “n” photos per hour

•  Ease of use •  A developer should be able to build

a client app in 30 minutes

Step #4: Pick solutions among alternatives that you think meet

the scenarios

•  Adoption•  Must gain “y00” developers in 3

months after launch•  Performance

•  Serve a photo in “t” msec•  Process “n” photos per hour

•  Ease of use •  A developer should be able to build

a client app in 30 minutes

What should you measure?

$$$$$$,$$$

$$$,$$$,$$$

Make the case for REST constraints based on specific scenarios and priorities