将字节码编译成原码的方法 本发明涉及一种将字节码编译成原码的方法,具体地说,字节码包含在由服务器发往接收终端的字节码文件中,以便随后进行编译。
数字视频广播(DVB)是一个负责数字广播领域中的标准化活动的组织(参见http://www.dvb.org)。DVB的多媒体家用平台(MHP)标准(ETSI参考TS 101 812,版本1.1.1,蓝皮书参考A057 05/00)是专为促进模拟电视(TV)平滑过渡到将来的数字交互式多媒体而设计的一系列措施。具体地说,MHP在交互式数字应用和执行这些应用的终端之间定义了一种通用的即硬件无关的接口。这使得数字内容提供者能够寻址所有类型的终端,其范围包括低端至高端的机顶盒、集成数字电视机和多媒体个人计算机。MHP支持许多种应用,包括下列示例:电子节目指南、信息服务(增强的图文电视、新闻和股票报价等)、同步于电视内容的应用、游戏和电子商务。
DVB MHP标准及其组合要素是周知的,配有完备的文件资料,因此随后只详述与本发明有关的那些要素。
数字存储媒体命令和控制(DSM-CC)在DVB地MHP中用作开发与MPEG-1和MPEG-2流相关的控制信道的工具套件。DSM-CC主要是在MPEG-2标准的第六部分(DSM-CC扩展)中定义,它使得能够定义广播传送带(broadcast carousel)等。这种传送带是将数据集汇集到缓冲区中的机制,其中以循环方式取出(即周期性广播)那些数据。例如,这种传送带可用于播送所有应用文件,包括爪哇(Java)类文件、文本信息和接收机执行MHP应用所需的图形数据。
DSM-CC对象传送带不仅用于DVB的MHP,而且用于某些数字地面电视广播,包括例如ONdigital、BBC TV和英国国内的第四数字频道广播。
MHP基于称为DVB-J的平台,并包括SUN微系统公司的爪哇虚拟机(JVM)规范中定义的虚拟机。爪哇语言提供了一种产生硬件无关的、可在JVM上执行的“字节码”的方法。不同硬件平台可以不同方式实现JVM,但都执行相同的字节码。这对于诸如数字电视之类的广播环境而言是理想的,其中可以编写、编辑各种应用并将其广播到各种不同的机顶盒或集成数字电视机。
爪哇源代码用爪哇编译器编译成字节码并以类文件保存,类文件可通过JVM执行。借助DVB的MHP,利用DSM-CC将爪哇应用类文件广播到接收机上,其中DSM-CC可规定对应的文件结构,之后可在接收机上复制该文件结构以存储或高速缓存类文件。此外,DSM-CC可用于定义一些模块,这些模块包括相关的爪哇类文件组和其他用于广播的文件。
在第一类JVM实现中对字节码进行解释,但是,现代JVM将字节码编译成可快速执行的原指令。这种编译通常可能以下列任意一种方式进行:
即时编译(JIT)
这是在装入类文件或执行类文件中的方法(执行某种功能的一部分字节码)时将字节码编译成原码的情况。JIT实现的缺点在于,JVM必须花费一定数量的时间来对首次访问的类或方法进行编译。在此期间,JVM暂停爪哇应用的执行,一直等到编译完成为止。通常,编译器所执行的编译越多,则等待时间越长,但原码会运行得越快。
运行时分析
这些分析基于解释型JVM。JVM在运行时进行测量并在类或方法已被编译时评估其中哪些类或方法会产生最好的性能增益。这可能包括测量类或方法的使用次数和执行该类或方法的字节码所用时间。一旦经过确认,就可以在前台(引入等待时间)编译或在后台编译(利用其他方式所浪费的处理器时间)。采用此技术的JVM在将新的类文件装入或执行以前未用的方法时具有比JIT实现少的等待时间,但由于总要执行一些解释而以较低速度运行。存储运行时信息对执行速度的影响很小。此技术同时需要字节码解释器和字节码到原码的编译器。
超前编译(AOT)
在编译之后对字节码加以处理,并产生新的类文件。该新的类文件包含方法的原码实现。JVM识别这些原码实现并使用它们而非字节码。通常AOT时间编译可以实现好于JIT的优化,因为其编译时间不会阻止爪哇应用的执行。原码是单个处理器的特有的,因此AOT编译不太适用于广播环境,因为不同的接收机制造商可能使用各种各样的处理器。
本发明的目的是提供一种将包含在服务器发送给接收终端的字节码文件中的字节码编译成原码的备选的有效方法。
根据本发明,所述方法包括下列步骤:从服务器使用例如广播传送带将包含字节码的字节码文件发送到接收终端;把涉及字节码文件的编组方式的编组信息发送到接收终端;以及将接收终端上接收的字节码文件编译成原码,其中,选择要编译的字节码文件是随字节码文件编组方式而定的。字节码文件编译之后可以高速缓存到存储器以供随后执行。
本发明的方法允许提前编译所选字节码,同时仍然保持平台无关性且没有与JIT编译或运行时分析相关联的等待延时。
编组信息可能涉及:要传送的字节码文件的编组方式;服务器上存储的字节码文件的目录结构;或者将用在接收终端上存储字节码文件的目录结构。
就第一种情况而言,可以在解释、编译或执行相同组中传送的其他字节码文件时选择要编译的字节码文件。例如,可以用DVB的MHP标准的DSM-CC协议描述所述编组信息。
对于后两种情况,单个组通常会涉及单个目录,以便随后可以在解释、编译或执行相同所述目录结构中的其他字节码文件时选择要编译的字节码文件。
同样对后两种情况而言,编组信息可包括附加到各字节码文件的文件名中的文件位置,即按照惯例已经广播的信息的新使用率。
本发明还提供如权利要求14至18所述的服务器以及如权利要求19至27所述的接收终端。
本发明将仅通过示例、结合附图来说明,附图中:
图1显示了按照本发明配置的电视广播系统和对应的接收系统;
图2和图3显示了图1的广播系统用于组织爪哇类文件和其他相关文件的结构的相应的目录和模块。
图1显示了一种适于按照DVB的MHP标准将电视音频和视频数据连同辅助应用数据发送到对应的接收系统101的电视广播系统100。例如,电视广播系统可以是属于商用卫星广播公司的卫星广播系统,以及接收系统可以是碟形卫星接收天线和用于处理接收数据以在TV 116上显示的机顶盒的许多对应组合之一。同样,广播系统和对应的接收系统可以地面系统为基础。在任何一种情况下,这种系统的设计、制造和操作是众所周知的,下面不会详述与本发明无关的那些部分。
通过音频输入105、视频输入104和数据输入106,广播系统100接收由包含预先录制的音频和视频电视内容的存储媒体102馈送来的音频和视频数据流和由包括爪哇类文件和相关图形文件的计算机103馈送来的应用数据流。应用数据用于提供增强数据/图文电视业务(未显示),增强数据/图文电视业务包括与音视频内容相关的辅助信息,用户通过这些信息可在显示音视频数据的同时进行浏览。
音频、视频和数据流在利用发送器108经一个信道向相应的接收系统广播之前在多路复用器107中进行多路复用。在所示接收系统中,输入的传输信息由接收器109接收,并在多路分解器110中进行信号分离,然后音频、视频和应用数据流通过相应的音频输出112、视频输出111和数据输出113输出。从应用数据导出的显示数据然后与音视频数据一起馈送到电视信号处理单元115,该单元输出对应的电视信号,以便在电视机116上显示。
除其他信息以外,可以提供应用数据的爪哇类文件,用于生成显示与音视频内容有关的辅助信息的窗口,以及可以为美观起见(包括为显示带装饰性边框窗口和菜单导航选项)提供相关的图形文件。这种增强数据/图文电视业务的例示可能是如下情况:音视频内容表示正在进行表演的流行组合,而应用数据为数据/图文电视业务提供在部分音视频显示之上的窗口中显示的万维网风格的界面,其中,该流行组合的热心追随者可以细读有关即将来临的音乐会、杂谈等详情的信息页面。
某些爪哇类文件会彼此相关,以致对一个类文件的解释或编译会导致或可能导致对另一个类文件进行解释或编译,即一个类文件可能需要执行另一个类文件。此信息可以在接收机上通过运行时分析而获得,但正如前面所述,这会引入等待延时。但幸运的是,在编辑应用数据时,就将理解哪些类文件是这样关联的以及可以相应地将这些类文件编组。根据本发明,这些编组信息由接收系统识别,由此可将某些类文件预编译并高速缓存到存储器中,以便随后在解释、编译或执行相同组中的其他字节码文件时执行。
类文件的编组信息可以按照下列示例中的任何一个示例传送到接收系统。
示例1
参照传送期间字节码文件的编排来定义编组方式。这样的编组方式可以利用DVB的MHP的DSM-CC来定义,该DSM-CC可以将类文件和其他文件组合成用于广播的模块,其中,模块内容与特定应用相关联。例如,参照图2,模块1包含目录“目录1”中的所有类文件的列表;模块2包含类文件“文件1.类”、“文件4.类”、“文件5.类”和目录“目录2”中的类文件的列表;以及模块3包含类文件“文件2.类”、“文件3.类”、“文件6类”“文件7.类”和目录“目录2”中的所有类文件的列表以及图形文件“文件8.gif”。然后可以在解释、编译或执行相同组中传送的其他字节码文件时选择要编译的字节码文件。
示例2
通过字节码文件传送前在服务器上存储的目录结构来定义编组方式,根据该目录结构,一组对应一个目录。在此情况下,编组信息可以分布到各字节码文件中,即:它可以包括附加到各字节码文件的文件名中的文件位置。例如,参照图3,所示目录结构可能对应于3组类文件,组1对应于包含所有类文件的目录“目录1”;组2对应于包含类文件“文件4.类”、“文件5.类”的“目录2”;以及组3对应于包含类文件“文件6.类”“文件7.类”的“目录3”。在此情况下,给定的类文件可属于一个以上的组,尽管它只需广播一次。然后可以选择要编译的字节码文件,由此,在解释、编译或执行同一目录中所驻留的其他字节码文件时选择对应于目录“目录2”和“目录3”的组中的那些类文件;而在编译类文件“文件1.类”、“文件2.类”和“文件3.类”(即在目录“目录1”而非目录“目录2”或“目录3”中的那些类文件)时,编译目录“目录1”中的所有类文件(包括“目录2”和“目录3”中的那些类文件)。
示例3
类似于示例2,不同之处在于,编组方式是通过将要用在接收终端上存储字节码文件的目录结构来定义的,此目录结构不必与服务器上存储的文件的目录结构相同。
示例4
编组方式是通过附加信息来定义的,附加信息与类文件一起传送并且专用于定义类文件组,以便进行有效的编译。
以上实施例主要是在经广播传送带广播字节码的广播系统的上下文中说明本发明。但是,本发明同样适用于将字节码传送到接收系统的其他方案,包括用因特网传送爪哇小应用程序等的方案。