Введение
Система со слабо связанными компонентами
In computing and systems design, a loosely coupled system is one
in which components are weakly associated (have breakable relationships) with each other, and thus changes in one component least affect existence or performance of another component. in which each of its components has, or makes use of, little or no knowledge of the definitions of other separate components. Subareas include the coupling of classes, interfaces, data, and services. Loose coupling is the opposite of tight coupling.
В вычислительной технике и проектировании систем слабосвязанная система – это система, в которой компоненты слабо связаны между собой (имеют возможность независимого изменения), и, следовательно, изменения в одном компоненте минимально влияют на существование или производительность другого компонента. В такой системе каждый из компонентов обладает минимальным знанием или вовсе не обладает знанием об определениях других отдельных компонентов. К подобным областям относятся связность классов, интерфейсов, данных и сервисов. Слабая связность является противоположностью сильной связности.
In computing and systems design, a loosely coupled system is one
in which components are weakly associated (have breakable relationships) with each other, and thus changes in one component least affect existence or performance of another component. in which each of its components has, or makes use of, little or no knowledge of the definitions of other separate components. Subareas include the coupling of classes, interfaces, data, and services. Loose coupling is the opposite of tight coupling.
Преимущества и недостатки
Компоненты слабосвязанной системы могут быть заменены альтернативными реализациями, предоставляющими те же сервисы. Компоненты слабосвязанной системы менее зависимы от конкретной платформы, языка программирования, операционной системы или среды разработки. Если системы разделены во времени, обеспечить транзакционную целостность затруднительно; необходимы дополнительные протоколы координации. Репликация данных между различными системами обеспечивает слабую связанность с точки зрения доступности, но создает проблемы с поддержанием согласованности (синхронизацией данных).
Методы снижения сцепления
Слабая связанность интерфейсов может быть усилена за счет публикации данных в стандартном формате (например, XML или JSON). Слабая связанность между программными компонентами может быть усилена использованием стандартных типов данных в параметрах. Передача пользовательских типов данных или объектов требует, чтобы оба компонента имели представление об определении этих данных. Слабая связанность сервисов может быть усилена за счет уменьшения объема информации, передаваемой в сервис, до ключевых данных. Например, сервис отправки письма будет наиболее универсальным, если передавать только идентификатор клиента, а адрес клиента получать непосредственно в сервисе. Это обеспечивает независимость сервисов, поскольку их не нужно вызывать в определенном порядке (например, GetCustomerAddress, SendLetter).