胖客户端模式将应用程序处理分成了两部分:由用户的桌面计算机执行的处理和最适合一个集中的服务器执行的处理。一个典型的胖客户端包含一个或多个在用户的PC上运行的应用程序,用户可以查看并操作数据、处理一些或所有的业务规则——同时提供一个丰富的用户界面做出响应。服务器负责管理对数据的访问并负责执行一些或所有的业务规则。这种模式也有一些“变种”,它们主要处理业务规则和数据的物理位置。重点是,胖客户端应用程序是在用户的计算机上运行的。
瘦客户端是使用浏览器来提供应用程序(以 HTML 定义的)用户界面的执行环境的客户端应用程序。作为应用程序平台的Internet的到来为企业应用程序提供了一个全新的领域:一个基于Internet/intranet的应用程序运用一个只包含一个浏览器的瘦客户端。这个浏览器负责解释、显示和处理应用程序的图形用户界面(GUI)和它的数据。这样的一个应用程序只需要被安装在一个Web服务器上,用户可以自动接收升级。一个解决方案只需要部署一次,甚至对成千的用户也是如此,这种想法的确很吸引人,尤其是Internet技术帮我们缓解了一些传统的应用程序的障碍,比如防火墙和对多平台的支持。
智能客户端和瘦客户端之间的主要区别在于智能客户端不依赖于浏览器来为其操作提供执行、安全性和用户界面环境。此外,智能客户端(而不是 HTML 和 Jscript)通常采用在客户端计算机上运行的已编译代码部件(组件、程序集等)来提供应用程序的用户界面和客户端逻辑。智能客户端与胖客户端有何关系?胖客户端应用程序已经发展为智能客户端应用程序。相较于瘦客户端应用程序,胖客户端提供了许多优点,包括改进了的性能、更佳的响应效果和灵活性以及脱机工作的能力,但是在以可靠的方式部署和更新方面,胖客户端存在一系列运行问题。瘦客户端解决方案当然地在部署和更新方面更具优势,这也是它们受欢迎的一个主要原因。
但是,智能客户端应用程序通过借鉴瘦客户端应用程序的可管理性优势,并结合以胖客户端应用程序的优点,代表了一种面面俱到的方法。智能客户端是革除了劣势的胖客户端,通过采用新技术和技巧避免了传统胖客户端应用程序的缺陷。所有智能客户端都具有下列部分或全部特征: 利用本地资源 ,利用网络资源 ,支持偶尔连接的用户 ,提供智能安装和更新 ,提供客户端设备灵活性 。
C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。。 B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。
浏览器架构的误区和瘦客户端应用
企业信息应用领域,也就是在一瞬间,无论是厂商还是客户都满口的浏览器和B/S,似乎天下最好的、唯一应该存在的就是纯浏览器模式,其它的都是落后的技术。虽然有很多继承自电子商务的概念,但大部分是各有各自的目的。
在这次B/S架构的热闹喧嚣中,一部分是厂商跟风,有很大一部分软件厂商利用开发周期快的ASP、JSP等网络开发语言,快速的研发了企业信息应用系统如ERP、CRM、SCM等,为了与老牌的成熟系统的竞争而力主纯浏览器模式的先进性。
客户也盲目了,因为大部分时间客户是处于一个信息不对称的角度,媒体的宣传背后更多的是厂商赞助支撑的,客户从一些显性的利益点出发也开始跟风,纯浏览器似乎一下子可以解决客户的维护成本。
当这种声音越来越多的时候,真理便退避三舍了,厂商、用户和媒体在不遗余力的重复着这个概念:B/S!
系统应用现状分析
在企业信息化应用领域,有一句很有意思的话:最先进的不一定是最稳定的;最成熟的不一定是最先进的,而最适合企业的不一定是最先进的!这句话有很多角度,首先确认了没有最好,只有最适合;另外,最先进的技术一般成熟度稍差,企业应用可能承担一定的测试风险。
B/S架构的确是一种很灵活的模式,但是我们可以看出同样是纯浏览器模式,却也有着很大的差别。
一部分厂商缺乏对技术的深层次理解,还停留在网络编程向企业应用研发过渡的阶段,最差的直接就是ASP语言对数据库,稳定性和数据处理量级都很低;稍好的是网络编程语言对网络中间件再对数据库的三层模式,这样还较好的处理了一些矛盾,但是其灵活性和拓展性还是很差。
如果来分析MySAP.com和Siebel的纯浏览器模式,这2家ERP和CRM的leader厂商原来都是C/S模式,也都是在别的竞争对手之后才开始的e化行动,即使是浏览器模式,也可以进行面向对象的实体设计、视图定制、工作流定义等功能。也就是浏览器只是它的前端表现,而最强大的是后台的引擎平台。这也是前面那些厂商所缺乏并应该加强的地方。
纯浏览器模式的一个很大的特点是:部署简便。只需要安装配置一套服务器,其它的终端只要有浏览器就可以通过网络或者其它手段访问服务器,进行业务应用操作。这样对项目实施的成本和周期的控制很有效用的。
纯浏览器模式的另外一个的特点是:客户端零维护。企业用户不需要再对客户终端一一维护,技术问题、版本更新、数据效验等都只需要在服务器端由系统管理员来统一维护,这样用户操作员可以集中精力放在核心业务上。
最先进的技术也存在问题
最新的技术总会有一些让人兴奋的点,也中会有一些让人失落的点。盲目追求先进技术只能陷入重重问题的包围之中。我们从企业应用的多个角度来探讨一下目前的web技术和传统技术的问题所在。
安全性 这是很多企业应用所忽略的问题。诸如CRM、ERP等企业管理信息系统,都运行着企业的关键数据,在稳定的同时也要求数据的安全性。传统的C/S技术或者基于C/S技术的远程和web service都是经过加密进行传输的数据,而浏览器模式的数据,大部分都是通过IE浏览器传输,没有再进行加密,因此完全有可能再网络上侦听到IE传输的数据并加以分析复原,这是不得不考虑的问题,好在现在的web技术越来越成熟,可以通过IE浏览器之外的加密来实现,只是又要牺牲速度了。
网络安全性的问题,web模式的应用系统应该向电子商务系统好好学习,电子商务在一起步的时候就开始考虑安全性和速度的问题了。
网络成本 国内的网络实际情况与国外的不同,国内的网络成本还是比较高的,如果再加上速度的因素。大型企业能够铺设自己的专线广域网或者VPN专用网,其一次性投入和维护、运营费用是很高的。而大部分企业能够采用ADSL已经是不错的,何况还有更多的中小型企业采用拨号网络,尤其是遍布全国区域的销售网络的网络问题也是参差不齐,所以再国内应用系统的网络成本是浏览器模式的主要困难之一,而不稳定、速度奇慢的网络使本来便捷的浏览器模式的应用系统变得恐怖起来。
网络速度与时效性 追求了技术的先进性,我们却不能拥有先进技术的快速,当网络速度的问题出现的时候,我们就要比较对数据时效性的要求,难道企业真的一定需要实时数据吗?如果延迟一点时间来定时同步数据不可以吗?我们为什么要为了一个企业本来可能不需要的时效性而追求先进技术?
比如保险行业,保险经纪人实际上不需要实时的数据,只要能够脱机操作,查询险种产品,并记录客户信息和需求,手工填写保单就可以了,拜访完毕再同步数据并进入订单系统进行订单输入确认就可以的。所以,如果实时的浏览器模式的费用很高的话,为什么不采取保守的方式呢?
web交互技术 先进技术也有其不成熟的一面,web技术在人机交互方面比传统的C/S技术稍逊一筹。C/S技术有成熟的人机交互和底层系统交互的方法,而web技术还需要进一步加强,这也是web模式的应用界面一般比较简洁,而C/S技术模式的应用界面看起来很复杂或者很灵活。
微软的.Net技术和web service战略将更好的加强web交互技术的提升,并到达一个新的高度,那个时候可能真的不需要C/S技术了,但是钱却都跑到微软那去啦。
内部网络与外部网络 企业应用都有一个范围,并非所有企业都需要将应用拓展到外部网络,而那些仅仅在内部网络进行应用的企业用户,基于目前的环境完全可以采用C/S技术从而获得更成熟的应用,其操作性和灵活性并不比web模式差,而维护成本、运营成本不一定就高。我有时候也怀疑所谓web模式厂商的宣传,不知道他们做过具体的统计没有,就一口咬定web模式省钱。
如果是外部网络,就需要精打细算,外部应用的需求和数量是怎么样的?网络速度和成本是怎么样的?数据的时效性要求是怎么样的?使用者的习惯是怎么样的?…很多因素需要你仔细决策,而不是拍脑袋式的人为决定。
误解瘦客户端应用
对于C/S技术的客户端,很多企业和某些厂商的别有用心的理解是片面的。对于传统的客户端和现在改进后的客户端是完全不同的,我们不妨来认识一下。
客户端零维护 很早之前的客户端(五年前我也曾经编写过这样的程序),是那种呆板的技术,客户端执行文件是单独的exe,如果版本升级和改动是需要一个个去更新的。而现在的客户端技术,是在用户端安装一个最基本的系统元素库,所有的界面、代码逻辑流、数据等都在数据库中,所谓插件技术。就如同给了一大堆积木在客户端,而行状是怎么样的存放在服务器的数据库上,要更新界面、组件和代码逻辑流等只要在服务器进行更新,所有的客户端都能够在访问的实时同步更新。
这其实也是实现了零维护,而且在本地的元素库更好的支持了人机交互。
WinFrame和Citrix 很多人对WinFrame和Citrix技术比较陌生,这是一种终端技术,最初是在局域网的无盘工作站使用比较多的技术,这几年在企业应用领域有了长足发展。它将企业应用系统打包为类似web service,各应用点只需要安装一个很小的WinFrame或Citrix终端就可以实时访问企业应用系统,它支持各种通讯协议,可以有效的提供类似于web模式的应用。而且传输数据都经过特点的加密和压缩。
交互性 瘦客户端技术的交互性经过多年的发展已经比较成熟,其与操作系统API的结合,与底层通讯的融合,与多媒体的互动,与各种系统技术的嵌合等,都体现了很高的交互性。而web技术目前的发展水平还暂时不能与客户端技术的交互性相提并论,但是随着web技术的发展这种差距会越来越小,最终web技术可能会超越客户端技术,尤其是在web service方向成为主流发展方向的时候。
安全性和可靠性 前面多处都提到过安全性,作为瘦客户端的应用,可以有效的确保数据的安全性,同时在可靠性方面也有一定的优势。浏览器应用在遇到我们速度慢合数据堵塞的时候经常造成数据丢失和操作失误,而且浏览器技术的漏洞也经常使web应用出现一些不可再现的奇怪的问题。如果对数据安全性和操作严谨性要求比较高的话,瘦客户端应用是不错的选择。
客户需求驱动
其实我们说了这么多,差不多是之上谈兵,最主要的还是客户的需求是什么?
基于以上的讨论,我们不妨来看看以下行业:
如:银行、保险等?
如:大型分销企业等?
如:全国区域移动销售等?
相信大家都有自己的答案了。
没有最好的技术,只有符合客户需求的技术方案,这是企业信息化选择技术的一个宗旨,可惜的是客户需求驱动却常常被忽略。