1. API Time For A New Strategy?
Pat Cappelaere
Sofware Architect
An API for People and
Machines
1
2. What Are Our API’s For?
The Time Has Come To
Design APIs For People
To Meet Their Goals
2
3. API Should Target The Biggest API
Consumer
We Forgot The Most Important
Element Of The API Food Chain: People 3
4. We Have A Problem
API Exponential Growth
Cannot Keep to
To Connect People Up
Products
Wolfram Alpha
4
5. 100 Years Ago, The Emma Days...
Did Not Scale Well Either...
Emma Nutt
1860-1915
The world's first female
telephone operator hired
on Sept 1 1878 in Boston,
Massachusetts.
5
6. When Finally Almon Strowger
Changed The API...
Telephone Users Could Now Meet
Their Goals Without An Intermediary Almon Brown
Strowger
1839-1902
~1900 ~1910
6
8. So My Point Is... API’s Are Getting Too Low Level
NOT
API’s For People [that happen to use machines via user-
agent] 8
9. Let’s Define “People”
• Not A Full Time Programmer/Developer... Has A Job To Do...
• But Willing to:
• Learn Some Basic Web Technologies... Javascript...
• Spend ~30mn To Learn Your API Katjitzeu McCloud, Namibia
API Consumer
9
10. My Personal Journey
• NASA SensorWeb
Group On Earth Observation System of
Systems
10
11. API for The International Disaster
Community?
Big Data... Complex GeoSpatial
API 11
12. Our Geo-API Reality, Today!
DisasterFloods - Port-Au-Prince, Haiti
60+ standards
at different version levels
?
3+ binding types
400+ Organizations
Very Hard For API
Consumer To Access 12
13. APIs Should Expose Workflows
• “Since your process is what your users
want, just give that to them! This is the
essence of hypermedia.”
Steve Klabnik
Designing Hypermedia APIs
• “..Expose your workflow rather than
your data model”
People Do Not Care About Your Data or Your API...
They Care About Meeting A Specific Goal
13
14. Donald Norman: Designing For People
“Designers have to produce things that tame complexity.”
http://www.jnd.org
Stages of Execution:-
•Start at the top with the goal, the state that is to
be achieved.
•The goal is translated into an intention to do some
action.
•The intention must be translated into a set of internal
commands, an action sequence that can be performed
to satisfy the intention.
•The action sequence is still a mutual even: nothing
happens until it is executed, performed upon the
world.
The Design of Everyday Things. New York.
1986 14
15. Your Service Should Expose The Goals (not the
Workflows)
Goals
Provide
Activity
Sequences
(aka Behaviors)
To Access
Data 15
16. I Want A Flood Map in My Area Of
Interest
Flood Map
?
Hyperspectral Data 16
17. Goal
So What If...
• User Would Only State the Goal
Get Floodmap...
Get Flood Forecast...
Floods - Port-Au-Prince, Haiti
• Web Services Would Figure Out What To Do and Return It To Client Some
Simple Steps to Follow)
• Client Would Execute As Code-On-Demand (Simple Javascript Running In
Browser or Thin Client or SmartPhone App
17
18. Problem: Encoding Behavior...
Many Hierarchical Finite State Machines
Options... intuitive
reactive
HFSM
Existing
Game Technology
Behavior
Trees
Hierarchical Task Network Planners
Scripting
Workflows
Planner
C++ LUA s
autonomous
integrated purposeful
flexible Alex Champandard
http://aigamedev.com/open/articles/behavior-trees-part1/
http://aigamedev.com/open/articles/behavior-trees-part2/
18
http://aigamedev.com/open/articles/behavior-trees-part3/
19. There Are Some Differences From
Game AI!
Behaviors As Code-on-demand
• Behaviors Can Be Encoded in Javascript
• Behaviors Can Be Sent To Client on Request Based On User Goal
• Client Can Execute Behaviors in Browser (Javascript) and Execute Activities
On the Server Side By Following the Activity Links
• Smartphones... Tablets... and DeskTops...
• NO Need for Workflow Engine, Finite State Model Engine, Planner or
Compiler
19
20. Floods - Port-Au-Prince, Haiti
Get Flood Map
Client
Server
But Not A Replacement For Low Level API 20
21. S
T
R An API for
A People and
T Machines
Viaduc de Millau, France
E
G
THANK YOU
P
I
Email: pat@cappelaere.com
Twitter:@cappelaere
Skype:patrice_cappelaere
21
http://www.slideshare.net/cappelaere