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

文档序号:6454026阅读:512来源:国知局
专利名称:装入应用程序的计算机系统和方法
技术领域
本发明涉及装入应用程序的计算机系统和方法。本发明特别涉及在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应用程序中去除多余的方法。
根据本发明的第一个方面,提供一种用于装入面向对象应用程序的方法,包括装入该应用程序;确定由该应用程序请求的各对象的类的类型;装入该类的类型,包括由该应用程序请求的许多相关函数;确定随每个类装入的该相关函数,确定由该应用程序将要使用的相关函数;和取消存储器中装入的未被该应用程序请求的相关函数(function)。
根据本发明的第二个方面,提供一种适用于装入应用程序的计算机系统,包括一个用于装入应用程序的应用程序装入器(loader),以便确定由该应用程序请求的每个对象的类的类型和装入由该应用程序请求的包括许多相关函数(function)的该类的类型,和一个类处理器,该类处理器是为了确定随每个类装入的相关函数(function)而配置的,以便确定由该应用程序将要使用的相关函数(function),和从存储器中去除装入的但未被该应用程序请求的相关函数。
现在描述本发明的实施例,参考附图进行描述,其中

图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能与JavaVM22和服务器计算机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是用在本发明中的装入算法的方法流程图。在分析和装入上述类和与其有关的方法期间,该方法与该Java语言应用程序和该MHEG应用程序的方法调用交叉引用以便确定是否使用它们,如果不使用,就放弃而不装入。
在步骤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’)中。
权利要求
1.一种用于装入面向对象应用程序的方法,包括以下步骤装入该应用程序;确定由该应用程序请求的每个对象的类的类型(class type);装入由该应用程序请求的包括了许多相关函数(associated function)的类的类型;确定随每个类装入的该相关函数;确定由该应用程序使用的该相关函数;和从存储器中取消该应用程序没有请求但已装入的该相关函数。
2.根据权利要求1的方法,其中,在确定随该类的类型装入的相关函数(function)时,对每个装入的相关函数产生一个包括一项的数据结构。
3.根据权利要求2的方法,其中,在确定由该应用程序使用的相关函数时,在数据结构中标记各个项。
4.根据权利要求3的方法,其中,从存储器中取消对应于数据结构中未标记的项的相关函数。
5.根据前述任一项权利要求的方法,其中,该相关函数包括方法。
6.一种用于装入应用程序的计算机系统,包括一为装入一应用程序配置的应用程序装入器(loader),用于确定由该应用程序请求的每个对象的类的类型(class type)和装入由该应用程序请求包括了许多相关函数(associatedfunction)的类的类型;以及一个配置的类处理器,用于确定随每个类装入的相关函数,以便确定由该应用程序使用的该相关函数和从存储器中取消已装入的但该应用程序没有要求的相关函数。
7.一种用于执行权利要求1到5之一的方法的计算机程序。
全文摘要
一种用于装入面向对象应用程序的方法和系统,包括以下步骤;确定由该应用程序请求的每个对象的类的类型,装入由该应用程序请求的包括了许多相关函数的该类的类型,确定随每个类装入的相关函数,确定由该应用程序使用的相关函数和从存储器中取消已装入的但该应用程序没有要求的相关函数。
文档编号G06F9/445GK1335960SQ00801173
公开日2002年2月13日 申请日期2000年6月22日 优先权日1999年6月26日
发明者S·莫里斯 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1