OSGi Profiler Bundle for Dynamic Performance Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current solutions for monitoring the performance of Open Service Gateway Initiative (OSGi) applications with multiple bundles are inadequate, as they require stopping the application to add tracing logs and cannot dynamically control performance monitoring without interrupting the running of adapter bundles, especially when some bundles depend on unmodifiable libraries.

Innovation Solution

A profiler bundle generated using Aspect-Oriented Programming (AOP) extensions, such as AspectJ, is run concurrently with the OSGi application, allowing selective enabling and disabling of performance monitoring for individual adapter bundles during runtime through a graphical user interface, using pointcuts and Boolean conditions to control data collection without interrupting the application.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If tracing logs are added to monitor performance of OSGi applications, then measurement precision is improved, but the application must be stopped which causes loss of time

Engineering Contradiction:
Improveperformance monitoring accuracyVSAvoidapplication downtime
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The profiler bundle is installed and configured in advance using AspectJ weaving before the application runs. The performance monitoring infrastructure is prepared beforehand, so when monitoring is needed, the application can immediately start collecting data without stopping.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a profiler bundle as an intermediary component that sits between the application bundles and the performance data collection mechanism. This profiler bundle uses AspectJ pointcuts to intercept method calls and collect performance metrics without requiring modifications to the application code or stopping the application.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If performance monitoring is enabled for all adapter bundles, then measurement precision is improved, but device complexity increases

Engineering Contradiction:
Improveperformance monitoring accuracyVSAvoidmonitoring system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent enables selective performance monitoring by allowing users to specify particular adapter bundles through a manifest file or command-line parameters. Instead of uniformly monitoring all bundles, the system applies monitoring only to selected bundles based on their identifiers, reducing overall system complexity while maintaining precision for critical components.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The monitoring configuration is made dynamic and flexible. Users can enable or disable monitoring for specific bundles by modifying the manifest file or command-line parameters without restarting the entire application. The profiler bundle dynamically adjusts which bundles are monitored based on these configurations.

Inventive Principle:
Principle #15Dynamics

3Measurement precision

If tracing logs are added to unmodifiable libraries, then measurement precision is improved, but ease of manufacture worsens

Engineering Contradiction:
Improveperformance monitoring accuracyVSAvoidimplementation difficulty
Core Design Contradiction:
Measurement precisionVSEase of manufacture

Solution Approach 1:

The patent extracts the performance monitoring functionality from the application bundles and libraries into a separate profiler bundle. This allows the monitoring logic to be implemented independently without modifying the unmodifiable libraries. The profiler bundle uses AspectJ pointcuts to intercept calls to library methods and collect performance data while leaving the original libraries unchanged.

Inventive Principle:
Principle #2Taking out (Extraction)

4Adaptability or versatility

If performance monitoring is controlled dynamically during runtime, then adaptability is improved, but device complexity increases

Engineering Contradiction:
Improveruntime control flexibilityVSAvoidcontrol mechanism complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements runtime control of performance monitoring by allowing users to change parameters such as the list of monitored bundle identifiers through a manifest file or command-line arguments. These parameter changes can be applied without stopping the application, enabling dynamic adaptation of monitoring scope and targets while maintaining relatively simple control mechanisms.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP4020217A1Performance monitoring for OSGI application with bundles
Publication Date: 2022.06.29 SAP SE
  • EP4020217A1 patent drawingFigure 1
  • EP4020217A1 patent drawingFigure 2
  • EP4020217A1 patent drawingFigure 3

AI summary

Techniques for monitoring performance of an OSGi-based application having multiple bundles are disclosed. In some embodiments, a computer system performs operations comprising: running an OSGi application having a plurality of adapter bundles, the running of the OSGi application comprising using each one of the plurality of adapter bundles to connect to a corresponding source database and replicate data from the corresponding source database; running a profiler bundle concurrently with the running of the OSGi application, the profiler bundle being generated using an AOP extension, the running of the profiler bundle comprising collecting performance data for selected ones of the plurality of adapter bundles during the running of the OSGi application, the selected ones of the plurality of adapter bundles being defined based on input provided by a user via a GUI during the running of the OSGi application; and performing a function using the collected performance data.