富客户端应用

2024-07-03

富客户端应用(通用3篇)

富客户端应用 篇1

目前, 越来越多的企业以及个人用户放弃了C/S架构应用程序的开发与使用, 而选择使用B/S架构的应用程序开发。B/S架构的应用程序具更加方便快捷的使用操作和版本更新, 所以得到了较大范围的应用。但是随着人类对应用体验需求的增加以及网络带宽的不断升级, 使得人类在使用更加方便快捷的B/S架构的Web应用的同时, 对使用体验以及视觉观感等都有了更大的需求。

所以基于富客户端的Web应用程序 (RIA:以下简称RIA) 开始受到越来越多的关注。RIA通过将一些用户界面的组件添加到浏览器中使得客户端也可以处理种类丰富的图形格式。接下来本文将对RIA的引入以及总体架构等相关知识进行阐述。

一、RIA技术的引入

传统的客户端可以分为“胖客户端”与“瘦客户端”两种, 分别代表C/S架构的应用程序与B/S架构的应用程序。“胖客户端”有以下缺点: (1) 需要用户安装相应的客户端程序, 所以它的分发能力较差; (2) 当需要点对多个面进行通信的情况下适应性较差; (3) 后期维护和二次开发能力较差, 版本控制能力差; (4) 跨平台能力较弱。

针对以上问题, 随着后期网络带宽的升级, 产生了“瘦客户端”, 也就是B/S架构的应用程序。但是“瘦客户端”同样存在以下一些问题: (1) 交互能力较差, 用户界面较为单一, 用户体验差; (2) 由于是借助浏览器进行显示的, 所以不能发挥本地操作系统平台优势。 (3) 过于依赖网络连接, 网络出问题, 就无法正常访问。响应速度较慢。

由于C/S应用程序与B/S应用程序存在这些问题, 所以近年来就出现了“富客户端”应用程序。RIA充分结合原有客户端应用程序开发技术的优势, 利用例如Java Script, Ajax, 动态HTML等技术改造了原有技术的不足。

目前使用较为广泛的RIA开发技术有Adobe的Flex、Open Laszlo、微软的Silver Light、甲骨文的Java SWT以及Ajax等。

二、RIA总体架构与特点

RIA用具有很强交互性的富客户端技术来为用户提供一个更高和更全方位的网络体验。RIA集成了桌面应用的交互性和传统Web应用的部署灵活性与成本分析, 以创建单一而完整的用户体验。富客户端技术使创建RIA成为可能, 它提供一个运行时的环境以承载被编译的客户端应用程序, 该客户端应用程序是一个使用HTTP协议发布的文件。客户端应用程序使用异步的C/S结构连接到现有的应用服务器, 这是一种安全的、可升级的、具有良好适应性的面向服务模型, 这种模型由当前所采用的Web服务驱动。RIA的基本框架如图1所示:

RIA的典型特性有如下几点: (1) 客户端的返回结果只对有变化的用户界面产生影响, 不会进行耗时耗资源的整页刷新。在不需要与服务器交互的情况下可以实现快速便捷访问。 (2) RIA提供了更好了用户交互界面, 用户的视觉体验更加突出。 (3) 立即部署、跨平台、采用逐步下载来检索内容和数据以及可以充分利用被广泛采纳的互联网标准。 (4) RIA可以在已有的Web应用架构 (Java EE或者NET) 基础上进行升级, 从而无需大规模替换Web应用程序。 (5) 高效的网络数据信息传输:客户端与服务器端主要采取XML数据和Web Services两种方式交互, 在这两种方式下, 客户端和服务器端仅仅传递必要的数据信息, 这与传统HTML网页的交互数据和显示信息混在一起传输的方式相比他大大降低了数据通讯量, 降低了对网络带宽的要求。

三、RIA开发与技术简介

RIA的开发需要做好富客户端技术、服务器技术以及开发工具三个方面的准备工作。富客户端技术是一种可以运行在用户机器上的可以利用本地计算机的优势资源进行数据处理的技术, 常用的有Flash Player与Silver Light技术等;服务器技术提供了一种服务器与客户端进行连接通信的机制, 作为RIA的服务器技术必须从现有的服务器技术继承, 可以提供一个快速的脚本环境, 支持数据库应用开发、双向数据通信、实时数据通信, 甚至采用一种新的服务器, 常用的有Cold Fusion Server和Flash Communication Server技术等;另外, 开发RIA还需要一组可以以最快速度进行开发的工具, 常用的有Flex以及Smart Client等。

以上介绍的户端技术与服务器技术之间的关系如下图2所示:

在选择了客户端技术、服务器技术以及开发工具之后就可以进行RIA的开发了, 一般的RIA开发流程如下:

(1) 用户体验设计 (需求分析) :通过对用户的需求调研工作, 获取用户的功能需求以及交互需求等;

(2) 工作流分工:通过分析用户的需求, 在概要设计阶段得出系统的工作流, 以及系统的数据流等信息。

(3) 软件实施:软件实施阶段利用以上选择的客户端技术、服务器技术以及开发工作对 (2) 中得到的工作流以及数据流进行具体的编程工作。

(4) 测试:选用合适的测试平台, 包括操作系统平台以及浏览器平台对编码完成的系统进行各项性能的测试以及交互的测试工作。

(5) 部署:完成测试工作之后就可以进行发布以及部署工作。根据不同用户的不同需求和运行平台进行不同的部署操作。

RIA的开发主要通过浏览器插件宿主于浏览器窗口, 但是具有自己的管理区域和窗口句柄 (Handle) , 有自己的消息接收、处理能力。RIA流畅平滑的界面更新, 仅限于相应插件的控制区域。RIA的实现都需要后台数据传输的支持, 这样才能保证交互界面的流畅以及减少数据流量的通信。通常后台的数据传输有三种方式:HTTP Service、Web Servic和Remoting三种, 数据描述主要是通过XML或者基于XML的格式进行。

四、RIA的发展与应用趋势

随着RIA技术的发展和普及, 越来越多的人参与到RIA应用程序的开发中来。使得富客户端技术从服务器技术到客户端技术再到开发工具的研发都有了较大的发展。但是由于对于RIA的定义与一些技术的界定, 使得RIA目前并没有成为一种标准。这也在一定程度上制约了RIA的发展。

但是随着网络用户对应用程序交互性能以及界面表现能力的要求越来越高, RIA至少在一定领域范围内会得到较大的发展。以前的RIA应用程序较多的应用在多媒体应用领域, 由于多媒体应用对交互性以及视听感官刺激要求较高, 使得RIA有了其发展的空间。

现在越来越多的商业性网站以及企业内部网站也开始使用RIA, 由于RIA可以提供许多更加直观生动的图表显示, 可以方便清晰的对数据进行统计和分析。同时在一些与用户交互较多的应用领域, 例如网络游戏、即时页面聊天以及文件传输等领域的应用也越来越多。

五、总结与展望

通过本文的分析, 可以得到富客户端应用程序 (RIA) 相比于传统的B/S与C/S架构应用程序有较大的优势。RIA克服了B/S架构应用程序交互性能差以及响应速度慢等缺点, 同时还解决了C/S架构应用程序需要安装部署不利于多点分发的缺点。使得用户体验得到了改进, 同时具有较好的交互性能。并介绍了RIA的开发流程与相关注意事项。最后对RIA的应用领域进行了相关的阐述。

未来RIA将会得到更大的发展, 但是随着HTML5相关规范的制定, 使得基于富客户端的Web应用程序以及基于HTML5的Web应用程序将在一段时间内共存。但是二者都各有各的优点, 所以不同的开发人员只需要根据自己的喜好以及所开发应用程序的特点进行选择。

摘要:传统的Web应用在响应用户请求之后, 都会将整个静态页面的信息重新传送给用户的浏览器显示。这样就造成了服务器负担过重, 同时由于传统的内容冗余较大使得传输速率大大降低。富客户端应用 (RIA) 的出现解决了这一问题, 富客户端应用在响应用户的请求时只会将需要返回给客户端的信息和数据更新到用户界面上, 大大减少了数据传输量, 同时也降低了服务器的负担。

关键词:RIA,富客户端,Web应用,B/S应用

富客户端技术使用前景分析 篇2

当前,应用程序的开发重心不断地向Web应用程序开发转移,在此情况下,富客户端技术已经成为Web应用程序开发的一项新兴的技术,如何让开发的Web应用程序在实现功能的前提下能够更加快速、能让用户有更加完美的体验、如何能够更加吸引用户的眼球,已经成为众多开发人员越来越多考虑的问题。

富客户端技术正是在这样的背景下应运而生的。那么,什么是富客户端技术?它的实现机理是什么?为了回答这个问题,我们以传统的Web应用程序为例来做对比,传统的Web应用程序是以页面为单位,基于HTTP的无状态的协议,只要针对当前页面有更新,无论你是请求新的资源还是仅仅提交了一个用户名密码的验证,都必须打开新的页面,尽管开发人员采用了诸如母版页,框架,CSS样式等各种各样的手段,而且也收到了一定的效果,但基于页面为切换单位的事实一直无法彻底改变,用户体验和网络传输速度的瓶颈无法真正实现突破。而富客户端技术则是换一个角度来解决上述的问题,把页面这样的单位进行进一步的细化,把需要变化的,需要进行传输的内容尽量局限在一个小的区域,这样一方面可以减轻服务器的负担,另外也可以提升用户体验,使客户端效果和网络传输的矛盾得以极大的缓解。RIA富客户端程序是指将桌面应用程序的交互用户体验与传统的Web应用的部署灵活性和低成本结合起来并提供互动多媒体通信的实时快捷的新一代网络应用程序。

目前,针对以上实现思路的RIA富客户端技术的实现主要有:AJAX技术;Java技术里的Applet;Microsoft的WPF;Adobe的Flex;

2 RIA技术概述

2.1 Ajax技术

Ajax是HTML,CSS,Java Script等几项技术的结合体。而且在Java,.Net平台等开发工具里都有针对Ajax使用的专门的框架,可见其使用的广泛性。Ajax的最大优势是绝对的零成本部署,对应用环境的要求最低。实现的机理是通过上述的几项技术综合起来实现页面的异步刷新。但是由于Ajax本身所使用的技术并不是专门针对RIA所设计的,它的异步刷新机制虽然可以实现页面的部分刷新而不用刷新整个页面,但编写和调试麻烦,而且对界面的显示它也基本无能为力。所以,可以预见:在未来的使用中Ajax会在各种RIA技术的夹缝中生存。

例如,在用户名效验时最关键的是在页面加入如下的回调函数:

2.2 Java Applet

Applet是运行于客户端的Java小应用程序,是一种通过Web浏览器在Internet上工作而设计的Java程序。它能够嵌入在HTML网页中,并由支持Java的Web浏览器来解释执行。可以用Applet增强网页的交互性。也正是Applet在Java出现的前几年为Java赢得了众多美誉。它是给HTML带来无尽活力的工具。它从远程站点下载并在本地运行,它可以显示图片,播放音乐,取得用户的键盘输入和鼠标点击,它适合于网络游戏,网页特效,实时交互处理等应用场景中。

Applet失败的主要原因是JRE插件没有在浏览器中普及。并且由于当时的硬件和网络环境并不成熟,不能支持Applet的流畅下载和运行。并且对开发人员不够友好。在界面方面需要编写代码,而且也没有能够方便开发的IDE。

2.3 Microsoft的WPF/E

微软的WPF是指Windows Presentation Foundation,它将用户界面和功能实现分开。它使得设计可视化的用户界面的设计者和编写内部核心代码的开发人员可以并行工作。WPF使用一种基于XML的语言来定义用户界面从而完成上述的工作。这种语言被称为XAML。对于普通用户而言,最直观的就是界面越来越漂亮,看起来越来越舒服了;而对于开发人员而言,界面显示和代码将更好的得到分离,这与从前的桌面应用程序开发有很多不同(界面设置和代码是融合在一起的),这是比较具有革命性的改变之一。还有就是桌面应用程序和浏览器应用程序的融合。

下面看看WPF写的代码的基本结构:

2.4 Adobe的Flex

Adobe的Flex可以在企业内部或者在Web上创建富客户端应用程序,它使企业能够创建个性化的丰富多媒体应用程序,极大地提高用户的体验,彻底革新客户与Web的交互关系。通过非Flash的方式(Linux或window可执行文件)根据.mxml文件定义的commponent组织结构,生成对应的.swf文件。其主要包含两个技术MXML和Action Script。mxml用于界面描述,是纯xml文件。Action Script是对ECMAScript改进后的产物,进行流程控制和逻辑判断的脚本,由Flash Player 9的核心AVM2虚拟机解析执行。mxml相当于传统web中的html。Action Script相当于Java Script。区别是Mxml和Action Script都是强类型的语言,语法要求更加严格。Flex技术的.mxml文件编译成swf文件后,交给flash player或者shockwave player解释执行。

以一个登录窗体来看看Flex文件的结构:

另外,Flex的推出,其中整合的Adobe Integrated Runtime(AIR)应用程序的开发使得桌面应用程序和Web应用程序之间的界限变得越来越模糊。最典型的例子:从http://desktop.ebay.com上下载其提供的AIR应用程序,运行后会发现看到的是桌面应用程序的效果,而实现的却是类似淘宝网的买卖商品的功能。而支撑其运行的就是一组Adobe Integrated Runtime类库。

3 前景分析

通过以上对现有的比较流行的RIA技术进行分析对比,虽然以上四种除了Java Applet已经渐渐退出了主流开发的舞台,而其他三种都在不同的领域占据一定的份额,笔者始终认为:后两种即微软的WPF(现已改名为:Silver Light)和ADOBE(最新版本改名为:Apollo)将成为未来RIA技术的主流开发工具。而Microsoft和Adobe这两大巨头目前在这项技术上存在以下的明争暗斗:

1)微软推广WPF和Expression系列产品的决心。

2)WPF与Vista操作系统的普及密切相关。而未来几年Vista的市场占有率是WPF能否真正成功的关键。任何产品的市场普及都是需要时间的,就象之前Windows系列产品的升级换代一样。预计未来的某个时间点会有场争夺市场的恶战,目前,Flex技术将与WPF并存相当长的一段时间。毕竟,Adobe多年以来以很多成熟的产品占就着一定的市场份额,拥有相当数量的用户。

3)Expression工具是否好用。

4)价格因素。

5)在未来市场能否逐渐成为标准。毕竟Flash的SWF格式已在90%以上的浏览器中安装。

无论如何,在WPF、Flex等RIA技术的夹攻之下,桌面应用程序与WEB应用程序的界限会越来越模糊,随着时间的推移,越来越多的Web应用将同时部署传统Web页面和新的RIA UI。毋庸置疑,几年之后RIA应用将成为主流。

4 结束语

本文分析了RIA技术的现状和几种使用技术的分析,通过对比发现,RIA技术的Flex实现会在以后的使用中越来越广泛,会得到更大的发展。

摘要:早期的WEB应用主要是传输文本数据(比如HTML页面),而它们传输的是静态的页面,客户端只有和服务器端进行交互,页面的内容才会改变。客户端和服务器端的交互会导致页面的整体切换。RIA(富客户端)技术则克服了HTML的限制,它将页面的切换限制在更小的局部,只有需要切换的内容才会进行更新,这样不但减轻了服务器端的负担,而且传输的内容会更少,更利于数据传输,会获得更好的用户体验。

关键词:富客户端,AJAX,Applet,WPF,Flex

参考文献

[1]黄曦.Flex3.0RIA开发详解[M].北京:电子工业出版社,2008.

[2]Nagel C,Evjen B,Glynn J.C#2005&.Net3.0高级编程[M].5版.北京:清华大学出版社,2007.

富客户端应用 篇3

Flex富客户端技术能够创建交互性良好、高效率的自助终端系统, 具有用户界面高度互动、交互性强、响应速度快等智能客户端的优点, 以及平衡计算负载的能力[1]。同时Flex系统实现了自助终端本地页面Flash化, 大大提升用户体验效果, 它也是涵盖了支持RIA (Rich Internet Applications) 的开发和部署的一系列技术组合。目前Flex技术主要与Java技术的结合, 在继续使用原有的应用程序模型 (包括J2EE和NET) , 无需大规模替换现有的WEB应用的情况下, 构建更为直观、更易于使用而且可脱机使用的应用程序, 使需要复杂性的应用得以开发并且减少开发成本。

1 优势

那么Flex的自助终端系统与传统WEB系统相比, 其优势在哪?

(1) 基于Flex系统的实现了运行过程中GUI都在本地Flashplayer虚拟机运行, 只产生少量的数据更新请求, 而不需要服务器端实时动态生成HTML及传送图片的功能负载。

(2) 降低了自助终端系统数据传输量, 就会降低了对带宽的需求, 提升了自助终端系统的稳定性, 也保证并发下用户得到的服务质量。

2架构

应用系统采用RIA技术Flex M-V-C (modle-view-contral) 框架代替原有的WEB2.0的Ajax结合Struts1.2框架, 在保持系统原有业务逻辑和底层接口程序不变的情况下, 在系统应用中涉及到业务逻辑展现部分的全部程序需求重新进行抽取和研究。系统架构如图1。

1) 客户端主要通过智能客户端 (Flash播放器) 和浏览器IE, 为用户提供一个交互性很好的可视化界面, 以便灵活显示各种信息。自助终端Flash展现方式满足了客户业务办理便捷性和自主性的需求, 为客户提供了良好的体验空间。提升自助办理速度、增加自主操作环节等因素也极大提升了客户对自助服务乃至整个营销服务工作的满意度, 促进了自助渠道的快速普及。

2) 表示层实际上代表了用户和应用程序其余部分之间的接口, 以可视化控件的形式向业务层请求不同的服务。

3) 业务层主要为每一个Flex应用创建一个远程的Java对象实例。业务交互不需要下载页面, 只需传递业务数据, 极大的提高的自助终端业务响应速度和降低移动网络带宽。

4) 服务层的任务是可以让各种功能都通过服务端的应用服务器来实现。该层主要是应客户端的请求进行一些业务逻辑处理, 并调用数据层的逻辑实现数据的访问。Flex提供了多种与J2EE组件进行交互的方法, 在此主要采用Remote Object方式。因为Remote Object方法基于AMF的数据交互, 速度以及性能是最好的, 且支持dataset和datatable。Remote Object传输数据类型丰富, 可以支持AMF数据封装, 能够直接传送二进制文件流数据, 且传输效率相对比较高, 能够很好地支持各种后台。

5) 数据层负责存储数据, 为整个系统提供数据源的保障, 数据可能来源于数据库或者其他本地文件。由于系统对数据的安全性、稳定性要求比较高, 所以本架构采用Oracle数据库, 属性数据放在一个数据库中。一些无法存入数据库的数据文件, 比如图片数据、配置文件、视频等则以文件的方式存放, 供服务端调用。

表现层与业务逻辑层的通信中, Flex选择采用Remote Object数据交互模式。由于面向服务架构的中间件平台调用逻辑流提交的数据类型大多为Java类型, 所以采用Remote Object的交互模式, 可以直接让Flex和Java进行通信, 提高了数据传输效率。当调用逻辑流处理完毕, 将逻辑流输出的结果封装成一个大数据对象数组返回给Flex的AS去解析, 这样就得到了Flex需要的数据类型。

在Flex应用中添加Remote Object组件, 设置远程对destination对应于remoting-config.xml中的配置。

由上面程序可以看出destination节点的scope属性值指定了远程对象实例作用域为application。表明服务器为每一个Flex应用创建一个远程的Java对象实例。这样就可以实现用户表现层和业务逻辑层的无缝连接, 略去了通过HTTP进行文本转换的步骤, 数据类型也可以自动转换。

该架构关键技术主要采用基于Web的Flex+J2EE架构模型, B/S模式的体系结构, 通过Flex技术实现B/S应用C/S, 采用的开发平台是Adobe Flash Builder 4.0。

3案例

移动公司作为自助设备的最早应用商, 已经走过了自助终端应用的初期阶段, 正步入成熟期。从早期的功能单一的自助终端已经过渡到了具有丰富应用功能的高扩展性阶段, 对自助终端的实现技术要求也已经从初期的简单化的实现切换到了具有高度统一性和可扩展性的使用阶段。

面对内蒙古移动缴费终端, 若管理不规范, 不能正确的按照流程规范执行, 就会导致账务差错。

例如:**营业厅缴费终端管理员, 没有按照正常的开钞箱流程进行操作, 随意的开启钞箱清点金额或者给用户换零钱, 在这个过程中, 非常容易引发现金账务差错, 结果在当日结账发现现金与账务报表不符的问题。

钞箱监控自助终端是在统一终端控件的基础上, 通过钞箱监控模块, 定时检查钞箱的在位情况, 判断钞箱是否在位, 定时更新集中管理平台终端钞箱状态标识, 记录钞箱位置变化的记录, 为钞箱和账务管理提供数据。

钞箱监控是改造集中管理平台现金缴费功能, 实时的读取终端钞箱状态标识, 发现终端未通过集中管理平台结账, 则提示用户:终端正在结账, 暂时不能办理缴费业务。具体流程如图2。

钞箱监控是强制性要求缴费终端管理员进行对账如下:

现金对帐基本流程如图3:

说明:

营业厅现金管理流程 (钞箱现金和平台缴费总金额比对) :

1. 取出钞箱终端所有钞票, 确保没有遗漏和丢失, 清点钞票, 总钱数。

2.在终端管理界面选择功能“后台费用汇总”, 从服务器上取出当日缴费的费用汇总账务 (可以打印, 作为结账凭据) 。

3. 把取出终端钞箱现金总额跟平台现金缴费总金额进行比对, 看是否一致, 如果在全天营业中不从钞箱拿出钱, 这样是一致。

在自助终端结账操作流程:

1.终端管理界面选择功能“结账”。

2.确认上次结账时间。

3. 确认钞箱钞票数量, 并要求营业厅工作人员输入查询现金清点总额。

通过实现集中管理平台的统一控件实现自助终端实现监控钞箱功能, 实时的跟踪钞箱的状态, 为管理提供依据, 保证账务安全, 非常必要。

钞箱的实时状态一条条的记录在管理平台上, 让帐户“金额准确、状态清晰、管理规范简单化”变成了现实。

这样的自助终端状态监控实现设备运行情况统一展现、状态查询、状态控制等功能, 从而使系统管理人员能够在统一的界面中就可以了解和控制其所负责的终端运行情况。

4 结束语

本系统利用Flex客户端的面向对象编程的能力, 划分了系统功能模块, 加入用户权限管理等功能, 将大部分业务逻辑和数据处理转移至客户端, 减轻了服务器的负担。

该管理模块通过对设备采集数据的分析, 实时更新管理平台中每台终端设备的运行状态数据, 并在前台界面中采用高交互式的方式展现出当前设备的运行状态, 设备的总体运行状态主要分为正常、离线、故障、有告警等。同时针对每台终端设备, 管理模块提供相应的详细信息查询功能, 可以根据相关条件查询出设备运行状态的历史数据, 产生的告警信息数据, 实现对终端设备运行状态的实时查询展现。因此随着Flex应用的深入, 相关企业或组织对开发具有高度交互性、丰富用户体验、与平台通信一致的终端设备的要求也正在不断增长, 那么Flex在企业级应用程序的开发中也就会得到更加广泛的应用。

摘要:随着利用通信网络自助管理方式近年来规模的扩大, 自助终端是否具备良好设计也需不断改进, 而基于Flex富客户端技术就是目前最有优势的设计理念。通过利用Flex的Remote Object方式架构系统, 大大提高客户端的交互性、响应速度, 也丰富了用户体验的GUI。在技术实现案例中, 利用钞箱监控系统介绍了利用Flex的面向对象的编程技术丰富客户端的界面, 同时也将大部分业务逻辑和数据处理转移至客户端, 减轻了服务器的负担。

关键词:Flex,自助终端,RemoteObject方式

参考文献

[1]魏志军.浅析RIA-Flex技术在Web应用开发中的应用[J].信息系统工程, 2011 (3) :52.

[2]郭熙阳.Flex的Web应用系统重构[D].杭州:浙江大学.硕士学位论文, 2007.

[3]钱钰, 陈志云.基于Flex的RIA技术在教学软件中的应用[J].计算机与数字工程, 2009.

上一篇:化工分离工程下一篇:家族企业生命周期