Tuesday, December 05, 2006

Availability and Reliability

Those words.. in common passwords in secure and dependable system (i.e., critical system).

In Avizenis et al. [TSDC,2004]
- Availability : the readiness of the system to provide a correct service
- Reliability : the continuity of the system to provide a correct service

based on these definitions, it seems both properties are going in the same polarity. [Hypothesis] For instance, if a system is highly available then it means the system is also reliable.

However, I don't believe about that because if there is an attribute/a property is a subset of another than we shouldn't measure the system with both properties.
At least it is belief in Decision Science community.

In software engineering, we always have them (i.e., reliability and availability) as non-functional requirements, and we can assess how good the system using how is the achievements of the system towards its NFRs.
So if the hypotheses are correct than we should drop one of them (either reliability or availability)

Eureka!!
[1] http://www.weibull.com/hotwire/issue26/relbasics26.htm
[2] http://www.barringer1.com/ar.htm

They explain how both property are related but the are not going in the same polarity or direction.
They have intersection between them but not sub-set (as my hypothesis).
Moreover, in [1] it states that reliability is the part in calculating availability.
Availability is refined as the probability that a system is not failed or undergoing in maintenance when it needs to be used.
Reliability just represents the probability of a system will operate when it needs to be used.

Reliability doesn't take into account the fact that a system can have a failure/downtime.
It only measures the number of failure within certain period, or probability of having failure within a certain period of time.

Availability takes into consideration how much time that is necessary to make the system back into operate mode anymore.
Availability = Uptime / (Uptime + Downtime)
or
MTTF / MTTF + MTTR

MTTF stands for Mean-Time-To-Failure, it means how much is the average of time between failures
MTTR stands for Mean-Time-To-Repair, means how much is the average of time to repair the system for a failure

But we can simply remove reliability and it can be represented in availability because
Availability of a system can be decreased even when the reliability of the system is constant. It is because the MTTR is increased or the other way around.

So.. I hope you all understand what is the difference between two properties


--
PS:
In IEEE Transaction in Secure and Dependable Computing, [Avizenis, 2004] defines that dependability of a system are characterized as: availability, reliability, integrity, and maintainability.

so my next question.. I think we can derive availability from reliability + maintainability
;-) ... still think

But the next question

No comments: