| |
移动数据库和J2ME工具探讨 |
|
时间: 2003-11-17 来自:yesky-matrix |
 |
|
什么是SyncML?
SyncML是一个流行的应用层同步协议。除了包括像J2ME这样的通用客户应用平台,移动设备通常还预装一些智能应用程序。例如在智能电话或PDA上包括有日历,地址本和联系表(个人信息管理
personal information management,
或PIM应用程序)这些应用程序通常能够通过设备软件供应商所提供的协议与桌面PC或其他中央数据储存库进行数据同步。协议间的不兼容造成用户的许多问题。例如,在Pocket
PC上的Mac
和Linux两平台进行同步是非常困难的;如果一个人拥有多个移动设备,那他必须安装多个驱动程序,而这些驱动程序是存在潜在冲突的。用户需要一个标准的同步协议,它允许任何设备在不需要专门驱动程序条件下与任何后端应用程序进行同步。
SyncML是一个标准的XML数据格式,它定义语法描述简单PIM数据例如vCard和vCalendar。SyncML能访问数据库驱动的企业后端信息系统。例如,IBM
WebSphere Everyplace Access提供SyncML客户端访问Lotus Notes和Microsoft Exchange
servers。像IBM DB2和Oracle9i
Database这样重要的企业数据库已经建立了对SyncML的支持。由于SyncML只是在PIM类型应用程序上发挥作用,它还没有强大到足以和通用关系数据库同步的地步,因此本文没有集中在SyncML上。
一个应用程序例子
现在通过一个简单的例子,我们检测一下移动数据库应用程序的典型用法和关键组件。
移动联系管理器
这是一个由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
客户端应用程序UI(用户界面)是用AWT写的。这是被PersonalJava或J2ME/FP/PP设备所支持的唯一标准UI库。除了这些UI驱动,我们还有另一个代码层,它提供访问一般的设备上JDBC数据库。这个数据库访问层也提供了与后台服务器同步移动数据的逻辑,它是通过PointBase专有UniSync同步服务器来实现的。现在我们来看看数据访问层的代码,它包括在一个单独的类:DBManager.
15b
|
|
|
|
|
|
|
|