CN1175349C - 装入应用程序的计算机系统和方法 - Google Patents

装入应用程序的计算机系统和方法 Download PDF

Info

Publication number
CN1175349C
CN1175349C CNB008011737A CN00801173A CN1175349C CN 1175349 C CN1175349 C CN 1175349C CN B008011737 A CNB008011737 A CN B008011737A CN 00801173 A CN00801173 A CN 00801173A CN 1175349 C CN1175349 C CN 1175349C
Authority
CN
China
Prior art keywords
application program
class
application
correlation technique
correlation
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
CNB008011737A
Other languages
English (en)
Other versions
CN1335960A (zh
Inventor
S・莫里斯
S·莫里斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1335960A publication Critical patent/CN1335960A/zh
Application granted granted Critical
Publication of CN1175349C publication Critical patent/CN1175349C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)
  • Multi Processors (AREA)

Abstract

一种用于装入面向对象应用程序的方法和系统,包括装入第一应用程序的步骤;确定由该第一应用程序请求的类,装入由该第一应用程序请求的包括了许多相关方法的该类,确定随每个类装入的相关方法并将各相关方法的标识符记录到表中,确定由该应用程序使用的相关方法和从存储器中删除已装入的但该应用程序没有要求的相关方法。当第二应用程序被装入的时候,该应用程序所请求的类与所述第一应用程序所请求的那些类相比。对于由第一和第二应用程序请求的类,所述表用来识别那些由所述第二应用程序请求的已被删除的方法,这些方法通过再装入个别方法或再装入整个类而被恢复。

Description

装入应用程序的计算机系统和方法
技术领域
本发明涉及装入应用程序的计算机系统和方法。本发明特别涉及在MHEG-6环境下装入应用程序的计算机系统和方法。
背景技术
最初,多媒体只是万维网许多部分中的一部分。它从未打算作为一种支持技术用于表示技术内容或用于和外部世界相互操作。随着例如Java语言(SunMicrosystems Corporation)和ActiveX的出现已经使多媒体和还有万维网的功能增加但是也形成如饥似渴访问万维网存储器和CPU资源的活动。在需要产生低价格图形终端的情况下,为了访问万维网,MHEG(多媒体和超媒体专家组)标准已经开发以便定义一个基本的GUI(图形用户接口)和多媒体库用在公用电话间(Kiosk)信息系统,TV机中,或用在视频点播服务器以便用来和机顶盒通信。
开发MHEG标准是为了在跨不同类型平台的客户机/服务器体系结构中支持多媒体交互应用的分配。MHEG层5定义了应用程序的最终表达形式,以在跨所有平台时使应用程序的外观相同。这使得通过定义它的组成部分容易建立GUI和多媒体应用。客户机终端应有解释MHEG指令的运行时系统,以便向用户显示应用程序和与用户进行局部交互处理。MHEG层5在与外部世界相互操作方面不能适应因而受到限制,例如数据交换或使用客户机/服务器应用程序。MHEG层6是对MHEG层5的扩展,它定义了一组机构允许MHEG应用程序和Java语言应用程序用于相互操作。Java应用程序不受限于多媒体、GUI和用户相互操作,以便提供与其它计算机主机、应用程序等的通信。Java和MHEG之间的相互操作允许MHEG应用程序和外部环境通信。MHEG层6主要是在受限制的资源终端上运行的用来支持交互检索(客户机/服务器)应用程序的分配。数字音频一图象协议(DAVIC)已采用MHEG层6作为交互式电视机顶单元规范的基础。
MHEG应用程序作为一系列MHEG对象传送到用户,这些对象由MHEG引擎在用户的终端上进行翻译,以负责把MHEG对象变成图形和多媒体并输出在终端。每个MHEG层是在先前的层上形成。一个能够运行MHEG层6应用程序的MHEG引擎(engine)包括一个与Java虚拟机接口的MHEG层5引擎。Java虚拟机和MHEG环境之间的接口允许MHEG应用程序运行和与Java应用程序接口。
Java应用程序依据一系列对象写出,每个对象定义一个特殊数据结构或Java语言应用程序的用户接口部件。每个对象是从定义了对于一个对象必需的数据结构和函数(function)的预先定义的类建立的,该对象是从要操作的或要交互的类产生的。这些函数(function)称为方法(method)。事实上一个类(class)是一个模板(template),当最初建立对象时引用该模板,以便确定该对象的结构,该对象需要操作的数据结构和该对象能使用的方法。当装入一应用程序时检查该应用程序使用的对象的类以寻找已经保存在存储器中的那些类,如果有的话。必需的但未保存在存储器中的任何类被装入存储器中。对由Java应用程序用来建立对象的每个类,与该类相关的所有方法部由运行Java应用程序的Java虚拟机装载。尽管保证装入全部需要的方法,但这种处理是很浪费的,其中许多类包含了不由该应用程序使用的方法也被装入了。
在例如基于MHEG机顶盒的环境下,存储器很有限,期望通过应用程序能节省任何存储器。本发明提供了一种方法和系统用于从MHEG应用程序中去除多余的方法。
发明内容
根据本发明的第一个方面,一种用于装入面向对象应用程序的方法,包括以下步骤:
装入第一应用程序;
确定由所述第一应用程序请求的类;
将所述第一应用程序所请求的类装入存储器中,各类包括许多相关方法;
确定随各类装入的相关方法并将各相关方法的标识符记录在表中;
确定要由所述第一应用程序使用的相关方法,并对于每个这样的相关方法,将其相应的标识符标记在所述表中;
从存储器中删除其相应的标识符未在所述表中标记的相关方法;
其特征在于,装入第二应用程序;
确定由所述第二应用程序请求的类,并且,对于所述第一和第二应用程序所请求的每个类:
—确定由所述第二应用程序请求的相关方法;并且
—通过引用所述表确定全部那些相关方法是否都已被装入,而且,如果未被装入,就将所述第二应用程序所请求的那些相关方法予以装入。
根据本发明的第二个方面,提供一种适用于装入应用程序的计算机系统,包括:
与存储器耦合的应用程序装入器,其用于:
—装入第一应用程序;
—确定由所述第一应用程序请求的类;并且
—将所述第一应用程序所请求的类装入所述存储器中,各类包括多个相关方法;
与存储装置耦合的类处理器,其用于:
—确定随各类装入的相关方法并将各相关方法的标识符记录在所述存储装置内的一个表中;
—确定要由所述第一应用程序使用的相关方法,并对于每个这样的相关方法,将其相应的标识符标记在所述表中;并且
—从所述存储器中删除其相应的标识符未在所述表中标记的相关方法;
其特征在于,所述应用程序装入器进一步被配置为用于:
—装入第二应用程序;并且
—确定由所述第二应用程序请求的所述类;
并且,对于所述第一和第二应用程序所请求的每个类,所述类处理器进一步被配置为用于:
—确定由所述第二应用程序请求的所述相关方法;
—通过引用所述表确定全部那些相关方法是否都已被装入,而且,如果未被装入,就使所述应用程序装入器把所述第二应用程序所请求的那些相关方法予以装入。
附图说明
现在描述本发明的实施例,参考附图进行描述,其中:
图1是用于实施本发明的计算机系统的方框图;
图2是用在本发明装入算法的方法流程图;
图3是用在本发明装入算法的方法的另一流程图。
具体实施方式
图1是用于实施本发明的计算机系统的方框图。
一个运行MHEG层6应用程序的计算机系统包括:一个服务器计算机10和一个客户机终端20(例如电视机顶盒),它通过数据通信链路30例如计算机网络或电话网络连接到服务器。该客户机终端20包括一MHEG引擎(ENG)21,一Java虚拟机(VM)22和一核心MHEG库(LIB)23。
当对该客户机终端20加电时,该MHEG引擎21访问该核心MHEG库23和装入一MHEG用户接口,允许用户与客户机终端20交互联系。该MHEG引擎21还从该核心MHEG库23装入通信程序以使MHEG引擎21能与Java VM22和服务器计算机10通信。
由用户经用户接口访问或请求的一MHEG应用程序(例如交互电视节目)由该MHEG引擎21从该服务器计算机10请求。该服务器计算机10把作为一系列MHEG对象的MHEG应用程序传送到客户机终端20。一旦MHEG应用程序的所有MHEG对象由该客户机终端20接收,该MHEG引擎21分析该对象和运行该应用程序。
在一个MHEG应用程序第一次要求执行或与一个Java应用程序交互时,比如用户与该MHEG应用程序交互以要求Java应用的形式请求服务,诸如从一个远程服务器计算机请求视频点播,该Java语言应用程序按照与上述MHEG应用程序相同的方式从该服务器计算机10作为一系列类对象被装入。在通常的计算机系统中,在从类建立该应用程序对象和运行该Java应用程序之前,该Java VM分析并加载由该Java应用程序和由与该类有关的所有方法使用的该对象的该类到客户机终端存储器。
图2是用在本发明中的装入算法的方法流程图。
在步骤40,分析将要建立的一对象的装入的类以便确定它包括的方法。在步骤50将包括在该类中的每个方法的名字或标识符记录在表中。在步骤60,该Java应用程序和该MHEG应用程序的方法调用与在步骤50产生的表交叉引用以便确定(在步骤69)它们是否调用该类的方法,如果是的话,在步骤70,为该方法在表中标记该项(entry)。一旦全部的方法调用已分析完(在步骤71判定),未在表中标记的方法被从存储器删除(在步骤80)。
图3是用在本发明中装入算法的一个方法流程图。在分析和安装一个类和与其相关的方法期间,确定该类已经装入并由基于该类早先建立了对象的另一应用程序使用。如同参照图2已经讨论的,对于将要装入的该应用程序执行步骤40,50,60,70和71。然后先于步骤80使用该类对各又一应用程序重复该步骤以便确定他们可请求的方法。通过已经运行的应用程序请求的方法已经保存在存储器中。但是,未请求的方法早先就已经放弃,如果新的应用程序请求任一已放弃的方法,全部类将重新装入并且由两个应用程序请求的方法集合(set)将保持存储器中。
在现有技术中,一旦冗余的方法已经被确定后,通常放弃了该表。在本发明中,它被保留,使得如果另一应用程序需要该类,仅包括那些必需要确定装入的方法,以及参考该表装入。
作为一种确定冗余方法的变通方法是;当装入该应用程序时,可以在服务器中执行该过程,于是只有必须的代码从服务器传送到该客户机。
根据本发明确定冗余方法的方法和系统,在应用程序运行期间间隔上也能被调用从而确定不再需要的方法。
虽然上面主要描述了从MHEG应用程序取消冗余的方法,但本发明还可应用于其它应用程序,其中,有些可能冗余的代码部分必须被装入,例如使用JAR文件装载数据(JAR文件是合并入单个文件的Java类文件的集合)时Java代码能装入在一个‘程序块’(‘chunk’)中。

Claims (3)

1.一种用于装入面向对象应用程序的方法,包括以下步骤:
装入第一应用程序;
确定由所述第一应用程序请求的类;
将所述第一应用程序所请求的类装入存储器中,各类包括许多相关方法;
确定随各类装入的相关方法并将各相关方法的标识符记录在表中;
确定要由所述第一应用程序使用的相关方法,并对于每个这样的相关方法,将其相应的标识符标记在所述表中;
从存储器中删除其相应的标识符未在所述表中标记的相关方法;
其特征在于,装入第二应用程序;
确定由所述第二应用程序请求的类,并且,对于所述第一和第二应用程序所请求的每个类:
—确定由所述第二应用程序请求的相关方法;并且
—通过引用所述表确定全部那些相关方法是否都已被装入,而且,如果未被装入,就将所述第二应用程序所请求的那些相关方法予以装入。
2.根据权利要求1的方法,其中,对于由所述第一和第二应用程序请求的每个类,将所述第二应用程序所请求的那些相关方法予以装入的步骤包括把含有全部相关方法的类再装入。
3.一种用于装入面向对象应用程序的计算机系统,包括:
与存储器耦合的应用程序装入器,其用于:
—装入第一应用程序;
—确定由所述第一应用程序请求的类;并且
—将所述第一应用程序所请求的类装入所述存储器中,各类包括多个相关方法;
与存储装置耦合的类处理器,其用于:
—确定随各类装入的相关方法并将各相关方法的标识符记录在所述存储装置内的一个表中;
—确定要由所述第一应用程序使用的相关方法,并对于每个这样的相关方法,将其相应的标识符标记在所述表中;并且
—从所述存储器中删除其相应的标识符未在所述表中标记的相关方法;
其特征在于,所述应用程序装入器进一步被配置为用于:
—装入第二应用程序;并且
—确定由所述第二应用程序请求的所述类;
并且,对于所述第一和第二应用程序所请求的每个类,所述类处理器进一步被配置为用于:
—确定由所述第二应用程序请求的所述相关方法;
—通过引用所述表确定全部那些相关方法是否都已被装入,而且,如果未被装入,就使所述应用程序装入器把所述第二应用程序所请求的那些相关方法予以装入。
CNB008011737A 1999-06-26 2000-06-22 装入应用程序的计算机系统和方法 Expired - Fee Related CN1175349C (zh)

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
CN1335960A CN1335960A (zh) 2002-02-13
CN1175349C true CN1175349C (zh) 2004-11-10

Family

ID=10856100

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008011737A Expired - Fee Related CN1175349C (zh) 1999-06-26 2000-06-22 装入应用程序的计算机系统和方法

Country Status (9)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020129351A1 (en) * 2001-03-07 2002-09-12 Nexusedge Technologies Pty. Ltd. Software engine and method for software application loading
TWI805400B (zh) * 2022-06-07 2023-06-11 國立陽明交通大學 奈米微粒分徑用的新穎慣性衝擊器

Family Cites Families (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

Also Published As

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

Similar Documents

Publication Publication Date Title
US7437713B2 (en) Automated system that tests software on multiple computers
KR100868410B1 (ko) 관리화된 파일 시스템 필터 모델 및 아키텍쳐
US7840943B2 (en) Method and apparatus for transferring data in a distributed testing system
CN100343811C (zh) 在托管应用程序进程中引发异步行为变化的系统
US20010034786A1 (en) Method ane system for streaming media data in heterogeneous environments
US20050086237A1 (en) Shared queues in shared object space
CN1801097A (zh) 用于使用md4校验和链接跨机器事务的方法和系统
CN112910880B (zh) 虚拟房间创建方法、系统、装置、设备及介质
CN1555532A (zh) 临时目录管理
CN1791105A (zh) 控制到客户机的数据传送及更新数据的执行的方法
US6792559B1 (en) Performing operations in an environment recreated from system dump information
CN115292020A (zh) 一种数据处理方法、装置、设备以及介质
CN1126054C (zh) 对一个移动通信系统中的并行处理器进行同步的协议
CN1175349C (zh) 装入应用程序的计算机系统和方法
CN1617500A (zh) 用于处理对Web服务的请求的方法和系统
CN116595086B (zh) 一种基于插件的空间数据服务实现方法和系统
Peng et al. Digital television application manager
US20020049734A1 (en) Method and apparatus for application packages and delegate packages to adopt and export standard execution state machine interfaces
CN117271001A (zh) 基于动态加载机制的云游戏极速启动方法、装置及系统
CN115309315B (zh) Wayland环境下X应用的截图方法、系统及介质
US7441252B2 (en) Cache control device, and method and computer program for the same
CN1192308C (zh) 一种快速消除数据库差异信息的方法
CA2276640A1 (en) System and method for facilitating the transfer of information between programs processed in a digital computer system
EP1146729A2 (en) Method and system for streaming media data in heterogenous environments
CN1934847A (zh) 操作包括通信服务的系统的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee