API Time For A New Strategy?
Pat Cappelaere
Sofware 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

                        API Exponential Growth




Cannot Keep to
 To Connect People Up
       Products
                                       Wolfram Alpha
                                                       4
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
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
The Decline Of Switchboard Operators...




                                   Wolfram Alpha




                                                   7
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
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
My Personal Journey

• NASA SensorWeb




       Group On Earth Observation System of
                     Systems
                                              10
API for The International Disaster
          Community?




          Big Data... Complex GeoSpatial
                        API            11
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
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
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
Your Service Should Expose The Goals (not the
                      Workflows)




       Goals

   Provide
    Activity
  Sequences
    (aka Behaviors)




   To Access
      Data                                      15
I Want A Flood Map in My Area Of
                        Interest




  Flood Map



       ?




Hyperspectral Data                            16
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
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/
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
Floods - Port-Au-Prince, Haiti
                                      Get Flood Map




Client

Server




But Not A Replacement For Low Level API               20
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

Is It API Time For A New Strategy?

  • 1.
    API Time ForA New Strategy? Pat Cappelaere Sofware Architect An API for People and Machines 1
  • 2.
    What Are OurAPI’s For? The Time Has Come To Design APIs For People To Meet Their Goals 2
  • 3.
    API Should TargetThe Biggest API Consumer We Forgot The Most Important Element Of The API Food Chain: People 3
  • 4.
    We Have AProblem 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 AlmonStrowger Changed The API... Telephone Users Could Now Meet Their Goals Without An Intermediary Almon Brown Strowger 1839-1902 ~1900 ~1910 6
  • 7.
    The Decline OfSwitchboard Operators... Wolfram Alpha 7
  • 8.
    So My PointIs... 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 TheInternational 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 ExposeWorkflows • “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: DesigningFor 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 ShouldExpose The Goals (not the Workflows) Goals Provide Activity Sequences (aka Behaviors) To Access Data 15
  • 16.
    I Want AFlood 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 SomeDifferences 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