现在的位置: 首页 > 综合 > 正文

Smart Client学习(五):智能客户端中的离线数据访问

2013年04月06日 ⁄ 综合 ⁄ 共 1497字 ⁄ 字号 评论关闭

离线数据访问渐渐开始流行,由于Microsoft 的数据访问技术正趋向于广泛使用离线数据,因此了解如何使用离线数据对您未来的开发工作是至关重要的.本文没有具体摘录实现的方法,只是记录下了一些基本理论.

一 离线用户需求与技术挑战

1.用户需求

当连接到网络或者断开网络连接时,不影响用户使用

只能同步特定用户的数据

初始化数据的部署要与应用程序的部署类似

只同步发生了变化的数据

2.技术挑战

离线数据可能存在冲突

数据大纲可能发生变化

不可靠或者速度较慢的网络连接

同步时的数据集中问题

为离线用户流水号的分发

3.结构图

离线数据保存在客户端的数据缓存中

二 数据通讯策略

1.数据传输策略

1.1面向对象:例如DataSet

–通过方法调用或者属性来传递数据对象 -数据集或者自定义业务实体

1.2面向服务:例如WebService

–Invoke操作,传递或者接收参数 –传递包含数据的消息

1.3面向数据:

–执行查询/复制/队列

2.ADO.NET

2.1采用偶尔连接策略:只有在获取和更新数据时才连接到数据库

2.2数据装载到数据集中

2.3可以将数据集保存在本地客户端:隔离存储空间

2.4支持冲突检测

3.Enterprise Services (COM+) & (MSMQ)Microsoft Message Queuing Services

3.1企业级应用,实现客户端与服务器异步调用

3.2MSMQ采用队列保存调用过程,支持自动重试

3.3采用COM组件技术

4.数据库合并复制

SQL Server 2005

4.1 支持冲突检测的双向数据同步

4.2 支持数据过滤以便于每个用户都能够获得自己的数据

4.3 支持通过Internet同步数据的能力

4.4 在第一次同步时能够自动部署每位用户的数据子集

4.5 创建订阅和同步控制以及监视的新的API

4.6 支持数据库大纲的变化

4.7 性能和可扩展性都较Microsoft SQL Server(TM) 2000有了很大的改观

三 连接管理

1.识别与控制在线 vs 离线操作

–修改 界面 / 功能

2.识别技术

–尝试连接操作 – 错误处理:效率比较低

–WinInet API:非托管,实现起来比较复杂

–Offline Block Connection Management

–NetworkChange/NetworkInterface类:可以通过委托方式实时监控连接状态

四 客户端数据缓存

1. 内存
2. 保存数据传输对象

– 文件系统 – 隔离存储区

3. 数据库

– Microsoft SQL Server(TM) 2000 Desktop Engine (MSDE)

– SQL Server(TM) 2005 Express Edition

– SQL Server(TM) 2005 Mobile Edition

4. 消息队列

– MSMQ

– 数据库

Custom, SQL Service Broker

– Enterprise Services

五 客户端数据同步

1. 引用数据 vs. 可操作数据
2. 面向数据

–合并复制

3. 面向服务

–远程方法调用

–消息传递

4. 确认返回消息
5. 轮询

并发性问题

6. 解决并发冲突

–乐观锁于悲观锁

7. ADO.NET检测 / 异常传播

–采用乐观锁:通过ADO.NET事务的方式解决

–多数据库同步:分布式事务– Enterprise Services– "Indigo"

六 Offline Application Block

1.连接状态检测 / 控制

2.下载/上传 数据

3.队列数据请求

4.引用数据缓存

5.异步请求处理

6.加密/存储数据签名

7.提供连接检测模型,数据请求队列,数据缓存,服务代理

总结:

离线数据访问渐渐开始流行,由于Microsoft 的数据访问技术正趋向于广泛使用离线数据,因此了解如何使用离线数据对您未来的开发工作是至关重要的.

抱歉!评论已关闭.