专利名称:在基于推送的网络上动态装载程序代码的制作方法
技术领域:
本发明总地涉及到单向通信链路上推送程序代码,更具体地,涉及到在单向通信链路上推送动态可装载的程序代码,例如面向对象类定义等。
背景技术:
图1图解了用于把数据推送到接收计算设备的现有一般技术的硬件环境。
如图所示,有数据推送设备100(诸如一个或多个网络服务器或其它计算设备等)把数据推送到网络102。该数据推送设备负责产生或者转发最后由接收计算设备104接收的数据。该网络可以是常规的和专用网络(例如企业内部网或互联网等)的任意组合。
接收计算设备也和网络通信,它接收被推送的数据。各种用于接收推送数据的协议在本领域中是公知的。例如,见加州圣地亚哥的通过入口点的点播系统(PointCast system by EntryPoint)。通常,接收计算设备104在特定的数据信道上侦听数据推送设备100推送的数据,例如在传输控制协议/网际协议(TCP/IP)网络端口、广播信道、频率范围等。
通过参照后面对本发明的详细描述,本发明的特征和优点将变得非常明显,在所述描述中图1图解了用于把数据推送到接收计算设备的现有一般技术的硬件环境。
图2图解了图1推送环境的变型,其中的网络包括无线网。
图3是根据本发明一个实施例在单向通信链路上推送程序代码的流程图。
图4图解了接收根据图3实施例的推送数据的接收机。
图5图解了使用推送的动态可装载数据来促进按每次使用付费(pay-per-use)的环境。
图6图解了一个合适的计算环境,本发明的特定方面可以在其中买现。
具体实施例方式
现代的编程语言提供了动态可装载的或模块化的程序代码。例如,面向对象编程(OOP)环境是这样一个环境,编程人员不仅在其中定义数据结构的数据类型,还定义可以应用于该数据结构的运算类型(例如,函数/过程)。类的数据结构变成了包括数据和函数/过程的对象。“类”是这样的对象的种类,并且在现代OOP环境中,为了避免不必要的资源消耗,类可以动态装载和卸载从而保存资源。
正如下面将讨论的,动态装载可以在网络环境的推送类型上被实现。例如,类的标识数据可以根据服务广告协议(SAP)/会话描述协议(SDP)协议来通告,并且类定义也相应地广播。可选地,可以定义包含用于类定义的标识数据的清单(manifest),以及指示第二次推送什么时候开始的时间表,它包含用于标识类的实际程序代码。然后,编程环境和/或应用程序可以使用自定义类装载器来在需要的时候集成推送类。
在本说明书和随后的权利要求中,术语清单打算包括清单的传送或者其内容通告的SAP/SDP类型。
图2图解了图1推送环境的变型,其中的网络102包括无线网。无线网包括包含无线LAN桥/路由器、蓝牙(3Com、爱立信、Intel、IBM、朗讯、微软、摩托罗拉、诺基亚和东芝发起的一个标准)等的短距离无线网和诸如微波系统、卫星系统、蜂窝通信系统、电视发送塔等的长距离无线网。
在一个实施例中,无线发射机包含发射塔204和接收机(例如机顶盒208、个人数字助理、便携式计算机、手持计算机、无线设备或其它接收设备等)之间的一个完整的传输数据路径。在另一个实施例中,在被机顶盒208接收之前,无线信号部分在物理介质上运载,例如在电线、光纤或其它介质上。网络206可以完全无线或不完全无线。
假设无线传送是音频和/或可视信号(例如电视信号),发射设备200(可以是计算机或其它提供电视信号的设备)发送多个电视数据流到复用器202。例如,在数字电视中,运动图像专家组(MPEG)-2数据传输流将从复用器发射。传输流包括音频、视频和/或被复用并由包标识符(PID)标记的其它“数据”的多个基本流。在美国先进电视系统委员会(ATSC)数字电视标准下,单个“信道”被分配了19.2Mbps的带宽。单个电视节目通常包括用于视频并且每个都支持音频语言的基本数据流。使用数据压缩,节目可能没消耗完信道所有的可用带宽,所以,该节目可能变为嵌入到分配给广播公司的物理频谱中几个“虚拟信道”中的一个。
该复用器把多个数据流组合为由塔204发送的单独一个传送。此传送在网络206上发送,并由诸如有线电视解码盒、具有电视解码器的计算机设备、或其它可感知电视的设备等的机顶盒208接收。
图3是根据本发明一个实施例在单向通信链路(如图1或图2图示的)上推送程序代码(例如动态可装载程序代码等)的流程图。
该单向通信链路可以是物理上单向的,如在源自广播塔的传送中,或者逻辑上是单向的,如在单向通信协议中。这里假设把Java类的编程代码推送到接收机。然而,这里公开的原理和技术也可等效地应用于对象C、C++、SmallTalk、Modula-3组件对象模型(COM)以及其它面向对象编程语言和环境,并且本发明不限于此方面。本领域一个技术人员将会理解,除了类,其它数据结构也可以被推送。例如,可以使用包含已知的入口点和结构的动态链接库(DLL)或者等价物。
在诸如Java的面向对象编程环境中,类封装数据、方法和过程,该方法和过程对输入到该类的实例的数据进行运算并产生正确输出。为了解决特定的问题,类通常收集到库中。Java库被称为“Java文档”或JAR文件。为了最小化存储器需求并推动更动态的编程模型,Java执行环境推迟将类载入到系统存储器中,直到正在执行的应用程序使用该类为止。
当类被引用时,如果它还没有被装载,就动态装载它并使它对正在执行的程序可用。装载需要在一个或几个标准位置搜索引用类,例如定位JAR文件或类定义的其它存储器。在Java中,称为“CLASSPATH”的环境变量(或等同物)被希望存在并指示定位类定义的搜索路径。例如,CLASSPATH可以指向包含类定义和/或JAR文件的目录/文件夹,或者直接引用其中存储文档的数据文件。如果在搜索了CLASSPATH环境以后类还不能被找到并被装载,那么装载失败并且应用程序中的相应调用失败。
因此,在一个实施例中,为了在推送类型网络环境上装载动态可装载程序代码,首先对应于动态可装载代码准备300清单。该清单包括标识类定义的标识符302,因此类可以在应用程序执行过程中正确地装载。在Java中,类定义标识符包括后面跟随着相关类名的包名。例如,“String”类是“Java.lang”包的一部分,因此它被正确地标识为“Java.lang.String”。其它编程环境可能使用其它标识数据,例如类名,和/或该类的全局唯一标识符(GUID),和/或类上下文,和/或类相关等。
在一个实施例中,该清单进一步包括推送时间表304或可用性时间表,它们指示清单中引用的类定义什么时候被推送到单向通信链路。在这个实施例中,如果类定义在几个单向通信通路中的一个上接收,则该清单还可能包括检索源306。其它相关数据308可能也存储在该清单中从而方便选择路由、验证、记帐或证明相关交易。
在另一个实施例中,不使用清单,而是把它的内容直接在单向通信链路上传送。在这个实施例中,可能使用SAP/SDP或等价物来广播通告消息,它指示会话的标识符和描述(例如标识要被推送的动态可装载程序代码的数据)、检索代码的位置(例如该会话的多播地址/端口)以及代码什么时候被推送的时间表。
在清单被创建以后,它被推送310到单向通信链路。然后,根据推送时间表,清单引用的动态可装载代码(例如类)被推送312到单向通信链路。
图4图解了接收根据图3实施例的推送数据的接收机。如图所示,接收机侦听400和接收402推送的清单。该清单被进行语法分析404从而确定406用于在该清单中引用的动态可装载代码的标识符。这些标识符存储408在本地存储器中,例如易失性和非易失性存储器。正如上面所讨论的,该清单内容可能直接使用SAP/SDP类型通告传送,在这种情况下,接收机侦听通告从而确定用于动态可装载代码的标识符。
Java应用程序可以执行410。当它第一次应用412类时,可以执行搜索414来定位该类,例如搜索CLASSPATH环境。假设搜索CLASSPATH失败,可能执行搜索416以便在存储408在本地存储器上的推送的类标识符中定位该类。如果正确的类标识符被定位,就可以检查418对应于该标识符的时间表。然后,动态可装载编程代码(例如Java类文件)可以根据时间表在单向通信链路上检索420。如果使用了SAP/SDP类型广播,则动态可装载编程代码可以从会话通告中指示的多播地址/端口中检索。
在一个实施例中,被检索的动态可装载代码可以加到已存的CLASSPATH环境中,从而可以避免将来使用该检索的代码的延时。在一个实施例中,CLASSPATH包括易失性和非易失性存储器的组合。在这个实施例中,标准类可以存储在非易失性存储器中,例如(可擦除)可编程只读存储器(PROM)、非易失性随机存取存储器(NVRAM)、互补金属氧化物半导体(CMOS)、硬盘、记忆棒等。但是,检索的代码可以存储在易失性存储器中,例如,随机存取存储器(RAM)。
因此,例如便携式电子设备、机顶盒或其它没有配置大容量存储设备的电子设备可以和标准类定义一起运送,并且在应用程序执行过程中在需要的时候再临时获取附加类。
在检索420以后,按照与使用的程序语言环境所惯常的方式,动态可装载代码被应用程序装载422从而执行424。注意,装载422可以与导致检索的应用程序执行异步实施。
此外,根据接收机环境配置,检索和装载可以由操作系统、编程环境或应用程序透明地执行。例如,Java运行环境可能确定需要从单向通信链路检索420类,然后在应用程序不知道该检索过程的情况下就装载类422。
图5图解了使用推送的动态可装载数据从而促进按每次使用付费的环境。典型的按每次使用付费的环境包括电视、电话或计算机网络广播系统,其中,一个或多个“额外的(premium)”数据信道被加密并传送到接收机,并且该接收机在没有获得解密能力时不能使用已加密的数据。
在这个图示的实施例中,上面讨论的推送清单包括允许接收设备永久性或暂时获得加密能力的解密类的标识符。解密能力可用的期间可以在清单中指定或者由本地和/或远程规则规定。在一个实施例中,通过在易失性存储器中存储解密类实现暂时加密,当接收设备重启、动力循环等时,解密类被清除。也可以根据诸如每小时、每天、每周等清除时间表进行清除,或者根据清单中指示的时间表进行清除,例如,在使用了特定数目的次数以后、或者在首次使用的一段时间以后自动清除。
因此,诸如机顶盒或便携式电子接收机(例如便携式电视、个人数字助理、蜂窝电话、便携式计算机、无线设备等)等计算设备执行500控制程序,例如操作系统或应用程序等。该控制程序接收502一个清单,该清单包括标识符和用于解密类的推送时间表,还包括指示与通过解密类来获取额外数据相关的成本的购买数据。该设备的用户根据该购买数据来选择504希望购买的额外数据,例如通过图形用户界面、在计算设备上的按钮选择等方式来指示。在响应中,根据清单中的购买数据,发生506正确的购买交易。
注意,购买交易打算包括使用第三方处理和/或记帐装置的购买协议。因为通信链路是单向的,所以假设存在替换通信装置来实现付费。例如,计算设备可以有一个与电话服务通信的内部调制解调器,有一个与网络通信的网络接口,或者有其它的通信路径。购买可以立即完成或者在延时的基础上执行,例如,计算设备接收购买的选择504,并在付费最后为保密的假设基础上执行解密。延时的付费促进了间歇连接到替换通信装置的便携式接收机的使用。
在购买交易506之后,根据推送时间表,计算设备从单向通信链路中检索508正确的解密类。该解密类可以如清单所指示地安装516,例如,它可以永久性地或者暂时地安装。在Java类型的执行环境中,解密类在CLASSPATH环境中安装。该解密类然后由控制程序执行512从而解密期望数据。
在一个实施例中,为了防止盗窃解密类的行为,解密类本身用公用密钥密码系统中的公用/私有密钥对中的私有密钥进行编码。通信设备可以配置为包含该对的公用密钥,并且该通信设备仅在购买交易506后使用公用密钥来解密解密类。按照这样的方式,解密类可以盲推送到没有加密的单向通信链路上而不需考虑对服务的违法盗窃。
图6和随后的讨论打算提供一个对合适计算环境的简单的概要描述,在该计算环境中可以实现图解发明的特定方面。
实现本发明的示范系统包括计算设备600,它具有用于耦合各种计算设备组件的系统总线602。通常,连接到该总线是不可编程的以及可编程的处理器604、存储器606(例如RAM、ROM)、存储设备608、视频接口610和输入/输出接口端口612。存储设备包括硬盘、软盘、光存储器、磁带、录音带、闪存卡、记忆棒、数字视频碟等。
可以通过参照不同的高级程序模块和/或低级硬件关联来描述本发明。本领域那些技术人员将会意识到,程序模块可以与低级的硬件指令互换。程序模块包括执行特定任何任务或者实现特定抽象数据类型的过程、函数、程序、组件、数据结构等。模块可以结合到单处理器和多处理器计算设备、个人数字助理(PDA)、蜂窝电话、便携式计算机、手持计算机、无线设备等中去。因此,存储系统和相关介质能够为计算设备存储数据和可执行指令。
计算设备期望运行在通过网络接口618、调制解调器620或其它通信路径使用逻辑连接连接到一个或多个远程计算设备614、616的网络环境中。计算设备可以通过诸如企业内部网、因特网或其它网络等网络622进行互联。模块可以实现在单个计算设备内,或者在分布式网络环境中处理,以及存储在本地和远程存储器中。因此,例如,关于图解的实施例,假设计算设备600是推送动态可装载程序代码的发送机,那么,远程设备614和616可以分别是该推送代码的机顶盒和便携式无线接收机。
可以理解,远程计算设备614和616可以像计算设备600一样配置,并因而包括许多或所有的对计算设备讨论的元件。还应该这样理解,计算设备600、614和616可以在单独一个设备中实施,或者在独立的通信耦合组件中实施,并且包括或者实现在采用诸如超文本传输协议(HTTP)、文件传输协议(FTP)等网络应用协议的路由器、网桥、对等设备、web服务器和应用程序中。
参照图解的实施例,已经描述和说明了本发明的原理,应该认识到,在不偏离这样的原理的情况下,图解的实施例可以排列和细节上作些修改。
并且,虽然前述讨论集中在特定实施例上,但是应该理解,其它配置也应考虑在内。特别地,即使在此使用诸如“在一个实施例中”、“在另一实施例中”等表达方式,这些短语通常用来指实施可能性,而不是打算把本发明限制在特定的实施例配置。如这里所用的,这些术语可以指相同的或不同的实施例,除非含蓄地或明白地指出,否则,实施例可以组合到其它实施例。因此,考虑到对上述实施例大范围替换,详细的描述仅仅打算用于解释说明,而不应该看作限制本发明的范围。
因此,请求专利保护的是在随后权利要求书和等价物的范围和精神范围内的所有这些修改。
权利要求
1.一种方法,包括确定是否是动态可装载代码的标识符;把该标识符推送到单向通信链路上;确定是否是动态可装载代码的可用性时间表;把该可用性时间表推送到单向通信链路上;和根据该可用性时间表把该动态可装载代码推送到单向通信链路上。
2.如权利要求1的方法,还包括其中,所述动态可装载代码包括使用面向对象编程语言的类定义;和其中,所述标识符标识该类定义。
3.如权利要求1的方法,其中,所述单向通信链路是从电视数据传送、MPEG-2传输流和IP多播中选定的一个。
4.如权利要求1的方法,还包括使用从机顶盒、个人数字助理、便携式计算机、手持计算机和无线设备中选定的一个在单向通信链路上接收数据。
5.如权利要求1的方法,还包括在所述单向通信链路上接收所述标识符和可用性时间表;和根据该可用性时间表从所述通信链路检索所述动态可装载代码。
6.如权利要求5的方法,还包括确定对于执行应用程序是否需要所述动态可装载代码;和执行响应于所述确定的所述检索。
7.一种设备,包括提供指令的机器可存取介质,当被机器执行时,该指令能够指导机器执行权利要求1的操作。
8.如权利要求7的设备,所述指令还包括指导机器执行权利要求2的操作的指令。
9.如权利要求7的设备,其中,单向通信链路是从电视数据传送、MPEG-2传输流和IP多播中选定的一个。
10.如权利要求7的设备,所述指令还包括指导机器执行权利要求4的操作的指令。
11.如权利要求7的设备,所述指令还包括指导机器执行权利要求5的操作的指令。
12.如权利要求11的设备,所述指令还包括指导机器执行权利要求6的操作的指令。
13.一种方法,包括准备动态可装载代码的清单,所述清单包括动态可装载代码的标识符以及可用性时间表;把该清单推送到单向通信链路上去;和根据该可用性时间表把该动态可装载代码推送到所述单向通信链路上。
14.如权利要求13的方法,还包括其中,所述动态可装载代码包括以面向对象编程语言编写的类定义;和其中,所述标识符标识该类定义。
15.如权利要求13的方法,其中,所动态可装载代码是用从Java、对象C、C++、SmallTalk、Modula-3、组件对象模型和面向对象脚本语言中选定的一个写的。
16.如权利要求13的方法,其中,所述单向通信链路是从电视数据传送、MPEG-2传输流和IP多播中选定的一个。
17.如权利要求13的方法,还包括使用从机顶盒、个人数字助理、便携式计算机、手持计算机和无线设备中选定的一个接收单向通信链路。
18.如权利要求13的方法,还包括在所述单向通信链路上接收清单;记录所述标识符和可用性时间表;和当动态可装载代码被推送到所述通信链路上时,根据该可用性时间表检索所述动态可装载代码。
19.如权利要求14的方法,还包括确定对于执行应用程序是否需要所述动态可装载代码;和执行响应所述确定的所述检索。
20.一种用于反映Java类型文档文件的方法,包括准备Java类型文档文件的清单,所述清单包括用于Java类型文档文件对象的标识符以及用于所述对象的可用性时间表;将该清单推送到单向通信链路上去;和根据可用性时间表将Java类型文档文件的所述对象推送到单向通信链路上去。
21.如权利要求20的方法,还包括执行编程代码;确定对于所述执行是否需要不可用的对象;确定该清单是否包括对应于该对象的标识符;和在单向通信链路上接收所述需要的对象。
22.如权利要求21的方法,还包括在安置在设备中的暂时存储位置中存储所述接收的对象;其中,重置该设备会导致所述接收的对象被丢弃。
23.如权利要求20的方法,其中,Java类型文档文件的清单包括用于Java类型文档文件的所述对象的购买数据,所述方法还包括标识执行程序所需的不可用的对象;确定该清单是否包括对应于该对象的标识符;在单向通信链路上接收所述需要的对象;和根据所述购买数据购买所述需要的对象。
24.一种用于在只推送网络上获取动态可装载代码的方法,包括在只推送网络上接收动态可装载代码的清单,所述清单包括用于动态可装载代码的标识符和可用性时间表;和根据该可用性时间表,在只推送网络上接收动态可装载代码。
25.如权利要求24的方法,其中,动态可装载代码包括从一个单独的面向对象的对象、多个面向对象的对象定义以及动态链接库(DLL)中选定的一个。
26.如权利要求24的方法,还包括确定应用程序是否需要动态可装载代码;和确定该清单是否包括对应于所述动态可装载代码的标识符。
27.如权利要求26的方法,还包括在CLASSPATH环境中检查包含所述需要的动态可装载代码的类;和确定所述需要的动态可装载代码是否是不可用的。
28.如权利要求27的方法,还包括向该CLASSPATH环境添加所述接收到的动态可装载代码。
29.如权利要求24的方法,其中,动态可装载代码包括Java类型的编程语言类,所述方法还包括在CLASSPATH环境中检查包含所述需要的动态可装载代码的类;和确定所述需要的动态可装载代码是否是不可用的,并且执行所述接收动态可装载代码来响应它。
30.如权利要求24的方法,还包括向用于动态可装载代码的本地存储器添加所述接收到的动态可装载代码。
31.一种设备,包括提供指令的机器可存取介质,当被机器执行时,该指令能够指导机器执行如下的操作准备动态可装载代码的清单,所述清单包括动态可装载代码的标识符以及可用性时间表;把该清单推送到单向通信链路上去;和根据该可用性时间表把该动态可装载代码推送到所述通信链路上。
32.如权利要求31的设备,所述指令还包括指导机器执行如下操作的指令使用从机顶盒、个人数字助理、便携式计算机、手持计算机和无线设备中选定的一个来接收单向通信链路。
33.如权利要求31的设备,所述指令还包括指导机器执行如下操作的指令在所述通信链路上接收清单;记录所述标识符和可用性时间表;和当动态可装载代码被推送到所述通信链路上时,根据该可用性时间表检索所述动态可装载代码。
34.如权利要求31的设备,所述指令还包括指导机器执行如下操作的指令确定对于执行应用程序是否需要所述动态可装载代码;和执行响应所述确定的所述检索。
35.一种用于反映Java类型文档文件的设备,包括提供指令的机器可存取介质,当被机器执行时,该指令能够指导机器执行如下的操作准备Java类型文档文件的清单,所述清单包括用于Java类型文档文件对象的标识符以及用于所述对象的可用性时间表;将该清单推送到单向通信链路上去;和根据可用性时间表将Java类型文档文件的所述对象推送到单向通信链路上去。
36.如权利要求35的设备,所述指令还包括指导机器执行如下操作的指令确定对于执行应用程序是否需要不可用的对象;确定该清单是否包括对应于该对象的标识符;和在单向通信链路上接收所述需要的对象。
37.如权利要求36的设备,所述指令还包括指导机器执行如下操作的指令在暂时存储位置中存储所述接收的对象;
38.如权利要求35的设备,所述指令还包括指导机器执行如下操作的指令把用于Java类型文档文件的所述对象的购买数据包括在清单中;标识执行程序所需的不可用对象;确定该清单是否包括对应于该对象的标识符;在单向通信链路上接收所述需要的对象;和根据所述购买数据购买所述需要的对象。
39.一种用于在只推送网络上获取动态可装载代码的设备,包括提供指令的机器可存取介质,当被机器执行时,该指令能够指导机器执行如下的操作在只推送网络上接收动态可装载代码的清单,所述清单包括用于动态可装载代码的标识符和可用性时间表;和根据该可用性时间表,在只推送网络上接收动态可装载代码。
40.如权利要求39的设备,所述指令还包括指导机器执行如下操作的指令确定应用程序是否需要动态可装载代码;和确定该清单是否包括对应于所述动态可装载代码的标识符。
41.如权利要求40的设备,所述指令还包括指导机器执行如下操作的指令在CLASSPATH环境中检查包含所述需要的动态可装载代码的类;和确定所述需要的动态可装载代码是否是不可用的。
42.如权利要求40的设备,所述指令还包括指导机器执行如下操作的指令向该CLASSPATH环境添加所述接收到的动态可装载代码。
43.如权利要求39的设备,所述指令还包括指导机器执行如下操作的指令在CLASSPATH环境中检查包含动态可装载代码的类;和确定所述需要的动态可装载代码是否是不可用的,并且执行所述接收动态可装载代码来响应它。
44.一种系统,包括至少一个处理器;和其上具有编码的指令的可读介质,当被处理器执行时,该指令能够指导处理器执行如下操作准备动态可装载代码的清单,所述清单包括动态可装载代码的标识符以及可用性时间表;把该清单推送到单向通信链路上去;和根据该可用性时间表把该动态可装载代码推送到所述通信链路上。
45.如权利要求44的系统,所述指令还包括指导处理器执行如下操作的指令使用从机顶盒、个人数字助理、便携式计算机、手持计算机和无线设备等中选定的一个来接收单向通信链路。
46.如权利要求44的系统,所述指令还包括指导处理器执行如下操作的指令在所述通信链路上接收清单;记录所述标识符和可用性时间表;和当动态可装载代码被推送到所述通信链路上时,根据该可用性时间表检索所述动态可装载代码。
47.一种用于反映Java类型文档文件的系统,包括至少一个处理器;和其上具有编码的指令的可读介质,当被处理器执行时,该指令能够指导处理器执行如下操作准备Java类型文档文件的清单,所述清单包括用于Java类型文档文件对象的标识符以及用于所述对象的可用性时间表;将该清单推送到单向通信链路上去;和根据可用性时间表将Java类型文档文件的所述对象推送到单向通信链路上去。
48.如权利要求47的系统,所述指令还包括指导处理器执行如下操作的指令确定对于执行应用程序是否需要不可用的对象;确定该清单是否包括对应于该对象的标识符;和在单向通信链路上检索所述需要的对象。
49.如权利要求47的系统,所述指令还包括指导处理器执行如下操作的指令把用于Java类型文档文件的所述对象的购买数据包括在清单中;标识执行程序所需的不可用对象;确定该清单是否包括对应于该对象的标识符;在单向通信链路上接收所述需要的对象;和根据所述购买数据购买所述需要的对象。
50.一种用于在只推送网络上获取动态可装载代码的系统,包括至少一个处理器;和其上具有编码的指令的可读介质,当被处理器执行时,该指令能够指导处理器执行如下操作在只推送网络上接收动态可装载代码的清单,所述清单包括用于动态可装载代码的标识符和可用性时间表;和根据该可用性时间表,在只推送网络上接收动态可装载代码。
51.如权利要求50的系统,所述指令还包括指导处理器执行如下操作的指令确定应用程序是否需要动态可装载代码;和确定该清单是否包括对应于所述动态可装载代码的标识符。
52.如权利要求50的系统,所述指令还包括指导处理器执行如下操作的指令在CLASSPATH环境中检查包含所述需要的动态可装载代码的类;确定所述需要的动态可装载代码是否是不可用的;和向该CLASSPATH环境添加所述接收到的动态可装载代码。
全文摘要
诸如用在面向对象编程语言中的动态可装载程序代码等程序代码可以在单向通信链路上推送,例如通过发射塔发送或者通过单向网络通信协议等。包括要被推送到单向通信链路的编程代码的标识符的清单被创建,其中,该清单包括推送时间表。该清单的接收机根据该时间表检索感兴趣的推送代码。购买数据也可以被包括在该清单中。编程代码可以包括允许用于额外内容的按每次使用付费检索的解密技术。
文档编号G06F9/445GK1502076SQ01822610
公开日2004年6月2日 申请日期2001年11月13日 优先权日2000年12月12日
发明者J·哈尔福德, J 哈尔福德 申请人:英特尔公司