Pattern-Oriented Software Architecture
Pattern-Oriented Software Architecture, or POSA, is a multi-volume system of architectural patterns, design patterns, idioms, concurrency and networking patterns, resource-management patterns, and a composed pattern language for distributed computing.
POSA is especially relevant to Cohesive because it explicitly spans abstraction levels and, in Volume 4, connects patterns from several established catalogs into a larger language.
Cohesive Correspondence
| POSA emphasis | Representative patterns | Cohesive correspondence |
|---|---|---|
| System organization | Layers, Pipes and Filters, Blackboard, Broker, Model-View-Controller, Microkernel | system graph structure, flow views, observer models, interaction channels, and architecture-practice bundles |
| Event demultiplexing and dispatch | Reactor, Proactor, Acceptor-Connector, Asynchronous Completion Token | demultiplexing, interaction control flow, correlation, scheduling, network, and runtime realization |
| Concurrency and synchronization | Active Object, Monitor Object, Half-Sync/Half-Async, Leader/Followers, Guarded Suspension, Future | synchrony, scheduling, arbitration, concurrency control, progress conditions, and runtimes |
| Distribution infrastructure | Broker, Client Proxy, Requestor, Invoker, message channels, endpoints, routers, and translators | interfaces, interaction protocols, interaction channels, routing, ports and adapters, network, and brokers |
| Adaptation and resource management | Adapter, Bridge, Interceptor, Strategy, Component Configurator, Object Manager, Pool, Cache, Activator, Evictor, Leasing | architecture practices and replaceable realization mechanisms with lifecycle and capability obligations |
Naming Discipline
POSA and object-design catalogs contain names that resemble Cohesive semantic concepts. POSA Observer, Command, State, Message, or Process roles are structural or implementation patterns unless a separate semantic correspondence is established. A Reactor is an event-demultiplexing mechanism, not the semantic observer or process whose work it schedules. Active Object supplies a concurrency arrangement; it does not make the hosted object a domain entity.
POSA Volume 4 is also an important precedent for this project: it composes patterns from EIP, enterprise application architecture, object design, concurrency, networking, and resource management. Cohesive adds explicit realm separation and preservation conditions to that pattern-language integration.
External References
- Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal, Pattern-Oriented Software Architecture, Volume 1: A System of Patterns, Wiley, 1996.
- Douglas C. Schmidt, Michael Stal, Hans Rohnert, and Frank Buschmann, Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects, Wiley, 2000.
- Frank Buschmann, Kevlin Henney, and Douglas C. Schmidt, Pattern-Oriented Software Architecture, Volume 4: A Pattern Language for Distributed Computing, Wiley, 2007.
Related concepts: pattern languages and correspondence, system graph, enterprise integration patterns, enterprise application patterns, interfaces, interaction protocols, multiplexing and demultiplexing, interaction, interaction control flow, flow views, observer models, scheduling, synchrony and asynchrony, concurrency control, runtimes, network, brokers, realization.