FOREST: An Interacting Object Web

Chapter

Abstract

FOREST satisfies the need for objects to easily interact across the network in a RESTful way – without calling methods on each other. To do this, it asks you to set your objects up in an Observer Pattern relationship. Or, in particular, a “Functional Observer Pattern”, where an object’s state is set as a Function of its current state plus the state of other objects it Observes through links. This observation occurs through either pull or push of linked object state. Such a programming model maps directly to RESTful distribution over HTTP, using GET for pull and POST for push of object state, in both directions between interacting servers. Objects are published into a global interacting object Web. This distributed object architecture is declarative in nature, and thus very expressive, as well as being naturally concurrent.

References

  1. Armstrong J., Williams M., Wikstrom C. and Virding R. Concurrent Programming in Erlang, Prentice-Hall, Englewood Cliffs, NJ, USA. (1996). Online: http://www.erlang.org
  2. Berners-Lee, T., Fielding, R.T. et al. httpRange-14: What is the Range of the HTTP Dereference Function? (2010). Online: http://www.w3.org/2001/tag/issues.html#httpRange-14
  3. Berners-Lee, T., Fielding, R.T. et al. Uniform Resource Identifier (URI): Generic Syntax, (2005). Online: http://www.ietf.org/rfc/rfc3986.txt
  4. Cragg, D. Web Objects Ask, they Never Tell | The REST Dialogues, (2009). Online: http://duncan-cragg.org/blog/post/web-objects-ask-they-never-tell-rest-dialogues/
  5. Dahl, R. Node.js, (2009). Online: http://nodejs.org/jsconf.pdf
  6. Fielding, R.T. Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation, University of California, Irvine, (2000). Online: http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
  7. Fielding, R.T. Post to the REST-Discuss Mailing List, (2006). Online: http://tech.groups.yahoo.com/group/rest-discuss/message/6613
  8. Fielding, R.T. Economies of Scale, (2008). Online: http://roy.gbiv.com/untangled/2008/economies-of-scale
  9. Fielding, R.T. et al. HTTP/1.1, Part 3: Message Payload and Content Negotiation, (2011). Online: http://tools.ietf.org/html/draft-ietf-httpbis-p3-payload-14
  10. Fielding, R.T. et al. Hypertext Transfer Protocol – HTTP/1.1, (1999). Online: http://www.ietf.org/rfc/rfc2616.txt
  11. Fielding, R.T. et al. HTTP/1.1, Part 2: Message Semantics, (2010). Online: http://tools.ietf.org/wg/httpbis/draft-ietf-httpbis-p2-semantics/
  12. Hickey, R. Clojure’s Approach to Identity and State, (2009). Online: http://qconlondon.com/dl/qcon-london-2009/slides/RichHickey_PersistentDataStructuresAndManagedReferences.pdf
  13. Mealling, M., Denenberg, R. Report from the Joint W3C/IETF URI Planning Interest Group: Uniform Resource Identifiers (URIs), URLs, and Uniform Resource Names (URNs): Clarifications and Recommendations, (2002). Online: http://www.ietf.org/rfc/rfc3305.txt

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  1. 1.ThoughtWorks (UK) Ltd.LondonUK

Personalised recommendations