tutorials monday morning

39

Designing Concurrent Object-Oriented Programs in Java

David Holmes, Microsoft Research Institute, Macquarie University; and
Doug Lea, State University of New York 

Waterfront Centre Hotel
Waterfront Ballroom A

Concurrent programming has mostly been the domain of systems programmers rather than application developers, but Java's support of concurrency has enticed many to try their hand at concurrent applications. Effectively creating and managing concurrency within an application poses many design choices and trade-offs. This tutorial looks at more advanced issues in designing concurrent applications. It describes mechanisms for introducing concurrency into applications (threads, message-passing, asynchronous calls) and different models for application architectures, such as data-flow and event- driven designs. The tutorial also shows how concurrency controls can be abstracted into reusable support classes, and finally discusses how concurrent components and applications should be documented.

Participants will learn how concurrent applications can be structured in different ways and how different mechanisms can be used to effect concurrent behaviour. They will be exposed to a range of design patterns and techniques for introducing and managing concurrency within their applications and how to create reusable concurrency abstractions.

Attendee Background: This tutorial targets anyone involved, or planning to get involved, in the development of concurrent object-oriented applications. It is expected that the attendee is very familiar with OO concepts and the Java language, and that they have a good working knowledge of Java's concurrency mechanisms.

David Holmes is a Ph.D. student with the Microsoft Research Institute at Macquarie University, Sydney, researching more adaptable, flexible and re-usable approaches to synchronisation in concurrent object-oriented programs. He has a degree in Computer Systems Engineering and practical experience with concurrent programming through work on operating systems, distributed systems and real-time embedded systems, within a university environment.

Doug Lea is a Professor of Computer Science at the State University of New York at Oswego. He is author of the Java Series book "Concurrent Programming in Java: Design Principles and Patterns," co-author of the book "Object-Oriented System Development," and the author of several widely used software packages, as well as articles and reports on object-oriented software development.

Suggested Readings:

Other tutorials in the Java thread are:

for beginners (yellow):

Tutorial 25: From C++ to Advanced Java in 1/2 day
Tutorial 40: Java from UML
Tutorial 53: A Practical Guide to Java on the Server
Tutorial 15T: Introduction to Concurrent Object-Oriented Programming in Java

for intermediates (option 1- green):

Tutorial 15, 15T: Introduction to Concurrent Object-Oriented Programming in Java
Tutorial 26: Distributed Java Applications
Tutorial 52, 52T: Java Beans: Specifications, Design and Test
Tutorial 53: A Practical Guide to Java on the Server

for intermediates (option 2- grey):

Tutorial 16: An Introduction to the Java Foundation Classes (JFC)
Tutorial 26: Distributed Java Applications
Tutorial 40: Java from UML
Tutorial 52, 52T: Java Beans: Specifications, Design and Test
Tutorial 53: A Practical Guide to Java on the Server

 

Tutorials
by Title
Tutorials by
Category
Tutorials
by Thread
Full Description
of all Tutorials
Tutorial
Availability

OOPSLA'98 Home
Last edited 22 September 1998 14:41:52