Executable Code Analysis for Non-Portable API Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The complexity and cost of developing and deploying enterprise-level computer system applications are increased due to the need for scalability, availability, and interoperability, with traditional portability verification tools being inefficient in identifying non-portable features that may lead to compatibility issues across different application server vendors, even when they claim compatibility with the same standards.

Innovation Solution

A method and system for detecting non-portable application programming interface usage via executable code analysis, which identifies conditions for inclusion of object classes within acceptable classes, analyzes executable code to generate a portability verification report, and specifies portability criteria without modifying source code, ensuring compliance with standard API specifications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional portability verification tools are used, then source code access is required for analysis, but this increases development cost and complexity

Engineering Contradiction:
Improveportability verification accuracyVSAvoidverification system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent uses deployment descriptors as an intermediary to verify portability without accessing source code. The tool analyzes the compiled application's deployment descriptors, which contain information about API usage and configuration, thereby mediating between the need for verification and the restriction of source code access

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the mechanical process of source code analysis with automated analysis of deployment descriptors and executable code metadata. This substitution eliminates the need for manual source code review while maintaining verification capability through automated tooling

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

2Adaptability or versatility

If executable code analysis is used instead of source code access, then vendor dependency is reduced, but detection precision of non-portable features may be compromised

Engineering Contradiction:
Improveapplication portabilityVSAvoidnon-portable feature detection accuracy
Core Design Contradiction:
Adaptability or versatilityVSMeasurement precision

Solution Approach 1:

The patent performs preliminary analysis during the deployment descriptor validation phase, before actual deployment. By checking API usage against the specification early in the process, the system identifies non-portable features proactively, allowing developers to correct issues before they cause deployment problems

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a feedback mechanism where the portability verification tool provides detailed reports on non-compliant API usage. The system compares detected API calls against the application server specification and feeds back specific violations, enabling iterative improvement of application portability

Inventive Principle:
Principle #23Feedback

3Reliability

If comprehensive quality assurance testing is performed across multiple platforms, then application compatibility is ensured, but testing cost and time increase substantially

Engineering Contradiction:
Improveapplication compatibilityVSAvoidtesting cycle duration
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary portability verification by analyzing deployment descriptors and executable code metadata before actual deployment testing. This preliminary analysis identifies potential compatibility issues early, allowing developers to address them before investing time in extensive multi-platform testing

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies preliminary anti-action by proactively detecting and flagging non-portable API usage patterns before they can cause deployment failures. The system prevents compatibility problems by identifying violations of the application server specification in advance, rather than waiting for testing to reveal issues

Inventive Principle:
Principle #9Preliminary anti-action

Data Source

PatentUS7945902B1Detection of non-standard application programming interface usage via analysis of executable code
Publication Date: 2011.05.17 ORACLE AMERICAN INC
  • US7945902B1 patent drawing
  • US7945902B1 patent drawing
  • US7945902B1 patent drawing

AI summary

A method for detection of non-portable application programming interface usage via executable code analysis includes identifying one or more conditions for inclusion of an object class within a set of acceptable object classes, wherein a reference to any object class of the set of acceptable object classes by an application is in compliance with a specified portability criterion. The method further includes analyzing an executable version of the application to identify object classes referenced by the application, and generating a portability verification report for the application, wherein the report indicates that the application violates the specified portability criterion if an object class referenced by the application does not meet at least one of the conditions for inclusion in the set of acceptable classes.