A Model of Computation with Push and Pull Processing

ABSTRACT

This report studies a model of computation (MoC) that supports Push-Pull communication
between software components. Push represents message transfer that is initiated by the
producer. On the contrast, Pull represents message transfer that is initiated by the consumer.

Push-Pull messaging mechanisms have been used in various domains, such as the
CORBA Event service, the Click modular router, inter-process communication among
multi-processors, data dissemination in a peer to peer network. Formalizing the computation
and communication in these domains to a MoC facilitates reusability of programming
models and software architectures, and allows user to model and analyze more complex
systems.

This model of computation has been implemented as the Component Interaction (CI)
domain in Ptolemy II, a hierarchical and heterogeneous modeling environment. Composition
of the CI domain with other domains in Ptolemy II is discussed.
This report also connects CI to other data-flow models of computation, such as Process
Networks (PN), Synchronous Data Flow (SDF) and Dynamic Data Flow (DDF), and discusses
the uses of CI in the execution of distributed systems.