Thread Synchronization for Platform-Neutral Java Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Enterprise applications developed in JAVA programming language often cannot be easily ported to mobile devices, as mobile devices lack a JAVA Virtual Machine, requiring developers to start from scratch and create separate applications for different platforms, leading to inefficiencies and increased development time.
Innovation Solution
A system that performs thread synchronization across layers of code, including native, system, and virtual machine code, allowing for communication and interaction between different programming environments, enabling a single application to run seamlessly on various platforms by embedding a JAVA Virtual Machine within a native application and using Virtual Machine Channels for message passing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If developers create separate applications for each mobile platform, then the application can be optimized for each platform, but the development time and effort increase significantly
Solution Approach 1:
The patent implements a universal application framework that can run on multiple mobile platforms (iOS, Android, Windows Phone) through a common codebase. The system uses a virtual machine layer that abstracts platform-specific differences, allowing a single application to function across different operating systems without requiring separate native applications for each platform.
Solution Approach 2:
The patent introduces a virtual machine as an intermediary layer between the application code and the native operating system. This virtual machine translates and executes application instructions in a platform-neutral manner, while handling platform-specific operations through standardized interfaces, thereby eliminating the need for platform-specific optimization while maintaining development efficiency.
2Adaptability or versatility
If developers use JAVA programming language for enterprise applications, then the application logic can be reused, but the application cannot run on mobile devices without JAVA Virtual Machine
Solution Approach 1:
The patent embeds a virtual machine within the mobile device application that serves as an intermediary to execute JAVA code. This embedded virtual machine enables mobile devices without native JAVA support to run JAVA-based enterprise applications by translating and interpreting the code in a platform-neutral environment, thus maintaining code reuse capability while achieving mobile compatibility.
Solution Approach 2:
The patent nests the virtual machine implementation within the mobile application itself, allowing the application to contain its own execution environment. This nested structure enables the application to run JAVA code locally on the mobile device without requiring the device to have a full JAVA Virtual Machine installed, thereby achieving compatibility while preserving code reuse.
3Ease of manufacture
If developers create platform-specific applications, then the application can leverage native platform features, but the application cannot run consistently across different platforms
Solution Approach 1:
The patent creates a universal application framework that provides consistent behavior across multiple platforms through a common codebase. The system uses standardized abstractions and a virtual machine layer that presents a uniform interface to applications, allowing the same code to run consistently on iOS, Android, and Windows Phone without requiring platform-specific versions.
Solution Approach 2:
The patent dynamically adapts application behavior to platform-specific requirements through configurable parameters and abstraction layers. The virtual machine and framework can modify execution parameters based on the underlying platform while maintaining the same application logic, thus achieving both cross-platform consistency and native integration capabilities through parameter-based adaptation.
4Ease of operation
If developers start fresh for each mobile application, then the application can be optimized for mobile context, but the development effort increases significantly
Solution Approach 1:
The patent segments the application into reusable components that can be developed once and deployed across multiple platforms. The system separates common business logic from platform-specific code through the virtual machine abstraction, allowing developers to create a single modular application that can be efficiently deployed to different mobile platforms without rewriting the entire application.
Solution Approach 2:
The patent implements a virtual machine and framework infrastructure that is prepared in advance to support multiple platforms. This preliminary setup allows developers to write application code once and have it automatically adapted for different platforms through the pre-configured virtual machine environment, significantly reducing the need for platform-specific development while maintaining mobile optimization.
Data Source
AI summary
A system performs thread synchronization across layers of code that implement an application, including native code, system code, and code in a virtual machine (“VM”). The system makes a call by the native code to the system code; and sends a message by the system code to the code in the VM. The system then sends a first response by the code in the VM to the system code; and sends a second response by the system code to the native code, where each one of the native code, the system code, and the code in the VM implements wait and notify functionality for communication with other codes that implement the application.


