JME移动数据库的选择 当然PointBase并不是JME移动数据库产品的唯一选择在本文的剩余部分我会比较和讨论几种主流的竞争者在开始以前先让我来阐述一下这个产品的前景 高端设备上的JDBC数据库 对于运行PersonalJava或Personal Profile的高端设备数据库能够通过JDBC API被访问JDBC数据库对于程序来说是最容易的数据库类型所有的厂商已经至少有一个这种种类的产品最大的挑战是如何平衡这些功能我们想要最小而且最快的数据库它能够支持应用程序所需功能的准确集合 MIDP设备上的轻量级数据 CLDC(有限连接设备配置Connected Limited Device Configuration)/MIDP并不支持JDBC接口在MIDP设备上支持复杂数据管理的两个通用方法是 执行非常轻量的数据库和RMS上的类似JDBC的访问API这个方法很耗费资源但根据开发者开发能力和性能支持证明是最好的 直接扩展RMS类并在扩展的类上执行简单的行序列化数据访问索引/搜索和同步方法这个扩展类是RMS上的一个细小的层次它能模拟关系表的行为 在产品评论的章节里我将讨论这两种方法 同步服务器 众所周知同步是移动数据库的一个关键性能大多数数据库厂商有他们自己专有的同步服务器这些服务器提供许多附加功能来优化在移动环境下的同步过程同步服务器的重要性能包括如下几点 智能沖突解决方案 带宽减少 端到端编密码 后台引擎性能调整 异步和可扩展更新 接下来的几章里我将检查和比较几种主流厂商的产品 HSQL 数据库引擎 开放源码的数据库引擎?DHSQL是基于Thomas Mueller的Hypersonic SQL项目它完全是由Java是编写的同时也是一种广泛用于嵌入式的数据库它被包含在许多JEE应用服务器中在移动设备上HSQL运行在PersonalJava和FP/PP平台上HSQL是完全免费的你能自由地将它重新部署到你的应用程序中这对移动应用程序来说是容易的 HSQL提供一个支持%JDBC接口和所有JDBC数据类型的JDBC驱程它支持事务外键甚至Java存储过程在HSQL中的表能寄存在内存中和保存在磁盘文件中HSQL只有少于KB的存储器足迹footprint它也为PersonalJava设备发布了一个数据库管理控制台(经过Sharp Zaurus上的测试) 然而HSQL缺少一些商业移动数据库上所需的高级性能和安全功能更重要的是HSQL不能提供任何同步解决方案它也缺少一个为MIDP设备的解决方案 PointBase Micro PointBase是一个纯Java嵌入式数据库方面的主流厂商PointBase Micro数据库能运行在FP/PP/PersonalJava和MIDP平台上 在FP/PP/PersonalJava平台上PointBase Micro 数据库仅用 KB 存储器足迹就能支持大多数JDBC和SQL功能它也支持例如数据库编密码这样的高级功能它不支持存储过程和接口CallableStatement因此MIDP不支持JDBCPointBase为MIDP提供它自己的轻量级类似JDBC的APIPointBase Micro 数据库的MIDP版本提供了一个用浏览器打开的MIDlet数据库控制台 PointBase Micro 数据库通过UniSync 同步服务器能容易地同服务器端PointBase嵌入式数据库和Oracle 数据库同步 Sybase iAnywhere 解决方案 在膝上型电脑上的轻量级数据库ianywhere的SQL Anywhere Studio已经拥有巨大的市场份额在普遍设备上的移动数据库市场它也有一个强大的份额Anywhere SQL Studio 的自定义数据库生成器是它一个关键创新它让用户而不是数据库厂商决定如何平衡数据库存储器足迹和它所支持的功能 在Anywhere SQL Studio中用户能指定将在应用程序中调用的SQL状态SQL statement它根据用户对根本性质和事务功能的选择生成一个自定义数据库所生成的数据库是一个纯Java类以及伴随的一系列用户应用程序能调用的API使用iAnywhere MobiLink 同步服务器的数据同步API也能加入到自定义数据库中去 除了自定义数据库生成器iAnywhere也提供大存储器足迹和移动数据库的一般用途它包括支持Java储存过程 Java stored procedure在内的许多安全优化和可用性方面的功能这些数据库为了达到更好的性能天生就运行在流行的移动平台上Sybase iAnywhere SQL Studio 现在仍然不能支持MIDP数据库的自动生成 IBM DB Everyplace IBM DB Everyplace是IBM在移动数据库的礼物对于IBM的客户来说DB Everyplace非常好地整合了其他IBM企业组件(例如DB Universal Database 和WebSphere MQ Everyplace)和IBM开发工具(例如IBM WebSphere Studio Device Developer)DB Everyplace本身运行在包括Palm OSSymbian OSPocket PCQNX 软件系统和嵌入式Linux在内的许多平台上DB Everyplace支持加密数据域和表存储优化功能 在MIDP平台上DB Everyplace有一个叫FastRecordStore的产品它仿效在MIDP RMS记录存储之上的可索引和可搜索的关系表 DB Everyplace 数据库和FastRecordStore通过IBM同步引擎与后台数据库同步DB Everyplace也附带一个叫Mobile Application Builder 的工具它允许开发者可视化地创建DB Everyplace 应用程序 Oraclei Lite Oraclei Lite是Oracle在移动数据库上的产品它可运行在Plam OSPocket PCSymbian OS和Win 等平台上Win这个版本是为了能运行在膝上电脑上并支持JDBC多用户模式以及Java存储过程Oraclei Lite的Pocket PC和Symbian OS版本支持JDBC而Palm OS版本仅支持Oracle自身专用的OKAPI(对象核心API Object Kernel API)和ODBC(开放数据库连接Open Database Connectivitiy)Oraclei Lite suite包括一个移动开发工具Mobile Development Kit它能够根据用户自定义需求自动生成和打包移动数据库应用程序目前它只能生成本身客户端应用程序 Oraclei 移动数据库通过Oracle移动服务器和后台Oracle数据库服务器同步如果我们使用Oraclei Lite 移动开发工具来创建应用程序则移动服务器会自动为这个应用程序生成同步逻辑Oraclei Lite支持任何基于TCP/IP的网络上的同步包括HTTPCDPD(单元数字包数据cellular digital packet data)b无线局域网通过使用移动服务器的开放传输API Open Transport APIs我们也能增加新的传输另外Oracle移动服务器支持非同时的同步在高峰期每个设备只是把同步内容提交到一个队列中然后退出异步操作是可扩展解决方案的关键 在MIDP平台上Oracle提供SODA(简单对象数据库访问Simple Object Database Access)这个产品是基于RMS的SODA实际上是一个支持MIDP设备的面向对象数据库它允许存储搜索和恢复类似JavaBean的数据对象 选择正确的移动数据库 选择正确的移动数据库产品是个复杂的商业决定由于移动数据库嵌入在客户端应用程序中你需要为你所开发的每个产品支付版税为减少总开销而签订一个好的合同是非常重要的由于同步解决方案所特有的性质每个产品都在某种程度上锁定了厂商因此开发人员不仅应该考虑到产品的技术优点而且应该考虑到厂商的一贯声誉和稳定性例如如果你的移动客户端需要MIDP和Personal Profile 数据库你应该选择同一厂商中更好传输率的产品和更易管理的同步解决方案 PointBase和Sybase iAnywhere提供极好的移动数据库解决方案然而如果你的企业基础架构主要是IBM或Oracle那么最好选择DB Everyplace 或Oraclei Lite 移动数据库 移动数据库和同步解决方案是高可靠性移动应用程序的重要组件他们提供了新的而且有前途的偶然连接移动应用程序范例在阅读完本文后你应该已经能够使用JDBC和PointBase APIs设计和执行移动数据库应用程序由于移动数据库运行在小设备上当选择商业产品时你需要仔细权衡特征和储存器足迹而不是性能 |