第一节 引言
也许开发所有的网络和企业应用程序项目必须做的事情就是使用关系数据库管理系统(RDBMS)来有效的处理存储和检索基于表的数据的操作。RDBMS已经成了最流行的数据库管理系统(例如Oracle 9i ,MS SQL Server和IBM DB2),而且也包括以存储过程和触发器的形式在数据库内直接编码应用程序逻辑的能力。像Oracle 9i 和Sybase Adaptive Server企业版这样的高级数据库甚至包括用于开发操作数据的Java存储过程或Servlet的数据库中运转Java虚拟机的功能。
这些工业应用的企业级数据库产品都可使用通用SQL语言存取数据并使用像ODBC 或 JDBC这样的标准化数据库应用程序接口进行查询。这些技术已经发展到任何IT项目无论大小,离开关系数据库就无法工作的地步。面对来自产品经理和用户们日益高涨的把现有的应用程序“可移动化”的请求,然而令企业应用程序开发者大吃一惊的是移动平台的数据库访问机制还未成熟。
像Palm OS和 Window CE 这样的平台支持本地文件系统,用于在列表格式中存储数据;然而,这些文件系统实际上是非常简单的系统,不能通过SQL查询。这使开发者不得不手工编码每一个自定义数据存储和检索的解决方案。
我还应该提到,移动平台系统的数据库应用程序接口显然是完全不同的,并且你还需要编写你们自己的数据同步化代码以确保手持设备上编辑的内容能够返回企业数据库中。
第二节 移动数据库应用程序开发技术
默认情况下,PDA平台上的数据同步化是通过使用由开发者编写的一个管道(conduit)处理的。当一个Palm用户按下Sync按钮时,管道软件(驻留在用户系统中的DLL或COM对象)访问 Palm系统数据库并检索一个或更多指定的表。如果需要的话,这个操作可以使用一个ODBC/JDBC调用插入或更新一个企业关系数据库,如果没有其他的任务的话,这个操作就相当地简单。
Palm甚至为 Java、 COM和 C/C++开发者提供 Conduit SDK。然而,万一万恶的老板还让你的应用程序能够被 Windows CE支持并且被手提电脑支持,老天,我们该怎么办?这可能就产生了三个数据库模块(手提电脑中的 JDBC/ODBC/ADO,Palm OS上的 Palm数据库应用程序接口以及Windows CE中的 ADOCE)以及三个同步化解决方案(从手提电脑到服务器的 TCP/IP套接字,从Palm到Conduit的HotSync以及从 WinCE设备到Conduit的 Microsoft ActiveSync )。
别害怕,符合我们需要的移动关系数据库已存在了!事实上,随着版本的不断提升,这些移动数据库的功能正变得越来越强大。这其中有许多中数据库系统可以使用在多个平台上,可以使用流行的程序设计语言如 C/C++、 Java和 Visual Basic,以及服务器端的数据合并和同步化。本文中,我们将探讨三种流行的提供多操作平台和程序设计语言支持的数据库产品。
第三节 Sybase SQL Anywhere/Ultralite
当前的移动数据库市场的领头羊(超过60%市场份额)是 Sybase的 SQL Anywhere 产品。这种产品的最初的版本是定位于需要同步支持服务器版本的 Sybase数据库( 现在命名为 Adaptive Server Enterprise)的移动用户。发展了几年以后,这种产品已经慢慢的包括了一个微型的关系数据库,通常称为 Ultralite,可以在多种平台上配置并且支持许多同步化选项。虽然SQL Anywhere数据库是一个功能强大的SQL数据库,并且包括了安全性和高端数据库功能比如存储过程和触发器,但是如果你正在多个移动平台上配置应用程序的话你可能会对Ultralite更加有兴趣。现在, Ultralite可用于 Windows 95/98/NT 、 Palm OS、 Windows CE和 EPOC 。它的应用程序接口可用于 C/C++ 和 Java程式语言,并且这些应用程序接口在所有的支持的平台上保持不变。
不象其他从台式机移植到移动设备上的关系数据库系统那样,Ultralite数据库是特意为没有硬盘的设备设计的,这意味着这个数据库在存储器使用上已达到最优化,即使使用最小的内存也能提供最高的性能。SQL Anywhere包含的另一个强大功能是MobiLink 同步技术。MobiLink是一个基于服务器的同步化引擎,它可以通过串行口、 TCP/IP、 HTTP 、 HotSync 、 ScoutSync或 ActiveSync连接与远程客户通信。使用象 MobiLink 这样的通用同步技术可以极大地削减开发费用,因为MobiLink能够处理高级的同步操作,比如瞬象(snapshot)和时间戳同步、主键维持、冲突的检测和解决等。在服务器端,所有的MobiLink同步逻辑都是通过使用后台数据库的SQL的事件处理的( MobiLink通过 ODBC 连接数据库,所以事实上支持所有的SQL数据库),通过使用 Certicom的 SSL/TLS Plus 来支持公钥加密功能(使用椭圆曲线加密系统技术)。如果在编写应用程序前把可能发生的时间都考虑好的话,那么 SQL Anywhere/Ultralite 组合将是一个极强大的移动数据库和同步解决方案可以满足任何任务。
第四节 Oracle 8i Lite
虽然Sybase可能已经领引了移动计算技术市场空间,但是我们也不能否认Oracle在企业数据库世界中的重要作用。象Sybase的相应产品一样,Oracle 8i Lite产品可用于所有主要的移动平台(Win32、 Windows CE、 Palm OS和EPOC)并且在某些地方还超出了Sybase Ultralite。8i Lite包含完整的与后台Oracle数据库同步的能力;然而,这种产品并不就此止步。也包括了 Windows CE和 Win32的 ODBC客户机和 C/C++/Java/ActiveX应用程序接口支持。这种产品的另外两个特性也许更能引起大家的兴趣:Oracle Mobile Agent和Web-To-Go:
?Oracle Mobile Agents最初市场定位在独立无线中间件产品,但是1999年被收录入8i Lite产品中。Mobile Agents是一个通信解决方案,允许 Oracle 8i Lite应用程序通过网络执行无线同步操作,这些网络有CDPD(AT&T Wireless使用)、Mobitex(Cingular Wireless使用)和 DataTAC 4000/5000(Motient使用)。Oracle Mobile Agents通过使用应用程序队列处理信息。这个队列也与运行Oracle高级队列( Advanced Queuing)选项的后台Oracle数据库和包括 8i Lite的 AQ Lite产品整合。
? Web-To-Go既是数据同步又是一个应用程序部署解决方案。建立在通用网络开发技术诸如∶ Apache和 Java servlets, Web-To-Go允许一个网络应用程序 (对于Win32平台 )在服务器内被存档然后自动地、同步地配置到客户机中。Web-To-Go通过Java存储过程或JDBC支持数据库逻辑的开发并且对于那些现有的使用Java servlets构建的网络应用程序来说它是一个非常强大的移动解决方案。
我相信市场现在对于 Oracle提供的产品多多少少觉得有点混乱,因为 8i Lite的各个部分曾经分别上市(Web-To-Go、Oracle Mobile Agents、Oracle Lite等)。另外, Oracle自己的 OracleMobile解决方案定位在只用于无线应用解决方案诸如∶ WAP、 SMS和 VoiceXML,也已经能够从 8i Lite那里吸引来不少目光。然而,对于那些开发工业强度的解决方案同时又需要无线通讯的人来说, 8i Lite是一个数据库、同步化、中间件和应用程序部署技术的综合体。
第五节 PointBase 4.0袖珍版
象IBM(DB2 Everywhere)与微软(SQL Server CE)这样的公司也开发了用于多种平台的移动数据库系统,这些产品的能力都非常强大,使用DB2 或SQL Server数据库工作的开发者也将很快熟悉这些数据库产品。但除此之外,我还想介绍进军企业级数据库市场的一只新军:PointBase。
PointBase 非常独特,因为它是第一个经过认证的100%纯Java数据库,可用于任何使用的 Java 2 标准版虚拟机(JVM)的平台。在2001年6月的JavaOne大会上,PointBase发布了PointBase 袖珍版产品??一个为 J2SE 和 J2ME 环境设计的占用资源少的(不到 45KB )数据库。如果你的目标平台包含一个兼容J2ME的虚拟机,PointBase允许你部署一个SQL数据库应用程序。J2ME MIDP 虚拟机目前可用于Win32,Palm OS,Windows CE和摩托罗拉IDEN电话.
还有IBM的DB2 everyplace,DB2 Everyplace是移动设备上的关系型数据库。 它由三个主要部分组成: the DB2 Everyplace 关系型数据库, DB2 Everyplace Sync 服务器以及DB2 Everyplace Mobile Application Builder。
有了DB2 Everyplace,你可以通过使用Java Database Connectivity (JDBC)直接访问DB2 Everyplace数据库中的关系型数据在普及设备上开发Java应用程序,在DB2 Everyplace数据库与企业关系型数据库之间双向同步传递数据.
cherio 整理
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/