Adapter Configuration GUI Generation via Control Flow Graph Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software application integration is hindered by unreliable network communication, differences in programming languages, data formats, and frequent changes in software applications and adapters, leading to complex configuration and migration challenges, especially across various computing platforms.

Innovation Solution

A method for configuring adapters that involves receiving adapter code, determining dependencies, deriving a control flow graph, and generating a configuration GUI to facilitate consistent and efficient configuration and migration across different platforms, while managing dependencies and adapter tasks through a unified configuration model.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If adapters are configured manually for each software application integration, then configuration flexibility is achieved, but configuration complexity and time consumption increase significantly

Engineering Contradiction:
Improveadapter configuration easeVSAvoidconfiguration complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The adapter performs self-configuration by automatically extracting configuration parameters from its own source code through code analysis. The system generates a configuration user interface automatically based on the adapter's code structure, eliminating the need for manual configuration and reducing complexity while maintaining flexibility.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system creates a virtual representation (model) of the adapter configuration by analyzing its source code. This configuration model serves as a template that automatically generates the user interface and configuration parameters, allowing consistent configuration across different adapters without manual intervention.

Inventive Principle:
Principle #26Copying

2Manufacturing precision

If adapters are configured with detailed parameters for each integration scenario, then configuration precision is improved, but configuration time and complexity increase

Engineering Contradiction:
Improveconfiguration precisionVSAvoidconfiguration time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The system performs preliminary code analysis to extract all necessary configuration parameters and generate the complete configuration user interface before the user needs to configure the adapter. This pre-generation approach ensures configuration precision is maintained while significantly reducing the time required for actual configuration.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The adapter's source code is analyzed to create a configuration model that captures all necessary parameters. This model is then used to automatically generate the user interface, ensuring that no configuration parameter is missed while the user only needs to provide minimal input values.

Inventive Principle:
Principle #26Copying

3Ease of operation

If a unified configuration interface is generated for all adapters, then ease of operation is improved, but the system complexity to generate and maintain this interface increases

Engineering Contradiction:
Improveconfiguration interface consistencyVSAvoidsystem complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The system uses code analysis to automatically generate the configuration user interface specific to each adapter's functionality. This self-service approach ensures each adapter receives a tailored interface (maintaining consistency in approach) while avoiding the need for a monolithic complex system, as each interface is generated independently from the adapter's own code.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

A generic template for configuration interfaces is used, but it is dynamically instantiated by analyzing each adapter's source code. This template-based approach with dynamic instantiation provides unified interface consistency while reducing system complexity compared to manually designing and maintaining separate interfaces for each adapter type.

Inventive Principle:
Principle #26Copying

4Adaptability or versatility

If adapter configuration is done through manual coding, then configuration flexibility is maintained, but adaptability to changes in software applications decreases

Engineering Contradiction:
Improveadaptability to software changesVSAvoidconfiguration ease
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The adapter configuration system automatically adapts to changes in software applications by analyzing the adapter's current source code to generate updated configuration interfaces. This self-service approach ensures the configuration interface always reflects the current state of the adapter, maintaining adaptability while simplifying the user configuration process.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary code analysis to detect changes in adapter functionality and automatically updates the configuration user interface accordingly. This pre-detected changes approach ensures the configuration interface remains adapted to software changes without requiring manual reconfiguration, while maintaining ease of operation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3502896B1Generation of an adapters configuration user interface using a data structure
Publication Date: 2024.09.04 SAP SE
  • EP3502896B1 patent drawingFigure 1~2
  • EP3502896B1 patent drawingFigure 3
  • EP3502896B1 patent drawingFigure 4

AI summary

Aspects of the application relate to a computer-implemented method, a computer program product and a computer system for configuring an adapter. In particular, the method comprises receiving code of the adapter. The method further comprises determining dependencies from the code, wherein at least one of the dependencies includes library code and a version of the library code. The method further comprises deriving a control flow graph from the code and the dependencies. The method further comprises determining, from the control flow graph, an adapter type of the adapter, wherein the adapter type specifies how the adapter processes messages. The method further comprises determining at least one implementation of at least one adapter task based on the control flow graph. When the determined implementation is not annotated in the code or the control flow graph, the method includes annotating the control flow graph to specify the implementation. The method further comprises generating a configuration GUI using the annotated control flow graph and the adapter type. The method further comprises performing a configuration task on the adapter according to input received via the configuration GUI.