CN1703675A - Accelerating multimedia content - Google Patents
Accelerating multimedia content 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
Abstract
Compressed bytecode may be received. The received bytecode may be decompressed. The decompressed bytecode may be coupled into native code at the applicator level. The native code may be stored in nonvolatile memory (18).
Description
Technical field
Present disclosure relates to the Computer Processing field.
Background technology
Java
TMLanguage uses during issuing multimedia contents on WWW and other communication media widely.For example, can use with can be from being located in California Sheng Hexi (San Jose, Ca) Sun micro-system company limited (Sun Microsystems, the Java that Inc) has bought
TMThe java applet that the linguistic norm second edition is compatible mutually, the user who comes the code that comprises figure, sound, text or other compulsory content is transferred to the specific Web site of visit.This class content can be informed product or the service that specific supplier provides to the user.In other cases, Java
TMCode can provide entertainment service for those users that visit specific Web site.
Usually, Java
TMLanguage is an interpreted language.Typically, write can be by possessing Java for application designer
TMThe general Java of the apparatus interprets of virtual machine uses bytecode, described virtual machine can with the Java that can buy from Sun micro-system company limited
TMThe virtual machine specification second edition is compatible mutually.Virtual machine (VM) is explained Java
TMBytecode is so that can carry out described bytecode on spendable target hardware platform, described target hardware platform for example is an Intel Pentium TM4 microprocessor.Regrettably, the code of being explained is nonlinear often, and typically carries out very slowly on target hardware platform.Often performance may be because of being caused by the code explained and the performance difference between this machine code slowly, and described machine code can directly be carried out by the processor of target platform.
As typical use, Java
TMApplet (applet) is downloaded to subscriber computer with compressed format.Subscriber computer can be decompressed to downloaded files in the middle of the volatile memory such as the RAM of system.Then, the interpreter that is moved on the subscriber computer can come from each bytecode of RAM with the linear mode translation, carries out the code of described translation then on subscriber computer.When each carries out the example end, can abandon the code that is translated.This process is typically used a large amount of system RAM because of its characteristic, and may be because code execution speed or volatile memory service efficiency and not optimised.
Therefore, neededly be exactly to carry out and other benefit provides a kind of method and apparatus for Java code efficiently.
Description of drawings
Preferably understand the present invention with reference to following instructions and accompanying drawing, these accompanying drawings are used for illustrating embodiments of the invention.In the accompanying drawings:
Fig. 1 is the schematic representation figure based on the system of processor according to the embodiment of the invention.
Fig. 2 illustrates the communication link according to the embodiment of the invention.
Fig. 3 is used to generate the data flowchart that can carry out this machine code according to the embodiment of the invention.
Fig. 4 is used to generate the process flow diagram of carrying out this machine code with security feature according to the embodiment of the invention.
Fig. 5 illustrates the wireless communication link according to the embodiment of the invention.
Embodiment
In the following description, having set forth many specification details provides understood in detail of the present invention.Yet those of ordinary skills will readily appreciate, and the present invention can be implemented under the situation of these details not having.For example, the code segment of many descriptions may meet Java
TMThe version of programming language.Yet owing to equally also can use other the program design language structure of making peace, thereby this just illustrates but not as restriction.
With reference to Fig. 1, can comprise the processor 12 that is coupled in interface 14 based on the system 10 of processor.Interface 14 can be coupled in display 16 or display controller (not shown) and system storage 18, and described interface can be bridge (bridge).System storage 18 can comprise the application program that can help in the storage system 10 and a plurality of dynamic random access memory means (" DRAM ") or other device of other code.Interface 14 can also be coupled in one or more bus 20.
Certainly, also can use other system architecture of many types based on processor.In certain embodiments, can with compiler 26 and other support code be stored on the hard disk 22 or on other memory storage, and can it be loaded in the system storage 18 according to the request of system 10 subsequently.Then, processor 12 is carried out the instruction that makes compiler 26 and other code operation.
In addition, in certain embodiments, network controller 28 also can be coupled in bus 20.Network controller 28 can be provided to the interface of communication network, as two examples, such as picture WWW or wireless network.
Referring now to Fig. 2, host site 201 can be lodged and be used Java
TMThe multimedia application of coding.In certain embodiments, these application can be sent to communication network 203 such as WWW.Then, communication network 203 can be transferred to described multimedia application on the user platform 205 from host site 201, and described user platform may be based on the system of processor, such as picture system 10.
Referring now to Fig. 5, boarding website 201 can transmit multimedia application based on Java by communication network, and described communication network can comprise antenna 207 or other wireless device that uses by user platform 205.In certain embodiments, user platform 205 can be based on the system of processor, such as picture system 10.In other embodiments, user platform 205 can be the wireless device of for example all like cellular phones, PDA(Personal Digital Assistant) and so on, or miscellaneous equipment.User platform 205 can be coupled in antenna 209.Antenna 209 can be dipole antenna, grounded antenna or other antenna.
Referring now to Fig. 3, compressed code 301 can be perhaps by communication network for example 23 or the compression Java that receives of wireless network
TMSource program.In certain embodiments, compressed code 301 can be decompressed by decompressor 303.This decompressor 303 can be will be such as the software program of the decompressed code the bytecode 305 as output as importing with compressed code 301.In certain embodiments, bytecode 305 can be and Java
TMThe source code that programming language is compatible mutually.
In certain embodiments, machine specific compiler is integrated in the virtual machine (VM) 307, has eliminated this step of indirect indication.In this VM, 307 can be used as input to bytecode 305.In addition, in certain embodiments, interpreter 307 can dynamic link this machine code after can detectable optimization in storehouse 309, in nonvolatile memory, preserve newly-built binary code then, in case when VM calls next example, can use it at any time.
In certain embodiments, this machine code 311 can be carried out by any available suitable storer from system 10 there, under situation about further not explaining, can maybe can provide the similar module of this function to call by virtual machine.Can in managed execution environment, provide the portable code of improvement to carry out in conjunction with explanation illustrated in Fig. 3 and the process described.
For example, in case generated this machine code 311, then just no longer need the further explanation of Java code for calling the future of code, this can provide significant improvement aspect execution speed.In addition, compiler 307 and storehouse 309 can comprise such code, and it provides the optimization of this machine code that generates for the particular platform such as system 10.In certain embodiments, this machine code 311 can comprise the complete static state compiling of whole application codes, the utilization of link and run-time library when therefore not needing to move in certain embodiments.
Referring now to Fig. 4, in certain embodiments, compressed code 301 can de-compress into bytecode and security code 401 by decompressed code 303.As described in Fig. 3, bytecode can be decompression Java
TMCode.Security code for example can be the Java that has that has downloaded
TMThe safety certificate of multimedia application.
In other embodiments, security code can be and Java
TMCertain other code that multimedia application is downloaded together, its can show application code be in provide by particular source or provider in or authorize.
Security code can stand safety inspection 403, to guarantee to trust described multimedia application.This is further example during operation of specific user platform mandate compiling/mandate.If safety inspection confirms to trust described code, compiler 307 just can compile the bytecode that is independent of platform as above in conjunction with Figure 3 so.
Yet, if the safety inspection failure so just will stop the described bytecode of compiler 307 compilings.In this case, in certain embodiments, can notify user security inspection 403 to judge that user or platform are uncommitted the Java multimedia application of having compressed 301 is compiled.
Although described the present invention, person of skill in the art will appreciate that many modifications wherein and distortion all are fine with respect to limited embodiment.For example, although compiler and optimizer 307 are illustrated as single program, can between a plurality of programs, code segment, storehouse or other programmer, cut apart the function of this compiler and optimizer.Therefore, be intended to allow appended claim contain the modification and the distortion of all these classes, and this class is revised and distortion all falls in the spirit and scope of the present invention.
Claims (22)
1. method comprises:
Receive compressed bytecode;
The compressed bytecode that receives is decompressed; With
In application layer with the bytecode compile cost machine code that decompresses, and with this this machine code storage in nonvolatile memory.
2. the method for claim 1 further comprises:
Receive security code; And
Partly according to the content of security code with the bytecode compile cost machine code that decompresses.
3. method as claimed in claim 2, wherein:
Receive security code and comprise the reception safety certificate.
4. method as claimed in claim 2, wherein:
Receive security code and comprise the information that receives the source that shows compressed bytecode.
5. method as claimed in claim 2, wherein:
Receive security code and comprise the information that receives the provider that shows compressed bytecode.
6. method as claimed in claim 2, wherein:
Receive security code and comprise that reception shows the information that whether can compile the bytecode that has received.
7. as claimed in claim 11, wherein:
The bytecode compile cost machine code that decompresses is comprised that the bytecode that will decompress is compiled into the static state compiling of whole application codes.
8. method as claimed in claim 7, wherein:
The static state compiling of the bytecode that decompresses can be carried out by processor under the situation of not using non-machine run-time library.
9. method as claimed in claim 8, wherein:
The static state compiling of the bytecode downloaded is kept in the nonvolatile memory.
10. as claimed in claim 11, further comprise:
Receive the syllabified code of compression from communication network.
11. the machine readable media that instruction is provided when described instruction is carried out by one or more processor groups, makes described processor group can carry out following operation, comprising:
Receive compressed bytecode;
The compressed bytecode that receives is decompressed;
With the bytecode compile cost machine code that decompresses; And
This machine of storage code in nonvolatile memory.
12. as claimed in claim 11 machine computer-readable recording medium further comprises:
Receive security code; And
Partly according to the content of security code with the bytecode compile cost machine code that decompresses.
13. as claimed in claim 11 machine computer-readable recording medium, wherein:
Receive security code and comprise the reception safety certificate.
14. as claimed in claim 11 machine computer-readable recording medium, wherein:
Receive security code and comprise the information that receives the source that shows compressed bytecode.
15. as claimed in claim 11 machine computer-readable recording medium, wherein:
Receive security code and comprise the information that receives the provider that shows compressed bytecode.
16. as claimed in claim 11 machine computer-readable recording medium, wherein:
Receive security code and comprise that reception shows the information that whether can compile the bytecode that receives.
17. as claimed in claim 11 machine computer-readable recording medium, wherein:
The bytecode compile cost machine code that decompresses is comprised that the bytecode that will decompress is compiled into the static state compiling of whole application codes.
18. as claimed in claim 11 machine computer-readable recording medium, wherein:
Receive compressed bytecode from communication network.
19. an equipment comprises:
Receiver is used to receive compressed bytecode;
Be coupled in the decompressor of receiver, be used for the compressed bytecode that receives is decompressed; With
Be coupled in the compiler of receiver, be used for the bytecode compile cost machine code that to decompress.
20. equipment as claimed in claim 21, wherein: described compressed bytecode receives from communication network.
21. equipment as claimed in claim 21, wherein: described compiler is compiled into the bytecode that decompresses this machine code of the static state compiling that comprises whole application codes.
22. equipment as claimed in claim 21 further comprises:
Described receiver receives security code; And
Described compiler partly according to the content of security code with the bytecode compile cost machine code that decompresses.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/210,450 | 2002-07-31 | ||
US10/210,450 US20040025009A1 (en) | 2002-07-31 | 2002-07-31 | Method and apparatus for acceleration of multimedia content |
PCT/US2003/019097 WO2004012078A2 (en) | 2002-07-31 | 2003-06-19 | Accelerating multimedia content |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1703675A true CN1703675A (en) | 2005-11-30 |
CN1703675B CN1703675B (en) | 2010-10-13 |
Family
ID=31187332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN038034123A Expired - Fee Related CN1703675B (en) | 2002-07-31 | 2003-06-19 | Accelerating multimedia content |
Country Status (5)
Country | Link |
---|---|
US (1) | US20040025009A1 (en) |
EP (1) | EP1552389A2 (en) |
CN (1) | CN1703675B (en) |
AU (1) | AU2003265246A1 (en) |
WO (1) | WO2004012078A2 (en) |
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 (en) * | 2009-06-16 | 2010-12-23 | Giesecke & Devrient Gmbh | Method of executing a bytecode in a secure runtime environment |
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 WO PCT/US2003/019097 patent/WO2004012078A2/en not_active Application Discontinuation
- 2003-06-19 AU AU2003265246A patent/AU2003265246A1/en not_active Abandoned
- 2003-06-19 CN CN038034123A patent/CN1703675B/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1552389A2 (en) | 2005-07-13 |
WO2004012078A3 (en) | 2005-05-06 |
AU2003265246A8 (en) | 2004-02-16 |
US20040025009A1 (en) | 2004-02-05 |
AU2003265246A1 (en) | 2004-02-16 |
WO2004012078A2 (en) | 2004-02-05 |
CN1703675B (en) | 2010-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100594479C (en) | Methods and apparatus to optimize application program interfaces in a virtual machine environment | |
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 (en) | Memory optimization of virtual machine code by partitioning extraneous information | |
CN100430940C (en) | Method and system for programming portal application | |
AU2009271181B2 (en) | Method and system for executing applications using native code modules | |
US5794049A (en) | Computer system and method for executing architecture specific code with reduced run-time memory space requirements | |
US20030056029A1 (en) | Method and apparatus for customizing Java API implementations | |
CN1197003C (en) | Method and device for treating abnormal as normal control flow | |
CN1282016A (en) | Display picture during period of leading and turn-off computer | |
CN1282023A (en) | Method and equipment for automatic installating and configurating software on computer | |
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 (en) | Application with multiple embedded drivers | |
CN103577225A (en) | Software installation method and device | |
CN1183458C (en) | Method and system of transferring application program to storage equipment from system firmware | |
CN1703675B (en) | Accelerating multimedia content | |
JPH11312152A (en) | Mobile electronic device and control method therefor | |
CN113326078A (en) | Method, equipment and storage medium for dynamically updating software development kit | |
US20050155024A1 (en) | Method of transforming java bytecode into a directly interpretable compressed format | |
EP1665043A2 (en) | Method and apparatus for continuation-passing in a virtual machine | |
US20050028152A1 (en) | Method and apparatus for identifying a Java class package name without disassembling Java bytecodes | |
US20060004562A1 (en) | Relieving data marshalling overhead | |
US20030066046A1 (en) | Java virtual machine with non-volatile memory |
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 |