鷹翔宇空

          學(xué)習(xí)和生活

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            110 Posts :: 141 Stories :: 315 Comments :: 1 Trackbacks

          引自:http://www.aygfsteel.com/TrampEagle/admin/EditArticles.aspx

          第 1 章 — 簡介

          發(fā)布日期: 8/20/2004 | 更新日期: 8/20/2004
          a

          智能客戶端體系結(jié)構(gòu)與設(shè)計指南

          David Hill, Brenton Webster, Edward A. Jezierski, Srinath Vasireddy and Mohammad Al-Sabt, Microsoft Corporation; Blaine Wastell, Ascentium Corporation; Jonathan Rasmusson and Paul Gale, ThoughtWorks; and Paul Slater, Wadeware LLC

          相關(guān)鏈接

          Microsoft? patterns & practiceshttp://www.microsoft.com/resources/practices/default.mspx

          Application Architecture for .NET:Designing Applications and Services http://msdn.microsoft.com/library/en-us/dnbda/html/distapp.asp

          摘要:本章對智能客戶端應(yīng)用程序進(jìn)行了高級介紹,并描述了它們的一些基本性質(zhì)和優(yōu)點(diǎn)。然后,本章討論了一些高級體系結(jié)構(gòu)問題,并且提供了相關(guān)指導(dǎo)以幫助您確定智能客戶端體系結(jié)構(gòu)是否適合于您的應(yīng)用程序。

          *
          本頁內(nèi)容
          什么是智能客戶端? 什么是智能客戶端?
          智能客戶端的類型 智能客戶端的類型
          對智能客戶端和瘦客戶端進(jìn)行取舍 對智能客戶端和瘦客戶端進(jìn)行取舍
          智能客戶端體系結(jié)構(gòu)難題 智能客戶端體系結(jié)構(gòu)難題
          本指南的范圍 本指南的范圍
          如何使用本指南 如何使用本指南
          本指南面向的讀者 本指南面向的讀者
          章節(jié)概要 章節(jié)概要
          小結(jié) 小結(jié)
          更多信息 更多信息

          歡迎閱讀《智能客戶端體系結(jié)構(gòu)與設(shè)計指南》。智能客戶端應(yīng)用程序是瘦客戶端應(yīng)用程序的強(qiáng)大替代產(chǎn)品。它們可以為用戶提供內(nèi)容豐富且響應(yīng)迅速的用戶界面,提供脫機(jī)工作的能力,并且提供利用本地硬件和軟件資源的方法。此外,可以將它們設(shè)計為在各種各樣的客戶端設(shè)備上運(yùn)行,包括桌面 PC、平板 PC 以及手持移動設(shè)備(如 Pocket PC 和 Smartphone)。智能客戶端為用戶提供了在強(qiáng)大且直觀的客戶端環(huán)境中訪問信息和遠(yuǎn)程服務(wù)的能力,并且是一種用來開發(fā)靈活的、面向用戶的應(yīng)用程序以及提高用戶工作效率和滿意度的有效的解決方案。

          經(jīng)過設(shè)計,智能客戶端應(yīng)用程序可以將胖客戶端應(yīng)用程序的傳統(tǒng)優(yōu)點(diǎn)與瘦客戶端應(yīng)用程序的可管理性優(yōu)點(diǎn)結(jié)合起來。然而,要完全實(shí)現(xiàn)智能客戶端應(yīng)用程序的優(yōu)點(diǎn),需要考慮許多體系結(jié)構(gòu)和設(shè)計問題。本指南描述了您在設(shè)計和實(shí)現(xiàn)智能客戶端應(yīng)用程序時將面臨的體系結(jié)構(gòu)和設(shè)計難題。它提供了有關(guān)如何克服這些難題的指導(dǎo),從而使您能夠在盡可能短的時間內(nèi)實(shí)現(xiàn)智能客戶端應(yīng)用程序的優(yōu)點(diǎn)。

          有關(guān)智能客戶端的其他技術(shù)資源,請參考“智能客戶端開發(fā)人員中心”,網(wǎng)址為:http://msdn.microsoft.com/smartclient/。在位于 http://www.microsoft.com/net/smartclient/default.mspx 的 Microsoft .NET 站點(diǎn)上討論了智能客戶端的業(yè)務(wù)價值。

          什么是智能客戶端?

          要完全了解智能客戶端如何將胖客戶端與瘦客戶端的優(yōu)點(diǎn)結(jié)合起來,有用的做法是分析胖/瘦客戶端應(yīng)用程序模型背后的歷史和基礎(chǔ)原理,并且回顧一些與它們相關(guān)聯(lián)的優(yōu)點(diǎn)和缺點(diǎn)。

          胖客戶端應(yīng)用程序

          在二十世紀(jì)九十年代中期,為 Microsoft? Windows? 操作系統(tǒng)開發(fā)的胖客戶端應(yīng)用程序的數(shù)量急劇增長。設(shè)計這些客戶端的目的是利用本地硬件資源以及客戶端操作系統(tǒng)平臺的功能。

          盡管許多上述應(yīng)用程序的功能令人印象深刻,但它們都具有局限性。許多上述應(yīng)用程序是獨(dú)立的并且在客戶計算機(jī)上工作,對它們的工作環(huán)境所知甚少或一無所知。該環(huán)境包括其他計算機(jī)和網(wǎng)絡(luò)上的任何服務(wù),以及用戶計算機(jī)上的任何其他應(yīng)用程序。非常常見的情況是,應(yīng)用程序之間的集成局限于使用 Windows 提供的剪切或復(fù)制并粘貼功能在應(yīng)用程序之間傳輸少量的數(shù)據(jù)。

          有一些有助于提高胖客戶端應(yīng)用程序連接性的技術(shù)。例如,兩層應(yīng)用程序使多個用戶可以訪問駐留在網(wǎng)絡(luò)上的公用數(shù)據(jù),而 DCOM 使應(yīng)用程序可以具有更高的分布性。(就 DCOM 而言,不再將邏輯和狀態(tài)與客戶計算機(jī)相聯(lián)系,而是將其封裝在對象內(nèi),然后在多臺計算機(jī)中分布這些對象。)但是,連接的應(yīng)用程序的開發(fā)要復(fù)雜得多。隨著這些分布式應(yīng)用程序的規(guī)模和復(fù)雜性逐漸增加,將越來越難以維持客戶端應(yīng)用程序及它們使用的服務(wù)之間的緊耦合。

          盡管胖客戶端通常提供了高質(zhì)量、響應(yīng)迅速的用戶體驗(yàn),并且具有良好的開發(fā)人員和平臺支持,但它們非常難于部署和維護(hù)。隨著應(yīng)用程序和客戶端平臺的復(fù)雜性不斷增加,以可靠且安全的方式將應(yīng)用程序部署到客戶計算機(jī)的難度也將不斷增加。如果部署了不兼容的共享組件或軟件庫,則一個應(yīng)用程序可以很容易地破壞另一個應(yīng)用程序,這種現(xiàn)象稱為應(yīng)用程序脆弱性。新版本的應(yīng)用程序通常通過重新部署整個應(yīng)用程序來提供,這可能使應(yīng)用程序脆弱性問題變得更加嚴(yán)重。

          瘦客戶端應(yīng)用程序

          Internet 提供了傳統(tǒng)胖客戶端模型的替代模型,它解決了許多與應(yīng)用程序部署和維護(hù)相關(guān)聯(lián)的問題。基于瀏覽器的瘦客戶端應(yīng)用程序是在中央 Web 服務(wù)器上部署和更新的;因此,它們消除了將應(yīng)用程序的任何部分顯式部署到客戶計算機(jī)并加以管理的必要性。

          該模型使各個公司可以非常高效地將它們的應(yīng)用程序公開給規(guī)模龐大、多種多樣的外部受眾。因?yàn)槭菘蛻舳艘驯蛔C明能夠高效地解決一些部署和可管理性問題,所以它們現(xiàn)在用于向組織內(nèi)的用戶提供對許多業(yè)務(wù)線 (LOB) 應(yīng)用程序的訪問,以及向客戶和合作伙伴提供對面向外界的應(yīng)用程序的訪問。盡管事實(shí)上這兩種用戶的需要和期望通常是根本不同的,也是如此。

          瘦客戶端應(yīng)用程序具有一些缺點(diǎn)。瀏覽器必須總是具有網(wǎng)絡(luò)連接。這意味著移動用戶在斷開連接時將無法訪問應(yīng)用程序,因此當(dāng)他們返回辦公室時,必須重新輸入數(shù)據(jù)。而且,常用的應(yīng)用程序功能(如拖放、撤消-重復(fù)以及上下文相關(guān)幫助)可能不可用,這可能降低應(yīng)用程序的可用性。

          因?yàn)閼?yīng)用程序的大部分邏輯和狀態(tài)位于服務(wù)器上,所以瘦客戶端會頻繁地向服務(wù)器發(fā)回數(shù)據(jù)和處理請求。瀏覽器必須等待響應(yīng)到達(dá),然后用戶才能繼續(xù)使用該應(yīng)用程序;因此,該應(yīng)用程序的響應(yīng)速度通常要比胖客戶端應(yīng)用程序慢得多。該問題在低帶寬或高延遲的情況下被惡化了,并且產(chǎn)生的性能問題可能導(dǎo)致應(yīng)用程序可用性和用戶效率大幅度下降。要求輸入大量數(shù)據(jù)以及/或者在多個窗口中頻繁導(dǎo)航的 LOB 應(yīng)用程序尤其會受到這一問題的影響。

          智能客戶端應(yīng)用程序

          經(jīng)過設(shè)計,智能客戶端應(yīng)用程序可以將胖客戶端應(yīng)用程序的優(yōu)點(diǎn)與瘦客戶端應(yīng)用程序的部署和可管理性優(yōu)點(diǎn)結(jié)合起來,盡管這兩種方法之間的平衡的準(zhǔn)確性質(zhì)取決于確切的情況。

          智能客戶端應(yīng)用程序通常具有形形色色的要求,因此在設(shè)計和實(shí)現(xiàn)方面會有極大的差異。但是,所有智能客戶端都具有下列部分或全部特征:

          ?

          利用本地資源

          ?

          利用網(wǎng)絡(luò)資源

          ?

          支持偶爾連接的用戶

          ?

          提供智能安裝和更新

          ?

          提供客戶端設(shè)備靈活性

          許多應(yīng)用程序不需要具有上述所有特征。當(dāng)您設(shè)計您的智能客戶端時,將需要仔細(xì)考慮您的應(yīng)用程序方案,并且決定您的智能客戶端應(yīng)用程序要求具備上述哪些特征。要將上述所有特征合并到您的應(yīng)用程序中,將需要進(jìn)行非常認(rèn)真的計劃和設(shè)計,并且在很多情況下您將需要大量的實(shí)現(xiàn)資源。

          .NET 框架可以幫助您實(shí)現(xiàn)智能客戶端應(yīng)用程序的許多特征。該框架提供了具備自我描述能力且牢固綁定的程序集,并且支持單獨(dú)和并列安裝應(yīng)用程序的多個版本,從而有助于減少與胖客戶端相關(guān)聯(lián)的應(yīng)用程序部署和脆弱性問題。.NET 框架基類庫為與 Web 服務(wù)進(jìn)行交互提供了廣泛的支持,并且提供了 Windows 窗體。通過使用公共語言運(yùn)行庫 (CLR),您可以利用任何受到 .NET 支持的語言來開發(fā)智能客戶端。

          使用本地資源

          設(shè)計良好的智能客戶端應(yīng)用程序最大限度地利用了代碼和數(shù)據(jù)部署在客戶端上并且在本地執(zhí)行和訪問這一事實(shí)。它為應(yīng)用程序提供了內(nèi)容豐富且響應(yīng)迅速的用戶界面,以及強(qiáng)大的客戶端處理能力。例如,它可能使用戶能夠執(zhí)行復(fù)雜的數(shù)據(jù)操作、可視化、搜索或排序操作。

          智能客戶端可以利用客戶端硬件資源(如電話或條碼讀取器)以及其他軟件和應(yīng)用程序。這使它們非常適合于解決瘦客戶端應(yīng)用程序(如銷售點(diǎn)終端應(yīng)用程序)無法很好解決的問題。智能客戶端還可以利用本地軟件(如 Microsoft Office 應(yīng)用程序)或客戶計算機(jī)上安裝的任何 LOB 應(yīng)用程序。通過創(chuàng)建能夠與多個 LOB 應(yīng)用程序集成并對這些應(yīng)用程序進(jìn)行協(xié)調(diào)的解決方案,您的用戶可以更為有效地工作,進(jìn)行更好的決策,并減少數(shù)據(jù)輸入錯誤。此類解決方案還可以使您的應(yīng)用程序更加緊密地與用戶的工作環(huán)境集成(例如,通過采用自定義的或熟悉的用戶界面),從而降低培訓(xùn)成本。

          可以通過智能客戶端應(yīng)用程序集成或協(xié)調(diào)其他客戶端應(yīng)用程序,以便提供一致且高效的總體解決方案。這些應(yīng)用程序還應(yīng)該了解正在使用應(yīng)用程序的上下文,并且應(yīng)該適應(yīng)該上下文以盡可能地幫助用戶;例如,通過根據(jù)用戶的使用模式或角色搶先緩存適當(dāng)且有用的數(shù)據(jù)。

          通過最大限度地使用本地資源以及將本地資源集成到您的智能客戶端應(yīng)用程序,可以使您的應(yīng)用程序更好、更有效地使用已經(jīng)提供給您的硬件。非常常見的情況是,處理能力、內(nèi)存和高級圖形功能沒有得到利用。使用客戶計算機(jī)上的資源還可以減少服務(wù)器端硬件要求。

          使用網(wǎng)絡(luò)資源

          智能客戶端可以通過網(wǎng)絡(luò)消耗和使用不同的服務(wù)和數(shù)據(jù)。它們是從許多不同的源檢索數(shù)據(jù)的有效方式,并且可以設(shè)計為對數(shù)據(jù)進(jìn)行分析或整合,從而使用戶能夠進(jìn)行更為有效和明智的決策。例如,智能客戶端可以使用映射服務(wù)來提供有關(guān)地點(diǎn)和駕駛方向的詳細(xì)信息。

          智能客戶端應(yīng)用程序應(yīng)該盡可能地連接,并且應(yīng)該利用可以通過網(wǎng)絡(luò)使用的資源和服務(wù)。它們不應(yīng)該是獨(dú)立的應(yīng)用程序,并且應(yīng)該總是構(gòu)成更大的分布式解決方案的一部分。智能客戶端應(yīng)用程序起碼應(yīng)該使用有助于維護(hù)該應(yīng)用程序以及提供部署和更新服務(wù)的集中式服務(wù)。

          智能客戶端應(yīng)用程序的連接性質(zhì)使其可以提供有價值的數(shù)據(jù)整合、分析和轉(zhuǎn)換服務(wù)。它們使用戶可以實(shí)時地或者在一段時間內(nèi)協(xié)作完成任務(wù)。在許多情況下,智能客戶端應(yīng)用程序可以向用戶提供類似于門戶的功能,從而將完全不同的數(shù)據(jù)和服務(wù)加以協(xié)調(diào)并集成到總體解決方案中。

          有關(guān)如何設(shè)計智能客戶端以利用連接的服務(wù)的詳細(xì)信息,請參閱第 2 章:處理數(shù)據(jù)

          支持偶爾連接的用戶

          可以將智能客戶端設(shè)計為向偶爾連接到網(wǎng)絡(luò)的用戶提供功能,從而使用戶可以在明確脫機(jī)、使用低帶寬或高延遲網(wǎng)絡(luò),或者連接時斷時續(xù)的情況下繼續(xù)高效地工作。對于移動應(yīng)用程序,智能客戶端還可以優(yōu)化網(wǎng)絡(luò)帶寬 — 例如,通過將請求批量發(fā)送到服務(wù)器,以便更好地使用代價昂貴的連接。

          即使當(dāng)客戶端大多數(shù)時間都連接到網(wǎng)絡(luò)時,智能客戶端應(yīng)用程序也可通過以智能方式緩存數(shù)據(jù)和管理連接來改善性能和可用性。例如,在低帶寬或高延遲環(huán)境中,智能客戶端應(yīng)用程序可以用特殊的方式管理連接,即不損害應(yīng)用程序的可用性和響應(yīng)性,并且用戶可以繼續(xù)高效地工作。

          通過使用戶能夠在斷開連接或只偶爾連接的情況下工作,提高了用戶的工作效率和滿意度。智能客戶端應(yīng)用程序應(yīng)該致力于在脫機(jī)時提供盡可能多的功能。

          有關(guān)如何設(shè)計智能客戶端應(yīng)用程序以支持偶爾連接的用戶的詳細(xì)信息,請參閱第 4 章:偶爾連接的智能客戶端

          提供智能安裝和更新

          傳統(tǒng)胖客戶端所具有的一些最大的問題發(fā)生在部署或更新應(yīng)用程序的時候。許多胖客戶端應(yīng)用程序具有大量復(fù)雜的安裝要求,并且可能通過注冊組件以及/或者在公共位置安裝 DLL 來共享代碼,從而導(dǎo)致應(yīng)用程序脆弱性和更新困難。

          可以對智能客戶端應(yīng)用程序進(jìn)行設(shè)計,以使其按照遠(yuǎn)比傳統(tǒng)胖客戶端應(yīng)用程序更智能和靈活的方式來管理它們的部署和更新。它們可以避免上述常見問題,從而有助于減少應(yīng)用程序的管理成本。

          有許多部署智能客戶端的不同方式。這些方式包括:簡單地將文件復(fù)制到本地計算機(jī);使用非接觸式部署自動從中央服務(wù)器下載代碼;或者使用企業(yè)推技術(shù)如 Microsoft Systems Management Server (SMS) 來部署 Windows Installer 軟件包。您選擇的方法將依賴于您的特定情況。

          智能客戶端應(yīng)用程序可以在其運(yùn)行時或位于后臺時對自身進(jìn)行自動更新。這一功能使其可以逐個角色地進(jìn)行更新;以分階段的方式更新,從而可以將應(yīng)用程序推介給先導(dǎo)小組或受限的用戶組;或者按照制定的時間表更新。

          .NET 框架使您可以對應(yīng)用程序組件進(jìn)行強(qiáng)命名,這意味著應(yīng)用程序可以指定用來生成和測試其確切版本的組件,并通過這些版本的組件運(yùn)行。.NET 框架使應(yīng)用程序可以相互隔離,以便在安裝一個應(yīng)用程序時不會破壞另一個應(yīng)用程序,并且同一應(yīng)用程序的多個版本可以并列部署。這些功能大大簡化了應(yīng)用程序部署,并且消除了許多與胖客戶端應(yīng)用程序相關(guān)聯(lián)的應(yīng)用程序脆弱性問題。

          有關(guān)智能安裝和更新的詳細(xì)信息,請參閱第 7 章:部署和更新智能客戶端

          提供客戶端設(shè)備靈活性

          智能客戶端還可以提供靈活且可自定義的客戶端環(huán)境,從而使用戶可以將應(yīng)用程序配置為支持他或她喜歡的工作方式。智能客戶端應(yīng)用程序沒有被限制到桌面計算機(jī)或膝上型計算機(jī)。隨著小規(guī)模設(shè)備的連接性和能力的增加,愈發(fā)需要能夠提供對多個設(shè)備上重要數(shù)據(jù)和服務(wù)的訪問的有用客戶端應(yīng)用程序。與 .NET 框架壓縮版一起,.NET 框架提供了一個可用來生成智能客戶端應(yīng)用程序的通用平臺。

          可以對智能客戶端進(jìn)行設(shè)計以使其適應(yīng)宿主環(huán)境,并且為它們運(yùn)行時所在的設(shè)備提供適當(dāng)?shù)墓δ堋@纾m合在 Pocket PC 上運(yùn)行的智能客戶端應(yīng)用程序應(yīng)該提供相應(yīng)的用戶界面,該用戶界面在較小的屏幕區(qū)域上被調(diào)整為使用筆針。

          在許多情況下,您需要設(shè)計多個版本的智能客戶端應(yīng)用程序,每個版本都面向特定的設(shè)備類型,以便充分利用該設(shè)備所支持的特定功能。因?yàn)樾∫?guī)模設(shè)備通常在提供完整范圍的智能客戶端應(yīng)用程序功能方面受到限制,所以它們可能只提供對功能完善的智能客戶端應(yīng)用程序所提供的數(shù)據(jù)和服務(wù)子集的移動訪問,或者它們可用于在用戶移動時收集和整合數(shù)據(jù)。最后,可以由功能更加完善的智能客戶端應(yīng)用程序或服務(wù)器端應(yīng)用程序來分析或處理這些數(shù)據(jù)。

          能夠感知目標(biāo)設(shè)備的功能和使用環(huán)境(無論它是桌面、膝上型、平板還是移動設(shè)備),以及能夠定制應(yīng)用程序以提供最適當(dāng)?shù)墓δ埽@些都是許多智能客戶端應(yīng)用程序的基本特點(diǎn)。

          本指南不包含特定于在移動設(shè)備上運(yùn)行的智能客戶端應(yīng)用程序開發(fā)的體系結(jié)構(gòu)和設(shè)計細(xì)節(jié),但是,無論應(yīng)用程序是在桌面計算機(jī)上運(yùn)行還是在其他設(shè)備上運(yùn)行,本指南包含的許多主題都同樣適用。

          返回頁首返回頁首

          智能客戶端的類型

          智能客戶端在設(shè)計和實(shí)現(xiàn)方面差異極大,這既包括應(yīng)用程序要求,也包括可以使用它們的方案和環(huán)境的數(shù)量。因此,智能客戶端可以采取許多不同的形式和風(fēng)格。根據(jù)智能客戶端應(yīng)用程序所面向的平臺,可以將這些形式劃分為三大類:

          ?

          Windows 智能客戶端應(yīng)用程序

          ?

          Office 智能客戶端應(yīng)用程序

          ?

          移動智能客戶端應(yīng)用程序

          智能客戶端應(yīng)用程序面向上述一種或多種平臺是很常見的情況,具體取決于用戶的角色以及需要的功能。這種靈活性是智能客戶端應(yīng)用程序的主要長處之一。

          本指南的其余部分將重點(diǎn)討論所有三種類型的智能客戶端應(yīng)用程序所共有的問題,而不是詳細(xì)解釋影響個別類別的問題。但是,依次對各個類型進(jìn)行簡要分析,以便您可以確定哪種風(fēng)格的應(yīng)用程序最適合您的情況,這將是很有用的。

          Windows 智能客戶端應(yīng)用程序

          當(dāng)您想到胖客戶端應(yīng)用程序時,您通常可能會想到使用可用的系統(tǒng)資源并且提供內(nèi)容豐富的用戶界面的桌面應(yīng)用程序。面向 Windows 的智能客戶端應(yīng)用程序是在傳統(tǒng)胖客戶端應(yīng)用程序的基礎(chǔ)上發(fā)展而來的,并且提供特定的面向特殊目標(biāo)的功能。

          這些種類的應(yīng)用程序通常使用 Windows 窗體來提供熟悉的 Windows 風(fēng)格的用戶界面,并由應(yīng)用程序本身提供大部分功能,而且不依賴于其他應(yīng)用程序來提供主用戶界面。這樣的智能客戶端既可能包括通過 HTTP 部署的簡單應(yīng)用程序,也可能包括非常復(fù)雜的應(yīng)用程序。

          Windows 智能客戶端應(yīng)用程序適合于需要將應(yīng)用程序作為熟悉的桌面類型應(yīng)用程序進(jìn)行部署和訪問的情況。這些類型的應(yīng)用程序通常由其自身提供其大部分功能,但是在適當(dāng)?shù)臅r候可以與其他應(yīng)用程序集成或者協(xié)調(diào)其他應(yīng)用程序。它們提供針對特定任務(wù)進(jìn)行調(diào)整的應(yīng)用程序功能,以提供特定的或高性能的處理或圖形能力。

          Windows 智能客戶端應(yīng)用程序通常最適合于在桌面 PC、膝上型 PC 或平板 PC 上運(yùn)行的應(yīng)用程序。此外,它們通常不會提供與特定文檔或文檔類型緊密關(guān)聯(lián)的功能。

          可以在各種各樣的場合下使用這些種類的 Windows 智能客戶端應(yīng)用程序,例如作為 LOB、財務(wù)、科學(xué)或協(xié)作應(yīng)用程序使用。這些種類的應(yīng)用程序的示例有 Microsoft Money 以及 Microsoft Outlook? 消息處理和協(xié)作客戶端。

          Office 智能客戶端應(yīng)用程序

          Microsoft Office System 2003 為您提供了用來生成智能客戶端應(yīng)用程序(尤其是在企業(yè)設(shè)置中)的有用平臺。通過 Office 智能客戶端解決方案,您可以將通過 Web 服務(wù)訪問的數(shù)據(jù)源與 Word 2003、Excel 2003、InfoPath 2003 或其他 Office應(yīng)用程序的功能集成起來,以開發(fā)智能客戶端解決方案。

          這樣的 Office 智能客戶端應(yīng)用程序可以成為組織的信息管理周期的集成部分,而不只是文檔數(shù)據(jù)的靜態(tài)容器。當(dāng)用戶在文檔內(nèi)工作時,它們可以提供上下文相關(guān)的數(shù)據(jù),以及可以將 Web 服務(wù)公開的數(shù)據(jù)轉(zhuǎn)換為有用信息的工作流和任務(wù)指導(dǎo)、數(shù)據(jù)分析、協(xié)作、報告和呈現(xiàn)功能。

          Microsoft Office 支持 XML,并且可以將該數(shù)據(jù)與文檔的其他方面分開,以便它可以由其他應(yīng)用程序重新使用。因?yàn)?Microsoft Office 中的應(yīng)用程序數(shù)據(jù)可以由多個應(yīng)用程序中相同的客戶定義 XML 架構(gòu)進(jìn)行說明,所以開發(fā)人員可以將這些數(shù)據(jù)集成到智能客戶端應(yīng)用程序中。

          Microsoft Office 2003 具有許多用于生成智能客戶端解決方案的重要功能和選項(xiàng)。這些功能和選項(xiàng)包括:

          ?

          智能標(biāo)記。智能標(biāo)記為應(yīng)用程序提供一種方法,可以為用戶提供與文檔內(nèi)容有關(guān)的上下文相關(guān)數(shù)據(jù),用戶在文檔內(nèi)工作時,可以通過該方法容易地查看和使用相關(guān)信息。例如,使用智能標(biāo)記,可以在文檔內(nèi)引用客戶時提供相應(yīng)客戶的帳戶狀態(tài),或者可以在鍵入訂單 ID 時提供訂單狀態(tài)信息。這種上下文相關(guān)的反饋使用戶可以在工作時進(jìn)行更為明智的決策。

          ?

          智能文檔。智能文檔為用戶提供了更為強(qiáng)大的與文檔和業(yè)務(wù) Web 服務(wù)進(jìn)行交互的方法。智能文檔是 Word 2003 和 Excel 2003(它們具有基礎(chǔ) XML 結(jié)構(gòu)和自定義的任務(wù)窗格)的一種新的解決方案模型。可以使用該任務(wù)窗格向用戶顯示上下文信息、任務(wù)、工具、后續(xù)步驟以及其他相關(guān)信息。用戶能夠通過與該任務(wù)窗格交互來啟動其他操作和任務(wù),從而可以構(gòu)建綜合性業(yè)務(wù)解決方案。

          ?

          適用于 Microsoft Office System Microsoft Visual Studio_ 工具。該工具套件使開發(fā)人員能夠通過使用 Microsoft Visual Studio .NET 2003 開發(fā)系統(tǒng)來創(chuàng)建托管代碼 Office 智能客戶端應(yīng)用程序。開發(fā)人員可以將文檔解決方案與基礎(chǔ)代碼分開(與以前的包含帶有自定義邏輯的 Visual Basic for Applications 宏的智能客戶端模型相比,這是一種替代解決方案)。通過將托管代碼與 Microsoft Office 一起使用,開發(fā)人員可以獲得更多為智能客戶端解決方案創(chuàng)建、部署和管理更新的有效選項(xiàng)。

          ?

          Microsoft Office InfoPath? 2003。InfoPath 2003 是能夠使用類似于表單的界面從用戶那里收集結(jié)構(gòu)性數(shù)據(jù)的應(yīng)用程序。InfoPath 2003 提供了對 XML Web 服務(wù)(一種基于表單的用戶界面)的支持,以及對標(biāo)準(zhǔn)技術(shù)(如 WSDL 和 UDDI)的支持。InfoPath 2003 支持有限的脫機(jī)使用,方法是允許用戶在脫機(jī)時與表單進(jìn)行交互,然后允許用戶在聯(lián)機(jī)時將該表單轉(zhuǎn)發(fā)給 Web 服務(wù)。

          本指南并不試圖涉及特定于 Office 智能客戶端的所有問題,但所涉及的大多數(shù)主題都完全與上面討論的智能客戶端應(yīng)用程序有關(guān)。

          移動智能客戶端應(yīng)用程序

          移動智能客戶端是在智能設(shè)備上運(yùn)行的應(yīng)用程序,這些智能設(shè)備包括 Pocket PC、Smartphone 以及其他超小型臺式設(shè)備(如機(jī)頂盒)。這些應(yīng)用程序是使用 .NET 框架壓縮版(它是完整 .NET 框架的子集)開發(fā)的。

          .NET 框架壓縮版具有完整 .NET 框架的許多功能,支持 XML,并且消耗 Web 服務(wù)。它被進(jìn)行了優(yōu)化以便在超小型臺式設(shè)備上使用,并且它包含用于開發(fā)用戶界面的 Windows 窗體設(shè)計器。

          通過使用 Visual Studio .NET 智能設(shè)備項(xiàng)目,您可以開發(fā)能夠在 .NET 框架壓縮版上運(yùn)行的智能客戶端。采用這一方法,您可以通過在超小型臺式設(shè)備的模擬器上使用 Visual Studio .NET 來開發(fā)、測試和調(diào)試應(yīng)用程序。模擬器的使用大大加快了這些類型應(yīng)用程序的開發(fā)和測試速度。

          移動智能客戶端應(yīng)用程序通常用于提供對重要數(shù)據(jù)和服務(wù)的移動訪問,或者在用戶處于移動狀態(tài)時收集和整合數(shù)據(jù)。這些類型應(yīng)用程序的示例有保險和金融數(shù)據(jù)收集應(yīng)用程序、庫存管理應(yīng)用程序和個人工作效率管理應(yīng)用程序。

          本指南并未特地集中討論移動智能客戶端應(yīng)用程序,盡管所討論的許多體系結(jié)構(gòu)問題和解決方案都與智能設(shè)備相關(guān)。

          返回頁首返回頁首

          對智能客戶端和瘦客戶端進(jìn)行取舍

          要針對您的情況選擇正確的應(yīng)用程序體系結(jié)構(gòu),必須考慮許多因素。要確定智能客戶端方法是否最適合您的應(yīng)用程序,請認(rèn)真考慮您當(dāng)前和將來業(yè)務(wù)應(yīng)用程序的需要。如果您的應(yīng)用程序基于不適合的體系結(jié)構(gòu),則它可能無法滿足用戶和整個企業(yè)的要求和期望。如果以后更改體系結(jié)構(gòu)以滿足新的要求或者利用新的機(jī)遇,則可能要付出極為高昂的代價。

          如果您需要向各種外部受眾提供面向外界的應(yīng)用程序,則瘦客戶端體系結(jié)構(gòu)通常最為適當(dāng);而對于需要與其他客戶端應(yīng)用程序或硬件集成或者對它們進(jìn)行協(xié)調(diào),或者需要脫機(jī)工作或通過響應(yīng)迅速的用戶界面提供特定高性能功能的內(nèi)部應(yīng)用程序而言,智能客戶端體系結(jié)構(gòu)通常最為適當(dāng)。

          實(shí)際上,這兩種方法在很大程度上互相重疊,而且每種方法都具有明顯的優(yōu)點(diǎn)和缺點(diǎn)。您只有在認(rèn)真考慮您的要求并且了解如何在您所處的場合下應(yīng)用每種方法之后,才能夠選擇正確的方法。您可以使用表 1.1 來幫助您對智能客戶端和瘦客戶端體系結(jié)構(gòu)進(jìn)行取舍。

          1.1 瘦客戶端和智能客戶端的特點(diǎn)

          特點(diǎn) 瘦客戶端 智能客戶端

          提供內(nèi)容豐富的用戶界面

          可以,但難以開發(fā)、測試和調(diào)試。通常將應(yīng)用程序與單個瀏覽器聯(lián)系起來。

          是。更易于開發(fā)、測試和調(diào)試。

          可以利用本地計算機(jī)上的硬件資源

          是,但只能通過 COM 組件使用。

          可以與其他本地應(yīng)用程序交互

          可以多線程化

          可以脫機(jī)工作

          在低帶寬和高延遲環(huán)境中可以很好地執(zhí)行。

          易于部署

          不一定。困難程度取決于應(yīng)用程序要求。

          低維護(hù)和更改管理成本

          不一定。成本取決于應(yīng)用程序要求。

          可以部署到具有不同功能的多種客戶端上。

          是,盡管更復(fù)雜的瘦客戶端可能要求單個瀏覽器。

          是。可以在支持 .NET 框架(包括 .NET 框架壓縮版)的任何平臺上部署。

          返回頁首返回頁首

          智能客戶端體系結(jié)構(gòu)難題

          智能客戶端的體系結(jié)構(gòu)難題不同于瘦客戶端,并且您需要在您的應(yīng)用程序設(shè)計中予以考慮。智能客戶端應(yīng)用程序具有顯著的優(yōu)點(diǎn),但是您只有在適當(dāng)?shù)亟鉀Q這些難題之后才能實(shí)現(xiàn)這些優(yōu)點(diǎn)。

          通過智能客戶端可以將數(shù)據(jù)和邏輯分發(fā)到客戶計算機(jī),而瘦客戶端則傾向于將數(shù)據(jù)和邏輯集中存放在 Web 服務(wù)器和其他后端服務(wù)中。盡管可以通過智能客戶端方法使應(yīng)用程序變得更加高效,并且不需要與服務(wù)器進(jìn)行往返通訊以確定后續(xù)步驟,但您需要考慮到應(yīng)用程序及其數(shù)據(jù)現(xiàn)在比瘦客戶端應(yīng)用程序分布得更為廣泛,并且相應(yīng)地修改您的設(shè)計。

          如果您要在客戶端上實(shí)現(xiàn)業(yè)務(wù)規(guī)則,您將需要在必要時更新這些規(guī)則,而不是更新整個應(yīng)用程序。這可能意味著您需要使用不同的機(jī)制來分別更新該應(yīng)用程序以及更新該應(yīng)用程序內(nèi)部的業(yè)務(wù)規(guī)則。

          通過在客戶端上緩存數(shù)據(jù),您可以顯著改善應(yīng)用程序的性能和可用性,但您必須確保適當(dāng)?shù)厮⑿聰?shù)據(jù)并且不會使用陳舊的數(shù)據(jù)。因?yàn)樵S多用戶可以訪問和使用相同的數(shù)據(jù),您還必須考慮數(shù)據(jù)并發(fā)的影響。您的應(yīng)用程序必須能夠處理出現(xiàn)的數(shù)據(jù)沖突或一致問題,因?yàn)閼?yīng)用程序現(xiàn)在分布得更為廣泛,并且可以脫機(jī)操作。第 3 章:建立連接詳細(xì)討論了這些問題。

          .NET 框架在智能客戶端應(yīng)用程序的宿主方式方面提供了極大的靈活性。應(yīng)用程序可以作為傳統(tǒng)桌面應(yīng)用程序運(yùn)行,還可以宿主在 Office 或 Microsoft Internet Explorer 內(nèi)。也可以進(jìn)行許多種組合。例如,Windows 窗體應(yīng)用程序可以宿主 Internet Explorer 或 Office 組件,并且任何宿主都可以包含任何其他宿主。

          您可以將不穩(wěn)定的應(yīng)用程序邏輯(例如,控制大訂單折扣的業(yè)務(wù)規(guī)則)結(jié)合到根據(jù)需要通過 HTTP 下載的程序集中。這樣做消除了在開發(fā)新應(yīng)用程序邏輯時部署新版本客戶端應(yīng)用程序的需要。您可以使用與附加(或不常使用)應(yīng)用程序功能相同的模型,以便使初始應(yīng)用程序規(guī)模保持最小,并且根據(jù)需要安裝附加功能。

          您可以選擇將您的智能客戶端作為復(fù)合應(yīng)用程序進(jìn)行部署,此時許多應(yīng)用程序組合起來構(gòu)成一個統(tǒng)一的解決方案。可以通過耦合桌面應(yīng)用程序,或者通過提供一般性的外殼應(yīng)用程序以容納多個共同構(gòu)成解決方案的輕型應(yīng)用程序,來構(gòu)成這樣的解決方案。

          當(dāng)用戶必須訪問許多應(yīng)用程序以完成其工作時,復(fù)合應(yīng)用程序尤其有用。例如,呼叫中心中的客戶服務(wù)代理通常必須使用許多 LOB 應(yīng)用程序,包括桌面應(yīng)用程序、基于瀏覽器的應(yīng)用程序以及基于終端的應(yīng)用程序。所有這些 LOB 應(yīng)用程序都可以宿主到在它們之間提供集成的普通 Windows 窗體應(yīng)用程序中,從而大大簡化用戶的工作,最為重要的是減少花在特定呼叫上的時間。通過提供普通外殼來宿主這些 LOB 應(yīng)用程序,可以在不同的解決方案中開發(fā)、測試和重用通用基礎(chǔ)結(jié)構(gòu)功能,如安全性、部署、窗口管理、應(yīng)用程序集成、審核等等,從而使 LOB 應(yīng)用程序的開發(fā)人員能夠?qū)⒕杏跇I(yè)務(wù)功能。

          面向服務(wù)的體系結(jié)構(gòu)的出現(xiàn)意味著您可以設(shè)計智能客戶端來利用網(wǎng)絡(luò)服務(wù)。所有此類服務(wù)都是以行業(yè)標(biāo)準(zhǔn)方式提供的,這就改善了互操作性、開發(fā)人員工具支持以及在智能客戶端應(yīng)用程序中內(nèi)置新功能的容易程度。

          返回頁首返回頁首

          本指南的范圍

          本指南重點(diǎn)討論圍繞建立在 Microsoft .NET 技術(shù)基礎(chǔ)之上的智能客戶端應(yīng)用程序的體系結(jié)構(gòu)和設(shè)計問題。它假設(shè)您要使用 Microsoft .NET 框架生成您的智能客戶端應(yīng)用程序,并且使用 Microsoft .NET Windows 窗體來生成任何用戶界面。

          本指南不會深入討論實(shí)現(xiàn)問題。具體說來,本指南不會討論在 Microsoft Office 2003 或移動設(shè)備上實(shí)現(xiàn)智能客戶端應(yīng)用程序的細(xì)節(jié),盡管本指南所討論的許多問題都與智能客戶端應(yīng)用程序有關(guān) — 無論它們是獨(dú)立的 Windows 窗體應(yīng)用程序、Office 應(yīng)用程序還是移動設(shè)備應(yīng)用程序。

          返回頁首返回頁首

          如何使用本指南

          本指南適合于以下面兩種方式之一使用。首先,本指南具有很好的結(jié)構(gòu)體系,對于您在生成智能客戶端應(yīng)用程序時可能面臨的體系結(jié)構(gòu)和設(shè)計問題提供了相當(dāng)全面的概述。通過從頭到尾閱讀本指南,您將對可能面臨的問題以及克服這些問題的辦法有一個最完整的了解。

          或者,如果您喜歡深入了解圍繞特定主題的問題,則可以單獨(dú)閱讀相關(guān)章節(jié),以學(xué)習(xí)對相關(guān)問題的完備討論。

          返回頁首返回頁首

          本指南面向的讀者

          本指南適合于要開發(fā)建立在 Microsoft .NET 技術(shù)基礎(chǔ)之上的智能客戶端應(yīng)用程序的軟件架構(gòu)師和開發(fā)人員。

          前提條件

          要從本指南獲得最大的收獲,您應(yīng)該了解下列技術(shù)和概念:

          ?

          Microsoft .NET 框架

          ?

          Microsoft Visual Studio .NET 2003 開發(fā)工具

          ?

          Microsoft? Visual C#? 開發(fā)工具

          ?

          可擴(kuò)展標(biāo)記語言 (XML)

          ?

          消息隊列 (MSMQ)

          ?

          多線程處理

          ?

          關(guān)系數(shù)據(jù)庫操作

          ?

          分布式應(yīng)用程序設(shè)計和體系結(jié)構(gòu)

          注 有關(guān)分布式應(yīng)用程序設(shè)計和體系結(jié)構(gòu)的詳細(xì)信息,請參閱 http://msdn.microsoft.com/library/en-us/vsent7/html/vxoriDesignConsiderationsForDistributedApplications.asphttp://msdn.microsoft.com/library/en-us/vsent7/html/vxoriplanningdistributedapplications.asp

          返回頁首返回頁首

          章節(jié)概要

          本指南包含下列幾章,每一章都討論與智能客戶端相關(guān)的特定問題。您可以根據(jù)需要閱讀各章的全部或部分內(nèi)容。

          第 1 章:簡介

          本章對智能客戶端應(yīng)用程序進(jìn)行了高級介紹,并描述了它們的一些基本性質(zhì)和優(yōu)點(diǎn)。然后,本章討論了一些高級體系結(jié)構(gòu)問題,并且提供了相關(guān)指導(dǎo)以幫助您確定智能客戶端體系結(jié)構(gòu)是否適合于您的應(yīng)用程序。

          第 2 章:處理數(shù)據(jù)

          在智能客戶端中,可以在客戶端上使用應(yīng)用程序數(shù)據(jù)。需要對這些數(shù)據(jù)進(jìn)行適當(dāng)?shù)墓芾恚源_保其有效、一致和安全。如果這些數(shù)據(jù)是由服務(wù)器應(yīng)用程序提供的,則智能客戶端應(yīng)用程序可以緩存這些數(shù)據(jù)來改善性能或者支持脫機(jī)使用。如果智能客戶端應(yīng)用程序提供在本地修改數(shù)據(jù)的能力,則必須在以后將客戶端更改與服務(wù)器端應(yīng)用程序進(jìn)行同步。本章分析在客戶端處理數(shù)據(jù)時的各種注意事項(xiàng),包括數(shù)據(jù)緩存、數(shù)據(jù)并發(fā)以及數(shù)據(jù)集和 Windows 窗體數(shù)據(jù)綁定的使用。

          第 3 章:建立連接

          智能客戶端應(yīng)用程序通常構(gòu)成更大的分布式應(yīng)用程序的一部分,因此它們會頻繁連接到網(wǎng)絡(luò)并且與網(wǎng)絡(luò)資源(如 Web 服務(wù))以及客戶計算機(jī)本身上的組件或進(jìn)程交互。本章介紹了您的應(yīng)用程序可以用來連接和使用這些資源的許多方法,并且討論了每種方法的優(yōu)點(diǎn)和缺點(diǎn)。

          第 4 章:偶爾連接的智能客戶端

          本章討論的問題涉及到您在設(shè)計和生成偶爾連接到網(wǎng)絡(luò)的智能客戶端應(yīng)用程序時可能面臨的問題。本章討論了連接性的概念,介紹了兩種實(shí)現(xiàn)脫機(jī)功能的主要方法,并且討論了您在使應(yīng)用程序可供脫機(jī)使用時需要考慮的一些問題。

          第 5 章:安全性注意事項(xiàng)

          本章討論了智能客戶端安全性的問題。智能客戶端將邏輯和數(shù)據(jù)分布到客戶計算機(jī)上;因此,所涉及到的安全性問題與瘦客戶端應(yīng)用程序不同,后者的數(shù)據(jù)和邏輯被更多地限制在服務(wù)器中。本章討論智能客戶端應(yīng)用程序中的數(shù)據(jù)安全性、身份驗(yàn)證、授權(quán)以及代碼訪問安全性的作用。

          第 6 章:使用多個線程

          本章討論與在智能客戶端應(yīng)用程序中使用多個線程相關(guān)的問題。要最大限度地提高智能客戶端應(yīng)用程序的響應(yīng)性,您需要認(rèn)真考慮如何以及何時使用多個線程。線程可以顯著改善應(yīng)用程序的可用性和性能,但當(dāng)您確定線程將如何與用戶界面交互時,需要進(jìn)行非常認(rèn)真的考慮。

          第 7 章:部署和更新智能客戶端

          智能客戶端不會受到傳統(tǒng)上與胖客戶端應(yīng)用程序相關(guān)聯(lián)的部署和更新問題的困擾。.NET 框架和 Windows 平臺所提供的功能可幫助您避免許多與傳統(tǒng)胖客戶端部署相關(guān)聯(lián)的問題。本章介紹如何最好地使用這些功能,以及如何對可用的部署和更新機(jī)制進(jìn)行取舍。

          返回頁首返回頁首

          小結(jié)

          瘦客戶端和智能客戶端都可用來向您的組織提供 LOB 應(yīng)用程序。但是,每種類型的客戶端都具有其優(yōu)點(diǎn)和缺點(diǎn)。在設(shè)計應(yīng)用程序時,您需要認(rèn)真考慮您所處環(huán)境的具體細(xì)節(jié),然后才能確定哪種客戶端更為合適。本章已經(jīng)介紹了智能客戶端的發(fā)展歷史以及與它們相關(guān)聯(lián)的功能。現(xiàn)在,您可以使用本指南的其余部分來幫助您確定如何在您自己的組織中設(shè)計和實(shí)現(xiàn)智能客戶端。

          返回頁首返回頁首

          更多信息

          下列資源提供了有關(guān) patterns & practices、智能客戶端以及您可以用于查找特定指導(dǎo)的其他應(yīng)用程序塊的更多信息。

          ?

          patterns & practices Web 站點(diǎn),位于: http://www.microsoft.com/resources/practices/default.mspx

          ?

          Patterns and Practices 庫

          ?

          MSDN? 上的“Overview of Smart Client Applications in the Microsoft Office System”,位于:http://msdn.microsoft.com/library/en-us/odc_ip2003_ta/html/odc_IPOffice2003SmartClient.asp

          ?

          MSDN 上的“Application Architecture for .NET:Designing Applications and Services”,位于:http://msdn.microsoft.com/library/en-us/dnbda/html/distapp.asp

          轉(zhuǎn)到原英文頁面

          posted on 2006-02-10 14:49 TrampEagle 閱讀(522) 評論(0)  編輯  收藏 所屬分類: 技術(shù)文摘
          主站蜘蛛池模板: 辰溪县| 遂溪县| 什邡市| 唐河县| 福泉市| 玉山县| 沐川县| 凯里市| 江城| 乌兰浩特市| 象州县| 板桥市| 乃东县| 澄城县| 理塘县| 南溪县| 双桥区| 驻马店市| 沂南县| 顺平县| 凤冈县| 辽源市| 宜兰市| 上蔡县| 西藏| 漳浦县| 策勒县| 岳阳市| 新竹县| 安吉县| 哈密市| 永嘉县| 鄄城县| 建昌县| 衡东县| 株洲市| 措美县| 绵阳市| 丽江市| 云浮市| 大冶市|