• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. API Time For A New Strategy?Pat CappelaereSofware 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 APIConsumer We Forgot The Most Important Element Of The API Food Chain: People 3
  • 4. We Have A Problem API Exponential GrowthCannot 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 worlds first female telephone operator hired on Sept 1 1878 in Boston, Massachusetts. 5
  • 6. When Finally Almon StrowgerChanged The API... Telephone Users Could Now Meet Their Goals Without An Intermediary Almon Brown Strowger 1839-1902 ~1900 ~1910 6
  • 7. The Decline Of Switchboard Operators... Wolfram Alpha 7
  • 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 APIConsumer 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.orgStages of Execution:-•Start at the top with the goal, the state that is tobe achieved.•The goal is translated into an intention to do someaction.•The intention must be translated into a set of internalcommands, an action sequence that can be performedto satisfy the intention.•The action sequence is still a mutual even: nothinghappens until it is executed, performed upon theworld. 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. GoalSo 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 MapClientServerBut Not A Replacement For Low Level API 20
  • 21. S T R An API for A People and T MachinesViaduc de Millau, France E G THANK YOU P I Email: pat@cappelaere.com Twitter:@cappelaere Skype:patrice_cappelaere 21 http://www.slideshare.net/cappelaere