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 | 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 | interaction structure, EIP correspondence, 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, interaction, interaction control flow, flow views, observer models, scheduling, synchrony and asynchrony, concurrency control, runtimes, network, brokers, realization.