Software Application Debugging via Intermediary Service

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software applications often face difficulties in debugging due to limited capabilities for recording and controlling transactions, especially when they expose only a partial view of backend system transactions, making it challenging to determine the cause of errors and maintain efficient operation.

Innovation Solution

A computer-implemented method for debugging software applications involves assigning identifiers to debugging requests, establishing connections between the software application and a debugger interface using protocols like WebSocket and REST, and transmitting resolutions through OData, enabling effective error resolution and control.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If software applications expose only a partial view of backend system transactions, then the application interface remains simple and maintainable, but the capability to record and debug transactions is limited

Engineering Contradiction:
Improveapplication interface simplicityVSAvoidtransaction recording capability
Core Design Contradiction:
Ease of operationVSDifficulty of detecting and measuring

Solution Approach 1:

A debugging service is introduced as an intermediary component between the software application and the backend system. This service receives debugging requests from the application, executes them against the backend system, and returns resolutions. The intermediary enables enhanced debugging and transaction recording capabilities without modifying the application's simple interface, resolving the contradiction by adding complexity in a separate layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Difficulty of detecting and measuring

If debugging controls are added to recording and debugging transactions, then transaction recording capability is improved, but the device complexity increases

Engineering Contradiction:
Improvetransaction recording capabilityVSAvoiddebugging control complexity
Core Design Contradiction:
Difficulty of detecting and measuringVSDevice complexity

Solution Approach 1:

The debugging service acts as an intermediary that encapsulates complex debugging controls and execution logic. Instead of embedding complex debugging capabilities directly into the software application or device, the intermediary handles these complexities externally, allowing the application to maintain simplicity while gaining enhanced debugging capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The debugging functionality is segmented into a separate service component that operates independently from the application. This segmentation allows debugging capabilities to be developed, tested, and maintained separately, reducing the complexity burden on the application itself while improving transaction recording capabilities.

Inventive Principle:
Principle #1Segmentation

3Reliability

If a debugging service executes connection requests to a debugger interface, then error resolution capability is improved, but the system complexity increases

Engineering Contradiction:
Improveerror resolution capabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The debugging service serves as an intermediary layer that manages connections between the application and the debugger interface. It executes connection requests, handles authentication, and coordinates communication protocols, thereby improving error resolution capabilities while containing system complexity within the intermediary service rather than distributing it throughout the system.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11210205B2Application debugging
Publication Date: 2021.12.28 SAP SE
  • US11210205B2 patent drawing
  • US11210205B2 patent drawing
  • US11210205B2 patent drawing

AI summary

A method, a system, and a computer program product for debugging of software applications. A first identifier is assigned to a debugging request received from a software application for debugging a transaction executed by the software application. Based on the assigned first identifier, a connection request to a debugger is executed. The debugger generates an interface to a backend computing system that stores a resolution of the debugging request. A second identifier is associated with the generated interface. Based on the received second identifier, a connection between the software application and the generated interface is established. Using the first identifier, the resolution of the debugging request is obtained from the backend system. The resolution is transmitted to the debugging request for display by the software application.