Loose coupling


Loose coupling

Loose coupling describes a resilient relationship between two or more systems or organizations with some kind of exchange relationship. Each end of the transaction makes its requirements explicit and makes few assumptions about the other end. The notion of loose coupling is found in computer systems, and was introduced into organizational studies by Karl Weick.

Loose coupling in computing

In computer science, coupling or dependency is the degree to which each program module relies on each one of the other modules

Loosely coupled systems are considered useful when either the source or the destination computer systems are subject to frequent changes.

Definition

Loose coupling describes an approach where integration interfaces are developed with minimal assumptions between the sending/receiving parties, thus reducing the risk that a change in one application/module will force a change in another application/module.

Loose coupling has multiple dimensions. Integration between two applications may be loosely coupled in "time" using Message-oriented middleware, meaning the availability of one system does not affect the other. Alternatively, integration may be loosely coupled in "format" using middleware to perform Data transformation, meaning differences in data models do not prevent integration. In Web Services or Service Oriented Architecture, loose coupling may mean simply that the implementation is hidden from the caller.

Loosely coupled services, even if they use incompatible system technologies, may be joined to create composite services, or disassembled just as easily into their functional components. Participants can establish (normatively or inceptively) a shared semantic framework to ensure messages retain a consistent meaning across participating services.

Alternate definition

Loose coupling also describes a computer system where two or more physical processors are sharing storage disks with each other in a real time environment. The system must be designed such that the code to be shared is reentrant and that the records to be shared are protected by record locking.

Measuring coupling

The degree of loose coupling can be measured by noting the number of changes in data elements that could occur in the sending or receiving systems and determining if the computers would still continue communicating correctly. These changes include items such as:
# new data elements being added to messages
# data element order being changed
# names or structures of data elements being changed
# data elements being omitted

Methods for decreasing coupling

Loose coupling of interfaces can be dramatically enhanced when publishers of data transmit messages using a flexible file format such as XML to enable subscribers to publish clear definitions of how they subsequently use this data. For example, a subscriber could publish the collection of statements used to extract information from a publisher's messages by sharing the relevant XPath expressions used for data transformation. This would allow a responsible data publisher to test whether their subscriber's extraction methods would fail when a published format changes.

Loose coupling of services can be enhanced by reducing the information passed into a service to the key data. For example, a service that sends a letter is most reusable when just the customer identifier is passed and the customer address is obtained within the service. This decouples services because services do not need to be called in a specific order (e.g. GetCustomerAddress, SendLetter)

Note that loose coupling is not universally positive. If systems are de-coupled in time using Message-oriented middleware, it is difficult to also provide transactional integrity. Data replication across different systems provides loose coupling (in availability), but creates issues in maintaining synchronisation.

Loose coupling in organizations

The notion of loose coupling was introduced into organizational studies by Karl Weick.In computer science, coupling or dependency is the degree to which each program module relies on each one of the other modules

See also

* Coupling (computer science)
* Cohesion (computer science)
* XML
* Web Services
* ISO/IEC 11179 - metadata registry specification
* Data element
* Enterprise service bus
* Enterprise Messaging System
* Space-based architecture (SBA)

References

* "Loosely Coupled: The Missing Pieces of Web Services" by Doug Kaye
* "Service Oriented Architecture: A field Guide to Integrating XML and Web Services" by Thomas Erl
* Karl Weick, "Educational organizations as loosely coupled systems", Administrative Science Quarterly, 21 (1976), 1-9 (part).
* "The Management of Organizational Change among Loosely Coupled Elements" (1982) by Karl Weick reprinted in his book "Making Sense of the Organization" (2001)
* James Douglas Orton and Karl E. Weick, Loosely Coupled Systems: A Reconceptualization, Academy of Management Review 15 (2):203-223 1990

External links

* The Joy of Flex (2005) by John Hagel and John Seely Brown
* About SOA and loose coupling: [http://soa-eda.blogspot.com/2006/11/how-eda-extends-soa-and-why-it-is.html How EDA extends SOA and why it is important] Jack van Hoof


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • loose coupling — silpnasis ryšys statusas T sritis fizika atitikmenys: angl. loose coupling vok. lose Kopplung, f; schwache Bindung, f; schwache Kopplung, f rus. слабая связь, f pranc. couplage faible, m …   Fizikos terminų žodynas

  • loose coupling — noun A lowly interdependent coupling between program modules. Ant: tight coupling …   Wiktionary

  • loose coupling — noun : a coupling of two circuits such that any change of current in one produces relatively small change in the other …   Useful english dictionary

  • Coupling (computer science) — In computer science, coupling or dependency is the degree to which each program module relies on each one of the other modules.Coupling is usually contrasted with cohesion. Low coupling often correlates with high cohesion, and vice versa. The… …   Wikipedia

  • Coupling (computer programming) — In computer science, coupling or dependency is the degree to which each program module relies on each one of the other modules. Coupling is usually contrasted with cohesion. Low coupling often correlates with high cohesion, and vice versa. The… …   Wikipedia

  • Coupling (railway) — Knuckle (AAR Type E ) couplers in use ICE coupler A c …   Wikipedia

  • Rotational-vibrational coupling — occurs when the rotation frequency of an object is close to or identical to a natural internal vibration frequency. The animation on the right shows a simple example. The motion depicted in the animation is for the idealized situation that the… …   Wikipedia

  • Turn Loose the Swans — Infobox Album | Name = Turn Loose the Swans Type = studio Artist = My Dying Bride Released = 1993 October Recorded = 1993 Genre = Doom metal Length = 58:15 Label = Peaceville Records Producer = Robert Mags Magoolagan, My Dying Bride Reviews =… …   Wikipedia

  • Crystal radio — Crystal set redirects here. For the Australian rock band, see The Crystal Set. A modern reproduction of an antique crystal set. It is tuned to different stations by moving the sliding contact (right) up and down the tuning coil (red). The device… …   Wikipedia

  • Service-oriented architecture — (SOA) is a method for systems development and integration where functionality is grouped around business processes and packaged as interoperable services . SOA also describes IT infrastructure which allows different applications to exchange data… …   Wikipedia


Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.