119

119_Henney_Kevlin.htm

Patterns from this session

Distributed Programming Patterns

Workshop 170 minutes

Pattern Mining Successful Practices for Programming Distributed Systems

Kevlin Henney

Distributed programming, whether through plumbing technologies such as CORBA, RMI and COM, or in more framework based contexts, such as web servers and middle tier application servers, present developers with a number of challenges. The difference in context between smaller sequential programs and distributed systems is enough to invalidate a number of practices commonly used to construct sequential programs, whether through methodological mantra or common coding wisdom.

That said, there are patterns that are commonly found and used by application and framework programmers alike that are used in common across distributed, threaded, persistent, and event driven systems. It is these idioms that are the focus of the workshop, whose intent is to uncover and document successful practices, linking them together where possible. The result is hoped to be a collection of simply documented proto-patterns that are of use to the participants as a source of questions and practices.

Kevlin Henney (khenney@qatraining.com)

QA Training
Kevlin Henney is a Principal Technologist with QA Training, where he consults, writes and delivers training courses and seminars in C++, Java, OOD, patterns, distributed objects, and component architectures. He has been working with object technology and some of its cultural offshoots for longer than he cares to remember, and tries to share/inflict these experiences with/on others at any opportunity, typically through the medium of articles, conference papers, conference talks, workshops and courses.

Topics

Benefits

Identifying, naming and discussing practices for distributed programming is worthwhile in itself, but being able to approach it from a pattern and pattern language form offers the possibility of creating a more enduring vocabulary for describing distributed programming concepts.

Session: Workshop 170 minutes Level: advanced
Audience: Developers who have some familiarity with pattern concepts and have worked with distributed, threaded, persistent or event driven systems. Max 30

Material

  • Slide material used for presentations.
  • Additional documents that outline the consequences of distribution that must be considered in any design.
  • Some examples of design decisions taken in distributed systems.
  • Some proto-patterns as seeds / starting points for discussion.

    Delivery

    Poster(s) and a proto-pattern language, which will be made available to the participants and others through the modern miracle (or curse, depending on POV) of the Web.

    Format

    The session will begin with a conventional presentation, and will then move into groups who will begin by brainstorming and putting down names or short descriptions of techniques they have come across that have been influenced by the constraints of a distributed system, eg latency, complex failure modes, etc. This will move onto basic consolidation and simple documentation (problem/solution) of the proto patterns. If there is time, the patterns will be linked together as a proto pattern language. As people are the most effective carriers of information (no, really), there will be movement between groups to help physically move ideas around the room, cross pollinating patterns where they go.

    119

    119_Henney_Kevlin.htm