中文摘要:
采用SQL Server CE相关技术实现了嵌入式设备的本地数据库与远程SQL Server数据库
的数据同步功能。详细介绍了该系统的方案原理以及两项关键技术:合并复制与RDA (远程数据访问) ,并给出了软件部分的具体设计与实现。
1. 1 WINCE.NET操作系统
目前基于操作系统的嵌入式设备在工业和移动产品领域
得到非常广泛的应用,常用的有
VxWorks、
uClinux等。但是
在高端嵌入式应用中微软的W INCE系统一直占据领先地位。
WINCE操作系统延伸了台式机Windows操作系统的外部特
征,在内部用嵌入式
实时操作系统的技术来实现Win32 API
的子集,以简捷、高效的完全抢占式多任务为核心,支持强大
的通讯和图形显示功能。
本文采用的嵌入式操作系统为Microsoft WindowsCE.NET
(版本4. 1) 。该系统是Windows CE 3. 0的后续产品,它
不仅是一个功能强劲的实时嵌入式多任务操作系统,而且提
供了众多非常强大的工具和丰富的编程接口和资料,借助于
完善的操作系统功能和开发工具,开发人员可以充分利用
WindowsCE.NET系统的特性来快速且高效地完成自己的应
用。相对先前版本的强大功能,
WINCE.NET进一步得到扩
充和丰富。在实时处理能力、网络通信的支持以及本文将要
介绍的
数据库等方面都有着更为优秀的性能表现。
2. 1 Replication复制及RDA技术
SQL Server CE的复制技术基于
SQL Server 2000 的合并
复制技术。我们分别对嵌入式设备与远程Server的数据进行
操作之后,只要当两者通过网络或其他媒质相连时,就可以对
两部分相应的数据整理合并。该技术基于消息机制,首先需
要远程
SQL Server根据需要对服务器上的
数据库进行发布,
之后当嵌入式设备与远程
SQL Server之间的
数据库同步时,
就可以通过IIS建立HTTP连接完成。此外复制技术中的行
列过滤也是比较有实用价值的功能,针对发布表格中不同行
或不同列进行二次发布,就可以解决各个嵌入式设备对需要
同步数据的不同要求。
合并复制一般用于较高级的数据同步,远程数据访问
(Remote data access,
RDA)则是将表格数据拖出/拖入嵌入式
设备的简便方法。当应用的目标系统不需要用到
SQL Server
CE合并复制的完整功能时(例如多客户端冲突解决等) ,
RDA技术是比较合适作为普通应用的选择。与复制技术相
比使用
RDA技术可以不在服务器
SQL Server中进行
数据库
的发布和复制配置。
RDA技术有两种应用方式:一种是应用程序提交数据操作
语言(DML) 语句,该语句被转交到服务器
SQL Server执
行,另一种是应用程序提供返回行集合的SQL 查询。结果行
集合被传送到基于W INCE的设备,并以表的形式存储,同时
选择性地跟踪应用程序所做的所有更改。当应用程序发出请
求时,更新的行被发送回服务器,并在那里应用于
SQL Server
数据库。
SQL Server CE提供了
RDA功能。通过使用相关编程接
口就可以轻松访问远程
SQL Server上的
数据库表格,将数据
存储到嵌入式本地的
数据库表格中。当应用程序对本地数据
进行修改之后,还可以对服务器相应数据表格进行升级。前
者数据从远端到本地,称之为PULL,后者对远程数据升级称
之为PUSH。
RDA另一个实用的特点就是可以在W INCE设
备本地执行SQL语句,直接对远程
SQL Server的
数据库操作。
采用
RDA的系统结构和复制技术基本完全相同,仅是服务器
端对
数据库的处理机制不同。如图3所示,服务器的Server
端代理响应客户端访问请求,直接通过
SQL Server的OLE DB
数据库供应器对
SQL Server数据库进行操作。
3 结语
本文结合从方案选择到具体代码实现的开发经验,较详
细地介绍了基于WINCE. NET操作系统及
SQL Server CE技
术的
数据库应用系统。完成的系统不仅可以在设备平台的对
数据库进行各种访问,而且可以与远程
SQL Server服务器数
据同步,轻松交换数据信息。
应用于嵌入式设备的主从式
数据库技术是今后发展的方
向,也是具有广阔应用前景的领域。紧密结合网络功能的嵌
入式
数据库技术相信在学术界、工业界、军事领域、民用部门
等各方面都将会得到进一步的发展。