Methods and apparatus for implementing individual class loaders

Data processing: database and file management or data structures – Database design – Data structure types

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S166000

Reexamination Certificate

active

06701334

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to computer software. More particularly, the present invention relates to methods and apparatus for implementing a class loader adapted for loading classes associated with an application.
2. Description of the Related Art
The digital television revolution is one of the most significant events in the history of broadcast television. With the advent of digital television, high speed data transfer is possible via satellite, cable and terrestrial television channels. Digital television will offer users more channels as well as significantly improved video and audio quality. Most importantly, digital television ushers in the age of true interactive television. For instance, digital receivers will be able to offer users a variety of enhanced services, from simple interactive quiz shows, to Internet over the air, and a mix of television and web-type content. As the market for digital television grows, content developers are looking for a feature-rich, cost-effective, and reliable software platform upon which to build the next generation of interactive television services such as Electronic Programming Guides, Video-On-Demand, and Enhanced Broadcasting.
Java is a leading commercial object-oriented language designed as a portable language. A Java program can be written and compiled once and run on any compatible device that supports the JAVA™ PLATFORM. For instance, Java is incorporated into all major Web browsers. Thus, Java runs on any web-enabled computer via that computer's Web browser. As such, it offers great promise as the software platform for the next generation of set-top boxes and digital televisions.
In object-oriented programmning, runtime data are represented by objects. Each object is defined via its class, which determines the properties of an object. In other words, objects are individual instances of a class. To run a Java application, the related classes are loaded into memory. Instances of these classes are then constructed following the flow of the program. Most object-oriented languages require that all objects that are created be actively destroyed by the programmer when they are no longer needed. However, implementations of the Java Virtal Machine typically automate this process and perform garbage collection to increase the amount of available memory. Accordingly, objects are deleted or “garbage collected” automatically by the Java runtime environment when they are no longer referenced.
Although instances of classes that are no longer referenced are removed from memory through garbage collection, the associated classes are not removed from memory. Moreover, since Java is a dynamic language, class loading is commonly performed. However, there is currently no mechanism for unloading the classes, even when they are no longer needed. As a result, the JAVA PLATFORM will eventually store a large number of classes.
In the desktop environment, classes need not be unloaded since memory is relatively unlimited. Moreover, once the browser is turned off (or closed), the classes are cleared from memory. However, space is a valuable resource in the environment of embedded systems, particularly in the area of digital television. Moreover, in the digital television environment, it will be common to run multiple applications. For instance, when a television viewer changes the channel, each associated service will likely require that a new application with multiple classes be loaded. As a result, memory will continually be allocated to the loaded classes until the limited amount of memory is consumed. Once the memory is consumed, it will be impossible to run any further applications. It will therefore be desirable to monitor the memory utilization and remove those classes that are no longer needed by the applications. This is particularly important since it will be undesirable to reboot the television in the event of an error.
In view of the above, there is a need for improved ways to manage storage of classes in memory.
SUMMARY
The present invention enables classes to be dynamically unloaded from memory when they are no longer needed. This is accomplished, in part, through the use of an individual class loader associated with each application. In this manner, memory consumption within a digital television is managed to make better use of limited memory resources.
According to one aspect of the invention, an application manager is adapted for constructing a class loader for an application. For instance, a specialized class loader may be constructed (e.g., instantiated) to load classes associated with an application that is to be loaded via a digital television receiver. Accordingly, the class loader is employed to load one or more classes associated with the application.
According to another aspect of the invention, an application manager is adapted for monitoring and managing execution of the application and de-referencing the constructed class loader when execution of an application ends or when execution of the application is terminated (e.g., by a signal). Thus, when the application manager determines that the application has terminated, the classes are unloaded since they are no longer needed. This is accomplished, in part, by de-referencing the class loader for the application such that the class loader becomes unreachable. Since the class loader is the last to maintain a reference to the classes that it has loaded into the execution environment, these classes become unreachable when the class loader is de-referenced, provided no other instances in the runtime environment reference the classes. Accordingly, when garbage collection is performed, the classes are effectively unloaded.
According to yet another aspect of the invention, the present invention is implemented on a JAVA PLATFORM. The JAVA PLATFORM provides an ideal development and deployment platform for this emerging class of interactive services. The Java programming language provides content developers with a high degree of control and flexibility of the “look and feel” of their applications, enabling them to deliver the most dynamic and compelling interactive television experiences to their audience. The garbage collection process is leveraged to shift the burden of memory allocation and memory management from the programmer to the platform. In addition, interactive television applications written in the Java programming language offer security, extensibility, and portability across a diverse array of television receivers, saving content developers time and money getting their interactive applications to market.
The present invention utilizes individual class loaders to load and unload classes associated with each application. Through the de-referencing of the appropriate class loaders when it is determined that the associated classes are no longer needed, the garbage collection process is leveraged to maximize the amount of available memory. This is particularly important in systems having limited memory, such as in a digital television receiver.


REFERENCES:
patent: 5727147 (1998-03-01), van Hoff
patent: 5815718 (1998-09-01), Tock
patent: 5950008 (1999-09-01), van Hoff
patent: 5966542 (1999-10-01), Tock
patent: 6085030 (2000-07-01), Whitehead et al.
patent: 6202208 (2001-03-01), Holiday, Jr.
patent: 6223346 (2001-04-01), Tock
patent: 6266716 (2001-07-01), Wilson et al.
patent: 6279030 (2001-08-01), Britton et al.
patent: 6339841 (2002-01-01), Merrick et al.
patent: 6374286 (2002-04-01), Gee et al.
patent: 6430564 (2002-08-01), Judge et al.
patent: 6430570 (2002-08-01), Judge et al.
patent: 6442565 (2002-08-01), Tyra et al.
patent: 6496871 (2002-12-01), Jagannathan et al.
patent: 6507946 (2003-01-01), Alexander et al.
patent: 6513155 (2003-01-01), Alexander et al.
patent: 6519594 (2003-02-01), Li
patent: 0333617 (1989-09-01), None
patent: 0524071 (1992-07-01), None
patent: 0908821 (1999-04-01), None
R.B. Bunt:Scheduling Techniques For Operating Systems, Computer,Oct. 1976, pp. 10-17, XP000199223.
R. Thom:Multita

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Methods and apparatus for implementing individual class loaders does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Methods and apparatus for implementing individual class loaders, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Methods and apparatus for implementing individual class loaders will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3264273

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.