Asynchronous Stream Processing with S-Net

C. Grelck, S. Scholz, A. Shafarenko

    Research output: Contribution to journalArticlepeer-review

    23 Citations (Scopus)
    48 Downloads (Pure)


    We present the rationale and design of S-Net, a coordination language for asynchronous stream processing. The language achieves a near-complete separation between the application code, written in any conventional programming language, and the coordination/communication code written in S-Net. Our approach supports a component technology with flexible software reuse. No extension of the conventional language is required. The interface between S-Net and the application code is in terms of one additional library function. The application code is componentised and presented to S-Net as a set of components, called boxes, each encapsulating a single tuple-to-tuple function. Apart from the boxes defined using an external compute language, S-Net features two built-in boxes: one for network housekeeping and one for data-flow style synchronisation. Streaming network composition under S-Net is based on four network combinators, which have both deterministic and nondeterministic versions. Flexible software reuse is comprehensive, with the box interfaces and even the network structure being subject to subtyping. We propose an inheritance mechanism, named flow inheritance, that is specifically geared towards stream processing. The paper summarises the essential language constructs and type concepts and gives a short application example.
    Original languageEnglish
    Pages (from-to)38-67
    JournalInternational Journal of Parallel Programming
    Issue number1
    Publication statusPublished - Feb 2010


    Dive into the research topics of 'Asynchronous Stream Processing with S-Net'. Together they form a unique fingerprint.

    Cite this