1.  富客户端技术与 RCP 介绍

1.1.        富客户端技术简介

富客户端技术作为目前一项业界推崇的客户端技术,正备受关注。本文我们要了解富客户端技术以及 Eclipse 上开发富客户端程序的平台 RCP 。那什么是富客户端技术和 RCP 呢?首先,我们来回顾一下富客户端技术的背景与来源。

1.1.1    系统架构的发展历程

应用程序 至今为止历经 了几次系统架构方面的重要转变,在此过程中,客户端的表现能力有起有落,其转变过程如图 1-1-1

 

1-1-1 :应用程序系统架构变迁图

Ø        主机模式

90 年代之前,系统采用的是主机模式, 应用程序提供基于文本的非图形化用户界面, 所有的应用逻辑都集中在主机上,用户通常通过终端登录到主机进行操作, 只有内部人员才能进行访问应用程序,这类客户端通常被称为终端客户端 (terminal Client)

Ø        C/S 模式

90 年代, 随着 Windows 的出现和客户端处理能力的增强,出现了客户机 / 服务器( Client/Server ,简称 C/S )应用程序,它们采用图形用户界面,客户端集中了大部分的应用逻辑,因此数据处理能力比较强。但由于客户端应用程序需要进行不断的更新(因为应用逻辑总是在不断的变更),因此部署成本与维护成本比较高,只能为少数人所使用。这类客户端通常被称为胖客户端。

Ø        B/S 模式

九十年代中期,随着 internet 的飞速发展,导致了 web 应用程序大行其道,浏览器 / 服务器( Browser/Server ,简称 B/S )模式也得到了人们的认可,这时人们发现, B/S 模式在企业级应用中,解决了 C/S 应用程序部署、和更新的困难,降低了应用程序的维护成本。 通常,我们称浏览器客户端为瘦客户端。 由于 B/S 模式采用了 HTML 页面形式的用户界面,客户端的数据处理能力较 C/S 应用程序有所回落。总的来说浏览器客户端有 3 个方面的缺点:

ü        缺少客户端智能机制,数据的验证等逻辑较大程度依赖于服务器;

ü        几乎无法完成复杂的用户交互(如传统的 C/S 应用程序和桌面应用程序中的用户交互)。这样的技术使得 Web 应用程序难以使用,支持成本高,并且在很多方面无法发挥效应;

ü        无法进行脱机应用,需要稳定的网络连接和后台服务器正常运行。

Ø        RIA 模式

C/S 架构的缺点主要是部署、更新的问题。 B/S 架构的缺点主要是受制于 HTML 的限制,无法像 C/S 那样使用丰富的效果来展示数据,用户体验比较糟糕。另外,稳定的客户端 / 服务器连接,也是必要条件,网络中断将使 B/S 程序无法运行。从 C/S B/S ,这两者受限于技术本身分别发展成了重客户端和重服务器端的模式。因此,在 B/S 模式经过几年的悄然发展后,对应用程序提出了新的要求,总的来说,理想的应用程序需要提供如下的特性:

Ø        利用无处不在的客户机;

Ø        可在多种硬件平台上毫无更改的操作;

Ø        无论低或高带宽的网络连接都可毫无妨碍的执行;

Ø        将处理能力复原给客户(而不仅是提供能力而已);

Ø        提供吸引人的高度互动的用户界面;

Ø        提供复杂的界面表达、数据配置、规模和反馈过程;

Ø        无缝的利用声音、视像、图像和文本等多媒体数据;

Ø        容许用户在线和离线工作以支持移动工作流程;

Ø        容许客户自行决定要在何时存取何种内容和数据(异步内容检索);

Ø        存取多种中间层服务( .NET Java )和后端数据存储;

Ø        采用新崛起的标准如 XML SOAP ,为演进中的 Web Service 为主的网络提供动态高效的前端应用;

Ø        与遗留的应用程序和系统集成;

Ø        容许在现有 Web 应用程序和环境内逐步添加新功能以充分利用现有网络应用投资。

我们将实现以上的特性的 Web 应用程序称为 Rich Internet Application(RIA) 。而 RIA 应用程序的实现在客户端方面则主要依赖于富客户端技术。

1.1.2      富客户端的概念

Rich Client (富客户端)提供可承载已编译客户端应用程序(以文件形式,用 HTTP 传递)的运行环境,客户端应用程序使用异步客户 / 服务器架构连接现有的后端应用服务器,这是一种安全、可升级、具有良好适应性的新的面向服务模型,这种模型由采用的 Web 服务所驱动。

富客户端是相对于胖客户端及瘦客户端而言的,通常我们称传统 C/S 模式中的客户端为胖客户端,称 B/S 模式中的浏览器为瘦客户端。根据系统架构的发展历程,我们可以很清楚地知道富客户端技术要达到的目标 结合胖客户端和瘦客户端的各自优势并克服其固有缺点。富客户端与以上两种客户端的区别就在于 字,而 的含义主要包含两方面的内容:

n        丰 富的用户界面:富客户端必须能够给用户带来丰富的界面体验。在富客户端模型中将界面分解成许多的既可以和用户直接交互又可以和服务器进行通信的小单元模 块。这种将应用程序的设计从以一个个相对独立的页面为中心转移到以组件为中心的转变将会使客户层的设计提升到一个新的层次,并且会使客户层变得更加灵活。

n        丰富的数据模型:富客户端可接受或处理不同类型的数据,包括图像、语音、文本、视频等格式,且不再成为服务器响应的最终端,这同时也使程序的性能得以提高,用户使用的感觉就好像程序不需要和服务器进行通信或者只是偶尔才需要进行通信。 

1.1.3      富客户端与胖客户端的比较

富客户端在很多方面与胖客户端类似。它们两者都能为用户带来本地桌面体验,并提供那些通过瘦客户端技术很难、不方便或不可能交付的信息和功能。然而,富客户端可提供更好的特性。富客户端主要在几个方面较胖客户端有着本质的区别:

Ø          程序构架:胖客户端通常是一个难以部署和更新的大型单体应用程序,而富客户端在体积上更为轻巧,并且是基于部署和更新相对容易的组件模型的。

Ø          平台相关性:从历史上来看,胖客户端是特定于平台的;而当今的富客户端技术发挥了底层平台的强大功能,同时隐藏了底层平台的细节,从而允许开发人员将精力集中于任务而不是各种特殊平台的特殊细节。

Ø          可伸缩性:相对于胖客户端,富客户端还具有更好的可伸缩性。传统上,胖客户端直接与数据库相连接。这样就限制了胖客户端的运行环境 ( 防火墙可能会限制胖客户端与数据库之间的连接 ) ,同时应用程序的可伸缩性 ( 客户端与服务器之间的连接总数 ) 也可能会受到数据库的限制。富客户端通常利用应用服务器,后者负责建立到数据库的连接。这种配置非常灵活 ( 防火墙友好的 ) 并 且具有高度的可伸缩性。当然,技术中并没有必然限制胖客户端与应用服务器进行通信的东西,只不过在胖客户端技术流行的时候,应用服务器还没出现罢了。没有 强制的规则规定富客户端应用程序必须是某台对应服务器的客户端。许多利用富客户端技术的组织正在构建健壮、可扩展、可更新、本地化的独立应用程序。同样, 虽然富客户端通常利用应用服务器,但是并不存在要求必须这么做的规则或技术限制。没有理由说富客户端应用程序不能直接访问数据库。

总 之富客户端技术代表了胖客户端与瘦客户端二者优势的结合:丰富的用户体验、高可伸缩性、平台独立,以及非常易于部署和更新。富客户端和服务器端交互数据是 不需要同步的,这样用户就可以控制组件创建信息发送给服务器和处理服务器的响应,可以为更零散的控制去耦和分离程序功能并且组建面向服务的程序结构。术语 富客户端首先表明此应用程序为用户提供丰富的体验;其次,它还表明此应用程序是某台服务器的客户端。虽然富客户端并不必须具有对应的服务器组件,但是它们 通常会有对应的服务器组件。  

Logo

开源、云原生的融合云平台

更多推荐