现在的位置: 首页 > 综合 > 正文

Rich Client技术简介

2013年08月22日 ⁄ 综合 ⁄ 共 3601字 ⁄ 字号 评论关闭

承前

正如前文所介绍的,传统的基于C/SWindows应用程序总是让客户面临着一些感觉很是不爽的问题,如:部署问题、升级困难、维护困难、安全问题,但是完全的WEB开发由于HTTP协议的无状态特性——浏览器和服务器总是在不停地执行RequestResponse来营造一种有状态、持续会话的假象,致使人们又开始怀恋具有更强运算能力、本地存储能力和更稳定的通讯能力的客户端程序了。

不得不说的是,宽带网络的出现在某种意义促成了Rich Client的诞生。通过快捷的发布,特定的通讯协议标准,Rich Client正以不可阻挡的气势向人们重现着C/S模式下客户端程序的优势。

Rich Client的发布

C/S架构下,客户端程序发布与维护一直比较困难和繁琐。在版本更新以后,需要对客户的客户端程序进行逐个下载安装及配置更新,这是一个体力活,而这也一直是使用户大量选择WEB程序的因素之一。

在Rich Client时代,由于宽带网络的便利,在客户端尽尽需要从服务器端下载已经更新好的程序运行,而不必理会繁琐的下载、安装和配置的过程。

这里不得不提Java的是WebStart技术。

WebStart是让用户只需在网页上点击一个超级链接就能运行一个Java桌面应用的技术。对于一个拥有WebStart能力的Java应用来说,用户使用它就和使用WEB应用一样的简单,但它所具有的界面能力和本地处理能力却是WEB应用无法望其项背的。

具体的应用的技术知识可以从http://java.sun.com中寻找相关文档,这里不一一赘述。

Rich Client的通信机制

除了快捷方便的发布外,Rich Client还需要与服务器端建立一种快速、可靠、强大、易用的通信交互机制。但我们开发WEB应用时,表现层和业务服务层常常只是同一个进程中的不同对象,它们之间的交互不过是Java的方法调用而已,当表现层逻辑被分发到世界各地的计算机上,客户端和服务器之间的交互就成了一个大问题——从前的C/S被淘汰,很大程度上归咎于socket通信的复杂性。

现在,形形色色的RPC(远程过程调用,Remote Procedure Call)技术以独特的优势扮演起了信使的角色。以下列举几种Rich Client可以采用的通信机制。

CORBARMI

CORBA(通用对象请求代理体系结构,Common Object Request Broker Architecture)曾经红极一时,它能够兼容各种操作系统平台的语言,强大的的可扩展性所带来的负面影响就是实现的复杂和繁琐。如果服务器端和客户端都采用Java开发,那么CORBA所需要的语言无关的IDL就完全变成了画蛇添足。当然,对于需要集成大量企业内遗留的系统的EAI(企业应用集成)项目中,它一直是首选的技术。

RMI可以是做CORBA的Java版本,但相比较而言这是一个轻量级的版本了,对于服务器和客户端两边都用Java来实现的前提下,这是一个非常好的选择。

CORBA和RMI有一个共同的缺陷:通常不会在系统80端口提供服务,所以这在具备网罗防火墙的情况下显得非常被动。

XML-RPC

为了解决在系统的80端口提供RPC的服务,而又不影响正在执行的WEB服务,人们想出了用HTTP协议传输RPC包的办法。对于几乎是专门用于传输文本的HTTP协议,要在其上传输RPC封包,最方便的方法莫过于把RPC封包编码成文本形式——例如XML文件。

XML-RPC(http://www.xml-rpc.com)是由美国UserLand公司指定的一个RPC协议。它将RPC信息封包编码为XML,然后通过HTTP传输封包;它是一个简单的RPC协议,只支持一些基本数据类型,不支持对象模型,这势必掣肘在客户端和服务器端之间传输复杂的对象。

 

SOAP

      SOAP即Simple Object Access Protocol(简单对象访问协议)是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议。它允许所有的操作在80端口上进行,从而也绕过了防火墙等问题。

  SOAP规范中有三个基本组成部分:SOAP封装,编码规则,以及在请求和响应之间的交互方式。

  目前已有的基于JAVA提供SOAP功能的产品有:Apache SOAP, IBM SOAP4J等

    要了解更多关于SOAP的信息,可以访问 http://www.w3.org/TR/SOAP

Hessian

Hessian(http://www.caucho.com)是由Resin应用服务器的开发商Caucho公司制定的一个RPC协议,虽然它也是通过HTTP协议传输RPC封包,但是它的RPC封包却是以二进制形式编码的,而且能够表现对象模型和异常体系,这就使得Hessian比XML-RPC具有更高的效率。

具体通信机制资料请读者参考网上内容和透明于2004年5期《程序员》杂志中《王朝复辟还是浴火重生》一文。

Rich Client开源开发平台Laszlo

Laszlo是一个开源的Rich client开发环境。使用Laszlo平台时,开发者只需编写名为LZX的描述语言(其中整合了XML和JavaScript),运行在J2EE应用服务器上的Laszlo平台会将其编译成FLASH文件并传输给客户端展示。单从运行原理来说,Laszlo与XUL(XML用户接口语言,    XML User interface Language)、XAML(Longhorn)标记语言很类似。但它的最大优势在于:它把描述语言编译成FLASH,而FLASH是任何浏览器都支持的展示形式,从而一举解决了浏览器之间的移植问题。而且,在未来的计划中,Laszlo还可以将LZX编译成Java或.NET本地代码,从而大大提高运行效率。

具体请参考http://www.openlaszlo.org。

 

IBM AlphaWorks网站近日发布了用于开发Laszlo应用程序的集成开发环境(实际上是一个Eclipse插件),使J2EE开发者能够在他们熟悉的Eclipse环境中快速开发基于Laszlo的rich client应用程序。可以在下列地址下载该插件:

http://alphaworks.ibm.com/tech/ide4laszlo

此外,AlphaWorks网站还提供了一个用Laszlo开发的示例应用,展示了在Eclispe环境下开发Laszlo应用的过程。demo的地址如下:

http://dl.alphaworks.ibm.com/technologies/rcb/demo.html

 

FLEX

    Flex是Macromedia公司开发的,用于Rich client开发的环境,其原理是将MXML(the Macromedia Flex Markup Language)文件,编译成SWF文件,然后显示在浏览器中,并利用Web Service技术和服务器通信。从而利用Flash的强大功能,带来更丰富的用户体验。

    Flex官方说法如下(摘自网络上相关文章):

    原代号为Royale的MacromediaFlex软件将把服务器软件、开发指南和其他工具组合在一起,使传统的网络应用开发人员能够用Macromedia公司的Flash格式创作软件单元。如从前报道的那样,该产品的重点是让那些使用Sun微系统公司的Java2企业版(J2EE)的开发人员能够创作出更有吸引力、更容易导航的J2EE应用软件接口。

    Flex将使J2EE开发人员使用标准的文本式开发工具来制作Flash应用程序,而不必使用Macromedia公司以前出售的复杂的设计工具。Macromedia公司从今年年初开始,努力扩大Flash格式对于主流开发商的吸引力,其目标是扩大Flash的用途,使其成为提供互联网应用和建立交互式网站的基础。

    Macromedia公司计划在2004年上半年推出Flex服务器软件,该软件的价格目前还没有确定。它的初级版本将运行于J2EE中,并计划随后推出支持微软的.Net格式的版本。最初的支持者包括IBM公司,它将随自己的WebSphere软件一起推广Flex的应用。

    需要了解更多Flex技术的朋友可以访问Flex的主页:

    http://www.macromedia.com/software/flex/ 

 

Thinlet

    Thinlet是一个采用Applet解析XUL并提供相应界面的解析器,在事件发生时,调用用户自己的事件处理程序(java 程序),需要客户端浏览器支持Applet。更多信息可以参考 http://www.thinlet.com/

 

作者:大阿福,现就职于国内一大型软件公司

邮箱:toafu2002@yahoo.com.cn

QQ:1836566

Msn:toafu@msn.com

 

 

抱歉!评论已关闭.