Native Service Controller Single Process Architecture
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
Data Source
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.


