Synchronous-Asynchronous Operation Intermediary Layer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems cannot seamlessly integrate synchronous operations with asynchronous systems, requiring modifications and proprietary operations, which limits the reuse of conventional operations and inter-operability between different programming languages.

Innovation Solution

A computer program product and method that utilize an ordered list and stack data structure to manage operations, where a primary synchronous operation is invoked alongside secondary asynchronous operations, allowing determination of the primary operation's completion based on the completion of secondary operations, enabling conversion and inter-operability between synchronous and asynchronous communication models.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If synchronous operations are used in an asynchronous system, then the system can maintain simple operation models, but the system cannot seamlessly integrate operations from different programming languages without modifications

Engineering Contradiction:
Improveinter-operability between programming languagesVSAvoidsystem integration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary layer that sits between synchronous and asynchronous operations. This layer uses an ordered list to queue operations and a stack to manage their execution context, allowing synchronous calls to be translated into asynchronous execution without requiring modifications to the operations themselves. The intermediary handles the conversion and coordination, enabling seamless integration between different programming language paradigms.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the operation execution into distinct phases: queuing operations in an ordered list, managing their execution context on a stack, and handling completion events separately. This segmentation allows the system to process synchronous operations in an asynchronous manner by breaking down the execution flow into manageable segments that can be handled independently.

Inventive Principle:
Principle #1Segmentation

2Productivity

If synchronous operations block execution waiting for API calls to return, then the operation completion can be determined simply, but the application experiences latency and performance lag

Engineering Contradiction:
Improveapplication execution speedVSAvoiduser-perceived latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by queuing operations in an ordered list before execution begins. The system prepares the operation context on the stack in advance, allowing asynchronous operations to proceed without blocking the main execution flow. This preliminary setup enables the application to continue executing other tasks while waiting for API calls to complete, eliminating user-perceived latency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces dynamic execution flow where operations can be invoked asynchronously and completed at different times. The ordered list dynamically manages the sequence of operations, while the stack dynamically tracks their execution state. This dynamic approach allows the system to adapt to varying operation completion times without imposing static blocking behavior, thereby improving productivity while minimizing perceived latency.

Inventive Principle:
Principle #15Dynamics

3Productivity

If asynchronous API calls are used, then execution continues without blocking, but the system requires proprietary operations and cannot reuse conventional synchronous operations

Engineering Contradiction:
Improvenon-blocking executionVSAvoidreusability of conventional operations
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal operation interface that can handle both synchronous and asynchronous operations through the same ordered list and stack mechanism. Conventional synchronous operations can be invoked without modification, and the system automatically manages their asynchronous execution. This multi-functionality allows the same operation framework to serve both paradigms, eliminating the need for proprietary operations while maintaining non-blocking execution.

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

4Reliability

If synchronous and asynchronous communication models are used separately, then each model works reliably within its own context, but there is no way for them to communicate with each other

Engineering Contradiction:
Improvecommunication model reliabilityVSAvoidcommunication model integration
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces an intermediary communication layer that translates between synchronous and asynchronous models. The ordered list queues communication requests, while the stack manages the translation of communication semantics. This intermediary maintains the reliability of each communication model by preserving their respective protocols while enabling integration, allowing synchronous requesters to communicate with asynchronous services without direct interaction between the two models.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9921887B2Accomodating synchronous operations in an asynchronous system
Publication Date: 2018.03.20 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9921887B2 patent drawing
  • US9921887B2 patent drawing
  • US9921887B2 patent drawing

AI summary

A method, system, and computer program product includes a processor storing, in an order of invocation, a plurality of operations in an ordered list. The first entry is a primary operation and that is a synchronous operation and the subsequent entries include an asynchronous operation, and the secondary operations are required to complete before the primary operation can complete. The processor invokes, in the order of invocation, the plurality of operations. Based on invoking the primary operation and the secondary operations, the processor stores information about the operations as content in a stack. The processor determines that the primary operation can be completed by analyzing a portion of the content of the stack.