当前页面位置: » 丰搜网 » 文档中心 » 详细内容
高可靠性移动应用程序-移动数据库和j2me工具(1)
目前的无线网络是极不可靠的。不可靠的应用程序毁坏了移动商业的核心价值,而它又许诺无论何时何地都可以访问到信息。实际上,总是保持连接的需求正是基于无线应用协议(wap)的瘦客户移动商业失败的主要原因。移动商业需要智能的移用客户端,它能够操纵当地的应用程序并且甚至在网络出现临时的不可靠时可以持续的工作(例如,离线操作)。“偶然连接”移动应用程序需要高级的移动数据储存和管理工具。这样的工具在j2me上是容易得到的。
在这篇文章中,我首先讨论了移动数据库的一般概念和规范。我用了一个应用程序例子来阐述j2me移动数据库应用程序的重要设计和关键组件。我也对现在变化的市场如何正确选择正确的移动数据库提供了建议。
设备上的数据存储和管理
对离线操作的首要需求是存储和管理设备自身的应用数据。标准的
j2me仅仅提供有限的数据存储和管理能力。在低端的midp(移动信息设备描述)电话上,我们仅靠记录管理系统record management system(rms)得到线性的记录储存;在基础描述里(或personal
java)我们有简单的随机文件。应用程序开发者们必须用那些一般工具来组织数据,这些工具会对大应用程序导致乏味、低效率和错误的倾向。
在
j2se(
java2平台标准版)和
j2ee(
java2平台企业版)的世界中,关系
数据库代表着数据管理的关键技术。大多数开发人员已经非常熟悉通过如jdbc(
java数据库连接)的api访问普通
数据库。因此轻量级关系
数据库是我们对移动数据管理自然的选择。
除了提供离线操作
模式外,设备上
数据库on-device databases还有其他的重要好处:
- 他们能管理用户参数。极度的个性化已经作为移动商业的一个主要优点被吹捧。
- 他们能提供一个性能高速缓存器performance cache来减少网络往返回调。这样就能大大的增强在目前低速和反应慢的无线网络中应用程序的性能。
jdbc可选包
标准jdbc api对高端
java移动设备已经是可以选择利用了。personal
java运行时常常和可选的jdbc1.x api捆绑在一起。personal
java的继承物,
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的公共特性:
- 连接池
- parametermetadata接口
- 在callablestatement interface里为已经存储的程序通过名称来设置参数
- sql 99的类型(如struct,array,ref,sqldata,sqlinput,和sqloutput接口 )
自定义类型映射(如settypemap() 和gettypemap() 方法)
数据同步
偶然连接应用程序范例的另一个重要特性是数据同步。独立的移动
数据库被数据包所隔开。当我们用强大的后台
服务器连接那些“孤岛”时移动应用程序非常有用。已连接上的移动
数据库有如下优点:
- 移动客户端常常需要访问企业的基础设施。例如,移动销售应用程序需要更新库存数据。
- 后端应用程序需要上卷数据和聚集数据来制定智能商业决策或生成正确的报表。例如,供应链应用程序在决定它应该从供应商那里定购多少货物之前需要得到移动销售人员的聚集数据。
- 后台能共享每个移动终端信息
因此智能客户端不但应该提供离线设备数据管理,而且应该当网络可用时提供后台
数据库的数据同步。后台
数据库当作简单移动设备管理的一个内容储存库是同步解决方案的额外收益。
理论上应用程序开发者能操纵整个同步逻辑,然而开发一个优化的,
安全的和可扩展的同步解决方案需要非常专业的技能。移动
数据库产品同其附带的同步工具和api一起赶走了开发人员的痛苦。
什么是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上。
resources
· download the source code for this article's pointbase contactmanager sample application (you need to download pointbase micro database and unisync to run the sample):
http://www.
javaworld.com/
javaworld/jw-06-2003/wireless/jw-0606-wireless.zip
· for more detailed discussion and complete source code analysis, preview michael yuan's upcoming book,
java mobile enterprise application development:
http://www.enterprise
j2me.com/books.
php· the jdbc specification:
http://
java.sun.com/products/jdbc/
· the jdbc optional package:
http://
java.sun.com/products/jdbc/download.
html/#cdcfp
· the supported jdbc api in personal
java:
http://
java.sun.com/products/personal
java/
· hsql database engine (check out the sharp zaurus page):
http://hsqldb.sourceforge
.net/
·
sybase ianywhere solution's sql anywhere studio (including adaptive server anywhere and ultralite deployment option):
http://www.
sybase.com/products/mobilewireless/anywhere
· ibm
db2 everyplace:
http://www-3.ibm.com/software/data/
db2/everyplace/
·
oracle9i lite database:
http://otn.
oracle.com/products/lite/content.
html· pointbase micro database and unisync server:
http://www.pointbase.com/home.s
html· for more articles on
j2me and wireless development, browse the micro
java section of
javaworld's topical index:
http://www.
javaworld.com/channel_content/jw-micro-index.s
html· more wireless
java articles:
http://www.
javaworld.com/columns/jw-wireless-index.s
html· browse the
java database connectivity (jdbc) section of
javaworld's topical index:
http://www.
javaworld.com/channel_content/jw-jdbc-index.s
html· michael yuan also authored the following
javaworld articles:
o "build database-powered mobile applications on the
java platform" (january 2002)
o "track wireless sessions with
j2me/midp" (april 2002)
o "
java tip 126: prepare cross-server database
access methods with jdbc" (april 2002)
· browse the development tools section of
javaworld's topical index:
http://www.
javaworld.com/channel_content/jw-tools-index.s
html· browse
javaworld's product reviews index page:
http://www.
javaworld.com/news-reviews/jw-nr-product-reviews.s
html· sign up for
javaworld's free weekly micro
java email newsletter:
http://www.
javaworld.com/subscribe
--------------------------------------------
高可靠性移动应用程序-移动
数据库和
j2me工具(1)
高可靠性移动应用程序-移动
数据库和
j2me工具(2)
高可靠性移动应用程序-移动
数据库和
j2me工具(3)