Platform SDK: Active Directory, ADSI, and Directory Services |
Active Directory is a loosely coupled system for the following reasons:
There is no way to guarantee complete knowledge of the current or future state of a distributed system because knowledge of state changes must be propagated and propagation takes time, during which more state changes may occur. This is an axiom of distributed computing.
Tightly coupled systems deal with uncertainty by attempting to eliminate it. This is done through constraints on updates, requiring all nodes or some majority of nodes to be available before updates can be performed, using distributed locking schemes or single-mastering for critical resources, constraining all nodes to be well connected, or some combination of these techniques. The more tightly coupled the computing nodes in a distributed system are, the lower the scaling limit.
Loosely coupled systems deal with uncertainty by tolerating it. A loosely coupled system allows the nodes to have differing views of the overall system state and provides algorithms for resolving conflicts.
Tightly coupled solutions were rejected as unsuitable for Active Directory because of the requirements for local administration, disconnected operation, and scalability to very large numbers of nodes. The loosely coupled model chosen, multi-master loose consistency with convergence, satisfies all of these requirements.