WO2001001292A2 - Computer system and method for loading applications - Google Patents

Computer system and method for loading applications Download PDF

Info

Publication number
WO2001001292A2
WO2001001292A2 PCT/EP2000/005769 EP0005769W WO0101292A2 WO 2001001292 A2 WO2001001292 A2 WO 2001001292A2 EP 0005769 W EP0005769 W EP 0005769W WO 0101292 A2 WO0101292 A2 WO 0101292A2
Authority
WO
WIPO (PCT)
Prior art keywords
application
mheg
associated functions
class
loaded
Prior art date
Application number
PCT/EP2000/005769
Other languages
French (fr)
Other versions
WO2001001292A3 (en
Inventor
Steven Morris
Original Assignee
Koninklijke Philips Electronics N.V.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics N.V. filed Critical Koninklijke Philips Electronics N.V.
Priority to EP00945803A priority Critical patent/EP1135733A2/en
Priority to KR1020017002430A priority patent/KR20010072982A/en
Priority to JP2001507231A priority patent/JP2003503799A/en
Priority to BR0006857-8A priority patent/BR0006857A/en
Publication of WO2001001292A2 publication Critical patent/WO2001001292A2/en
Publication of WO2001001292A3 publication Critical patent/WO2001001292A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Abstract

A method and system for loading object-oriented applications comprising the steps of loading the application, determining the class type of each object required by the application, loading the class type(s), including a number of associated functions, required by the application, determining the associated functions loaded with each class, determining the associated functions to be used by the application and removing from memory the associated functions loaded but which are not required by the application.

Description

COMPUTER SYSTEM AND METHOD FOR LOADING APPLICATIONS
The present invention relates to a computer system and method for loading applications. In particular, the present invention relates to a computer system and method for application loading in an MHEG-6 environment.
Originally, multimedia was only one of many elements of the World Wide Web. It was never meant as a support technology for the presentation of technical content or for interaction with the outside world. The advent of technologies such as Java (® Sun Microsystems Corporation) and ActiveX has increased the functionality of multimedia and, in turn, the World Wide Web but these have in turn made access to the World Wide Web a memory and CPU resource hungry activity. In a desire to produce low-cost graphical terminals for accessing the World Wide Web, the MHEG (Multimedia and Hypermedia Experts Group) standard was developed to define a basic GUI (Graphical User Interface) and multimedia library for use in kiosk information systems, TV sets, or in video on demand servers for use in communicating with set-top boxes.
The MHEG standard was developed to support the distribution of interactive multimedia applications in a client/server architecture across platforms of different types. MHEG level 5 defines a final form representation for applications such that the appearance of an application is common across all platform types. It allows GUI and multimedia applications to be simply created by defining its constituent components. It is the responsibility of the client terminal to have a run-time system that interprets MHEG commands, to present the application to the user and to handle local interaction with the user. MHEG level 5 is limited in that it does not cater for interaction with the outside world, for example data exchange or the use of client/server applications. MHEG level 6 is in extension to MHEG level 5 that defines a set of mechanisms allowing MHEG applications and Java applications to inter-operate. Java applications are not restricted to multimedia, GUI's and user interaction, offering communication with other computer hosts, applications etc. The inter-operation between Java and MHEG permit MHEG applications to communicate with the external environment. MHEG level 6 is mainly intended to support distribution of interactive retrieval (client/server) applications running on limited resource terminals. The Digital Audio-Visual Council (DAVIC) has adopted MHEG level 6 as the basis for the specification of set-top units for interactive Television. MHEG applications are delivered to the user as a series of MHEG objects which are interpreted on the user's terminal by an MHEG engine responsible for turning the MHEG objects to graphical and multimedia output at the terminal. Each MHEG level is built on the preceding level. An MHEG engine capable of running an MHEG level 6 application comprises an MHEG level 5 engine interfaced with a Java Virtual Machine. The interface between the Java virtual machine and the MHEG environment allows MHEG applications to run and interact with Java applications.
Java applications are written in terms of a series of objects, each object defining a particular data structure or user interface element of the Java application. Each object is created from a predefined class which defines necessary data structures and functions for an object created from the class to be manipulated or interacted with. These functions are known as methods. A class is effectively a template which is referenced when initially creating an object to determine the structure of the object, the data structures the object may need to operate and also the methods the object can use. When an application is loaded, the classes of objects it uses are checked against those, if any, already held in memory. Any classes that are required but not held in memory are loaded into memory. For each class used to create objects by a Java application, all the methods associated with the class are loaded by the Java virtual machine which runs the Java application. This approach, whilst ensuring that all required methods are loaded, is very wasteful in that many classes contain methods which are not used by the application but which are loaded anyway.
In an environment such as an MHEG-based set-top box, memory is very limited and any memory that can be saved by an application is desirable. The present invention provides a method and system for removing redundant methods from MHEG applications. According to a first aspect of the present invention, there is provided a method for loading object-oriented applications comprising the steps of loading the application, determining the class type of each object required by the application, loading the class type(s), including a number of associated functions, required by the application, determining the associated functions loaded with each class, determining the associated functions to be used by the application and removing from memory the associated functions loaded but which are not required by the application. According to a second aspect of the present invention, there is provided a computer system adapted for loading applications, comprising an application loader configured to load an application, to determine the class type of each object required by the application and to load the class type(s), including a number of associated functions, required by the application; and a class processor configured to determine the associated functions loaded with each class, determine the associated functions to be used by the application, and remove from memory the associated functions loaded but which are not required by the application.
Examples of the present invention will now be described with reference to the accompanying drawings, in which:
Figure 1 is a block diagram of a computer system adapted for implementing the present invention;
Figure 2 is a flowchart of a method loading algorithm for use in the present invention; and
Figure 3 is a flowchart of another method loading algorithm for use in the present invention.
Figure 1 is a block diagram of a computer system adapted for implementing the method or system of the present invention.
A computer system running MHEG level 6 applications comprises a server computer 10, a client terminal 20 (such as a television set top box) linked to the server by a data communications link 30 such as a computer network or telephone network. The client terminal 20 includes an MHEG engine (ENG) 21 , a Java Virtual Machine (VM) 22 and a core MHEG library (LIB) 23.
On powering up the client terminal 20, the MHEG engine 21 accesses the core MHEG library 23 and loads an MHEG user interface to enable a user to interact with the client terminal 20. The MHEG engine 21 also loads communication routines from the core MHEG library 23 enabling it to communicate with the Java VM 22 and the server computer 10.
An MHEG application (such as an interactive television programme) accessed or requested by the user via the user interface is requested from the server computer 10 by the MHEG engine 21. The server computer 10 passes the MHEG application to the client terminal 20 as a series of MHEG objects. Once all the MHEG objects of the MHEG application are received by the client terminal 20, the MHEG engine 21 parses the objects and runs the application. The first time an MHEG application requires to run or interact with a Java application, for example if the users interaction with the MHEG application results in a service in the form of a Java application such as video-on-demand being required from a remote server computer, the Java application is loaded as a series of class objects from the server computer 10 in the same manner as an MHEG application described above. In conventional computer systems the Java VM parses and loads the classes of the objects used by the Java application and all the methods associated with the class into the client terminals memory before creating the application objects from the classes and running the Java application. Figure 2 is a flowchart of a method loading algorithm for use in the present invention. During the parsing and loading of classes and their associated methods discussed above, the methods are cross-referenced with method calls from the Java application and the MHEG application to determine whether they are used and, if not, they are discarded instead of being loaded. In step 40, a loaded class from which an object is to be created is parsed to determine the methods it includes. The name or an identifier of each method included in the class is recorded in a table in step 50. In step 60, the method calls of the Java application and the MHEG application are cross-referenced with the table generated in step 50 to determine (at step 69) whether they are calling a method of the class and, if so, the entry in the table for that method is marked in step 70. Once all the method calls have been parsed (determined at step 71), the methods that are not marked in the table are deleted from memory in step 80.
Figure 3 is a flowchart of another method loading algorithm for use in the present invention. During the parsing and loading of a class and its associated method, it is determined that the class is already loaded and is in use by another application that has previously created objects based on that class. Steps 40, 50, 60, 69, 70 and 71 are performed for the application to be loaded as has previously been discussed with reference to Figure 2. The steps are then also repeated for each further application using the class prior to step 80 to determine the methods they may require. The methods required by the already running application will already be in memory. However, methods not required will have been discarded previously and, if the new application requires any of the discarded methods, the whole class will be reloaded and the set of methods required by both applications is retained in memory.
Whilst the table is normally discarded once redundant methods have been determined, it could be retained so that if another application requires the class, only the methods in addition to those loaded need be determined and loaded with reference to the table.
As an alternative to determining redundant methods whilst the application is being loaded, this process could be performed at the server so only the necessary code is transferred from the server to the client.
The method and system for determining redundant methods according to the present invention could also be called at intervals during the running of the applications to determine methods that are no longer needed.
Although the above description has been mainly concerned with the removal of redundant methods from MHEG applications, the present invention is also applicable to other applications in which portions of possibly redundant code must be loaded, for example Java code can be loaded in one 'chunk' using a JAR file to load the data (a JAR file is a collection of Java class files merged into a single file).

Claims

1. A method for loading object-oriented applications comprising the steps of: loading the application; determining the class type of each object required by the application; loading the class type(s), including a number of associated functions, required by the application; determining the associated functions loaded with each class; determining the associated functions to be used by the application; and removing from memory the associated functions loaded but which are not required by the application.
2. A method according to claim 1 , in which in determining the associated functions loaded with the class type(s), a data structure is generated comprising an entry for each associated function loaded.
3. A method according to claim 2, in which in determining the associated functions to be used by the application, the respective entry in the data structure is marked.
4. A method according to claim 3, in which associated functions corresponding to entries not marked in the data structure are removed from memory.
5. A method according to any preceding claim, in which the associated functions comprise methods.
6. A computer system adapted for loading applications, comprising an application loader configured to load an application, to determine the class type of each object required by the application and to load the class type(s), including a number of associated functions, required by the application; and a class processor configured to determine the associated functions loaded with each class, determine the associated functions to be used by the application, and remove from memory the associated functions loaded but which are not required by the application.
7. A computer program for executing the method of any one of claims 1 to 5.
PCT/EP2000/005769 1999-06-26 2000-06-22 Computer system and method for loading applications WO2001001292A2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP00945803A EP1135733A2 (en) 1999-06-26 2000-06-22 Computer system and method for loading applications
KR1020017002430A KR20010072982A (en) 1999-06-26 2000-06-22 Computer system and method for loading applications
JP2001507231A JP2003503799A (en) 1999-06-26 2000-06-22 Computer system and method for loading an application
BR0006857-8A BR0006857A (en) 1999-06-26 2000-06-22 Process for loading object-oriented applications, computer system adapted to load applications, and, computer program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9914927.0 1999-06-26
GBGB9914927.0A GB9914927D0 (en) 1999-06-26 1999-06-26 Computer system and method for loading applications

Publications (2)

Publication Number Publication Date
WO2001001292A2 true WO2001001292A2 (en) 2001-01-04
WO2001001292A3 WO2001001292A3 (en) 2001-07-19

Family

ID=10856100

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2000/005769 WO2001001292A2 (en) 1999-06-26 2000-06-22 Computer system and method for loading applications

Country Status (9)

Country Link
EP (1) EP1135733A2 (en)
JP (1) JP2003503799A (en)
KR (1) KR20010072982A (en)
CN (1) CN1175349C (en)
BR (1) BR0006857A (en)
GB (1) GB9914927D0 (en)
PL (1) PL346280A1 (en)
TW (1) TW463127B (en)
WO (1) WO2001001292A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002071210A1 (en) * 2001-03-07 2002-09-12 Nexusedge Technologies Pte Ltd Software engine and method for software application loading

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI805400B (en) * 2022-06-07 2023-06-11 國立陽明交通大學 Novel inertia impactor for nanoparticle classification

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247678A (en) * 1989-10-12 1993-09-21 Texas Instruments Incorporated Load time linker for software used with a multiprocessor system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247678A (en) * 1989-10-12 1993-09-21 Texas Instruments Incorporated Load time linker for software used with a multiprocessor system

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"JAX Tutorial" IBM RESEARCH, [Online] 2 March 1999 (1999-03-02), XP002151329 Retrieved from the Internet: <URL:http://www.research.ibm.com/jax/tutor ial.html> [retrieved on 2000-10-25] *
ANONYMOUS: "JAX, An Application Extractor For Java" RESEARCH DISCLOSURE, vol. 41, no. 410, 1 June 1998 (1998-06-01), XP002151328 Havant, UK, article No. 410132 *
BURKE M G ET AL: "The Jalapeno dynamic optimizing compiler for Java" JAVA '99, ACM, USA, 12 June 1999 (1999-06-12), XP002134655 *
F. TIP, C. LAFFRA, P. F. SWEENEY: "Size Matters: Reducing the Size of Java Class File Archives" IBM RESEARCH REPORT, 28 October 1998 (1998-10-28), pages 2-13, XP000974866 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002071210A1 (en) * 2001-03-07 2002-09-12 Nexusedge Technologies Pte Ltd Software engine and method for software application loading

Also Published As

Publication number Publication date
BR0006857A (en) 2001-07-10
PL346280A1 (en) 2002-01-28
GB9914927D0 (en) 1999-08-25
WO2001001292A3 (en) 2001-07-19
JP2003503799A (en) 2003-01-28
TW463127B (en) 2001-11-11
EP1135733A2 (en) 2001-09-26
CN1175349C (en) 2004-11-10
CN1335960A (en) 2002-02-13
KR20010072982A (en) 2001-07-31

Similar Documents

Publication Publication Date Title
US6802061B1 (en) Automatic software downloading from a computer network
US6347398B1 (en) Automatic software downloading from a computer network
Coulson et al. Extensions to ANSA for multimedia computing
DE69837508T2 (en) Content recovery method over a network
AU679637B2 (en) Interface device and method
WO2000023887A2 (en) Method and apparatus for automatically optimizing execution of a computer program
CN104699537A (en) Program control method, activity module scheduling method and corresponding devices thereof
US20020002608A1 (en) Network device management system
US20020073218A1 (en) Stream device management system for multimedia clients in a broadcast network architecture
US20030167320A1 (en) Registration service for registering plug-in applications with a management console
CN101115180B (en) Electronic program menu system and functional module dynamic load operating method
CN104699536A (en) Active assembly progress space distributing method and corresponding device thereof
Peng et al. Digital television application manager
CN101360009A (en) Set-top box application management method and system
WO2001001292A2 (en) Computer system and method for loading applications
CN1204493C (en) Service binding system and method
JP2008515322A (en) System and method for reducing MHP application startup time
CN114816482A (en) Method and device for upgrading block storage service, computer equipment and storage medium
Cisco Running Components
CN113064737A (en) Method for enabling components of software communication architecture to run in parallel on multi-core processor
CN112019623A (en) Distributed storage system based on FTP protocol and implementation method thereof
MXPA01001963A (en) Computer system and method for loading applications
AU731113B2 (en) Method and system for enabling access to a multimedia document
CN101261580A (en) System and method for processing data
EP1119804A2 (en) Computer system for mheg applications

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 00801173.7

Country of ref document: CN

AK Designated states

Kind code of ref document: A2

Designated state(s): BR CN IN JP KR MX PL

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

WWE Wipo information: entry into national phase

Ref document number: 2000945803

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: PA/a/2001/001963

Country of ref document: MX

WWE Wipo information: entry into national phase

Ref document number: IN/PCT/2001/269/CHE

Country of ref document: IN

Ref document number: 1020017002430

Country of ref document: KR

121 Ep: the epo has been informed by wipo that ep was designated in this application
AK Designated states

Kind code of ref document: A3

Designated state(s): BR CN IN JP KR MX PL

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

WWP Wipo information: published in national office

Ref document number: 2000945803

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 2000945803

Country of ref document: EP