Proxy Server for Hybrid App Network Simulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Automating the testing of software under degraded network conditions is challenging, especially in hybrid application environments, where simulating network conditions without impacting the control channel or affecting other applications is difficult.

Innovation Solution

A test system intercepts network communications in a hybrid application environment, modulating them to simulate various network conditions without requiring modifications to the native code or impacting the network controller, by overriding the network communication API and using a connection simulator library to simulate network conditions within the web browser.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If network-level degradation is applied to test hybrid applications, then network condition simulation is achieved, but connectivity to the testing harness is lost and all testing instances are affected

Engineering Contradiction:
Improvenetwork condition simulationVSAvoidloss of connectivity to testing harness
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent introduces a proxy server as an intermediary component between the hybrid application and the network. The proxy server captures and modulates network packets, allowing network condition simulation without directly degrading the actual network connection. This intermediary approach enables testing while maintaining connectivity to the testing harness and allowing concurrent testing across multiple instances.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If network-level degradation is applied to simulate network conditions, then network variability testing is achieved, but other applications and testing instances are affected

Engineering Contradiction:
Improvenetwork variability simulationVSAvoidconcurrent testing capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements local quality by applying network condition simulation specifically to individual testing instances through the proxy server, rather than globally at the network level. Each testing instance can have its own customized network conditions applied independently, allowing concurrent testing of multiple applications or instances with different network scenarios without mutual interference.

Inventive Principle:
Principle #3Local quality

3Productivity

If a single network controller is used for multiple testing instances, then resource sharing is achieved, but network degradation affects all instances simultaneously

Engineering Contradiction:
Improveresource sharing efficiencyVSAvoidindependent network condition control
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the network control function by introducing a software-based proxy server that operates at the application layer rather than relying on a single network controller. This segmentation allows each testing instance to have independent network condition control through software configuration, while still sharing the physical network infrastructure. The proxy server divides network traffic handling into individual instance streams, enabling independent modulation of network conditions for each instance.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10778559B2Facilitating simulation of network conditions in a hybrid application environment
Publication Date: 2020.09.15 SALESFORCE INC
  • US10778559B2 patent drawing
  • US10778559B2 patent drawing
  • US10778559B2 patent drawing

AI summary

Disclosed are some implementations of systems, apparatus, methods and computer program products for facilitating the simulation of a variety of network conditions for the testing of network-connected applications in a hybrid application environment. A test system in communication with a web browser intercepts and overrides a network communication to the application and then substitutes an altered or degraded communication.