Rich Client技术简介

承前
正如前文所介绍的,传统的基于 C/S Windows 应用程序总是让客户面临着一些感觉很是不爽的问题,如:部署问题、升级困难、维护困难、安全问题,但是完全的 WEB 开发由于 HTTP 协议的无状态特性 —— 浏览器和服务器总是在不停地执行 Request Response 来营造一种有状态、持续会话的假象,致使人们又开始怀恋具有更强运算能力、本地存储能力和更稳定的通讯能力的客户端程序了。
不得不说的是,宽带网络的出现在某种意义促成了 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 可以采用的通信机制。
CORBA RMI
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
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值