Packages Aspekte testbundle beep(){ } start(){ } classloading-Hook: wird vom OSGI-Framework ausgeführt bevor eine Klasse geladen wird. process-Class: javassist-Modifikator, um den Bytecode einer Klasse zu verändern. eigene Packages (welche zusätzliche Klassen beinhalten), können mit Hilfe eines eigenen, modifizierten Class-Loaders in die Runtime geladen werden. die verschiedenen Aspekte, welche in den vorhandenen Bytecode eingewebt werden sollen, werden ebenfalls mit der Hilfe von javassist-Methoden hinzugefügt. Remote- Aspekt Start Analyse- Aspekt Aufruf im Bundle- Manager ENDE lokaler oder remote Aufruf? Es werden folgende Aspekte in den Bytecode integriert Analyse-Aspekt: - wird vor jedem Aufruf integriert - prüft ob eine lokale Ausführung einer remote-Ausführung vorzuziehen ist. Remote-Aspekt: - wird in den Bytecode integriert, falls eine lokale Ausführung länger dauert als ein remote-Aufruf - der Bundle-Manager löst die Anfrage nach einem Remote-Aufruf auf und bindet einen vorhandenen Dienst (auf einem anderen Knoten) - nach der Ausführung wird der Aufruf-Kontext in den lokalen Classloader Kontext zurück gegeben, geladener und ausgeführter Bytecode lokaler (direkter) Ablauf remote Aufruf classloading-Hook: Com.example. bevor e | n e Klasse geladen e r d . testbundle process-Class: testßüfidle Bundle-Bee Class-Loader V javassist Aspekte Packages b9990{ wird vom OSGl-Framework ausgeführt javassist-Modifikator, um den Bytecode einer Classloading-Hook Klasse zuverandern. eigene Packages (welche zusätzliche Klassen beinhalten),können mit Hilfe eines eigenen, modifizierten Class-Loaders in die Runtime geladen werden. die verschiedenen Aspekte,welche in den vorhandenen Bytecode eingewebt werden sollen,werden ebenfalls mit der Hilfe von javassist-Methoden hinzugefügt Analyse‑ Aspekt lokaler remote Aufruf Ablauf Eswerden folgende Aspekte in den Bytecode integriert Analyse-Aspekt: - wird vor jedem Aufruf integriert - prüft ob eine lokaleAusführung einer remote-Ausführungvorzuziehen ist. Remote-Aspekt: - wird in den Bytecode integriert.falls eine lokaleAusführung länger dauert als ein remote-Aufruf - der Bundle‐Manager löst die Anfrage nach einem Remote-Aufrufauf und bindet einen vorhandenen Dienst (auf einem anderen Knoten) - nach derAusführungwird der Aufruf‐Kontext in den lokalen Classloader Kontext zurück gegeben,