CN1858708A - 一种实现java应用软件编译处理的系统、设备及方法 - Google Patents

一种实现java应用软件编译处理的系统、设备及方法 Download PDF

Info

Publication number
CN1858708A
CN1858708A CNA2006100337595A CN200610033759A CN1858708A CN 1858708 A CN1858708 A CN 1858708A CN A2006100337595 A CNA2006100337595 A CN A2006100337595A CN 200610033759 A CN200610033759 A CN 200610033759A CN 1858708 A CN1858708 A CN 1858708A
Authority
CN
China
Prior art keywords
terminal
descriptive information
application software
code data
machine code
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.)
Pending
Application number
CNA2006100337595A
Other languages
English (en)
Inventor
马剑飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNA2006100337595A priority Critical patent/CN1858708A/zh
Publication of CN1858708A publication Critical patent/CN1858708A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation

Abstract

本发明适用于通信领域,提供了一种实现JAVA应用软件编译处理的系统、设备及方法,所述系统包括终端,以及与所述终端连接的实时编译服务器;所述实时编译服务器用于将JAVA应用软件的JAVA字节码数据编译成机器码数据;所述终端用于从所述实时编译服务器下载,并在本地执行相应的机器码数据。本发明通过一个与终端独立的JIT编译服务器,将JAVA应用软件的字节码数据编译成二进制机器码数据,当终端需要时下载执行机器码数据,减小了应用软件的体积,降低了终端的实现成本,提高了软件的执行效率,实现简单。

Description

一种实现JAVA应用软件编译处理的系统、设备及方法
技术领域
本发明属于通信领域,尤其涉及一种对JAVA应用软件进行编译处理的系统、设备和方法。
背景技术
随着网络交互电视(Internet Protocol Television,IPTV)的发展,机顶盒(SetTop Box,STB)不仅仅需要支持广播电视(Broadcasting Television,BTV)和交互式多媒体视频点播(Video On Demand,VOD)业务,在机顶盒上提供各种增值业务的需求也已经日趋强烈。机顶盒的硬件种类繁多,其主处理器的类型就有X86、无内部互锁流水级的微处理器(Microprocessor without interlockedpiped stages,MIPS)、ARM(Advanced RISC Machine)、数字信号处理器(DigitalSignal Processor,DSP)等,由于各种类型主处理器的指令各不相同,导致各种增值业务软件无法通用。
为了使各种增值业务软件能在各种机顶盒上运行,实现软件的硬件无关性,目前的方法就是在机顶盒里运行JAVA虚拟机(JAVA Virtual Machine,JVM),通过JVM对软件中每条由JAVA字节码组成的指令直接解释执行,使得各种基于JAVA开发的增值业务软件能够在机顶盒上运行,如图1所示,其中板级支持包(BSP)是介于主板硬件和操作系统(OS)之间的一层,主要目的是为了支持操作系统,使之能够更好地运行于硬件主板。JVM实现了软件的硬件无关性,但是由于直接解释执行JAVA字节码的效率很低(比直接执行编译后的二进制代码低50%以上),加之其对一些执行环境的检查非常严格,导致整个系统的效率严重下降,尤其对于一些处理能力不够强大的低端设备。
为了解决这个问题,现有技术采用了JIT(Just In Time,实时)编译技术,在机顶盒的JVM中内置JIT编译器,利用该JIT编译器将JAVA字节码编译成CPU能直接执行的二进制机器码,然后再在机顶盒中执行,其实现原理如图2所示。首先将应用软件的JAVA字节码装入机顶盒的JVM中,然后通过JVM中内置的JIT编译器对JAVA字节码进行编译,产生可以直接在CPU上运行的二进制机器码,然后将这些以二进制机器码组成的应用软件直接在机顶盒的操作系统上运行。整个处理过程省略了JVM的解释工作,从而提高了程序的执行效率。
但由于机顶盒的JVM必须内置JIT编译器,而且JIT编译器在编译过程中会产生大量代码,导致系统中软件体积过大,因此在机顶盒中需要存储能力更强的存储器,增加了机顶盒的成本。同时,必须将JIT编译器移植到各种系统上,目前各种嵌入式的商用JVM中都不带JIT编译器,如果自行开发,则投入大,技术难度高,实现复杂。
发明内容
本发明的目的在于提供一种实现JAVA应用软件编译处理的系统,旨在解决现有技术由于在机顶盒的JVM中内置JIT编译器对JAVA指令进行编译,导致机顶盒的成本增加,软件执行效率低、实现复杂的问题。
本发明的另一目的在于提供一种实现JAVA应用软件编译处理的设备。
本发明的另一目的在于提供一种实现JAVA应用软件编译处理的方法。
本发明是这样实现的,一种实现JAVA应用软件编译处理的系统,所述系统包括终端,以及与所述终端连接的实时编译服务器;
所述实时编译服务器用于根据终端的设备描述信息将JAVA应用软件的JAVA字节码数据编译成机器码数据;
所述终端用于根据其设备描述信息从实时编译服务器上下载对应的机器码数据,并在本地执行。
所述实时编译服务器包括:
编译模块,用于根据终端的设备描述信息将JAVA应用软件的JAVA字节码数据编译成终端直接执行的二进制机器码数据;
存储模块,用于存储终端的设备描述信息,以及所述编译模块对JAVA字节码进行编译后的二进制机器码数据;
收发模块,用于接收终端的下载请求,根据终端的设备描述信息将与所述设备描述信息对应的二进制机器码数据发送给终端。
所述设备描述信息包括终端的CPU类型、主频、操作系统类型、存储器大小或者内存空间分配信息。
一种实现JAVA应用软件编译处理的设备,所述设备用于根据终端的设备描述信息将JAVA应用软件的JAVA字节码数据编译成机器码数据,并将所述机器码数据提供给终端下载执行。
所述设备包括:
编译模块,用于根据终端的设备描述信息将JAVA应用软件的JAVA字节码数据编译成终端直接执行的二进制机器码数据;
存储模块,用于存储终端的设备描述信息,以及所述编译模块对JAVA字节码进行编译后的二进制机器码数据;
收发模块,用于接收终端的下载请求,根据终端的设备描述信息将与所述设备描述信息对应的二进制机器码数据发送给终端。
所述设备描述信息包括终端的CPU类型、主频、操作系统类型、存储器大小或者内存空间分配信息。
一种利用上述系统实现JAVA应用软件编译处理的方法,所述方法包括以下步骤:
A.实时编译服务器根据终端的设备描述信息将JAVA应用软件的JAVA字节码数据编译成终端机器码数据;
B.终端向实时编译服务器发送机器码数据下载请求,请求中携带有终端的设备描述信息;
C.实时编译服务器向终端返回与其设备描述信息对应的机器码数据;
D.终端在本地执行下载的机器码数据。
所述设备描述信息包括终端的CPU类型、主频、操作系统类型、存储器大小或者内存空间分配信息。
本发明通过一个与终端独立的JIT编译服务器,将JAVA应用软件的字节码数据编译成二进制机器码数据,当终端需要时下载执行机器码数据,减小了应用软件的体积,降低了终端的实现成本,提高了软件的执行效率,实现简单。
附图说明
图1是通过JVM对JAVA应用软件进行解释执行的实现原理图;
图2是通过JIT对JAVA应用软件进行编译处理的实现原理图;
图3是本发明中提供的JIT编译服务器的结构图;
图4是本发明中对JAVA应用软件进行编译执行的实现流程图。
具体实时方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实时例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实时例仅仅用以解释本发明,并不用于限定本发明。
本发明通过独立的实时编译服务器(JIT编译服务器)将应用软件的JAVA字节码编译成CPU可执行的二进制机器码数据,终端从JIT编译服务器上下载执行相应的二进制机器码数据。
图3示出了本发明中JIT编译服务器的结构,JIT编译服务器300可以是一个普通的计算机,也可以是其他具备JAVA编译功能的设备。
编译模块301根据终端的设备描述信息将应用软件的JAVA字节码数据编译成终端CPU能够直接执行的二进制机器码数据,具体编译过程。设备描述信息包括终端的CPU类型、主频、操作系统类型、存储器大小以及内存空间分配等编译必要的信息,一般由设备制造商提供。
存储模块302存储终端的设备描述信息,以及编译模块301对应用软件JAVA字节码数据进行编译的结果。
收发模块303接收终端的下载请求,并根据下载请求中的终端的设备描述信息向终端发送相应的二进制机器码数据。
图4示出了本发明中对JAVA应用软件进行编译执行的实现流程:
1.将JAVA字节码数据提交到JIT编译服务器上,一般通过ICP实现;
2.JIT编译服务器根据终端的设备描述信息将JAVA字节码数据编译成CPU可直接执行的二进制机器码数据;
3.终端向JIT编译服务器发起下载请求,下载请求中包含有终端的设备描述信息;
4.JIT编译服务器根据终端的设备描述信息向终端发送对应的二进制机器码数据;
5.终端执行下载的二进制机器码数据。
在本发明中,JAVA应用软件是指基于JAVA语言编写的应用软件,因此各种用JAVA编写的增值业务软件都包括于其中。终端可以是所有基于JAVA的终端,包括但不限于机顶盒。
以上所述仅为本发明的较佳实时例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1、一种实现JAVA应用软件编译处理的系统,其特征在于,所述系统包括终端,以及与所述终端连接的实时编译服务器;
所述实时编译服务器用于根据终端的设备描述信息将JAVA应用软件的JAVA字节码数据编译成机器码数据;
所述终端用于根据其设备描述信息从实时编译服务器上下载对应的机器码数据,并在本地执行。
2、如权利要求1所述的实现JAVA应用软件编译处理的系统,其特征在于,所述实时编译服务器包括:
编译模块,用于根据终端的设备描述信息将JAVA应用软件的JAVA字节码数据编译成终端直接执行的二进制机器码数据;
存储模块,用于存储终端的设备描述信息,以及所述编译模块对JAVA字节码进行编译后的二进制机器码数据;
收发模块,用于接收终端的下载请求,根据终端的设备描述信息将与所述设备描述信息对应的二进制机器码数据发送给终端。
3、如权利要求2所述的实现JAVA应用软件编译处理的系统,其特征在于,所述设备描述信息包括终端的CPU类型、主频、操作系统类型、存储器大小或者内存空间分配信息。
4、一种实现JAVA应用软件编译处理的设备,其特征在于,所述设备用于根据终端的设备描述信息将JAVA应用软件的JAVA字节码数据编译成机器码数据,并将所述机器码数据提供给终端下载执行。
5、如权利要求4所述的实现JAVA应用软件编译处理的设备,其特征在于,所述设备包括:
编译模块,用于根据终端的设备描述信息将JAVA应用软件的JAVA字节码数据编译成终端直接执行的二进制机器码数据;
存储模块,用于存储终端的设备描述信息,以及所述编译模块对JAVA字节码进行编译后的二进制机器码数据;
收发模块,用于接收终端的下载请求,根据终端的设备描述信息将与所述设备描述信息对应的二进制机器码数据发送给终端。
6、如权利要求5所述的实现JAVA应用软件编译处理的设备,其特征在于,所述设备描述信息包括终端的CPU类型、主频、操作系统类型、存储器大小或者内存空间分配信息。
7、一种利用权利要求1的系统实现JAVA应用软件编译处理的方法,其特征在于,所述方法包括以下步骤:
A.实时编译服务器根据终端的设备描述信息将JAVA应用软件的JAVA字节码数据编译成终端机器码数据;
B.终端向实时编译服务器发送机器码数据下载请求,请求中携带有终端的设备描述信息;
C.实时编译服务器向终端返回与其设备描述信息对应的机器码数据;
D.终端在本地执行下载的机器码数据。
8、如权利要求7所述的实现JAVA应用软件编译处理的方法,其特征在于,所述设备描述信息包括终端的CPU类型、主频、操作系统类型、存储器大小或者内存空间分配信息。
CNA2006100337595A 2006-02-17 2006-02-17 一种实现java应用软件编译处理的系统、设备及方法 Pending CN1858708A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2006100337595A CN1858708A (zh) 2006-02-17 2006-02-17 一种实现java应用软件编译处理的系统、设备及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2006100337595A CN1858708A (zh) 2006-02-17 2006-02-17 一种实现java应用软件编译处理的系统、设备及方法

Publications (1)

Publication Number Publication Date
CN1858708A true CN1858708A (zh) 2006-11-08

Family

ID=37297617

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006100337595A Pending CN1858708A (zh) 2006-02-17 2006-02-17 一种实现java应用软件编译处理的系统、设备及方法

Country Status (1)

Country Link
CN (1) CN1858708A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018207B (zh) * 2007-03-08 2010-05-26 中兴通讯股份有限公司 一种iptv系统中实现增值业务加载的装置、系统和方法
CN101790030A (zh) * 2010-03-16 2010-07-28 中山大学 基于Java处理器的数字机顶盒
WO2011088683A1 (zh) * 2010-01-22 2011-07-28 华为终端有限公司 Java软件集成到移动终端的方法、装置及移动终端
CN103471610A (zh) * 2013-09-24 2013-12-25 沈阳美行科技有限公司 一种支持在线、离线双模式的导航方法
CN103729235A (zh) * 2013-12-24 2014-04-16 华为技术有限公司 Java虚拟机的编译方法和Java虚拟机
CN110035322A (zh) * 2018-01-11 2019-07-19 中兴通讯股份有限公司 一种启动系统的方法、装置及计算机可读存储介质
US10904361B2 (en) 2015-05-22 2021-01-26 Huawei Technologies Co., Ltd. Method, apparatus, and system for implementing JAVA application installation by means of cloud compilation

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018207B (zh) * 2007-03-08 2010-05-26 中兴通讯股份有限公司 一种iptv系统中实现增值业务加载的装置、系统和方法
WO2011088683A1 (zh) * 2010-01-22 2011-07-28 华为终端有限公司 Java软件集成到移动终端的方法、装置及移动终端
US9430210B2 (en) 2010-01-22 2016-08-30 Huawei Device Co., Ltd. Method and apparatus for integrating java software into mobile terminal, and mobile terminal
CN101790030A (zh) * 2010-03-16 2010-07-28 中山大学 基于Java处理器的数字机顶盒
CN103471610A (zh) * 2013-09-24 2013-12-25 沈阳美行科技有限公司 一种支持在线、离线双模式的导航方法
CN103729235A (zh) * 2013-12-24 2014-04-16 华为技术有限公司 Java虚拟机的编译方法和Java虚拟机
US10904361B2 (en) 2015-05-22 2021-01-26 Huawei Technologies Co., Ltd. Method, apparatus, and system for implementing JAVA application installation by means of cloud compilation
CN110035322A (zh) * 2018-01-11 2019-07-19 中兴通讯股份有限公司 一种启动系统的方法、装置及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN1858708A (zh) 一种实现java应用软件编译处理的系统、设备及方法
EP1440370B1 (en) A method of compiling bytecode to native code
CN100550907C (zh) 从部署服务器内为目标系统运行时优化应用的方法和系统
CN1119756C (zh) 用于进行静态初始化的方法和系统
CN1781077A (zh) 选择性地加载用于在Java微型设备中调试Java应用程序的远程类或资源
US20140317252A1 (en) In-service software upgrade utilizing metadata-driven state translation
US20050028155A1 (en) Java execution device and Java execution method
CN1826813A (zh) 处理广播中的特征可用性
JP2014059906A (ja) 個々のクラスローダを実装するための方法および装置
CN1667574A (zh) 并行驱动程序
CN1924805A (zh) 在无线二进制运行环境平台实现动态链接库方法
CN104461582A (zh) 业务处理方法、装置以及设备
CN1367895A (zh) 把不同源语言转移到一个执行介质
JP2009528589A (ja) 適応コンパイルコード
CN101763257A (zh) java类预处理通信系统及java类预处理方法
CN1825277A (zh) 代码变形
CN1295601C (zh) 进行软件应用的时间优化的替换
CN1863212A (zh) 一种基于ip数据网络的分布式中间件系统的实现方法
CN1234549A (zh) 实现多重返回位置的方法和装置
US7685565B1 (en) Run time reconfiguration of computer instructions
US11474832B2 (en) Intelligently determining a virtual machine configuration during runtime based on garbage collection characteristics
CA2553230A1 (en) Method of transforming java bytecode into a directly interpretable compressed format
CN1719416A (zh) 嵌入式并行计算系统以及嵌入式并行计算方法
EP1377034A1 (en) Data processing device and method for interactive television
EP1552389A2 (en) Accelerating multimedia content

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication