the write side of the web
play

the Write Side of the Web WS-REST 2011 1 Introduction Stuart - PowerPoint PPT Presentation

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


  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

  16. Programming 16

  17. Client/Server Programming Remote Invoke 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 Resource Preferences application now Resource Representation Logic Choose Resource Modify e.g. Link relations, Desired State Goals Media type specifications, pre/post conditions Exception Transfer Desired Handlers State Runtime Events Resource Effectors HTTP POST Environment (The Web) Hypermedia Agent 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 Required actions (plan) Description of actions Planner 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 Y Install X Install X Upgrade Y Plan Set of all available actions (selected and ordered actions) 24

  25. … 0 Step 1 Step 2 Step n Result 15 /32 An Alternative Approach • Subsumption Architecture ; aka. Hierarchical State Machines STAGE n !" Situation n ……… … SYSTEM STAGE 2 !" !" Situation 2 STAGE 2 STAGE 1 STAGE 1 !" !" Situation 1 !" STAGE 1 … time 0 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

  29. Media Type 29

  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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend