Wiley
Wiley.com
Print this page Share

Pattern-Oriented Software Architecture, Volume 4, A Pattern Language for Distributed Computing

ISBN: 978-0-470-05902-9
636 pages
May 2007
Pattern-Oriented Software Architecture, Volume 4, A Pattern Language for Distributed Computing (0470059028) cover image
The eagerly awaited Pattern-Oriented Software Architecture (POSA) Volume 4 is about a pattern language for distributed computing.

The authors will guide you through the best practices and introduce you to key areas of building distributed software systems. POSA 4 connects many stand-alone patterns, pattern collections and pattern languages from the existing body of literature found in the POSA series. Such patterns relate to and are useful for distributed computing to a single language.

  • The panel of experts provides you with a consistent and coherent holistic view on the craft of building distributed systems.
  • Includes a foreword by Martin Fowler
  • A must read for practitioners who want practical advice to develop a comprehensive language integrating patterns from key literature.
See More
Foreword.

About This Book.

About The Authors.

Guide To The Reader.

PART I. SOME CONCEPTS.

1. On Patterns and Pattern Languages.

1.1 Patterns Introduced.

1.2 Inside Patterns.

1.3 In Between Patterns.

1.4 Into Pattern Languages.

1.5 Patterns Connected.

2. On Distributed Systems.

2.1 Benefits of Distribution.

2.2 Challenges of Distribution.

2.3 Technologies for Supporting Distribution.

2.4 Limitations with Middleware.

3. On the Pattern Language.

3.1 Intent, Scope, and Audience.

3.2 Origins and Genesis.

3.3 Structure and Content.

3.4 Presentation.

3.5 Practical Use.

PART. II A STORY.

4. Warehouse Management Process Control.

4.1 System Scope.

4.2 Warehouse Management Process Control.

5. Base-line Architecture.

5.1 Architecture Context.

5.2 Partitioning the Big Ball of Mud.

5.3 Decomposing the Layers.

5.4 Accessing Domain Object Functionality.

5.5 Bridging the Network.

5.6 Separating User Interfaces.

5.7 Distributing Functionality.

5.8 Supporting Concurrent Domain Object Access.

5.9 Achieving Scalable Concurrency.

5.10 Crossing the Object-Oriented/Relational Divide.

5.11 Configuring Domain Objects at Run-Time.

5.12 Base-line Architecture Summary.

6. Communication Middleware.

6.1 A Middleware Architecture for Distributed Systems.

6.2 Structuring the Internal Design of the Middleware.

6.3 Encapsulating Low-level System Mechanisms.

6.4 Demultiplexing ORB Core Events.

6.5 Managing ORB Connections.

6.6 Enhancing ORB Scalability.

6.7 Implementing a Synchronized Request Queue.

6.8 Interchangeable Internal ORB Mechanisms.

6.9 Consolidating ORB Strategies.

6.10 Dynamic Configuration of ORBs.

6.11 Communication Middleware Summary.

7. Warehouse Topology.

7.1 Warehouse Topology Base-line.

7.2 Representing Hierarchical Storage.

7.3 Navigating the Storage Hierarchy.

7.4 Modeling Storage Properties.

7.5 Varying Storage Behavior.

7.6 Realizing Global Functionality.

7.7 Traversing the Warehouse Topology.

7.8 Supporting Control Flow Extensions.

7.9 Connecting to the Database.

7.10 Maintaining In-Memory Storage Data.

7.11 Configuring the Warehouse Topology.

7.12 Detailing the Explicit Interface.

7.13 Warehouse Topology Summary.

8. The Story Behind The Pattern Story.

PART III. THE LANGUAGE.

9. From Mud To Structure.

Domain Model **.

Layers **.

Model-View-Controller **.

Presentation-Abstraction-Control.

Microkernel **.

Reflection *.

Pipes and Filters **.

Shared Repository **.

Blackboard.

Domain Object **.

10. Distribution Infrastructure.

Messaging **.

Message Channel **.

Message Endpoint **.

Message Translator **.

Message Router **.

Publisher-Subscriber **.

Broker **.

Client Proxy **.

Requestor **.

Invoker **.

Client Request Handler **.

Server Request Handler **.

11. Event Demultiplexing and Dispatching.

Reactor **.

Proactor.

Acceptor-Connector **.

Asynchronous Completion Token **.

12. Interface Partitioning.

Explicit Interface **.

Extension Interface **.

Introspective Interface **.

Dynamic Invocation Interface *.

Proxy **.

Business Delegate **.

Facade **.

Combined Method **.

Iterator **.

Enumeration Method **.

Batch Method **.

13. Component Partitioning.

Encapsulated Implementation **.

Whole-Part **.

Composite **.

Master-Slave *.

Half-Object plus Protocol **.

Replicated Component Group *.

14. Application Control.

Page Controller **.

Front Controller **.

Application Controller **.

Command Processor **.

Template View **.

Transform View **.

Firewall Proxy **.

Authorization **.

15. Concurrency.

Half-Sync/Half-Async **.

Leader/Followers **.

Active Object **.

Monitor Object **.

16. Synchronization.

Guarded Suspension **.

Future **.

Thread-Safe Interface *.

Double-Checked Locking.

Strategized Locking **.

Scoped Locking **.

Thread-Specific Storage.

Copied Value **.

Immutable Value **.

17. Object Interaction.

Observer **.

Double Dispatch **.

Mediator *.

Command **.

Memento **.

Context Object **.

Data Transfer Object **.

Message **.

18. Adaptation and Extension.

Bridge **.

Object Adapter **.

Chain of Responsibility *.

Interpreter.

Interceptor **.

Visitor **.

Decorator.

Execute-Around Object **.

Template Method *.

Strategy **.

Null Object **.

Wrapper Facade **.

Declarative Component Configuration *.

19. Modal Behavior.

Objects for States *.

Methods for States *.

Collections for States **.

20. Resource Management.

Container *.

Component Configurator *.

Object Manager **.

Lookup **.

Virtual Proxy **.

Lifecycle Callback **.

Task Coordinator *.

Resource Pool **.

Resource Cache **.

Lazy Acquisition **.

Eager Acquisition **.

Partial Acquisition *.

Activator **.

Evictor **.

Leasing **.

Automated Garbage Collection **.

Counting Handle **.

Abstract Factory **.

Builder *.

Factory Method **.

Disposal Method **.

21. Database Access.

Database Access Layer **.

Data Mapper **.

Row Data Gateway **.

Table Data Gateway **.

Active Record.

22. A Departing Thought.

Glossary.

References.

Index of Patterns.

Index of Names.

Index.

See More
Frank Buschmann, Siemens AG, Germany

Kevlin Henney, Curbralan, Bristol, UK

Douglas C. Schmidt, Vanderbilt University, Nashville, Tennessee, USA

See More
"The authors' decision to include a real-life use case was a good strategy it illustrate the application of the pattern language." (Computing Reviews, February 15, 2008)
See More

Related Titles

Back to Top