# Apdex

Apdex (pour « Application Performance Index ») est un standard ouvert développé par une alliance d'entreprises. Elle détermine une méthode standard pour rendre compte et comparer les performances d'applications logicielles de services web. Son objectif est d'obtenir une vision de la satisfaction utilisateur à partir de mesures réelles des temps de réponse, en définissant une méthode uniforme pour analyser et rapporter à quel point les performances mesurées respectent les attentes des utilisateurs.

## Objectif de la norme

Dans le domaine du monitoring de sites web, les entreprises collectent des données relatives à la performance technique de leurs applications ou services web. Cependant, ces données fournissent rarement une vision simple et claire du niveau de satisfaction des utilisateurs de ces services vis-à-vis des performances techniques. Transformer les données de mesures en une seule métrique compréhensible est la façon idéale de suivre et rapporter la qualité d'expérience des internautes. Utiliser trop de métriques techniques rend souvent la vision confuse, au lieu de la clarifier.
Les mesures de temps de réponse (qui se basent uniquement sur la latence) des applications, en particulier, peuvent être obtenues à partir de différents outils de mesures, et une fois réunies, elles sont difficiles à évaluer car :
* Vues seules, elles ne révèlent pas si les personnes utilisant l'application considèrent son comportement comme très réactif, tout juste acceptable, ou trop lent.
* Utiliser des moyennes pour synthétiser des échantillons de mesures néglige des détails importants dans la distribution statistique, et peut cacher des informations relatives à la frustration des utilisateurs dues temps de latence, pouvant être significativement plus lents que les valeurs moyennes.
* Les objectifs fixés pour les valeurs de temps de réponse ne sont pas uniformes au travers des différentes applications (l'utilisateur acceptera plus facilement d'attendre si le contenu a de la valeur que pour une simple page de login par exemple), ce qui complique réellement l'évaluation de la satisfaction des utilisateurs. Il devient donc difficile de distinguer les services qui atteignent leurs objectifs de ceux qui ne les atteignent pas.
L'objectif de la méthode Apdex est de répondre à ces problèmes.

## La méthode Apdex
### Calcul de l'Apdex

La fonction permettant d'obtenir la valeur de l'Apdex est définie pour un ensemble de temps de chargement $R$, et pour un temps de chargement cible $T$ les valeurs de cette fonction sont comprises entre 0 et 1.
On définit alors $U$, l'ensemble des temps tolérables et $S$, l'ensemble des temps satisfaisants. $S$ et $U$ sont des sous-ensembles de $R$ et sont définis mathématiquement comme suit :
   $S=\{t\in R,t\leq T\}$
$U=\{t\in R,t>T\,\,et\,\,t\leq 4T\}$
La formule de l'Apdex est le nombre d'échantillons satisfaits plus la moitié des échantillons tolérés, divisé par le nombre total d'échantillons, soit :
$Apdex_{T}(R)={\frac {card(S)+{\frac {card(U)}{2}}}{card(R)}}$
Exemple :
Pour un échantillon contenant 100 temps et pour un temps cible fixé à 3 secondes. Si 60 temps sont en dessous de 3 secondes, 30 sont entre 3 et 12 secondes, et le reste au-delà de 12 secondes, le score Apdex est : (60 + 30 / 2 )/ 100 = 0.75

### Interprétation du résultat

Le standard Apdex permet de mesurer des niveaux de satisfaction quels que soient les types d'usage. La méthode Apdex convertit de multiples mesures en un "index" sur une échelle uniforme allant de 0 à 1 (0 = aucun utilisateur satisfait, 1 = utilisateurs tous satisfaits). Le score Apdex résultant est une mesure numérique de la satisfaction utilisateur concernant les performances des services web. Cet index permet de comparer des niveaux de satisfaction en tenant compte de l'expérience réelle de l'utilisateur et des objectifs qui ont été fixés pour chaque service. La norme apdex définit également des niveaux de satisfaction suivant le score obtenu :
| Bornes | Niveau de satisfaction |
| 0,94 à 1 | Excellent |
| 0,85 à 0,93 | Bon |
| 0,70 à 0,84 | Acceptable |
| 0,50 à 0,69 | Mauvais |
| 0 à 0,49 | Inacceptable |

## L'Alliance Apdex

L'Alliance Apdex, siégeant à Charlottesville, en Virginie, fut fondée en 2004 par Peter Sevcik, président de Netforecast, Inc. L'Alliance est un groupe d'entreprises qui collaborent pour établir le standard Apdex. Ces entreprises, ayant perçu le besoin de créer une méthode simple et uniforme pour analyser les performances d'applications, adoptent la méthode Apdex dans leurs opérations internes ou logiciels produits, et participent à l'affinage de la définition des spécifications Apdex. Les membres contributeurs de l'Alliance qui incorporent le standard dans leurs produits peuvent utiliser le nom ou logo Apdex quand l'Alliance les a certifiés conformes.
En janvier 2007, l'Alliance comprenait 11 membres contributeurs, et plus de 200 membres individuels. Alors que le nombre d'entreprises contributrices est resté relativement stable, les adhésions individuelles sont passées à plus de 800 en décembre 2008, et ont atteint 2000 en 2010.