Event: IFIP WG 2.4, Simon's Town, South Africa (March, 2002),

Title: "CSP Networking for Java (JCSP.net)"

Speaker: Peter Welch, University of Kent at Canterbury (phw@ukc.ac.uk)


JCSP is a library of Java packages providing an extended version of the CSP/occam model for Communicating Processes.  The current (1.0) release supports concurrency within a single Java Virtual Machine (which may be multi-processor).  This paper presents recent work on extended facilities for the dynamic construction of CSP networks across distributed environments (such as the Internet).  Details of the underlying network fabric and control (such as machine addresses, socket connections, local multiplexing and de-multiplexing of application channels, acknowledgement packets to preserve synchronisation semantics) are hidden from the JCSP programmer, who works entirely at the application level and CSP primitives.

A simple brokerage service – based on channel names – is provided to let distributed JCSP components find and connect to each other. Distributed JCSP networks may securely evolve, as components join and leave at run-time with no centralised or pre-planned control. Higher level brokers, providing user-defined matching services, are easy to bootstrap on top of the basic Channel Name Server (CNS) – using standard JCSP processes and networking. These may impose user-defined control over the structure of network being built.

JCSP network channels may be configured for the automatic loading of class files for received objects whose classes are not available locally (this uses the network channel from which they were received – the sender must have them). Also provided are connection channels (for extended bi-directional transactions between clients and servers) and  anonymous channels (to set up communications without using any central registry – such as the given CNS).

The aims of JCSP.net are to simplify the construction and programming of dynamically distributed and parallel systems. It provides high-level support for CSP architectures, unifying concurrency logic within and between processors. Applications cover all areas of concurrent computing – including e-commerce, agent technology, home networks, embedded systems, high-performance clusters and The Grid.

Keywords: dynamic networks, components, mobile processes, virtual channels, agents, scalability, Java™, CSP, JCSP..

Reference: P.H.Welch, J.R.Aldous and J.Foster. CSP Networking for Java (JCSP.net). In ‘Global and Collaborative Computing’ Workshop Proceedings, ICCS 2002, Lecture Notes in Computer Science, Volume 2330, pp. 695-708. Springer-Verlag. April, 2002.

Reference: P.H.Welch and B.Vinterr. Cluster Computing and JCSP Networking. In 'Communicating Process Architectures 2002’, Convurrent Systems Engineering Series, Volume 60, IOS Press (Amsterdam),  pp. 203-222. ISBN 1 58603 268 2 September, 2002.