Rich Client

富因特网应用程序

Rich Client是一个计算机程序。富因特网应用程序(Rich Internet Applications,RIA)利用具有很强交互性的富客户端技术来为用户提供一个更高和更全方位的网络体验。

RCP介绍
RCP (Rich Client Platform)提供了一个通用的 Eclipse 工作台,允许开发人员扩展和构造自己的应用程序。
发布
简介
富因特网应用程序(Rich Internet Applications,RIA)利用具有很强交互性的富客户端技术来为用户提供一个更高和更全方位的网络体验。RIA集成了桌面应用的交互性和传统Web应用的部署灵活性与成本分析,以创建单一而完整的用户体验。富客户端技术使创建RIA成为可能,它提供一个运行时的环境以承载被编译的客户端应用程序,该客户端应用程序是一个使用HTTP协议发布的文件。客户端应用程序使用异步的C/S结构连接到现有的应用服务器,这是一种安全的、可升级的、具有良好适应性的面向服务模型,这种模型由当前所采用的Web服务驱动。
富客户端技术正在不断地完善中,但并不意味着会取代HTML。相反它将进一步扩展浏览器功能,使之提供更加高效和友好的用户接口。许多RIA都在浏览器中运行,甚至它本身就是HTML的一部分,所以HTML将继续保持其原有的角色。另外,由于富客户端技术可以支持运动的图像、视频、音频、双向的数据通信和创建复杂的窗体,它为创建应用程序用户接口提供了一个高效而完善的开发环境.
RIA开发必须具备三个要素:富客户端技术、服务器技术和开发工具。富客户端技术充分利用本地机器的处理能力来处理数据,而不需要把某些数据发送到服务器处理,充分利用了本地机器的资源。服务器技术提供了一种与富客户端的连接机制,作为RIA的服务器技术必须从现有的服务器技术继承,可以提供一个快速的脚本环境,支持数据库应用开发、双向数据通信、实时数据通信,甚至采用一种新的服务器,例如:ColdFusion Server和Flash Communication Server等。RIA实现必须有一组简单而高效的开发工具,如果没有一组简单而高效的开发工具,那么富客户端技术与服务器技术是毫无意义的。正是由于RIA的C/S结构,它需要一组开发工具协同工作才可以完成。
尽管目前有许多富客户端技术,但是Macromedia Flash Player却被广泛采用,它已经逐渐成为富客户端技术的网络标准。Flash Player 已经是一个无处不在的富媒体客户端,它可以在不同的浏览器和操作系统上运行,所以它是一个跨平台、跨操作系统的网络客户端。
“富”的概念包含两方面,分别是指它具备丰富的用户界面和丰富的数据模型。
典型的富客户端模型
富客户模型将界面分解成许多的既可以和用户直接交互又可以和服务器进行通信的小单元模块。
这种将应用程序的设计从以一个个相对独立的页面为中心转移到以组件为中心的转变将会使客户层的设计提升到一个新的层次,并且会使客户层变得更加灵活。富客户层不再成为服务器响应的最终端,这同时也使程序的性能得以提高,用户使用的感觉就好像程序不需要和服务器进行通信或者只是偶尔才需要进行通信。
不像传统的模型那样,服务器收到请求后由上至下的创建客户端界面,你不用预测事件的顺序。既然每个组件都是独立的,就没有必要因为一个请求而做出影响整个视图的反应。要使每个组件都具有向服务器传送信息的能力需要每个组件知道如何处理服务器传递回来的信息。在RIA中,客户端和服务器端交互数据是不同步的,这样你就可以控制组件创建信息发送给服务器和处理服务器的响应,可以为更零散的控制去耦和分离程序功能并且组建面向服务的程序结构。
Rich Client是一个相对的概念,主要是针对时下广泛的基于WEB的应用,因为这种客户端(也即现有的各种浏览器)的运行环境没有提供一个很好的组件模型和交互模型致使这种应用的界面的同服务之间的交互变的很奇怪,每一次交互都需要重新组织出整个界面,而这个界面的组织基本在服务器端完成,也所以致使表现层的逻辑居于服务器端,所以称这种为Thin Client,而相对的则是Rich Client,目前来说在技术上Rich Client还没有一个甚或是两个大一统而且又成熟的标准技术出来,所以Rich Client只能说是一种架构方式,其特点便是服务同表现完全的物理分离,表现逻辑完全由客户端来负责,这是最关键的一点。但我认为一定要同时兼顾原有WEB应用的零部署等特点。
C/S架构下,客户端程序发布与维护一直比较困难和繁琐。在版本更新以后,需要对客户的客户端程序进行逐个下载安装及配置更新,这是一个体力活,而这也一直是使用户大量选择WEB程序的因素之一。
在Rich Client时代,由于宽带网络的便利,在客户端仅仅需要从服务器端下载已经更新好的程序运行,而不必理会繁琐的下载、安装和配置的过程。这里不得不提Java的是技WebStart术。
WebStart
WebStart(Java Web Start)是让用户只需在网页上点击一个超级链接就能运行一个Java桌面应用的技术。对于一个拥有WebStart能力的Java应用来说,用户使用它就和使用WEB应用一样的简单,但它所具有的界面能力和本地处理能力却是WEB应用无法望其项背的。
通信机制
除了快捷方便的发布外,Rich Client还需要与服务器端建立一种快速、可靠、强大、易用的通信交互机制。但我们开发WEB应用时,表现层和业务服务层常常只是同一个进程中的不同对象,它们之间的交互不过是Java的方法调用而已,当表现层逻辑被分发到世界各地的计算机上,客户端和服务器之间的交互就成了一个大问题——从前的B/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是由美国UserLand公司指定的一个RPC协议。它将RPC信息封包编码为XML,然后通过HTTP传输封包;它是一个简单的RPC协议,只支持一些基本数据类型,不支持对象模型,这势必掣肘在客户端和服务器端之间传输复杂的对象。
SOAP
SOAP即Simple Object Access Protocol(简单对象访问协议)是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议。它允许所有的操作在80端口上进行,从而也绕过了防火墙等问题。
SOAP规范中有三个基本组成部分:SOAP封装,编码规则,以及在请求和响应之间的交互方式。
目前已有的基于JAVA提供SOAP功能的产品有:Apache SOAP, IBM SOAP4J等
Hessian
Hessian是由Resin应用服务器的开发商Caucho公司制定的一个RPC协议,虽然它也是通过HTTP协议传输RPC封包,但是它的RPC封包却是以二进制形式编码的,而且能够表现对象模型和异常体系,这就使得Hessian比XML-RPC具有更高的效率。
开源开发平台
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本地代码,从而大大提高运行效率。
IBM AlphaWorks网站近日发布了用于开发Laszlo应用程序的集成开发环境(实际上是一个Eclipse插件),使J2EE开发者能够在他们熟悉的Eclipse环境中快速开发基于Laszlo的rich client应用程序。此外,AlphaWorks网站还提供了一个用Laszlo开发的示例应用,展示了在Eclispe环境下开发Laszlo应用的过程。
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的应用。
全国各地天气预报查询

上海市

  • 市辖区
  • 云南省

  • 临沧市
  • 云南省

  • 丽江市
  • 云南省

  • 保山市
  • 云南省

  • 大理白族自治州
  • 云南省

  • 德宏傣族景颇族自治州
  • 云南省

  • 怒江傈僳族自治州
  • 云南省

  • 文山壮族苗族自治州
  • 云南省

  • 昆明市
  • 云南省

  • 昭通市
  • 云南省

  • 普洱市
  • 云南省

  • 曲靖市
  • 云南省

  • 楚雄彝族自治州
  • 云南省

  • 玉溪市
  • 云南省

  • 红河哈尼族彝族自治州
  • 云南省

  • 西双版纳傣族自治州
  • 云南省

  • 迪庆藏族自治州
  • 内蒙古自治区

  • 乌兰察布市
  • 内蒙古自治区

  • 乌海市
  • 内蒙古自治区

  • 兴安盟
  • 内蒙古自治区

  • 包头市
  • 内蒙古自治区

  • 呼伦贝尔市
  • 内蒙古自治区

  • 呼和浩特市
  • 内蒙古自治区

  • 巴彦淖尔市
  • 内蒙古自治区

  • 赤峰市
  • 内蒙古自治区

  • 通辽市
  • 内蒙古自治区

  • 鄂尔多斯市
  • 内蒙古自治区

  • 锡林郭勒盟
  • 内蒙古自治区

  • 阿拉善盟
  • 北京市

  • 市辖区
  • 吉林省

  • 吉林市
  • 吉林省

  • 四平市
  • 吉林省

  • 延边朝鲜族自治州
  • 吉林省

  • 松原市
  • 吉林省

  • 白城市
  • 吉林省

  • 白山市
  • 吉林省

  • 辽源市
  • 吉林省

  • 通化市
  • 吉林省

  • 长春市
  • 四川省

  • 乐山市
  • 四川省

  • 内江市
  • 四川省

  • 凉山彝族自治州
  • 四川省

  • 南充市
  • 四川省

  • 宜宾市
  • 四川省

  • 巴中市
  • 四川省

  • 广元市
  • 四川省

  • 广安市
  • 四川省

  • 德阳市
  • 四川省

  • 成都市
  • 四川省

  • 攀枝花市
  • 四川省

  • 泸州市
  • 四川省

  • 甘孜藏族自治州
  • 四川省

  • 眉山市
  • 四川省

  • 绵阳市
  • 四川省

  • 自贡市
  • 四川省

  • 资阳市
  • 四川省

  • 达州市
  • 四川省

  • 遂宁市
  • 四川省

  • 阿坝藏族羌族自治州
  • 四川省

  • 雅安市
  • 天津市

  • 市辖区
  • 宁夏回族自治区

  • 中卫市
  • 宁夏回族自治区

  • 吴忠市
  • 宁夏回族自治区

  • 固原市
  • 宁夏回族自治区

  • 石嘴山市
  • 宁夏回族自治区

  • 银川市
  • 安徽省

  • 亳州市
  • 安徽省

  • 六安市
  • 安徽省

  • 合肥市
  • 安徽省

  • 安庆市
  • 安徽省

  • 宣城市
  • 安徽省

  • 宿州市
  • 安徽省

  • 池州市
  • 安徽省

  • 淮北市
  • 安徽省

  • 淮南市
  • 安徽省

  • 滁州市
  • 安徽省

  • 芜湖市
  • 安徽省

  • 蚌埠市
  • 安徽省

  • 铜陵市
  • 安徽省

  • 阜阳市
  • 安徽省

  • 马鞍山市
  • 安徽省

  • 黄山市
  • 山东省

  • 东营市
  • 山东省

  • 临沂市
  • 山东省

  • 威海市
  • 山东省

  • 德州市
  • 山东省

  • 日照市
  • 山东省

  • 枣庄市
  • 山东省

  • 泰安市
  • 山东省

  • 济南市
  • 山东省

  • 济宁市
  • 山东省

  • 淄博市
  • 山东省

  • 滨州市
  • 山东省

  • 潍坊市
  • 山东省

  • 烟台市
  • 山东省

  • 聊城市
  • 山东省

  • 菏泽市
  • 山东省

  • 青岛市
  • 山西省

  • 临汾市
  • 山西省

  • 吕梁市
  • 山西省

  • 大同市
  • 山西省

  • 太原市
  • 山西省

  • 忻州市
  • 山西省

  • 晋中市
  • 山西省

  • 晋城市
  • 山西省

  • 朔州市
  • 山西省

  • 运城市
  • 山西省

  • 长治市
  • 山西省

  • 阳泉市
  • 广东省

  • 东莞市
  • 广东省

  • 中山市
  • 广东省

  • 云浮市
  • 广东省

  • 佛山市
  • 广东省

  • 广州市
  • 广东省

  • 惠州市
  • 广东省

  • 揭阳市
  • 广东省

  • 梅州市
  • 广东省

  • 汕头市
  • 广东省

  • 汕尾市
  • 广东省

  • 江门市
  • 广东省

  • 河源市
  • 广东省

  • 深圳市
  • 广东省

  • 清远市
  • 广东省

  • 湛江市
  • 广东省

  • 潮州市
  • 广东省

  • 珠海市
  • 广东省

  • 肇庆市
  • 广东省

  • 茂名市
  • 广东省

  • 阳江市
  • 广东省

  • 韶关市
  • 广西壮族自治区

  • 北海市
  • 广西壮族自治区

  • 南宁市
  • 广西壮族自治区

  • 崇左市
  • 广西壮族自治区

  • 来宾市
  • 广西壮族自治区

  • 柳州市
  • 广西壮族自治区

  • 桂林市
  • 广西壮族自治区

  • 梧州市
  • 广西壮族自治区

  • 河池市
  • 广西壮族自治区

  • 玉林市
  • 广西壮族自治区

  • 百色市
  • 广西壮族自治区

  • 贵港市
  • 广西壮族自治区

  • 贺州市
  • 广西壮族自治区

  • 钦州市
  • 广西壮族自治区

  • 防城港市
  • 新疆维吾尔自治区

  • 乌鲁木齐市
  • 新疆维吾尔自治区

  • 伊犁哈萨克自治州
  • 新疆维吾尔自治区

  • 克孜勒苏柯尔克孜自治州
  • 新疆维吾尔自治区

  • 克拉玛依市
  • 新疆维吾尔自治区

  • 博尔塔拉蒙古自治州
  • 新疆维吾尔自治区

  • 吐鲁番市
  • 新疆维吾尔自治区

  • 和田地区
  • 新疆维吾尔自治区

  • 哈密市
  • 新疆维吾尔自治区

  • 喀什地区
  • 新疆维吾尔自治区

  • 塔城地区
  • 新疆维吾尔自治区

  • 巴音郭楞蒙古自治州
  • 新疆维吾尔自治区

  • 昌吉回族自治州
  • 新疆维吾尔自治区

  • 自治区直辖县级行政区划
  • 新疆维吾尔自治区

  • 阿克苏地区
  • 新疆维吾尔自治区

  • 阿勒泰地区
  • 江苏省

  • 南京市
  • 江苏省

  • 南通市
  • 江苏省

  • 宿迁市
  • 江苏省

  • 常州市
  • 江苏省

  • 徐州市
  • 江苏省

  • 扬州市
  • 江苏省

  • 无锡市
  • 江苏省

  • 泰州市
  • 江苏省

  • 淮安市
  • 江苏省

  • 盐城市
  • 江苏省

  • 苏州市
  • 江苏省

  • 连云港市
  • 江苏省

  • 镇江市
  • 江西省

  • 上饶市
  • 江西省

  • 九江市
  • 江西省

  • 南昌市
  • 江西省

  • 吉安市
  • 江西省

  • 宜春市
  • 江西省

  • 抚州市
  • 江西省

  • 新余市
  • 江西省

  • 景德镇市
  • 江西省

  • 萍乡市
  • 江西省

  • 赣州市
  • 江西省

  • 鹰潭市
  • 河北省

  • 保定市
  • 河北省

  • 唐山市
  • 河北省

  • 廊坊市
  • 河北省

  • 张家口市
  • 河北省

  • 承德市
  • 河北省

  • 沧州市
  • 河北省

  • 石家庄市
  • 河北省

  • 秦皇岛市
  • 河北省

  • 衡水市
  • 河北省

  • 邢台市
  • 河北省

  • 邯郸市
  • 河南省

  • 三门峡市
  • 河南省

  • 信阳市
  • 河南省

  • 南阳市
  • 河南省

  • 周口市
  • 河南省

  • 商丘市
  • 河南省

  • 安阳市
  • 河南省

  • 平顶山市
  • 河南省

  • 开封市
  • 河南省

  • 新乡市
  • 河南省

  • 洛阳市
  • 河南省

  • 漯河市
  • 河南省

  • 濮阳市
  • 河南省

  • 焦作市
  • 河南省

  • 省直辖县级行政区划
  • 河南省

  • 许昌市
  • 河南省

  • 郑州市
  • 河南省

  • 驻马店市
  • 河南省

  • 鹤壁市
  • 浙江省

  • 丽水市
  • 浙江省

  • 台州市
  • 浙江省

  • 嘉兴市
  • 浙江省

  • 宁波市
  • 浙江省

  • 杭州市
  • 浙江省

  • 温州市
  • 浙江省

  • 湖州市
  • 浙江省

  • 绍兴市
  • 浙江省

  • 舟山市
  • 浙江省

  • 衢州市
  • 浙江省

  • 金华市
  • 海南省

  • 三亚市
  • 海南省

  • 三沙市
  • 海南省

  • 儋州市
  • 海南省

  • 海口市
  • 海南省

  • 省直辖县级行政区划
  • 湖北省

  • 十堰市
  • 湖北省

  • 咸宁市
  • 湖北省

  • 孝感市
  • 湖北省

  • 宜昌市
  • 湖北省

  • 恩施土家族苗族自治州
  • 湖北省

  • 武汉市
  • 湖北省

  • 省直辖县级行政区划
  • 湖北省

  • 荆州市
  • 湖北省

  • 荆门市
  • 湖北省

  • 襄阳市
  • 湖北省

  • 鄂州市
  • 湖北省

  • 随州市
  • 湖北省

  • 黄冈市
  • 湖北省

  • 黄石市
  • 湖南省

  • 娄底市
  • 湖南省

  • 岳阳市
  • 湖南省

  • 常德市
  • 湖南省

  • 张家界市
  • 湖南省

  • 怀化市
  • 湖南省

  • 株洲市
  • 湖南省

  • 永州市
  • 湖南省

  • 湘潭市
  • 湖南省

  • 湘西土家族苗族自治州
  • 湖南省

  • 益阳市
  • 湖南省

  • 衡阳市
  • 湖南省

  • 邵阳市
  • 湖南省

  • 郴州市
  • 湖南省

  • 长沙市
  • 甘肃省

  • 临夏回族自治州
  • 甘肃省

  • 兰州市
  • 甘肃省

  • 嘉峪关市
  • 甘肃省

  • 天水市
  • 甘肃省

  • 定西市
  • 甘肃省

  • 平凉市
  • 甘肃省

  • 庆阳市
  • 甘肃省

  • 张掖市
  • 甘肃省

  • 武威市
  • 甘肃省

  • 甘南藏族自治州
  • 甘肃省

  • 白银市
  • 甘肃省

  • 酒泉市
  • 甘肃省

  • 金昌市
  • 甘肃省

  • 陇南市
  • 福建省

  • 三明市
  • 福建省

  • 南平市
  • 福建省

  • 厦门市
  • 福建省

  • 宁德市
  • 福建省

  • 泉州市
  • 福建省

  • 漳州市
  • 福建省

  • 福州市
  • 福建省

  • 莆田市
  • 福建省

  • 龙岩市
  • 西藏自治区

  • 山南市
  • 西藏自治区

  • 拉萨市
  • 西藏自治区

  • 日喀则市
  • 西藏自治区

  • 昌都市
  • 西藏自治区

  • 林芝市
  • 西藏自治区

  • 那曲市
  • 西藏自治区

  • 阿里地区
  • 贵州省

  • 六盘水市
  • 贵州省

  • 安顺市
  • 贵州省

  • 毕节市
  • 贵州省

  • 贵阳市
  • 贵州省

  • 遵义市
  • 贵州省

  • 铜仁市
  • 贵州省

  • 黔东南苗族侗族自治州
  • 贵州省

  • 黔南布依族苗族自治州
  • 贵州省

  • 黔西南布依族苗族自治州
  • 辽宁省

  • 丹东市
  • 辽宁省

  • 大连市
  • 辽宁省

  • 抚顺市
  • 辽宁省

  • 朝阳市
  • 辽宁省

  • 本溪市
  • 辽宁省

  • 沈阳市
  • 辽宁省

  • 盘锦市
  • 辽宁省

  • 营口市
  • 辽宁省

  • 葫芦岛市
  • 辽宁省

  • 辽阳市
  • 辽宁省

  • 铁岭市
  • 辽宁省

  • 锦州市
  • 辽宁省

  • 阜新市
  • 辽宁省

  • 鞍山市
  • 重庆市

  • 重庆市

  • 市辖区
  • 陕西省

  • 咸阳市
  • 陕西省

  • 商洛市
  • 陕西省

  • 安康市
  • 陕西省

  • 宝鸡市
  • 陕西省

  • 延安市
  • 陕西省

  • 榆林市
  • 陕西省

  • 汉中市
  • 陕西省

  • 渭南市
  • 陕西省

  • 西安市
  • 陕西省

  • 铜川市
  • 青海省

  • 果洛藏族自治州
  • 青海省

  • 海东市
  • 青海省

  • 海北藏族自治州
  • 青海省

  • 海南藏族自治州
  • 青海省

  • 海西蒙古族藏族自治州
  • 青海省

  • 玉树藏族自治州
  • 青海省

  • 西宁市
  • 青海省

  • 黄南藏族自治州
  • 黑龙江省

  • 七台河市
  • 黑龙江省

  • 伊春市
  • 黑龙江省

  • 佳木斯市
  • 黑龙江省

  • 双鸭山市
  • 黑龙江省

  • 哈尔滨市
  • 黑龙江省

  • 大兴安岭地区
  • 黑龙江省

  • 大庆市
  • 黑龙江省

  • 牡丹江市
  • 黑龙江省

  • 绥化市
  • 黑龙江省

  • 鸡西市
  • 黑龙江省

  • 鹤岗市
  • 黑龙江省

  • 黑河市
  • 黑龙江省

  • 齐齐哈尔市