Der Application Response Measurement (ARM) ist ein Standard der Open Group und dient zur Performancemessung von Transaktionen aus der Sicht des Benutzers. Technisch ist ARM eine Programmierschnittstelle, die für spätere Auswertungen in das Programm eingebaut werden muss. ARM ist verfügbar für die Programmiersprachen C und Java.
Geschichte Bearbeiten
Der Application Response Measurement (ARM) wurde ursprünglich von Tivoli und Hewlett-Packard entwickelt und in der Version 1.0 im Jahre 1996 veröffentlicht. Dieser Standard spezifiziert eine Programmierschnittstelle zur Performancemessung für die Programmiersprache C.
1997 wurde der ARM 2.0 Standard unter dem Dach der Computer Measurement Group (CMG) von der ARM Working Group entwickelt und erlaubte die Korrelation von Eltern-Kind-Transaktionen in einem verteilten Computersystem.
ARM 3.0 wurde 2001 von der Open Group als Standard angenommen. Dieser Standard spezifiziert eine Programmierschnittstelle für die Programmiersprache Java.
Im Herbst 2003 wurde die Version 4.0 des ARM-Standards von der Open Group angenommen. Diese Version bietet nun eine Programmierschnittstelle sowohl für die Programmiersprache C als auch für Java. Im Dezember 2004 wurde die Version 4.0 in einer zweiten Auflage überarbeitet.
ARM 4.1 erschien im Sommer 2007.
Einführung Bearbeiten
Moderne Anwendungen werden immer komplexer und oft auch über mehrere Rechner in einem Netzwerk verteilt. Hieraus ergeben sich neue Herausforderungen für Werkzeuge zur Beobachtung und Analyse dieser verteilten Anwendungen. Für diese Aufgabe wurde der ARM-Standard entworfen. Um einen genaueren Einblick in das Verhalten einer verteilten Anwendung zu bekommen, können folgende Fragen gestellt werden:
- Werden Geschäftstransaktionen ausgeführt und, wenn nicht, was sind die Gründe dafür?
- Wie groß ist die Antwortzeit einer Transaktion?
- Wo ist die Schwachstelle, welche Unter-Transaktionen können die Schwierigkeiten auslösen?
- Welche und wie viele Transaktionen werden in einer Anwendung ausgeführt?
- Wie kann die Performance einer Anwendung verbessert werden?
ARM kann die Beantwortung dieser Fragen erleichtern, indem die Performance von definierten Transaktionen gemessen und die Verfügbarkeit von Anwendungen überprüft wird. Es können sowohl sogenannte Geschäftstransaktionen als auch technische Transaktionen (also solche, die einen technischen Sachverhalt näher analysieren) gemessen werden.
Vorgehensweise Bearbeiten
Die grundsätzliche Vorgehensweise, um Anwendungen mit ARM zu instrumentieren und Performancedaten zu gewinnen, ist wie folgt:
- Ermitteln und Definieren sowohl der Geschäftstransaktionen als auch technischer Transaktionen.
- Instrumentierung der Anwendung mit Aufrufen zur ARM-Programmierschnittstelle.
- Start der instrumentierten Anwendung in ihrer gewohnten Laufzeitumgebung und Aufruf der fraglichen Transaktionen.
- Die benutzte ARM Implementierung stellt nun Messdaten zur Verfügung, die betrachtet, weiter verarbeitet oder statistisch analysiert werden können.
Konzepte Bearbeiten
ARM stellt verschiedene Konzepte zur Modellierung einer Anwendung und deren Performancemessung zur Verfügung. Die im nachfolgenden dargestellten Konzepte der ARM Applikation und der ARM Transaktion unterscheiden zwischen Definitionen und Instanzen. Eine Definition beschreibt die Eigenschaften eines Konzepts, wohingegen eine Instanz die eigentliche Messung beschreibt:
ARM instrumentierte Anwendungen Bearbeiten
Folgende Anwendungen sind bereits mit ARM instrumentiert:
- Apache HTTP Server mittels des ARM 4.0 Moduls mod_arm4. Alle HTTP Anfragen werden mittels ARM gemessen.
- IBM WebSphere Applikationsserver. Verschiedene Anfragen wie URI, JSP und andere können direkt mit ARM gemessen werden.
- IBM HTTP Server.
- IBM DB2 Datenbank Server.
- Das Software-System von SAS Institute unterstützt ARM 2.0 schon länger; mit der Version 9.2 wird nun auch ARM 4.0 unterstützt.
- Baan 5 und Infor ERP Ln 6.1