• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 农林牧渔 > 正文

    基于移动计算环境的智能客户端的研究

    时间:2020-09-18 08:01:53 来源:达达文档网 本文已影响 达达文档网手机站

    摘要:频繁断连性、通信不对称性、用户数据访问模式多变性、移动终端能源有限性是移动计算环境的典型特征。如何能在如此“苛刻”的条件下保证数据访问的高效性、时效性和安全性是研究的重点。文章详细分析了智能客户端技术在移动计算环境中特点和优势,在此基础上,提出了实现智能客户端的一些关键问题及其解决方案,最后对智能客户端的安全性问题作了介绍。

    关键词:智能客户端;移动计算;智能设备;Web服务;数据集

    0 引言

    随着计算机技术、无线通信技术、移动终端技术的发展,移动计算技术作为一种新型的技术应运而生。移动计算技术给人们对信息的访问带来了极大的方便。人们可以利用移动终端设备方便地从信息源访问所需信息。移动计算环境中用户规模庞大,通信的上下行链路不对称,通信链路的频繁断连性等给移动计算环境中数据的组织、分发带来了极大的挑战。如何能在此“苛刻”的环境中提高数据访问效率、降低数据的访问代价是一个重要的研究课题。.NET平台上的智能客户端技术(smart Client),充分利用现有各种客户端开发技术的优点,使得移动应用的开发更为高效、便捷。本文论述了智能客户端技术在移动计算环境中的优势,并具体给出了一些关键问题的解决方案,最后对智能客户端的安全问题做了介绍。

    1 移动计算环境下面临的问题

    (1)移动环境下网络的自适应

    无线网络环境中,网络通断的处理是移动计算系统必须要解决的问题。对于一般网络断开的情形,经常被当成一种网络错误来处理,导致系统的异常中止。而在无线状态下,断连应该当成一种特定的网络通信状态来处理,短暂的网络中断不应该终止,系统应仍能按照业务逻辑使用本地保存的数据进行计算,待网络重新联通后和服务器进行数据同步和计算结果的提交,实现无缝的离,在线切换。

    (2)客户端程序的部署和更新

    在移动计算平台中,客户端应用程序部署在各种移动智能设备上,由于设备的多样性,软件部署必须具备跨平台能力,即需部署方式简单,又能充分利用本地硬件资源,减少无线网络数据传输量。

    (3)客户端数据缓存

    移动计算通常需要在本地缓存数据。当无线网络连接不可用时,缓存数据提供应用程序脱机工作所需的数据,保证应用程序仍然可以正常运行。

    (4)计算数据的同步与冲突处理

    由于移动计算的需要,系统应提供本地修改数据的能力,这就要求客户端数据的更改应与服务器端数据同步。同样,服务器数据有可能被多个客户端更改,因此,服务器数据的更改也必须同步到其他客户端。在数据同步的过程中,有可能发生数据冲突,因此,必须考虑如何同步数据和处理数据冲突。

    (5)信息的多样性处理

    为了在各种无线终端上提供计算和协作能力,要求系统的信息能够被多态显示,为此系统要为计算数据提供多态性的结构化存储能力,使系统能够在特定的终端下提供恰当的信息内容和显示视图。

    (6)移动终端的人机界面

    移动计算系统需要一个更友好的人机界面。大量无线终端的出现,使得传统的人机界面、交互界面不能满足移动用户的需要;另外,移动便携设备本身的性能也受到了很多限制。在这样的情况下,图形用户界面技术也受到了影响,因此,需要针对无线设备采用适合的用户界面技术,使移动设备人机界面更加灵活,提供更好的用户体验。

    2 智能客户端设计特征

    (1)充分利用本地资源

    智能客户端(smart Client)应用程序能充分利用本地资源,例如,用于存储、处理或数据捕获的硬件(例如,闪存、CPU或者摄像头),能充分发挥客户端的优势,减轻服务器的负担,最大化地利用本地资源,响应速度快。

    (2)具备离线的数据存储能力

    无论是否连接到Intranet/Internet,智能客户端应用程序都可以正常工作。在没有网络连接或网络连接时断时续时,智能客户端能够利用本地缓存和处理进行操作。在重新连接到服务器后,智能客户端将按照应用程序逻辑允许的方式智能地更新数据。Web服务使智能客户端能够利用行业标准(例如。XML,HTTP和SOAP)与任何类型的远程系统交换信息。

    (3)智能安装和更新

    智能客户端的部署模型允许将解决方案存储到企业网络或受信任的服务器上,当授权用户点击相应的链接时将自动下载相关代码并安装。新版本的应用程序发布到服务器上后,当用户在客户机上再次使用该应用程序时会自动下载并更新应用程序。这种方式使用户能像对于Web应用程序一样简单方便地进行部署和更新,解决了传统C/S架构部署更新困难的问题。

    (4)客户端设备灵活性

    智能客户端可以部署在PC、便携式电脑、Tablet PC或其他智能设备上。能够感知目标设备的功能和使用环境,并定制应用程序,提供最适合的功能。.NET框架和NET框架压缩版(.NET Compact Framework)一起提供了一个用来生成智能客户端应用程序的通用平台。

    根据智能客户端应用程序所面向的平台,可以将这些应用程序划分为三大类:①Windows智能客户端应用程序;②Office智能客户端应用程序;③移动智能客户端应用程序。

    3 智能客户端在移动计算环境中关键技术的实现

    3.1 网络状态的检测

    为了动态地监测网络连接状况,对于不同的连接状况,客户端可以采取不同的工作方式,在线或离线工作,在具体的设计中,可以使用Net Framework 2.0中的NetworkChange类和NetworkInterface类来实现网络连接的监测。Network-Change类可以使应用程序在网络接口(也称为网卡或网络适配器)的Internet协议(IP)地址更改时收到通知。NetworkIn-terface类提供网络接口的配置和统计信息。相关代码可以查阅文献[3]。

    3.2 客户端数据的缓存

    智能客户端通常使用数据集(Dataset)处理数据,因此,可以将数据集序列化到本地文件。数据集提供ReadXML和Wri—teXML方法,可以将数据集中的数据写入XML文件中。但是,XML文件中的数据都是明文,没有安全性可言,在需要对本地数据进行保护的场合并不适用。另外,XML文件仅仅保存了数据,而对于数据集的一些状态(例如DataRow.RowState)无法保存,因此,当客户端从本地文件载入数据到数据集中,在与服务器进行数据同步时,无法通过DataSet.GetChanges方法获得客户端对数据集所做过的修改。

    因此,有必要实现一个专门的序列化类(serializationHelper)和数据保护类(Data Protection)来实现客户端数据集的

    序列化及数据的保护。具体的代码实现可以查阅文献[4]。

    3.3 数据同步策略

    当客户端数据或者服务器数据发生变化时,应该及时进行同步,保证客户端和服务器数据的一致。

    智能客户端对本地数据进行更改后,本地数据集(Cli-ent-DataSet)调用GetChanges方法获得已更改的数据(Cli—entChangedDataSet),然后将已更改的数据和最后同步时间(LastSyncDate)通过Web服务提交给服务器。服务器将客户端传来的已更改数据合并到数据库,同时,服务器根据客户端的最后同步时间,在服务器上查找在该时间之后服务器已经更新了的数据,并将这些数据(Server-ChangedDataSet)传回客户端。客户端获得服务器传回的更新数据后,将这此数据合并到客户端的数据集中。同时,更新最后同步时间。图l对客户端和服务器的数据同步做了简单的示意。

    3.4 数据的冲突处理策略

    在更改客户端数据并与服务器进行同步时,由于服务器上保存的数据可能发生改变,会导致数据冲突。因此,需要采用某种机制来确保数据冲突能够得到适当的处理,并且最后得到的数据是一致和正确的。在NET框架中,可以使用数据集(DataSet)和适配器(DataAdapter)来实现开放式并发处理。

    当适配器调用Update方法更新数据时,会触发RowUpdated事件,通过对事件参数状态(e.Status)的检查,可以检测到当前是否发生了数据冲突,对冲突数据作相应的处理。具体的数据冲突处理过程如下所示:

    假设数据集中有一张Customer表和Conflict表。

    (1)客户端与服务器进行数据同步。当服务器得到从客户端传来的数据后,调用Update方法进行数据更新,如果发生数据冲突,则在触发的RowUpdated事件中,可以检测到事件参数状态:e.Status为UpdateStatus.ErrorsOccurred。此时,在事件处理函数中对冲突数据进行处理:首先将发生冲突的服务器端的customer数据添加到返回给客户端数据集的Customer表中。再将发生冲突的客户端customer数据添加到返回给客户端数据集的Conflict表中。然后,将e.Status置为UpdateStatus.Continue,继续更新数据,直到所有数据更新完毕后。将数据集返回给客户端。

    (2)当客户端得到从服务器返回的数据集后,检查数据集中的Conflict表中有无冲突数据,如果有,表示有数据冲突发生,则从Customer表和Conflict表中分别取出发生冲突的服务器端的和客户端的customer数据呈现给用户,让用户进行选择,是保留服务器端的数据还是保留客户端的数据。之后根据用户的选择进行数据处理。

    (3)如果用户选择保留服务器端的数据,则清除客户端的冲突数据,并将服务器端的数据合并到客户端数据集中。如果用户选择保留客户端的数据,则清除服务器端的冲突数据,并将客户端的冲突数据重新合井到客户端数据集中,等待下次的数据同步,再将客户端的数据重新同步到服务器上。

    4 安全性问题

    安全性问题是部署程序的热点。智能客户端更新时从网络上下载装配件,如果一个黑客说服或者诱使用户下载恶意代码,而该用户的用户账号具有很高的权限,那系统就对危害门户洞开了。为了提高智能客户端的安全性,除了传统的身份验证和授权等方式之外,在NET平台上引入了代码访问安全这一机制。

    CAS(code Access Security,代码访问安全),是指CLR强制执行的为装配件指定基于属性的可信度等级,例如数字证书、源站点、URL等,.NET Framework只允许已知的或受信的.源代码执行。可以使用NET Framework Configuration工具,将程序集的站点添加到可信任站点清单中,并且提高信任站点的安全级别,或者选择运行库安全策略提高程序集的信任级别,或者发布安全策略级别部署包,赋予程序集运行所需要的最低权限,杜绝超越权限的代码执行,从而保护系统不受到恶意攻击。这种安全策略也称为“在最小权限下运行”策略。

    5 结束语

    本文针对移动计算环境所面临的特殊情况,提出了智能客户端技术在移动计算中实现的一些关键问题,并给出了相应的解决方法。目前,智能客户端技术在智能设备上应用的研究在全球范围内仍处于起步阶段,诸多智能客户端思想在智能设备上的解决方案还没有达到业界共识。但随着.NET技术的进一步成熟和Web技术的更广泛应用,智能客户端技术在移动计算等智能设备应用上必将有更广泛的前景。

    相关热词搜索: 客户端 环境 智能 计算 研究

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网