当前位置:Linux教程 - Linux业界 - “充分利用Java固有优势, Sun谈新一代手机Java前景

“充分利用Java固有优势, Sun谈新一代手机Java前景

【日经BP社报道】

  随着手机功能的不断提高,“新一代手机Java”的身影也越来越清晰,比如新标准API集“MSA for CLDC”的制定,Java运行环境由CLDC向CDC过渡,对多任务功能的支持等。在这种背景下,Java的固有优势,即面向对象特性将得到有效发挥。就手机Java技术的现状和今后的发展,记者日前采访了日本Sun负责嵌入Java领域的高级经理门间纯一(Mobile&Embedded Systems)。(采访者:星 晓雄)

——请您谈谈手机Java技术的开发蓝图。将按照什么样的路线从CLDC(connected limited device configuration)向CDC(connected device configuration)过渡?

门间:在Java ME CLDC/MIDP(mobile information device profile)中,由于各通信运营商各自为政,结果产生了多种各自不尽相同的自主标准,对此应有所反思。作为JTWI(JSR 185: Java Technology for the wireless industry),2003年确定了API集。沃达丰3G等现已开始采用JTWI。

  将来,作为JTWI的扩展,MSA for CLDC(JSR 248: mobile service architecture for CLDC)将会亮相。不过,它不会全部配备MSA for CLDC的API集,也许会以“JTWI Plus”的形式配备子集。比如,没有蓝牙功能的手机也许会取消相应的API。

——高端和低端手机会分别使用API集吗?

门间:MSA for CLDC的地位是中低端手机。高端手机方面将采用MSA for CDC(JSR 249: mobile service architecture for CDC)。不过,目前仍有很多部分尚未确定。

——MSA for CDC包含MSA for CLDC吗?

门间:对。MSA for CLDC上的应用程序均可在MSA for CDC上运行。也就是说,能够运行现有内容。除此之外,在MSA for CDC中还将追加调用本机库的JNI(Java native interface)和运程设备管理等娱乐功能。

以上就是从JSR(Java specification request,Java规范请求)所能看到的手机Java开发蓝图。

“*Project”是以use case(用户个案)为重的方案

——由NTT DoCoMo和Sun共同推进的“*(Star) Project”处于什么地位?

门间:*(Star) Project的目的是吸收MIDP和Doja(由NTT DoCoMo制定的“i-appli”标准)的“长处”。它采取的方案是,首先考虑use case(记录了每个用户的目标需求),然后再逐步找出用户需求。不像JSR那样先定义再使用API。

  正在研究哪些use case呢?为了不向竞争对手泄漏我们的想法,现在还不能讲。不过,从技术方案上来说,应该说已经取得了一定的进展。

——芬兰诺基亚对CDC非常热心。并且已经宣布将在手机平台“Series 60”上配备CDC(发布资料)。

门间:诺基亚有可能采用自主标准。因为MSA for CDC赶不及了。

手机配备CDC,将会产生哪些变化?

——手机配备CDC,将会产生哪些变化?CDC将会配备全套的Java虚拟机。

门间:其实,就Java虚拟机来说,CLDC和CDC差别并不太大。

  CLDC的Java虚拟机和全套的Java虚拟机标准的差别在于是否调用预验证(字节代码的预先验证)的内容(=Java应用程序)。全套的Java虚拟机在执行代码时进行字节代码验证,而CLDC则减轻了这种负担。

  作为CLDC1.1(JSR 139: connected limited device configuration 1.1,2003年3月公布最终版本),在CLDC的Java虚拟机中还加入了错误处理和Weak Reference(注:也称为弱参考。在需要实现选项缓冲时使用)等功能(注:此外还追加了浮点运算功能)。作为Java虚拟机功能来说,和全套的Java已经没有任何区别。

  说到CDC的变化,就是JNI和安全性。作为JNI,就是能由Java程序调用本地程序。在KVM(Java ME CLDC的Java虚拟机)中,甚至都不能“请求”本地程序。

  安全功能在由JDK1.1过渡到JDK1.2时同样也有变化。尽管只是沙箱模型,但却能够进行更细致的安全管理。

——比如,是否可以说将能够使用安全功能,来运行可调用手机OS功能的程序?

门间:对。如果使用JNI和安全功能,通过访问设备驱动程序,就能生成可直接操作相机等硬件的Java程序,也可下载使用。

在CLDC和CDC中,多任务虚拟机的实现方式有所不同

——请您谈谈今后即将亮相的多任务虚拟机?

门间:今天的手机Java同时仅运行一个程序,今后将会同时运行多个程序。比如,起动Java编写的邮件功能后,还可在后台利用Java播放器听音乐。

  在CLDC和CDC中分别采取了不同的实现方式。CLDC版的多任务虚拟机设想在“Symbian OS”这样的非多任务OS上使用,在一个VM instance上对多个Java应用程序进行管理。而CLDC版多任务虚拟机已经作为Sun手机Java运行环境“Sun Java Wireless Client”的一部分、即“CLDC HotSpot Implementation”推出来。该产品主要面向终端厂商,估计尚无嵌入手机最终产品的先例。

  而CDC版多任务虚拟机则主要面向高端产品。需要有嵌入Linux这样的多任务OS。每当起动新的Java程序时,就会生成新的进程。同时还具有支持多任务的应用程序管理器(JAM:Java Application Manager)。对于这种虚拟机,Sun已经推出作为产品推出“CDC HotSpot Implementation”

——在多任务虚拟机上多个应用程序之间的协作方式是?

门间:CDC版虚拟机具有“Xlet间通信”接口。供CDC上的PBP(Personal Basis Profile,个人基本规范)提供的应用程序运行形态Xlet相互之间进行通信。CLDC版虚拟机尚未提供应用程序通信功能。

Java固有的优势在于面向对象

——换一个话题,在嵌入开发领域,有人担心随着开发规模不断扩大,将会面临“软件危机”。Java技术有望改善这种状况吗?

门间:从个人观点来讲,仅靠Java语言也许难以改善这种状况。从原则上说,就是应当好好地编写可再利用的对象。对此,根据设计模式(按照再利用的方式对程序设计手法的“定式”整理而成)进行实际开发将更为重要。

  目前,从嵌入Java领域的程序来看,很多编得并不太好。因此,当开发工作向下一阶段过渡时,就需要编写同样的程序。为了避免重复作业,设计非常重要。为此,一开始就应当使用设计模式进行设计,以方便以后再利用。

  作为娱乐领域的开发工程,包括开发方法论、设计模式等,正在逐步积累面向对象的技术。而在嵌入Java领域,目前看来面向对象的优势基本还没有得到利用。

  其中一个原因就是嵌入Java的开发都是在严格的内存制约下进行的。比如,1999年制定Doja标准时,曾预测2、3年后的手机将会如何如何。而今天的手机却具有了和当时完全不同的功能。

  希望每一位开发人员都能明白的是,“因为是嵌入”,所以绝不能妥协。最初的Doja手机,也就是NTT DoCoMo的“503i系列”为了节约内存,在开发过程中甚至要把每增加一个库就将增加5个字节的内存,每一个方式将会增加多少字节都要考虑进去。没能发挥面向对象的优点。

  如今需要摆脱这种做法。希望开发人员充分利用Java固体的优势,即面向对象功能。(记者:星 晓雄)