Static Analysis of Cross-Service Code Calls

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing systems face limitations in analyzing and detecting errors within executable code, particularly across different code objects of varying languages or architectures, as traditional compilers and interpreters are unable to provide similar analysis for service invocations, leading to challenges in modularized network-based services.

Innovation Solution

The on-demand code execution system enables static analysis of service invocations within code to identify potential issues such as parameter mismatches, privilege escalation vulnerabilities, and impedance mismatches, by maintaining a datastore of service information and utilizing this data to analyze direct and indirect service calls, even in complex call chains across different network services.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional compilers and interpreters are used for code analysis, then analysis can be performed for native code, but they are unable to provide analysis for service invocations across different code objects of varying languages or architectures

Engineering Contradiction:
Improveability to analyze service invocations across different languages and architecturesVSAvoiderror detection capability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces an intermediary code analysis system that sits between the service invocation and traditional compilers/interpreters. This system receives service invocation information, performs static analysis to detect errors, and provides feedback without interfering with the actual execution. The intermediary approach enables cross-language and cross-architecture analysis by translating diverse service invocations into a unified analysis framework, thereby improving adaptability while maintaining reliable error detection.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If static analysis of service invocations is performed to identify potential issues, then comprehensive error detection and security validation are achieved, but code execution time may increase due to analysis overhead

Engineering Contradiction:
Improveerror detection and security validationVSAvoidcode execution efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements preliminary static analysis of service invocations before code execution. By analyzing service invocation information, parameter mismatches, and security vulnerabilities in advance, the system identifies potential errors upfront. This preliminary action allows the actual code execution to proceed without repeated analysis overhead, as the analysis results are cached and reused, thereby maintaining high execution efficiency while achieving comprehensive error detection.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The code analysis system performs self-service by automatically analyzing service invocations without requiring external intervention or manual code review. The system autonomously detects errors, validates security, and provides feedback, eliminating the need for additional human resources or complex external analysis tools. This self-service approach streamlines the analysis process and maintains high productivity while ensuring reliable error detection.

Inventive Principle:
Principle #25Self-service

3Measurement precision

If code execution is required for analysis, then accurate error detection can be achieved, but latency increases and execution efficiency decreases

Engineering Contradiction:
Improveerror detection accuracyVSAvoidanalysis latency
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent replaces the mechanical approach of actual code execution with a static analysis mechanism. Instead of running the code to detect errors, the system analyzes service invocation information, parameter definitions, and security policies statically. This substitution eliminates the time-consuming execution process while maintaining accurate error detection through sophisticated static analysis techniques, thereby reducing latency without sacrificing measurement precision.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10353678B1Detecting code characteristic alterations due to cross-service calls
Publication Date: 2019.07.16 AMAZON TECH INC
  • US10353678B1 patent drawing
  • US10353678B1 patent drawing
  • US10353678B1 patent drawing

AI summary

Systems and methods are described for conducting static analysis of code invoking network-based services to identify, without requiring execution of the code, changes in code characteristics that may be caused due to the invocations of the network-based services. A system is provided that may analyze code to detect both direct invocations of services, as well as indirect invocations caused by the direct invocations. The system can utilize information regarding directly or indirectly invoked services to determine whether the invocation of such services will change desired code characteristics, such as idempotency or conformity to a standard. In some instances, the system can traverse a “call graph” of all services invoked by code either directly or indirectly to identify characteristic changes through multiple levels of indirection.