项目概述
本项目是为XXX移动项目拟订的公共信息同步方案,用于同步各种相关的配置信息,如单位名称、xx种类、产品种类等信息。这些信息需要及时保证与中心数据库保持一致。这些信息的特点是:
1)数据量大,主要是单位信息;
2)不经常发生变更;
3)即使发生变更,变更数据量小。
项目对数据的要求主要为:
1) 使设备端的数据库中的配置信息与中心数据库尽量保持一致;
2) 当Windows Mobile设备通过GPRS连接网络时,自动更新配置信息;
3) 同步过程中,只更新与中心数据库不同的数据;
4) 项目的设备数量较多,需要保证并发访问的效率。
基于以上的要求,我们选择了以下的技术架构来完成项目要求:
技术架构
根据技术项目的具体要求,我们认为采用SQL Sever Mobile Edition(简称SQL Mobile)中的Merge Replication作为数据同步方式,是一个兼顾效率与成本的选择。
选择Merge Replication的理由如下:
1) 作为微软官方提供的移动设备数据同步方式,SQL Sever、SQL Mobile和.NET Compact Framework中都提供了较好的支持;
2) Merge Replication适应间断式网络,在失去网络连接时会正常工作,当网络再次连接时会自动访问服务器,检查服务器数据库中的记录更新;
3) 每次更新只会将数据库中的修改进行交换,而不会交换未变换文件;
4) 有较好的容错机制,当同步过程中网络中断或发生其他错误,系统会自动记录失败,当下次网络连接时,会再次尝试进行同步;
5) 数据同步可以自动进行,不需要认为控制,当每次网络连接时,或者一定时间间隔之后,会自动进行数据同步,我们也可以手工进行数据同步。
基于以上理由,我们选择Merge Replication作为公共数据的同步方式。数据同步的实现架构如下:
1) 数据库:可选择SQL Sever 2000或SQL Sever 2005(推荐使用SQL Server 2005)
2) Web服务器:运行于Internet中的网络服务器,安装IIS 5.0或以上版本;需要安装SQL Mobile 2005 Sever Tools。Web服务器能够访问数据库服务器,两者可以运行于一台服务器中。Web服务器需要申请域名,也可以通过IP地址访问,但后期维护成本加大
3) Windows Mobile设备:Pocket PC 2003或Windows Mobile 5.0设备,需要可以通过GPRS访问Web服务器,因为使用HTTP协议,所以可以穿越防火墙;需要安装SQL Mobile数据库,包括数据库引擎、SQL Mobile Client Agent。
系统架构如下图:
我们面临的主要技术困难:
1) 初始化数据量大
尽管需要同步的数据量较小,但是初始化时数据量很大,会超过10M数据。通过GPRS进行初始化,下载大量数据显然是不合适的;
2) 并发访问量大
一期项目设备超过一万台,与一般Web网站的并发访问不同,我们必须假设存在大量设备同时进行同步的可能,所以我们至少应该保证1000台设备能够同时数据同步成功(并非并发访问数达到1000)
3) 数据安全性
因为所涉及的是公共数据,安全要求相对较低,为了数据同步的效率,可以采用非加密的HTTP连接,比HTTPS连接的效率高40%左右
4) 数据完整性
我们必须保证数据完整性,所以我们要在程序中进行一定控制。
我们对这些问题的一些应对构想:
1) 对于初始化数据:我们可以考虑在PC平台上首先进行数据库的初始化,然后将初始化好的数据库加入到发布工程里去。由于Merge Replication在同步过程中创建了一些自定义信息,手工创建的SQL Mobile数据库不能被Merge Replication支持。所以我们只能在PC上编写一个支持Merge Replication的应用程序。这是目前的一个难点。
2) 对于并发访问的问题:我们可以通过测试软件来查看服务器是否有数据瓶颈存在。编写一个运行于Windows Mobile或PC上的测试程序,同时使用多个线程并发数据同步,模拟大量用户访问。
3) 最好将配置信息独立保存在一个单独的数据库文件中,方便在同步失败的情况下不影响其他程序运行。其他程序在初始化时将配置信息读入内存,不保持与配置信息数据库的连接。
4) 测试在网络重新连接的情况下,Merge Replication是否会自动启动。如果不能自动启动,还需要考虑使用同步程序检测网络情况的实现,以及系统启动时,同步程序是否能够自动启动的问题。
针对这些问题及构思,我们提供的解决方案将包括以下软件及文档:
软件描述
1.软件部分
1)数据初始化程序
主要功能:
1)将提供的文本文件数据插入到SQL Sever数据库中,格式见定长单表记录格式说明.doc的说明;文本文件格式以2006年x月x日提供的“客户端本地存储数据”格式为准;
2)创建SQL Mobile数据库文件,并将导入到SQL Sever数据库中的数据及表结构同步到该数据库文件(.sdf文件)中
运行环境:PC机,可以连接SQL Sever数据库,提供原始数据的文本文件,需要.NET Framework 2.0支持
2)设备数据同步程序
主要功能:
1)管理Windows Mobile设备上的数据同步
2)设置数据同步的配置
3)记录并管理数据同步的日志
运行环境:Windows Mobile设备,安装SQL Mobile数据库,需要.NET Compact Framework 2.0支持,可以通过GPRS连接WEB服务器
3)并发访问测试程序
主要功能:
1)测试Web服务器在大量并发连接的情况下是否正常工作;
2)提供1-1000个线程同时进行数据同步;
3)可以同时在多台PC及设备上运行
运行环境:PC或Windows Mobile设备,安装SQL Mobile数据库,需要.NET Compact Framework 2.0支持,可以通过HTTP连接WEB服务器
4)源代码
上述程序的源代码
5)SQL Sever表结构
提供构建SQL Sever表的查询语句文件
2.文档部分
1)软件使用文档
介绍上述软件如何使用的说明文档
2)SQL Sever配置说明文档
其中包括SQL Sever配置Merge Replication的说明,和如何在IIS中配置SQL Mobile Sever Tools的说明
3.其他部分
培训
提供一场针对开发人员及网络管理员的技术培训,时间1.5小时。主要内容包括:SQL Mobile数据同步的基本原理,Merge Replication的概念,SQL Sever配置,SQL Mobile Sever Tools配置,Windows Mobile数据同步程序开发等。
技术支持
提供与Merge Replication相关的技术支持,直至数据同步项目能够正常运行为止。
4.提供协助
为了项目的正常进行,需要协助的内容包括:
1) 提供数据库服务器,SQL Sever 2000或SQL Sever 2005
2) 提供Web服务器,运行IIS 5.0或以上版本,和SQL Mobile Sever Tools。最好有固定域名。Web服务器可以与SQL Sever运行于一台服务器中
3) 提供可以运行初始化程序的PC机,安装有.NET Framework 2.0,可以连接SQL Sever服务器。
4) 提供必要的测试,如果测试出的问题与具体设备相关,需要提供测试样机及必要的软件、网络连接支持等。
项目交付
项目周期为三周:
第一阶段:
成果:交付1)数据初始化程序;2)SQL Sever配置说明文档;3)SQL Sever表结构
目标:可以配置SQL Sever及Web服务器的实验环境;可以使用数据初始化程序来创建SQL Mobile数据库文件(sdf文件)
时间:一周
第二阶段:
成果:交付1)设备数据同步程序
要求:搭建完成SQL Sever及Web服务器的实验环境(最好是运行于公网上的服务器)
目标:测试设备数据同步程序在Windows Mobile设备上运行,并修改BUG
时间:一周
第三阶段:
成果:交付1)并发访问测试程序;2)软件使用文档;3)培训;4)技术支持
要求:完成对设备数据同步程序的测试,搭建完成SQL Sever及Web服务器的公网实验环境
目标:1)在实际的网络情况下,使用PC和Windows Mobile设备对Web服务器和SQL Sever服务器在大量并发数据访问情况进行效果评估,以确定整个数据同步系统是否可以适应实际要求。
2)完成对技术人员的培训
时间:一周
注:要求是甲方需要提供的协助,如果在规定时间无法达到要求,则项目时间顺延。
项目报价
软件、文档开发费用 xxx
培训、技术支持费用 xxx
总计 ¥ xxx
注:确认项目方案,签订合同后,甲方付合同款30%
软件确认完成后,甲方付清剩余合同款70%,乙方提供项目所有的源代码及开发文档
查看本文来源