软件提供商意识到这个问题,在企业级的 internet 的应用中,很多时候不得不应用胖客户的一些技术,于是 ActiveX 出现了。 Activex 从严格意义上说,是一种胖客户,它具有胖客户的一些主要特性,只不过利用了微软提供的 IE 浏览器的一些特性。 Activex 确实解决了一部分问题,但是它引起了更多的问题,破坏了 internet 应用的平台无关特性, Activex 的不安全性、防火墙和远程接入的问题等等。
在 J2EE 平台方面,出现了 applet ,一种可以从服务器上下载在客户虚拟机上运行的 java 小程序,相对于 Activex 而言, applet 安全的多,但是 applet 同样存在很多缺陷,尤其是早期的 java 图形用户界面系统的感观大不如 window 下的界面,在实际中 applet 用的也很少。
Activex 和 applet 从本质上说,都是对网页浏览器的扩展,实际的运行还是要基于客户机的运行环境,是“胖客户”戴上了“瘦客户”的面具,但它满足了部分客户需要的基于浏览器的统一界面架构的需求。
随着基于 Internet 的企业应用的增多,基于 HTML 的用户界面的诟病越来越引起人们的重视。近两年来,富客户端( Rich Client )的概念正深入人心。而富客户端比用 HTML 能实现的界面更加健壮、反应更加灵敏和更具有令人感兴趣的可视化特性。
富客户和胖客户有什么不同?胖客户往往在客户端的实现中,掺杂了很多与显示无关的业务逻辑,所以客户端显得臃肿,逻辑不清,不太符合企业应用中一个基本的 设计模式,分层设计,即客户端只关注表现层的操作逻辑,而业务逻辑在后台的服务器上运行。同时,富客户又具有胖客户的大部分优良特性,表现力强,响应快等 等。
同时富客户抛弃了传统胖客户的一些缺点,吸收了基于 HTML 的瘦客户的优点,适合 internet 的环境,能够象在 Web 系统中一样简单的方式来部署和使用富客户端程序,具体来讲:包括客户端的免维护特性,跨平台特性,并且在远程访问是基于 HTTP 协议,而不是其它的协议,可能被防火墙所屏蔽。
伴随着 Rich Client 的出现,现 RIA ( Rich Internet Application )富互联网应用系统。随着市场竞争的日益激烈,信息化是企业提高竞争力的一个有效手段。但现在的很多应用系统还不能适应 internet 的环境,如集团公司的 ERP 系统,虽然通过 VPN 等技术可以解决问题,但是面临诸多的限制,如销售人员出差以后就无法使用企业的系统。 RIA 的概念与企业的这些需求很符合,因而受到越来越多人的关注。在技术层面上,也出现了很多的技术和相关的解决方案。
1 AJAX 。 严 格说 ajax 并不是一个新的技术,而是现有 html 、 xml 、 javascript 等技术的一个混合体。如上所述, ajax 是构建在 html 基础之上的,通过 xml 和 javascript 技术,弥补了 html 在交互能力上的一些缺陷,给人印象深刻的是 google map ,用户选择放大或者缩小地图时,不象传统的 web 技术那样,需要重新载入整个页面,用户需要耐心的等待,ajax 的客户端与传统的 web 客户端没有本质的区别,所以客户端只需要 web 浏览器即可。但 ajax 技术不可能突破 html 语言的表现能力,在很多企业级的应用上受到限制,另外, ajax 需要大量的 javascript ,开发的成本之高,令人望而却步。在实际的企业应用中,如果没有特别成熟的工具,基本不可能全面的使用。
2 Macromedia Flash 和 Flex 。 Flash 是一个已经成熟的商业产品,它可以在 Web 网页中引入交互式的图形界面。最近经过升级后,新版本包含了建立窗体风格的应用程序的功能。尽管 Flash 作为一个在 Web 上最广泛部署的前端技术还有争议(取决于所选用的 Flash Player 版本),但据称已经有 98 %以上的桌面系统都支持 Falsh 。由于用来创建动画式图形的 Flash 工具其功能十分强大和是可视化的(与之相反其它技术要求进行低级的图形编码),所以图形设计人员使用起来十分得心应手。 Flah 采用的脚本语言是 ActionScript--ECMAScript 1.5 的一个变种,该脚本语言又被称为 JavaScript 。 Flex 产品对 Flash 增加了一个 XML 描述语言,使得可以编译用户界面,并且能够用 Flash Player 来随时进行描述。 Flex 使得传统的开发机构能更好地了解和使用 Flash 。 Flex 和 Flash 的最大缺点在于对 XML 和 Web 服务等标准的支持很有限,而且作为应用开发工具的环境还不大成熟,在实际的企业级应用中,罕有成功的案例。 Flex 和 Flash 的优点在于它可以很容易的用来创建复杂的动画式显示,以及可以使用第三方附件。
3 java web start 。 Java web start 技术使得客户机可以从服务器上动态的下载并运行 java 应用程序。但是 java 开发包提供的图形用户界面开发起来没有 windows 环境下的那么方便,需要大量的编码。
此外还有其它的技术。一方面,越来越多的人认识到了富客户的价值,很多软件巨头也高度重视对富客户技术的研发,富客户技术在企业应用中也得到了应用。但总 体而言,由于富客户的开发成本居高不下,目前的应用多是局部性的,但富客户的技术和产品无疑具有广阔的市场前景。
对于企业用户而言,选择什么样客户端技术也是需要慎重考虑的。由于很多销售人员的宣传,在很多企业用户那里形成了根深蒂固的观点,只要不是浏览器界面,都 是 C/S 架构的应用系统,反之都是 B/S 架构的系统, B/S 比 C/S 先进等等。实际上,选择什么样的客户端技术是和企业应用的类型所决定的。
RichExplorer 及其相关的技术数神科技有限公司推出 RIA 解决方案。 RichExplorer 基于 java 技术,工作原理类似传统的 web 浏览器,即从远程的服务器端下载页面描述文件(目前支持三种格式的描述,传统的 HTML 语言的描述, XML 语言的描述和基于 java 语言的描述)和客户端操作逻辑的代码,并解析展现给用户。因为界面的展现过程利用了 java 相关的 GUI 图形库,可以得到表现能力相当强的界面效果。
RichExplorer 符合 Rich client 的特点,如客户端免维护。远程访问完全基于 HTTP ,防火墙不需要开其它的端口,表现能力强。除此以外, RichExplorer 还具有上文提到的其它方案所不具有的特性。
1 一种模式,多种应用 。 RichExplorer 内置传统的 web 浏览器( IE , firefox 等),只要接入 internet ,你可以自由地浏览网页(如图一所示),还可以自由访问你的 ERP 或者 CRM 系统(如图二所示),在使用以上两者的模式是一样的。
图一 使用 RichExplorer 浏览普通的网页
图二 使用 RichExplorer “浏览” ERP 系统
2 大大降低开发成本 。 前文提到的很多产品或者技术方案,他们都面临着一个很大的问题,就是开发的成本高,维护困难。 RichExplorer 的底层是数神科技开发的智能用户界面框架( SmartUI ),在界面的解析过程中,能够应用相关的知识推理,解释并展现出符合用户需求的界面。而在开发的过程中,支持模型驱动的开发模式,不仅没有增加客户端的开 发工作量,反而大大节省了工作量,同时还提高了客户端的适应需求变化的能力。
3 开发工具的支持 。 RichExplorer 的客户端开发工具可以用传统的网页编辑器,如 dreamweaver ,甚至可以使用 word , excel 这样的可以绘制表格的软件。因为 RichExplorer 的页面描述文件只需要关心页面中各个元素的布局。专门为 RichExplorer 客户端定制的开发工具也正在研发当中,界时,还能把界面开发的效率再提高数倍以上。
4 开放架构 。 RichExplorer 的本身是基于插件式的开放体现架构,你可以方便的利用插件的插拔特点,增加或者删除一个功能。在 RichExplorer 中, 任何一个功能,如 CRM , ERP ,或者聊天工具、邮件收发、视频会议工具等,都可以作为 RichExplorer 的一个插件。 RichExplorer 本身集成了单点登录的功能,就你可以根据实际情况逐步的扩充你的应用,而所有的操作集成到一个统一的界面下完成,不需要每天在不同的工具中切换了。
5 前端整合平台 。 RichExplorer 还基于一种全新的 SOA 的理念。 SOA 是面向服务的架构。在企业应用的服务器端,有很多开放的标准,如 WebService , BPEL 等,基于这些技术可以把功能包装成服务发布出来,当应用流程或者逻辑发生变化时,只需要重新组合或者替换现有的服务就可以。但这些都是在服务器端的集成。 RichExplorer 把目光聚焦于前端的集成。企业往往有很多应用,由不同的软件开发商提供,技术架构等各不相同,如何把这些数据和服务在前端也进行集成,根据不同的角色配置 不同的视图,用户只需要登录 RichExplorer ,就可以便捷地完成所有的工作。 RichExplorer 倡导客户端 SOA 的理念,每一个界面都可以基于 XML 描述成一个服务,不同的界面的协作通过流程的配置来完成。
6 在企业级应用中经过检验的技术。 RichExplorer 已经在很多企业级的应用中得到全面的应用,是成熟的产品和技术。立即体验 RichExplorer ,点击此处下载。
RichExplorer 作为一种成熟的富客户解决方案,但并不局限于此。 RichExplorer 从开始规划的那一刻起,就要求 RichExplorer 不仅仅是提供一种富客户的技术和产品,更重要的是如何提升企业级用户界面的开发速度和界面适应需求变化的能力,如何在现有的企业架构中,整合企业现有的用 户界面或者快速替换现有的界面,所以 RichExplorer 是和 MDA (模型驱动架构)开发平台 BusinessLine 的整体架构以及 SOA 是紧密联系的。 在 RichExplorer3.0 的规划中,将继续坚持这两个方向,一个是“快速”,一个是“整合”。
此外, RichExplorer 还将朝着“ Business DIY ”的方向迈进,“计算机 DIY ”已经深入人心,但在软件方面, Business DIY ,也在逐步的接近现实。 MDA 的一大特点就是提升了编程的抽象层次,利用可视化的人类容易理解的模型替代了传统的编程语言。在用户界面方面, RichExplorer 已经提高了模型的解析和分析的能力,随着 RichExplorer 开发工具的完善,大多数用户界面用户都可以自己定制和开发,这必将极大的提高企业应用软件的灵活性和适应需求变化的能力。