Share on Facebook Share on Twitter Email
Answers.com

Loose coupling

 
Sci-Tech Dictionary: loose coupling
(′lüs ′kəp·liŋ)

(electricity) Coupling of a degree less than the critical coupling.


Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
Computer Desktop Encyclopedia: loose coupling
Top

Refers to hardware and software components that interact when necessary, but remain uncoupled from each other. For example, computers in a network are loosely coupled. When the user's client machine requires data from the server, it sends a request to the server. Otherwise, it performs work independently. In a loosely-coupled multiprocessing environment, where several computers share the workload, a machine can be added and replaced without shutting down the entire system.

Software Loose Coupling

Loosely-coupled software means routines (modules, programs) are called by an application and executed as needed. For example, Web services employ loose coupling. When a function is required, the appropriate Web service module is executed. Loosely-coupled software often refers to programs with standard interfaces that serve multiple computing environments. Contrast with tight coupling. See Web services.

Download Computer Desktop Encyclopedia to your iPhone/iTouch

Wikipedia: Loose coupling
Top

The notion of loose coupling is found in computer systems, and was introduced into organizational studies by Karl Weick. Sub-areas include the coupling of classes, interfaces, data, and services.

Contents

Loose object coupling in computing

Coupling refers to the degree of direct knowledge that one class has of another. This is not meant to be interpreted as encapsulation vs. non-encapsulation. It is not a reference to one class's knowledge of another class's attributes or implementation, but rather knowledge of that other class itself.

Strong coupling occurs when a dependent class contains a pointer directly to a concrete class which provides the required behavior. Loose coupling occurs when the dependent class contains a pointer only to an interface, which can then be implemented by one or many concrete classes. Loose coupling provides extensibility to designs. A new concrete class can easily be added later that implements that same interface without ever having to modify and recompile the dependent class. Strong coupling does not allow this.

This is a UML diagram (created in IBM Rhapsody) illustrating an example of loose coupling between a dependent class and a set of concrete classes, which provide the required behavior:

Loose Coupling Example.JPG

For comparison, this diagram illustrates the alternative design with strong coupling between the dependent class and a provider:

Strong Coupling Example.JPG

Measuring data element 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:

  1. adding new data elements to messages
  2. changing the order of data elements
  3. changing the names of data elements
  4. changing the structures of data elements
  5. omitting data elements

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.

See also

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


 
 

 

Copyrights:

Sci-Tech Dictionary. McGraw-Hill Dictionary of Scientific and Technical Terms. Copyright © 2003, 1994, 1989, 1984, 1978, 1976, 1974 by McGraw-Hill Companies, Inc. All rights reserved.  Read more
Computer Desktop Encyclopedia. THIS COPYRIGHTED DEFINITION IS FOR PERSONAL USE ONLY.
All other reproduction is strictly prohibited without permission from the publisher.
© 1981-2009 Computer Language Company Inc.  All rights reserved.  Read more
Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "Loose coupling" Read more