Abstract. There are a range of abstractions used for both modelling and proof modern computational systems. While these abstractions may have been devised for specific purposes, the variety of options is often confusing, with development and programming techniques often being distinct. The aim of this is two-fold. First, we bring together a number of these abstractions into one, general, view. Second, we show how, by grouping computational elements, this general view can capture a range of behaviours in areas such as multi-agent systems, web services, and object-oriented systems. This framework then provides a basis for design and implementation techniques for a wide variety of modern computational systems, in particular providing the basis of a general programming language for dynamic, distributed computation.