Upload
pat-cappelaere
View
512
Download
1
Tags:
Embed Size (px)
DESCRIPTION
API Strategy Conference
Citation preview
API Time For A New Strategy?Pat CappelaereSofware Architect
An API for People and Machines
1
What Are Our API’s For?
The Time Has Come To Design APIs For People
To Meet Their Goals
2
API Should Target The Biggest API Consumer
We Forgot The Most Important Element Of The API Food Chain:
People 3
We Have A Problem
Wolfram Alpha
API Exponential Growth
Cannot Keep UpTo Connect People to Products
4
100 Years Ago, The Emma Days... Did Not Scale Well Either...
Emma Nutt1860-1915
The world's first female telephone operator hired on Sept 1 1878 in Boston, Massachusetts.
5
When Finally Almon Strowger Changed The API...
~1900 ~1910
Almon Brown Strowger 1839-1902
Telephone Users Could Now Meet Their Goals Without An Intermediary
6
The Decline Of Switchboard Operators...
Wolfram Alpha
7
NOT
So My Point Is...
API’s For People [that happen to use machines via user-agent]
API’s Are Getting Too Low Level
8
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
9
API Consumer
My Personal Journey
• NASA SensorWeb
Group On Earth Observation System of Systems10
API for The International Disaster Community?
Big Data... Complex GeoSpatial API 11
Our Geo-API Reality, Today!
Floods - Port-Au-Prince, Haiti
60+ standardsat different version levels
3+ binding types400+ Organizations
Disaster
12
Very Hard For API Consumer To Access
?
APIs Should Expose Workflows
•“Since your process is what your users want, just give that to them! This is the essence of hypermedia.”
•“..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
Steve KlabnikDesigning Hypermedia APIs
13
Donald Norman: Designing For People
The Design of Everyday Things. New York.
1986 14
http://www.jnd.org
“Designers have to produce things that tame complexity.”
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.
Your Service Should Expose The Goals (not the Workflows)
15
Goals
Provide Activity
Sequences (aka Behaviors)
To Access Data
16
I Want A Flood Map in My Area Of Interest
Hyperspectral Data
Flood Map
?
So What If...
• User Would Only State the Goal
• 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
Get Floodmap...Get Flood Forecast...Floods - Port-Au-Prince, Haiti
Goal
17
Problem: Encoding Behavior...
HFSM
Planners
ScriptingWorkflows C++ LUA
Hierarchical Task Network Planners
Hierarchical Finite State Machines
BehaviorTrees
http://aigamedev.com/open/articles/behavior-trees-part1/
integratedflexible
intuitivereactive
autonomouspurposeful
http://aigamedev.com/open/articles/behavior-trees-part2/http://aigamedev.com/open/articles/behavior-trees-part3/
Many Options...
18
Alex Champandard
ExistingGame Technology
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
There Are Some Differences From Game AI!
Get Flood MapFloods - Port-Au-Prince, Haiti
20
Server
Client
But Not A Replacement For Low Level API
THANKPI
YOU
STRATEG
Email: [email protected]:@cappelaere
Skype:patrice_cappelaerehttp://www.slideshare.net/cappelaere
Viaduc de Millau, France
An API for People and
Machines
21