5.3 Defining Loose Coupling
Both WS-* and REST foster the development of loosely coupled distributed systems, albeit according to different definitions of this rather overloaded term. There are many aspects to loose coupling: time/availability, location transparency, and service evolution are important dimensions.
A very important aspect of loose coupling concerns the ability for service consumers to interact with a service provider even when the latter is not available (the time/availability aspect of loose coupling). Thus, in such kind of loosely coupled system, clients are not affected when services suffer from temporary downtime. When WS-* is used to implement message-based (as opposed to RPC-based) SOAs, the underlying message bus makes it possible to achieve such degree of loose coupling as messages can be transferred using persistent, reliable queues. Since RESTful Web services exclusively focus on RPC-like, synchronous interactions, this technology cannot hide such failure scenarios. In other words, when an HTTP server is down, its clients will be affected as their HTTP requests fail; they have to handle such connection timeout failures themselves.