Java Software Loading Method for Portable Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for loading Java software on portable devices with limited resources, such as chip cards, face challenges due to limited RAM and non-volatile memory, leading to inefficient data duplication and complex conversion processes, as well as limitations in dynamic class loading and security concerns with native code compilation.
Innovation Solution
A method for loading Java .class files into non-volatile memory of portable devices involves checking for existing data structures, creating and marking them as loaded, resolving internal and external links, and initializing static data, allowing for efficient execution by the virtual machine without temporary representations, thereby optimizing memory usage and simplifying the loading process.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If Java software is loaded by creating data structures in volatile memory for execution, then the software can be executed by the virtual machine, but the limited RAM capacity prevents effective loading and causes data duplication
Solution Approach 1:
The patent applies preliminary action by pre-creating and storing data structures in non-volatile memory before execution is needed. The virtual machine loads these pre-prepared data structures from non-volatile memory into volatile memory for execution, eliminating the need to create data structures during execution and thus overcoming the limited RAM capacity constraint.
Solution Approach 2:
The patent uses copying by creating data structure representations in non-volatile memory that can be copied into volatile memory when needed for execution. This allows the same data structures to be stored permanently in non-volatile memory while being temporarily copied to volatile memory for processing, resolving the memory capacity limitation.
2Adaptability or versatility
If .class files are converted to .cap files for Java Card format, then the software can be loaded onto chip cards, but the conversion process is complex and requires specific files for each chip card type
Solution Approach 1:
The patent applies universality by creating a unified data structure format that can be used across different chip card types without requiring separate conversion processes. The virtual machine is designed to load and execute data structures in a standardized format, making the system adaptable to various chip card configurations without increasing conversion complexity.
Solution Approach 2:
The patent uses an intermediary approach by introducing a standardized data structure format as a mediator between the .class files and different chip card types. This intermediate format simplifies the loading process by providing a common interface that the virtual machine can handle uniformly, eliminating the need for type-specific conversion files.
3Adaptability or versatility
If dynamic class loading is supported, then the system becomes more flexible, but the limited memory resources constrain the ability to load and manage multiple classes
Solution Approach 1:
The patent applies preliminary action by pre-loading and storing data structures in non-volatile memory before they are needed during execution. This allows the system to maintain dynamic class loading capability while having permanent storage for class data, effectively overcoming the limited volatile memory constraint.
Solution Approach 2:
The patent uses dynamics by implementing a flexible loading mechanism that can dynamically load and unload data structures from non-volatile memory into volatile memory as needed. This dynamic approach allows the system to manage limited RAM resources efficiently while maintaining the flexibility of dynamic class loading.
4Speed
If native code compilation is used to improve execution speed, then the program executes faster, but security concerns arise and memory usage increases
Solution Approach 1:
The patent uses copying by creating data structure representations that can be copied into volatile memory for execution without requiring native code compilation. This copying approach maintains security by keeping the code in an interpreted form while achieving fast execution through efficient data structure access and virtual machine optimization, avoiding the security risks of native compilation.
Data Source
AI summary
The invention relates to a method for loading a software having several modules loadable in the non-volatile memory of a portable digital device. The loading of at least one module includes testing the existence of a data structure associated with the module in the non-volatile memory and, when necessary, to create the data structure indicating it as empty. The method further includes resolving links for totality of internal elements and, afterwards, in marking the structure as loaded. The existence of an associated data structure is determined for each other module referenced in the loadable module and, when necessary, the structure is created and indicated as empty. The invention makes it possible to reduce the space occupied by the on-board software during loading of modules.


