Building Tomorrow's Web Services

Posted by Patrice Cappelaere Mon, 17 Sep 2012 13:06:00 GMT

After three days in Greenville, SC, at the REST FEST 2012, it finally dawned on me that the web services we are building today will not meet the needs of tomorrow’s users.
Actually, the primary users of your web site will not even be human. They are more likely to be user-agents that will interact with many services on your behalf.  Those user agents may be embedded in your iPhone or IPAD.  They already are to some extent (Think SIRI).

Web interactions are changing.  You will not browse a web site directly and download content anymore.  An agent will do that on your behalf but only under some very specific conditions.  It will have to find that site or rather its offerings and but only if they match your needs. 

How will that work?

At the highest level, you may have a need that you want to fulfill.  This need or goal might breakdown in many activity sequences depending on the choices you may be able to make (based on availability and constraints).  Your agent needs to crawl the web and find what’s avtoailable.  Choices can then be made (by the agent or yourself), activities executed and goal be met.

From an API standpoint, enterprise services need to evolve to that model.  We simply cannot resort to publishing resources and use hypermedia (Resource Oriented architecture using REST) as conceived more than 12 years ago by Roy Fielding.  This is unlikely to work unless it matches what the agent is looking for.

As an example, this is a salient problem for NASA.  How to match NASA resources and assets to user needs?

NASA may make MODIS/RADARSAT data available on a web site but how does this match a user need?
User does not know MODIS or RADARSAT.
User wants to perform an activity: {verb} {object} {target}
> get floodmap of Haiti

More advanced science users may something more specific:
> get "radarsat-2 ortho-rectified raw data" of Haiti

User-agents of all kinds will need to be able to find and retrieve activities that the site can perform.

This is basically what I am trying to describe here:


Let’s work towards an Activity-Oriented Architecture rather than publish resources and links.


Leave a comment