Java Software Loading Method for Portable Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesoftware execution capabilityVSAvoidRAM capacity
Core Design Contradiction:
ProductivityVSQuantity of substance

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #26Copying

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

Engineering Contradiction:
Improvechip card compatibilityVSAvoidconversion process complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvedynamic class loading capabilityVSAvoidavailable memory for classes
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #15Dynamics

4Speed

If native code compilation is used to improve execution speed, then the program executes faster, but security concerns arise and memory usage increases

Engineering Contradiction:
Improveexecution speedVSAvoidsecurity vulnerabilities
Core Design Contradiction:
SpeedVSObject-affected harmful factors

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.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS7913265B2Method of loading software with an intermediate object oriented language in a portable device
Publication Date: 2011.03.22 THALES DIS FRANCE SA
  • US7913265B2 patent drawing
  • US7913265B2 patent drawing
  • US7913265B2 patent drawing

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.