CSP networking for java (JCSP.net)
P.H. Welch, J.R. Aldous, and J. Foster
In P.M.A. Sloot, C.J.K. Tan, J.J. Dongarra, and A.G. Hoekstra, editors,
Computational Science - ICCS 2002, volume 2330 of
Lecture Notes in
Computer Science, pages 695-708. Springer-Verlag, April 2002.
Abstract
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.
Bibtex Record
@inproceedings{1382,
author = {P.H. Welch and J.R. Aldous and J. Foster},
title = {{CSP} Networking for Java ({JCSP}.net)},
month = {April},
year = {2002},
pages = {695-708},
keywords = {dynamic networks, mobile processes, virtual channels, agents, Java™, CSP, JCSP.},
note = {},
doi = {},
url = {http://www.cs.kent.ac.uk/pubs/2002/1382},
publication_type = {inproceedings},
submission_id = {4071_1024402268},
ISBN = {3-540-43593-X},
booktitle = {Computational Science - ICCS 2002},
volume = {2330},
series = {Lecture Notes in Computer Science},
publisher = {Springer-Verlag},
ISSN = {0302-9743},
refereed = {Yes},
editor = {P.M.A. Sloot and C.J.K. Tan and J.J. Dongarra and A.G. Hoekstra},
}