API Signature Extraction From Monolithic Application Artifacts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Identifying application programming interfaces (APIs) in monolithic applications, particularly those written in programming languages like COBOL, is challenging due to the lack of semantic meaning in program file names and the use of common data structures for function invocation.

Innovation Solution

A computer-implemented method that automatically identifies APIs by analyzing application artifacts, determining requests and responses, generating definitions for these APIs, and refactoring caller code to utilize them, using static analysis techniques and tools like Swagger.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If monolithic applications are converted into modular microservices, then adaptability and maintainability are improved, but device complexity and difficulty of detecting APIs increase

Engineering Contradiction:
ImproveadaptabilityVSAvoidcomplexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system performs self-service by automatically analyzing application artifacts, detecting APIs through static analysis, and generating service definitions without requiring manual intervention. The computing device autonomously identifies artifacts, determines their API signatures, and produces the necessary service layer definitions, enabling the conversion process to serve itself rather than relying on external manual effort.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the manual mechanical process of API identification and service extraction with an automated computational system. Instead of manually analyzing code artifacts and defining APIs, the system uses static analysis techniques and automated processing to detect artifacts, determine their interfaces, and generate service definitions, substituting human effort with machine-based automation.

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

2Productivity

If static analysis is used to automatically identify APIs, then productivity is improved, but measurement precision and reliability of API identification may worsen

Engineering Contradiction:
ImproveproductivityVSAvoidprecision
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system incorporates feedback mechanisms where the static analysis process continuously refines its detection of artifacts and API signatures. By analyzing application code and artifacts, the system determines API interfaces and uses this information to generate service definitions, with the ability to iterate and improve identification accuracy through multiple analysis passes and validation steps.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent introduces an intermediary layer of artifact analysis between the raw application code and the final API identification. Instead of directly analyzing code to find APIs, the system first identifies intermediate artifacts (such as data structures, function signatures, and interface definitions), then uses these artifacts as mediators to accurately determine the APIs, improving precision through this intermediate analysis step.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12619478B2Automatically identifying application programming interfaces based on application artifacts
Publication Date: 2026.05.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US12619478B2 patent drawing
  • US12619478B2 patent drawing
  • US12619478B2 patent drawing

AI summary

One or more application programming interfaces to be implemented for an application are automatically identified. The automatically identifying includes determining within the application one or more artifacts to be implemented as the one or more application programming interfaces. For an artifact of the one or more artifacts, one or more requests of the artifact are determined. The one or more requests are part of an application programming interface signature for an application programming interface identified based on the artifact. For an application programming interface identified based on the artifact, one or more definitions are generated. The one or more definitions include one or more definitions for the one or more requests of the artifact.