SPA Conference session: Loose coupling and REST - getting beyond glib

One-line description:Developing a better to language to talk about coupling of various kinds, and how harmful or desirable coupling is in particular situations
Session format: Workshop (150 mins) [read about the different session types]
Abstract:Today, great claims are made for the advantages of the REST (Representational State Transfer) style of software architecture, in particular its property of "loose coupling". Unfortunately, the term "loose coupling" is rarely defined with clarity and much confusion remains over its effect on system design.

The purpose of this workshop is to explore and understand the concept of loose coupling within the context of the REST architectural style.

Participants will work with an extended example taken from the forthcoming book “REST in Practice” by Webber, Parastatidis and Robinson. To investigate (loose) coupling, the participants will apply various business changes to the example. They will discuss questions supplied by the presenters and consider the kinds of coupling present in the example and where REST constraints bought benefits.
Audience background:Suitable for anybody with an interest in architecture and in dealing with change; particularly suitable for those working in a service-orientated or REST architectural style.
Benefits of participating:Increased understanding of coupling, where REST constraints help, and what remains difficult.
Materials provided:• An example system design, based on RESTful principles
• Presentation reviewing REST – Fielding and pragmatic interpretations
• Presentation reviewing the concept of coupling
• Business requirements for changes to apply to the example system
• Questions about coupling raised by those changes
• Possible answers to the questions
Process:Mixture of group work and presentation:

• Introduction to the workshop and Restbucks example
• In groups, the participants will discuss the RESTfulness of the example and present back
• Presentation of Fielding's REST constraints
• In groups, the participants will discuss loose coupling in the example, its relationship to REST constraints and present back
• Presentation of "pragmatic REST" concepts, characterised by the Richardson Maturity Model.
• Presentation about the concept of coupling
• In groups, the participants will work through changes to Restbucks and answer questions related to coupling
• In groups, the participants will discuss and describe coupling in example and how it helps or hinders various kinds of changes
• Presentation of possible answers/issues from organisers (if there is anything the participants have not thought of)
• The presenters will summarise surprises from the workshop and further questions that it raises
Detailed timetable:00:00 - 00:05 : Welcome, session overview and presenter introductions
00:05 - 00:10 : Introduction to the example (Restbucks coffee shop)
00:10 - 00:25 : Warm-up exercise, exploring RESTfulness of example
00:25 - 00:35 : Groups present feedback on exercise
00:35 - 00:50 : Presentation of Fielding's REST constraints
00:50 - 01:05 : First exercise, discussing coupling in the example
01:05 - 01:15 : Groups present feedback on exercise
01:15 - 01:20 : Presentation on "pragmatic REST"
01:20 - 01:40 : Break
01:40 - 01:55 : Presentation on coupling
01:55 - 02:25 : Second exercise, identifying coupling and effect on system changes
02:25 - 02:45 : Groups present feedback on exercise and discuss
02:45 - 02:55 : (Optional) presentation of similar issues from presenter's experience
02:55 - 03:00 : Summary and session wrap-up
Outputs:Examples of various forms of coupling to consider when thinking about REST system design.
History:New workshop
1. Phil Allen
Nokia Music
2. Mike Glendinning