SlideShare a Scribd company logo
1 of 34
Download to read offline
I'll See You on

the Write Side of the Web
         WS-REST 2011



                            1
Introduction
• Stuart Charlton (@svrc)

• Director at Canadian Pacific Railway

• Formerly CTO of Elastra, a cloud computing product
  based on semantic web technology

• Weblog: Stu Says Stuff
  http://www.stucharlton.com/blog

• Many thanks to commenters and twitterers on this
  topic

                                                       2
Theme
• The Web Architecture has been an immense
  success...

 • ... and yet, we can do better.

• There’s a need to design the software for the
  write side of the web to scale and become
  nearly as serendipitous as the read side

 • Is this even possible? Let’s find out.


                                                  3
The Read Side

• GET                 • Atom & RSS feeds

• RDFa/Microformats   • Search

• Browsing            • Semantic Web




                                           4
The Write Side

• POST          • Facebook Status

• AtomPub       • Media Sharing

• Integration   • e-Commerce




                                    5
Why?




       6
Why?


• Growth in Centralized Services

 • e.g. Facebook




                                   7
Why?
• Systems Integration

 • Custom media types are the current approach...

 • ... but that can only be a transitory solution

 • Many “RESTful” design thrashing due to lack of
   prescriptive guidance

   • Would be reduced with more generic media
     types (e.g. as with HTML, AtomPub)
                                                    8
Why?

• REST is not CRUD (create, read, update, delete)

 • Neither is HTTP

 • POST does not map directly to ‘create’

 • CRUD leads to complexity at scale



                                                    9
Why?

• Programming models matter

 • In particular, the clientʼs model of how it interacts
   with the server

 • Process-driven? Or something else?

 • Lots of innovation in this space...


                                                           10
Theses
• The Web architecture’s core strength is in encouraging small
  pieces of independent agreement to be linked together and
  shared; we’re missing some agreements for writes

• The Web architecture encourages clients to be designed as
  agents in a dynamic information space

• There are practical approaches to programming agents in a
  dynamic environment

• It should be possible to create a general purpose media
  type for systems to manipulate state on the web, in lieu of
  more specific media types.


                                                                 11
Agreement




            12
Collaborative Systems
         Architecture
• “The greatest leverage in system architecting is at the
  interfaces. The greatest dangers are also at the interfaces.”

• “When the components of a system are highly independent,
  operationally and managerially, the architecture of the system
  is the interfaces.”
  (Maier & Rechtin, The Art of Systems Architecting)


• In Roy Speak....

• “[REST’s goals are] achieved by placing constraints on
  connector semantics where other styles have focused on
  components semantics.”



                                                                   13
Design for Serendipity

• “Chance encounters”

• Media types, link relations,
  RDFa/microformats, URI templates,
  well-known URIs, host meta, etc.




                                      14
What agreements could be helpful?

 • Link relations for POST resources

 • The effects of a POST

  • cache invalidation

  • pre/post conditions

 • The contents of a POST

  • e.g. RDF Forms


                                       15
Programming




              16
Client/Server Programming

         Invoke                Remote
                              Procedure


                               Create
      Application                          Request
       Logic &                             Message
      Exception                             Format
       Handling              New Message                Handler




                                                        (optional)
                               Handler
                                                      New Message
                                           Response
                                           Message
                                            Format


                    Client                               Server




                                                                     17
REST Raises the Level of Abstraction


• The message vs. the resource/representation

• Traditional Client/Server:
  Client is a program sending/receiving messages

• REST:
  Client is an agent acting in an information space




                                                      18
Hypermedia Programming
                               Cached                            HTTP GET
                            Representations      Sensors                      Resource


        Goals &                                 State of the
      Preferences                             application now                 Resource


                                                                              Resource
                     Representation
                         Logic

  Modify                                         Choose                       Resource
                    e.g. Link relations,
  Goals                                        Desired State
                        Media type
                      specifications,
                    pre/post conditions



       Exception                              Transfer Desired
       Handlers                                    State
                           Runtime Events

                                                 Effectors                    Resource
                                                                 HTTP POST

                                                                             Environment
                          Hypermedia Agent                                    (The Web)


                                                                                           19
Qualities of the Client
• Goal-Directed

• Reactive

• Hypermedia workspace
  (cached representations)

• Sensing can be done to pick up on effects



                                              20
Agents




         21
Agent
• Traditional agents are distinguished from
  mere programs via...

 • The existence of an environment it needs
   to react to

 • The autonomy for the agent to make
   detailed decisions for the user so long as it
   is seeking to achieve a goal


                                                   22
The AI approach to Agents

• Automated Planning

  • A process to determine an order of actions to be
    taken in pursuit of a goal

Current state of the world
Description of actions       Planner   Required actions (plan)
Goals and constraints



                                                                 23
Example of Planning

                                                          Download package list
                            Install Z
       Download X
                                     Upgrade Z
                      Install X
                                                 Download Y           Download X
        Download Z
                                     Upgrade X
         Download package list                    Install Y
Download Y
                Install X         Install Y


             Upgrade Y                                        Install X




                                                          Plan
      Set of all available actions                   (selected and
                                                    ordered actions)




                                                                                   24
Step 1                  Step 2          Step n          Result
                                                                 15 /32



     An Alternative Approach
• Subsumption Architecture;
  aka. Hierarchical State Machines
                   Development by subsumption

     Situation n                                              STAGE n     !"
         ………




                                                               …
                                                                               SYSTEM

     Situation 2                              STAGE 2    !"   STAGE 2     !"




     Situation 1              STAGE 1    !"   STAGE 1    !"    STAGE 1
                                                                          !"



                   0   time
                               Step 1          Step 2    …     Step n           Result
                                                                                 15 /32




                                                                                          25
Programming by
        Difference
• Coined by Miro Samek

• State nesting lets you define a new state
  rapidly in terms of an old one, by reusing
  semantics from the parent

• Reuse what is common, override what is not




                                               26
States in the Halo 2 Game Engine




                                   27
Agreements as a State Sandwich


               Application State Machine!



          Hypermedia Application State Machine!


                   HTTP State Machine!


             Media State Machine!
                                    ...!




                                                  28
Media Type




             29
Mapping Nested State Transitions
        to Restbucks




                                   30
State Chart XML
• Promising W3C Draft; Hierarchical FSMs; JavaScript Code-on-Demand,
  Expressions (Pre/Post Conditions), Event Model

• Weaknesses: Lacks Hyperlinks, Mandates Heavyweight Message Format
  <state id="S" initial="s1">
     <state id="s1" initial="s11">
        <onexit>
           <log expr="'leaving s1'"/>
       </onexit>

       <state id="s11">
          <onexit>
             <log expr="'leaving s11'"/>
          </onexit>
       </state>

       <transition event="e" target="s21">
           <log expr="'executing transition'"/>
       </transition>
     </state>
  </state>




                                                                       31
Possible Characteristics

• JSON-based (and/or JS code on demand)

• Link relations for states, events, and
  transitions

• Events become identifiable elements of some
  representations




                                               32
Behave: A JavaScript
State-Aware User Agent

• Implemented in node.js

• JSON-based linked state machines

• First release in May 2011




                                     33
Revisiting the Theses
• Agreements: The effects of a POST in context to other
  representations

• Programming: Instead of a RESTful client library, aim for
  an agent runtime

• Agents: Hierarchical state machines are promising
  today; hierarchical planning with sensing is a promising
  thread for research

• Media Type: Link relations for states and their transitions;
  the ability to nest states & transitions via hyperlinks


                                                                 34

More Related Content

What's hot

Complex Er[jl]ang Processing with StreamBase
Complex Er[jl]ang Processing with StreamBaseComplex Er[jl]ang Processing with StreamBase
Complex Er[jl]ang Processing with StreamBasedarach
 
A Taste Of InfoGrid
A Taste Of InfoGridA Taste Of InfoGrid
A Taste Of InfoGridInfoGrid.org
 
PRESENTATION: Tips and Tricks for Government Agencies to Push the Limits of P...
PRESENTATION: Tips and Tricks for Government Agencies to Push the Limits of P...PRESENTATION: Tips and Tricks for Government Agencies to Push the Limits of P...
PRESENTATION: Tips and Tricks for Government Agencies to Push the Limits of P...Adlib - The PDF Experts
 
Data distribution in the cloud with Node.js
Data distribution in the cloud with Node.jsData distribution in the cloud with Node.js
Data distribution in the cloud with Node.jsdarach
 
Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01jgregory1234
 
TIG sharepoint for Knowledge managment
TIG sharepoint for Knowledge managmentTIG sharepoint for Knowledge managment
TIG sharepoint for Knowledge managmentBrian Rowe
 
Facebook Architecture - Breaking it Open
Facebook Architecture - Breaking it OpenFacebook Architecture - Breaking it Open
Facebook Architecture - Breaking it OpenHARMAN Services
 
Make Your Business More Flexible with Scalable Business Process Management So...
Make Your Business More Flexible with Scalable Business Process Management So...Make Your Business More Flexible with Scalable Business Process Management So...
Make Your Business More Flexible with Scalable Business Process Management So...Perficient, Inc.
 

What's hot (10)

Complex Er[jl]ang Processing with StreamBase
Complex Er[jl]ang Processing with StreamBaseComplex Er[jl]ang Processing with StreamBase
Complex Er[jl]ang Processing with StreamBase
 
A Taste Of InfoGrid
A Taste Of InfoGridA Taste Of InfoGrid
A Taste Of InfoGrid
 
PRESENTATION: Tips and Tricks for Government Agencies to Push the Limits of P...
PRESENTATION: Tips and Tricks for Government Agencies to Push the Limits of P...PRESENTATION: Tips and Tricks for Government Agencies to Push the Limits of P...
PRESENTATION: Tips and Tricks for Government Agencies to Push the Limits of P...
 
2012 06 hortonworks paris hug
2012 06 hortonworks paris hug2012 06 hortonworks paris hug
2012 06 hortonworks paris hug
 
Data distribution in the cloud with Node.js
Data distribution in the cloud with Node.jsData distribution in the cloud with Node.js
Data distribution in the cloud with Node.js
 
Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01Qcon 090408233824-phpapp01
Qcon 090408233824-phpapp01
 
Qcon
QconQcon
Qcon
 
TIG sharepoint for Knowledge managment
TIG sharepoint for Knowledge managmentTIG sharepoint for Knowledge managment
TIG sharepoint for Knowledge managment
 
Facebook Architecture - Breaking it Open
Facebook Architecture - Breaking it OpenFacebook Architecture - Breaking it Open
Facebook Architecture - Breaking it Open
 
Make Your Business More Flexible with Scalable Business Process Management So...
Make Your Business More Flexible with Scalable Business Process Management So...Make Your Business More Flexible with Scalable Business Process Management So...
Make Your Business More Flexible with Scalable Business Process Management So...
 

Similar to I'll See You On the Write Side of the Web

Integrated Services for Web Applications
Integrated Services for Web ApplicationsIntegrated Services for Web Applications
Integrated Services for Web ApplicationsSaltmarch Media
 
Transforming Software Architecture for the 21st Century (September 2009)
Transforming Software Architecture for the 21st Century (September 2009)Transforming Software Architecture for the 21st Century (September 2009)
Transforming Software Architecture for the 21st Century (September 2009)Dion Hinchcliffe
 
Codestrong 2012 breakout session the role of cloud services in your next ge...
Codestrong 2012 breakout session   the role of cloud services in your next ge...Codestrong 2012 breakout session   the role of cloud services in your next ge...
Codestrong 2012 breakout session the role of cloud services in your next ge...Axway Appcelerator
 
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)Saltlux zinyus
 
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)zinyus
 
A Morning with MongoDB - Helsinki
A Morning with MongoDB - HelsinkiA Morning with MongoDB - Helsinki
A Morning with MongoDB - HelsinkiMongoDB
 
Wikidsmart PM: Requirements Management within Confluence, Integrated with JIRA
Wikidsmart PM: Requirements Management within Confluence, Integrated with JIRAWikidsmart PM: Requirements Management within Confluence, Integrated with JIRA
Wikidsmart PM: Requirements Management within Confluence, Integrated with JIRAzAgile
 
Hibernate basics
Hibernate basicsHibernate basics
Hibernate basicsAathikaJava
 
Java Hibernate Basics
Java Hibernate BasicsJava Hibernate Basics
Java Hibernate BasicsDeeptiJava
 
zAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.pptzAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.pptOpenStack Foundation
 
Achieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.pptAchieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.pptOpenStack Foundation
 
Morningwithmongodbisrael 121217184113-phpapp02
Morningwithmongodbisrael 121217184113-phpapp02Morningwithmongodbisrael 121217184113-phpapp02
Morningwithmongodbisrael 121217184113-phpapp02Andrei Colta
 
mongoDB: Driving a data revolution
mongoDB: Driving a data revolutionmongoDB: Driving a data revolution
mongoDB: Driving a data revolutionMongoDB
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework EngineeringYoungSu Son
 
AvePoint - SharePoint App Lifecycle Mgmnt
AvePoint - SharePoint App Lifecycle MgmntAvePoint - SharePoint App Lifecycle Mgmnt
AvePoint - SharePoint App Lifecycle MgmntMary Leigh Mackie
 
Kognitio overview jan 2013
Kognitio overview jan 2013Kognitio overview jan 2013
Kognitio overview jan 2013Kognitio
 

Similar to I'll See You On the Write Side of the Web (20)

Integrated Services for Web Applications
Integrated Services for Web ApplicationsIntegrated Services for Web Applications
Integrated Services for Web Applications
 
Android IPC Mechanism
Android IPC MechanismAndroid IPC Mechanism
Android IPC Mechanism
 
Highlights from SharePoint Conference 2011
Highlights from SharePoint Conference 2011Highlights from SharePoint Conference 2011
Highlights from SharePoint Conference 2011
 
Transforming Software Architecture for the 21st Century (September 2009)
Transforming Software Architecture for the 21st Century (September 2009)Transforming Software Architecture for the 21st Century (September 2009)
Transforming Software Architecture for the 21st Century (September 2009)
 
Codestrong 2012 breakout session the role of cloud services in your next ge...
Codestrong 2012 breakout session   the role of cloud services in your next ge...Codestrong 2012 breakout session   the role of cloud services in your next ge...
Codestrong 2012 breakout session the role of cloud services in your next ge...
 
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
 
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
 
A Morning with MongoDB - Helsinki
A Morning with MongoDB - HelsinkiA Morning with MongoDB - Helsinki
A Morning with MongoDB - Helsinki
 
Evolutionary Design Solid
Evolutionary Design SolidEvolutionary Design Solid
Evolutionary Design Solid
 
IT Governance Portals
IT Governance   PortalsIT Governance   Portals
IT Governance Portals
 
Wikidsmart PM: Requirements Management within Confluence, Integrated with JIRA
Wikidsmart PM: Requirements Management within Confluence, Integrated with JIRAWikidsmart PM: Requirements Management within Confluence, Integrated with JIRA
Wikidsmart PM: Requirements Management within Confluence, Integrated with JIRA
 
Hibernate basics
Hibernate basicsHibernate basics
Hibernate basics
 
Java Hibernate Basics
Java Hibernate BasicsJava Hibernate Basics
Java Hibernate Basics
 
zAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.pptzAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.ppt
 
Achieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.pptAchieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.ppt
 
Morningwithmongodbisrael 121217184113-phpapp02
Morningwithmongodbisrael 121217184113-phpapp02Morningwithmongodbisrael 121217184113-phpapp02
Morningwithmongodbisrael 121217184113-phpapp02
 
mongoDB: Driving a data revolution
mongoDB: Driving a data revolutionmongoDB: Driving a data revolution
mongoDB: Driving a data revolution
 
Framework Engineering
Framework EngineeringFramework Engineering
Framework Engineering
 
AvePoint - SharePoint App Lifecycle Mgmnt
AvePoint - SharePoint App Lifecycle MgmntAvePoint - SharePoint App Lifecycle Mgmnt
AvePoint - SharePoint App Lifecycle Mgmnt
 
Kognitio overview jan 2013
Kognitio overview jan 2013Kognitio overview jan 2013
Kognitio overview jan 2013
 

More from Stuart Charlton

Applied tactics for your transformation
Applied tactics for your transformationApplied tactics for your transformation
Applied tactics for your transformationStuart Charlton
 
Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016Stuart Charlton
 
Platform Clouds, Containers, Immutable Infrastructure Oh My!
Platform Clouds, Containers, Immutable Infrastructure Oh My!Platform Clouds, Containers, Immutable Infrastructure Oh My!
Platform Clouds, Containers, Immutable Infrastructure Oh My!Stuart Charlton
 
The Cloud Foundry Story on OpenStack
The Cloud Foundry Story on OpenStackThe Cloud Foundry Story on OpenStack
The Cloud Foundry Story on OpenStackStuart Charlton
 
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015Stuart Charlton
 
Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014
Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014
Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014Stuart Charlton
 
From Agile Development to Agile Operations (QCon SF 2009)
From Agile Development to Agile Operations (QCon SF 2009)From Agile Development to Agile Operations (QCon SF 2009)
From Agile Development to Agile Operations (QCon SF 2009)Stuart Charlton
 
Designing for the Cloud Tutorial - QCon SF 2009
Designing for the Cloud Tutorial - QCon SF 2009Designing for the Cloud Tutorial - QCon SF 2009
Designing for the Cloud Tutorial - QCon SF 2009Stuart Charlton
 
OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)
OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)
OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)Stuart Charlton
 
Software Licensing In The Cloud (CloudWorld 2009)
Software Licensing In The Cloud  (CloudWorld 2009)Software Licensing In The Cloud  (CloudWorld 2009)
Software Licensing In The Cloud (CloudWorld 2009)Stuart Charlton
 
Designing Enterprise IT Systems with REST - QCon San Francisco 2008
Designing Enterprise IT Systems with REST - QCon San Francisco 2008Designing Enterprise IT Systems with REST - QCon San Francisco 2008
Designing Enterprise IT Systems with REST - QCon San Francisco 2008Stuart Charlton
 
Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...
Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...
Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...Stuart Charlton
 
Cloud Computing for Developers and Architects - QCon 2008 Tutorial
Cloud Computing for Developers and Architects - QCon 2008 TutorialCloud Computing for Developers and Architects - QCon 2008 Tutorial
Cloud Computing for Developers and Architects - QCon 2008 TutorialStuart Charlton
 
Oopsla 2007 - The Web: Distributed Objects Realized!
Oopsla 2007 - The Web: Distributed Objects Realized!Oopsla 2007 - The Web: Distributed Objects Realized!
Oopsla 2007 - The Web: Distributed Objects Realized!Stuart Charlton
 

More from Stuart Charlton (14)

Applied tactics for your transformation
Applied tactics for your transformationApplied tactics for your transformation
Applied tactics for your transformation
 
Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016Cloud Foundry Vancouver Meetup July 2016
Cloud Foundry Vancouver Meetup July 2016
 
Platform Clouds, Containers, Immutable Infrastructure Oh My!
Platform Clouds, Containers, Immutable Infrastructure Oh My!Platform Clouds, Containers, Immutable Infrastructure Oh My!
Platform Clouds, Containers, Immutable Infrastructure Oh My!
 
The Cloud Foundry Story on OpenStack
The Cloud Foundry Story on OpenStackThe Cloud Foundry Story on OpenStack
The Cloud Foundry Story on OpenStack
 
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
Deploying to Production 50+ Times a Day - Calgary Agile Users Group 2015
 
Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014
Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014
Speeding up enterprises, one deploy at a time - Devopsdays Toronto 2014
 
From Agile Development to Agile Operations (QCon SF 2009)
From Agile Development to Agile Operations (QCon SF 2009)From Agile Development to Agile Operations (QCon SF 2009)
From Agile Development to Agile Operations (QCon SF 2009)
 
Designing for the Cloud Tutorial - QCon SF 2009
Designing for the Cloud Tutorial - QCon SF 2009Designing for the Cloud Tutorial - QCon SF 2009
Designing for the Cloud Tutorial - QCon SF 2009
 
OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)
OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)
OOPSLA Cloud Workshop - Designing for the Cloud (Elastra)
 
Software Licensing In The Cloud (CloudWorld 2009)
Software Licensing In The Cloud  (CloudWorld 2009)Software Licensing In The Cloud  (CloudWorld 2009)
Software Licensing In The Cloud (CloudWorld 2009)
 
Designing Enterprise IT Systems with REST - QCon San Francisco 2008
Designing Enterprise IT Systems with REST - QCon San Francisco 2008Designing Enterprise IT Systems with REST - QCon San Francisco 2008
Designing Enterprise IT Systems with REST - QCon San Francisco 2008
 
Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...
Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...
Cloud Computing and the Next-Generation of Enterprise Architecture - Cloud Co...
 
Cloud Computing for Developers and Architects - QCon 2008 Tutorial
Cloud Computing for Developers and Architects - QCon 2008 TutorialCloud Computing for Developers and Architects - QCon 2008 Tutorial
Cloud Computing for Developers and Architects - QCon 2008 Tutorial
 
Oopsla 2007 - The Web: Distributed Objects Realized!
Oopsla 2007 - The Web: Distributed Objects Realized!Oopsla 2007 - The Web: Distributed Objects Realized!
Oopsla 2007 - The Web: Distributed Objects Realized!
 

Recently uploaded

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

I'll See You On the Write Side of the Web

  • 1. I'll See You on the Write Side of the Web WS-REST 2011 1
  • 2. Introduction • Stuart Charlton (@svrc) • Director at Canadian Pacific Railway • Formerly CTO of Elastra, a cloud computing product based on semantic web technology • Weblog: Stu Says Stuff http://www.stucharlton.com/blog • Many thanks to commenters and twitterers on this topic 2
  • 3. Theme • The Web Architecture has been an immense success... • ... and yet, we can do better. • There’s a need to design the software for the write side of the web to scale and become nearly as serendipitous as the read side • Is this even possible? Let’s find out. 3
  • 4. The Read Side • GET • Atom & RSS feeds • RDFa/Microformats • Search • Browsing • Semantic Web 4
  • 5. The Write Side • POST • Facebook Status • AtomPub • Media Sharing • Integration • e-Commerce 5
  • 6. Why? 6
  • 7. Why? • Growth in Centralized Services • e.g. Facebook 7
  • 8. Why? • Systems Integration • Custom media types are the current approach... • ... but that can only be a transitory solution • Many “RESTful” design thrashing due to lack of prescriptive guidance • Would be reduced with more generic media types (e.g. as with HTML, AtomPub) 8
  • 9. Why? • REST is not CRUD (create, read, update, delete) • Neither is HTTP • POST does not map directly to ‘create’ • CRUD leads to complexity at scale 9
  • 10. Why? • Programming models matter • In particular, the clientʼs model of how it interacts with the server • Process-driven? Or something else? • Lots of innovation in this space... 10
  • 11. Theses • The Web architecture’s core strength is in encouraging small pieces of independent agreement to be linked together and shared; we’re missing some agreements for writes • The Web architecture encourages clients to be designed as agents in a dynamic information space • There are practical approaches to programming agents in a dynamic environment • It should be possible to create a general purpose media type for systems to manipulate state on the web, in lieu of more specific media types. 11
  • 12. Agreement 12
  • 13. Collaborative Systems Architecture • “The greatest leverage in system architecting is at the interfaces. The greatest dangers are also at the interfaces.” • “When the components of a system are highly independent, operationally and managerially, the architecture of the system is the interfaces.” (Maier & Rechtin, The Art of Systems Architecting) • In Roy Speak.... • “[REST’s goals are] achieved by placing constraints on connector semantics where other styles have focused on components semantics.” 13
  • 14. Design for Serendipity • “Chance encounters” • Media types, link relations, RDFa/microformats, URI templates, well-known URIs, host meta, etc. 14
  • 15. What agreements could be helpful? • Link relations for POST resources • The effects of a POST • cache invalidation • pre/post conditions • The contents of a POST • e.g. RDF Forms 15
  • 17. Client/Server Programming Invoke Remote Procedure Create Application Request Logic & Message Exception Format Handling New Message Handler (optional) Handler New Message Response Message Format Client Server 17
  • 18. REST Raises the Level of Abstraction • The message vs. the resource/representation • Traditional Client/Server: Client is a program sending/receiving messages • REST: Client is an agent acting in an information space 18
  • 19. Hypermedia Programming Cached HTTP GET Representations Sensors Resource Goals & State of the Preferences application now Resource Resource Representation Logic Modify Choose Resource e.g. Link relations, Goals Desired State Media type specifications, pre/post conditions Exception Transfer Desired Handlers State Runtime Events Effectors Resource HTTP POST Environment Hypermedia Agent (The Web) 19
  • 20. Qualities of the Client • Goal-Directed • Reactive • Hypermedia workspace (cached representations) • Sensing can be done to pick up on effects 20
  • 21. Agents 21
  • 22. Agent • Traditional agents are distinguished from mere programs via... • The existence of an environment it needs to react to • The autonomy for the agent to make detailed decisions for the user so long as it is seeking to achieve a goal 22
  • 23. The AI approach to Agents • Automated Planning • A process to determine an order of actions to be taken in pursuit of a goal Current state of the world Description of actions Planner Required actions (plan) Goals and constraints 23
  • 24. Example of Planning Download package list Install Z Download X Upgrade Z Install X Download Y Download X Download Z Upgrade X Download package list Install Y Download Y Install X Install Y Upgrade Y Install X Plan Set of all available actions (selected and ordered actions) 24
  • 25. Step 1 Step 2 Step n Result 15 /32 An Alternative Approach • Subsumption Architecture; aka. Hierarchical State Machines Development by subsumption Situation n STAGE n !" ……… … SYSTEM Situation 2 STAGE 2 !" STAGE 2 !" Situation 1 STAGE 1 !" STAGE 1 !" STAGE 1 !" 0 time Step 1 Step 2 … Step n Result 15 /32 25
  • 26. Programming by Difference • Coined by Miro Samek • State nesting lets you define a new state rapidly in terms of an old one, by reusing semantics from the parent • Reuse what is common, override what is not 26
  • 27. States in the Halo 2 Game Engine 27
  • 28. Agreements as a State Sandwich Application State Machine! Hypermedia Application State Machine! HTTP State Machine! Media State Machine! ...! 28
  • 30. Mapping Nested State Transitions to Restbucks 30
  • 31. State Chart XML • Promising W3C Draft; Hierarchical FSMs; JavaScript Code-on-Demand, Expressions (Pre/Post Conditions), Event Model • Weaknesses: Lacks Hyperlinks, Mandates Heavyweight Message Format <state id="S" initial="s1"> <state id="s1" initial="s11"> <onexit> <log expr="'leaving s1'"/> </onexit> <state id="s11"> <onexit> <log expr="'leaving s11'"/> </onexit> </state> <transition event="e" target="s21"> <log expr="'executing transition'"/> </transition> </state> </state> 31
  • 32. Possible Characteristics • JSON-based (and/or JS code on demand) • Link relations for states, events, and transitions • Events become identifiable elements of some representations 32
  • 33. Behave: A JavaScript State-Aware User Agent • Implemented in node.js • JSON-based linked state machines • First release in May 2011 33
  • 34. Revisiting the Theses • Agreements: The effects of a POST in context to other representations • Programming: Instead of a RESTful client library, aim for an agent runtime • Agents: Hierarchical state machines are promising today; hierarchical planning with sensing is a promising thread for research • Media Type: Link relations for states and their transitions; the ability to nest states & transitions via hyperlinks 34