IP Library Granted Patent US 8,032,872
Granted Patent B2
US 8,032,872 · App. 11/641,923 · Granted Oct 4, 2011

Supporting applets on a high end platform

Assignee: Oracle America, Inc.
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 8,032,872
App. No.
11/641,923
Granted
Oct 4, 2011
Kind
B2
Abstract

To execute legacy smart card applications in a next generation smart card environment, a mechanism converts the applications into a format executable by the next generation smart card platforms. For instance, in a Java-based environment, a normalizer tool translates a CAP file into a Java Class file. Additional mechanisms recreate, on next generation smart cards, a specialized environment that allows the legacy applications to execute without impacting legacy and non-legacy application performance. For example, mechanisms create new instances of previously shared objects so that legacy applications can continue to expect exclusive access to those objects. Moreover, mechanisms manage the communication between a legacy application and non-legacy applications by controlling how and when calls are sent to the legacy application.

Claims (37)

1. A method for supporting a legacy application in a multi-threaded runtime environment comprising:

executing a plurality of multi-threaded applications in the multi-threaded runtime environment on a smart card;

detecting a request to open the legacy application on the smart card,

wherein the legacy application is a single-threaded application designed to run in a single-threaded environment, and

wherein the legacy application is accessible to the plurality of multi-threaded applications through a shareable interface object;

generating, in response to the request and in the multi-threaded runtime environment, a specialized environment for the legacy application to execute,

wherein the specialized environment is configured to execute the legacy application, and

wherein the specialized environment comprises a proxy object, wherein the proxy object encapsulates the shareable interface object to control access by the plurality of multi-threaded applications to the shareable interface object such that only one multi-threaded application is allowed to access code in the legacy application at a time; and

executing the legacy application in the specialized environment on the smart card, wherein during execution of the legacy application:

detecting that the legacy application is accessing an existing instantiation of an object in memory, wherein the existing instantiation of the object is intended by the legacy application to be shared between applications executing in the single-threaded environment; and

creating, in response to the detecting that the legacy application is accessing the existing instantiation of the object, a new copy of the object in memory to cause the existing instantiation of the object to not be shared.

2. The method of claim 1 , wherein the plurality of multi-threaded applications are running concurrently with the legacy application.

3. The method of claim 1 , wherein the shareable interface object is designed to handle only one call at a time.

4. The method of claim 1 , wherein the proxy object intercepts a call to access the shareable interface object.

5. The method of claim 1 , wherein the proxy object holds other calls until the shareable interface object completes executing a current call.

6. The method of claim 1 , further comprising:

converting the legacy application from a compressed format into a non-compressed format before executing the legacy application in the multi-threaded runtime environment.

7. The method of claim 6 , wherein the compressed format is a CAP file format and the non-compressed format is a Class file format.

8. The method of claim 1 , wherein allowing only one multi-threaded application to access the shareable interface at a time includes serializing the calls to the legacy application.

9. A non-transitory machine-readable storage medium comprising a set of instructions for performing a method for supporting a legacy application in a multi-threaded runtime environment, the method comprising:

executing a plurality of multi-threaded applications in the multi-threaded runtime environment on a smart card;

detecting a request to open the legacy application on the smart card,

wherein the legacy application is a single-threaded application designed to run in a single-threaded environment, and

wherein the legacy application is accessible to the plurality of multi-threaded applications through a shareable interface object;

generating, in response to the request and in the multi-threaded runtime environment, a specialized environment for the legacy application to execute,

wherein the specialized environment is configured to execute the legacy application, and

wherein the specialized environment comprises a proxy object, wherein the proxy object encapsulates the shareable interface object to control access by the plurality of multi-threaded applications to the shareable interface object such that only one multi-threaded application is allowed to access code in the legacy application at a time; and

executing the legacy application in the specialized environment on the smart card, wherein during execution of the legacy application:

detecting that the legacy application is accessing an existing instantiation of an object in memory, wherein the existing instantiation of the object is intended by the legacy application to be shared between applications executing in the single-threaded environment; and

creating, in response to the detecting that the legacy application is accessing the existing instantiation of the object, a new copy of the object in memory to cause the existing instantiation of the object to not be shared.

10. The non-transitory machine-readable storage medium of claim 9 , wherein the plurality of multi-threaded applications are running concurrently with the legacy application.

11. The non-transitory machine-readable storage medium of claim 9 , wherein the shareable interface object is designed to handle only one call at a time.

12. The non-transitory machine-readable storage medium of claim 9 , wherein the proxy object intercepts a call to access the shareable interface object.

13. The non-transitory machine-readable storage medium of claim 12 , wherein the proxy object holds other calls until the shareable interface object completes executing a current call.

14. The non-transitory machine-readable storage medium of claim 9 , further comprising converting the legacy application from a compressed format into a non-compressed format before executing the legacy application in the multi-threaded runtime environment.

15. The non-transitory machine-readable storage medium of claim 14 , wherein the compressed format is a CAP file format and the non-compressed format is a Class file format.

16. The non-transitory machine-readable storage medium of claim 9 , wherein allowing only one multi-threaded application to access the shareable interface at a time includes serializing the calls to the legacy application.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0121 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2006
From: RAVISHANKAR, TANJORE S.; VIOLLEAU, THIERRY P.; HILL, MATTHEW R.; AHMAD, SAQIB
To: SUN MICROSYSTEMS, INC.
Reel/Frame 018727/0350 →
Continuity (2)
Provisional Application 60757780 · Jan 9, 2006
Related Publication 20070169043A1 · Jul 19, 2007