  Reaction networks, or equivalently Petri nets, are a general framework for
describing processes in which entities of various kinds interact and turn into
other entities. In chemistry, where the reactions are assigned "rate
constants", any reaction network gives rise to a nonlinear dynamical system
called its "rate equation". Here we generalize these ideas to "open" reaction
networks, which allow entities to flow in and out at certain designated inputs
and outputs. We treat open reaction networks as morphisms in a category.
Composing two such morphisms connects the outputs of the first to the inputs of
the second. We construct a functor sending any open reaction network to its
corresponding "open dynamical system". This provides a compositional framework
for studying the dynamics of reaction networks. We then turn to statics: that
is, steady state solutions of open dynamical systems. We construct a
"black-boxing" functor that sends any open dynamical system to the relation
that it imposes between input and output variables in steady states. This
extends our earlier work on black-boxing for Markov processes.
