  Petri nets have found widespread use among many application domains, not
least due to their human-friendly graphical syntax for the composition of
interacting distributed and asynchronous processes and services, based in
partial-order dependencies and concurrent executions. Petri nets also come with
abstract semantics, and mathematical methods for compositional synthesis,
structural checks and behavioural analysis. These have led to the use of
various kinds of nets for real-time, distributed and parallel programming
languages, software and services systems, with a view to their interfaces and
interaction protocols. These affordances make Petri nets invaluable for
distributed software architecture approaches focused on components, their
mutual dependencies and environment-facing interactions. Quantum computing --
and in particular quantum software engineering -- is in its infancy and could
benefit from the accumulated insights of software architecture research and of
net theory, its methods, and its applications. In this paper, we establish a
connection between Petri nets and quantum systems, such that net theory and the
component architecture of nets may help in the synthesis and analysis of
abstract software models and their interface protocols in hybrid
classical-and-quantum programming languages and services systems. We leverage
some insights from net formalisms for software specification for a versatile
recipe to bake quantum into extant Petri net flavours, and prove universality
and compositionality of Petri nets for quantum programming.
