Definition
Transparency ( Distributed System)
Transparency is the hiding of selected aspects of a distributed system from its clients, so that they can use its resources without explicitly managing those aspects of distribution.
A lower-level service layer handles distribution-specific information and operations on the client’s behalf. The client uses the layer’s interface rather than hardcoding resource locations or coordinating replicas itself. The layer provides the service with a specified quality of service.
The goal of many distributed systems is to make distributed resources appear as one coherent system. Transparency supports this goal; it does not remove the underlying network delays or failure risks.
Degree
The degree of transparency is the extent to which distribution is hidden from clients. Hiding every aspect is not always feasible or desirable: greater transparency can require additional work and reduce performance.
- Performance: a common interface does not remove differences in latency and bandwidth between local-area and wide-area networks. An operation that is fast locally may remain slow over a WAN.
- Failure masking: retries and failover can hide some failures, but add work and delay. Waiting for recovery may conceal a failure while making a request unacceptably slow.
- Replica consistency: maintaining the required consistency across replicas may require communication and synchronisation. Clients need not manage the copies, but still experience the coordination cost.
Choose the degree of transparency according to the application’s particular demands and its other non-functional requirements, including performance, availability, consistency and resource use. Transparency is an important goal, not a requirement to hide distribution at any cost.
Forms
Access Transparency
Definition
Link to originalAccess Transparency (Distributed System)
Access transparency is the form of transparency that hides differences in data representation and in how resources are accessed.
Clients use a common interface. The service layer translates data representations and performs resource-specific access operations, so clients need not handle these differences themselves.
Location Transparency
Definition
Link to originalLocation Transparency (Distributed System)
Location transparency is the form of transparency that hides where a resource is located from its clients.
Clients identify the resource without specifying its physical or network location. The service layer resolves that identity to the location needed for access.
Migration Transparency
Definition
Link to originalMigration Transparency (Distributed System)
Migration transparency is the form of transparency that hides the movement of a resource to another location from its clients.
After the move, clients can access the resource through the same interface and identity without updating location information themselves. Relocation transparency additionally covers movement while the resource is in use.
Relocation Transparency
Definition
Link to originalRelocation Transparency (Distributed System)
Relocation transparency is the form of transparency that hides the movement of a resource to another location while it is in use by clients.
The service layer maintains ongoing interactions across the move, so clients need not interrupt their use or re-establish access because the location changed. It extends migration transparency to active use.
Replication Transparency
Definition
Link to originalReplication Transparency (Distributed System)
Replication transparency is the form of transparency that hides the existence of multiple copies of a resource from its clients.
Clients access one logical resource. The service layer selects replicas and coordinates their state according to the service’s guarantees, rather than requiring clients to select or synchronise copies themselves.
Concurrency Transparency
Definition
Link to originalConcurrency Transparency (Distributed System)
Concurrency transparency is the form of transparency that hides the sharing of a resource by multiple clients making competing requests.
The service layer coordinates concurrent operations to preserve the resource’s specified behaviour. Clients need not explicitly coordinate with one another to prevent conflicting operations from violating those guarantees.
Failure Transparency
Definition
Link to originalFailure Transparency (Distributed System)
Failure transparency is the form of transparency that hides the failure and recovery of a resource from its clients.
The service layer detects failures and restores or substitutes the resource while preserving the service’s required behaviour, without requiring clients to manage recovery themselves. Only failures that can be masked within the service’s guarantees are hidden; this is not a promise that every failure is invisible.