Native Service Controller Single Process Architecture

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems require separate processes for native and non-native code applications, necessitating inter-process communication (IPC) mechanisms for data exchange, which incurs additional computing resources and risks exposing sensitive information.

Innovation Solution

A native service controller executes native and non-native code components within a single process, eliminating the need for IPC by sharing the same virtual memory space and using a loader manager to load runtime environments for non-native code applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If separate processes are used for native and non-native code applications, then each application can be executed independently, but additional computing resources are consumed and sensitive information may be exposed through IPC mechanisms

Engineering Contradiction:
ImprovesecurityVSAvoidcomputing resource usage
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent merges native code applications and non-native code applications into a single process, eliminating the need for IPC mechanisms. The native code executable and the runtime environment for non-native code share the same virtual address space, allowing direct memory access between components while reducing security risks and resource overhead associated with inter-process communication.

Inventive Principle:
Principle #5Merging (Combining)

2Ease of operation

If separate processes are used for native and non-native code applications, then application independence is maintained, but IPC mechanisms are required for data exchange

Engineering Contradiction:
Improvedata exchangeVSAvoidsystem complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent combines native and non-native code execution into a single process with a shared virtual address space. This allows data exchange between native code and non-native code applications through direct memory access without requiring IPC mechanisms, simplifying the system architecture while improving ease of data exchange.

Inventive Principle:
Principle #5Merging (Combining)

3Adaptability or versatility

If a runtime environment is loaded for non-native code applications, then the application can execute, but additional memory and processing resources are required

Engineering Contradiction:
Improveapplication compatibilityVSAvoidmemory resources
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent merges the runtime environment for non-native code with the native code executable in a single process. By loading the runtime environment (such as CLR, Mono Runtime, JavaVM) into the same virtual address space as the native code, the system achieves application compatibility while sharing memory resources and reducing overall memory consumption compared to separate process execution.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9672081B1Native service controller
Publication Date: 2017.06.06 CYLANCE INC
  • US9672081B1 patent drawing
  • US9672081B1 patent drawing
  • US9672081B1 patent drawing

AI summary

In one respect, there is provided a system for loading managed applications. The system may include at least one processor and at least one memory. The memory may include program code which when executed by the at least one memory provides operations including: generating a single process, the generating comprising running a native code executable, the running of the native code execute loading a loader manager as part of the single process; loading, by the loader manager running within the single process, a runtime environment corresponding to a non-native code application; and loading, by the loader manager, the non-native code application, the non-native code application being loaded to run as part of the single process.