移动应用程式-移动数据库和J2ME工具

摘要:在不可靠的无线网络中应用程式可靠性已成为关系移动商业成功的一个中央话题。J2ME(Java 2 平台微型版)是支持离线模式智能移动客户端的完美平台。整合了移动关系数据库的企业J2ME客户端能够管理在设备上的复杂数据并能在需要时和后台服务器同步。在这篇文章中,Michael Yuan首先他讨论了高可靠性移动移用应用程式的“偶然连接”(occasionally-connected)范例。他在这个范例中解释了移动数据库的作用。他还用一个J2ME应用程式阐述了移动数据库应用程式的关键组件。最后,他评论了主流的J2ME数据库公司,为您在购买所需要的数据库时提供一个指导。

  现在的无线网络是极不可靠的。不可靠的应用程式毁坏了移动商业的核心价值,而他又许诺无论何时何地都能够访问到信息。实际上,总是保持连接的需求正是基于无线应用协议(WAP)的瘦客户移动商业失败的主要原因。移动商业需要智能的移用客户端,他能够操纵当地的应用程式并且甚至在网络出现临时的不可靠时能够持续的工作(例如,离线操作)。“偶然连接”移动应用程式需要高级的移动数据储存和管理工具。这样的工具在J2ME上是容易得到的。

  在这篇文章中,我首先讨论了移动数据库的一般概念和规范。我用了一个应用程式例子来阐述J2ME移动数据库应用程式的重要设计和关键组件。我也对现在变化的市场如何正确选择正确的移动数据库提供了建议。

  一、设备上的数据存储和管理

  对离线操作的首要需求是存储和管理设备自身的应用数据。标准的J2ME仅仅提供有限的数据存储和管理能力。在低端的MIDP(移动信息设备描述)电话上,我们仅靠记录管理系统record management system(RMS)得到线性的记录储存;在基础描述里(或PersonalJava)我们有简单的随机文档。应用程式研发者们必须用那些一般工具来组织数据,这些工具会对大应用程式导致乏味、低效率和错误的倾向。

  在J2SE(Java2平台标准版)和J2EE(Java2平台企业版)的世界中,关系数据库代表着数据管理的关键技术。大多数研发人员已很熟悉通过如JDBC(Java数据库连接)的API访问普通数据库。因此轻量级关系数据库是我们对移动数据管理自然的选择。

  除了提供离线操作模式外,设备上数据库on-device databases更有其他的重要好处:

  ◆ 他们能管理用户参数。极度的个性化已作为移动商业的一个主要长处被吹捧。
  ◆ 他们能提供一个性能高速缓存器performance cache来减少网络往返回调。这样就能大大的增强在现在低速和反应慢的无线网络中应用程式的性能。

  二、JDBC可选包

  标准JDBC API对高端Java移动设备已是能够选择利用了。PersonalJava运行时常常和可选的JDBC1.x API捆绑在一起。PersonalJava的继承物,J2ME 基础/个性化的描述Foundation/Personal Profile(FP/PP),他没有委托JDBC来访问数据库。相反,FP/PP设备通过J2ME JDBC可选包(JDBC OP)使用JDBC 3.x API 的一个富子集。JSR Java Specification Request(Java 规范需求)169正在发展这个可选包的规范,他的草案已在2002年11月提交上去。JDBC OP除了以下几个特点外支持大多数用于JDBC的公共特性:


一个应用程式例子

  现在通过一个简单的例子,我们检测一下移动数据库应用程式的典型用法和关键组件。

  一、移动联系管理器

  这是个由PointBase提供的移动联系管理器的例子。联系管理器 contact manager包括在PointBase 4.x中。为了读者方便,我已把源代码打包成zip文档放在Resource中。假如您想编译和运行例子,您必须先从PointBase处下载适当的jar文档。

  这个应用程式本身比较简单。他主要沿用了高级地址本应用程式的通用特性。例如,他允许用户存储联系人名字,地址和电话号码;提供自觉浏览和搜索接口;和后台数据库服务器同步。图1和图2分别显示了该应用程式在标准模式和同步模式下的操作。这些屏幕快照来自一个由Insignia’s Jeode PersonalJava VM驱动的Pocket PC 和一个由J2SE驱动的Mac OS X 膝上型电脑。相同字节代码的应用程式没有经过修改运行在许多平台上,证实了Java的威力。

图1 在袖珍PC Jeode PersonalJava上的标准联系管理器


图2 在Mac OS X上的两个同步的联系管理器spoke


一、J2ME移动数据库的选择
  当然PointBase并不是J2ME移动数据库产品的唯一选择。在本文的剩余部分我会比较和讨论几种主流的竞争者。在开始以前先让我来阐述一下这个产品的前景。


  1、高端设备上的JDBC数据库

  对于运行PersonalJava或Personal Profile的高端设备,数据库能够通过JDBC API被访问。JDBC数据库对于程式来说是最容易的数据库类型。任何的厂商已至少有一个这种种类的产品。最大的挑战是如何平衡这些功能。我们想要最小而且最快的数据库。他能够支持应用程式所需功能的准确集合。


  2、MIDP设备上的轻量级数据

  CLDC(有限连接设备配置Connected Limited Device Configuration)/MIDP并不支持JDBC接口。在MIDP设备上支持复杂数据管理的两个通用方法是:

  ◆ 执行很轻量的数据库和RMS上的类似JDBC的访问API。这个方法很耗费资源,但根据研发者研发能力和性能支持证实是最好的。

  ◆ 直接扩展RMS类并在扩展的类上执行简单的行序列化,数据访问,索引/搜索和同步方法。这个扩展类是RMS上的一个细小的层次。他能模拟关系表的行为。

  在产品评论的章节里我将讨论这两种方法。


  3、同步服务器

  众所周知,同步是移动数据库的一个关键性能。大多数数据库厂商有他们自己专有的同步服务器。这些服务器提供许多附加功能来优化在移动环境下的同步过程。同步服务器的重要性能包括如下几点:

  ◆ 智能冲突解决方案
  ◆ 带宽减少
  ◆ 端到端编密码
  ◆ 后台引擎性能调整
  ◆ 异步和可扩展更新

  接下来的几章里我将检查和比较几种主流厂商的产品。


  二、HSQL 数据库引擎

  开放源码的数据库引擎?DHSQL是基于Thomas Mueller的Hypersonic SQL项目。他完全是由Java是编写的同时也是一种广泛用于嵌入式的数据库。他被包含在许多J2EE应用服务器中。在移动设备上,HSQL运行在PersonalJava和FP/PP平台上。HSQL是完全免费的。您能自由地将他重新部署到您的应用程式中,这对移动应用程式来说是容易的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值