Forschung > Projekte > Performance Instrumentierung mit AOP

Performance Instrumentierung mit Hilfe Aspektorientierter Programmierung

Beteiligte an der Hochschule

  • Dr. Markus Debusmann
  • Alexander Hoffmann

Kooperationspartner

  • Technische Universität Berlin

Laufzeit

Beginn: 01.10.2002
Ende: 31.03.2004

Finanzierung

  • Labormittel

Veröffentlichungen

  • M. Debusmann; K. Geihs: "Efficient and Transparent Instrumentation of Application Components using an Aspect-oriented Approach", 14th IFIP/IEEE Workshop on Distributed Systems: Operations and Management (DSOM 2003), Oktober 2003 (BibTeX)
  • M. Debusmann; K. Geihs: "Towards dependable Web services", IEEE, Dependable Computing, 2004. Proceedings. 10th IEEE Pacific Rim International Symposium on, Seite 5-14, März 2004 (BibTeX)

Kurzbeschreibung

Die Überwachung von Antwortzeiten ist ein wichtiger Bestandteil des heutigen Service Level Managements. Mit dem Application Response Measurement (ARM) hat sich ein allgemein akzeptierter Industriestandard etabliert, der die feingranulare Vermessung von Antwortzeiten erlaubt. Hierzu müssen in den zu vermessenden Code zusätzlich Funktionsaufrufe eingefügt werden. Dies bedeutet für den Anwendungsentwickler einen zusätzlichen Aufwand, da er neben der reinen Anwendungsfunktionalität auch die Instrumentierung realisieren muss. Dieser Vorgang ist aufwändig und fehleranfällig.
Ziel dieses Projekts war die Steigerung der Effektivität des Instrumentierungprozesses. Dazu wurde ein Instrumentierungsansatz auf Basis der Aspektorientierten Programmierung (Aspect-oriented Programming, AOP) entwickelt, der eine effektive und transparente Instrumentierung von Anwendungskomponenten mit ARM ermöglicht.
Die grundlegende Idee von AOP ist die Konzentration auf die reine Funktionalität und die Ausgliederung aller nicht-funktionalen Anforderungen in sogenannte Aspekte. Mit Hilfe eines Aspekt-Webers werden die Aspekte dann zum Zeitpunkt der Übersetzung in den eigentlichen Code hineingewoben, so dass der entstehende Code sowohl die funktionalen als auch die nicht-funktionalen Anforderungen erfüllt.
In diesem Projekt wird die Performance-Instrumentierung auf der Basis des ARM-API als nicht funktionale Anforderung interpretiert und daher als Aspekt realisiert. Der Ansatz wurde für Servlets im Rahmen des Tomcat Web Containers erfolgreich umgesetzt. Hierbei lässt sich die aspektorientierte Instrumentierung problemlos mit manuell instrumentiertem Code zusammenbringen. Ein zweiter Prototyp demonstriert die aspektorientierte Instrumentierung von Web Services am Beispiel von Apache Axis.