Unified Data Model Code Generator for OpenAPI AsyncAPI

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems require extensive downtime and integration testing for modifications to applications that interact with multiple versions of specifications, such as OpenAPI and AsyncAPI, due to the need for separate data models for each version, leading to complexity and inefficiency in maintaining and updating source code.

Innovation Solution

A method and system for generating source code based on a unified data model by parsing and analyzing multiple specifications to determine correlations and groups, allowing for the creation of a unified model that simplifies interface integration and reduces complexity by generating a class hierarchy and interface hierarchies, thereby enabling consistent processing across different specifications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If separate data models are created for each specification version, then compatibility with multiple specifications is achieved, but system complexity and maintenance difficulty increase

Engineering Contradiction:
Improvecompatibility with multiple specificationsVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent merges multiple version-specific data models into a single unified data model that can handle multiple OpenAPI and AsyncAPI specifications. The code generator consolidates these separate models, eliminating redundancy and simplifying the system architecture while maintaining compatibility across specification versions through a unified interface layer.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The unified data model is designed to serve multiple specification versions simultaneously through a single interface. The code generator creates a universal data model structure that can process and generate code for different OpenAPI and AsyncAPI versions without requiring separate specialized models, thereby reducing complexity while preserving adaptability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If separate data models are maintained for each specification version, then version-specific requirements are met, but maintenance time and effort increase

Engineering Contradiction:
Improveversion-specific requirements fulfillmentVSAvoidmaintenance time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

By consolidating multiple version-specific data models into one unified model, the patent reduces the number of files and components that need to be maintained. The unified model centralizes version handling logic, so updates to specification versions require changes in only one location rather than propagating through multiple separate models, significantly reducing maintenance time while preserving version-specific compliance.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If separate data models are used for each specification version, then version compatibility is ensured, but application downtime during updates increases

Engineering Contradiction:
Improveversion compatibilityVSAvoidapplication downtime
Core Design Contradiction:
ReliabilityVSDuration of action of moving object

Solution Approach 1:

The unified data model allows the system to handle multiple specification versions through a single centralized structure. When a specification version is updated, the change is made in one location and automatically applies across all versions, eliminating the need for staged rollouts and reducing application downtime. The unified model maintains version compatibility through its design while enabling faster deployment updates.

Inventive Principle:
Principle #5Merging (Combining)

4Adaptability or versatility

If multiple separate data models are implemented, then comprehensive specification support is achieved, but code generation complexity increases

Engineering Contradiction:
Improvespecification support coverageVSAvoidcode generation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The code generator merges the logic for generating code from multiple specification versions into a single unified code generation process. Instead of maintaining separate code generation pipelines for each version, the unified data model provides a single entry point that handles version-specific details internally, simplifying the code generation architecture while maintaining comprehensive specification support.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11567738B2Code generator for creating a unified data model for multiple language specifications
Publication Date: 2023.01.31 RED HAT LLC
  • US11567738B2 patent drawing
  • US11567738B2 patent drawing
  • US11567738B2 patent drawing

AI summary

A system, includes a memory and a processor, where the processor is in communication with the memory. The processor is configured to receive a request to generate source code associated with a unified model defined by a set of specifications. A first specification of the set of specifications is parsed into a first set of components and a second specification of the set of specifications is parsed into a second set of components. The first set of components and the second set of components are analyzed to determine a correlation set and groups within the first set of components and the second set of components. The first set of components and the second set of components, incorporating the correlation set and groups, are combined to generate the unified model. The source code associated with the unified model is generated.