CN1190728C - 用于下载应用数据的方法和设备 - Google Patents
用于下载应用数据的方法和设备 Download PDFInfo
- Publication number
- CN1190728C CN1190728C CNB021068054A CN02106805A CN1190728C CN 1190728 C CN1190728 C CN 1190728C CN B021068054 A CNB021068054 A CN B021068054A CN 02106805 A CN02106805 A CN 02106805A CN 1190728 C CN1190728 C CN 1190728C
- Authority
- CN
- China
- Prior art keywords
- download
- loader
- equipment
- request
- destination
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4433—Implementing client middleware, e.g. Multimedia Home Platform [MHP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4348—Demultiplexing of additional data and video streams
- H04N21/4349—Demultiplexing of additional data and video streams by extracting from data carousels, e.g. extraction of software modules from a DVB carousel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
- H04N21/4351—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reassembling additional data, e.g. rebuilding an executable program from recovered modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6433—Digital Storage Media - Command and Control Protocol [DSM-CC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- Multi Processors (AREA)
Abstract
一种用于从分布式应用工作平台下载应用数据的方法和设备,通过请求下载目标对象,下载该目标对象,处理该目标对象,以及在必要时,请求下载该目标对象依赖的另一个对象。连同处理该目标对象,分析该目标对象,以便确定该目标对象依赖的所有的对象,以及该对象被下载和存储,使得响应请求下载另一个对象的步骤可以恢复该另一个对象。
Description
技术领域
本发明涉及一种用于下载应用数据的方法和设备,尤其是从分布应用环境,例如从DSM-CC目标转盘(Object Carousel)下载携带在传送流中的Java类别。
背景技术
已知各种各样的分布式应用环境,其中在分布状态中提供应用数据,使得设备不下载作为单体的应用程序,而是分成几部分下载一个应用程序,例如单独的分段或者数据分组。
从高等待时间文件系统,诸如DSM-CC目标转盘加载应用数据是公知的。尤其是,各种各样的文件结合成用于DSM-CC数据转盘模块,该文件诸如Java类别可以作为DSM-CC目标转盘的部分BIOP重新格式化,然后作为DVB或者MPEG部分发送。
终端用户从传送流下载适当的部分,并且重新产生想要的对象或者文件。
典型地,文件是互相关联的。因此,交互式电视业务可以按照特定的下载对象提供一个用于显示的页面。但是,按照在其页面之内的选择,该电视设备按照另一个对象的数据可能希望显示另一个页面。
在分布式应用工作平台中,由于构成一个特定的对象的数据不是立即可用的,例如它是由转盘提供的,对于上述例子,在下载和处理下一个对象之前,可能花费一些时间,以便显示下一页。
这个问题存在于所有类似的系统中,其中对象是以这种方法下载的。
发明内容
因此,本发明提供了克服在这些系统中延迟的发生。
按照本发明,提供了一种从分布式应用环境下载应用数据的方法,该方法包括:
请求目标对象的下载;
下载该目标对象;
处理该目标对象;和
在必要时,请求下载该目标对象依赖的另一个对象,该方法进一步包括:
同时处理该目标对象,目标语法分析该目标对象,以便确定该目标对象依赖的所有对象并且下载所述对象;和
存储所述对象使得响应请求下载所述另一个对象的步骤所述另一个对象可以被恢复。
按照本发明,提供了一种从具有包括一个用于下载对象的对象加载器和一个用于请求对象加载器去下载一个目标对象的控制器的设备的分布式应用环境下载应用数据的方法,用于处理该目标对象,以及在必要时,用于请求该对象加载器去下载该目标对象依赖的另一个对象,该方法包括:
目标语法分析该目标对象,以便确定该目标对象依赖的所有的对象;
下载所述对象;和
存储所述对象使得响应下载所述另一个对象的请求,所述目标加载器可以检索所述另一个对象。
按照本发明,提供了一种用于从分布式应用环境下载应用数据的设备,包括:
一个用于下载对象的对象加载器;和
一个用于请求对象加载器去下载目标对象的控制器,用于处理目标对象和,在必要时,用于请求对象加载器去下载另一个目标对象依赖的对象,该设备进一步包括:
一个可和对象加载器同时操作的预加载器,用于下载所述对象和用于存储所述对象,使得当请求去下载所述另一个对象时,所述对象加载器可以从预加载器检索所述另一个对象,对象加载器用于目标语法分析该目标对象,以确定目标对象依赖的所有的对象。
以这种方法,当一个目标对象首先被下载时,该预加载器立即确定该目标对象依赖的所有的对象。因此,当目标对象正在被处理的时候,该预加载器可能已经下载另一个由目标对象要求的对象。等到该目标对象需要参考其它对象中的一个时,该对象可能已经由预加载器下载,或者至少该下载已经正在进行。以这种方法,上述讨论的延迟即使没有消除也将降低。
最好是,提供多个分段滤波器,每个用于从接收的传送流中滤出涉及相应的请求对象部分。
在对象加载器和预加载器的控制下,因此该分段滤波器同时下载不同的对象。该分段滤波器可以是MPEG分段滤波器。
在DVB-MHP环境中,电视接收机可能常常在该接收机的多路复用器硬件中包括多个MPEG-2分段滤波器。通过对DSM-CC专用多个这些部件,因此可允许并行下载对象。
因此,该预加载器可以安排同时从不同的相应的分段滤波器下载不同的对象。
最好是,提供一个接收机存储器,其中预加载器存储下载对象。
该接收机存储器可以是一个专用存储器,例如作为预加载器的部分。但是,该预加载器可以以软件提供。因此,事实上该接收机存储器可能是一个对设备的各种各样的部分通用的主存储器的编址区域。
因此,由该预加载器下载的对象是存储在该接收机存储器中,并且当请求下载它们中之一时,对于该对象加载器是立即可用的。
最好是,装入的文件被留给每个应用程序用。这可以对应于该目标对象。该文件包含该目标对象依赖的所有的对象的清单,它们需要长时间去下载。
以这种方法,当一个应用程序或者目标对象被请求时,该预加载器可以首先下载列在该文件上所有的对象。对象语法分析将仅仅是为确定可以更迅速地下载该对象所必需的。
最好是,以相应的模块共同提供对象,该接收机存储器用来存储全部的模块。
因此,在调用一个应用程序期间,如果来自先前下载和存储的模块的对象是可用的,下载时间将大大地降低。因此在该文件中的清单将倾向于表示那些必须重新下载的对象。
该对象可以包括Java类别。当本发明应用于DVB-MHP环境时,这是尤其可适用的。因此,该设备可以是MHP依从的,并且可以是电视设备,例如一个完整的电视或者一套机顶盒。
这里该对象是Java类别,该对象加载器可以是一个连续的Java类别加载器。
以这种方法,该加载器依次下载由控制器请求的Java类别。
最好是,该预加载器处理加载类文件类别分析,以便确定它依赖的其它类别。
应该理解,该预加载器此外可以对该目标对象依赖的每个对象进行目标分析。以这种方法,该预加载器可以确定先前下载的对象依赖的其它对象,并且下载和存储那些其他它对象,使得随后可以毫不迟延地检索它们。
该对象加载器和控制器可以连同设备的其他功能以软件实施。
在这种情况下,该预加载器最好是作为一个附加的软件部分提供,该软件可以加载到设备上,能使它按照本发明去运行。尤其是,该对象加载器可以以其上述的连续方式工作,无需特定的预加载器的操作知识。因此,该对象加载器仍然依次下载对象,但是,按照本发明,该预加载器先前已经下载或者至少开始下载对象,该对象加载器比必须分别地下载它们,更迅速地接收它们。
附图说明
从下面通过参考伴随的附图仅仅举例给出的说明书中将更清楚地理解本发明,其中:
图1示意地举例说明实施本发明的一个设备;
图2举例说明一个对象的方案;
图3举例说明图2的异步预加载方案;
图4举例说明用于预加载的流程图;
图5举例说明用于DSM-CC回叫功能的流程图;
图6(a)举例说明一个相互从属的举例;以及图6(b)举例说明用于下载图6(a)的对象的时间。
具体实施方式
参考DVB-MHP工作平台以及下载Java类别将描述优选实施例。但是,应该理解本发明适用于任何分布式应用工作平台,尤其是具有很大的文件存取等待时间,以及适用于任何形式的对象下载。
图1示意地举例说明实施本发明的一个设备。尤其是,一个对象加载器2从传送流4下载对象。这可以在控制器6的控制下。然而,实际上可以不必清楚地在对象加载器和控制器6之间区别。此外,为了在下面讨论的缘故,对象加载器2可以经由低电平加载器12下载对象。
下载一个对象,然后按照对象的特性处理。因此,在这个实施例的背景下,该对象可以包括为显示特定的交互式电视页面所必需的数据。概括地说,所有的对象是用来实施某个动作或者行为的。这可以是高级的行为,诸如显示一个消息,或者可以是一个低级的行为,诸如保存一个固有的数据库的名称。
该传送流4可以携带加载的各种各样的Java类别。但是,一旦加载一个类别,它依赖的类别必须同样被加载。在具有很大文件存取等待时间的分布式应用工作平台中,诸如DVB-MHP工作平台,这里经由DCM-CC转盘递送应用程序,这个加载可能花费相当的时间去完成。
在这个实施例中,参考图1,对象加载器2包括一个用于加载Java类别的虚拟机类别加载器。如举例说明的,此外提供了一个预加载器8,并且这也可以经低电平加载器12工作。它与VM类别加载器隔开,并且可能是单独的软件成分。首先加载由类别加载器2请求的类文件,然后为了找出将需要什么别的类别针对该类文件实施类别分析。该类文件包含为例示特定的类型的对象所必需的信息。因此,该类文件也包含为了例示该类别大约需要被加载进入系统之内其他类别的信息。
以这种方法,预加载器8可能保留一系列还被下载的类别。
该预加载器8然后可以实施异步加载所有的这些类别。该类别可以存储在接收机存储器中或者随预加载器8整体地形成的对象高速缓冲存储器中或者作为总体设备部分分开。以这种方法,当由Java类别加载器2请求一个文件时,可能该文件已经在接收机存储器或者对象高速缓冲存储器是可用的,或者其是处于从广播流4下载的状态之中。典型地,这将导致更快地类别加载。
由预加载器8备有的列表也可能被调配处理。尤其是,在上述的场合上,已经下载对象或者类别时,预加载器8可以记录花费多长的下载时间。以这种方法,预加载器可能调配处理当前未完成的请求类别列表,使得那些具有比较久的下载时间的首先被请求。
在MHP和数字电视接收机的情况下,应当注意到很多的接收机可能能够处理多个并行对象下载。当然,在图1举例说明的设备装备有多个分段滤波器10。借助于此安排,对于可以并行下载几个对象唯一实际的限制是分段滤波器的数目。当然,对于MHP工作平台的实施例,该分段滤波器将在该接收机的多路分解器硬件中包括MPEG-2分段滤波器。唯一的实际限制将是这些分段滤波器10的数目,这些分段滤波器10可以专用于DSM-CC。
预加载器8通过使用对象的并行异步加载可以促进连续的Java类别加载器2的工作,诸如DSM-CC文件,其是由类别加载器2请求的。尤其是,预加载器8实施通过类别分析识别的类别的异步加载,使得经相应的分段滤波器10并行下载该类别。
这提供了一种采用多个分段滤波器设备的结构。这是尤其值得注意的,如果类别加载器2没有任何额外的信号已经作为连续的类别加载器实施,在没有预取出任何类别意义上,它期望在将来被加载。即便要改进类别加载器2需要非常少,但是预加载器8的设备允许其工作被促进。
因此,依照惯例,对象或者类别加载器2经低电平加载器12请求一个分段滤波器10去下载一个请求的对象或者类别。低电平加载器12响应对象加载器2管理和控制分段滤波器10。当请求的类别或者对象正在下载之时,也与低电平加载器通信的预加载器8分析该对象或者类别。例如,它分析该类文件以便确定所有的从属类别。
基于由预加载器8确定的从属类别,该预加载器8请求多个类别,并且该低电平加载器12控制多个分段滤波器10,使得它们从传送流4滤波要求的对象或者类别,以及经数据总线14提供这些对象或者类别。
当确定了一个对象或者类别需要参考另一个对象或者类别时,对象加载器2试图下载需要的对象或者类别,并且给低电平加载器12提出请求。因此,已经由预加载器8下载该对象时,低电平加载器12工作,使得由预加载器8从接收机存储器中提供对象数据给对象加载器2。以这种方法,当没有预加载器8工作之时对象加载器2工作,但是接收对象更加快。在需要的对象没有充分地下载的情况下,对象加载器2将从预加载器8接收部分数据,并且当它到达之时,从分段滤波10接收剩余的数据。
最好是,当请求的类别或者对象到达之时,它们依次被分析,并且由它们要求的对象或者类别被请求。因此,会有一个循环,异步类别加载与由对象或者类别加载器2进行的加载并联执行。
图2举例说明一个方案,其中存在主要应用程序类别或者目标类别A,它依次依赖于类别B和类别C。然后类别C它本身需要类别D和E。
应该理解,在某些分布式工作平台中,诸如DSM-CC,对象是集合在模块中的。因此,如举例说明的那样,类别A是在一个模块中,类别B和C是在另一个模块中,以及类别D和E是在第三个模块中。
为了下载模块的对象的一个的数据,通常需要下载整个模块的数据。因此,在优选实施例中,每当对象加载器2或预加载器8两者之一下载一个对象时,它们存储该整个模块。服务供应商通常在同样的模块中设置相关的对象。因此,存储一个整个模块,很可能相关的对象已经下载,因此允许更快地存取时间。
图3举例说明在下载各种各样的对象或类别中实施的步骤。
“Java DSM-CC”层是一个提供访问DSM-CC对象的高电平API,在某种程度上它是与访问局部文件系统很相似的。“本地的DSM-CC栈”是实施实际的下载的低级的软件成分。这个层提供为DSM-CC对象转盘本性所特有的功能,即多个对象的并行异步的加载。
类别加载器2发现文件A需要被加载,例如在来自控制器6的指令之下。响应这个发现,预加载器进程活动被产生,这对应于预加载器8的略图。类别加载器2表示被加载的初始文件是文件A,文件A然后由预加载器进程活动8和类别加载器2两者请求。
当文件A得到时,由预加载器8分析,并且借助于分段滤波10文件B和C被立即请求加载。
随文件A加载,它被按惯例地处理,例如包括控制器6。作为此结果,需要建立对文件B进行参考。因此,类别加载器2请求加载文件B。
当文件B得到时,由预加载器8分析,但是没有发现新的从属。
响应先前的请求,文件B被返回到类别加载器2。在连续使用文件A和B期间,对于文件B没有发现新的从属。但是,确定对文件C参考是需要的。因此,类别加载器2请求文件C。
当文件C得到时,由预加载器8分析。预加载器8确定文件C依赖于文件D和E,并且因此,使用分段滤波器10,请求下载这些文件。
文件C被返回给类别加载器2。在后续处理期间,确定需要文件D,并且因此,类别加载器2请求文件D。
当文件D得到时,预加载器8确定没有新的从属,并且文件D被返回给类别加载器2。同样,在处理期间,确定文件C又依赖于文件E,并且因此,文件E被请求。
当文件E得到时,预加载器发现没有新的从属,并且因此使进程活动从运行到完成。
文件E被返回给类别加载器2,并且完成该加载。
应用数据的异步预加载可被用于应用程序引导时间去加速初始应用程序类别的下载。但是,还可以用于其他的时间点。例如,每当确定类别加载器2即将加载尚未被加载的类别时,预加载器8可以使用,因为这可能暗示应用程序某种程度改变其功能状态。例如,新闻应用程序可以键入″天气预报″模式,并且需要加载特定于该模式的类别。因此,为了改进接收机性能和应用程序响应,在整个应用程序的持续时间期间,可以使用预加载器8。当然,因为在应用程序引导时间期间,广播装置可以优选他们的应用程序用于快速初始类别加载,预加载器8和在稍后渐变阶段实施的处理可能比在应用程序引导处理期间更重要。
图4作为流程图举例说明上述讨论到的过程。
在步骤100中,进行初始类别文件请求。例如,这些可以来自于控制器6。
步骤102表示一个推荐的特征,通过它请求的文件的名称被增加给未完成的请求文件列表。如提到的那样,这个列表可以按照先前确定的下载时间调配处理。也保持一个请求计数。这个计数表示未完成的请求文件的数目。因此,在这个阶段,请求的计数被增加。该请求计数记住发出的但是发出给本地的DSM-CC尚未完成的请求数目。
在步骤104中,该进程等候下载一个请求的文件。在这方面,应该理解,该文件可以对于以其请求的不同的命令而得到。这是因为文件在不同的时期将变得可用的,并且对于下载将需要不同的时间。
在预定时间以后,如果没有请求的文件下载,达到超时状态,并且进程移到步骤106。在这个步骤中,确定是否请求的计数等于零。当请求的计数达到零时,然后它确定不再会有对象消息到达,该进程活动可以终止。
如果请求的计数是零,然后该进程可以结束,并且在步骤108,预加载器进程活动可以消逝。但是,如果请求的计数不等于零,然后该进程返回到步骤104。
一旦得到一个对象消息,在步骤110中,确定是否加载的类别依赖于所有的其他类别。如此从属的从属列表和它们的类别名称被确定。然后确定是否所有的类别名称存在于从属的列表中或者,当进程周期循环时,是否在从属的列表上存在更多类别名。
因此,在该方案中存在两个列表。一个列表由预加载器保持。这个列表包含未完成的加载请求。另一个从属的列表是在类别文件本身中建立的列表,这个列表是类别文件依赖的全部的文件的列表。
如果没有类别名称或者不再有类别名称,然后进程进入步骤112,这里请求计数被递减,去表示一个请求的文件已经得到。换句话说,因为一个对象消息已经得到,并且对于所有的其他从属已经核对,未完成的类别的数可以递减一。
然后刚才从对象转盘加载的文件被关闭。关闭它,允许从存储器上删掉它。
如果用于新得到的对象消息的从属列表包括一个或多个类别名称,然后,在步骤114,进程选择一个引入的类别名称,即,该加载的类别依赖的类别。
在步骤116,确定是否类别名称已经在由预加载器保持的列表中。
如果名称已经在该列表中,然后进程返回到步骤110。但是,如果不是这样,在步骤118,文件被请求,该名称被增加给该列表,并且请求计数被增加。
因此,该进程核对每个下载的类别去确定是否它依赖于未由预加载器下载所有的其他类别。必要时,从而附加的类别被加入到被下载的类别的列表。
图5举例说明预加载进程活动等待的“对象消息”的来源。对象消息包括有加载的类别文件。该消息被发送给消息队列,这里预加载器进程活动阅读该消息。
在图5中的流程图举例说明当加载已经结束时,由DSM-CC栈调用的回叫。重要的是认识到这个流程图将针对DSM-CC栈的进程活动执行,不针对预加载器的进程活动。参考计数用来记录加载请求未完成的数目;这与如上所述的参考计数是相同的。对象消息提供低级的DSM-CC栈去异步交付加载的对象给另一个执行进程活动用于另一个进程。这是因为实际的进程在DSM-CC栈进程活动中不发生,这个进程活动对于得到DSM-CC部分进程应该是可用的。如果在加载时或者当发送该消息时存在一个差错,然后回叫将仅仅递减参考计数并且返回。回叫运行本身返回没有意义。
下面将给出上述讨论到的进程的一个例子。
下面的例子示范另一个如何提高类别加载效率的结构。在这个例子中,我们设想加载类别A,它依赖于B、C、D、E、F。类别B和E携带在模块1(M1)中。类别C和F携带在模块2(M2)中,并且类别D携带在模块3(M3)中。如已经由DVB-MHP限定的,接收机实施清楚的高速缓冲存储器。这指的是在可以返回一个已经在该系统存储器中可用的模块之前,将必须验证相对于来自流的下载消息指示(DII)消息的该模块的版本。
下面进行假设:
·花费等待DII消息的平均时间是tDII;
·分析类别花费的时间是tP;
·用于M1、M2、M3的下载时间大约是同样的值tX(即模块属于同样的大小);
·tP和tDII以及模块下载时间的关系是这样的:0.5tX<tP+tDII<tX;
·类别A的分析起始于时间t,它是在模块已经出现在转盘以后的某处;
·该接收机具有足够的分段滤波器可以用来并行下载三个模块;
·总的转盘循环时间是T。
随着进行所有的这些假设,花费加载仅使用连续的类别加载的所有类别的时间可以如下计算:
·分析类别A和加载类别B的时间:tP+T-1+t1;
·分析类别B和加载类别E的时间:tP+tDII;
·分析类别E和加载类别C的时间:tP+T(因为加载请求将在t2的中间某处发出);
·分析类别C和加载类别F的时间:tP+tDII;
·分析类别F和加载类别D的时间:tP+T(因为加载请求将在d3内部某处发出);
这得出结果总的加载时间3T-t+5tP+2tDII+t1。如果使用在这个文献中描述的预加载结构,最大的总的加载时间将代之以变为T-t+t1+t2+t3+5tP+2tDII;
获得的时间于是将变为2T-t2-t3。
假定下面的数值:
·T=20秒
·tX=1秒(即,对于以500kb/s流出的64kB模块近似的加载时间);
获得的时间变为38秒。
在这个例子中注意到最重要的东西或许是对于连续的类别加载器加载所有的类别花费的时间,它可以容易地处于N*T的排序之中,这里T是转盘循环时间,并且N是需要加载的模块的总数。如果使用在这个文献中提出的预加载器结构,总的加载时间将代之以大约为T*f(类别树),这里从并行预加载观点来说f(类别树)是一个函数,它的值表示转盘组织的如何好(该值将在1和N之间变化)。作为预加载器结构具有优点的事实是多个下载可以并行执行,为了获得快速类别加载,针对下面的转盘结构的从属被降低。
关于上述讨论到的进程,应该理解常常一个应用程序不会在两个请求之间被修改。因此,在一个应用程序的初始请求和当该应用程序被完全地准备起动时候之间,很可能将需要同样的类别。类似地,当随后应用程序的请求时,很可能需要同样的类别。
当起动一个应用程序时,其行为通常由用户限定。因此,在应用程序的持续时间期间,必须加载的类别没有必要从一个执行到另一个标识。
应该理解,对于由一个应用程序要求的各种各样的对象或者类别来说没有均匀分布的加载时间。
如上所述,整个模块通常存储在存储器中。因此,类别或者对象是新模块的一部分,即,在没有被加载之前模块是不在存储器里的,与从一个存储在存储器中“已经看到”模块中的同样的类别或者对象相比较,下载将花费更多的时间。
在其最简单的形式中,如上所述的预加载器工作不知道关于模块的从属关系的任何事,因此不知道是否一个对象或者类别是可以从已经下载的模块中获得的。该预加载器仅仅依次下载类别或者对象,其中它们是由该类别或者对象加载器请求的。
因此,如上所述,现在建议类别或者对象需要很长时间加载,这个类别的加载被较早地起动。在这方面,有人建议,每次加载一个应用程序,产生一个文件,其将包含一个先前需要长时间加载的所有类别或者对象名称的顺序列表。换句话说,在早先的请求该应用程序期间,它存储必须从接收的传送流下载的所有类别或者对象的列表,并且从先前存储在存储器的模块中是不可用的。
如果该转盘被重新组织,下一次该应用程序被装入的时候该文件将被更新。
仅在应用程序装入之前加载的类别的名称存储在该文件中。
因此,当请求加载一个应用程序时,首先进行核对去看看是否先前已经加载了这个应用程序。在这点上,可以进行核对去看看是否相应的文件存在。如果它确实存在,它被分析,并且立即加载该类别或者对象。当然,在加载已经实际上起动的应用程序的第一个类别之前,可以起动加载列在该文件中的类别或者对象。
以这种方法,借助于保留一个很小的文件描述应用程序的类别加载概貌,可能去提供应用程序更快的下载。
Claims (16)
1.一种用于从分布式应用环境下载应用数据的设备,包括:
一个用于下载对象的对象加载器;和
一个用于请求对象加载器去下载目标对象的控制器,用于处理目标对象和,在必要时,用于请求对象加载器去下载另一个目标对象依赖的对象,该设备进一步包括:
一个可和对象加载器同时操作的预加载器,用于下载所述对象和用于存储所述对象,使得当请求下载所述另一个对象时,所述对象加载器可以从预加载器检索所述另一个对象,该对象加载器用于对象分析该目标对象,以便确定目标对象依赖的所有的对象。
2.按照权利要求1的设备,其特征在于进一步包括多个分段滤波器,每个用于从接收的传送流中滤出涉及相应的请求对象部分。
3.按照权利要求2的设备,其特征在于分段滤波器是MPEG分段滤波器。
4.按照权利要求2或者3的设备,其特征在于预加载器被安排为同时从不同的相应的分段滤波器下载各别的对象。
5.按照先前任一权利要求的设备,其特征在于预加载器被安排同时下载多个所述对象。
6.按照先前任一权利要求的设备,其特征在于预加载器另外对象分析每一个所述对象,以便确定所述对象依赖的其它对象,下载所述其它对象和存储所述其它对象。
7.按照先前任一权利要求的设备,其特征在于进一步包括一个接收机存储器,其中预加载器存储下载对象。
8.按照先前任一权利要求的设备,其特征在于该对象包括Java类别。
9.按照权利要求8的设备,其特征在于该对象加载器是一个连续的Java类别加载器。
10.按照权利要求8或者9的设备,其特征在于预加载器实施加载的类别文件的类别分析。
11.按照先前任一权利要求的设备,其特征在于进一步包括:
一个用于存储对于每个先前下载目标对象文件的存储器,该文件包含目标对象依赖的需要很多时间下载的对象的列表,其中该预加载器首先下载标识在该文件中的对象。
12.按照先前任一权利要求的设备,其特征在于当对象加载器或者预加载器下载一个对象时,该对象被作为模块的一部分一起提供,用于其对象的整个模块是存储在存储器中的。
13.按照先前任一权利要求的设备,其特征在于它是MHP依从的。
14.按照先前任一权利要求的设备,其特征在于它是一个电视设备。
15.一种从分布式应用环境下载应用数据的方法,该方法包括:
请求下载一个目标对象;
下载该目标对象;
处理该目标对象;和
在必要时,请求下载该目标对象依赖的另一个对象,该方法进一步包括:
同时处理该目标对象,目标语法分析该目标对象,以便确定该目标对象依赖的所有对象,并且下载所述对象;和
存储所述对象,使得响应请求下载所述另一个对象的步骤,所述另一个对象可以被检索。
16.一种从具有包括一个用于下载对象的对象加载器和一个用于请求对象加载器去下载一个目标对象的控制器的设备的分布式应用环境下载应用数据的方法,用于处理该目标对象,以及在必要处时,用于请求该对象加载器下载该目标对象依赖的另一个对象,该方法包括:
目标分析该目标对象,以便确定该目标对象依赖的所有的对象;
下载所述对象;和
存储所述对象,使得响应下载所述另一个对象的请求,所述对象加载器可以检索所述另一个对象。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP01300429.6 | 2001-01-18 | ||
EP01300429A EP1227666A1 (en) | 2001-01-18 | 2001-01-18 | Method and device for downloading application data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1369779A CN1369779A (zh) | 2002-09-18 |
CN1190728C true CN1190728C (zh) | 2005-02-23 |
Family
ID=8181650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021068054A Expired - Fee Related CN1190728C (zh) | 2001-01-18 | 2002-01-18 | 用于下载应用数据的方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20020124244A1 (zh) |
EP (1) | EP1227666A1 (zh) |
JP (1) | JP2002304301A (zh) |
KR (1) | KR20020061543A (zh) |
CN (1) | CN1190728C (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7110995B2 (en) * | 2002-02-27 | 2006-09-19 | International Business Machines Corporation | Apparatus and method for generating graphic presentation of estimated time of completion of a server request |
US20030177484A1 (en) * | 2002-03-15 | 2003-09-18 | Bosschaert Allaert J. D. | Firewall class loader |
GB0313720D0 (en) * | 2003-06-13 | 2003-07-16 | Electra Guide Ltd England | An improved television system |
US7318229B1 (en) * | 2003-07-29 | 2008-01-08 | Sun Microsystems, Inc. | Method, system, and program for dispatching a method call |
US7500235B2 (en) * | 2003-09-05 | 2009-03-03 | Aol Time Warner Interactive Video Group, Inc. | Technique for updating a resident application and associated parameters in a user terminal through a communications network |
KR20070063571A (ko) * | 2004-09-30 | 2007-06-19 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | Mhp 애플리케이션들의 시동 시간을 감소시키기 위한시스템 및 방법 |
JP2006331307A (ja) * | 2005-05-30 | 2006-12-07 | Hitachi Kokusai Electric Inc | 分散システム |
KR100720558B1 (ko) | 2005-08-30 | 2007-05-22 | 엘지전자 주식회사 | 데이터 방송의 저장 및 실행 기능을 구비한 영상기기 및 그제어방법 |
US8291431B2 (en) * | 2006-08-29 | 2012-10-16 | Qualcomm Incorporated | Dependent instruction thread scheduling |
US8132152B2 (en) * | 2007-06-08 | 2012-03-06 | Apple Inc. | Extending a scripting language to provide an object hierarchy |
US8069438B2 (en) * | 2007-06-08 | 2011-11-29 | Apple Inc. | Class declaration in a non-class-based programming environment |
US8079025B2 (en) * | 2007-06-08 | 2011-12-13 | Apple Inc. | Asynchronous load of source dependencies |
KR101490688B1 (ko) * | 2008-03-03 | 2015-02-06 | 삼성전자주식회사 | 컨텐츠 저장 및 처리 장치 및 그 장치에서 미디어 전송프로토콜에 의하여 컨텐츠에 관한 오브젝트 메타 정보를전송하는 방법 |
KR101523380B1 (ko) * | 2008-10-29 | 2015-05-27 | 주식회사 알티캐스트 | 인터랙티브 서비스 제공 방법 |
US20110055355A1 (en) * | 2009-08-21 | 2011-03-03 | Samsung Electronics Co., Ltd. | Application downloading method, application providing method, user terminal using the same |
US8788615B1 (en) * | 2009-10-02 | 2014-07-22 | Adobe Systems Incorporated | Systems and methods for creating and using electronic content that requires a shared library |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2743245B1 (fr) * | 1995-12-29 | 1998-01-23 | Thomson Multimedia Sa | Dispositif de demultiplexage |
US5826031A (en) * | 1996-06-10 | 1998-10-20 | Sun Microsystems, Inc. | Method and system for prioritized downloading of embedded web objects |
US6260078B1 (en) * | 1996-07-03 | 2001-07-10 | Sun Microsystems, Inc. | Using a distributed object system to find and download java-based applications |
DE19652629A1 (de) * | 1996-12-18 | 1998-06-25 | Philips Patentverwaltung | System zum Austausch von Software |
WO1998057273A1 (en) * | 1997-06-13 | 1998-12-17 | Koninklijke Philips Electronics N.V. | Cyclic transmission of a plurality of mutually related objects |
US6092120A (en) * | 1998-06-26 | 2000-07-18 | Sun Microsystems, Inc. | Method and apparatus for timely delivery of a byte code and serialized objects stream |
US6604235B1 (en) * | 1999-01-06 | 2003-08-05 | Icebox, Llc | Operating system upgrading |
GB2349548A (en) * | 1999-04-27 | 2000-11-01 | Roke Manor Research | Downloading software to mobile telecommunication users |
-
2001
- 2001-01-18 EP EP01300429A patent/EP1227666A1/en not_active Withdrawn
-
2002
- 2002-01-16 US US10/052,797 patent/US20020124244A1/en not_active Abandoned
- 2002-01-18 CN CNB021068054A patent/CN1190728C/zh not_active Expired - Fee Related
- 2002-01-18 KR KR1020020003095A patent/KR20020061543A/ko not_active Application Discontinuation
- 2002-01-18 JP JP2002010802A patent/JP2002304301A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2002304301A (ja) | 2002-10-18 |
KR20020061543A (ko) | 2002-07-24 |
EP1227666A1 (en) | 2002-07-31 |
CN1369779A (zh) | 2002-09-18 |
US20020124244A1 (en) | 2002-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1190728C (zh) | 用于下载应用数据的方法和设备 | |
TWI301946B (en) | Related computer system, related method, and related computer for dynamically adding software components to manage media filters and computer readable medium for recording related instructions | |
CN1852101A (zh) | 一种并行下载方法和终端 | |
CN1826813A (zh) | 处理广播中的特征可用性 | |
EP1194838B1 (en) | Methods and apparatus for implementing individual class loaders | |
CN1162786A (zh) | 用于多任务设施信息处理系统的资源管理方法和设备 | |
CN1092451C (zh) | 多路分解设备 | |
CN1975668A (zh) | 一种支持多语言的系统及输入、读取多语言数据的方法 | |
US9535677B2 (en) | Software discovery in an environment with heterogeneous machine groups | |
CN1781075A (zh) | 电子文件更新期间的设备存储器管理 | |
CN1890644A (zh) | 文件管理装置、文件管理方法、文件管理方法程序以及记录该文件管理方法程序的记录介质 | |
CN1229944A (zh) | 用于减少预装类的脚印的系统和方法 | |
CN1816795A (zh) | 多卷文件支持 | |
CN1573701A (zh) | 分布式构建环境中的软件映像创建 | |
US7937717B2 (en) | Method and apparatus enabling multiple application sharing of classes | |
CN101042649A (zh) | 一种配置信息处理方法及装置以及平台系统 | |
CN1451118A (zh) | 文件传送系统、设备、方法以及存储文件传送程序的计算机可读介质 | |
CN1100428C (zh) | 数据发送设备和数据接收设备 | |
US20070203959A1 (en) | Apparatus and method for managing resources using virtual ID in multiple Java application environment | |
CN1716187A (zh) | 预载控制器、由处理器控制将数据预载至临时存储器的预载控制方法和程序 | |
CN1091842A (zh) | 包括用户接口的中断系统和方法 | |
CN1934894A (zh) | 移动通信系统 | |
CN1890645A (zh) | 信息记录介质的数据处理装置以及数据记录方法 | |
CN1831771A (zh) | 一种更新软件的方法 | |
CN1906598A (zh) | 信息处理设备、存储区管理方法和计算机程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050223 Termination date: 20100219 |