Application Portability Metric via System Call Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current technologies lack automated methods to measure how coupled an application is to an operating system, which is crucial for determining application portability and quality of design, essential for maintenance and refactoring.

Innovation Solution

A test process that executes an application under test, monitors and captures system calls specific to a particular operating system, computes a portability metric based on these calls, and provides a heatmap visualization to indicate dependency on the OS, using tools like enhanced Berkley Packet Filter (eBPF) to intercept and analyze OS-level system interactions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If automated monitoring of system calls is implemented, then application portability measurement capability is improved, but device complexity increases

Engineering Contradiction:
Improveapplication portability measurementVSAvoidtesting system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary testing system comprising a test process and monitoring mechanism that sits between the application under test and the operating system. This intermediary captures system calls without modifying the application code, enabling automated portability measurement while maintaining a clear separation of concerns and manageable system complexity

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces manual code review and manual testing mechanisms with an automated monitoring system that uses eBPF (extended Berkeley Packet Filter) technology to automatically capture and analyze system calls. This substitution transforms a labor-intensive manual process into an automated mechanical system, improving measurement precision while the automation itself manages the complexity

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Measurement precision

If comprehensive system call monitoring is performed, then portability metric accuracy is improved, but execution time increases

Engineering Contradiction:
Improveportability metric accuracyVSAvoidapplication execution time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The monitoring system uses eBPF technology to rapidly capture and process system calls in an efficient manner. By skipping unnecessary processing steps and using optimized filtering mechanisms, the system achieves comprehensive monitoring with minimal overhead, thus improving portability metric accuracy while limiting the time loss to acceptable levels

Inventive Principle:
Principle #21Skipping (Rushing through)

Solution Approach 2:

The system monitors system calls selectively rather than analyzing every single operation in detail. It focuses on capturing relevant system call patterns that indicate operating system dependencies, performing partial monitoring that provides sufficient accuracy for portability assessment without the full time cost of exhaustive analysis

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12131152B2Application portability metric measurement
Publication Date: 2024.10.29 CISCO TECHNOLOGY INC
  • US12131152B2 patent drawing
  • US12131152B2 patent drawing
  • US12131152B2 patent drawing

AI summary

In one embodiment, a test process herein may: execute an application under test; monitor execution of the application under test for system calls specific to a particular operating system in which the application under test is being executed; capture a count of system calls specific to the particular operating system during the execution of the application under test; and compute a portability metric based on the count of system calls specific to the particular operating system, the portability metric indicative of how dependent the application under test is on the particular operating system.