This book is the second volume in the highly acclaimed Pattern-Oriented
Software Architecture (POSA) series, POSA1
as published in 1996 and hence this new book is referred to as POSA2.
Designing application and middleware software to run in concurrent and
networked environments is a significant challenge facing software
developers. This document presents an overview of the contents in the book Pattern-Oriented
Software Architecture: Patterns for Concurrent and Networked Objects
(POSA2) that address this challenge. The patterns in POSA2 form the basis of
a pattern language that addresses issues associated with concurrency and
networking. The book presents 17 interrelated patterns: Wrapper Facade,
Acceptor-Connector, Extension Interface, Interceptor,
Component Configurator, Reactor, Proactor,
Asynchronous Completion Token, Scoped Locking, Strategized
Locking, Thread-Safe Interface, Double-Checked Locking
Optimization, Active Object, Monitor Object,
Leader/Followers, Half-Sync/Half-Async, and
Thread-Specific Storage. This material represents a range of patterns
from ranging idioms to architecture designs. The patterns cover core
elements of building concurrent and networked systems: service access
and configuration, event handling, synchronization,
and concurrency. All patterns present extensive examples and the
pattern known uses are presented in various programming languages, including
C++, C, and Java.
The book can be used to tackle specific software development problems or
read from cover to cover to provide a fundamental understanding of the best
practices for constructing concurrent and networked applications and
middleware.