Event-Driven Code Verification Using Randomized Path Sampling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional model checking algorithms are inefficient in verifying the reliability, performance, and security of event-driven applications in SDN networks due to their inability to infer anomalous behavior, excessive memory requirements, and inability to assess soft real-time properties, especially when dealing with long input sequences and recursive backtracking.

Innovation Solution

A system that executes event-driven applications along multiple execution paths with randomly chosen outcomes at non-deterministic points, using unsupervised machine learning to infer normal ranges of properties and detect anomalies, thereby reducing memory usage and identifying anomalous paths without pre-defined thresholds.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional model checking algorithms use recursive backtracking to examine all execution paths, then code verification thoroughness is improved, but memory requirements increase exponentially

Engineering Contradiction:
Improvecode verification thoroughnessVSAvoidmemory requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the execution path exploration into independent sampling instances rather than exhaustive traversal. Each sampling instance executes the program along a single path without saving complete state, dividing the verification task into many small independent units that consume minimal memory each.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses transient execution contexts that are created and discarded for each sampling instance. Instead of maintaining persistent state storage for all paths, each execution path is explored in a temporary, disposable context that is immediately released after sampling, avoiding cumulative memory accumulation.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

2Reliability

If conventional model checking saves complete state at every non-deterministic point, then all execution paths can be explored, but processing time increases due to state space explosion

Engineering Contradiction:
Improveexecution path coverageVSAvoidverification processing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies partial action by sampling a subset of execution paths rather than exhaustively exploring all possible paths. Multiple sampling instances collectively provide sufficient verification coverage without the time cost of complete enumeration, achieving adequate reliability through statistical sampling.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent skips the time-consuming state saving and backtracking operations by executing paths forward without interruption. Each sampling instance rushes through its designated path to completion without pausing to save state, eliminating the iterative overhead of conventional model checking.

Inventive Principle:
Principle #21Skipping (Rushing through)

3Extent of automation

If conventional model checking follows predetermined execution paths, then systematic verification is achieved, but ability to detect anomalous behavior is reduced

Engineering Contradiction:
Improveverification systematicityVSAvoidanomaly detection capability
Core Design Contradiction:
Extent of automationVSMeasurement precision

Solution Approach 1:

The patent introduces dynamics by randomly selecting outcomes at non-deterministic points for each sampling instance rather than following fixed predetermined paths. This dynamic adaptation allows the verification process to discover anomalous behaviors that may not appear on standard execution paths while maintaining automated systematic verification through structured sampling.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10409705B2Automated code verification and machine learning in software defined networks
Publication Date: 2019.09.10 NOKIA OF AMERICA CORP
  • US10409705B2 patent drawing
  • US10409705B2 patent drawing
  • US10409705B2 patent drawing

AI summary

A processor is configured to execute an event-driven program along a plurality of execution paths. Each of the plurality of execution paths is determined by randomly chosen outcomes at non-deterministic points along the plurality of execution paths. A memory is configured to store values of properties of the event-driven code in response to executing the event-driven program along the plurality of execution paths. The processor is also configured to infer normal ranges of the properties of the event-driven program based on the values stored in the memory.