Concurrency engineering with S-Net

We present the design of S-Net, a coordination language and component technology based on stream processing. S-Net boxes integrate existing sequential code as stream-processing components into highly asynchronous concurrent streaming networks. Their construction is based on algebraic formulae built out of four network combinators. S-Net achieves a near-complete separation of concerns between application code, written in a conventional programming language, and coordination code, written in S-Net itself. Subtyping on the level of boxes and networks and a tailor-made inheritance mechanism achieve flexible software reuse.