SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler 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

Mais conteúdo relacionado

Destaque

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
 

Destaque (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
 

Mais de 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
 

Mais de 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...
 

Último

2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 

Último (20)

2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 

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