Creating Components: Object Oriented, Concurrent, and Distributed Computing in Java, 1st Edition (Paperback) book cover

Creating Components

Object Oriented, Concurrent, and Distributed Computing in Java, 1st Edition

By Charles W. Kann

Auerbach Publications

448 pages | 39 B/W Illus.

Purchasing Options:$ = USD
Paperback: 9780849314995
pub: 2003-07-28
SAVE ~$24.00
$120.00
$96.00
x
Hardback: 9781138468542
pub: 2017-09-11
SAVE ~$41.00
$205.00
$164.00
x
eBook (VitalSource) : 9780429208652
pub: 2017-09-11
from $117.00


FREE Standard Shipping!

Description

Concurrency is a powerful technique for developing efficient and lightning- fast software. For instance, concurrency can be used in common applications such as online order processing to speed processing and ensure transaction reliability. However, mastering concurrency is one of the greatest challenges for both new and veteran programmers. Software developers with all levels of experience can refer to Creating Components: Object Oriented, Concurrent, and Distributed Computing in Java to better understand how concurrency works, more effectively deploy it in program components, and reuse these components to improve program design, quality, and performance.

This text introduces concurrent and component programming to students, engineers, and programmers who are familiar with Java and procedural and GUI programming. It helps them to understand and apply concurrency in Java component programming, while exploring distributed program implementation, Java threads, objects, interfaces, exceptions, component reuse, and system design and management.

By providing the fundamental concepts of object-oriented components and offering templates for distributed program components, this valuable resource reveals how programmers can apply concurrency and components to solve complex problems.

Table of Contents

INTRODUCTION TO CONCURRENT PROGRAMMING AND COMPONENTS

Chapter Goals

What is Concurrent Programming?

Components

Types of Concurrent Programming

THREADS AND PROGRAM CONTEXTS

Writing threads in Java

A Simple Execution Model

Program Safety

Deadlock

DESIGNING AND IMPLEMENTING CONCURRENT PROGRAMS WITH STATE DIAGRAMS

Background

Steps to Create a Concurrent Program

The Producer/Consumer Problem

Why Passive Objects are Components

Gas Station Simulation Problem

Identifiers, Variables, Objects, and Collection Classes

Identifiers and Variables

Java Identifiers and Variables

Primitives

Objects

Collection Classes in Java

PROGRAMMING TO AN INTERFACE

Reuse with Interfaces

Programming to a Promise

Dynamic Polymorphism

Using Multiple Interfaces

Implementing the SortedPrintTable

Using the SortedPrintTable

Expression Trees

EXCEPTIONS IN JAVA

How to Incorrectly Handle Errors

Java Exception Handling

Checked and Unchecked Exceptions

Writing Exceptions

IMPLEMENTING AN ANIMATOR COMPONENT USING THE JAVA EVENT MODEL

A Very Simple Animator

Adding a Speed Control to the Animator

Implementing a Generic Animator

Implementing the Animator using the Java Event Model

Multicasters

COOPERATIVE SYNCHRONIZATION

Cooperative and Competitive Synchronization

Coordinating Threads using Long Sleep Times

Using Wait and Notify to Coordinate Threads

A Solution with a Hidden Race Condition

Solving the Race Condition

Notification Objects

Animating the Gas Station Problem

COMBINING CONCURRENT TECHNIQUES

A First-In-First-Out-Binary-Semaphore

Readers-Writers Problem

An Improved Gas Station Simulation

Improving the Animator

ORGANIZING THE PROBLEM FOR REUSE: REUSE OF UTILITY CLASSES

Types of Reuse

Finding Commonality in Code

Reuse by Copy

Procedural Reuse in Java

Classification: Reuse by Extension

Composition: Reuse by Delegation

Defining the Java Event Model by Extending a Vector

Using Cohesion and Coupling to Evaluate Designs

OBJECT ORIENTED DESIGN

Organizing Objects

Choosing Composition or Classification

Conclusion

PROGRAM MANAGEMENT IN JAVA

What is Program Management?

Implementation Attributes Not Defined in Java

Implementation Attributes Defined in Java

Packages

DISTRIBUTED PROGRAMMING USING RMI

A Brief History of Distributed Computing

Overview of RMI

Implementing a simple program using RMI

Migrating and Non-Migrating Objects

Chat Program

Subject Categories

BISAC Subject Codes/Headings:
COM051010
COMPUTERS / Programming Languages / General
COM051230
COMPUTERS / Software Development & Engineering / General