Bytecode Instrumentation for Database Access Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software applications compiled into bytecode lack portability across different hardware platforms and do not provide insights into database access patterns, making it difficult to manage and analyze database interactions effectively.

Innovation Solution

A system and method that automatically analyzes bytecode to detect database access and adds additional bytecode to determine information such as connection details, authentication, and access statistics, allowing for dynamic execution on various platforms and virtual machines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If bytecode is used for platform independence, then portability across different hardware platforms is improved, but the ability to analyze and manage database access patterns deteriorates

Engineering Contradiction:
ImproveportabilityVSAvoiddatabase access information
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The system performs preliminary analysis of bytecode to detect database access patterns before execution, and pre-instruments the bytecode with additional monitoring code. This allows the system to capture database access information in advance while maintaining the portable bytecode format, resolving the contradiction between portability and information availability.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If additional bytecode is added to monitor database access, then database access information determination is improved, but bytecode complexity increases

Engineering Contradiction:
Improvedatabase access informationVSAvoidbytecode complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system introduces an intermediary bytecode instrumentation layer that sits between the original application bytecode and the database execution layer. This intermediary layer captures database access information through detected patterns without fundamentally altering the original application logic, thereby improving measurement precision while managing bytecode complexity through modular instrumentation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Difficulty of detecting and measuring

If bytecode analysis is performed to detect database access, then database access detection capability is improved, but processing time increases

Engineering Contradiction:
Improvedatabase access detectionVSAvoidprocessing time
Core Design Contradiction:
Difficulty of detecting and measuringVSLoss of time

Solution Approach 1:

The system performs bytecode analysis and database access pattern detection during the bytecode instrumentation phase, before the application is executed. By completing the detection work in advance during tool execution rather than during runtime, the system improves detection capability while minimizing the time loss during actual application execution.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8578339B2Automatically adding bytecode to a software application to determine database access information
Publication Date: 2013.11.05 ARCTERA US LLC
  • US8578339B2 patent drawing
  • US8578339B2 patent drawing
  • US8578339B2 patent drawing

AI summary

A system and method for automatically analyzing virtual machine bytecode of a software application and adding additional bytecode operable to determine information regarding database access performed by the software application are described. According to one embodiment of the method, program code of a software application may be received, wherein the program code includes bytecode for a virtual machine. The bytecode may be automatically analyzed to detect access to a database. The method may operate to automatically add additional bytecode to the bytecode of the software application, where the added bytecode is operable to determine information regarding the access to the database.