API Translation Layer for Idiosyncratic State Normalization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The variability in behavior among different application programming interfaces (APIs) that perform similar functions, such as configuration tasks, makes it challenging for programmers to develop automated approaches due to differences in hardware configuration, operating systems, and other factors, leading to idiosyncratic behaviors like asynchronous vs. synchronous operations and eventual consistency issues.

Innovation Solution

A translation layer is introduced to normalize API idiosyncrasies by mapping between the states of actual APIs and a set of normalized states, allowing for the separation of functional processing from idiosyncratic processing, enabling the recording and replaying of sequences of actions, and adapting rollback behavior to ensure consistent functionality across different APIs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If different APIs are used to perform configuration tasks on various computing systems, then the tasks can be executed on diverse hardware and operating systems, but the APIs exhibit idiosyncratic behaviors that prevent easy substitution and automation

Engineering Contradiction:
ImproveAPI compatibility across different computing systemsVSAvoidcomplexity of automated approach
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary layer (translation layer or adapter) that sits between the automation framework and the diverse APIs. This intermediary normalizes the idiosyncratic behaviors of different APIs, allowing a single automated workflow to interact with multiple API types through a unified interface, thereby reducing the complexity of developing automated approaches for diverse computing systems.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If one attempts to develop automated approaches for configuration tasks, then productivity increases, but the idiosyncratic behaviors of APIs make development challenging

Engineering Contradiction:
Improveautomation of configuration tasksVSAvoiddifficulty of developing automated approach
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent creates standardized templates or models of API interactions that can be copied and adapted across different API types. Instead of developing custom automation logic for each API, the framework uses standardized interaction patterns that can be replicated, reducing the difficulty of development while maintaining high productivity through automation.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If API substitution is attempted to improve flexibility, then versatility increases, but idiosyncratic behaviors prevent easy substitution

Engineering Contradiction:
ImproveAPI substitutabilityVSAvoidconsistent functionality
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent employs parameter changes and state normalization techniques to abstract away the idiosyncratic behaviors of different APIs. By standardizing the parameters and state representations used in API interactions, the system enables reliable API substitution while maintaining consistent functionality across different API implementations.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9336020B1Workflows with API idiosyncrasy translation layers
Publication Date: 2016.05.10 AMAZON TECH INC
  • US9336020B1 patent drawing
  • US9336020B1 patent drawing
  • US9336020B1 patent drawing

AI summary

User actions for configuring a computing environment may be recorded and converted to a workflow definition. A translation layer may be associated with the workflow definition and invoked to perform actions described by the workflow by utilizing one or more application programming interfaces. The translation layer may adapt to application programming interface idiosyncrasies by translating state transitions, including asynchronous to synchronous state transitions and synchronous to asynchronous state transitions.