FOREST: An Interacting Object Web

  • Duncan CraggEmail author


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.


Application State State Transfer Object Interaction Domain Logic Remote Object 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. Armstrong J., Williams M., Wikstrom C. and Virding R. Concurrent Programming in Erlang, Prentice-Hall, Englewood Cliffs, NJ, USA. (1996). Online:
  2. Berners-Lee, T., Fielding, R.T. et al. httpRange-14: What is the Range of the HTTP Dereference Function? (2010). Online:
  3. Berners-Lee, T., Fielding, R.T. et al. Uniform Resource Identifier (URI): Generic Syntax, (2005). Online:
  4. Cragg, D. Web Objects Ask, they Never Tell | The REST Dialogues, (2009). Online:
  5. Dahl, R. Node.js, (2009). Online:
  6. Fielding, R.T. Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation, University of California, Irvine, (2000). Online:
  7. Fielding, R.T. Post to the REST-Discuss Mailing List, (2006). Online:
  8. Fielding, R.T. Economies of Scale, (2008). Online:
  9. Fielding, R.T. et al. HTTP/1.1, Part 3: Message Payload and Content Negotiation, (2011). Online:
  10. Fielding, R.T. et al. Hypertext Transfer Protocol – HTTP/1.1, (1999). Online:
  11. Fielding, R.T. et al. HTTP/1.1, Part 2: Message Semantics, (2010). Online:
  12. Hickey, R. Clojure’s Approach to Identity and State, (2009). Online:
  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:

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  1. 1.ThoughtWorks (UK) Ltd.LondonUK

Personalised recommendations