Cover Page

FOCUS SERIES

Jean-Charles Pomerol

Concurrent, Real-Time and Distributed Programming in Java

Threads, RTSJ and RMI

Badr Benmammar

Logo

List of Acronyms

API
Application Programming Interface
CNI
Cygnus Native Interface
CORBA
Common Object Request Broker Architecture
DCOM
Distributed Component Object Model
DGC
Distributed Garbage Collection
FIFO
First In, First Out
GC
Garbage Collector
GCC
GNU Compiler Collection
GCJ
GNU Compiler for Java
GNU
GNU’s Not Unix
IIOP
Internet Inter-ORB Protocol
IP
Internet Protocol
J2SE
Java 2 Standard Edition
J2EE
Java 2 Enterprise Edition
J2ME
Java 2 Micro Edition
JDK
Java SE Development Kit
JNI
Java Native Interface
JRMP
Java Remote Method Protocol
JSSE
Java Secure Socket Extension
JVM
Java Virtual Machine
KVM
Kilo VM
OSI
Open Systems Interconnection
PCP
Priority Ceiling Protocol
PIP
Priority Inheritance Protocol
RMI
Remote Method Invocation
RMIC
RMI Compiler
RPC
Remote Procedure Call
RRL
Remote Reference Layer
RTSJ
Real-Time Specification for Java
SSL
Secure Sockets Layer
TCP
Transmission Control Protocol
TLS
Transport Layer Security
UDP
User Datagram Protocol
URL
Uniform Resource Locator
WinCE
Windows Embedded Compact

Introduction

This book constitutes an introduction to real-time and distributed concurrent computing, using Java object-oriented language as a support tool for describing algorithms. It describes in particular the synchronization mechanisms (in cooperation and in competition) and data-sharing mechanisms (internal class, static type variables) between threads in Java. We then discuss the use of Java for real-time applications. Subsequently, a presentation of RTSJ (Real-Time Specification for Java) is also introduced in this book. Finally, a presentation of distributed computing can also be found. We focus in particular on low-level communication using TCP Sockets and high-level communication using Java RMI (Remote Method Invocation) middleware. The book also contains an appendix including a set of practical application exercises in relation to the theme of the book. Knowledge of Java language is a prerequisite to properly understanding this book.