Published Sep 3, 2019

Episode 63: A Pattern Language for Distributed Systems with Henney and Buschmann

Frank Buschmann and Kevlin Henney delve into the complex world of distributed systems, emphasizing the critical role of database and resource management patterns. They highlight lifecycle management, interface independence, and pattern adaptations, including object adapters and interceptors, to enhance system architecture and stability.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Object Adapter

    In the realm of distributed systems, the object adapter pattern is often favored over the class adapter due to its flexibility and adaptability. explains that the object adapter pattern allows for delegation to another object rather than relying on inheritance, which is more suitable for distributed environments 1. adds that while both object and class adapters were considered, the object adapter was chosen for its looser coupling and stronger delegation style 2.

    We thought that in terms of how we think adaptation in distributed systems could work is it's more the object adapter. You delegate something to another object rather than using inheritance to connect the difference.

    ---

    This approach aligns with the need for flexibility and adaptability in complex distributed systems.

       

    Decorator vs Interceptor

    The decorator and interceptor patterns serve distinct purposes in distributed systems, with the latter often proving more effective. notes that while the decorator pattern is a classic example, it is less frequently used in practice due to complexities like object identity and memory management 3. In contrast, the interceptor pattern is favored for its strong track record in component and distributed computing, offering a less intrusive approach to adding functionality 4.

    It has a very strong proven track record in component and distributed computing.

    ---

    This makes interceptors a preferred choice for maintaining stable interfaces while enhancing functionality.

       

    Inheritance Issues

    Inheritance in distributed systems can lead to significant challenges, such as the fragile base class problem. highlights how these issues can be particularly problematic, prompting a preference for patterns like object adapter that avoid these pitfalls 5. The connection between POSA 4 and POSA 5 books underscores the ongoing exploration of these challenges and solutions.

    You know, that can introduce the fragile base class problem and inheritance anomalies, which are specifically annoying systems.

    ---

    By sidestepping inheritance issues, developers can create more robust and adaptable distributed systems.

Related Episodes