智能移动终端Word文件下载.docx
《智能移动终端Word文件下载.docx》由会员分享,可在线阅读,更多相关《智能移动终端Word文件下载.docx(66页珍藏版)》请在冰豆网上搜索。
本章讨论了智能客户端安全性的问题。
智能客户端将逻辑和数据分布到客户计算机上;
因此,所涉及到的安全性问题与瘦客户端应用程序不同,后者的数据和逻辑被更多地限制在服务器中。
本章讨论智能客户端应用程序中的数据安全性、身份验证、授权以及代码访问安全性的作用。
第6章:
使用多个线程
本章讨论与在智能客户端应用程序中使用多个线程相关的问题。
要最大限度地提高智能客户端应用程序的响应性,您需要认真考虑如何以及何时使用多个线程。
线程可以显著改善应用程序的可用性和性能,但当您确定线程将如何与用户界面交互时,需要进行非常认真的考虑。
第7章:
部署和更新智能客户端
智能客户端不会受到传统上与胖客户端应用程序相关联的部署和更新问题的困扰。
.NET框架和Windows平台所提供的功能可帮助您避免许多与传统胖客户端部署相关联的问题。
本章介绍如何最好地使用这些功能,以及如何对可用的部署和更新机制进行取舍。
第1章—简介
智能客户端体系结构与设计指南
DavidHill,BrentonWebster,EdwardA.Jezierski,SrinathVasireddyandMohammadAl-Sabt,MicrosoftCorporation;
BlaineWastell,AscentiumCorporation;
JonathanRasmussonandPaulGale,ThoughtWorks;
andPaulSlater,WadewareLLC
相关链接
Microsoft®
patterns&
practices库
ApplicationArchitecturefor.NET:
DesigningApplicationsandServices
摘要:
欢迎阅读《智能客户端体系结构与设计指南》。
智能客户端应用程序是瘦客户端应用程序的强大替代产品。
它们可以为用户提供内容丰富且响应迅速的用户界面,提供脱机工作的能力,并且提供利用本地硬件和软件资源的方法。
此外,可以将它们设计为在各种各样的客户端设备上运行,包括桌面PC、平板PC以及手持移动设备(如PocketPC和Smartphone)。
智能客户端为用户提供了在强大且直观的客户端环境中访问信息和远程服务的能力,并且是一种用来开发灵活的、面向用户的应用程序以及提高用户工作效率和满意度的有效的解决方案。
经过设计,智能客户端应用程序可以将胖客户端应用程序的传统优点与瘦客户端应用程序的可管理性优点结合起来。
然而,要完全实现智能客户端应用程序的优点,需要考虑许多体系结构和设计问题。
本指南描述了您在设计和实现智能客户端应用程序时将面临的体系结构和设计难题。
它提供了有关如何克服这些难题的指导,从而使您能够在尽可能短的时间内实现智能客户端应用程序的优点。
注有关智能客户端的其他技术资源,请参考“智能客户端开发人员中心”,网址为:
的Microsoft.NET站点上讨论了智能客户端的业务价值。
什么是智能客户端?
要完全了解智能客户端如何将胖客户端与瘦客户端的优点结合起来,有用的做法是分析胖/瘦客户端应用程序模型背后的历史和基础原理,并且回顾一些与它们相关联的优点和缺点。
胖客户端应用程序
在二十世纪九十年代中期,为Microsoft®
Windows®
操作系统开发的胖客户端应用程序的数量急剧增长。
设计这些客户端的目的是利用本地硬件资源以及客户端操作系统平台的功能。
尽管许多上述应用程序的功能令人印象深刻,但它们都具有局限性。
许多上述应用程序是独立的并且在客户计算机上工作,对它们的工作环境所知甚少或一无所知。
该环境包括其他计算机和网络上的任何服务,以及用户计算机上的任何其他应用程序。
非常常见的情况是,应用程序之间的集成局限于使用Windows提供的剪切或复制并粘贴功能在应用程序之间传输少量的数据。
有一些有助于提高胖客户端应用程序连接性的技术。
例如,两层应用程序使多个用户可以访问驻留在网络上的公用数据,而DCOM使应用程序可以具有更高的分布性。
(就DCOM而言,不再将逻辑和状态与客户计算机相联系,而是将其封装在对象内,然后在多台计算机中分布这些对象。
)但是,连接的应用程序的开发要复杂得多。
随着这些分布式应用程序的规模和复杂性逐渐增加,将越来越难以维持客户端应用程序及它们使用的服务之间的紧耦合。
尽管胖客户端通常提供了高质量、响应迅速的用户体验,并且具有良好的开发人员和平台支持,但它们非常难于部署和维护。
随着应用程序和客户端平台的复杂性不断增加,以可靠且安全的方式将应用程序部署到客户计算机的难度也将不断增加。
如果部署了不兼容的共享组件或软件库,则一个应用程序可以很容易地破坏另一个应用程序,这种现象称为应用程序脆弱性。
新版本的应用程序通常通过重新部署整个应用程序来提供,这可能使应用程序脆弱性问题变得更加严重。
瘦客户端应用程序
Internet提供了传统胖客户端模型的替代模型,它解决了许多与应用程序部署和维护相关联的问题。
基于浏览器的瘦客户端应用程序是在中央Web服务器上部署和更新的;
因此,它们消除了将应用程序的任何部分显式部署到客户计算机并加以管理的必要性。
该模型使各个公司可以非常高效地将它们的应用程序公开给规模庞大、多种多样的外部受众。
因为瘦客户端已被证明能够高效地解决一些部署和可管理性问题,所以它们现在用于向组织内的用户提供对许多业务线(LOB)应用程序的访问,以及向客户和合作伙伴提供对面向外界的应用程序的访问。
尽管事实上这两种用户的需要和期望通常是根本不同的,也是如此。
瘦客户端应用程序具有一些缺点。
浏览器必须总是具有网络连接。
这意味着移动用户在断开连接时将无法访问应用程序,因此当他们返回办公室时,必须重新输入数据。
而且,常用的应用程序功能(如拖放、撤消-重复以及上下文相关帮助)可能不可用,这可能降低应用程序的可用性。
因为应用程序的大部分逻辑和状态位于服务器上,所以瘦客户端会频繁地向服务器发回数据和处理请求。
浏览器必须等待响应到达,然后用户才能继续使用该应用程序;
因此,该应用程序的响应速度通常要比胖客户端应用程序慢得多。
该问题在低带宽或高延迟的情况下被恶化了,并且产生的性能问题可能导致应用程序可用性和用户效率大幅度下降。
要求输入大量数据以及/或者在多个窗口中频繁导航的LOB应用程序尤其会受到这一问题的影响。
智能客户端应用程序
经过设计,智能客户端应用程序可以将胖客户端应用程序的优点与瘦客户端应用程序的部署和可管理性优点结合起来,尽管这两种方法之间的平衡的准确性质取决于确切的情况。
智能客户端应用程序通常具有形形色色的要求,因此在设计和实现方面会有极大的差异。
但是,所有智能客户端都具有下列部分或全部特征:
∙利用本地资源
∙利用网络资源
∙支持偶尔连接的用户
∙提供智能安装和更新
∙提供客户端设备灵活性
许多应用程序不需要具有上述所有特征。
当您设计您的智能客户端时,将需要仔细考虑您的应用程序方案,并且决定您的智能客户端应用程序要求具备上述哪些特征。
要将上述所有特征合并到您的应用程序中,将需要进行非常认真的计划和设计,并且在很多情况下您将需要大量的实现资源。
注.NET框架可以帮助您实现智能客户端应用程序的许多特征。
该框架提供了具备自我描述能力且牢固绑定的程序集,并且支持单独和并列安装应用程序的多个版本,从而有助于减少与胖客户端相关联的应用程序部署和脆弱性问题。
.NET框架基类库为与Web服务进行交互提供了广泛的支持,并且提供了Windows窗体。
通过使用公共语言运行库(CLR),您可以利用任何受到.NET支持的语言来开发智能客户端。
使用本地资源
设计良好的智能客户端应用程序最大限度地利用了代码和数据部署在客户端上并且在本地执行和访问这一事实。
它为应用程序提供了内容丰富且响应迅速的用户界面,以及强大的客户端处理能力。
例如,它可能使用户能够执行复杂的数据操作、可视化、搜索或排序操作。
智能客户端可以利用客户端硬件资源(如电话或条码读取器)以及其他软件和应用程序。
这使它们非常适合于解决瘦客户端应用程序(如销售点终端应用程序)无法很好解决的问题。
智能客户端还可以利用本地软件(如MicrosoftOffice应用程序)或客户计算机上安装的任何LOB应用程序。
通过创建能够与多个LOB应用程序集成并对这些应用程序进行协调的解决方案,您的用户可以更为有效地工作,进行更好的决策,并减少数据输入错误。
此类解决方案还可以使您的应用程序更加紧密地与用户的工作环境集成(例如,通过采用自定义的或熟悉的用户界面),从而降低培训成本。
可以通过智能客户端应用程序集成或协调其他客户端应用程序,以便提供一致且高效的总体解决方案。
这些应用程序还应该了解正在使用应用程序的上下文,并且应该适应该上下文以尽可能地帮助用户;
例如,通过根据用户的使用模式或角色抢先缓存适当且有用的数据。
通过最大限度地使用本地资源以及将本地资源集成到您的智能客户端应用程序,可以使您的应用程序更好、更有效地使用已经提供给您的硬件。
非常常见的情况是,处理能力、内存和高级图形功能没有得到利用。
使用客户计算机上的资源还可以减少服务器端硬件要求。
使用网络资源
智能客户端可以通过网络消耗和使用不同的服务和数据。
它们是从许多不同的源检索数据的有效方式,并且可以设计为对数据进行分析或整合,从而使用户能够进行更为有效和明智的决策。
例如,智能客户端可以使用映射服务来提供有关地点和驾驶方向的详细信息。
智能客户端应用程序应该尽可能地连接,并且应该利用可以通过网络使用的资源和服务。
它们不应该是独立的应用程序,并且应该总是构成更大的分布式解决方案的一部分。
智能客户端应用程序起码应该使用有助于维护该应用程序以及提供部署和更新服务的集中式服务。
智能客户端应用程序的连接性质使其可以提供有价值的数据整合、分析和转换服务。
它们使用户可以实时地或者在一段时间内协作完成任务。
在许多情况下,智能客户端应用程序可以向用户提供类似于门户的功能,从而将完全不同的数据和服务加以协调并集成到总体解决方案中。
有关如何设计智能客户端以利用连接的服务的详细信息,请参阅第2章:
处理数据。
支持偶尔连接的用户
可以将智能客户端设计为向偶尔连接到网络的用户提供功能,从而使用户可以在明确脱机、使用低带宽或高延迟网络,或者连接时断时续的情况下继续高效地工作。
对于移动应用程序,智能客户端还可以优化网络带宽—例如,通过将请求批量发送到服务器,以便更好地使用代价昂贵的连接。
即使当客户端大多数时间都连接到网络时,智能客户端应用程序也可通过以智能方式缓存数据和管理连接来改善性能和可用性。
例如,在低带宽或高延迟环境中,智能客户端应用程序可以用特殊的方式管理连接,即不损害应用程序的可用性和响应性,并且用户可以继续高效地工作。
通过使用户能够在断开连接或只偶尔连接的情况下工作,提高了用户的工作效率和满意度。
智能客户端应用程序应该致力于在脱机时提供尽可能多的功能。
有关如何设计智能客户端应用程序以支持偶尔连接的用户的详细信息,请参阅第4章:
偶尔连接的智能客户端。
提供智能安装和更新
传统胖客户端所具有的一些最大的问题发生在部署或更新应用程序的时候。
许多胖客户端应用程序具有大量复杂的安装要求,并且可能通过注册组件以及/或者在公共位置安装DLL来共享代码,从而导致应用程序脆弱性和更新困难。
可以对智能客户端应用程序进行设计,以使其按照远比传统胖客户端应用程序更智能和灵活的方式来管理它们的部署和更新。
它们可以避免上述常见问题,从而有助于减少应用程序的管理成本。
有许多部署智能客户端的不同方式。
这些方式包括:
简单地将文件复制到本地计算机;
使用非接触式部署自动从中央服务器下载代码;
或者使用企业推技术如MicrosoftSystemsManagementServer(SMS)来部署WindowsInstaller软件包。
您选择的方法将依赖于您的特定情况。
智能客户端应用程序可以在其运行时或位于后台时对自身进行自动更新。
这一功能使其可以逐个角色地进行更新;
以分阶段的方式更新,从而可以将应用程序推介给先导小组或受限的用户组;
或者按照制定的时间表更新。
.NET框架使您可以对应用程序组件进行强命名,这意味着应用程序可以指定用来生成和测试其确切版本的组件,并通过这些版本的组件运行。
.NET框架使应用程序可以相互隔离,以便在安装一个应用程序时不会破坏另一个应用程序,并且同一应用程序的多个版本可以并列部署。
这些功能大大简化了应用程序部署,并且消除了许多与胖客户端应用程序相关联的应用程序脆弱性问题。
有关智能安装和更新的详细信息,请参阅第7章:
部署和更新智能客户端。
提供客户端设备灵活性
智能客户端还可以提供灵活且可自定义的客户端环境,从而使用户可以将应用程序配置为支持他或她喜欢的工作方式。
智能客户端应用程序没有被限制到桌面计算机或膝上型计算机。
随着小规模设备的连接性和能力的增加,愈发需要能够提供对多个设备上重要数据和服务的访问的有用客户端应用程序。
与.NET框架压缩版一起,.NET框架提供了一个可用来生成智能客户端应用程序的通用平台。
可以对智能客户端进行设计以使其适应宿主环境,并且为它们运行时所在的设备提供适当的功能。
例如,适合在PocketPC上运行的智能客户端应用程序应该提供相应的用户界面,该用户界面在较小的屏幕区域上被调整为使用笔针。
在许多情况下,您需要设计多个版本的智能客户端应用程序,每个版本都面向特定的设备类型,以便充分利用该设备所支持的特定功能。
因为小规模设备通常在提供完整范围的智能客户端应用程序功能方面受到限制,所以它们可能只提供对功能完善的智能客户端应用程序所提供的数据和服务子集的移动访问,或者它们可用于在用户移动时收集和整合数据。
最后,可以由功能更加完善的智能客户端应用程序或服务器端应用程序来分析或处理这些数据。
能够感知目标设备的功能和使用环境(无论它是桌面、膝上型、平板还是移动设备),以及能够定制应用程序以提供最适当的功能,这些都是许多智能客户端应用程序的基本特点。
注本指南不包含特定于在移动设备上运行的智能客户端应用程序开发的体系结构和设计细节,但是,无论应用程序是在桌面计算机上运行还是在其他设备上运行,本指南包含的许多主题都同样适用。
返回页首
智能客户端的类型
智能客户端在设计和实现方面差异极大,这既包括应用程序要求,也包括可以使用它们的方案和环境的数量。
因此,智能客户端可以采取许多不同的形式和风格。
根据智能客户端应用程序所面向的平台,可以将这些形式划分为三大类:
∙Windows智能客户端应用程序
∙Office智能客户端应用程序
∙移动智能客户端应用程序
智能客户端应用程序面向上述一种或多种平台是很常见的情况,具体取决于用户的角色以及需要的功能。
这种灵活性是智能客户端应用程序的主要长处之一。
本指南的其余部分将重点讨论所有三种类型的智能客户端应用程序所共有的问题,而不是详细解释影响个别类别的问题。
但是,依次对各个类型进行简要分析,以便您可以确定哪种风格的应用程序最适合您的情况,这将是很有用的。
Windows智能客户端应用程序
当您想到胖客户端应用程序时,您通常可能会想到使用可用的系统资源并且提供内容丰富的用户界面的桌面应用程序。
面向Windows的智能客户端应用程序是在传统胖客户端应用程序的基础上发展而来的,并且提供特定的面向特殊目标的功能。
这些种类的应用程序通常使用Windows窗体来提供熟悉的Windows风格的用户界面,并由应用程序本身提供大部分功能,而且不依赖于其他应用程序来提供主用户界面。
这样的智能客户端既可能包括通过HTTP部署的简单应用程序,也可能包括非常复杂的应用程序。
Windows智能客户端应用程序适合于需要将应用程序作为熟悉的桌面类型应用程序进行部署和访问的情况。
这些类型的应用程序通常由其自身提供其大部分功能,但是在适当的时候可以与其他应用程序集成或者协调其他应用程序。
它们提供针对特定任务进行调整的应用程序功能,以提供特定的或高性能的处理或图形能力。
Windows智能客户端应用程序通常最适合于在桌面PC、膝上型PC或平板PC上运行的应用程序。
此外,它们通常不会提供与特定文档或文档类型紧密关联的功能。
可以在各种各样的场合下使用这些种类的Windows智能客户端应用程序,例如作为LOB、财务、科学或协作应用程序使用。
这些种类的应用程序的示例有MicrosoftMoney以及MicrosoftOutlook®
消息处理和协作客户端。
Office智能客户端应用程序
MicrosoftOfficeSystem2003为您提供了用来生成智能客户端应用程序(尤其是在企业设置中)的有用平台。
通过Office智能客户端解决方案,您可以将通过Web服务访问的数据源与Word2003、Excel2003、InfoPath2003或其他Office应用程序的功能集成起来,以开发智能客户端解决方案。
这样的Office智能客户端应用程序可以成为组织的信息管理周期的集成部分,而不只是文档数据的静态容器。
当用户在文档内工作时,它们可以提供上下文相关的数据,以及可以将Web服务公开的数据转换为有用信息的工作流和任务指导、数据分析、协作、报告和呈现功能。
MicrosoftOffice支持XML,并且可以将该数据与文档的其他方面分开,以便它可以由其他应用程序重新使用。
因为MicrosoftOffice中的应用程序数据可以由多个应用程序中相同的客户定义XML架构进行说明,所以开发人员可以将这些数据集成到智能客户端应用程序中。
MicrosoftOffice2003具有许多用于生成智能客户端解决方案的重要功能和选项。
这些功能和选项包括:
∙智能标记。
智能标记为应用程序提供一种方法,可以为用户提供与文档内容有关的上下文相关数据,用户在文档内工作时,可以通过该方法容易地查看和使用相关信息。
例如,使用智能标记,可以在文档内引用客户时提供相应客户的帐户状态,或者可以在键入订单ID时提供订单状态信息。
这种上下文相关的反馈使用户可以在工作时进行更为明智的决策。
∙智能文档。
智能文档为用户提供了更为强大的与文档和业务Web服务进行交互的方法。
智能文档是Word2003和Excel2003(它们具有基础XML结构和自定义的任务窗格)的一种新的解决方案模型。
可以使用该任务窗格向用户显示上下文信息、任务、工具、后续步骤以及其他相关信息。
用户能够通过与该任务窗格交互来启动其他操作和任务,从而可以构建综合性业务解决方案。
∙适用于MicrosoftOfficeSystem的MicrosoftVisualStudio_工具。
该工具套件使开发人员能够通过使用MicrosoftVisualStudio.NET2003开发系统来创建托管代码Office智能客户端应用程序。
开发人员可以将文档解决方案与基础代码分开(与以前的包含带有自定义逻辑的VisualBasicforApplications宏的智能客户端模型相比,这是一种替代解决方案)。
通过将托管代码与MicrosoftOffice一起使用,开发人员可以获得更多为智能客户端解决方案创建、部署和管理更新的有效选项。
∙MicrosoftOfficeInfoPath™2003。
InfoPath2003是能够使用类似于表单的界面从用户那里收集结构性数据的应用程序。
InfoPath2003提供了对XMLWeb服务(一种基于表单的用户界面)的支持,以及对标准技术(如WSDL和UDDI)的支持。
InfoPath2003支持有限的脱机使用,方法是允许用户在脱机时与表单进行交互,然后允许用户在联机时将该表单转发给Web服务。
本指南并不试图涉及特定于Office智能客户端的所有问题,但所涉及的大多数主题都完全与上面讨论的智能客户端应用程序有关。
移动智能客户端应用程序
移动智能客户端是在智能设备上运行的应用程序,这些智能设备包括PocketPC、Smartphone以及其他超小型台式设备(如机顶盒)。
这些应用程序是使用.NET框架压缩版(它是完整.NET框架的子集)开发的。
.NET框架压缩版具有完整.NET框架的许多功能,支持XML,并且消耗Web服务。
它被进行了优化以便在超小型台式设备上使用,并且它包含用于开发用户界面的Windows窗体设计器。
通过使用VisualStudio.NET智能设备项目,您可以开发能够在.NET框架压缩版上运行的智能客户端。
采用这一方法,您可以通过在超小型台式设备的模拟器上使用VisualStudio.NET来开发、测试和调试应用程序。
模拟器的使用大大加快了这些类型应用程序的开发和测试速度。
移动智能客户端应用程序通常用于提供对重要数据和服务的移动访问,或者在用户处于移动状态时收集和整合数据。
这些类型应用程序的示例有保险和金融数据收集应用程序、库存管理应用程序和个人工作效率管理应用程序。
本指南并未特地集中讨论移动智能客户端应用程序,尽管所讨论