Example of a Distributed System

Active Directory

Structure/Architecture

Active Directory (AD) is a distributed directory that provides an authentication service to clients. AD is implemented as a hierarchical database structure that maintains information about users, computers, groups, roles etc. which can be divided into Organisational Units (OUs).

Active Directory can be served across multiple instances of Windows Server, to provide a distributed authentication service. The ‘Forest’ is the highest level of the structure and holds the information on all domains. Each ‘Domain Controller’ holds the forest information. Domains can be organised into a tree structure, which form part of the forest.

How does it meet goals of Distributed System?

  • Transparency
    • Individual Domain Controllers are invisible to the client.
    • Clients authenticating against AD only need to provide the domain name, and the appropriate DC will be contacted to perform the authentication request
  • Dependability
    • Domain Controllers can act independently of one another, and can perform authentication requests without needing to contact a centralised server - the directory is replicated onto each DC node.
  • Scalability
    • The scale of a domain can be expanded and manipulated (trees can be promoted/reorganised).
    • Any number of Domain Controllers can be added to the AD infrastructure to provide load balancing of client requests, or to serve different areas etc.
    • Domains can be split across separate LANs to provide multi-campus support
    • The replication process takes care of ensuring that all DCs are up to date: DCs can push and pull changes to the directory to one-another (this is not centralised, so the system is distributed)
  • Performance
    • The replication process aids in providing a high performance environment. DCs limit network traffic by passing changes peer-to-peer. The store-and-forward method means that changes can be propogated through the network in a fast and low-bandwidth manner.
    • The scalability of AD means that geographical performance barriers can be overcome, and the load balancing of multiple DCs also facilitates performance improvements.
  • Flexibility
    • AD is backwards compatible for most client operating systems, and provides LDAP and similar extensions to allow non-native clients to use the authentication service
    • Different versions of server OS and client OS can interoperate with Active Directory