written 2.9 years ago by |
FAULT TOLERANCE
Being fault tolerant is strongly related to what are called dependable systems.
Dependability covers a number of useful requirements for distributed systems including the following :
- Availability
- Reliability
- Safety
- Maintainability
SCALABILITY
• Scalability refers to the capability of a system to handle a growing amount of work or
• It's the potential to perform more total work in the same elapsed time when processing power is expanded to accommodate growth.
A system is said to be scalable if it can increase its workload and throughput when additional resources are added.
OPENNESS
The property of a system to work with a number and sort of components that is not set once and for all at design time.These system are fundementally unpredicatable.
RELIABILITY
- Reliability refers to the property that a system can run continuously without failure.
This means that : -
- reliability is defined in terms of a time interval instead of an instant in time.
- A highly-reliable system is one that will most likely continue to work without interruption during a relatively long period of time.
For example
- If a system goes down for one millisecond every hour, it has an availability of over 99.9999 percent, but is still highly unreliable.
TRANSPARENCY
Transparency is defined as the concealment from the user and the application programmer of the separation of components in a distributed system, so that the system is perceived as a whole rather than as a collection of independent components.
Eight forms of transparency:
Access transparency
Location transparency
Concurrency transparency
Replication transparency
Failure transparency
Mobility transparency
Performance transparency
Scaling transparency
Transparency in Distributed Systems
Access transparency: enables local and remote resources to be accessed using identical operations.
Location transparency: enables resources to be accessed without knowledge of their physical or network location (for example, which building or IP address).
Failure transparency: enables the concealment of faults, allowing users and application programs to complete their tasks despite the failure of hardware or software components.
Mobility transparency: allows the movement of resources and clients within a system without affecting the operation of users or programs.
Performance transparency: allows the system to be reconfigured to improve performance as loads vary. Scaling transparency: allows the system and applications to expand in scale without change to the system structure or the application algorithms.
Concurrency transparency: enables several processes to operate concurrently using shared resources without interference between them.
Replication transparency: enables multiple instances of resources to be used to increase reliability and performance without knowledge of the replicas by users or application programmers.