CN1703675A - 加速多媒体内容 - Google Patents
加速多媒体内容 Download PDFInfo
- Publication number
- CN1703675A CN1703675A CNA038034123A CN03803412A CN1703675A CN 1703675 A CN1703675 A CN 1703675A CN A038034123 A CNA038034123 A CN A038034123A CN 03803412 A CN03803412 A CN 03803412A CN 1703675 A CN1703675 A CN 1703675A
- Authority
- CN
- China
- Prior art keywords
- bytecode
- code
- machine
- security code
- receive
- 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.)
- Granted
Links
- 238000004891 communication Methods 0.000 claims description 12
- 238000000034 method Methods 0.000 claims description 12
- 230000003068 static effect Effects 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 6
- 230000006835 compression Effects 0.000 claims description 2
- 238000007906 compression Methods 0.000 claims description 2
- 238000007689 inspection Methods 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Devices For Executing Special Programs (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Stored Programmes (AREA)
Abstract
可以接收压缩的字节码。可以对接收到的字节码进行解压缩。可以在应用层将解压缩的字节码耦合到本机代码。可以在非易失存储器(18)中存储本机代码。
Description
技术领域
本公开内容涉及计算机处理领域。
背景技术
JavaTM语言已在万维网及其它通信介质上发布多媒体内容时广泛地使用。例如,可以使用与可从地处加州圣荷西(San Jose,Ca)的Sun微系统有限公司(Sun Microsystems,Inc)买到的JavaTM语言规范第二版相兼容的Java程序,来把包括图形、声音、文本或其它强制的内容在内的代码传输到访问特定万维网站点的用户。这类内容可以向用户告知特定供应商所提供的产品或服务。在其它的情况下,JavaTM代码可以为那些访问特定万维网站点的用户提供娱乐服务。
通常,JavaTM语言是解释性语言。典型地,应用程序设计者编写可由具备JavaTM虚拟机的设备解释的一般性Java应用字节码,所述虚拟机可以与可从Sun微系统有限公司买到的JavaTM虚拟机规范第二版相兼容。虚拟机(VM)解释JavaTM字节码以便可以在可使用的目标硬件平台上执行所述字节码,所述目标硬件平台例如是Intel奔腾TM4微处理器。令人遗憾的是,被解释的代码往往是非线性的,并且典型地在目标硬件平台上执行得很慢。往往缓慢的性能可能是因被解释的代码与本机代码之间的性能差异而造成的,所述本机代码可以直接由目标平台的处理器来执行。
作为典型的使用,JavaTM小应用程序(applet)以压缩形式下载至用户计算机。用户计算机可以将已下载的文件解压缩到诸如系统RAM之类的易失性存储器当中。接着,用户计算机上所运行的解释器可以以线性方式翻译来自于RAM的每个字节码,然后在用户计算机上执行所述翻译的代码。当每个执行实例结束时,可以丢弃被翻译的代码。这一过程因其特性而典型地使用大量的系统RAM,并且可能由于代码执行速度或易失性存储器使用效率而未被优化。
因此,所需要的就是为高效的Java代码执行及其它好处而提供一种方法和设备。
附图说明
最好参照下列说明书和附图来理解本发明,这些附图用来举例说明本发明的实施例。在附图中:
图1是根据本发明实施例的基于处理器的系统的示意性描绘图。
图2图示说明依照本发明实施例的通信链路。
图3是根据本发明实施例的用于生成可执行本机代码的数据流程图。
图4是根据本发明实施例的用于生成具有安全特性的可执行本机代码的流程图。
图5图示说明依照本发明实施例的无线通信链路。
具体实施方式
在下面的说明中,阐述了许多技术规范细节来提供对本发明的详细理解。然而,本领域普通技术人员将容易领会到,本发明可以在没有这些细节的情况下加以实施。例如,许多描述的代码段可能符合JavaTM程序设计语言的版本。然而,由于同样也可以使用其它的程序设计语言和结构,因而这只是举例说明而非作为限制。
参照图1,基于处理器的系统10可以包含耦合于接口14的处理器12。接口14可以耦合于显示器16或显示器控制器(未示出)和系统存储器18,所述接口可以是桥接器(bridge)。系统存储器18可以包括可有助于存储系统10中的应用程序及其它代码的多个动态随机存取存储器装置(“DRAM”)或其它装置。接口14还可以耦合于一条或多条总线20。
总线20又依次耦合于一个或多个存储装置22,比如像硬盘驱动器(HDD)。硬盘驱动器22或其它存储装置可以存储包括操作系统代码(未示出)、编译器26及其它代码在内的各种软件。在一些实施例中,基本输入/输出系统(BIOS)存储器24还可以耦合于总线20。
当然,也可以使用很多种类的其它基于处理器的系统体系结构。在一些实施例中,可以将编译器26及其它支持代码存储在硬盘22上或其它存储装置上,并且随后可以按照系统10的请求将其载入到系统存储器18中。继而,处理器12执行使编译器26及其它代码工作的指令。
另外,在一些实施例中,网络控制器28也可以耦合于总线20。网络控制器28可以提供到通信网络的接口,作为两个示例,比如像万维网或无线网络。
现在参照图2,宿主站点201可以寄宿用JavaTM编码的多媒体应用。在一些实施例中,可将这些应用传送给诸如万维网之类的通信网203。然后,通信网络203可以将所述多媒体应用从宿主站点201传输到用户平台205上,所述用户平台可能是基于处理器的系统,比如像系统10。
现在参照图5,寄宿站点201可以通过通信网络来传输基于Java的多媒体应用,所述通信网络可以包括将由用户平台205使用的天线207或其它无线设备。在一些实施例中,用户平台205可以是基于处理器的系统,比如像系统10。在其它实施例中,用户平台205可以是例如诸如像蜂窝式电话、个人数字助理(PDA)之类的无线设备,或其它设备。用户平台205可以耦合于天线209。天线209可以是偶极天线、接地天线或其它天线。
现在参照图3,压缩代码301可以是也许已经由通信网络例如23或无线网络接收到的压缩JavaTM源程序。在一些实施例中,压缩代码301可以由解压缩器303来进行解压缩。这个解压缩器303可以是将压缩代码301作为输入而将诸如字节码305之类的解压缩代码作为输出的软件程序。在一些实施例中,字节码305可以是与JavaTM程序设计语言相兼容的源代码。
在一些实施例中,将机器专用编译器集成到虚拟机(VM)307中,消除了间接指示的这一步骤。在这个VM中,307可以把字节码305当作输入。另外,在一些实施例中,解释器307可以动态链接在库309中可能发现的优化后的本机代码,然后在非易失存储器中保存新建的二进制代码,一旦从VM调用下一个实例时可以随时使用它。
在一些实施例中,本机代码311可以从系统10中任何可用的适当存储器那里执行,在未进一步解释的情况下,可以由虚拟机或能提供这一功能的类似模块来调用。结合图3所图示说明并描述的过程可以在受管理执行环境中提供改善的移动式代码执行。
例如,一旦已经生成本机代码311,对于代码的未来调用而言则就不再需要Java代码的进一步解释,这可以在执行速度方面提供显著的改善。另外,编译器307和库309可以包括这样的代码,其提供了为诸如系统10之类的特定平台而生成的本机代码的优化。在一些实施例中,本机代码311可以包含全部应用代码的完整的静态编译,因此在一些实施例中不需要运行时链接和运行时库的利用。
现在参照图4,在一些实施例中,压缩代码301可以由解压缩代码303解压缩成字节码和安全码401。正如结合图3描述的那样,字节码可以是解压缩JavaTM代码。安全码例如可以是已下载的具有JavaTM多媒体应用的安全证书。
在其它实施例中,安全码可以是与JavaTM多媒体应用一起下载的某个其它代码,其可以表明应用代码处于由特定源或提供商提供中或授权中。
安全码可以经受安全检查403,以确保能够信赖所述多媒体应用。这为特定的用户平台授权编译/授权进一步的运行时实例。如果安全检查证实能够信赖所述代码,那么编译器307就可以编译如上面结合图3所述的独立于平台的字节码。
然而,如果安全检查失败的话,那么就将阻止编译器307编译所述字节码。在这种情况下,在一些实施例中,可以通知用户安全检查403已判定用户或平台未被授权来对已压缩的Java多媒体应用301进行编译。
尽管已经相对于有限的实施例而描述了本发明,但是本领域的技术人员将认识到,其中的许多修改和变形都是可以的。例如,尽管编译器和优化器307是作为单个程序加以说明的,但是可以在多个程序、代码段、库或其它编程装置之间分割该编译器和优化器的功能。因此,意图让所附的权利要求涵盖所有这类的修改和变形,而这类修改和变形均落入本发明的精神和范围内。
Claims (22)
1.一种方法,包括:
接收压缩的字节码;
对接收到的压缩的字节码进行解压缩;和
在应用层将解压缩的字节码编译成本机代码,并且将该本机代码存储在非易失存储器中。
2.如权利要求1所述的方法,进一步包括:
接收安全码;以及
部分地根据安全码的内容来将解压缩的字节码编译成本机代码。
3.如权利要求2所述的方法,其中:
接收安全码包括接收安全证书。
4.如权利要求2所述的方法,其中:
接收安全码包括接收表明压缩的字节码的源的信息。
5.如权利要求2所述的方法,其中:
接收安全码包括接收表明压缩的字节码的提供商的信息。
6.如权利要求2所述的方法,其中:
接收安全码包括接收表明是否可以编译已接收到的字节码的信息。
7.如权利要求1所述的1,其中:
将解压缩的字节码编译成本机代码包括将解压缩的字节码编译成全部应用代码的静态编译。
8.如权利要求7所述的方法,其中:
解压缩的字节码的静态编译可以在不使用非本机运行时库的情况下由处理器执行。
9.如权利要求8所述的方法,其中:
将已下载的字节码的静态编译保存在非易失存储器中。
10.如权利要求1所述的1,进一步包括:
从通信网络接收压缩的字节代码。
11.一种提供指令的机器可读介质,当所述指令由一个或多个处理器组执行时,使所述处理器组能够执行以下操作,包括:
接收压缩的字节码;
对接收到的压缩的字节码进行解压缩;
将解压缩的字节码编译成本机代码;以及
在非易失性存储器中存储本机代码。
12.如权利要求11所述的本机可读介质,进一步包括:
接收安全码;以及
部分地根据安全码的内容来将解压缩的字节码编译成本机代码。
13.如权利要求11所述的本机可读介质,其中:
接收安全码包括接收安全证书。
14.如权利要求11所述的本机可读介质,其中:
接收安全码包括接收表明压缩的字节码的源的信息。
15.如权利要求11所述的本机可读介质,其中:
接收安全码包括接收表明压缩的字节码的提供商的信息。
16.如权利要求11所述的本机可读介质,其中:
接收安全码包括接收表明是否可以编译接收到的字节码的信息。
17.如权利要求11所述的本机可读介质,其中:
将解压缩的字节码编译成本机代码包括将解压缩的字节码编译成全部应用代码的静态编译。
18.如权利要求11所述的本机可读介质,其中:
从通信网络接收压缩的字节码。
19.一种设备,包括:
接收器,用于接收压缩的字节码;
耦合于接收器的解压缩器,用于对接收到的压缩的字节码进行解压缩;和
耦合于接收器的编译器,用于将解压缩的字节码编译成本机代码。
20.如权利要求21所述的设备,其中:所述压缩的字节码是从通信网络接收的。
21.如权利要求21所述的设备,其中:所述编译器将解压缩的字节码编译成包括全部应用代码的静态编译的本机代码。
22.如权利要求21所述的设备,进一步包括:
所述接收器接收安全码;以及
所述编译器部分地根据安全码的内容来将解压缩的字节码编译成本机代码。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/210,450 US20040025009A1 (en) | 2002-07-31 | 2002-07-31 | Method and apparatus for acceleration of multimedia content |
US10/210,450 | 2002-07-31 | ||
PCT/US2003/019097 WO2004012078A2 (en) | 2002-07-31 | 2003-06-19 | Accelerating multimedia content |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1703675A true CN1703675A (zh) | 2005-11-30 |
CN1703675B CN1703675B (zh) | 2010-10-13 |
Family
ID=31187332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN038034123A Expired - Fee Related CN1703675B (zh) | 2002-07-31 | 2003-06-19 | 加速多媒体内容的方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20040025009A1 (zh) |
EP (1) | EP1552389A2 (zh) |
CN (1) | CN1703675B (zh) |
AU (1) | AU2003265246A1 (zh) |
WO (1) | WO2004012078A2 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7849327B2 (en) * | 2005-01-19 | 2010-12-07 | Leung Hin L | Technique to virtualize processor input/output resources |
US7921425B2 (en) * | 2005-03-14 | 2011-04-05 | Cisco Technology, Inc. | Techniques for allocating computing resources to applications in an embedded system |
US20080127142A1 (en) * | 2006-11-28 | 2008-05-29 | Microsoft Corporation | Compiling executable code into a less-trusted address space |
DE102009024985A1 (de) * | 2009-06-16 | 2010-12-23 | Giesecke & Devrient Gmbh | Verfahren zur Ausführung eines Bytecodes in einer gesicherten Laufzeitumgebung |
US9135434B2 (en) * | 2010-04-19 | 2015-09-15 | Appcentral, Inc. | System and method for third party creation of applications for mobile appliances |
WO2015178896A1 (en) * | 2014-05-20 | 2015-11-26 | Hewlett-Packard Development Company, L.P. | Point-wise protection of application using runtime agent and dynamic security analysis |
US10936726B2 (en) * | 2018-11-26 | 2021-03-02 | Blackberry Limited | Determining security risks in software code |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6151618A (en) * | 1995-12-04 | 2000-11-21 | Microsoft Corporation | Safe general purpose virtual machine computing system |
US6230184B1 (en) * | 1998-10-19 | 2001-05-08 | Sun Microsystems, Inc. | Method and apparatus for automatically optimizing execution of a computer program |
US6336213B1 (en) * | 1998-12-03 | 2002-01-01 | International Business Machines Corporation | Method and apparatus for dynamic selection of which bytecodes should be just in time compiled |
US20020170047A1 (en) * | 2001-02-23 | 2002-11-14 | Brian Swetland | System and method for transforming object code |
US20040015960A1 (en) * | 2001-03-16 | 2004-01-22 | Sanjay Wanchoo | Method for loading and executing an application in an embedded environment |
-
2002
- 2002-07-31 US US10/210,450 patent/US20040025009A1/en not_active Abandoned
-
2003
- 2003-06-19 EP EP03771542A patent/EP1552389A2/en not_active Withdrawn
- 2003-06-19 AU AU2003265246A patent/AU2003265246A1/en not_active Abandoned
- 2003-06-19 WO PCT/US2003/019097 patent/WO2004012078A2/en not_active Application Discontinuation
- 2003-06-19 CN CN038034123A patent/CN1703675B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20040025009A1 (en) | 2004-02-05 |
AU2003265246A1 (en) | 2004-02-16 |
WO2004012078A2 (en) | 2004-02-05 |
CN1703675B (zh) | 2010-10-13 |
EP1552389A2 (en) | 2005-07-13 |
WO2004012078A3 (en) | 2005-05-06 |
AU2003265246A8 (en) | 2004-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6980979B2 (en) | Method and apparatus for customizing Java API implementations | |
CN100594479C (zh) | 优化虚拟机环境中的应用程序接口的方法和装置 | |
US7174544B2 (en) | JAVA compile-on-demand service system for accelerating processing speed of JAVA program in data processing system and method thereof | |
US5765157A (en) | Computer system and method for executing threads of execution with reduced run-time memory space requirements | |
US6272674B1 (en) | Method and apparatus for loading a Java application program | |
KR101699981B1 (ko) | 외래 정보를 분할함에 의한 가상 머신 코드의 메모리 최적화 | |
CN100430940C (zh) | 编程门户应用程序的方法和系统 | |
US5794049A (en) | Computer system and method for executing architecture specific code with reduced run-time memory space requirements | |
US20100017461A1 (en) | Method and system for executing applications using native code modules | |
CN1197003C (zh) | 将异常作为正常控制流进行处理的方法和装置 | |
CN1282016A (zh) | 在引导和关机期间显示图象 | |
CN1282023A (zh) | 计算机上自动安装和配置软件的方法和设备 | |
US7506310B2 (en) | Method and system for caching managed code for efficient execution on resource-constrained devices | |
US5859982A (en) | Computer system and method for executing methods of downloaded programs with reduced run-time memory space requirements | |
CN1734417A (zh) | 具有多个嵌入驱动程序的应用程序 | |
CN103577225A (zh) | 一种软件安装方法和装置 | |
CN1183458C (zh) | 将应用程序从系统固件传递到存储设备的方法和系统 | |
CN113326078A (zh) | 一种动态更新软件开发工具包的方法、设备及存储介质 | |
CN1703675B (zh) | 加速多媒体内容的方法和设备 | |
CN1853167A (zh) | 具有可扩展预配置的动态内容处理的系统和方法 | |
US7114153B2 (en) | Method and apparatus for continuation-passing in a virtual machine | |
CA2553230A1 (en) | Method of transforming java bytecode into a directly interpretable compressed format | |
US20060004562A1 (en) | Relieving data marshalling overhead | |
US20030066046A1 (en) | Java virtual machine with non-volatile memory | |
CN1898656A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101013 Termination date: 20150619 |
|
EXPY | Termination of patent right or utility model |