论文导读::随着3G网络的覆盖,Pocket PC在智能化小型数据库领域应用越来越多。文中分析了SQL Server Mobile合并复制的模型,介绍了开发环境的搭建,在此基本上实现了.Net Compact FrameWork下合并复制的C#代码,并测试了合并复制代码,测试结果显示Pocket PC与远程SQL Server 2005保持数据同步。
论文关键词:PocketPC,合并复制,订阅,同步
0 前言
Pocket PC(简称PPC)是基于微软的Windows Mobile操作系统的一种PDA掌上电脑。PocketPC是一种手持设备,可帮助存储并检索电子邮件、联系人和约会信息,播放多媒体文件,玩赏电子游戏,交换文本消息,浏览Web内容等,能够与台式机实现信息交换和数据同步。所以Pocket PC可以作为移动数据中心,采取数据后,通过GPRS网络或者WIFI与远程数据库连接,自动与远程数据库保持数据同步,可以确保数据的可靠性和实时性。与其他操作系统的PDA相比,PPC所公认的优势在于:1.友好的用户界面和更佳的易用性;2.与PC平台有极佳的兼容性;3.更广泛的软件及硬件扩展支持订阅,制造Pocket PC的著名厂家有惠普、戴尔、华硕电脑等。所以Pocket PC在货物销售与后勤分配、工业部门、生产企业、材料流通和服务等领域得到了快速的普及和推广。
1 SQL ServerMobile合并复制
合并复制技术十分适合嵌入式数据库与远程SQL Server 数据库之间的数据同步,它可以在嵌入式设备与数据库服务器之间交换数据,并且可以解决数据冲突机制。Pocket PC使用的是嵌入式SQL Server Mobile数据库,既可以单独在设备端上用于存储和管理数据,也可以在远程数据库连接的情况下,实现数据同步中国论文网。SQL Server Mobile设备端环境主要包括数据库引擎、数据库文件以及SQL Mobile Agent(设备端代理)。同步时,服务器端环境是运行SQL Server和IIS的环境,驻留在IIS服务器上的SQLServer Mobile Edition的服务器代理处理来自设备中Client Agent发出的HTTP请求,通过合并复制技术与SQL Server进行通信,保持设备端和服务器端同步。它们之间的关系如图1所示:
2开发环境搭建
(1)操作系统的选择和IIS组件的安装
操作系统可以选择windowsXP、windows 2K、windows 2003均可,本文选择的是windows XP,默认是不安装IIS的,可以打开“控制面板”,双击“添加或删除程序”,在“windows组件中”选择IIS,开始安装IIS。
(2)数据库和开发语言的选择
我们可以选择SQL Server 2000或者SQL Server 2005,这里推荐选择后者,因为SQL Server 2005能更好地支持数据的复制和订阅。在安装SQL Server2005时,注意安装结束时,启动服务“SQLServer Agent”,否则不支持数据的复制和订阅。编程环境,我们选择VS 2005,选择C#语言,同时要求先安装IIS再安装VS2005。
3实现过程
3.1 SQL ServerMobile数据库中的合并复制的工作流原理:
(1)服务器端中实施SQL Server 2005数据库发布;
(2)在设备端通过SQL Server Mobile的Replication的编程接口创建针对(Publication)数据库的设备端数据库订阅;
(3)在设备端上订阅数据库成功之后,可以对SQL Server Mobile数据库进行修改操作;
(4)在PocketPC支持GPRS或WIFI连接情况下订阅,设备端数据库与服务器数据库之间可以进行数据同步操作。
3.2数据库发布和订阅的设定
在数据库服务器端SQL Server 2005中,在对象资源管理器中“右击”复制,新建一个发布,我们把这个发布命名为“MyPublication”。创建完成后,测试一下MyPublication的快照代理状态,如果成功,说明创建的发布是正确的。
创建成功后,可以配置IIS实现Web远程同步。Pocket PC的SQL Server Mobile 客户端代理需要通过网络向远程服务器端发出HTTP请求,这时可以使用IIS来实现同步。
实现Web远程同步后,可以创建SQL Server Mobile数据库订阅。连接到“SQL Server Mobile”,向SQL Server 2005 数据库创建订阅,创建的订阅命名为“MySubcription”。
3.3合并复制的实现
实现中,使用了.net Compact FrameWork提供的SqlCeReplication类中国论文网。设置 SqlCeReplication 对象的多个属性,然后调用 Synchronize 方法,可以保持Pocket PC和远程数据库同步。首先要求实例化一个SqlCeReplication对象repl,repl的InternetUrl属性指定在连接到SQL Server Mobile Server Agent 时使用的URL,用于定义设备端代理通过网络向服务器代理发出HTTP请求,以实现Web同步的URL,本文中使用http://机器名/用户名/sqlcesa30.dll;Publisher属性,指定 SQL Server 发行者的名称,发行者是发布所在的、运行着 SQL Server 2005的计算机,文中使用的是在SQL Server 2005中建立的发布“MyPublication”;Subscriber 属性指定订户的名称,文中使用的是在SQL Server 2005中建立的订阅“MySubcription”。同步的代码如下:
{
repl = new SqlCeReplication();
repl.InternetUrl = InternetUrl;
repl.Publisher = Publisher;
repl.PublisherDatabase = PublisherDatabase;
repl.Publication = Publication;
repl.PublisherSecurityMode = SecurityType.NTAuthentication;
repl.SubscriberConnectionString = ConnectionString;
repl.Subscriber = Subscriber;
if (!File.Exists(AppPath))
{
repl.AddSubscription(AddOption.CreateDatabase);
}
//Synchronize with SQL Server 2005
repl.Synchronize();
}
catch (SqlCeException e)
{
MessageBox.Show(e.ToString());
}
finally
{
repl.Dispose();
}
上述代码中,通过调用Synchronize方法,在SQL Server Mobile 订阅和SQL Server 2005发行者之间调用合并复制订阅,从而保持Pocket PC和远程数据库同步。
5 测试
 测试环境的选择:测试时Pocket PC选择三星i900,该款PPC带有WIFI功能,可以通过802.11协议连接无线路由器,无线路由器再连接到SQL Server 2005服务器端。测试时,待i900与PC机同步后,把移动数据库文件UserDB.sdf拷贝到i900的MyDocument路径下,再把上面代码对应的工程文件编译后生成的可执行文件拷贝到i900的任意文件夹下,运行后,在i900上修改数据,单击同步后,如图2所示。远程数据库服务器中的数据是否被更新?打开远程数据库,看看结果,如图3所示,数据被更新。正好说明使用合并复制技术使i900和远程的SQL Server 2005同步成功。
[参考文献]
[1]彭智勇.基于Pocket PC的便携式故障诊断专家系统设计[J].装甲兵工程学院学报.Feb 2008 Vol 22 No 1.
[2]田东风.W indows CE应用程序设计[M].北京:机械工业出版社, 2003.
[3]范盛荣.W indowsMobile应用程序开发实践[M].北京:科学出版社, 2006.
[4]廖中平,沈云中.测量机器人与Pocket PC无线通信设计与实现[J]. 辽宁工程技术大学学报, 2007,(04) .
[5]张志雄,胡飞.嵌入式移动数据库技术分析研究[J]. 微处理机, 2008,(03)
|