Multi-Process Model for Cross-Platform App Porting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multi-platform applications face challenges in preventing deadlocks and efficiently porting mobile applications to desktop/laptop platforms without modifying core program code, particularly in managing inter-process communication and user interface element translation across different platforms.

Innovation Solution

A multi-process model is implemented, where a mobile application is executed using two or more processes, with a host process enabling automatic translation of program calls to generate user interface elements compatible with the host platform, utilizing inter-process communication links and frameworks like XPC for seamless execution and deadlock prevention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a multi-process model is used to execute mobile applications on desktop platforms, then platform compatibility is improved, but system complexity increases due to inter-process communication management

Engineering Contradiction:
Improveplatform compatibilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an inter-process communication (IPC) mechanism as an intermediary layer between the mobile application process and the desktop operating system process. This IPC layer handles all communications, data transfers, and control signals between processes, abstracting the complexity of multi-process coordination and enabling platform compatibility without requiring the application to directly manage system-level complexities.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If automatic translation of program calls is implemented, then ease of porting is improved, but processing overhead increases

Engineering Contradiction:
Improveease of portingVSAvoidprocessing overhead
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-defining translation rules and mappings between mobile platform API calls and desktop platform equivalents during the application compilation or initialization phase. Common program calls and UI element creation patterns are pre-translated or pre-configured, so that during runtime, the translation process can simply look up and apply these pre-established mappings rather than performing complex real-time analysis, thereby reducing processing overhead while maintaining ease of porting.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If inter-process communication links are established, then functionality is improved, but deadlock risk increases

Engineering Contradiction:
ImprovefunctionalityVSAvoiddeadlock risk
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent implements feedback mechanisms in the inter-process communication system by establishing acknowledgment protocols where each process must confirm receipt and processing status of messages before the sending process can proceed. This feedback loop allows the system to detect waiting conditions and potential deadlocks, and implement appropriate recovery actions such as timeout mechanisms or priority adjustments, thereby maintaining functionality while reducing deadlock risk through active monitoring and control.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11829787B2Multi-process model for cross-platform applications
Publication Date: 2023.11.28 APPLE INC
  • US11829787B2 patent drawing
  • US11829787B2 patent drawing
  • US11829787B2 patent drawing

AI summary

A multi-process model to support compiling applications for multiple platforms is described. In one embodiment, applications designed for execution on a mobile platform can be ported to and/or compiled for execution on a desktop/laptop platform without requiring modification of the core program code of the mobile application. The mobile application is executed using a multi-process (e.g., two or more process) model in which the core mobile application program generates content that is displayed by a host process. The host process enables automatic translation of program calls to generate mobile user interface elements into program calls that generate user interface elements of the host platform. The translation can be performed using a multi-process (e.g., two or more process) model in which the core application program generates content that is displayed by a host process.