诺基亚高官专访:谈移动Java的未来
【IT168 分析评论】
新的移动服务体系(Mobile Service Architecture -MSA)规范(JSRs 248 and 249)定义了移动电话的下一代Java平台。本月通过JCP 的最终投票决定,MSA规范的第一部分终于完成了。在与Artima的交谈中,MSA规范的负责人Asko Komsi,他同时也是Nokia的工业关系部的主管,谈到了移动Java的未来以及MSA标准将如何帮助我们简化移动电话的开发。

Frank Sommers:在今年上半年,你们的公司Nokia为消费者交付了一亿五千三百万部移动电话,超过了整个PC业生产量的近3倍。现在,非PC设备,例如移动电话,游戏终端或信息通讯系统比PC机或服务器拥有更多的用户,几乎所有这些设备都装载的是Java ME。开发人员自然希望在上面运行自己的程序,但是到目前为止只有小型Java应用程序,例如游戏,在移动设备上有了很好的进展,你认为为什么会那样呢?
Asko Komsi:在J2ME的发展初期,我们有MIDP和一些不同的API,但没有人来定义一个所有手机都支持的框架。很多手机提供MIDP支持,但是在不同的运营商和不同的手机生产商之间对附加的API的支持却各式各样。最初解决这个问题上的尝试是建立JTWI [Java无线产业技术规范, JSR 185]。这是为开发商定义完整API集合的首次尝试,例如它要求手机提供MIDP或一个消息API。JTWI试图做成个小的函数集合。不幸的是,它最初并不是做得很好。一个原因是必须面对授权问题,这是所有因素中非常重要的一点。在JTWI之后,Nokia、Vodaphone,还有整个的工业都想提供一个更好的提案,来为未来的发展指明道路,而不仅仅是定义一个通用的函数集合。我们需要一个方法解决正在发生的事情,而不是一个一次性的提案。在我们看到市场需要一个更好的平台的时候,当有一个新技术来加入的时候,这个情景就是定义一个公共函数集合的新版本。
新提案的结果就是JSRs 248 [移动服务体系结构, 或MSA] 和 249 [高级移动服务体系结构]. JSRs 248已经最后敲定了,在8月投票通过,同时JSRs 249的工作不久将开始着手。我们预测JSRs 249在今年年底会形成一个草案版本,这两个JSR在一起将为开发者最终提供一个标准统一的开发接口。
因此,回答你的问题,一旦你获得了来自主要的生产商和运营商的针对大多数手机的统一平台,开发人员将会很轻松的建立各种应用,而不仅仅是游戏和娱乐。
【IT168 分析评论】
Frank Sommers:为什么在定义公共Java ME stack(接口平台)时有2个独立的JSRs?
Asko Komsi:这两个JSR都是为手机而建立的,但是不同之处在于每个JSR所对应的应用类型和所服务的商务情况。如果你注意到现在手机所发生的事情及被用来做什么,你会看到将有许多种的手机游戏和多媒体提供给消费者。这就是JSR 248服务的领域,在消费者方面,一个为开发商绑定他们的应用到一个MIDP类型的包里的模型出现了。消费者可以购买这个包,下载到消费者的手机里,然后就可以很简单地使用它们了。与游戏应用的大业务相比,那些应用的价位并不是很高。JSR 248的作用就是确保我们使所有的游戏API和多媒体特征都可以得到,JSR 248标准对于使用3D图形[移动3D图像API, JSR 184]的应用非常优秀。它提供了一个移动媒体API[JSR 135],你可以用其中包含的蓝牙API[Java APIs for BlueTooth, JSR 82]产生人对人的游戏。你能利用SIP [SIP API for J2ME, JSR 180]构建应用,并且使用支付API [JSR 229]来为移动电话上的服务和游戏付费。你也能利用内容处理API[JSR211],来浏览不同类型的内容。
虽然JSR248的服务目标主要是个人消费者应用,但也提供了对企业可能有用的功能。例如,JSR 172 [J2ME Web服务]为网络服务提供支持,你可以通过JSR 177获得更安全和信赖的服务,对于要求从移动设备上安全访问公共数据的企业这是非常重要的。JSR 248标准也通过Location API for J2ME [JSR 179] 提供了基于场所的服务。这样对于那些需要创建根据地理位置来访问企业数据的应用是非常有帮助的,例如司机需要的特定应用。
然而,JSR 248不提供企业应用所需要的所有特征,主要因为JSR 248定义的是静态环境。利用JSR 248,你有一套开发者能用的固定的API,每次你能下载一个应用并运行它。安全特征是非常简单的:它是一个沙箱,你可以在里面运行你的程序。它的环境中并没有更多的动态元素。对于某些种应用它非常优良,尤其是个人消费者类型的应用程序,但是我们认为我们需要转向更丰富,更强大的提供动态特征的平台上。
JSR 249就是这样一个为动态环境而设的标准,利用它你能动态下载新的API到手机里。手机可以不再受限于手机本身而获得API,甚至是MSA initiative通过JSR 248所提供给你的。我认为动态环境真的是企业甚至是消费者应用程序将来所需要的。
例如,考虑这样的一种情况,在后端你有很多的数据或一个你想访问的企业应用。一些企业软件公司,就像IBM或BEA—提供了一些中间件来让你访问那些应用或企业数据库。利用JSR 248,所有你能做的就是把一些中间件放入你的终端,然后通过手机上的网络服务来访问这些中间件。
但是利用JSR 249,你可以在手机上提供中间件。如果一个企业需要一个新的API,它们能简易地下载到所有员工的手机里。JSR 249为之提供了一个良好的安全的结构。动态下载能力在你如何构建一个移动应用上显示了强大的优势。如果你能下载中间件到你的手机里,不仅仅一个应用能访问它,而且你能通过中间件执行访问企业数据的的应用,你不必多次下载中间件,你一旦下载了,当你需要访问共同的应用,在你的手机里已经有了。
动态下载能力是支持企业的真正最合适的唯一方式。其他的方式有Nokia和其它制造商遵从的IBM-specific handsets 和BEA-specific,他们预装了各自的中间件组件。正如你看到的,它们无法工作。相比之下,能够下载任何的API到手机里将帮助Java [ME]市场更规整。但是消费者方面也是非常重要的。你可以想到运营商提供一些游戏规范的中间件到你的手机里,在它上面你可以玩很多的游戏。
【IT168 分析评论】
Frank Sommers:你能解释一下JSR 249的动态API下载是如何工作的呢?
Asko Komsi:我们的目标是将JSR 248 走出去,而在JSR 249中我们现在有清晰的章节说明我所提到的。专家组目前仍没有做出任何的技术选择,我们现在开始把焦点放在JSR 249上。OSGI对于Java ME或JCP来说并不是新鲜事物,因为我们已经有了JSR 232 [Mobile Operational Management],Nokia和Motorola做为规范的发起者。从MSA的远景看,如果我们想使用OSGI,我们所必需做的就是配置JSR 232。JSR 232是连接OSGI和基于JCP的标准化之间的一条途径。我们想要确信在OSGI 方面我们能定义技术并提供一个执行参考。然后把所有的技术带给JCP以便使技术不仅对领取OSGI执照的人可以获得,对JCP也一样。
OSGI环境不仅提供给用户各种应用和客户中间件的下载,还负责监控,同时还有一个非常安全的框架,在这个框架里,你能为组件定义任何类型的规则并且访问手机上的各种API。你一旦开始转向JSR 249类型的环境,你需要的安全性不是“沙箱环境”所能提供的,OSGI为我们提供了动态安全。OSGI已经提供了可以兼顾依赖性的机制:一个应用需要什么,版本是多少,如何去获得需要的组件。
OSGI如此让人感兴趣的原因是它提供了许多的特征,我认为我们需要这些特征让CDC便于使用。从一个高层次来看,JSR 249必须寻求办法解决关键功能,象主要的安装机制、应用模型、封装模型—如何打包那些应用和中间件组件,以使你能将它们发送到手机。另外,JSR 249需要发现一个办法来管理环境、 用及在它上面运行的服务。在将来,你也会有强大的客户环境让你运行多个应用。因此我们也需要定义一个应用合作机制。这些特征就是我们必须在JSR 249里面必须找到办法解决的。如果我们没有它们,那么我们仅仅做了一半,我们可能面临再次分离的结局。
【IT168 分析评论】
Frank Sommers:现在随着JSR 248最终敲定,什么时候开发者能够看到消费者用上符合MSA的手机?
Asko Komsi:在今年年底或明年年初,你会看到符合MSA的手机出现。一个手机的平均使用寿命过去是18个月,或大致少于2年。手机的替代速度将再次依赖于市场的发展。在欧洲,你可以去买一个新的手机,把你的SIM卡放入新的手机里。人们常常有多部手机:一个喝酒的时候用,一个工作的时候用,一个用于家里。在美国,你购买手机的时候就购买了一个合同,你被要求使用手机一至两年。但是在大约两年里,市场上的大部分手机将会提供与JSR 248的兼容
Frank Sommers:你提出了MIDP。你能解释MIDP,CDC和CLDC与MSA的联系吗?
Asko Komsi: CLDC 和 CDC是其他所有事情的基础,它们定义了虚拟环境,CLDC是CDC的一个更小的子集。其它的API存在于CLDC 和CDC之上,从Nokia的前景看,我认为我们不应该将焦点更多放在虚拟机应该是什么样。我认为CLDC是一个非常重要的结构。但是因为我们在开发更强大的手机,将会有更多的内存和更强大的CPU。我认为我们正从有限的配置转向一个标准的CDC环境。这是我们在将来要看到的,这也是我们支持JSR 249的一个原因。因为我们正朝着一个更加强大和有能力的环境前进。这将导致更小的分歧,因为设备将有更对的性能。当你看到MIDP,MIDP 3草案 [Mobile Information Device Profile 3, JSR 271]是由Motorola主持起草的,但是Nokia也是那个标准的一部分。虽然MIDP已经成功,到目前为止,它也必须转到提供新特性方向上来。无法告诉你那些特性会是什么,因为它们刚好正在被定义。
Frank Sommers:你说过当手机变得更强大,并且大部分制造商开始支持JSR 248,移动市场将会更少的分支,因为大部分手机将集中在支持相同功能的一个核心上。那么制造商如何区分它们的产品?
Asko Komsi:手机不仅仅是Java平台。有许多方面你可以区分。但即使在Java平台,在执行上你仍然可以区分。我们自然会想到,在Nokia上我们已有个非常友好的Java执行。在用户界面方面,你不必明白正在使用的是Java应用还是一个本地应用。Java应用与非Java应用在手机上一起工作的很好,如果你从手机生产商的前景来看,我们现在愿意让手机有一个标准平台。对我们来说,这是很大的资源与费用问题。如果我们为每个运营商或每个单独的市场开发不同的手机,这要让我们花费太多,也意味着对于运营商手机将更加昂贵。运营商也要有跟上标准的想法。这就是Nokia领导MSA的原因之一。通过整合市场,定义规范,我们可能失去一些特色的功能,但是我们认为,这样做有利于开发商,有利于运营商,有利于服务供应商的API,因此更加重要。
【IT168 分析评论】
Frank Sommers:你提到了运营商,除了在手机性能上的不同,开发商也必须与移动网络运营商之间的差异抗争。这种利害关系并不存在于可以从正规的桌面浏览器或桌面应用访问的大多数正在开发的应用的传统环境中。对于那些应用,无论用户是通过一条Verizon fiber-optic线路,还是一个ATT DSL连接,或一个Spring frame relay,对于应用开发者是非实质性的。移动网络运营商的差异对开发商的影响会到什么程度呢?
Asko Komsi:真正的问题是,如果你的应用需要访问外部数据源,数据连接如何工作的更好。有的应用中用户只是下载而不需要任何类型的外部连接。那种应用不会因运营商的不同而影响很多。单一用户能从供应商服务器上下载那个应用,只能那样。只要你开始连接到其它服务器,你就会遇到问题。
Frank Sommers:这里潜在的问题是许多人都有一个围绕经营者的期望,你看到了吗,在某些方面运营商的角色将被简化,开发者能或多或少地与消费者直接交流,如同在非移动世界里面?
Asko Komsi:可能会有不同种类型的运营商。一些人将把它视作提供开放连接的优势。即使你提供开放连接,也不意味着你不能提供服务。这两件事情你都能做,担当着连接提供者和服务提供者双重角色。这样就会有提供自己业务的供应商,消费者能从这儿获得内容和服务。市场将决定什么样会更好。所有这些的一个重要方面是供应商担心消费者。一个假设就是移动电话变成和PC一样,没有安全性将被淹没于病毒和监听软件中。手机的安全性比PC机的安全性还要重要。通过手机有可能获得许多你的个人信息—你的联系,你的图片。在欧洲一些人用手机处理银行业务,信息也存储在手机里。谁能保证一定会安全与保险呢?是谁的责任呢,消费者,生产商,还是服务供应商?
同时,如果你看看企业正在发生的事情,人们想从家里通过宽带连接访问他们的企业数据中心,现在从他们的移动电话上去这样做的次数日益增加,防止一些种类的来自于手机的开放连接,移动空间会有一个非常困难的时期,这最终会变成一个事实。
【IT168 分析评论】
Frank Sommers:你提到欧洲人使用他们的移动电话来付款。如果你到其它国家旅行,你不禁会注意到,在如何使用移动设备方面美国仍然落后于欧洲和亚洲。你认为为什么会是那样,你认为什么时候美国会追赶上?
Asko Komsi:有一件事情帮助了亚洲和欧洲,那就是他们很早同意一种技术,GSM。结果,协同工作并不是大问题。一旦你有了GSM手机,它就会工作,无论你走到哪里。文本消息一直工作,电话呼叫工作着,数据服务工作着。
在美国,在GSM与CDMA之间的技术之争花费了经营者很多资源,花了很多钱。这耽搁了提供给消费者更好的共同合作。而消费者不关心他们所使用的技术,他们只希望看到服务工作,不管在哪里,不管他们使用的哪一家网络运营商。
那就是它的一部分。但即使有了GSM,在经营者真正开始协同工作之前,例如在不同运营商之间保证文本信息的正常传输,在美国也仍然花了一段时间。因此,集中于网络技术和增加国际合作将使美国移动市场发展的更快
Frank Sommers:如果一个开发商想要进入手机的应用市场,你推荐他们采用什么样的途径呢?
Asko Komsi:首先,他们应当真正看看JSR 248规范和研究标准中的API部分。从Nokia的前景看,我们有Nokia 论坛为Java开发者提供免费支持。你能注册,然后访问Nokia手机的所有文件资料,包括那些支持MSA的。从那里你能知道你要使用什么样的工具来开发Nokia手机,其它的制造商有类似的提供。
因为Nokia论坛支持MSA标准,所有的信息都应适合来自于也支持这个标准的生产商的手机。API应当是一致的。一直有外观因素差异,因为手机没有严格一致的显示尺寸。但是手机开发者几年来一直在处理这个问题,现在已经能够很好的解决这个挑战。
现在将应用程序分布是很难的,你不能把一个应用放在那儿,期望人们开始使用它。目前,开发商必须要经过运营商。因为MSA不能提供一个解决方案,我们谈论的唯一事情就是Nokia在这方面所提供的:Preminet平台。这是一个交鈅匙式(turn-key)的解决办法,允许一个运营商为顾客提供服务和应用。我们为运营商运作一个应用目录,甚至主管那个服务。利用这个系统,开发商能有一个联系点获得他在Preminet平台目录列表里的应用,通过它,任何运营商的客户都会获得应用,只要运营商买了Nokia的服务,Nokia将这个做为一种简单的渠道帮助开发商推出他们的应用。