软件架构从C/S到B/S的转变,反映了Internet应用技术的进步与繁荣。然而,B/S能否解决所有软件应用问题,仍值得商榷。不断变化的应用需求,期待更加全面的技术覆盖更加广泛的软件应用。作为微软.NET战略发布之后又一新理念,Smart Client(智能客户端)已经成为支撑无缝计算的基础所在。
今天,越来越多的人发现,B/S架构虽然得到了最好的支持,但是对于不断出现的新的需求,依旧有心无力,许多事情依旧需要回归到C/S架构,于是有人提出了“回归胖客户端”的论调。姑且不去论证其准确性,但是有一点可以肯定,一种新的文化正在渐渐颠覆经过许多年发展建立起来的B/S文化。
自.NET战略推出以来,一个新的概念也随之广为人知—Smart Client。可以预见的是,未来几年智能客户端将成为应用开发的主流架构。
面对当前B/S架构的种种问题,软件业提出了一些新的架构作为解决方案。未来的应用在技术架构经历了大型机到C/S再到B/S发展历程后,摈弃了各阶段不同软件架构的缺点,期待着既具有更加丰富表现力又契合开发、应用和维护需要的客户端,Smart Client正是如此。
开启Smart Client之门
让我们首先记住一个名字:Tim John Berners-Lee。
正是这个英国人在不经意间改变了整个世界,也成就了B/S时代的辉煌。1989年3月Tim提出利用Hypertext(超文本)构造链接信息系统的设想,并于1991年在此基础上Tim开发了第一个真正意义上的Web 服务器—HTTPD、第一个客户端浏览器—World Wide Web,之后又在1991年建立并开通第一个WWW网站。而1993年5月,伊利诺斯州大学的天才少年Marc Andreessen开发了第一个浏览器Mosaic,从此Internet终于得到了爆炸性的普及,也成就了后来昙花一现的Netscape(曾经达到94%的市场占有率),随后微软加入,点燃了浏览器大战的战火……
伴随着浏览器大战,人们从真正意义上享受到了科技进步给人类带来的福祉。一夜之间,B/S结构成为应用开发的主流架构,浏览器成为客户端的唯一工具,这种不需要部署的软件应用确实给了很多人无限的期待。ISV、解决方案提供商及其企业用户纷纷不约而同地提出采用B/S架构作为企业信息应用的架构,因为那样可以免除之前C/S时代高昂的部署和升级费用,使其能够快速适应不断变动的企业业务。渐渐地,他们发现自己不断复杂化的业务通过简单的页面浏览已经无法满足要求,这个时候相关的客户端脚本技术开始走上舞台。说起来有点戏剧性,Netscape设计脚本的初衷本是为了让网页有更好的浏览性和趣味性,让更多人去享受网上冲浪的乐趣。但是,他们并没有想到这个概念却被后起之秀发挥到极致,脚本越来越“无所不能”,等到硝烟散去,一切已经面目全非,其臃肿不堪的结构再次成为开发人员的噩梦。为了沿袭C/S结构下的界面使用体验,开发人员不得不利用大量的JavaScript和DHTML去实现或者说去“模拟”传统应用程序的使用界面,比如菜单、工具条,还有那复杂的图形和表格。也正因此,Web开发成为当今最火爆的应用领域竞技场,无数的开发人员和各种各样的技术在其中竞相角逐,相关的服务器开发技术如ASP、PHP、JSP还有后来的王者ASP.NET,客户端技术则包括了HTML、CSS、JavaScript、DHTML等技术。
B/S不是万能的
在解决了部署和更新的问题之后,B/S同样引入了一些令人头痛的问题:
始终没有一个非常标准的技术规范来约定,由此造成了各个浏览器在W3C之外做的扩展,在应用开发中,更多的是需要依赖于这些扩展去实现更加绚丽的图形表现和灵活的交互;
作为浏览器大战的胜利者,IE从2001年之后就没有推出过重要版本的更新,这也就意味着我们所有的开发技术都是2001年之前的理念,这与服务器端技术的快速发展相比已经略显脱节;
基于浏览器的应用,因为安全等方面的原因始终不足以成为应用的集成者,更多时候是被动的去接受单一服务器提供的应用;
基于浏览器的应用,严格意义上说是依赖于在线访问而构建的应用,在需要一些离线)的应用中,就显得有心无力,毕竟从浏览器设计的一开始就是希望能够在一个最小权限的“沙盒”模型下去运行。因此,对于本地资源的访问在默认情况下是拒绝的,而部分浏览器允许通过设置来跨越这个安全模型,却没有提供一个相应非常良好的权限分层机制,安全闸门一旦打开,一切便都会暴露在洪水猛兽之前,令人防不胜防,根本无法保证安全;
目前的Web应用开发都是采用脚本技术,但是各个浏览器对于脚本的支持程度却不尽相同,比如微软的IE浏览器同时提供了VBScript和JScript(微软自己对于JavaScript的扩展),Mozilla也提供了自己的JavaScript实现,但是对于ECMA Script Edition 2的支持程度却不完全一致。
面对当前的问题,软件业界提出了一些新的架构作为解决方案,那就是Smart Client。
许多人会问,什么是Smart Client,它又如何能够代表下一代应用的趋势,如何赢得未来呢?
简单而言,Smart Client是一个连接互联网的设备,允许用户本地应用程序通过Web服务和服务器应用程序交互,从而结合了胖客户端应用程序的丰富特性和瘦客户端应用程序的易于部署和可管理的特性,能够为用户提供更加高效和丰富的应用。例如,运行文字处理程序的Smart Client可以通过网络和远程数据库交互,从数据库获取文档处理需要使用的数据;运行Windows Mobile的智能手机可以从网络上获取相关图书的信息,可以获取天气预报。要获得这些功能,不需要其它设备,只需要这些终端拥有网络连接和后台的Web服务。
胖瘦客户端优点集于一身
Smart Client可以灵活而充分使用客户端资源 ,包括客户端的硬件资源和软件资源,可能是利用客户端的CPU计算能力,也可能是利用其存储能力,还可能是利用客户端的资源提供更加友善的用户体验。
利用这种技术能够智能集成网络资源服务。通常而言,Smart Client是整个应用系统的一个部分,大部分商务逻辑还是在服务器端实现,那么Smart Client就必须尽可能利用通过网络可以获取的资源和服务,不限于提供分别的应用程序,而是整合在分布式商业应用环境中的组成部分。
并不是所有的应用都能够保证随时在线,需要保证在明确脱机,使用低带宽或高延迟网络,或者连接时断时续的情况下继续高效地工作。
通过一个集中的服务器,Smart Client通过网络可以非常容易地实现部署和更新。这是和传统胖客户端程序最大的不同之处,Smart Client应用程序可以在其运行时或位于后台时进行自动更新,避免陷入版本的噩梦。
Smart Client应用程序能够运行在许多具有网络连接能力的设备上,包括台式机、工作站、笔记本、PDA、智能手机等,并能够通过分布在不同平台上的Web Services实现跨平台应用。
这些完整地反映了Smart Client应用程序的优点,在融合了胖客户端和客户端的优势之外,还引入了智能网络连接和数据管理的功能。由于Smart Client应用程序涵盖各个领域,这些程序在设计和实现上的差异比较大。从最终运行平台来划分,大致可以分为如下三类:
Windows Smart Client通过.NET Framework 1.1,WindowsSmart Client应用程序极大地发展了原先的胖客户端应用程序架构,并且在原来的基础之上,提供了完整的Smart Client特性,Microsoft Money和Microsoft Outlook就是这种应用的典型案例。
Office Smart Client应用程序 从Office 2003开始,Office文档已经不仅仅是静态的数据,通过内置的XML支持和Web服务的访问能力,在企业应用领域,Office System成为信息工作者最有效的工作平台,同时也成为Smart Client应用程序的运行平台。用户可以在不离开Office的情况下访问企业数据,也可以根据文档提供的标记扩展操作企业业务。
移动Smart Client应用程序 自从微软将Pocket PC和SmartPhone整合在统一的平台“Windows Mobile”下之后,基于Windows Mobile的应用也越来越多,同时Visual Studio .NET对于移动开发也提供了强有力的支持,通过.NET Compact Framework和越来越多的模拟器,基于移动的Smart Client应用程序开发已不再是难题。
Smart Client带来什么
在微软的开发代号为“Longhorn”的新一代操作系统没有到来之前,相信Smart Client必将是未来几年中基于客户端应用的主流软件技术架构,因为大部分的客户端应用都是承载在Windows操作系统之上。
在智能设备领域,微软经过几年的努力,已得到了越来越多的厂商支持,基于Windows Mobile的相关应用也越来越广泛。在Longhorn中的图形和展示引擎Avalon问世之前,Smart Client将是客户端开发的代名词,与之竞争的技术还有Java的WebStart。随着Visual Studio 2005的即将发布,它所提供的ClickOne技术会将Smart Client推向一个更加成熟的阶段。
Smart Client可以提供强大的客户端体验,动态适应不断变化的商业需求,这与IBM倡导的“On Demand”战略颇有异曲同工之感。随着与第三方ISV的进一步合作,同时也随着技术爱好者的开发,以Smart Client概念和技术的产品必将成为网络应用的主流,从而进一步地丰富和强化网络功能。
Smart Client很好地集合了胖瘦客户端的很多优点的优势
揭开Smart Client技术真谛
通过.NET Framework,利用Visual Studio.NET,微软在Smart Client的设计、开发、测试和部署等各个阶段都提供了全面的支持,主要有以下这些相关的技术:
应用程序块(Application Block)
为了帮助更多的软件开发人员利用.NET技术快速构建功能强大的应用系统,微软的Practice & Pattern小组编写了大量应用程序块以帮助开发人员从繁琐重复的编程中解脱出来,从而更加专注于业务的实现。这些应用程序块包括授权、缓存、配置管理、数据访问、异常管理、自动更新、日志、Smart Client离线支持及其用户界面等方面,几乎涵盖了商业应用领域需要考虑的所有底层功能支持。其中的离线支持管理和自动更新为开发人员在开发Smart Client应用程序的过程中提供了有效的帮助,可以利用这些应用程序块,快速开发出Smart Client应用程序。
离线应用程序块(OAB,Offline Application Block)可以为应用程序提供支持脱机工作的功能。而更新应用程序块(UAB,Updater Application Block)为客户应用程序的自动更新和安装提供了一个可伸缩的基础架构,开发人员可以利用其构建一个需要智能更新的应用程序。在一些大型机构的应用中,通常需要保证所有桌面应用程序都是最新版本,系统管理员或者工程师只需做一次部署和安装,在此后的运行过程中可自动及时更新应用程序。如果没有这一组件的帮助,开发人员将重新回归胖客户端时代部署困难的灾难之中,而UAB可以很好地解决这一问题。
所有的应用程序块都是以源代码的形式提供的,同时提供了大量的文档和示例,开发人员可以非常方便地将代码集成到自己的应用程序中去,从而构建出功能强大的Smart Client应用程序。
智能文档和信息检索服务
作为Office 2003的创新,智能文档(Smart Document)和信息检索服务(Research Services)在真正意义上为Office提供了内在的交互可能性,利用这些技术,我们可以轻松地构建出基于文档的应用系统。
利用智能文档,我们可以在普通文档中嵌入一些高度交互的应用,在原有文档的基础上提供更加强大的交互功能;同时构建在Office System中的还有另外一个强大的功能—信息检索服务。
虽然智能文档和信息检索服务提供了强大的客户端交互功能,但是其产生的标记是相对不容易理解的XML标记,微软的MSDN开发站点提供了一些工具和SDK用来帮助开发人员加速应用开发,并提供了必要的指导使XML更易被人理解。
同时Visual Studio.NET Tools for Office(VSTO)为Word和Excel提供了托管代码扩展的对象模型访问入口。利用VSTO,开发人员能够构建出功能强大的OfficeSmart Client应用解决方案,因为其不仅提供了访问Word和Excel的全部功能,并且能够利用.NET Framework的全部特性诸如Windows Forms。VSTO允许开发人员方便地创建和调试应用解决方案。VSTO本质上来说是提供了代码隐藏(Code-Behind)的文档来组成应用解决方案,从而能够利用“宿主”应用程序提供的各种功能。
Smart Client的安全支持
作为一种客户端表现技术,Smart Client是分布式应用程序,通常跨越多种不同的产品和技术。那么如何去保证这些应用程序的安全呢?在服务器端,需要采用一套方法来保护网络、服务器本身及其应用程序;在客户端,应集中于利用平台的安全特性、客户端代码可以执行的特权操作(代码访问安全)以及与服务器平台和服务器应用程序的交互。
Smart Client技术通过一系列的安全措施,如身份验证、授权、数据验证、保护敏感数据、审核和日志记录、异常管理和更改和配置管理等来去保证从服务器到客户端应用程序的安全。
通过应用程序块,在.NET Framework强大的安全性和可扩展性的基础之上,Smart Client提供了全面可靠的安全支持。Smart Client技术构建在“可信任计算”的基础上,从设计、开发、测试、部署各个过程都提供了安全参考,利用.NET Framework全新的安全模型,可以开发出安全的应用;利用Office的IRM(Information Rights Management),用户可以严格的控制文档的阅读、转发、复制等过程。
Office信息桥框架(IBF)
在商业企业办公中用得最多的软件是Office套件。但是在Word中写一篇报告或者在Excel中编写财务收支表的时候,我们常常要切换到企业的内部系统中,或者用IE或者用专门的客户端软件来查找自己需要的信息,诸如客户表、营业额、库存情况等。
IBF正是针对这样的问题而提出的解决方案,它构建在智能文档技术之上,目的是使Office文档和企业提供的Web服务连接起来,其核心目标是:使典型的 Office 用户或信息工作者能够在 Office 应用程序内部发现并执行企业业务对象。这些业务对象使用专门用于表现松耦合的企业业务线(LOB)系统中的数据和操作的 Web 服务进行公开。换句话说,作为解决方案的开发人员,可以使用信息桥框架来实现某些方案,使用户能够在不离开Microsoft Office应用程序的情况下访问重要的业务数据和过程。
通过IBF,用户可以简化解决方案开发。开发人员可以开发独立于Web服务的Office解决方案,从而使Office到企业解决方案的开发大大简化。因为解决方案是在元数据中定义的,所以开发人员编写少量代码或者不用编写代码就可以构建简单而强大的Office解决方案。IBF能够帮助用户提供灵活高效的扩展应用解决方案。IBF很容易进行扩展、更新或修改。自描述元数据、UI 控件、Web 服务可以在组织内的多个功能性解决方案中重用。因此,可以将新的解决方案部署或添加到现有的应用程序中,而无需进行重新编码。
应用推动技术创新
Smart Client绝不可能仅仅停留在概念上,Smart Client显然更贴近实际,一系列成功的商业案例正在证明Smart Client已经在商业应用中持续地创造出新的成就。
作为中国高等教育的典型代表,复旦大学管理学院的MBA管理与教育服务信息系统从很大程度上体现了高等教育体制、服务管理和信息技术的完美结合。作为MBA项目核心业务系统,它将支撑管理学院MBA管理与服务的日常运营,从系统上保证复旦MBA项目的长期竞争优势;将支持MBA项目从新闻发布、招生宣传、学生教学与教务管理、学位管理、日常信息服务、就业信息服务、到学生毕业信息服务的各项工作;支持学院各项目的年度教学计划、统计分析工作等一系列基础业务。
通过调研,他们选择了Smart Client技术,因为它可以解决目前管理学院MBA管理与教育服务存在的种种问题。一方面Smart Client可以拥有C/S强大的表现能力,同时在部署简洁方面上并不输于B/S;另一方面,可以将整个系统以模块的形式分割,利用Web服务通信,使整个系统松耦合,以后每个模块都可以剥开独立使用,这样也增加了复用的机会。系统架构与信息交互原理如右图所示,Smart Client技术提供了胖客户端技术和瘦客户端技术所没有的优势:
首先,客户端安装简便。该系统在安装时只要将一个主程序文件下载到本地,直接运行即可,无须改变注册表或共享的系统组件,其他应用组件将在第一次运行时自动下载;
其次,服务器端更新便捷。只需将新版本的程序发布在服务器上,由客户端自动发现最新版本的程序和应用组件,并自动下载和更新;允许脱离服务器时,利用本地的客户端程序和应用组件进行工作;
第三,能够轻松实现后续开发和部署。应用软件开发商可根据企业应用系统的公共接口进行开发,然后将应用组件发布在企业的服务器上,客户端应用程序将自动发现并加载该应用组件。
另外,Smart Client提供个性化用户界面,用户可根据喜好自行设置客户端应用程序,配置信息将被保存到服务器上。
目前,系统已经正式投入使用,同时因为架构的高度可扩展性也为二期开发带来了极大的便利。
LeySer System则是另外一个Smart Client技术的成功应用案例,它是一系列具有悠久历史的学校系列管理系统软件,具体产品有学校会计、学校给与、人事管理、学费管理、资产管理系统、PhotoBoard。LeySer软件在同类软件的日本市场占有率排名第一,达到了70%之多,其版本也在不断更新,为了满足新的用户需求和适应新技术的发展,8.0版本以大幅度地重新制作和全新设计实现了前所未有的多功能和高性能。在Windows平台和Internet环境下可,以更简便的操作性成为面向学校法人的最强的会计系统。
LeySer System的客户端属于Smart Client的范畴,它们可以为用户提供内容丰富且响应迅速的用户界面,提供脱机工作的能力,并且提供利用本地硬件和软件资源的方法。Smart Client为用户提供了在强大且直观的客户端环境中访问信息和远程服务的能力,并且是一种用来开发灵活的、面向用户的应用程序以及提高用户工作效率和满意度的有效的解决方案。应用Smart Client技术,LeySer比其它同类系统提供了更多的特性支持,包括自动更新、离线使用和数据缓存。
此外,在一些高端行业例如金融证券业中也采纳了Smart Client的解决方案,并且在实际应用中取得了很大的成功。一家国内的大型商业银行的金融服务开发和管理平台采用了Windows窗体技术实现的Smart Client,提高了业务流程设计界面的可用性;更广为人知的是中国工商银行通过将自助终端系统构建在WinForm之上,内嵌IE控件,不仅提供了强大的浏览能力,同时提供了丰富的客户端体验;银河证券在其风险监控系统的开发中,也引入了Smart Client技术,以实现程序的自动升级,免除了繁琐的维护工作,融合了“瘦”客户端易维护和“胖”客户端功能丰富两方面的优势。甚至,在个人应用中也出现了采用Smart Client技术的情况。就所有这些应用看来,Smart Client已经在各个领域得到比较成熟的应用,并且将会得到越来越多的认可,也将逐渐普及。
复旦大学管理学院的MBA管理与教育服务信息系统系统示意图
结束语
B/S架构的不足、终端设备的多样化、应用需求的不断扩展,这些因素结合起来宣告了一个时代更替的到来。如同在一场烧荒的野火之后恢复旺盛生机的热带草原,软件世界也正在构造其新一代的“生态系统”,从中催生出更加富有生命力的技术架构,而智能客户端正是这一时代的产物。
某些人或许不会很快转变,毕竟B/S架构曾经是市场的主流。但是所有的技术都会被更新的技术所替代。尽管我们会继续看到基于浏览器的应用程序仍会在某些情况下被开发和沿用许多年,但是下一代应用方向是明确的,智能客户端定将随着网络和应用的发展而成为主流。
浙公网安备 33010602011771号