本地编译方法、本地编译预处理方法、服务器和通信系统技术方案

技术编号:2854892 阅读:198 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种通过与中间代码的下载处理并行执行本地编译处理来缩短执行等待时间的方法和系统。服务器(20)生成将外部参照信息作为头部附加的下载数据(42a),该外部参照信息包括移动体通信终端(10)进行本地编译时需要的各中间代码的单位块所参照的其他单位块的属性信息。移动体通信终端(10)在从服务器接收完全部中间代码之前,开始已经接收的单位块的本地编译处理。在某个单位块的本地编译时,参照与该单位块相关的已经接收到的外部参照信息,执行该单位块的本地编译处理。服务器(20)也可以将各个类的本地编译所需的外部参照信息作为整理成一组的外部参照信息先于中间代码的整个块之前发送。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种包括服务器及移动体通信终端装置的通信系统,特别是涉及本地编译(Native Compile)预处理方法、本地编译方法、计算机程序和服务器。
技术介绍
近年来,在便携式电话等移动体通信终端装置中,经由因特网等网络从服务器取得应用程序,通过在移动体通信终端装置中执行应用程序,能够在装置中追加新的功能。作为这样的应用程序,使用Java(注册商标)语言编写的计算机程序(源代码)编译后变成称为字节码的中间代码。字节码不是由各个计算机的CPU直接执行,而是通过由软件生成的计算引擎即虚拟计算机执行,另外,由于其不依赖于特定硬件或OS(Operating System操作系统)、大小比较小,因此,适合于在网络上进行程序发行。但是,虚拟计算机中的执行形式是通过解释器(软件)依次分析执行,存在着执行速度慢的问题。与此相对,CPU能够直接执行的代码被称为本地代码(机器语言),其执行速度与使用解释器的执行速度相比显著提高。为了有效利用移动体通信终端装置的CPU的执行速度,需要将字节码变换为本地代码,即进行所谓的本地编译。虽然也可以考虑在服务器执行本地编译后将其结果所得的本地代码发送到移动体通信终端装置的方法,但本地代码有可能随移动体通信终端装置的机型(主要是CPU或OS种类)而有所不同,机型种类将来有可能增加,因此,在服务器一侧针对机型执行本地编译及本地代码的管理,其负担很大。因此,本地编译最好是由移动体通信终端装置一侧负责。但是,移动体通信终端装置的本地编译耗时很多,因此,在其处理结束之前,程序无法执行。目前,作为缩短本地编译所需时间的方法,已知有JIT(Just In Time即时)编译器(参照例如特开2002-215411号公报)。JIT编译器是在应用程序执行时将字节码变换为本地代码,在CPU中直接执行。程序第1次执行时,将字节码编译成本地代码后执行,从第2次开始则直接执行存储器中保存下来的本地代码,从而提高执行效率。由此,能够高速执行Java应用程序。不过,JIT编译器的执行是在第1次程序执行时进行的,在程序开始执行之前不可避免地需要等待。另一方面,目前移动体通信终端装置能够使用的数据通信速度比较慢。便携式电话数据包网这样的无线通信与光通信网、ADSL网等宽带通信网相比,数据传送速度低很多。近年来,便携式电话中搭载的CPU的高速化正在发展,与此相比,无线通信网的数据传送速度仍然不高。因此,为了接收某一应用程序的全部字节码需要相应的时间,进一步,CPU虽然已经高速化了,但将该字节码进行本地编译也需要相应时间。因此,存在的问题是,通信开始后到该应用程序开始执行前时间很长。特开2000-40007号公报中公开了一种技术,在接收JAR文件(将多个类文件压缩为1个文件)的同时启动应用程序,通过并行进行接收处理和应用处理来缩短应用程序启动时用户的等待时间。但是,该技术利用解释器执行中间代码,不是利用本地代码执行应用程序。另外,在本地编译的情况下,如果不接收全部字节码,就不能开始编译处理。原因在于,通常情况下在编译某个类时,当该类参照了其他类时,需要确认该类是否存在以及该类中特定方法或字段是否存在。因此,即使将本地编译与中间代码的下载处理并行执行,当尚未接收到所参照的类时,在接收到该类之前,也必须保留该类的编译处理。应用程序只能在该编译处理结束后开始执行。其结果是,存在的问题是,接收之后的应用程序的执行需要相当长的等待时间。
技术实现思路
本专利技术是在这样的背景下开发出来的,其目的是提供能够通过与中间代码的下载处理并行执行本地编译处理来缩短执行等待时间的通信系统、本地编译预处理方法、本地编译方法、计算机程序及服务器。本专利技术的本地编译方法是一种在移动体通信终端装置中将不依赖于OS的中间代码变换为本地代码的本地编译方法,其特征在于,具备下述步骤经由无线通信网以块为单位依次接收附加了外部参照信息的单位块的中间代码,上述外部参照信息包括在将各单位块的中间代码变换为本地代码时该单位块所参照的其他单位块的属性信息;在全部中间代码接收结束前,开始将已经接收的单位块的中间代码变换为本地代码的本地编译处理;以及在将某个单位块的中间代码变换为本地代码时,参照与该单位块相关的已经接收到的外部参照信息,执行该单位块的本地编译处理。移动体通信终端装置在全部中间代码接收结束前,开始对已经接收的单位块的中间代码进行本地编译处理。此时,该单位块所参照的其他单位块的属性信息所构成的外部参照信息与该单位块同时被接收下来,因此,不会影响立即开始本地编译。此外,在本说明书中所谓的“经由无线通信网”并不意味着只能经由无线通信网,不仅是无线通信网,也可以经由有线通信网。由此,本地编译所需时间可以包含在中间代码的下载时间的全部或一部分中。即,可以与应用程序的下载并行,利用CPU的空余时间进行向本地代码的变换。其结果是,与在启动时执行编译的情况相比,能够大幅度缩短应用程序的执行等待时间。本专利技术的另一本地编译方法是一种在移动体通信终端装置中从外部接收不依赖于OS的中间代码同时将其变换为本地代码的本地编译方法,其特征在于,具备下述步骤经由无线通信网在接收属性信息结合而成的一组外部参照信息之后接着接收多个单位块的中间代码,上述属性信息是在将各单位块的中间代码变换为本地代码时该单位块所参照的其他单位块的属性信息;在全部中间代码接收结束前,开始将已经接收的单位块的中间代码变换为本地代码的本地编译处理;以及在将某个单位块的中间代码变换为本地代码时,参照与该单位块相关的已经接收到的外部参照信息,执行该单位块的本地编译处理。该方法中,不是与各单位块一起接收外部参照信息,而是在接收多个单位块之前接收一组外部参照信息。这种情况下,也能够与应用程序的下载并行,利用CPU的空余时间进行向本地代码的变换。本专利技术的本地编译预处理方法是一种在服务器中经由网络将不依赖于OS的中间代码发送到移动体通信终端装置时的本地编译预处理方法,其特征在于,具备下述步骤将源程序变换为各个单位块的中间代码;将各单位块的中间代码变换为本地代码时该单位块所参照的其他单位块的属性信息作为外部参照信息收集起来;将收集起来的外部参照信息附加到该各单位块中;以及将附加了上述外部参照信息的各单位块经由无线通信网依次发送到上述移动体通信终端装置。在该方法中,服务器将收集到的外部参照信息附加到各单位块,经由无线通信网依次发送到移动体通信终端装置。这种情况下,当某一单位块中应附加的外部参照信息与先前发送的单位块中附加的外部参照信息相同时,可以省略对后面发送的单位块附加该相同外部参照信息。由此,发送数据量降低。本专利技术的另一本地编译预处理方法是一种在服务器中经由网络将不依赖于OS的中间代码发送到移动体通信终端装置时的本地编译预处理方法,其特征在于,具备下述步骤将源程序变换为各个单位块的中间代码;将各单位块的中间代码变换为本地代码时该单位块所参照的其他单位块的属性信息作为外部参照信息收集起来;以及经由无线通信网将多个单位块接着收集到的一组外部参照信息依次发送到上述移动体通信终端装置。该方法中,不是将收集到的外部参照信息附加到各单位块中,而是在上述多个单位块之前将收集到的外部参照信息整理为一组外部参照信息发送出去。本专利技术也能够作本文档来自技高网
...

【技术保护点】
一种本地编译方法,在移动体通信终端装置中将不依赖于OS的中间代码变换为本地代码,其特征在于,具备下述步骤:经由无线通信网以块为单位依次接收附加了外部参照信息的单位块的中间代码,上述外部参照信息包括在将各单位块的中间代码变换为本地代码 时该单位块所参照的其他单位块的属性信息;在全部中间代码接收结束前,开始将已经接收的单位块的中间代码变换为本地代码的本地编译处理;以及在将某个单位块的中间代码变换为本地代码时,参照与该单位块相关的已经接收到的外部参照信息,执行 该单位块的本地编译处理。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:镰田富久铃木浩之
申请(专利权)人:株式会社爱可信
类型:发明
国别省市:JP[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1