Loose Coupling

From TimPenner.ca
Jump to: navigation, search

This page is a work in progress.



Coupling parts loosely is a maxim of those who build re-usable and open processing systems. Loose coupling is also a feature of natural or naturally evolved systems.

To start, consider Small Parts Loosely Joined: A Unified Theory of the Web (Weinberger, 2002), an interesting treatise on the manner in which the world wide web is constructed, as is the Internet - the technological substrate on which the web is constructed. Weinberger is a pretty smart guy but he deserves no credit for having noticed the web's construction technique, let alone inventing it. What he does in his book is a good job of explaining why the approach works. It has been a while since I read it so I can't quite remember if he noticed that open societies function analogously - or rather: the Internet and the Web function analogously to open societies.

Here is how it works: loosely coupled parts of a system express agency that serves the parts and the system. The parts are bound to each other through protocols, a word not so neatly described in Wikipedia - hence the link to my own explanation. Important aspects of that agency are the ability to use protocols through which the parts inter-operate and the nature of those protocols that promotes loose coupling. Agency in people is an expression of their intentionality; in non-sentient parts, the purpose that people have expressed in their design and programming.

I often grapple with how to explain such things to non-technical audiences, seeking stories about devices that are readily consumed without a lot of re-reading and contemplation. Hence my story about programmability that focuses on the design of music boxes. So, here goes: this is the story of the web server, no matter that there is plenty of room for complexity, given the myriad loosely coupled parts that make web servers possible, including their constituent parts, and no matter that in the scheme of the web, web servers are not the smallest parts we might consider here.

A web server is, by any account, a computer program. Its job is to respond to requests that somehow arrive to be processed. Not surprisingly, those requests confirm to strict protocols, which most of us use daily but have no personal knowledge of.

Personal tools
Namespaces

Variants
Actions
Navigation
Contact
Areas Intros
References
Tools