超市收银系统(流程图+摘要+任务书+开题报告+ER图+源程序) 第11页

超市收银系统(流程图+摘要+任务书+开题报告+ER图+源程序) 第11页
5.1智能客户端架构中离线应用技术的研究
智能客户端应用程序具有显著的优点,但是同时也产生了一些新的难题:客户端可以在离线与在线两种形式下正常工作,需要应用程序掌握和控制网络连接的状态;通过在客户端上缓存数据,可以显著改善应用程序的性能和可用性,但需要确定缓存数据的方式,还必须确保适时地刷新数据,减少使用陈旧数据造成的影响,因为应用程序分布得更为广泛,并且可以脱机操作,许多用户可以访问和使用相同的数据,所以应用程序必须能够处理数据同步时出现的数据冲突或一致问题。这几点问题是实现智能客户离线应用的关键技术,需要在设计过程中予以关注并采取适当方法解决。
Offline Application Block是根据.NET框架封装的智能客户端应用模块,以帮助用户在实现脱机工作和数据缓存管理,从而使开发者简单的实现智能客户端程序。
Offline Application Block可以提供具有脱机功能的智能客户端应用程序所需的基本功能。其基本功能包括:
1.检测网络连接是否存在。
2.当连接状态变更时通知所有已注册的组件。
3.下载并缓存参考数据,以便在网络连接不可用时允许应用程序正常工作。
4.当应用程序脱机时,在本地存储消息数据。
5.当网络连接变为可用时,将消息数据与服务器进行同步。
以上五个特征使得Offline Application Block具备了基本的支持离线应用程序开发的功能,但是它的各种功能支持的策略不够完善,对于系统,在数据一致性,数据并发还存在一定的问题,需要进一步完善,以便适合收银系统的应用。
在VisualStudio2008中,可以将表单和数据控件连接到中间层对象,使用分层设计,迅速而高效地创建数据驱动的应用程序。Binding Navigator控件可实现在一个绑定数据源记录中进行导航,如图5.12所示。这个Binding Navigator控件有一个类似于VCR的用户接口,它仅负责从数据源选择一个特定的一记录,并使之可应用于一个通用的编程接口。在WindowsForm2.0中,大多数控件不直接绑定到一个集合对象,而是使用一个中间对象绑定源,该绑定源被绑定到一个典型的可枚举的数据源对象上。
绑定源组件设计目的主要是为了简化表单上的控件和绑定数据之间的绑定。另外,它还提供了许多其它类型的服务(如当前状态管理,改变通知,过滤等)。一个绑定源组件其实是在用户接口元素和后端数据之间添加了一个间接层,如图5.1所示。需要把该绑定源组件连接到一个物理数据源,然后把表单上的控件绑定到该绑定源。任何与数据源相关的数据交互都是通过这个绑定源实现的。.NET框架2.0中的绑定源组件是一个派生自类Binding Source的类的实例。Binding Source类负责包装一个数据源,并通过它自己的对象模型来暴露该数据源。Binding Source对象的设计目的是既用来管理简单的数据绑定,也应用于复杂的数据绑定场所。为了把数据添加到Windows应用程序,首先要把一个Binding Source组件拖动到表单中。然后,设置该组件的Data Source属性。存在许多可用的数据源,包括数组、集合和定制类型列表。典型情况下,列表都是在集合的基础上扩展而成的,实现了下列接口:IBinding List,ITyped List,IList Source。
 图5.1绑定源组件运行示意图
5.2系统数据安全
在设计收银系统是,尽量避免了在客户端存储敏感数据,对于必须在客户端保存的敏感数据,采用了加密的方法,确保其安全性。客户端和服务器执行加密和解密操作,同时也通过Web Service来消除传统的应用程序诸如防火墙和HTTP的障碍。
由于智能客户端应用程序在本质上是分布式的,为确保数据的安全性,避免在客户端存储敏感数据,但智能客户端是支持偶尔连接的,所以有些敏感数据需要在本地保存。对于这些本地保存的敏感数据,应对其进行加密,确保数据不能以明文形式获得,在网络传递中,对于网络中数据的传递也进行了加密,在服务器端,由于某些重要数据的安全性,系统进行了一定的加密。
客户端和服务器端都要获得彼此的公钥,有两个交换方法:一个是通过收件手动交换,这种方法用在S/MIME和PGP中。另外一个方法是通过一系列的握手进行信息交换。如SSL和IP SEC都是通过一系列的握手进行信息交换的。
本系统中用户名和密码的组合,是存储数据的加密哈希值,而不是以明文的形式存储数据本身。发送者对对话密钥和传送的信息经过HASH加密获得一个HASH值,这个值提供了数据完整性,保证信息在传输中不被改变。发送者用私钥对HASH值进行加密,加密得到的值叫信息摘要。接收者用发送者的私钥确认信息发自发送者,产生信息摘要后,发送者用随机的对话密钥加密EMAIL信息和附件,加密提供了数据的机密性。而加密的信息和摘要被发送到接收者,在那里以加密相反的顺序解密。通过以下以下函数可以将字符串转换为哈希值。
private static string HashString(string textToHash)
{
System.Security.Cryptography.
SHA1CryptoServiceProvider sha=new System.Security.
Cryptography.SHA1CryptoServiceProvider();
byte[]byteValue=System.Text.Encoding.Unicode.
GetBytes(textToHash);
byte[]byteHash=sha.ComputeHash(byteValue);
sha.Clear();
return Convert.ToBase64String(byteHash);
}

由于智能客户端实现了异地的协同办公,所以不可避免的就会涉及到网络上的数据传输。一旦一些敏感数据或者需要保密的数据在网上丢失的话,其后果是

 << 上一页  [11] [12] [13] [14] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有