智能客户端离线处理的分析与实现

2014-12-31 01:25邢永峰
电脑知识与技术 2014年35期

邢永峰

摘要:随着互联网的飞速发展和软件信息化进程的不断加深,企业与客户对于软件的性能上的快速和内容上的丰富以及离线处理功能要求也不断提高,因此为了满足市场需求,智能客户端诞生。首先本文就概念与特性两个方面对智能客户端进行介绍,其次解释其脱机功能的实现流程,最后介绍应用offline application block技术对智能客户端的实现。该文着重介绍基于.net平台开发智能客户端的详细设计与实现。

关键词:智能客户端;离线处理 ;offline application block

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)35-8531-02

Analysis and Implementation of the Smart Client Offline Processing

XING Yong-feng

(Nanyang Institute of Technology, Nanyang 473000,China)

Abstract: With the rapid development of Internet software and deepening the process of information, business and customers for fast and rich content as well as offline processing on the performance of the software requirements are also rising, so in order to meet market demand, Smart Client born. In this paper, the concept and characteristics of the first two aspects of the smart client presentation, followed by explanation of the process to achieve its offline capabilities, and finally describes the application offline application block technology for smart client. This article focuses on the detailed design and implementation of .net platform based on smart client.

Key words: Smart client;offline processing; offline application block

随着互联网的飞速发展和软件信息化进程的不断加深,软件设计的架构也从客户端/服务器(C/S)模型发展到浏览器/服务器(B/S)模型。世间没有十全十美的事物,同样此两个架构模型在各自的领域都有各自的优势,但是在某些需求方面存在很大的不足。社会生活不断发展,此两种架构模型对于新出现的市场需求无论在功能还是在性能方面都无法全面满足,对于企业用户对软件性能上的快速需求以及内容上的丰富要求以及无法联网情况下的离线处理能力的要求不断提高,智能客户端秉承这一使命诞生。在市场需求方面,信息化对社会生活的影响越来越深入,在各行各业软件普及的程度逐渐广泛,同时对于offline的要求也日益增强,比如超市收银、保险推销等行业的工作人员都要求在离线的状态下使用客户端。这样对客户端的要求比较高,既要拥有客户端/服务器(C/S)模型PC应用程序的功能,又需要浏览器/服务器(B/S)模型的快捷便利,但是单独应用此两种模型无法实现,于是微软针对此类情况提出了面向客户端的智能客户端的理念,应用offline/online无缝快速切换的方案,解决了此市场需求问题。同时基于Web Services的特性更使得智能客户端的整合能力异常强大,被认为是未来企业应用集成最有潜力的架构模式。

智能客户端具有智能选择处理功能,能够在无法联网的状态下进行离线处理数据,因此要满足离线工作的需求必须能够对处理的数据进行暂时缓存或长期存储,该文对此的解决方式是:当需要对数据进行暂存时,利用DataSet(ADO.NET)缓存数据;当长时间无法联网则将数据以XML文件的形式存储在磁盘中,XML存储形式的优势在于.NET在DataSet中提供了很多处理XML文件的方法,方便使用。这两种方式对于数据的缓存需求都需要DataSet来实现。在具体的项目开发过程中,客户端可以在启动开始请求下载数据,或者其它使用时自定义事件触发下载。

1 离线脱机处理

客户端的参考数据使用DataSet对象进行缓存,它是一个“键—值”对的结构,其中包括Key、Value、Priority等属性,它的结构特点使得应用程序可以很方便地对其进行存取与管理。本客户端拥有online和offline两种模式。客户端的offline和online的状态确定是由两方面来确定的:一是用户手动切换完成,二是由网络状况以及服务管理器决定,此二种方式是互相补充的,其控制方式利用服务侦测模块和网络模块实现。如图1为智能客户端offline状态的运行方式。

1.1 online模式向offline模式转换

当智能客户端处于online工作状态时,加入用户手动由online状态切换到offline状态或者由于网络状况或服务器状态的因素必须进行脱机处理,此时智能客户端需要从online模式转换到offline模式。转换流程如图2所示。

现在把操作朋友信息作为例子解释下智能客户端有online模式向offline模式切换,首先,客户端在online状态下运行,由于网络的缘故,现需要转换到offline状态,程序把操作的数据缓存到本地(DsFriend中),然后进行离线操作,在离线模式下工作时,如果有对缓存数据(DsFriend)的更改,就把受影响的DataRow被标记为“Changed”,与此同时,将一个全局m_IsOnLine对象设置为false,以防止以后应用程序将更改发送给Web 服务。当推出客户端时,数据已经更改,则通过XML文件进行缓存DataRow数据,接着推出程序,若数据没有进行更改,则直接退出。

1.2 offline模式向online模式转换

在网络状态连接的情况下,用户需要进行online模式工作时,客户端能够处于offline状态下更改的数据重新写入数据库,流程如图3所示。

在此处同样用上述的例子说明客户端由offline模式向online模式转换。当网络和服务侦测可以online操作时(m_IsOnLine=true),系统把在offline期间修改的数据数数据库同步,如果不存在数据冲突则直接同步成功;如果数据存在问题,则客户端把有问题的数据信息显示给客户,由客户来决定是否对问题数据进行处理,在处理完所有问题数据后,再进行同步数据库,与此同时删除磁盘中缓存的数据,接着客户端转为online模式。

2 小结

智能客户端的offline状态转换,是有网络侦测模块检查完网络状况后决定的。当网络状况无拥挤现象,此时能够很好的与服务器进行数据交换,当网络状况发生拥挤或断开时,此时需要对数据进行本地磁盘缓存, 当进行缓存时利用DataSet对暂时性数据进行缓存,长期缓存时磁盘保存数据的形式是XML形式,但此两种形式的数据都需要通过DataSet进行实现。在对程序调试的过程中,客户端在offline状态下可以运行正常,并且在offline状态下客户端自身的数据修改、同步服务器的数据以及在处理问题数据都能够运行良好,满足预定的要求。

参考文献:

[1] (美)Walther S.ASP.NET技术内幕[M].北京:机械工业出版社,2002.

[2] Smart Client Definition http://msdn.microsoft.com/smartclient/.

[3] 周宏艳.浅谈智能客户端及其应用[J].沈阳航空工业学院学报,2005(6).

[4] Smart Client Offline Application Block,http://msdn.microsoft.com/library/default.asp.