SlideShare a Scribd company logo
Building Tomorrow’s Web Services API
Pat Cappelaere




                                       REST Fest 2012
                                        The Day After...
                                         Sept 16, 2012
Web Service API Evolution

• 1990 HTTP REST Richardson Maturity Level 0/1


• 2000 Service Oriented Architecture (SOAP, WS-*)


• 2010 REST Oriented Architecture


  • Level Richardson Maturity Level 2/3 -> Caching and HyperMedia



I Think That We Are Still Heading In Wrong Direction

• Next: 2015-2020??? Richardson Maturity Level 4?
Why?

•Users Do Not Care About Your Resource Model
                                          Stop CRUD
•Users May Not Care About Your Link Relations Between
 Resources
                             This is Your Own Plumbing
                         It May Still Be Necessary But...

•Tomorrow’s Users Of Your API Will Not Be Humans



           SO LONG REST AND HYPERMEDIA...??
Tomorrow’s User

 •Welcome SIRI     Your APP there




Your User Here
What’s Different With a User-Agent?

• Has Low Bandwidth - Think 3G-4G - 1MB is a big/costly chunk


• Acts on Behalf of User


• Performs One or More Activities to Achieve a User Goal


• Needs to be Able to Find Relevant Activities That Could Be Performed By
  Nearby Server(s)
How Does A User-Agent Work?

• Goal (/Preferences) Directed


• Sensing


• Reactive / Effective


• Can Be Programmed To Act “Intelligently”


   • See Constrained Behavior Trees (Game AI) With Blackboard ... Executing A
     Specific Activity For Current Context and User Goal



       Goal: Enabling User Agents By Publishing The
         Possible Activities They Could Perform
http://activitystrea.ms/specs/json/1.0/
What’s An Activity (Stream)?

• Get/Post/Update/Delete A Document

• or better... Execute/Halt/Resume/Delete a Local Process or Workflow

• Examples:

  • Facebook Social Activity Stream aka News Feed

  • OGC

     • Process Image (WPS)

     • Task Satellite (SPS)

     • Get Observation (SOS), a Map (WMS), a Coverage (WCS), a Feature
       (WFS)...

              http://www.socialcast.com/activity-streams
Activity Properties

• [User]

• Verb
            https://raw.github.com/activitystreams/activity-streams-verb-definition/master/activity-streams-verb-definition.txt


• Object

• Target

• May be a Few More for Advanced/Complex Activities...

   • Location, Duration, Cost, Priority, Date, TimeSpan...




                                           {user} {verb} {object} [{target}]
From Activities To Activity Streams

• Once Actors Perform Many Activities, Activity Streams Can Be Generated


  • See: http://activitystrea.ms/specs/json/1.0/


• Our Problem is to Provide an Activity Template for Actors to Perform
  Activities (on Behalf of Users)


• And Make them Discoverable (Activity Discovery Document???)


• And Searchable by User Agents To Meet Current Needs (or Goals)
Activity Discovery Document?




    User Agents Could Access It and Mine it
    For Activity Opportunities... Then Follow
     Links For Particular Activity Template
So...
• Support Auto-Discovery Of Relevant User-Agent Info
  • Link to Activity Description Document in End Point Page Header
        <link rel=‘activities’ href=‘http://www.example.com/activities’/>


  • Link to Activity Search Document in End Point Page Header
         <link rel="search"
               href="http://example.com/opensearchdescription.xml"
               type="application/opensearchdescription+xml"
               title="Activity Search" />


• Support Activity Search (Described in Url Template of OpenSearch
  Document) By Generic Search Terms or Specific Object/Verb Search

        template="http://example.com/?q={searchTerms}&amp;
        objects={objectTerms}&amp;verbs={verbs?}"/>
Activity Template??
{
	   "activities": {
                                         Could Easily Be Added To API Discovery Document...
	   	     "process data": {                                 https://developers.google.com/discovery/
	   	     	     "verb": 	   "process",
	   	     	     "object":	 {
	   	     	     	     "objectType": "http://example.com/terms#data",
	   	     	     	     "displayName": "data"
	   	     	     },
	   	     	     "target": {
	   	     	     	     "objectType": "http://example.com/terms# floodmap",
	   	     	     	     "displayName": "floodmap"
	   	     	     },
	   	     	     "method": {
	   	     	     	     "httpMethod": 	 "POST",
	   	     	     	     "path": 	   	      "/activities/1",
	   	     	     	     "mediaType": 	 "application/json",
	   	     	     	     "description": 	 "",
	   	     	     	     "parameters": {...},
	   	     	     	     "response": {...},
	   	     	     	     "scopes": {...}
	   	     	     },
	   	     	     ...
	   	     },...
	   }
}
So Where Are We Going?

• 1990 HTTP REST Richardson Maturity Level 0/1

• 2000 Service Oriented Architecture (SOA)

  • SOAP, WS-*

• 2010 REST Oriented Architecture (ROA)

  • Level Richardson Maturity Level 2/3 -> Caching and HyperMedia

• Activity Oriented Architecture (AOA ?)
  • Level 4?
Rationale

• Once We Have An Activity-Oriented Architecture, We Ought To Be Able to
  Link Data and Actions

  • See Stu Charlton’s REST FEST Presentation

     • https://github.com/RESTFest/2012-greenville/blob/master/
       presentation/linking%20data%20actions.pdf
Minor Problems

• Expressing Domain Specific Object/Verbs Semantics

  • Users do not like to express semantics

  • Example:

     • User wants to get a floodmap of Haiti (Activity)

        • But what’s a floodmap?

        • Note: There is also a huge difference between a MODIS floodmap at
          250m resolution and Radarsat-2 floodmap at 4m resolution... Does it
          matter? There is/could be some big differences as well (data size,
          generation time and $$)... Hummmm!

• Need Activity Aggregator ASAP ??

  • PubsubHubbub?
Feedback?
• pat@cappelaere.com


Major Thanks To:
    REST FEST 2012
          https://github.com/RESTFest/2012-greenville/wiki/People

    Activity Streams Group
          https://groups.google.com/forum/?fromgroups#!forum/activity-streams

    API-Craft Group
          https://groups.google.com/forum/?fromgroups#!forum/api-craft

    OGC REST Standards Working Group
    NASA SensorWeb Group

More Related Content

Similar to Building Tomorrow's Web Services (20)

PPTX
Rest assured
Yaniv Rodenski
 
PPTX
RESTful Web Services
adeppathondur
 
PDF
Rest api webinar(3)
WSO2
 
PDF
REST & API Management with the WSO2 ESB
WSO2
 
KEY
Want Your API to Stick? Try Story-Telling...
Pat Cappelaere
 
PPTX
Webservices: The RESTful Approach
Mushfekur Rahman
 
PPTX
Reaching 1 Million APIs and what to do when we get there
3scale
 
KEY
RESTFul Services, Does it Matter Anymore?
Pat Cappelaere
 
PPT
Rest introduction
William Martinez Pomares
 
PDF
Introduction to REST and Jersey
Chris Winters
 
PPTX
REST Presentation
Sarwajit Kumar
 
PDF
Cwinters Intro To Rest And JerREST and Jersey Introductionsey
elliando dias
 
PPTX
Building Software Backend (Web API)
Alexander Goida
 
PDF
Past, Present and Future of APIs of Mobile and Web Apps
SmartBear
 
PDF
Web APIs - Infrastructure for the (Intelligent) Programmable Web (R&D Talk)
Steven Willmott
 
PDF
Creating Restful Web Services with restish
Grig Gheorghiu
 
PDF
On being RESTful
Fabio Mancinelli
 
PPTX
Http and REST APIs.
Rahul Tanwani
 
PDF
HATEOAS: The Confusing Bit from REST
elliando dias
 
PDF
What is REST?
Saeid Zebardast
 
Rest assured
Yaniv Rodenski
 
RESTful Web Services
adeppathondur
 
Rest api webinar(3)
WSO2
 
REST & API Management with the WSO2 ESB
WSO2
 
Want Your API to Stick? Try Story-Telling...
Pat Cappelaere
 
Webservices: The RESTful Approach
Mushfekur Rahman
 
Reaching 1 Million APIs and what to do when we get there
3scale
 
RESTFul Services, Does it Matter Anymore?
Pat Cappelaere
 
Rest introduction
William Martinez Pomares
 
Introduction to REST and Jersey
Chris Winters
 
REST Presentation
Sarwajit Kumar
 
Cwinters Intro To Rest And JerREST and Jersey Introductionsey
elliando dias
 
Building Software Backend (Web API)
Alexander Goida
 
Past, Present and Future of APIs of Mobile and Web Apps
SmartBear
 
Web APIs - Infrastructure for the (Intelligent) Programmable Web (R&D Talk)
Steven Willmott
 
Creating Restful Web Services with restish
Grig Gheorghiu
 
On being RESTful
Fabio Mancinelli
 
Http and REST APIs.
Rahul Tanwani
 
HATEOAS: The Confusing Bit from REST
elliando dias
 
What is REST?
Saeid Zebardast
 

More from Pat Cappelaere (20)

PPTX
GeoCAPE Strategies
Pat Cappelaere
 
PPTX
Open Geo-Social API (and Screencast)
Pat Cappelaere
 
PPT
GEOSS Future Products & GeoSocial API
Pat Cappelaere
 
PDF
Shoudl We Have An API Day?
Pat Cappelaere
 
PDF
Api Days Are Over
Pat Cappelaere
 
KEY
REST Level 5 - A Trek To The Summit
Pat Cappelaere
 
KEY
HyspIRI IPM Goes Social
Pat Cappelaere
 
PDF
Cathalac Story Based on Actual Data
Pat Cappelaere
 
KEY
Radarsat Facebook App Concept
Pat Cappelaere
 
KEY
Story Telling as an Activity-based Architecture
Pat Cappelaere
 
KEY
NASA SensorWeb Enterprise Services
Pat Cappelaere
 
PDF
Nasa aip5.pptx
Pat Cappelaere
 
PDF
Restful Security Requirements
Pat Cappelaere
 
PDF
Two Degrees To SensoWeb
Pat Cappelaere
 
PDF
Esip Jan 09
Pat Cappelaere
 
PDF
EO/NRE Interoperability Presentation
Pat Cappelaere
 
PDF
A RESTful WfXML
Pat Cappelaere
 
PDF
RESTful OGC Services
Pat Cappelaere
 
PDF
Geobliki: A Platform For Emergency Response
Pat Cappelaere
 
GeoCAPE Strategies
Pat Cappelaere
 
Open Geo-Social API (and Screencast)
Pat Cappelaere
 
GEOSS Future Products & GeoSocial API
Pat Cappelaere
 
Shoudl We Have An API Day?
Pat Cappelaere
 
Api Days Are Over
Pat Cappelaere
 
REST Level 5 - A Trek To The Summit
Pat Cappelaere
 
HyspIRI IPM Goes Social
Pat Cappelaere
 
Cathalac Story Based on Actual Data
Pat Cappelaere
 
Radarsat Facebook App Concept
Pat Cappelaere
 
Story Telling as an Activity-based Architecture
Pat Cappelaere
 
NASA SensorWeb Enterprise Services
Pat Cappelaere
 
Nasa aip5.pptx
Pat Cappelaere
 
Restful Security Requirements
Pat Cappelaere
 
Two Degrees To SensoWeb
Pat Cappelaere
 
Esip Jan 09
Pat Cappelaere
 
EO/NRE Interoperability Presentation
Pat Cappelaere
 
A RESTful WfXML
Pat Cappelaere
 
RESTful OGC Services
Pat Cappelaere
 
Geobliki: A Platform For Emergency Response
Pat Cappelaere
 
Ad

Recently uploaded (20)

PDF
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PDF
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
PDF
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
PDF
Français Patch Tuesday - Juillet
Ivanti
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PDF
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
PPTX
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
PPTX
Top Managed Service Providers in Los Angeles
Captain IT
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Upgrading to z_OS V2R4 Part 01 of 02.pdf
Flavio787771
 
PDF
Arcee AI - building and working with small language models (06/25)
Julien SIMON
 
PDF
Are there government-backed agri-software initiatives in Limerick.pdf
giselawagner2
 
PDF
Novus Safe Lite- What is Novus Safe Lite.pdf
Novus Hi-Tech
 
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
Français Patch Tuesday - Juillet
Ivanti
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
Top Managed Service Providers in Los Angeles
Captain IT
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Upgrading to z_OS V2R4 Part 01 of 02.pdf
Flavio787771
 
Arcee AI - building and working with small language models (06/25)
Julien SIMON
 
Are there government-backed agri-software initiatives in Limerick.pdf
giselawagner2
 
Novus Safe Lite- What is Novus Safe Lite.pdf
Novus Hi-Tech
 
Ad

Building Tomorrow's Web Services

  • 1. Building Tomorrow’s Web Services API Pat Cappelaere REST Fest 2012 The Day After... Sept 16, 2012
  • 2. Web Service API Evolution • 1990 HTTP REST Richardson Maturity Level 0/1 • 2000 Service Oriented Architecture (SOAP, WS-*) • 2010 REST Oriented Architecture • Level Richardson Maturity Level 2/3 -> Caching and HyperMedia I Think That We Are Still Heading In Wrong Direction • Next: 2015-2020??? Richardson Maturity Level 4?
  • 3. Why? •Users Do Not Care About Your Resource Model Stop CRUD •Users May Not Care About Your Link Relations Between Resources This is Your Own Plumbing It May Still Be Necessary But... •Tomorrow’s Users Of Your API Will Not Be Humans SO LONG REST AND HYPERMEDIA...??
  • 4. Tomorrow’s User •Welcome SIRI Your APP there Your User Here
  • 5. What’s Different With a User-Agent? • Has Low Bandwidth - Think 3G-4G - 1MB is a big/costly chunk • Acts on Behalf of User • Performs One or More Activities to Achieve a User Goal • Needs to be Able to Find Relevant Activities That Could Be Performed By Nearby Server(s)
  • 6. How Does A User-Agent Work? • Goal (/Preferences) Directed • Sensing • Reactive / Effective • Can Be Programmed To Act “Intelligently” • See Constrained Behavior Trees (Game AI) With Blackboard ... Executing A Specific Activity For Current Context and User Goal Goal: Enabling User Agents By Publishing The Possible Activities They Could Perform
  • 7. http://activitystrea.ms/specs/json/1.0/ What’s An Activity (Stream)? • Get/Post/Update/Delete A Document • or better... Execute/Halt/Resume/Delete a Local Process or Workflow • Examples: • Facebook Social Activity Stream aka News Feed • OGC • Process Image (WPS) • Task Satellite (SPS) • Get Observation (SOS), a Map (WMS), a Coverage (WCS), a Feature (WFS)... http://www.socialcast.com/activity-streams
  • 8. Activity Properties • [User] • Verb https://raw.github.com/activitystreams/activity-streams-verb-definition/master/activity-streams-verb-definition.txt • Object • Target • May be a Few More for Advanced/Complex Activities... • Location, Duration, Cost, Priority, Date, TimeSpan... {user} {verb} {object} [{target}]
  • 9. From Activities To Activity Streams • Once Actors Perform Many Activities, Activity Streams Can Be Generated • See: http://activitystrea.ms/specs/json/1.0/ • Our Problem is to Provide an Activity Template for Actors to Perform Activities (on Behalf of Users) • And Make them Discoverable (Activity Discovery Document???) • And Searchable by User Agents To Meet Current Needs (or Goals)
  • 10. Activity Discovery Document? User Agents Could Access It and Mine it For Activity Opportunities... Then Follow Links For Particular Activity Template
  • 11. So... • Support Auto-Discovery Of Relevant User-Agent Info • Link to Activity Description Document in End Point Page Header <link rel=‘activities’ href=‘http://www.example.com/activities’/> • Link to Activity Search Document in End Point Page Header <link rel="search" href="http://example.com/opensearchdescription.xml" type="application/opensearchdescription+xml" title="Activity Search" /> • Support Activity Search (Described in Url Template of OpenSearch Document) By Generic Search Terms or Specific Object/Verb Search template="http://example.com/?q={searchTerms}&amp; objects={objectTerms}&amp;verbs={verbs?}"/>
  • 12. Activity Template?? { "activities": { Could Easily Be Added To API Discovery Document... "process data": { https://developers.google.com/discovery/ "verb": "process", "object": { "objectType": "http://example.com/terms#data", "displayName": "data" }, "target": { "objectType": "http://example.com/terms# floodmap", "displayName": "floodmap" }, "method": { "httpMethod": "POST", "path": "/activities/1", "mediaType": "application/json", "description": "", "parameters": {...}, "response": {...}, "scopes": {...} }, ... },... } }
  • 13. So Where Are We Going? • 1990 HTTP REST Richardson Maturity Level 0/1 • 2000 Service Oriented Architecture (SOA) • SOAP, WS-* • 2010 REST Oriented Architecture (ROA) • Level Richardson Maturity Level 2/3 -> Caching and HyperMedia • Activity Oriented Architecture (AOA ?) • Level 4?
  • 14. Rationale • Once We Have An Activity-Oriented Architecture, We Ought To Be Able to Link Data and Actions • See Stu Charlton’s REST FEST Presentation • https://github.com/RESTFest/2012-greenville/blob/master/ presentation/linking%20data%20actions.pdf
  • 15. Minor Problems • Expressing Domain Specific Object/Verbs Semantics • Users do not like to express semantics • Example: • User wants to get a floodmap of Haiti (Activity) • But what’s a floodmap? • Note: There is also a huge difference between a MODIS floodmap at 250m resolution and Radarsat-2 floodmap at 4m resolution... Does it matter? There is/could be some big differences as well (data size, generation time and $$)... Hummmm! • Need Activity Aggregator ASAP ?? • PubsubHubbub?
  • 16. Feedback? • [email protected] Major Thanks To: REST FEST 2012 https://github.com/RESTFest/2012-greenville/wiki/People Activity Streams Group https://groups.google.com/forum/?fromgroups#!forum/activity-streams API-Craft Group https://groups.google.com/forum/?fromgroups#!forum/api-craft OGC REST Standards Working Group NASA SensorWeb Group

Editor's Notes