Local Simulation Environment for Distributed Application Dataflow

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Testing and monitoring distributed software applications are obfuscated by their distributed nature, making it difficult to evaluate and visualize their performance prior to actual execution in a network environment.

Innovation Solution

A local simulation environment is created to mimic the distributed topology and data storage of a distributed software application, using a scheduler to manage computational vertices, data storage, and visualization tools to monitor and display dataflow during execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a distributed software application is executed in a distributed network environment, then the application can process data across multiple computing systems, but testing and monitoring the execution becomes obfuscated and difficult

Engineering Contradiction:
Improvedistributed execution capabilityVSAvoidtesting and monitoring difficulty
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent creates a local simulation environment that copies the essential characteristics of a distributed network environment. This simulation environment includes virtualized computing nodes, storage systems, and network infrastructure that replicate the distributed topology locally. By copying the distributed environment, developers can test and monitor applications without the complexity of actual distributed deployment, thus resolving the contradiction between distributed execution capability and testing difficulty.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The simulation environment acts as an intermediary between the distributed application and the actual distributed network. It provides a controlled local environment where the application can be tested before deployment to production. The intermediary simulation layer abstracts away the complexity of the real distributed environment while maintaining the essential behaviors and data flows, making testing and monitoring feasible.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Difficulty of detecting and measuring

If a local simulation environment is created to mimic distributed topology, then testing and monitoring becomes easier, but the complexity of the simulation system increases

Engineering Contradiction:
Improvetesting and monitoring easeVSAvoidsimulation environment complexity
Core Design Contradiction:
Difficulty of detecting and measuringVSDevice complexity

Solution Approach 1:

The simulation environment is designed to be universal, capable of simulating various distributed topologies and configurations through a single unified platform. It provides multi-functional capabilities including application execution, data flow monitoring, performance measurement, and topology configuration within one system. This universality reduces the need for multiple specialized tools and simplifies the overall system architecture despite the advanced functionality provided.

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

Solution Approach 2:

The simulation environment employs a nested architecture where virtualized components are contained within hierarchical layers. The simulation framework nests virtual machines, storage systems, and network virtualization within a unified management layer. This nesting approach organizes complexity into manageable layers, making the simulation environment easier to configure, manage, and extend while maintaining ease of testing and monitoring.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS9442827B2Simulation environment for distributed programs
Publication Date: 2016.09.13 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9442827B2 patent drawing
  • US9442827B2 patent drawing
  • US9442827B2 patent drawing

AI summary

A dataflow of a distributed application is visualized in a locally simulated execution environment. A scheduler receives a job graph which includes a graph of computational vertices that are designed to be executed on multiple distributed computer systems. The scheduler queries a graph manager to determine which computational vertices of the job graph are ready for execution in a local execution environment. The scheduler queries a cluster manager to determine the organizational topology of the distributed computer systems to simulate the determined topology in the local execution environment. The scheduler queries a data manager to determine data storage locations for each of the computational vertices indicated as being ready for execution in the local execution environment. The scheduler also indicates an instance of each computational vertex to be spawned and executed in the local execution environment based on the organizational topology and indicated data storage locations.