多平台移动数据库系统的自由软件实现.doc

上传人:ni****g 文档编号:543813462 上传时间:2023-01-23 格式:DOC 页数:6 大小:44.50KB
返回 下载 相关 举报
多平台移动数据库系统的自由软件实现.doc_第1页
第1页 / 共6页
多平台移动数据库系统的自由软件实现.doc_第2页
第2页 / 共6页
多平台移动数据库系统的自由软件实现.doc_第3页
第3页 / 共6页
多平台移动数据库系统的自由软件实现.doc_第4页
第4页 / 共6页
多平台移动数据库系统的自由软件实现.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《多平台移动数据库系统的自由软件实现.doc》由会员分享,可在线阅读,更多相关《多平台移动数据库系统的自由软件实现.doc(6页珍藏版)》请在金锄头文库上搜索。

1、多平台移动数据库系统的自由软件实现摘 要:移动计算环境下设计和实现移动数据库系统面临居多问题,由此提出了一个基于自由软件、支持多平台和异构、优化的“移动数据库一同步组件一中央数据库”三级结构的设计和实现方案。着重论述了其中的关键技术,如移动数据库的层次封装、同步流程、并发奈件下的冲突检测算法、系统组建及优化。依该方案已开发出一个面向应用的测试系统,提供数据部署和同步、冲突处理及系统管理等功能,兼容并扩展了移动数据库应用编程规范。关键词:动数据库 移动计算 数据复制 同步技术 冲突处理1 引言随着移动计算技术的发展,它在许多领域出现或展露具有广阔前景的应用。如公共信息发布、位置相关查询、移动商务

2、、未来战场指挥系统等,都依赖于移动数据库系统的支持 移动数据库的发展将对人们使用信息的概念和模式带来全新的变革移动数据库技术在移动计算、普遍化计算领域属于有创新的技术。相关研究成果可以转化为拥有自主知识产权的高科技产品。因此对我国信息产业的发展有重要的现实和长远意义。本文从技术和产品的角度讨论了移动数据库系统开发和应用中面临的问题。同时给出了一个基于自由软件的设计和实现方案。作为例子,介绍了一个由Hopen、Sqlite、MobSync和PostgreSQL4组成的移动数据库系统,及其测试情况。最后总结了该方案的技术特点,并提出了进一步的T作。2 系统开发和应用面临的问题2.1 技术上面临的问

3、题在移动计算环境下,人们可以通过移动设备随时随地访问所需信息较之基于固定网络的传统分布计算环境,研究和开发移动计算环境下的数据库技术面临许多新的特点和困难,诸如计算平台的移动性、连接的频繁断接性、网络通讯的非对称性、系统的高伸缩性和低可靠性以及资源有限性等。移动数据库应支持移动用户即使存断接情况下也尽可能访问所需数据。完成数据查询和事务处理代表性的研究成果是复制缓存技术和数据广播技术在采用基于复制的数据同步l引时。由于移动设备存储空间的限制或应用需要,移动数据库(副本)通常对应中央数据库(主版本)的一个子集(同步集)同步过程包括上载和下载。上载将副本的更新提交到巾央数据库。下载则将同步集的更新

4、应用到副本,同步使得系统趋于一致考虑到无线通讯带宽和成本的限制,采用增量数据同步方式,即只传输上次同步后修改的数据。在多用户情况下,多个副本对应一个同步集当不同副本修改同一数据并提交时,上载事务的不可串行化就引起冲突冲突是不可避免的,解决冲突的途径有冲突消解和副本回滚前者根据应用的预设策略消解冲突,使冲突事务满足可接受性规则从而可以提交:后者指令移动数据库回滚,撤销副本的修改提供多种回滚方案和可定制策略的冲突消解接口能使用户根据具体应用灵活选择。为了获得较好的并发性能,中央数据库采用多版本数据库管理系统。讨论了由此产生的问题及对应的并发控制方案对基于时间戳的同步策略而言,系统应保证并发条件下时

5、剧戳产生机制的逻辑合理性,并设计对应的冲突检测算法。此外,针对移动计算环境的特点,通讯安全、故障处理、查询优化等问题也需要特殊考虑2.2 产品开发和应用中的问题移动数据库系统最终要走向应用从产品的角度而言,开发成本与周期、系统功能与性能、应用范围与前景无疑是着重关心的问题 若从头研发一个功能完善的移动数据库系统,上述问题对希望进入的开发者无疑是制约因素,在推广中还面临着客户对于产品可靠性、可定制和可维护性等方面的苛求同时,能得到广泛应用的系统还应该考虑对多平台和异构数据库的支持,并遵循一定的应用编程接口规范。3 系统设计与实现3.1 总体结构采用“移动数据库一同步组件一中央数据库”三级结构移动

6、数据库具有占用内存小、可伸缩等适合移动设备的特点,支持事务处理,并拥有数据同步功能:同步组件运行于同步服务器上,作为枢纽以多种通信方式接受移动设备的同步请求,提供数据同步和系统管理功能:中央数据库为成熟可靠、并发性好的关系数据库管理系统其核心是嵌入式数据库引擎,封装层包括存取子层和同步子层存取子层屏蔽了不同数据库引擎接口的差异,而向外提供统一的访问接口I,其符合规范的数据库级接口要求存取子层还包含依附于数据库引擎的日志和回滚功能子模块同步子层实现数据同步功能,包括同步控制、通信连接、数据解析等功能子模块,其封装接口II符合规范的同步连接级接口要求。由于接口I的封装,移动数据库可以使用不同的嵌入

7、式数据库引擎,由于接口II的封装,移动设备可以使用符合上述封装接口的不同移动数据库此外,移动数据库对多平台的支持很大程度取决于数据库引擎 因此,可选用支持多平台的数据库引擎,并按可移植性标准编写程序代码。同步组件MobSvnc采用多线程技术,以模块化设计。通信模块负责通信连接及数据传输 主线程为启动人口,以连接服务模块建立服务并响应移动设备的连接请求,同时交由线程控制模块分配服务线程 服务线程的核心模块是同步控制模块,负责控制同步流程 认证模块负责检查移动设备和用户的合法性,同时检查数据读写权限。冲突处理模块负责检测和消解上载冲突 事务处理模块生成上载和下载事务 存取模块按系统特定要求存取数据

8、,提供与具体中央数据库无关的访问接口。管理模块提供系统日志、性能监视、配置管理等系统级管理功能3.2 关键技术3.2.1 同步流程MobSync实现了一个简单的同步控制协议,以“指令+参数”的语法形式,规定了同步指令、状态和动作以及数据格式,控制移动设备和同步服务器间的同步级操作。下面给出一个典型的同步流程 ,记移动数据库为MH,同步服务器为MSS:(1)MH根据日志,生成上载数据文件(2)MH发送同步请求,MSS对用户名密码和设备标识认证,若无误则允许MH发送上载数据文件。(3)MSS解析上载数据文件,生成上载事务(取时间戳为T),如检测到冲突则进行消解,若失败发回冲突信息;否则提交事务并发

9、回上载成功信息,将写入用户上次上载时间并更新同步状态。(4)MH如收到冲突信息则进行副本回滚,并重新同步,如上载成功则准备接收下载数据。(5)MSS生成下载事务(取时间戳为),取得MH上次同步后同步集的更新数据,并向MH 发送下载数据文件。(6)MH解析下载数据文件,生成事务更新副本,清空日志,并反馈成功信息。(7)MSS收到MH应用成功信息,将 写入用户上次下载时间并更新同步状态 双方结束同步。MH的初始化是自动进行的,只需通过管理工具新建用户,设置必要信息即可 初次同步时,MSS先向其发送初始化脚本,MH产生配置文件,并生成一个事务创建数据库,然后直接进入下载过程。设计巾也充分考虑到故障处

10、理,为此规定:同步对MH是独占性的,确保其它程序不能在同步过程巾修改数据:只有在确认上载完成后,副本的日志才被清空,确保上载数据可再生:MSS检查服务线程的有效性,确保服务线程与MH一一对应:巾央数据库记录经确认的用户同步状态,指示MH最近完成的同步动作。这样,当意外因素导致同步故障后,再次同步即可。同步组件检测到冲突,会首先调用冲突消解策略。消解策略根据实际应用以动态链接库或配置文件形式供运行时加载二者以约定的接口和格式,定义了同步过程中特定数据发生特定冲突时进行的动作和结果。合理的冲突消解策略是系统一致性和可用性的平衡点。当然,并不是所有冲突都能消解,此时移动数据库不得不进行回滚。回滚按粒

11、度分为:全回滚、首次冲突回滚、单事务回滚 全回滚丢弃所有修改。恢复到上次同步后的状态;首次冲突回滚恢复直到第一个导致冲突的事务开始前的最近一致状态:单事务回滚允许只回滚导致冲突的事务,但事务间的关联性并不保证其通用性。三种方案各有优缺点,在实际中可以由应用程序或用户选择冲突回滚方案。首次冲突回滚是回滚粒度和正确性保证的平衡点3.3 优化为减少移动端的存储空间占用,并提高同步效率,系统支持视图同步 其关键是对视图的修改。这一机制由同步组件的存取模块和中央数据库规则系统配合来实现 实现细节对移动数据库透明,对其而言视图与表无异。引入缓存机制,加速同步组件对某些信息的存取速度。为每个表增加一级元组修

12、改缓存,采用FIFO替换法,缓存最近修改的元组标识及修改时戳,这样在冲突检测和确定下载数据时能减少查询整表的机会。同时。将表的元数据(Metadata)进行缓存并以hash优化查找,这样避免了原先的读取操作的费时开销。由于元数据相对固定,因此缓存失效并不常发生。此外,同步服务器可采用内存文件系统和内存映射10技术(mmap)以降低I,0压力:采用线程池技术以提高大量同步请求下的响应和处理速度:还可采用连接池技术以提高对中央数据库的访问效率3.4 从自由软件组建系统我们的移动数据库设计在Hopen操作系统上运行。Hopen的研发起源于1996年国家科委支持的“PDA操作系统及开发平台的研究与开发

13、”,经过多年的努力,Hopen已经完成了向产业化过渡,成为国内嵌入式软件系统的主要品种之一。Sqlite是一个用C语言编写的嵌入式数据库引擎,特点是:支持绝大部分的SQL 92标准,支持事务的ACID。自包含。快速,体积小( 250KB),支持多平台 我们首先进行Sqlite在Hopen环境下的移植主要是参考Sqlite的UNIX编译选项,添加了Hopen的编译选项,并修改了源码中与Hopen不兼容之处同时,打开了Sqlite为嵌入式环境的编译优化。如内存数据库、使用简单时间函数等。由于Hopen核心基于Linux,因此移植工作并不困难 Sqlite还可移植于嵌入式Linux和WindowsC

14、E等操作系统经过移植,Sqlite既能以源码方式,也能以静态库或动态链接库形式为Hopen下应用程序开发使用 进一步改造按照3,1节的移动数据库封装机制进行,首先封装了Sqlite的API使之符合规范的数据库级接口要求。然后增加了依附于引擎的日志模块和回滚模块,前者参考触发器的机制,将移动数据库的修改记录在日志文件中。后者提供了多种回滚方案的接口。在此之上,添加了同步子层的同步控制模块、数据解析模块和通信模块,并以同步级接口封装。同步组件MobSvnc按照3,1节所述同步组件结构设计,以C语言编写,可以运行在WindOWS、LinuxUnix上。同步组件基于配置文件,无需安装。按给定的ODBC

15、数据源访问中央数据库同步组件的模块化设计为选取和整合其它自由软件提供了方便,例如libghthash(hash库)、MemoryDisk(内存虚拟磁盘)。中央数据库选用PostgreSQL,其具有超过l5年的开发历史,稳定可靠,提供了视图、过程语言、规则系统、多语言接口、多版本机制等诸多高级功能 其Windows版本还提供窗口化的管理工具pgAdmin III。对PostgreSQL的改造主要是为元组加入“修改时戳”系统保留隐藏属性、增加删除元组记录、以规则系统配合同步组件实现对视图的修改 在中央数据库中,还要建立用户信息表、同步集定义表等系统表。4 系统测试及技术特点我们组建了一个模拟大型连

16、锁超市管理的测试系统,在中央数据库部署产品库存及购销信息,在移动设备上按采购员、销售员、财会员分别对应不同的同步集。用户在移动设备上处理各自业务并通过同步服务器与中央数据库进行同步。经测试表明,系统运行稳定。数据一致性在并发条件下保持,冲突消解和多回滚方案提高了可用性,图形界面和简易的操作方便了移动用户,优化技术有效降低服务器负载。与同类系统如svbase Anywhere Studio、人大金仓“小金灵”的已知技术相比,该系统具有大部分主要功能,包括数据同步和冲突处理、数据库备份和故障处理、图形化界面、系统管理。由于采用自由开源软件,降低了开发和维护成本及准入门槛,并可根据应用需求裁剪和定制系统:基于成熟软件和主流技术使得系统性能和可靠性得到保障:以层次封装和规范接口设计,支持多平台移植和异构。此外,项目成果也为国产嵌入式操作系统HoDen提供了移动数据库及其应用的支持

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号