Slide 1

Slide 1 text

API Design Optimized for Mobile Platform Gea-Suan Lin KKBOX, Inc.

Slide 2

Slide 2 text

KKBOX

Slide 3

Slide 3 text

Mobile Platform

Slide 4

Slide 4 text

Mobile Network Mobile Device

Slide 5

Slide 5 text

Compare to Landline

Slide 6

Slide 6 text

Network Part

Slide 7

Slide 7 text

Speed

Slide 8

Slide 8 text

Reliability

Slide 9

Slide 9 text

Latency

Slide 10

Slide 10 text

Device Part

Slide 11

Slide 11 text

It’s much slower.

Slide 12

Slide 12 text

So,

Slide 13

Slide 13 text

To adopt mobile environment,

Slide 14

Slide 14 text

We care about these two different faces

Slide 15

Slide 15 text

Client Modification

Slide 16

Slide 16 text

Server Modification

Slide 17

Slide 17 text

API Modification

Slide 18

Slide 18 text

First, Merge Operations

Slide 19

Slide 19 text

Reduce Connections

Slide 20

Slide 20 text

POST /login username= password= GET /check-version GET /rank/album/top100 GET /rank/song/top100 GET /rank/artist/top100

Slide 21

Slide 21 text

Merge to...

Slide 22

Slide 22 text

POST /login username= password= extra=check-version,rank-album- top100,rank-song-top100,rank-artist- top100

Slide 23

Slide 23 text

It’s dirty.

Slide 24

Slide 24 text

But it’s much efficient.

Slide 25

Slide 25 text

Second, Operation with Strict-Increasing Serial

Slide 26

Slide 26 text

Avoid Duplicate API Call

Slide 27

Slide 27 text

POST /mybox/room/1/ message message= serial=

Slide 28

Slide 28 text

Use database to store the serial of each device.

Slide 29

Slide 29 text

Third, Multiple Objects Design

Slide 30

Slide 30 text

Reduce Client CPU Resource

Slide 31

Slide 31 text

And Reduce Connections

Slide 32

Slide 32 text

GET /song/ 1,2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19, 20

Slide 33

Slide 33 text

Fourth, Filter Results

Slide 34

Slide 34 text

Reduce Traffic

Slide 35

Slide 35 text

Reduce Client CPU Resouce

Slide 36

Slide 36 text

GET /song/ 1,2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19, 20/name

Slide 37

Slide 37 text

Then...

Slide 38

Slide 38 text

Fifth, Compression

Slide 39

Slide 39 text

Reduce Traffic

Slide 40

Slide 40 text

Sixth, Use Port 80 & 443

Slide 41

Slide 41 text

Reduce Firewall Issue

Slide 42

Slide 42 text

Thank You!