智能客户端SmartClient (一)

智能客户端的概念作为Microsoft.net平台的一个特性而被提出,其实它的很多功能在传统的应用程序中早已存在,只是.net平台从系统和语言级别对它提供了支持,使开发智能客户端应用程序更为便捷。本文将从企业应用系统的角度来讨论智能客户端应具有的功能和特性以及如何在.net平台上实现。

 

概述

 

1、当前的客户端应用程序模型比较

 

当前的客户端应用程序模型大致分为两种:C/S(客户端/服务器模型)和B/S(浏览器/服务器模型)。以企业环境为对象的软件开发人员,对于以浏览器为基础的精简型客户端 (Thin Client) 应用程序模型,以及对应的丰富型客户端 (Rich Client) 之间,究竟该如何取舍,面临了困难的世代替换。

以浏览器为基础的应用程序的优缺点:

 

·            易于安装:可以用于许多桌上型计算机,并且和客户机算计的操作平台无关。大多数计算机已经默认安装有浏览器软件(有些应用系统需要基于IE浏览器,或者需要安装java虚拟机,在此暂且忽略不及)。

·            易于部署与维护:只需要在服务器端进行部署和维护工作。

·            必须在线工作:工作效率和网络是否延迟有关。

·            不能充分利用客户端计算机的资源:只能通过有限的HTML语言来呈现用户界面,没有利用客户端计算机的计算处理能力。只能利用浏览器的打印功能来打印资料,不适用于企业的报表打印。

·            网络传输量大:由于客户端不能保存状态数据,因此必须在客户端和服务器之间传输用户界面内容以及所需的数据。

·            安全性较低。对于服务器来说可以通过防火墙软件来过滤数据,因为所有传输内容都是基于HTTP端口。但很难对数据进行加密和签名以保证在传输过程中的完整性。(HTTPS似乎并不能解决问题)

·            适合电子商务或不要求严格控制客户端的应用程序。

·            丰富型客户端应用程序的优缺点:

·            可以离线工作:前提是本地必须有缓存数据的能力,这涉及到与服务器数据同步的问题。

·            充分利用客户端计算机的资源:可以为用户提供丰富的界面元素,可以存取本机磁盘与本机应用程序接口 (API),执行速度较快。

·            网络传输量较小:只需在客户端和服务器之间传输数据。

·            安全性较高。可以方便的在客户端和服务器执行加密和解密操作,同时也可以通过Web Service来消除传统的应用程序诸如防火墙和HTTP的障碍。

·            安装、部署和维护工作较为繁琐:对客户端计算机在操作平台和附加软件上有一定的限制和要求。

·            适合企业内部应用程序。

 

目前,还有一种不是基于浏览器的瘦客户端应用程序。通过诸如Microsoft Terminal ServerCitrix SystemIndependent Computing ArchitectureMetaFrame产品这样的技术和工具把它们提供给用户。这些类型的解决方案可以让用户运用胖客户端的经验,并通过集中的软件安装和维护来进行管理,这对公司来说是很划算的。这种模式的问题是,当应用程序没有连接到应用服务器时,用户就不能用了。客户端不进行真正的处理,处理完全依赖应用程序服务器,这种情况会导致服务器性能问题,并消耗桌面计算机的CPU周期。

 

总之,相对于丰富型客户端,以浏览器为基础的模型对于信息科技 (IT) 系统管理员而言是非常棒的模型,但对于开发人员与使用者而言却有很多不足的地方。

 

Microsoft .NET Framework 将满足这三方的需求。它的智能型客户端应用程序模型结合了丰富型客户端模型的强大功能与弹性,还有以浏览器为基础之模型的容易部署与稳定性。

 

2、客户端应用程序还应具备的其他功能

 

对于企业应用系统来说,客户端应用程序作为整个系统与用户的交互界面,还需要考虑以下功能:

 

·            安全性:这里的安全性主要是指应用层次的安全性,主要通过用户权限、角色分配来实现。对于客户端应用程序来说,通常需要提供一个登录窗体或登录页面来完成用户身份的认证。对安全性要求较高的应用系统可能还需要通过公共密钥基础设施(PKI)为应用提供可靠的安全服务,客户端则附加了加密签名模块。

·            可扩展性:客户端应用程序应该具有包含各种不同类型的应用模块的能力,同时又能在使用过程中的不断的增加应用来完善整个系统。因此可以将客户端应用程序设计为一个容器,而各个应用模块作为组件由容器进行动态加载。

·            可配置性:由于用户权限和用户喜好的不同,客户端加载的应用组件以及呈现的表现形式都因人而异。需要由应用系统将用户权限的范围以及用户的个性化配置信息传递给客户端,由客户端应用程序来解释并呈现相应的用户界面。

 

定义

 

综上所述,我们对智能客户端应用模型下一个概括性的定义:一个可扩展的能集成不同应用的桌面应用程序,并具有以下特征:

 

·            无接触部署:安装时只要将一个主程序文件下载到本地,直接运行即可,无须改变注册表或共享的系统组件,其他应用组件将在第一次运行时自动下载。

·            自动更新:只需将新版本的程序发布在服务器上,由客户端自动发现最新版本的程序和应用组件,并自动下载和更新。

·            离线运用:允许脱离服务器时,利用本地的客户端程序和应用组件进行工作。

·            动态加载应用组件:应用软件开发商可根据企业应用系统的公共接口进行开发,然后将应用组件发布在企业的服务器上,客户端应用程序将自动发现并加载该应用组件。

·            个性化用户界面:用户可根据喜好自行设置客户端应用程序,配置信息将被保存到服务器上。

·            以下我们将以.net平台WinForms应用程序为例,对上述特征进行详细描述。

posted @ 2006-08-05 12:05  meil  阅读(4212)  评论(2编辑  收藏  举报