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.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Welch, P.H., Austin, P.D.: JCSP Home Page, http://www.cs.ukc.ac.uk/projects/ofa/jcsp/ (2002)
Welch, P.H.: Process Oriented Design for Java — Concurrency for All. In: PDPTA 2000 volume 1. CSREA Press (June 2000) 51–57
Lea, D.: Concurrent Programming in Java (Second Edition): Design Principles and Patterns. The Java Series, Addison-Wesley (1999) section 4.5
Welch, P.H.:, Java Threads in the Light of occam/CSP. In: Architectures, Languages and Patterns for Parallel and Distributed Applications, Proceedings of WoTUG 21. IOS Press (Amsterdam), ISBN 90 5199 391 9 (April 1998) 259–284
Welch, P.H.:, Parallel and Distributed Computing in Education. In: J. Palma et al. (eds): VECPAR’98, Lecture Notes in Computer Science, vol. 1573. Springer-Verlag (June 1998)
Hoare, C.A.R.:, Communicating Sequential Processes, CACM, 21–8, (1978) 666-677
C.A.R. Hoare. Communicating Sequential Processes. Prentice Hall ISBN 0 13 153289 8 (1985)
A.W. Roscoe. The Theory and Practice of Concurrency. Prentice Hall, ISBN 0 13 674409 5 (1997)
Inmos Limited. occam2.1 Reference Manual, Technical Report. http://wotug.ukc.ac.uk/ parallel/occam/documentation/ (1989)
Inmos Limited. occam3 Reference Manual, Technical Report. http://wotug.ukc.ac.uk/ parallel/occam/documentation/. (1992)
May, M.D., Thompson, P.W., Welch, P.H.: Networks, Routers and Transputers. IOS Press, ISBN 90 5199 129 0(1993)
Hilderink, G.H.: CTJ Home Page. http://www.rt.el.utwente.nl/javapp/ (2002)
Hilderink, G.H., Broenink, J., Vervoort, W., Bakkers, A.W.P: Communicating Java Threads, In: Bakkers, A.W.P et al. (eds): Parallel Programming in Java, Proceedings of WoTUG 20, Concurrent Systems Engineering Series, vol. 50. IOS Press (Amsterdam), ISBN 90 5199 336 6(1997)48–76
Nevison, C.: Teaching Distributed and Parallel Computing with Java and CSP. In: Proceedings of the 1st ACM/IEEE International Symposium on Cluster Computing and the Grid, Brisbane, Australia (May 2001)
Martin, J.M.R., Welch, P.H.: A Design Strategy for Deadlock-Free Concurrent Systems. Transputer Communications 3(4). John Wiley & Sons, ISSN 1070 454 X (October 1996) 215–232
Welch, P.H.: Concurrency Research Group Home Page, Computing Laboratory, University of Kent at Canterbury http://www.cs.ukc.ac.uk/research/groups/crg/ (2002)
Welch, P.H., Moores J., Barnes, F.R.M., Wood, D.C.: KRoC Home Page. http://www.cs. ac.ukc.ac/projects/ofa/kroc/ (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Welch, P.H., Aldous, J.R., Foster, J. (2002). CSP Networking for Java (JCSP.net) . In: Sloot, P.M.A., Hoekstra, A.G., Tan, C.J.K., Dongarra, J.J. (eds) Computational Science — ICCS 2002. ICCS 2002. Lecture Notes in Computer Science, vol 2330. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46080-2_74
Download citation
DOI: https://doi.org/10.1007/3-540-46080-2_74
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43593-8
Online ISBN: 978-3-540-46080-0
eBook Packages: Springer Book Archive