SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
A Open Geo-Social REST API For The Web
Lessons Learned From the EO-1 Spacecraft, 12 Years Later...         Jan 1, 2013

Building the Next Generation Of Web Services Using Story-Telling.
The Way For Users To Get Information From The Programmable Web...

Or Could We Say?
                           Stories



                                                                             1
Programmable Web Problem




       # api’s


                                                      http://www.programmableweb.com/




                 This Is Becoming an Enormous Issue for Our Neo-Geographers
                       Too Complex... Too Much Coding...Too Little Time...
Our Geo-API Reality, Today!
                                                                       Get Floodmap...
                    Disaster        Floods - Port-Au-Prince, Haiti   Get Flood Forecast...




             60+ standards
       at different version levels
            3+ binding types
          400+ Organizations




                                                                                             3
Before EO-1                                      EO-1 (Launched on Nov 21, 2000)
• Upload Individual Command                      • Upload A Goal
  Sequences
                                                 • Execute the Goal
• Execute Command List

          Manual, Complex, Time-                   • Satellite Generates Its Own
          Consuming, Expensive                       Command Sequences Based on
                                                     Current Resource Availability
                                                     and Context


                                                   • Now We Can Say: Image Port-
                                                     Au-Prince, Haiti... and we get it.
                         Port-au-Prince, Haiti




                                                                                          4
EO-1 Wideband Advanced Recorder/Processor vs IPhone 5



                                    Mongoose 5 Processor
                                    32 bit, 12 MHz
                                    6 GB Storage
                                    3 GB Memory
                                    23 kg




                                   A6 Chip
                                   32 bit, 1.3 GHz
                                   64 GB Storage
                                   1 GB Memory
                                   112 g, $400



                                We Have Made Some Progress Since 2001...   5
Programming The [Geo-]Web Today...

• If You Want A FloodMap...
  • Interface to EO-1 Sensor Planning Service... Get Feasibilities, Submit Task
  • Interface to EO-1 Web Coverage Processing Service... Process FloodMap
    Algorithm... Pan-sharpening Algorithm...
  • Interface to EO-1 Sensor Alert Service... Get Notification
  • Interface to EO-1 Sensor Observation Service... Get Data
• Repeat for Radarsat-2, MODIS (if you find them)... Use Catalog Service...
• And These Services May Have Different Bindings... REST/RPC, SOAP,
  GeoServices or REST...
• Services May Have Particularities (To Task Radarsat-2, you may need to
  specify beam mode, polarization... What is that?)


                     Manual, Complex, Time-Consuming, Expensive...
                     Does Not Scale Up For Our Disaster Community.
                                                                                  6
How Can We Reduce
Complexity And Improve
Access To Information?


             Discovery, Harmonization & Interoperability Issues
                  [OGC REST Standard Working Group]

                                                              7
Standard User Media Types

                          Maps




                                            and Stories
   Recipes


                                                    144 ch.
Users Like Simple Directions and Stories.
                                                              8
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

                                                                                                                     9
Goal
What If...Like EO-1...

• User Would Only State the Goal
                                                        Get Floodmap...
                                                      Get Flood Forecast...
                     Floods - Port-Au-Prince, Haiti




• Services Would Figure Out What To Do and Return It To Client Some
  Directions or Simple Maps (or Simple Model to Follow)


• Client Would Execute As Code-On-Demand (Simple Javascript Running In
  Browser or Thin Client or SmartPhone App)

                                                                              10
The Magick Sauce...
• We define user goals (in our case floodmap or flood_forecast...)
• To achieve those goals, we define [geo-]activities (see examples next slide)
• A behavior is defined as a set of [geo-]activities required to meet a goal.
• A behavior is encoded in Javascript as a behavior tree
• Servers publish behaviors/activities they can perform. They return possible
  behaviors on query
• Simple Javascript library (or App) is provided to clients to execute returned
  behavior trees
• Activities are triggered on the client but executed on the server
• Results are returned back to the user as atom feed or notification


 User can execute the behaviors to meet a goal without having to read a spec,
 implement an interfaces or workflow engine
                                                                                  11
Geo-Activities Examples
 {system} {publishes | harvests } {resources}

 {system} {acquires} {observation}

 {user} {searches for} {activities | observations | products | maps | features | …}

 {user} {views} {an observation | map | product | …}

 {user} {processes} {observation}

 {user} {executes} {algorithm} {on an observation}

 {user} {subscribes} {event}

 {user} {downloaded} {observations | products | map layer}

 {user} {requests feasibility) {location}

 {user} {requests imaging) {location}

 {user} {orders} {imagery product}

 {user} {generates) {product}

 {user} {likes | shares | comments } {observation | product}

 {user} {collaborates with} {user}
                                                                                      12
Encoding Behavior...
                       Hierarchical Finite State Machines

Many Options...                                         intuitive
                                                        reactive
                          HFSM
                                                               Existing
                                                            Game Technology
                           Behavior
                            Trees
                                                                             Hierarchical Task Network Planners




       Scripting
     Workflows C++                                                      Planners
         LUA
                                                                                                     autonomous
      integrated                                                                                     purposefule
        flexible           Alex Champandard

                                                            http://aigamedev.com/open/articles/behavior-trees-part1/
                                                            http://aigamedev.com/open/articles/behavior-trees-part2/
                                                                                                                       13
                                                            http://aigamedev.com/open/articles/behavior-trees-part3/
A Simple Pattern
                                                      A Behavior Tree
To Model Behavior
                                                      Start From Goal At The Top
                                      Goal G


                                     do in parallel
                                                                                        Goal G:

                                                                                        Do Task1
                       Do All

                                                                          1!
                                                               Only One                 if condition1 -> A1
                                1+                                                      Then A2

                                                                                        Next Branch,
                                                                                        Do Task2
          Task1            A2
                                ✔                      Task2
                                                                          A4            if condition2 then A3
                                                                                        done!.



  Cond1           A1                       Cond2                 A3

            ✔                                                             ✔
 Go Down The                                                     - Execution Strategy Options: Parallel, Sequential
                                                                 or Select First Successful Branch Or Try Next Branch

Tree Until Action                                                - Objects:
                                                                     Goal

  And Execute
                                                                     Tasks,
                                                                     Actions                                      14
                                                                     Filters (conditions)
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...


• Activity Stories Propagate On Social Networks To Deliver Information and
  Enable Discovery


• NO Need for Workflow Engine, Finite State Model Engine, Planner or
  Compiler

                                                                                15
Start From GOAL
              Client                   Server

                                       Goals

 Get Floodmap Port-au-Prince                       1 1
                                                  ✔ ✔
                               Query
                                       Burnscar
                                                  ✔
                                                   1 1
                                       Floodmap


                                        NDVI
                                                  ✔
                                                  ✔ ✔
                                          ...
                                                  ✔1 1
                                                  ✔ ✔
                                                   1 1
                                                  ✔ ✔
                                                  ✔
                                                         16
Retrieve The Directions as a Tree
        Client                  Server

                                Goals


                                Get Burnscar


                                Get Floodmap

                                               ✔1 1
                                    Get NDVI   ✔ ✔
          1      1
          ✔
      ✔          ✔

                                                  17
Follow the Directions
         Client                      Server


                                         Share, Like,
                                          Comment,
                                         Collaborate...


                                      Resources
         1        1
                         HTTP POST
         ✔                            Activity
                                       Activity
                                        Activity
       ✔        ✔                        Activity   Activity
                                                    Stream
Execute Code-On-Demand
     On-Client But...  Activities On Server Side
                                                               18
Activities Appears In User Timeline and News Feed




       Now They Can be Shared (Discovered And Duplicated)   19
20
Example
MODIS Behavior Tree for FloodMap

                                        Goal
                   Floodmap




                                           Activities
               Tile
              Avail?
                                Get
                              Product      SOS


                                    Only 1 Test, 1 Activity
                                       1 OGC Service
                                          Sensor Observation Service (SOS)



                                                                             21
Example
RADARSAT-2 Behavior Tree for FloodMap

                                   Floodmap




      SPS                 Task
                          Asset               Process
                                               Data
                                                              GET
                                                             Product
                                                                       SOS

                                              WPS
              GET
          FEASIBILITIES
                                  SUBMIT
                                   TASK                More Complex
                                                Might Need To Task Satellite
                                                      3 OGC Services
                                                       Sensor Planning Service (SPS)
                                                      Web Processing Service (WPS)
                                                     Sensor Observation Service (SOS)
                                                    Optional Sensor Alert Service (SAS)...   22
Example
EO-1 Behavior Tree for FloodMap

                                  Floodmap




       SPS             Task
                       Asset
                                              PROCESS
                                             FLOODMAP
                                                            Get
                                                          Product
                                                                    SOS
                                             ALGORITHM



                                             WCPS
           GET                 SUBMIT
       FEASIBILITIES            TASK




            Then Need to Apply Special Algorithm...
                      3 OGC Services
                                            Sensor Planning Service
                                        Web Coverage Processing Service
                                                                          23
                                          Sensor Observation Service
Local User Tree For Floodmap (After Query)

                        Goal
                                    Floodmap              Three Behavior (sub)Trees To Execute in Parallel (or
                                                                            Sequentially...)




   Behavior Trees   MODIS            EO-1                RADARSAT2
     Retrieved
    Dynamically



                               ..              ..   ..           ..




Client                                                                         User Activities

                                                                              Web Services
Server                                                                                                       24
Discovery Via Social Networks

                                      Mimick




                                    Share, Like,
                                     Comment,
                                    Collaborate...


                        Resources


                              Activity
                               Activity
             Behavior           Activity
                                 Activity      Activity
                                               Stream




                                                          25
Discovery Via Distributed Query
                          Geo-Portals /
                   Federated Catalog Lookups /
                       Super Aggregators




           Query
  Client

                                           Publish



                                                                Feed
                                                     Server


                                                              Behaviors
                                                               Behaviors
                                                                Behaviors

                                                                            26
NEW

Agile Development Process + Implementation
• Focus On User Stories (Goals)




• Then Develop Scenarios (Behaviors)




• Then Implement Service The Same Way



                                Publish Goals/Activities/Behaviors
                                 And Generate Activity Streams
                                                                      27
      Same inside as outside!
User Centric
Value Proposition

• Use Story Telling To Convey Information to Access/Share The Information


• Define User Activities To Interface To Actual Services


• Define Behaviors To Achieve User Goals By Sequencing Activities


• Web Services Publish Behaviors On Request Based On User Goals


• Users Execute Behaviors To Meet Goals and Retrieve Products


• Friends Discover Information/Capabilities On Social Networks Via Stories
  (Activity Stream, Facebook, Twitter)

     User Cares About Stories, Goals, Activities, Behaviors...
                    Not Services or Data                                     28
Floods - Port-Au-Prince, Haiti   Get Floodmap
                                                                         NextGEN GeoSocial API
            User                                                                                  Goal Driven Behavior Tree
            Realm


                                                                                                               Activity Layer
         Information/Goal             G1                                               B2          G1         Independent of
              Realm                                                                                               Service
                                                                                                              Implementation


                                                                                            A1     A2       A3
                                                                     Activity
          Behaviors                                               Orchestration
                                B1          B2          B3
           Realm

                                                                                            S1     S2       S3


           Activities           A1          A2          A3                                                          Service
            Realm                                                                                                Implementation
Client    Tomorrow's API                                            GeoSocial API      REST/RPC   SOAP      GeoServices
          Today's API                                              GeoSpatial API

Server     Services             S1          S2          S3
                                                                   With Some Service                              OGC Service
                                                                     Orchestration                                 Standards
            Realm




                                D1          D2          D3
            Data
            Realm




                                                                                                                                  29

Weitere ähnliche Inhalte

Andere mochten auch

Diuit API Overview
Diuit API OverviewDiuit API Overview
Diuit API OverviewTing-Yi Lee
 
DODN2009 - Architecting Modern Distributed Applications
DODN2009 - Architecting Modern Distributed ApplicationsDODN2009 - Architecting Modern Distributed Applications
DODN2009 - Architecting Modern Distributed ApplicationsClint Edmonson
 
Bing Maps Snapshot
Bing Maps SnapshotBing Maps Snapshot
Bing Maps Snapshotinfusiondev
 
Digital news report 2016 Reuters
Digital news report 2016 ReutersDigital news report 2016 Reuters
Digital news report 2016 ReutersPatricia Bertolotti
 
Richard Holbrooke's World: Memories of a Newsweek Special Correspondent - A Q...
Richard Holbrooke's World: Memories of a Newsweek Special Correspondent - A Q...Richard Holbrooke's World: Memories of a Newsweek Special Correspondent - A Q...
Richard Holbrooke's World: Memories of a Newsweek Special Correspondent - A Q...GLOBAL HEAVYLIFT HOLDINGS
 
AtlasCopco_Partner_No_2
AtlasCopco_Partner_No_2AtlasCopco_Partner_No_2
AtlasCopco_Partner_No_2Ayca Arabaci
 
PAR for Doctors EIS
PAR for Doctors EISPAR for Doctors EIS
PAR for Doctors EISAlana James
 
Vinmonopolet - Norges beste omdømme
Vinmonopolet - Norges beste omdømmeVinmonopolet - Norges beste omdømme
Vinmonopolet - Norges beste omdømmeApeland
 
Question 2
Question 2Question 2
Question 2Lara243
 
[Android] Multimedia Programming
[Android] Multimedia Programming[Android] Multimedia Programming
[Android] Multimedia ProgrammingNikmesoft Ltd
 
S2C Wave 3 Ambassadorial Journey
S2C Wave 3 Ambassadorial JourneyS2C Wave 3 Ambassadorial Journey
S2C Wave 3 Ambassadorial JourneyCedric Dzelu
 
History 121 ancient greece 4
History 121 ancient greece 4History 121 ancient greece 4
History 121 ancient greece 4Jeff Crane
 

Andere mochten auch (20)

Diuit API Overview
Diuit API OverviewDiuit API Overview
Diuit API Overview
 
DODN2009 - Architecting Modern Distributed Applications
DODN2009 - Architecting Modern Distributed ApplicationsDODN2009 - Architecting Modern Distributed Applications
DODN2009 - Architecting Modern Distributed Applications
 
Kyrgyzstan
KyrgyzstanKyrgyzstan
Kyrgyzstan
 
Bing Maps Snapshot
Bing Maps SnapshotBing Maps Snapshot
Bing Maps Snapshot
 
The M-Jirga
The M-JirgaThe M-Jirga
The M-Jirga
 
Digital news report 2016 Reuters
Digital news report 2016 ReutersDigital news report 2016 Reuters
Digital news report 2016 Reuters
 
As Biologists
As BiologistsAs Biologists
As Biologists
 
GD0756180
GD0756180GD0756180
GD0756180
 
Richard Holbrooke's World: Memories of a Newsweek Special Correspondent - A Q...
Richard Holbrooke's World: Memories of a Newsweek Special Correspondent - A Q...Richard Holbrooke's World: Memories of a Newsweek Special Correspondent - A Q...
Richard Holbrooke's World: Memories of a Newsweek Special Correspondent - A Q...
 
AtlasCopco_Partner_No_2
AtlasCopco_Partner_No_2AtlasCopco_Partner_No_2
AtlasCopco_Partner_No_2
 
PAR for Doctors EIS
PAR for Doctors EISPAR for Doctors EIS
PAR for Doctors EIS
 
Cambodia
Cambodia Cambodia
Cambodia
 
Vinmonopolet - Norges beste omdømme
Vinmonopolet - Norges beste omdømmeVinmonopolet - Norges beste omdømme
Vinmonopolet - Norges beste omdømme
 
Libro de calculo 3
Libro de calculo 3Libro de calculo 3
Libro de calculo 3
 
Question 2
Question 2Question 2
Question 2
 
AMPA2
AMPA2AMPA2
AMPA2
 
FINAL_Report
FINAL_ReportFINAL_Report
FINAL_Report
 
[Android] Multimedia Programming
[Android] Multimedia Programming[Android] Multimedia Programming
[Android] Multimedia Programming
 
S2C Wave 3 Ambassadorial Journey
S2C Wave 3 Ambassadorial JourneyS2C Wave 3 Ambassadorial Journey
S2C Wave 3 Ambassadorial Journey
 
History 121 ancient greece 4
History 121 ancient greece 4History 121 ancient greece 4
History 121 ancient greece 4
 

Ähnlich wie Open GeoSocial API

GEOSS Future Products & GeoSocial API
GEOSS Future Products & GeoSocial APIGEOSS Future Products & GeoSocial API
GEOSS Future Products & GeoSocial APIPat Cappelaere
 
Making your Analytics Investment Pay Off - StampedeCon 2012
Making your Analytics Investment Pay Off - StampedeCon 2012Making your Analytics Investment Pay Off - StampedeCon 2012
Making your Analytics Investment Pay Off - StampedeCon 2012StampedeCon
 
Challenges in Maintaining a High Performance Search Engine Written in Java
Challenges in Maintaining a High Performance Search Engine Written in JavaChallenges in Maintaining a High Performance Search Engine Written in Java
Challenges in Maintaining a High Performance Search Engine Written in Javalucenerevolution
 
Dynamic Languages in Production: Progress and Open Challenges
Dynamic Languages in Production: Progress and Open ChallengesDynamic Languages in Production: Progress and Open Challenges
Dynamic Languages in Production: Progress and Open Challengesbcantrill
 
Bring Satellite and Drone Imagery into your Data Science Workflows
Bring Satellite and Drone Imagery into your Data Science WorkflowsBring Satellite and Drone Imagery into your Data Science Workflows
Bring Satellite and Drone Imagery into your Data Science WorkflowsDatabricks
 
4 D Computing: Life comes at us polydimensionally
4 D Computing: Life comes at us polydimensionally4 D Computing: Life comes at us polydimensionally
4 D Computing: Life comes at us polydimensionallyJoe Raimondo
 
Device APIs at TakeOff Conference
Device APIs at TakeOff ConferenceDevice APIs at TakeOff Conference
Device APIs at TakeOff Conferencedianacheng
 
Gisruk2013 addy edit2
Gisruk2013 addy edit2Gisruk2013 addy edit2
Gisruk2013 addy edit2Addy Pope
 
RESTFul Services, Does it Matter Anymore?
RESTFul Services, Does it Matter Anymore?RESTFul Services, Does it Matter Anymore?
RESTFul Services, Does it Matter Anymore?Pat Cappelaere
 
IFRA Local Media Presentation: My Own City
IFRA Local Media Presentation: My Own CityIFRA Local Media Presentation: My Own City
IFRA Local Media Presentation: My Own CityLassi Kurkijärvi
 
ROMA User-Customizable NoSQL Database in Ruby
ROMA User-Customizable NoSQL Database in RubyROMA User-Customizable NoSQL Database in Ruby
ROMA User-Customizable NoSQL Database in RubyRakuten Group, Inc.
 
Deploying Grid Services Using Apache Hadoop
Deploying Grid Services Using Apache HadoopDeploying Grid Services Using Apache Hadoop
Deploying Grid Services Using Apache HadoopAllen Wittenauer
 
Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...
Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...
Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...Future Perfect 2012
 
From Events to Situations: An Event-web perspective
From Events to Situations: An Event-web perspectiveFrom Events to Situations: An Event-web perspective
From Events to Situations: An Event-web perspectiveVivek Singh
 
Scrumbox ece2011.pptx
Scrumbox ece2011.pptxScrumbox ece2011.pptx
Scrumbox ece2011.pptxda152
 
Performance Management in ‘Big Data’ Applications
Performance Management in ‘Big Data’ ApplicationsPerformance Management in ‘Big Data’ Applications
Performance Management in ‘Big Data’ ApplicationsMichael Kopp
 

Ähnlich wie Open GeoSocial API (20)

GEOSS Future Products & GeoSocial API
GEOSS Future Products & GeoSocial APIGEOSS Future Products & GeoSocial API
GEOSS Future Products & GeoSocial API
 
Making your Analytics Investment Pay Off - StampedeCon 2012
Making your Analytics Investment Pay Off - StampedeCon 2012Making your Analytics Investment Pay Off - StampedeCon 2012
Making your Analytics Investment Pay Off - StampedeCon 2012
 
Challenges in Maintaining a High Performance Search Engine Written in Java
Challenges in Maintaining a High Performance Search Engine Written in JavaChallenges in Maintaining a High Performance Search Engine Written in Java
Challenges in Maintaining a High Performance Search Engine Written in Java
 
Dynamic Languages in Production: Progress and Open Challenges
Dynamic Languages in Production: Progress and Open ChallengesDynamic Languages in Production: Progress and Open Challenges
Dynamic Languages in Production: Progress and Open Challenges
 
Bring Satellite and Drone Imagery into your Data Science Workflows
Bring Satellite and Drone Imagery into your Data Science WorkflowsBring Satellite and Drone Imagery into your Data Science Workflows
Bring Satellite and Drone Imagery into your Data Science Workflows
 
4 D Computing: Life comes at us polydimensionally
4 D Computing: Life comes at us polydimensionally4 D Computing: Life comes at us polydimensionally
4 D Computing: Life comes at us polydimensionally
 
Surge2012
Surge2012Surge2012
Surge2012
 
Device APIs at TakeOff Conference
Device APIs at TakeOff ConferenceDevice APIs at TakeOff Conference
Device APIs at TakeOff Conference
 
Gisruk2013 addy edit2
Gisruk2013 addy edit2Gisruk2013 addy edit2
Gisruk2013 addy edit2
 
RESTFul Services, Does it Matter Anymore?
RESTFul Services, Does it Matter Anymore?RESTFul Services, Does it Matter Anymore?
RESTFul Services, Does it Matter Anymore?
 
IFRA Local Media Presentation: My Own City
IFRA Local Media Presentation: My Own CityIFRA Local Media Presentation: My Own City
IFRA Local Media Presentation: My Own City
 
ROMA User-Customizable NoSQL Database in Ruby
ROMA User-Customizable NoSQL Database in RubyROMA User-Customizable NoSQL Database in Ruby
ROMA User-Customizable NoSQL Database in Ruby
 
Deploying Grid Services Using Apache Hadoop
Deploying Grid Services Using Apache HadoopDeploying Grid Services Using Apache Hadoop
Deploying Grid Services Using Apache Hadoop
 
Project Matsu
Project MatsuProject Matsu
Project Matsu
 
Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...
Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...
Kris Carpenter Negulescu Gordon Paynter Archiving the National Web of New Zea...
 
First spring
First springFirst spring
First spring
 
From Events to Situations: An Event-web perspective
From Events to Situations: An Event-web perspectiveFrom Events to Situations: An Event-web perspective
From Events to Situations: An Event-web perspective
 
Scrumbox ece2011.pptx
Scrumbox ece2011.pptxScrumbox ece2011.pptx
Scrumbox ece2011.pptx
 
Performance Management in ‘Big Data’ Applications
Performance Management in ‘Big Data’ ApplicationsPerformance Management in ‘Big Data’ Applications
Performance Management in ‘Big Data’ Applications
 
Introduction to map reduce
Introduction to map reduceIntroduction to map reduce
Introduction to map reduce
 

Mehr von Pat Cappelaere

Open Geo-Social API (and Screencast)
Open Geo-Social API (and Screencast)Open Geo-Social API (and Screencast)
Open Geo-Social API (and Screencast)Pat Cappelaere
 
HyspIRI IPM Goes Social
HyspIRI IPM Goes SocialHyspIRI IPM Goes Social
HyspIRI IPM Goes SocialPat Cappelaere
 
Want Your API to Stick? Try Story-Telling...
Want Your API to Stick? Try Story-Telling...Want Your API to Stick? Try Story-Telling...
Want Your API to Stick? Try Story-Telling...Pat Cappelaere
 
Cathalac Story Based on Actual Data
Cathalac Story Based on Actual DataCathalac Story Based on Actual Data
Cathalac Story Based on Actual DataPat Cappelaere
 
Radarsat Facebook App Concept
Radarsat Facebook App ConceptRadarsat Facebook App Concept
Radarsat Facebook App ConceptPat Cappelaere
 
Story Telling as an Activity-based Architecture
Story Telling as an Activity-based ArchitectureStory Telling as an Activity-based Architecture
Story Telling as an Activity-based ArchitecturePat Cappelaere
 
NASA SensorWeb Enterprise Services
NASA SensorWeb Enterprise ServicesNASA SensorWeb Enterprise Services
NASA SensorWeb Enterprise ServicesPat Cappelaere
 
Restful Security Requirements
Restful Security RequirementsRestful Security Requirements
Restful Security RequirementsPat Cappelaere
 
Two Degrees To SensoWeb
Two Degrees To SensoWebTwo Degrees To SensoWeb
Two Degrees To SensoWebPat Cappelaere
 
EO/NRE Interoperability Presentation
EO/NRE Interoperability PresentationEO/NRE Interoperability Presentation
EO/NRE Interoperability PresentationPat Cappelaere
 
Geobliki: A Platform For Emergency Response
Geobliki: A Platform For Emergency ResponseGeobliki: A Platform For Emergency Response
Geobliki: A Platform For Emergency ResponsePat Cappelaere
 
Improving Operational Space Responsiveness
Improving Operational Space ResponsivenessImproving Operational Space Responsiveness
Improving Operational Space ResponsivenessPat Cappelaere
 

Mehr von Pat Cappelaere (18)

GeoCAPE Strategies
GeoCAPE StrategiesGeoCAPE Strategies
GeoCAPE Strategies
 
Open Geo-Social API (and Screencast)
Open Geo-Social API (and Screencast)Open Geo-Social API (and Screencast)
Open Geo-Social API (and Screencast)
 
HyspIRI IPM Goes Social
HyspIRI IPM Goes SocialHyspIRI IPM Goes Social
HyspIRI IPM Goes Social
 
Want Your API to Stick? Try Story-Telling...
Want Your API to Stick? Try Story-Telling...Want Your API to Stick? Try Story-Telling...
Want Your API to Stick? Try Story-Telling...
 
Cathalac Story Based on Actual Data
Cathalac Story Based on Actual DataCathalac Story Based on Actual Data
Cathalac Story Based on Actual Data
 
Radarsat Facebook App Concept
Radarsat Facebook App ConceptRadarsat Facebook App Concept
Radarsat Facebook App Concept
 
Story Telling as an Activity-based Architecture
Story Telling as an Activity-based ArchitectureStory Telling as an Activity-based Architecture
Story Telling as an Activity-based Architecture
 
NASA SensorWeb Enterprise Services
NASA SensorWeb Enterprise ServicesNASA SensorWeb Enterprise Services
NASA SensorWeb Enterprise Services
 
RIP
RIPRIP
RIP
 
Nasa aip5.pptx
Nasa aip5.pptxNasa aip5.pptx
Nasa aip5.pptx
 
Restful Security Requirements
Restful Security RequirementsRestful Security Requirements
Restful Security Requirements
 
Two Degrees To SensoWeb
Two Degrees To SensoWebTwo Degrees To SensoWeb
Two Degrees To SensoWeb
 
Esip Jan 09
Esip Jan 09Esip Jan 09
Esip Jan 09
 
EO/NRE Interoperability Presentation
EO/NRE Interoperability PresentationEO/NRE Interoperability Presentation
EO/NRE Interoperability Presentation
 
A RESTful WfXML
A RESTful WfXMLA RESTful WfXML
A RESTful WfXML
 
RESTful OGC Services
RESTful OGC ServicesRESTful OGC Services
RESTful OGC Services
 
Geobliki: A Platform For Emergency Response
Geobliki: A Platform For Emergency ResponseGeobliki: A Platform For Emergency Response
Geobliki: A Platform For Emergency Response
 
Improving Operational Space Responsiveness
Improving Operational Space ResponsivenessImproving Operational Space Responsiveness
Improving Operational Space Responsiveness
 

Open GeoSocial API

  • 1. A Open Geo-Social REST API For The Web Lessons Learned From the EO-1 Spacecraft, 12 Years Later... Jan 1, 2013 Building the Next Generation Of Web Services Using Story-Telling. The Way For Users To Get Information From The Programmable Web... Or Could We Say? Stories 1
  • 2. Programmable Web Problem # api’s http://www.programmableweb.com/ This Is Becoming an Enormous Issue for Our Neo-Geographers Too Complex... Too Much Coding...Too Little Time...
  • 3. Our Geo-API Reality, Today! Get Floodmap... Disaster Floods - Port-Au-Prince, Haiti Get Flood Forecast... 60+ standards at different version levels 3+ binding types 400+ Organizations 3
  • 4. Before EO-1 EO-1 (Launched on Nov 21, 2000) • Upload Individual Command • Upload A Goal Sequences • Execute the Goal • Execute Command List Manual, Complex, Time- • Satellite Generates Its Own Consuming, Expensive Command Sequences Based on Current Resource Availability and Context • Now We Can Say: Image Port- Au-Prince, Haiti... and we get it. Port-au-Prince, Haiti 4
  • 5. EO-1 Wideband Advanced Recorder/Processor vs IPhone 5 Mongoose 5 Processor 32 bit, 12 MHz 6 GB Storage 3 GB Memory 23 kg A6 Chip 32 bit, 1.3 GHz 64 GB Storage 1 GB Memory 112 g, $400 We Have Made Some Progress Since 2001... 5
  • 6. Programming The [Geo-]Web Today... • If You Want A FloodMap... • Interface to EO-1 Sensor Planning Service... Get Feasibilities, Submit Task • Interface to EO-1 Web Coverage Processing Service... Process FloodMap Algorithm... Pan-sharpening Algorithm... • Interface to EO-1 Sensor Alert Service... Get Notification • Interface to EO-1 Sensor Observation Service... Get Data • Repeat for Radarsat-2, MODIS (if you find them)... Use Catalog Service... • And These Services May Have Different Bindings... REST/RPC, SOAP, GeoServices or REST... • Services May Have Particularities (To Task Radarsat-2, you may need to specify beam mode, polarization... What is that?) Manual, Complex, Time-Consuming, Expensive... Does Not Scale Up For Our Disaster Community. 6
  • 7. How Can We Reduce Complexity And Improve Access To Information? Discovery, Harmonization & Interoperability Issues [OGC REST Standard Working Group] 7
  • 8. Standard User Media Types Maps and Stories Recipes 144 ch. Users Like Simple Directions and Stories. 8
  • 9. 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 9
  • 10. Goal What If...Like EO-1... • User Would Only State the Goal Get Floodmap... Get Flood Forecast... Floods - Port-Au-Prince, Haiti • Services Would Figure Out What To Do and Return It To Client Some Directions or Simple Maps (or Simple Model to Follow) • Client Would Execute As Code-On-Demand (Simple Javascript Running In Browser or Thin Client or SmartPhone App) 10
  • 11. The Magick Sauce... • We define user goals (in our case floodmap or flood_forecast...) • To achieve those goals, we define [geo-]activities (see examples next slide) • A behavior is defined as a set of [geo-]activities required to meet a goal. • A behavior is encoded in Javascript as a behavior tree • Servers publish behaviors/activities they can perform. They return possible behaviors on query • Simple Javascript library (or App) is provided to clients to execute returned behavior trees • Activities are triggered on the client but executed on the server • Results are returned back to the user as atom feed or notification User can execute the behaviors to meet a goal without having to read a spec, implement an interfaces or workflow engine 11
  • 12. Geo-Activities Examples {system} {publishes | harvests } {resources} {system} {acquires} {observation} {user} {searches for} {activities | observations | products | maps | features | …} {user} {views} {an observation | map | product | …} {user} {processes} {observation} {user} {executes} {algorithm} {on an observation} {user} {subscribes} {event} {user} {downloaded} {observations | products | map layer} {user} {requests feasibility) {location} {user} {requests imaging) {location} {user} {orders} {imagery product} {user} {generates) {product} {user} {likes | shares | comments } {observation | product} {user} {collaborates with} {user} 12
  • 13. Encoding Behavior... Hierarchical Finite State Machines Many Options... intuitive reactive HFSM Existing Game Technology Behavior Trees Hierarchical Task Network Planners Scripting Workflows C++ Planners LUA autonomous integrated purposefule flexible Alex Champandard http://aigamedev.com/open/articles/behavior-trees-part1/ http://aigamedev.com/open/articles/behavior-trees-part2/ 13 http://aigamedev.com/open/articles/behavior-trees-part3/
  • 14. A Simple Pattern A Behavior Tree To Model Behavior Start From Goal At The Top Goal G do in parallel Goal G: Do Task1 Do All 1! Only One if condition1 -> A1 1+ Then A2 Next Branch, Do Task2 Task1 A2 ✔ Task2 A4 if condition2 then A3 done!. Cond1 A1 Cond2 A3 ✔ ✔ Go Down The - Execution Strategy Options: Parallel, Sequential or Select First Successful Branch Or Try Next Branch Tree Until Action - Objects: Goal And Execute Tasks, Actions 14 Filters (conditions)
  • 15. 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... • Activity Stories Propagate On Social Networks To Deliver Information and Enable Discovery • NO Need for Workflow Engine, Finite State Model Engine, Planner or Compiler 15
  • 16. Start From GOAL Client Server Goals Get Floodmap Port-au-Prince 1 1 ✔ ✔ Query Burnscar ✔ 1 1 Floodmap NDVI ✔ ✔ ✔ ... ✔1 1 ✔ ✔ 1 1 ✔ ✔ ✔ 16
  • 17. Retrieve The Directions as a Tree Client Server Goals Get Burnscar Get Floodmap ✔1 1 Get NDVI ✔ ✔ 1 1 ✔ ✔ ✔ 17
  • 18. Follow the Directions Client Server Share, Like, Comment, Collaborate... Resources 1 1 HTTP POST ✔ Activity Activity Activity ✔ ✔ Activity Activity Stream Execute Code-On-Demand On-Client But... Activities On Server Side 18
  • 19. Activities Appears In User Timeline and News Feed Now They Can be Shared (Discovered And Duplicated) 19
  • 20. 20
  • 21. Example MODIS Behavior Tree for FloodMap Goal Floodmap Activities Tile Avail? Get Product SOS Only 1 Test, 1 Activity 1 OGC Service Sensor Observation Service (SOS) 21
  • 22. Example RADARSAT-2 Behavior Tree for FloodMap Floodmap SPS Task Asset Process Data GET Product SOS WPS GET FEASIBILITIES SUBMIT TASK More Complex Might Need To Task Satellite 3 OGC Services Sensor Planning Service (SPS) Web Processing Service (WPS) Sensor Observation Service (SOS) Optional Sensor Alert Service (SAS)... 22
  • 23. Example EO-1 Behavior Tree for FloodMap Floodmap SPS Task Asset PROCESS FLOODMAP Get Product SOS ALGORITHM WCPS GET SUBMIT FEASIBILITIES TASK Then Need to Apply Special Algorithm... 3 OGC Services Sensor Planning Service Web Coverage Processing Service 23 Sensor Observation Service
  • 24. Local User Tree For Floodmap (After Query) Goal Floodmap Three Behavior (sub)Trees To Execute in Parallel (or Sequentially...) Behavior Trees MODIS EO-1 RADARSAT2 Retrieved Dynamically .. .. .. .. Client User Activities Web Services Server 24
  • 25. Discovery Via Social Networks Mimick Share, Like, Comment, Collaborate... Resources Activity Activity Behavior Activity Activity Activity Stream 25
  • 26. Discovery Via Distributed Query Geo-Portals / Federated Catalog Lookups / Super Aggregators Query Client Publish Feed Server Behaviors Behaviors Behaviors 26
  • 27. NEW Agile Development Process + Implementation • Focus On User Stories (Goals) • Then Develop Scenarios (Behaviors) • Then Implement Service The Same Way Publish Goals/Activities/Behaviors And Generate Activity Streams 27 Same inside as outside!
  • 28. User Centric Value Proposition • Use Story Telling To Convey Information to Access/Share The Information • Define User Activities To Interface To Actual Services • Define Behaviors To Achieve User Goals By Sequencing Activities • Web Services Publish Behaviors On Request Based On User Goals • Users Execute Behaviors To Meet Goals and Retrieve Products • Friends Discover Information/Capabilities On Social Networks Via Stories (Activity Stream, Facebook, Twitter) User Cares About Stories, Goals, Activities, Behaviors... Not Services or Data 28
  • 29. Floods - Port-Au-Prince, Haiti Get Floodmap NextGEN GeoSocial API User Goal Driven Behavior Tree Realm Activity Layer Information/Goal G1 B2 G1 Independent of Realm Service Implementation A1 A2 A3 Activity Behaviors Orchestration B1 B2 B3 Realm S1 S2 S3 Activities A1 A2 A3 Service Realm Implementation Client Tomorrow's API GeoSocial API REST/RPC SOAP GeoServices Today's API GeoSpatial API Server Services S1 S2 S3 With Some Service OGC Service Orchestration Standards Realm D1 D2 D3 Data Realm 29