Smart Client助力应用系统开发

时间:2022-08-26 07:47:36

Smart Client助力应用系统开发

从当前Internet/Intranet应用所受到的各种挑战来看,丰富的客户端表现已经得到企业、系统架构师以及开发人员的认同。虽然不同的厂商对未来的网络应用的理解和宣传不尽相同,但是一个高度交互、高性能、高效开发的客户端正在成为主流趋势。Smart CIient(智能客户端)就是这一技术趋势变革潮流中具有代表性的一个架构。

在大多应用程序开发过程中,开发人员会各应用程序分成三层:数据层、逻辑层及其表现层,也就是通常意义上的软件三层架构。其中,表现层又称为用户交互层,主要提供用户和应用系统的交互入口,对于一个应用系统实施的成败是至关重要的。假如应用程序不能够保证以一种有效的方式和最终用户交互,那么即便其后台设计得再完善,仍然难以避免应用实施的失败,至少应用系统会大打折扣。

一个不恰当的表现层架构可能导致复杂度提高、灵活性缺失和令人沮丧的用户体验。如何选择合适的表现层架构呢?如何在B/S架构和SmartC Client之间做出选择,这对于应用系统架构师是一个不小的挑战。

作为一种更为灵活的表现层架构,SmartClient继承和拓展了胖客户端的概念,既具有B/s架构中央管理的灵活性,又具有胖客户端的高度响应和高性能。因此,结合了B/S和C/S架构各自优点的Smart Client正在取得广泛的应用。

新架构带来更多收益

Smart Client整体架构如图1所示。为了以经济高效的方式适当地实现Smart Ctient架构的应用程序,提供更好的性能、用户体验、响应性、灵活性、离线支持,并使程序的部署、更新和维护管理变得更为容易,NET技术提供了很多支持,例如:利用VS.NET和NET架构的强大功能和高效的生产力Applicatlon Block的组件支持等。借助这些强大的开发工具,可以大大减少开发人员的工作量,缩减开发周期和开发成本。

更强大的运行环境

浏览器更多意义上是一个运行时环境(Runtime Environment),只不过这个运行时仅仅提供了HTML、CSS和脚本的执行环境,当然也可以通过实现更多的可执行组件以应对不同的业务要求。但是,随之带来的问题却是明显的。我们要完成一个非常复杂的界面时,经常不得不“混合”采用不同的技术,如:HTML、CSS、JavaScript、ActiveX及不同浏览器的扩展技术,以构建出用户期待的交互界面。在C/S架构中一些很简单的功能,如:拖/放和Undo/Redo要在B/S中实现是非常困难的。此外,B/S架构可以很好地以预定义的方式处理线性的交互,但对更复杂的交互,会面临不小的挑战。

作为Smart Client的运行环境―NET架构则更为强大,提供了许多现代编程语言的功能。开发人员可以通过强大的现代编程语言开发更加复杂的应用。相对于浏览器这个有限的执行环境而言,NET提供了运行时检查、代码安全、认证和授权、GDI+、数据访问等等在构建应用系统中需要使用的技术,而最大的好处在于,NET架构本身是一个整体,能够将这些技术很好的整合在一个平台下。

VS.NET在ASP.NET上提供了完整的解决方案,使其成为在Web开发领域的”杀手级”应用框架,在针对SmartClient的开发上,VS.NET同样提供了出色的支持,从而有效地缩短应用开发周期。相对于基于B/S应用中那些繁琐的脚本代码调试,VS.NET提供了一整套很好的的工具用以实现Smart Client的开发,包括编码、调试、部署等等,对于以降低TCO为目标的企业而言,无疑将带来极大的好处。

简化部署与更新

SmartClient在部署和更新管理上也提供了很好的选择。Updater ApplicationBlock(UAB)是一个能够被用来将新版本应用程序下载到客户机器上(例如:使用BITS)的组件。图2为UAB体系结构示意图。它包括一个声明,用来指定所有相关的文件,并确保整个应用程序都被下载下来了。同时,它对自定义的下载提供了可选的文件验证和支持,还提供了验证组件。

微软创建UAB的目的是希望开发人员将其作为设计自己的自动更新应用解决方案的基础,当你的应用程序需要自动升级新组件,或者当你正在编写某项服务以向客户机器提供各种应用程序的升级时,开发者可以使用UAB在应用程序中实现可自动升级的功能。UAB的主要功能表现在以下几个方面:

.为.NET架构应用程序实现基于“拉”机制的更新解决方案;

.使用加密验证技术,在使用应用程序更新之前验证它们的真实性;

.在没有用户干预的情况下执行后部署配置任务;

.帮助编写能够自动将其本身更新为可用的最新版本的应用程序。

通过将无接触部署与应用程序更新存根结合起来,UAB还可以帮助开发者简化部署和更新,以及在完全受信任的环境中运行应用程序的能力。

赋予离线工作能力

随着基于SmartPhone、PDA等设备终端的应用逐渐被企业采纳,终端设备呈现出多样化的趋势,对于网络环境的要求也随之越来越松散,是否具备“有时离线”的能力也逐渐成为企业应用是否成功的一个关键指标。

OAB(Offline Applicatlon Block)从本质上来讲是提供基于Internet/Intranet应用离线的支持。开发人员可以将更多的精力集中在业务方面,在应用场景中离线的基本实现,如:连接管理、离线检测、缓存更新等等功能都已经在OAB中得到了很好的封装。

今年2月,微软了EnterpriseLibrarY,这是一个旨在帮助开发人员应对企业应用通常面临的挑战的应用程序块组合,它整合了原有Applica―tlon Block的多个模块,其中包括OAB、UAB、DAAB等众所周知的应用程序块。通过Enterprise Library,较之以前的应用程序块更加凸显一致性、可扩展性,易于使用和集成。

集成更多应用软件

一直以来,微软的产品都在强调“Connected System"的理念,在整个产品线的设计过程中也非常注重各个产品之间的互操作能力。在浏览器里面调用其它应用程序通过ActiveX是,惟一的选择,但混合应用程序的开发和部署成本是高昂的。

使用,NET技术创建Smart Client程序,不仅可以利用,NET本身提供的强大功能,也带来了非常好的互操作性,提供了完善的托管类库以应对,NET环境。这些方法保证了与其他应用程序良好的互操作性,比如将应用系统的某些内容Word文档化,提取某些Office文档的数据作为输入源,将一些应用报表转移到其它应用系统等等功能,通过SmartCli-ent都能够很好地实现。

纳斯达克(NASDAQ)与微软、普华永道会计师事务所合作构建了一套系统,让投资者与分析师可以简易提取、分析甚至比较所关注的股票数据。这个系统采用了智能客户端的概念,利用Office的智能文档技术和内置的Web服务访问能力,用户可以在不脱离Office应用的同时进行远程数据的访问,同时这些数据可以随时更新。现在,分析师只要数分钟即可取得所需报告。同时,由于上市公司的财务信息已经由Web服务以XBRL格式下载,投资者或分析师还能离线操作该系统,同时进行交叉分析。

充分利用客户端计算能力

脚本设计的开始就不是为分布式计算考虑的,基于浏览器的应用是将所有的计算都承载在服务器上。但是,在实际应用别是要求高度交互的环境下,选择浏览器作为运行环境的代价是昂贵的,比如应用要求复杂的数据校验和数据引用操作,一部分问题可以通过脚本来解决,但是其处理能力是受限制的。

因此,从本质意义上来讲,SmartCllent是客户端应用的延伸,目前的客户端计算能力已经可以等同于几年以前的工作站或者服务器,通过利用底层操作系统的控制能力,Smart Client能够尽最大可能的利用客户端资源,如大容量内存、高速CPU及其高度的网络带宽等等。在一些需要统计分析和数据挖掘的应用系统中,计算可以迁移到客户端来解决,如若采用单一的服务器模式,客户端有时会不得不无休止地等待计算结果,这将是一个可怕的灾难。

上一篇:项目管理 从工艺到品质 下一篇:三年,够了吗?