Suche
Geheimagenten (oder geheime Agenten) bei ihrer Arbeit

James Bond lässt grüßen

Bernd Müller
© iStockphoto.com/Agustinc

Java führte in der Version 5 das Konzept eines Agenten ein. Obwohl dies bereits vor zehn Jahren geschah, scheinen Agenten in der Entwicklergemeinde recht unbekannt zu sein. Dieser Artikel soll die geheimen und unbekannten Agenten einem breiteren Entwicklerkreis bekannt machen.

Java 5.0 führte 2005 das Package java.lang.instrument ein. Die Aufgabe des Packages wird im Javadoc beschrieben als „Provides services that allow Java programming language agents to instrument programs running on the JVM. The mechanism for instrumentation is modification of the byte-codes of methods.“. Ein Java-Agent kann also mithilfe von Bytecode-Manipulationen Programme instrumentieren. Unter Instrumentieren versteht man nach Wikipedia „an ability to monitor or measure the level of a product’s performance, to diagnose errors and to write trace information“. Für den Autor ist diese Definition zu speziell. Allgemein können Java-Agenten verwendet werden, um sinnvolles Verhalten, das nicht im (ursprünglichen) Code steht, nachträglich und nur bei Bedarf einzubauen.

Da Agenten zwei verschiedene Arten der Instrumentierung erlauben, wollen wir diese getrennt behandeln. Ein Agent kann erstens eine Klasse instrumentieren, wenn diese beim Programmstart in die JVM geladen wird (Methode premain()) und zweitens eine bereits geladene Klasse instrumentieren (Methode agentmain()). Zusätzlich kann die Instrumentierung durch eine neue Binärversion der Klasse (Redefinition) oder durch Verwendung und Änderung der bestehenden Binärversion (Retransformation) erfolgen.

(Lesen Sie den kompletten Artikel im Java Magazin 3.15)

Geschrieben von
Bernd Müller
Bernd Müller
Bernd Müller ist Informatiker und als Hochschulprofessor und GmbH-Geschäftsführer tätig. Er ist Autor mehrerer Java-EE-Bücher, Sprecher auf verschiedenen Konferenzen und war Mitglied der JCP-Expert-Groups für JSF 2.2 und JPA 2.1.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: