再转一篇智能客户端

来源:互联网 发布:solaris和linux 编辑:程序博客网 时间:2024/06/06 08:37

智能客户端

      智能客户端(Smart Client)是一个连接Internet的设备,允许用户本地应用程序通过Web服务和服务器应用程序交互,从而结合了胖客户端应用程序的丰富特性和瘦客户端应用程序的易于部署和可管理性。打个比方,一个运行文字处理程序(比如Office Word)的智能客户端可以通过网络和远程数据库交互,从数据库获取文档处理需要使用的数据;一个运行Windows Mobile的智能手机可以从网络上获取相关图书的信息,可以获取天气预报。获得这些功能,它们不需要其他设备,只需要拥有网络连接和后台的Web服务。

 

      智能客户端应用程序可能不像瘦客户端应用程序那么容易定义,这是因为它们可以采取许多种不同的形式,而不限于瘦客户端应用程序那样一成不变的方式。智能客户端和瘦客户端之间的主要区别在于智能客户端不依赖于浏览器来为其操作提供执行、安全性和用户界面环境。此外,智能客户端(而不是 HTML 和 Jscript)通常采用在客户端计算机上运行的已编译代码部件(组件、程序集等)来提供应用程序的用户界面和客户端逻辑。

      智能客户端与胖客户端有何关系?胖客户端应用程序已经发展为智能客户端应用程序。相较于瘦客户端应用程序,胖客户端提供了许多优点,包括改进了的性能、更佳的响应效果和灵活性以及脱机工作的能力,但是在以可*的方式部署和更新方面,胖客户端存在一系列运行问题。瘦客户端解决方案当然地在部署和更新方面更具优势,这也是它们受欢迎的一个主要原因。

      但是,智能客户端应用程序通过借鉴瘦客户端应用程序的可管理性优势,并结合以胖客户端应用程序的优点,代表了一种面面俱到的方法。智能客户端是革除了劣势的胖客户端,通过采用新技术和技巧避免了传统胖客户端应用程序的缺陷。

      例如,构建在 .NET 平台上的智能客户端应用程序可以利用一系列 .NET Framework 用以解决传统上与胖客户端应用程序相关联问题的重要技术。虽然始终都可以生成最小化或者避免了部署和安全缺陷的胖客户端应用程序,但 .NET Framework 提供的功能大大简化了这一工作。

      .NET 提供了从 Web 服务器部署应用程序或应用程序一部分的能力。这种技术称为无接触部署 (No-Touch Deployment),使您能够通过 URL 部署应用程序。这使得您能够将应用程序发布到一个中心位置(即发布到一台 Web 服务器),这样就可以根据需要自动部署该应用程序。所有客户端都可以自动保持最新状态,这是因为应用程序会在每次应用程序运行时自动检查更新,且每个客户端应用程序在必要时都可以下载新的代码。


图1:智能客户端体系结构的图示

      要完全了解智能客户端如何将胖客户端与瘦客户端的优点结合起来,有用的做法是分析胖/瘦客户端应用程序模型背后的历史和基础原理,并且回顾一些与它们相关联的优点和缺点。

      胖客户端(Thick Client)应用程序

      在二十世纪九十年代中期,为 Microsoft® Windows® 操作系统开发的胖客户端应用程序的数量急剧增长。设计这些客户端的目的是利用本地硬件资源以及客户端操作系统平台的功能。

      尽管许多上述应用程序的功能令人印象深刻,但它们都具有局限性。许多上述应用程序是独立的并且在客户计算机上工作,对它们的工作环境所知甚少或一无所知。该环境包括其他计算机和网络上的任何服务,以及用户计算机上的任何其他应用程序。非常常见的情况是,应用程序之间的集成局限于使用 Windows 提供的剪切或复制并粘贴功能在应用程序之间传输少量的数据。

      有一些有助于提高胖客户端应用程序连接性的技术。例如,两层应用程序使多个用户可以访问驻留在网络上的公用数据,而 DCOM 使应用程序可以具有更高的分布性。(就 DCOM 而言,不再将逻辑和状态与客户计算机相联系,而是将其封装在对象内,然后在多台计算机中分布这些对象。)但是,连接的应用程序的开发要复杂得多。随着这些分布式应用程序的规模和复杂性逐渐增加,将越来越难以维持客户端应用程序及它们使用的服务之间的紧耦合。

      尽管胖客户端通常提供了高质量、响应迅速的用户体验,并且具有良好的开发人员和平台支持,但它们非常难于部署和维护。随着应用程序和客户端平台的复杂性不断增加,以可靠且安全的方式将应用程序部署到客户计算机的难度也将不断增加。如果部署了不兼容的共享组件或软件库,则一个应用程序可以很容易地破坏另一个应用程序,这种现象称为应用程序脆弱性。新版本的应用程序通常通过重新部署整个应用程序来提供,这可能使应用程序脆弱性问题变得更加严重。

      瘦客户端(Thin Client)应用程序

      Internet 提供了传统胖客户端模型的替代模型,它解决了许多与应用程序部署和维护相关联的问题。基于浏览器的瘦客户端应用程序是在中央 Web 服务器上部署和更新的;因此,它们消除了将应用程序的任何部分显式部署到客户计算机并加以管理的必要性。

      该模型使各个公司可以非常高效地将它们的应用程序公开给规模庞大、多种多样的外部受众。因为瘦客户端已被证明能够高效地解决一些部署和可管理性问题,所以它们现在用于向组织内的用户提供对许多业务线 (LOB) 应用程序的访问,以及向客户和合作伙伴提供对面向外界的应用程序的访问。尽管事实上这两种用户的需要和期望通常是根本不同的,也是如此。

      瘦客户端应用程序具有一些缺点。浏览器必须总是具有网络连接。这意味着移动用户在断开连接时将无法访问应用程序,因此当他们返回办公室时,必须重新输入数据。而且,常用的应用程序功能(如拖放、撤消-重复以及上下文相关帮助)可能不可用,这可能降低应用程序的可用性。

      因为应用程序的大部分逻辑和状态位于服务器上,所以瘦客户端会频繁地向服务器发回数据和处理请求。浏览器必须等待响应到达,然后用户才能继续使用该应用程序;因此,该应用程序的响应速度通常要比胖客户端应用程序慢得多。该问题在低带宽或高延迟的情况下被恶化了,并且产生的性能问题可能导致应用程序可用性和用户效率大幅度下降。要求输入大量数据以及/或者在多个窗口中频繁导航的 LOB 应用程序尤其会受到这一问题的影响。


图 2:瘦客户端体系结构的图示

一、智能客户端的部分或全部特征

      智能客户端应用程序通常具有形形色色的要求,因此在设计和实现方面会有极大的差异。但是,所有智能客户端都具有下列部分或全部特征:
      •  利用本地资源
      •  利用网络资源
      •  支持偶尔连接的用户
      •  提供智能安装和更新
      •  提供客户端设备灵活性

      许多应用程序不需要具有上述所有特征。当您设计您的智能客户端时,将需要仔细考虑您的应用程序方案,并且决定您的智能客户端应用程序要求具备上述哪些特征。要将上述所有特征合并到您的应用程序中,将需要进行非常认真的计划和设计,并且在很多情况下您将需要大量的实现资源。

      注 .NET 框架可以帮助您实现智能客户端应用程序的许多特征。该框架提供了具备自我描述能力且牢固绑定的程序集,并且支持单独和并列安装应用程序的多个版本,从而有助于减少与胖客户端相关联的应用程序部署和脆弱性问题。.NET 框架基类库为与 Web 服务进行交互提供了广泛的支持,并且提供了 Windows 窗体。通过使用公共语言运行库 (CLR),您可以利用任何受到 .NET 支持的语言来开发智能客户端。

      使用本地资源

      设计良好的智能客户端应用程序最大限度地利用了代码和数据部署在客户端上并且在本地执行和访问这一事实。它为应用程序提供了内容丰富且响应迅速的用户界面,以及强大的客户端处理能力。例如,它可能使用户能够执行复杂的数据操作、可视化、搜索或排序操作。

      智能客户端可以利用客户端硬件资源(如电话或条码读取器)以及其他软件和应用程序。这使它们非常适合于解决瘦客户端应用程序(如销售点终端应用程序)无法很好解决的问题。智能客户端还可以利用本地软件(如 Microsoft Office 应用程序)或客户计算机上安装的任何 LOB 应用程序。通过创建能够与多个 LOB 应用程序集成并对这些应用程序进行协调的解决方案,您的用户可以更为有效地工作,进行更好的决策,并减少数据输入错误。此类解决方案还可以使您的应用程序更加紧密地与用户的工作环境集成(例如,通过采用自定义的或熟悉的用户界面),从而降低培训成本。

      可以通过智能客户端应用程序集成或协调其他客户端应用程序,以便提供一致且高效的总体解决方案。这些应用程序还应该了解正在使用应用程序的上下文,并且应该适应该上下文以尽可能地帮助用户;例如,通过根据用户的使用模式或角色抢先缓存适当且有用的数据。

      通过最大限度地使用本地资源以及将本地资源集成到您的智能客户端应用程序,可以使您的应用程序更好、更有效地使用已经提供给您的硬件。非常常见的情况是,处理能力、内存和高级图形功能没有得到利用。使用客户计算机上的资源还可以减少服务器端硬件要求。

      使用网络资源

      智能客户端可以通过网络消耗和使用不同的服务和数据。它们是从许多不同的源检索数据的有效方式,并且可以设计为对数据进行分析或整合,从而使用户能够进行更为有效和明智的决策。例如,智能客户端可以使用映射服务来提供有关地点和驾驶方向的详细信息。

      智能客户端应用程序应该尽可能地连接,并且应该利用可以通过网络使用的资源和服务。它们不应该是独立的应用程序,并且应该总是构成更大的分布式解决方案的一部分。智能客户端应用程序起码应该使用有助于维护该应用程序以及提供部署和更新服务的集中式服务。

      智能客户端应用程序的连接性质使其可以提供有价值的数据整合、分析和转换服务。它们使用户可以实时地或者在一段时间内协作完成任务。在许多情况下,智能客户端应用程序可以向用户提供类似于门户的功能,从而将完全不同的数据和服务加以协调并集成到总体解决方案中。

      支持偶尔连接的用户

      可以将智能客户端设计为向偶尔连接到网络的用户提供功能,从而使用户可以在明确脱机、使用低带宽或高延迟网络,或者连接时断时续的情况下继续高效地工作。对于移动应用程序,智能客户端还可以优化网络带宽 — 例如,通过将请求批量发送到服务器,以便更好地使用代价昂贵的连接。

      即使当客户端大多数时间都连接到网络时,智能客户端应用程序也可通过以智能方式缓存数据和管理连接来改善性能和可用性。例如,在低带宽或高延迟环境中,智能客户端应用程序可以用特殊的方式管理连接,即不损害应用程序的可用性和响应性,并且用户可以继续高效地工作。

      通过使用户能够在断开连接或只偶尔连接的情况下工作,提高了用户的工作效率和满意度。智能客户端应用程序应该致力于在脱机时提供尽可能多的功能。

      提供智能安装和更新

      传统胖客户端所具有的一些最大的问题发生在部署或更新应用程序的时候。许多胖客户端应用程序具有大量复杂的安装要求,并且可能通过注册组件以及/或者在公共位置安装 DLL 来共享代码,从而导致应用程序脆弱性和更新困难。

      可以对智能客户端应用程序进行设计,以使其按照远比传统胖客户端应用程序更智能和灵活的方式来管理它们的部署和更新。它们可以避免上述常见问题,从而有助于减少应用程序的管理成本。

      有许多部署智能客户端的不同方式。这些方式包括:简单地将文件复制到本地计算机;使用非接触式部署自动从中央服务器下载代码;或者使用企业推技术如 Microsoft Systems Management Server (SMS) 来部署 Windows Installer 软件包。您选择的方法将依赖于您的特定情况。

      智能客户端应用程序可以在其运行时或位于后台时对自身进行自动更新。这一功能使其可以逐个角色地进行更新;以分阶段的方式更新,从而可以将应用程序推介给先导小组或受限的用户组;或者按照制定的时间表更新。

      .NET 框架使您可以对应用程序组件进行强命名,这意味着应用程序可以指定用来生成和测试其确切版本的组件,并通过这些版本的组件运行。.NET 框架使应用程序可以相互隔离,以便在安装一个应用程序时不会破坏另一个应用程序,并且同一应用程序的多个版本可以并列部署。这些功能大大简化了应用程序部署,并且消除了许多与胖客户端应用程序相关联的应用程序脆弱性问题。

      提供客户端设备灵活性


      智能客户端还可以提供灵活且可自定义的客户端环境,从而使用户可以将应用程序配置为支持他或她喜欢的工作方式。智能客户端应用程序没有被限制到桌面计算机或膝上型计算机。随着小规模设备的连接性和能力的增加,愈发需要能够提供对多个设备上重要数据和服务的访问的有用客户端应用程序。与 .NET 框架压缩版一起,.NET 框架提供了一个可用来生成智能客户端应用程序的通用平台。

      可以对智能客户端进行设计以使其适应宿主环境,并且为它们运行时所在的设备提供适当的功能。例如,适合在 Pocket PC 上运行的智能客户端应用程序应该提供相应的用户界面,该用户界面在较小的屏幕区域上被调整为使用笔针。

      在许多情况下,您需要设计多个版本的智能客户端应用程序,每个版本都面向特定的设备类型,以便充分利用该设备所支持的特定功能。因为小规模设备通常在提供完整范围的智能客户端应用程序功能方面受到限制,所以它们可能只提供对功能完善的智能客户端应用程序所提供的数据和服务子集的移动访问,或者它们可用于在用户移动时收集和整合数据。最后,可以由功能更加完善的智能客户端应用程序或服务器端应用程序来分析或处理这些数据。

      能够感知目标设备的功能和使用环境(无论它是桌面、膝上型、平板还是移动设备),以及能够定制应用程序以提供最适当的功能,这些都是许多智能客户端应用程序的基本特点。

二、智能客户端的类型

      智能客户端在设计和实现方面差异极大,这既包括应用程序要求,也包括可以使用它们的方案和环境的数量。因此,智能客户端可以采取许多不同的形式和风格。根据智能客户端应用程序所面向的平台,可以将这些形式划分为三大类:
      •  Windows 智能客户端应用程序
      •  Office 智能客户端应用程序
      •  移动智能客户端应用程序

      智能客户端应用程序面向上述一种或多种平台是很常见的情况,具体取决于用户的角色以及需要的功能。这种灵活性是智能客户端应用程序的主要长处之一。

      本指南的其余部分将重点讨论所有三种类型的智能客户端应用程序所共有的问题,而不是详细解释影响个别类别的问题。但是,依次对各个类型进行简要分析,以便您可以确定哪种风格的应用程序最适合您的情况,这将是很有用的。

      Windows 智能客户端应用程序

      当您想到胖客户端应用程序时,您通常可能会想到使用可用的系统资源并且提供内容丰富的用户界面的桌面应用程序。面向 Windows 的智能客户端应用程序是在传统胖客户端应用程序的基础上发展而来的,并且提供特定的面向特殊目标的功能。

      这些种类的应用程序通常使用 Windows 窗体来提供熟悉的 Windows 风格的用户界面,并由应用程序本身提供大部分功能,而且不依赖于其他应用程序来提供主用户界面。这样的智能客户端既可能包括通过 HTTP 部署的简单应用程序,也可能包括非常复杂的应用程序。

      Windows 智能客户端应用程序适合于需要将应用程序作为熟悉的桌面类型应用程序进行部署和访问的情况。这些类型的应用程序通常由其自身提供其大部分功能,但是在适当的时候可以与其他应用程序集成或者协调其他应用程序。它们提供针对特定任务进行调整的应用程序功能,以提供特定的或高性能的处理或图形能力。

      Windows 智能客户端应用程序通常最适合于在桌面 PC、膝上型 PC 或平板 PC 上运行的应用程序。此外,它们通常不会提供与特定文档或文档类型紧密关联的功能。

      可以在各种各样的场合下使用这些种类的 Windows 智能客户端应用程序,例如作为 LOB、财务、科学或协作应用程序使用。这些种类的应用程序的示例有 Microsoft Money 以及 Microsoft Outlook® 消息处理和协作客户端。

      Office 智能客户端应用程序

      Microsoft Office System 2003 为您提供了用来生成智能客户端应用程序(尤其是在企业设置中)的有用平台。通过 Office 智能客户端解决方案,您可以将通过 Web 服务访问的数据源与 Word 2003、Excel 2003、InfoPath 2003 或其他 Office应用程序的功能集成起来,以开发智能客户端解决方案。

      这样的 Office 智能客户端应用程序可以成为组织的信息管理周期的集成部分,而不只是文档数据的静态容器。当用户在文档内工作时,它们可以提供上下文相关的数据,以及可以将 Web 服务公开的数据转换为有用信息的工作流和任务指导、数据分析、协作、报告和呈现功能。

       Microsoft Office 支持 XML,并且可以将该数据与文档的其他方面分开,以便它可以由其他应用程序重新使用。因为 Microsoft Office 中的应用程序数据可以由多个应用程序中相同的客户定义 XML 架构进行说明,所以开发人员可以将这些数据集成到智能客户端应用程序中。

      Microsoft Office 2003 具有许多用于生成智能客户端解决方案的重要功能和选项。这些功能和选项包括:

      •  智能标记。智能标记为应用程序提供一种方法,可以为用户提供与文档内容有关的上下文相关数据,用户在文档内工作时,可以通过该方法容易地查看和使用相关信息。例如,使用智能标记,可以在文档内引用客户时提供相应客户的帐户状态,或者可以在键入订单 ID 时提供订单状态信息。这种上下文相关的反馈使用户可以在工作时进行更为明智的决策。
      •  智能文档。智能文档为用户提供了更为强大的与文档和业务 Web 服务进行交互的方法。智能文档是 Word 2003 和 Excel 2003(它们具有基础 XML 结构和自定义的任务窗格)的一种新的解决方案模型。可以使用该任务窗格向用户显示上下文信息、任务、工具、后续步骤以及其他相关信息。用户能够通过与该任务窗格交互来启动其他操作和任务,从而可以构建综合性业务解决方案。
      •  适用于 Microsoft Office System 的 Microsoft Visual Studio_ 工具。该工具套件使开发人员能够通过使用 Microsoft Visual Studio .NET 2003 开发系统来创建托管代码 Office 智能客户端应用程序。开发人员可以将文档解决方案与基础代码分开(与以前的包含带有自定义逻辑的 Visual Basic for Applications 宏的智能客户端模型相比,这是一种替代解决方案)。通过将托管代码与 Microsoft Office 一起使用,开发人员可以获得更多为智能客户端解决方案创建、部署和管理更新的有效选项。
      •  Microsoft Office InfoPath™ 2003。InfoPath 2003 是能够使用类似于表单的界面从用户那里收集结构性数据的应用程序。InfoPath 2003 提供了对 XML Web 服务(一种基于表单的用户界面)的支持,以及对标准技术(如 WSDL 和 UDDI)的支持。InfoPath 2003 支持有限的脱机使用,方法是允许用户在脱机时与表单进行交互,然后允许用户在联机时将该表单转发给 Web 服务。

      移动智能客户端应用程序

      移动智能客户端是在智能设备上运行的应用程序,这些智能设备包括 Pocket PC、Smartphone 以及其他超小型台式设备(如机顶盒)。这些应用程序是使用 .NET 框架压缩版(它是完整 .NET 框架的子集)开发的。

      .NET 框架压缩版具有完整 .NET 框架的许多功能,支持 XML,并且消耗 Web 服务。它被进行了优化以便在超小型台式设备上使用,并且它包含用于开发用户界面的 Windows 窗体设计器。

      通过使用 Visual Studio .NET 智能设备项目,您可以开发能够在 .NET 框架压缩版上运行的智能客户端。采用这一方法,您可以通过在超小型台式设备的模拟器上使用 Visual Studio .NET 来开发、测试和调试应用程序。模拟器的使用大大加快了这些类型应用程序的开发和测试速度。

      移动智能客户端应用程序通常用于提供对重要数据和服务的移动访问,或者在用户处于移动状态时收集和整合数据。这些类型应用程序的示例有保险和金融数据收集应用程序、库存管理应用程序和个人工作效率管理应用程序。

三、智能客户端将带来什么?

      在开发代号为“Longhorn”的新一代操作系统没有到来之前,相信智能客户端必将是从现在开始未来几年中基于客户端应用的主流软件技术架构,因为大部分的客户端应用都是承载在Windows操作系统之上,而在智能设备领域,微软经过几年的努力也渐现佳绩,得到越来越多的厂商支持,基于Windows Mobile的相关应用也越来越广泛。在Avalon问世之前,智能客户端将是客户端开发的代名词,与之竞争的技术还有Java的WebStart。但是平心而论,那么多年以来,Java在企业级应用领域确实取得了自己的位置,而在桌面应用领域,从来没有占据过任何优势,从最初的Applet,还有随之提出的AWT和Swing,除非有明确跨平台的需求,不然基于Java开发桌面应用程序未免有鸡肋之嫌。随着Visual Studio 2005的即将发布,它所提供的ClickOne技术会将智能客户端推向一个更加成熟的阶段。

      如果说智能客户端可以带来什么,我想莫过于强大的客户端体验和动态适应不断变化的商业需求,这与IBM倡导的“On Demand”战略颇有异曲同工之感,但智能客户端其实早已走在了前面。

四、如何利用智能客户端技术

      如何利用智能客户端技术,它对于开发人员又提供了怎样的支持呢?答案是“Anything in .NET”,是的,通过.NET Framework,通过Visual Studio.NET,微软在智能客户端的设计、开发、测试和部署等各个阶段都提供了全面的支持,主要有以下这些相关的技术:

      Application Block(应用程序块)

      为了帮助更多的开发人员利用.NET技术快速构建功能强大的应用系统,微软的Practice & Pattern 小组编写了大量的应用程序块(Application Block)以帮助开发人员从繁琐重复的编程中解脱出来,从而更加专注于业务的实现。这些应用程序块包括授权、缓存、配置管理、数据访问、异常管理、自动更新、日志、智能客户端离线支持及其用户界面等方面,几乎涵盖了商业应用领域需要考虑的所有底层功能支持[3]。其中的离线支持管理和自动更新为开发人员在开发智能客户端应用程序的过程中提供了有效的帮助,可以利用这些应用程序块,快速开发出智能客户端应用程序。

      离线应用程序块(OAB,Offline Application Block)可以应用于如下场合,为应用程序提供支持脱机工作的功能。它们包括:

      l 检测网络连接是否存在,这样可以使应用程序能够根据其联机或脱机状态来执行
      l 缓存必要的数据,这样即使在网络连接不可用时,应用程序也可以继续运行
      l 当网络连接可用时,将客户端应用程序的状态和/或数据与服务器同步化

      OAB还可以利用其他的块组件。例如,它可以使用Caching Application Block来利用缓存,并将Caching Application Block作为其参考数据缓存的基础。它采用了面向服务的方法去设计各个子系统之间互为松耦合的组件。

      而更新应用程序块(UAB,Updater Application Block)为客户应用程序的自动更新和安装提供了一个可伸缩的基础架构,开发人员可以利用其构建一个需要智能更新的应用程序。在一些大型机构的应用中,通常需要保证所有桌面应用程序都是最新版本,系统管理员或者工程师只需做一次部署和安装,在此后的运行过程中可自动及时更新应用程序。如果没有这一组件的帮助,开发人员将重新回归胖客户端时代部署困难的灾难之中,而UAB可以很好的解决这一问题。

      所有的应用程序块都是以源代码的形式提供的,同时提供了大量的文档和示例,开发人员可以非常方便地将代码集成到自己的应用程序中去,从而构建出功能强大的智能客户端应用程序。

      智能文档和信息检索服务

      作为Office 2003的创新,智能文档(Smart Document)和信息检索服务(Research Services)在真正意义上为Office提供了内在的交互可能性,利用这些技术,我们可以轻松地构建出基于文档的应用系统。

      利用智能文档,我们可以在普通文档中嵌入一些高度交互的应用。举一个简单的例子,一个职员在填写一个请假申请单的时候,如果文档是基于SharePoint协同工作的,除了可以将文档存储到工作区等待上级领导批准,通过文档中的智能标记,我们还可以在提交文档的同时,给上级领导发出请求批准的通知,如果上级领导不在办公室,甚至可以自动发送短信息提醒他需要批准。这个时候,请假单就不单是一个数据文档,同时还包含了一些业务操作流程。再举一个例子,日常使用的报表需要引用许多相关的数据,按照传统的做法,我们需要系统开发人员预先定义这些报表(虽然很多报表工具提供了设计方面的支持,但是对于最终用户而言,依旧有点过于专业),而如果利用智能文档技术,我们可以在特定的位置插入智能标记,用户通过这个标记可以实现从远程数据源获取数据的操作,用来填充我们报告中需要的数据,而数据源既可以是远程数据库,也可以是Web Services。总而言之,智能文档在原有文档的基础上提供了更加强大的交互功能。

      而同时构建在Office System中的还有另外一个强大的功能——信息检索服务。

      信息检索服务可以让Office 2003中的所有工具使用网络上提供的信息检索功能(一种定制的Web服务),因此从根本上说信息检索服务就是一种Web Service。这种网络服务同普通的Web服务最大的区别就在于它传递经过特殊封装的SOAP信息,这种格式的信息能够被Office 2003内置的分析引擎正常识别和显示,因此具备了丰富的表现界面和交互能力。

      虽然智能文档和信息检索服务提供了强大的客户端交互功能,但是其产生的标记是相对不容易理解的XML标记,微软的MSDN开发站点提供了一些工具和SDK用来帮助开发人员加速应用开发,并提供了必要的指导使XML更易被人理解[4]。

      智能客户端的安全支持

      作为一种客户端表现技术,智能客户端是分布式应用程序,通常跨越多种不同的产品和技术。那么如何去保证这些应用程序的安全呢?在服务器端,需要采用一套方法来保护网络、服务器本身及其应用程序;在客户端,应集中于利用平台(其中包括操作系统和 Microsoft .NET Framework)的安全特性、客户端代码可以执行的特权操作(代码访问安全)以及与服务器平台(域)和服务器应用程序的交互。

      智能客户端技术通过如下一系列的安全措施去保证从服务器到客户端应用程序的安全:

      l 身份验证。确定客户端应用程序用户,保证认可的用户可以访问应用程序。
      l 授权。定义用户可以进行的操作,以保证非授权用户不会执行一些非法操作。
      l 数据验证。确保数据的有效性,防止攻击者通过恶意输入威胁应用程序的安全。
      l 保护敏感数据。对于敏感业务数据,通过可靠的数据加密来保证数据存储和传输过程的安全,维护其完整性。
      l 审核和日志记录。保存对事件和用户操作的记录,首要考虑将关键的用户操作或活动记录在服务器上,或者安全地记录在客户端上。
     l 异常管理。应用程序适当地处理异常和失败,并且返回用户友好的非敏感信息。对于一个成功的应用系统是至关重要的。而这些异常,同样需要能够被记录到日志。
     l 更改和配置管理。

      通过上述提到的应用程序块,在.NET Framework强大的安全性和可扩展性的基础之上,智能客户端提供了全面可靠的安全支持。智能客户端技术构建在微软“可信任计算”的基础之上,从设计、开发、测试、部署的各个过程都提供了安全参考。

 

 
 
原创粉丝点击