SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Andere mochten auch

6 Months Project Training in PHP
6 Months Project Training in PHP6 Months Project Training in PHP
6 Months Project Training in PHPTech Mentro
 
Nanobiomed 2011 Sabatier Mangematin Public
Nanobiomed 2011 Sabatier Mangematin PublicNanobiomed 2011 Sabatier Mangematin Public
Nanobiomed 2011 Sabatier Mangematin Publicvalerie_sabatier
 
What Writers Don’t Know About Translation Can Be Costly
What Writers Don’t Know About Translation Can Be CostlyWhat Writers Don’t Know About Translation Can Be Costly
What Writers Don’t Know About Translation Can Be CostlySTC-Philadelphia Metro Chapter
 
MoP quick guide
MoP quick guide MoP quick guide
MoP quick guide Maven
 
Wpływ synergii działań SEO/PPC i email marketingu na przychody w sklepie inte...
Wpływ synergii działań SEO/PPC i email marketingu na przychody w sklepie inte...Wpływ synergii działań SEO/PPC i email marketingu na przychody w sklepie inte...
Wpływ synergii działań SEO/PPC i email marketingu na przychody w sklepie inte...SEOgroup
 
Sample of product development
Sample of product developmentSample of product development
Sample of product developmentTransit-Protect
 
Moving Beyond Help: Transforming Yourself into Writing Corporate Strategy
Moving Beyond Help: Transforming Yourself into Writing Corporate StrategyMoving Beyond Help: Transforming Yourself into Writing Corporate Strategy
Moving Beyond Help: Transforming Yourself into Writing Corporate StrategySTC-Philadelphia Metro Chapter
 
Personas: Designing Engaging Content for Customer Intimacy
Personas: Designing Engaging Content for Customer IntimacyPersonas: Designing Engaging Content for Customer Intimacy
Personas: Designing Engaging Content for Customer IntimacySTC-Philadelphia Metro Chapter
 
11기획b 이재용 내가 가장 공들인 캐릭터
11기획b 이재용 내가 가장 공들인 캐릭터11기획b 이재용 내가 가장 공들인 캐릭터
11기획b 이재용 내가 가장 공들인 캐릭터qwee998
 
Using Social Media to Automate Information for Reuse and Repurpose
Using Social Media to Automate Information for Reuse and RepurposeUsing Social Media to Automate Information for Reuse and Repurpose
Using Social Media to Automate Information for Reuse and RepurposeSTC-Philadelphia Metro Chapter
 
02k activeand passivevoiceoffice2003-1
02k activeand passivevoiceoffice2003-102k activeand passivevoiceoffice2003-1
02k activeand passivevoiceoffice2003-1JANA CIOBANU
 
APIs and SDKs: Breaking into and Succeeding in a Specialty Market
APIs and SDKs: Breaking into and Succeeding in a Specialty MarketAPIs and SDKs: Breaking into and Succeeding in a Specialty Market
APIs and SDKs: Breaking into and Succeeding in a Specialty MarketSTC-Philadelphia Metro Chapter
 
Banff Gondola Brochure Reading Skill Building
Banff Gondola Brochure Reading Skill BuildingBanff Gondola Brochure Reading Skill Building
Banff Gondola Brochure Reading Skill BuildingJANA CIOBANU
 

Andere mochten auch (20)

6 Months Project Training in PHP
6 Months Project Training in PHP6 Months Project Training in PHP
6 Months Project Training in PHP
 
Nanobiomed 2011 Sabatier Mangematin Public
Nanobiomed 2011 Sabatier Mangematin PublicNanobiomed 2011 Sabatier Mangematin Public
Nanobiomed 2011 Sabatier Mangematin Public
 
What Writers Don’t Know About Translation Can Be Costly
What Writers Don’t Know About Translation Can Be CostlyWhat Writers Don’t Know About Translation Can Be Costly
What Writers Don’t Know About Translation Can Be Costly
 
MoP quick guide
MoP quick guide MoP quick guide
MoP quick guide
 
Currency book
Currency bookCurrency book
Currency book
 
Wpływ synergii działań SEO/PPC i email marketingu na przychody w sklepie inte...
Wpływ synergii działań SEO/PPC i email marketingu na przychody w sklepie inte...Wpływ synergii działań SEO/PPC i email marketingu na przychody w sklepie inte...
Wpływ synergii działań SEO/PPC i email marketingu na przychody w sklepie inte...
 
Inicio unidad narrativa
Inicio unidad narrativaInicio unidad narrativa
Inicio unidad narrativa
 
Sample of product development
Sample of product developmentSample of product development
Sample of product development
 
Sandton Post Zomer 2011
Sandton Post Zomer 2011Sandton Post Zomer 2011
Sandton Post Zomer 2011
 
Moving Beyond Help: Transforming Yourself into Writing Corporate Strategy
Moving Beyond Help: Transforming Yourself into Writing Corporate StrategyMoving Beyond Help: Transforming Yourself into Writing Corporate Strategy
Moving Beyond Help: Transforming Yourself into Writing Corporate Strategy
 
STC PMC Newsletter 2011-03
STC PMC Newsletter 2011-03STC PMC Newsletter 2011-03
STC PMC Newsletter 2011-03
 
Frase maleïda
Frase maleïdaFrase maleïda
Frase maleïda
 
Personas: Designing Engaging Content for Customer Intimacy
Personas: Designing Engaging Content for Customer IntimacyPersonas: Designing Engaging Content for Customer Intimacy
Personas: Designing Engaging Content for Customer Intimacy
 
11기획b 이재용 내가 가장 공들인 캐릭터
11기획b 이재용 내가 가장 공들인 캐릭터11기획b 이재용 내가 가장 공들인 캐릭터
11기획b 이재용 내가 가장 공들인 캐릭터
 
International Issues in Case Studies
International Issues in Case StudiesInternational Issues in Case Studies
International Issues in Case Studies
 
Using Social Media to Automate Information for Reuse and Repurpose
Using Social Media to Automate Information for Reuse and RepurposeUsing Social Media to Automate Information for Reuse and Repurpose
Using Social Media to Automate Information for Reuse and Repurpose
 
02k activeand passivevoiceoffice2003-1
02k activeand passivevoiceoffice2003-102k activeand passivevoiceoffice2003-1
02k activeand passivevoiceoffice2003-1
 
APIs and SDKs: Breaking into and Succeeding in a Specialty Market
APIs and SDKs: Breaking into and Succeeding in a Specialty MarketAPIs and SDKs: Breaking into and Succeeding in a Specialty Market
APIs and SDKs: Breaking into and Succeeding in a Specialty Market
 
Banff Gondola Brochure Reading Skill Building
Banff Gondola Brochure Reading Skill BuildingBanff Gondola Brochure Reading Skill Building
Banff Gondola Brochure Reading Skill Building
 
2016 Conduit Program
2016 Conduit Program2016 Conduit Program
2016 Conduit Program
 

Mehr von ruyalarcon

Wsrest13 gilherme keynote
Wsrest13 gilherme keynoteWsrest13 gilherme keynote
Wsrest13 gilherme keynoteruyalarcon
 
A Framework for Self-descriptive RESTful Services
A Framework for Self-descriptive RESTful ServicesA Framework for Self-descriptive RESTful Services
A Framework for Self-descriptive RESTful Servicesruyalarcon
 
Distributed affordance: An Open-World Assumption for Hypermedia
Distributed affordance: An Open-World Assumption for HypermediaDistributed affordance: An Open-World Assumption for Hypermedia
Distributed affordance: An Open-World Assumption for Hypermediaruyalarcon
 
Teaching Old Services New Tricks: Adding HATEOAS Support as an Afterthought
Teaching Old Services New Tricks: Adding HATEOAS Support as an AfterthoughtTeaching Old Services New Tricks: Adding HATEOAS Support as an Afterthought
Teaching Old Services New Tricks: Adding HATEOAS Support as an Afterthoughtruyalarcon
 
Modeling RESTful applications
Modeling RESTful applicationsModeling RESTful applications
Modeling RESTful applicationsruyalarcon
 
A Resource Oriented Framework for Context-Aware Enterprise Applications
A Resource Oriented Framework for Context-Aware Enterprise ApplicationsA Resource Oriented Framework for Context-Aware Enterprise Applications
A Resource Oriented Framework for Context-Aware Enterprise Applicationsruyalarcon
 
XML Technologies for RESTful Services Development
XML Technologies for RESTful Services DevelopmentXML Technologies for RESTful Services Development
XML Technologies for RESTful Services Developmentruyalarcon
 
RestFS: Resources and Services are Filesystems, Too
RestFS: Resources and Services are Filesystems, TooRestFS: Resources and Services are Filesystems, Too
RestFS: Resources and Services are Filesystems, Tooruyalarcon
 
Hecate, Managing Authorization with RESTful XML
Hecate, Managing Authorization with RESTful XMLHecate, Managing Authorization with RESTful XML
Hecate, Managing Authorization with RESTful XMLruyalarcon
 
A Framework for Obligation Fulfillment in REST Services
A Framework for Obligation Fulfillment in REST ServicesA Framework for Obligation Fulfillment in REST Services
A Framework for Obligation Fulfillment in REST Servicesruyalarcon
 
REST and Linked Data: a match made for domain driven development?
REST and Linked Data: a match made for domain driven development?REST and Linked Data: a match made for domain driven development?
REST and Linked Data: a match made for domain driven development?ruyalarcon
 
Fulfilling the Hypermedia Constraint via HTTP OPTIONS, The HTTP Vocabulary In...
Fulfilling the Hypermedia Constraint via HTTP OPTIONS, The HTTP Vocabulary In...Fulfilling the Hypermedia Constraint via HTTP OPTIONS, The HTTP Vocabulary In...
Fulfilling the Hypermedia Constraint via HTTP OPTIONS, The HTTP Vocabulary In...ruyalarcon
 

Mehr von ruyalarcon (13)

Wsrest13 gilherme keynote
Wsrest13 gilherme keynoteWsrest13 gilherme keynote
Wsrest13 gilherme keynote
 
A Framework for Self-descriptive RESTful Services
A Framework for Self-descriptive RESTful ServicesA Framework for Self-descriptive RESTful Services
A Framework for Self-descriptive RESTful Services
 
Distributed affordance: An Open-World Assumption for Hypermedia
Distributed affordance: An Open-World Assumption for HypermediaDistributed affordance: An Open-World Assumption for Hypermedia
Distributed affordance: An Open-World Assumption for Hypermedia
 
Teaching Old Services New Tricks: Adding HATEOAS Support as an Afterthought
Teaching Old Services New Tricks: Adding HATEOAS Support as an AfterthoughtTeaching Old Services New Tricks: Adding HATEOAS Support as an Afterthought
Teaching Old Services New Tricks: Adding HATEOAS Support as an Afterthought
 
Modeling RESTful applications
Modeling RESTful applicationsModeling RESTful applications
Modeling RESTful applications
 
A Resource Oriented Framework for Context-Aware Enterprise Applications
A Resource Oriented Framework for Context-Aware Enterprise ApplicationsA Resource Oriented Framework for Context-Aware Enterprise Applications
A Resource Oriented Framework for Context-Aware Enterprise Applications
 
XML Technologies for RESTful Services Development
XML Technologies for RESTful Services DevelopmentXML Technologies for RESTful Services Development
XML Technologies for RESTful Services Development
 
RestFS: Resources and Services are Filesystems, Too
RestFS: Resources and Services are Filesystems, TooRestFS: Resources and Services are Filesystems, Too
RestFS: Resources and Services are Filesystems, Too
 
Hecate, Managing Authorization with RESTful XML
Hecate, Managing Authorization with RESTful XMLHecate, Managing Authorization with RESTful XML
Hecate, Managing Authorization with RESTful XML
 
A Framework for Obligation Fulfillment in REST Services
A Framework for Obligation Fulfillment in REST ServicesA Framework for Obligation Fulfillment in REST Services
A Framework for Obligation Fulfillment in REST Services
 
REST and Linked Data: a match made for domain driven development?
REST and Linked Data: a match made for domain driven development?REST and Linked Data: a match made for domain driven development?
REST and Linked Data: a match made for domain driven development?
 
S1 intro
S1 introS1 intro
S1 intro
 
Fulfilling the Hypermedia Constraint via HTTP OPTIONS, The HTTP Vocabulary In...
Fulfilling the Hypermedia Constraint via HTTP OPTIONS, The HTTP Vocabulary In...Fulfilling the Hypermedia Constraint via HTTP OPTIONS, The HTTP Vocabulary In...
Fulfilling the Hypermedia Constraint via HTTP OPTIONS, The HTTP Vocabulary In...
 

Kürzlich hochgeladen

Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 

Kürzlich hochgeladen (20)

Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 

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