OSGi是移动Java的解决方案吗?

2007年的JavaOne大会反映出这样一个事实:对于消费者和企业用户来说,移动计算都正在由前期使用阶段转向大众市场阶段。但Java ME开发者仍然面临许多服务器端或者桌面Java开发者从来无须直面的障碍。这些问题包括:

  • Java ME平台的分裂
  • 缺少足以支持高级“智能手机”设备能力的移动运行时环境
  • 一旦设备出厂,将面临管理移动应用程序和配置的困难
  • 常见Java Web开发技巧及API与为移动设备开发所专用的富客户端实践的架构性隔阂

 Nokia,Sprint和IBM在JavaOne联合做了一个报告,描述了一种解决这些问题的方案,它通过一个建立于OSGi之上、面向服务的架 构来实现。OSGi最初是用于远程信息处理应用,这些应用需要进行远程管理,具有良好的可插拔性,以及无需重启即可完成软硬件的更新。因为手持移动电话正 越来越多地被当作全天候运行的应用平台所使用,特别是电信公司和开发者开始致力于如何给当前静态移动Java环境带来某种松耦合组件架构,所以手持电话即 将成为OSGi一个非常广阔的应用场景。

JSR 232:Mobile Operational Management正 在为这个标准制定规范。Nokia移动软件首席Java架构师Jon Bostrom介绍说,此JSR是基于Web2.0的“聚集中创新”原则:引入一种开放的组件模型,在此模型中,内建于平台中的服务可以以一种灵活但是高 度可管理的方式,与其他开发者提供的服务相插接。OSGi把你口袋中的设备变成一个与操作系统无关的应 用服务器。它能够在运行中交付新组件,管理它们的生命周期和权限,并提供一个共享的事件总线,以及像监控和日志这样的服务。事实上,因为OSGi包含了一 个servlet容器,OSGi bundles(可拔插的组件)并不必须写成Java ME应用程序——它们可以是存活于网络边缘的标准servlet。

种种公开迹象表明,JSR232制定组的不同参与者的努力方向似乎也有点不同。对于Nokia,其想法是创建一种“移动创新引擎”来促进移动设备的 融合。这不仅仅是我们今天熟悉的web服务的融合。比如说,它们可能还包含像GUI渲染引擎这样的组件,使得它们可以方便地从其他平台进行迁移。例如,移 动Java开发者长期以来一直遭到CLDC/MIDP提供的功能有限的UI工具包的限制。但是在一个支持JSR232的设备上,他们就会拥有一个强大得多 的CDC/FP运行时以及类库可以使用,使得使用AGUI,Swing GUI以及SWT的嵌入版本和Eclipse RCP(eRCP)成为可能。Bostrom 说,没有理由不让像ActionScript/Flash,OpenLaszlo或者Flex/Apollo这样的引擎也插入进来。更加重要的是,开发者 不再需要等待JCP或者设备制造商给手持电话带来这些组件:一旦封装成OSGi的bundle,它们就能通过无线网络安装到设备并注册为一个服务,这很象 通过Update Manager安装一个Eclipse插件。实际上,OSGi就是使得Eclipse中安装完成无需重启工作台的技术。这对于移动开发者应该是一个非常激 动人心的前景。

而对于IBM,在你的口袋中有个服务器意味着更加广阔的前景:IBM杰出工程师Jim Colson称之为“对称门户模型”。这样OSGi可以形成服务层,在某种意义上将一切从传感器扩展到智能手机、笔记本电脑和台式机,而且在各种情况下, 这些服务都可以通过像JMS和servlet这样熟悉的技术来访问。这种统一的架构的好处很多,其中很明显的是,它对众多具备企业IT部门通用技术的开发 者开放了移动设备。它还解决了阻碍标准web技术在设备上的使用问题:无线网络的有限覆盖和较长的反应时间。在IBM基于OSGi的Lotus Expeditor 管理客户端软件中,一个应用程序甚至可以在客户端服务器断开连接的模式下运行。IBM把Lotus Expeditor看做成是一个“.NET的开放替代品”,可以跨越Windows,Windows Mobile,Nokia S60以及Mac OS。就像Nokia的移动OSGi实现,IBM的实现使富客户端应用可以使用可插拔的GUI库,并提倡合成开发。但商业目的正在使既有的SOA技术“远 离人,地点和事情的数据中心”。
 
OSGi为一个更加动态的移动Java环境敞开了大门,Nokia的Asko Komsi 表示这和OSGI服务,比如配置、监控和条件优先级一起,“提供了许多我认为我们有必要使用CDC的特性”。但这同样也带来了需要JCP在规范中解决的问题,比如JSR249,高级移动服务架构师Komsi解释说:

 从宏观来看,JSR249必须为一些关键特性找到解决方案,比如主要安装机制,应用程序模型,以及打包模型——如何打包这些应用程序和中间件组 件,以便你能将它们发送至手持电话。另外,JSR还需要找到一种解决方案,用来管理应用程序和服务运行其中的环境。在将来,你也将会拥有强大的客户端环 境,从而允许你运行多个应用程序。因此我们也需要定义一种应用程序协作机制。这些就是我们必须在JSR249中找到解决方案的特性。如果没有,那我们只是 完成了一半而已,而且将不得不再次面对分裂。

 但是Nokia并没有等着让OSGi进入你的移动设备。他们已经和Sprint组成团队来开发JSR232实现,这款产品被称为Titan平台,将会很快发布。Sprint的3G客户设备集团软件平台经理Brandon Annan预言说,随着三或四台带有Titan功能的“PDAs”(预计会带有EVDO无线装置) 的启动,“移动Java技术的黄金时代”将在今年的第四季度开始。符合JSR232规范的手持电话会在2008年的夏末秋初面世。Sprint 4G产品的产品线同样是基于对WiMax设备符合JSR232规范的“认真考虑”,这些设备将会在人们的殷切期盼中迎来它们的首次发布。除了 Sprint,即将到来的Nokia E90手持电话也会针对欧洲市场配备OSGi,而面对海外市场配备eRCP。而高价的智能手机会否推向北美市场尚未得知。

 不愿意等到今年年底的移动Java开发者现在就可以开始在CDC和OSGi上部署应用程序,但他们需要选择带有操作系统的设备,比如Windows Mobile和Linux。比如Sprint的4G集团高级技术战略家Brian Coughlin就把一个将OSGi与移动设备融合的demo放到了Nokia N800 Internet Tablet上,这是一个Linux设备,而且Nokia声称它将会有一个WiMax版本 。开发者从这里可以获得一个针对N800和其他组件的CDC Java运行时,这其中包括了一个Equinox OSGi实现,还有混合的servlet bundle。

查看英文原文: Is OSGi the Solution for Mobile Java?

你可能感兴趣的:(OSGi是移动Java的解决方案吗?)