IP Library Granted Patent US 7,913,265
Granted Patent B2
US 7,913,265 · App. 11/629,518 · Granted Mar 22, 2011

Method of loading software with an intermediate object oriented language in a portable device

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,913,265
App. No.
11/629,518
Granted
Mar 22, 2011
Kind
B2
Abstract

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.

Claims (38)

1. A method of loading software compiled into intermediate object oriented language and comprising several modules for loading into non-volatile memory of a portable digital device equipped with a virtual execution machine, in which said modules are loaded in a form that can be executed by an interpreter of said virtual machine, wherein the loading of at least one of said modules comprises the following steps:

checking for the existence of a data structure associated with said module in the non-volatile memory;

if this data structure does not exist, creating a data structure associated with said module in the non-volatile memory and marking this data structure as not loaded;

resolving links for all internal elements of said module in said data structure and then marking the data structure as loaded;

for every other module referenced in the module being loaded, checking for the existence of a data structure associated with said other module; and

if there is no data structure associated with said other module, creating a data structure associated with said other module in the non-volatile memory and marking this data structure as not loaded.

2. The method according to claim 1 , wherein the step of creating the data structure associated with the module to be loaded comprises the step of storing in this data structure a descriptor of the module to be loaded.

3. The method according to claim 1 ,

wherein the link resolution step comprises:

verifying the existence of a data structure associated with each internal element;

if said data structure does not exist, creating a data structure associated with an internal element in the non-volatile memory;

for each external element mentioned in the module being loaded:

verifying the existence of a data structure associated with this external element;

if said data structure does not exist, creating a data structure associated with an external element in the non-volatile memory.

4. The method according to claim 1 , wherein the loading of said module also comprises, after the link resolution, marking said module as linked if all external modules it mentions are marked as loaded.

5. The method according to claim 4 , wherein:

a check for the existence of a data structure comprises a conformity test between said data structure, if it exists, and its reference in the module being loaded, and the storage of conformity check information; and

deleting the conformity check information of the references when the module is marked as linked.

6. The method according to claim 4 , further comprising the following steps:

initialising the static data of the module marked as linked; and

marking said module as ready for use.

7. The method according to claim 6 , wherein code stored in the digital device and intended to initialise static data is deleted once the module is marked as ready for use.

8. The method according to claim 1 , wherein the modules to be loaded are compiled Java .class files.

9. The method according claim 8 , wherein the data structures are data structures that can be handled by the virtual machine.

10. The method according to claim 8 , wherein the digital device is a chip card with an embedded Java or DotNet virtual machine.

11. The method according to claim 1 , wherein said module loading is carried out for all the program modules.

12. The method according to claim 1 , wherein, following the unavailability of a module, the availability of said module is checked and the module is automatically loaded by the portable device.

13. A loader for a program compiled into an intermediate object oriented language comprising several modules to be loaded in a portable digital device, said loader being stored in the non-volatile memory of the device, said loader accessing modules stored on a source device and executing the following steps in the process of loading the program:

checking for the existence of a data structure associated with a module in the non-volatile memory;

if this data structure does not exist, creating a data structure associated with said module in the non-volatile memory and marking this data structure as not loaded;

resolving links for all internal elements of said module in said data structure and then marking the data structure as loaded;

for every other module referenced in the module being loaded, checking for the existence of a data structure associated with said other module; and

if there is no data structure associated with said other module, creating a data structure associated with said other module in the non-volatile memory and marking this data structure as not loaded.

14. A program loaded in a portable device by the method of claim 1 .

15. A portable digital device comprising non-volatile memory that stores the loader of claim 14 .

16. The device according to claim 15 , wherein the non-volatile memory also stores a program loaded by said loader.

17. The device according to claim 16 , wherein the device is a chip card.

18. The device according to claim 15 , wherein the device is a chip card.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2023
From: THALES DIS FRANCE SA
To: THALES DIS FRANCE SAS
Reel/Frame 064770/0615 →
CHANGE OF NAME Recorded Aug 25, 2023
From: GEMALTO SA
To: THALES DIS FRANCE SA
Reel/Frame 064716/0346 →
MERGER Recorded Jul 25, 2011
From: GEMALTO SA; GEMPLUS
To: GEMALTO SA
Reel/Frame 026642/0883 →
MERGER Recorded Feb 14, 2011
From: GEMPLUS
To: GEMALTO SA
Reel/Frame 025803/0267 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2007
From: GRIMAUD, GILLES; VANDEWALLE, JEAN-JACQUES
To: GEMPLUS
Reel/Frame 019468/0877 →