第14章 智能用戶端

來源:互聯網
上載者:User
第14章 智能用戶端

軟體從主機系統向C/S結構的轉變,除了帶來了系統資源的合理分配,也帶來了用戶端的新體驗,尤其是圖形介面系統的大量使用(主要是Windows作業系統),提供了高品質、響應迅速的使用者體驗,並且具有良好的開發人員和平台支援。但是,C/S結構下的胖用戶端,非常難於部署和維護。隨著應用程式和用戶端平台的複雜性不斷增加,以可靠且安全的方式將應用程式部署到客戶電腦的難度也將不斷增加。如果部署了不相容的共用組件或軟體庫,則一個應用程式可以很容易地破壞另一個應用程式,這種現象稱為應用程式脆弱性。新版本的應用程式通常通過重新部署整個應用程式來提供,這可能使應用程式脆弱性問題變得更加嚴重。

為瞭解決這個問題,同時也伴隨著Internet的高速發展,出現了基於Web的B/S結構,用戶端也就成了“瘦用戶端”。這種結構,它解決了許多與應用程式部署和維護相關聯的問題。瘦用戶端應用程式是在中央 Web 服務器上部署和更新的,因此,它們消除了將應用程式的任何部分顯式部署到客戶電腦並加以管理的必要性。

然而,瘦用戶端應用程式也具有一些缺點。首先一個缺點是瘦用戶端應用程式的表現能力同胖用戶端不能相比。雖然使用HTML能夠做出非常漂亮的頁面,使用JavaScript也能夠在用戶端進行一些處理,但是,JavaScript這樣的指令碼語言畢竟不能和編譯語言的功能相比。從理論上來說,使用C++等編譯型語言,你可以做出任何形式的用戶端介面。使用瘦用戶端,常用的應用程式功能(如拖放、撤消-重複以及即時線上說明等)可能不可用,這些都可能降低應用程式的可用性。

其次,使用基於Web的瘦用戶端,就意味著必須總是具有網路連接,一旦網路故障,整個應用系統就不可用。並且因為應用程式的大部分邏輯和狀態位於伺服器上,所以瘦用戶端會頻繁地向伺服器發回資料和處理請求。瀏覽器必須等待響應到達,然後使用者才能繼續使用該應用程式;因此,該應用程式的響應速度通常要比胖用戶端應用程式慢得多。該問題在低頻寬或高延遲的情況下被惡化了,並且產生的效能問題可能導致應用程式可用性和使用者效率大幅度下降。要求輸入大量資料以及/或者在多個視窗中頻繁導航的應用程式尤其會受到這一問題的影響。

最後,由於基於Web的瘦用戶端都使用HTTP協議,而HTTP協議是一個無狀態的協議,因此,為了保留用戶端的狀態,必須使用一些特殊的技術,例如Session等。這樣,會給伺服器帶來額外的負擔,同時,程式員也不得不處理因Session到期而帶來的種種問題。

隨著Java和.Net等新一代編程平台的出現和逐步成熟,並且由於這些程式設計語言和平台從一開始就考慮了網路應用,出現了智能用戶端技術,分別以Java Web Strart和Microsoft Smart Client為代表。智能用戶端應用程式可以將胖用戶端應用程式的優點與瘦用戶端應用程式的部署和可管理性優點結合起來。

智能用戶端具有以下一些特點:

豐富的表現能力

智能用戶端使用諸如Java和C#這樣的語言來編寫,能夠充分利用程式設計語言的功能(當然前提是通過安全檢查),最大限度地利用了代碼和資料部署在用戶端上並且在本地執行和訪問這一事實。它為應用程式提供了內容豐富且響應迅速的使用者介面,以及強大的用戶端處理能力。例如,它可能使使用者能夠執行複雜的資料操作、可視化、搜尋或排序操作。

智能用戶端可以利用用戶端硬體資源(如電話或條碼讀取機)以及其他軟體和應用程式,可以最大限度地使用本地資源以及將本地資源整合到您的智能用戶端應用程式,使應用程式更好、更有效地使用已經提供給您的硬體。這使它們非常適合於解決瘦用戶端應用程式無法很好解決的問題,並且可以使用多重文件介面,使使用者可以更為有效地工作,並減少資料輸入錯誤。此類解決方案還可以使您的應用程式更加緊密地與使用者的工作環境整合(例如,通過採用自訂的或熟悉的使用者介面),從而降低培訓成本。使用客戶電腦上的資源還可以減少伺服器端資源要求。

可以通過智能用戶端應用程式整合或協調其他用戶端應用程式,以便提供一致且高效的總體解決方案。這些應用程式還應該瞭解正在使用應用程式的上下文,並且應該適應該上下文以儘可能地協助使用者;例如,通過根據使用者的使用模式或角色搶先緩衝適當且有用的資料。

零接觸部署和動態載入

同瘦用戶端一樣,只能用戶端可以只部署在伺服器上面,當需要的時候,才從伺服器上下載相應的模組,並動態載入進應用系統。當更新應用系統的時候,也只需要補救伺服器,用戶端會自動從伺服器上下載最新的程式版本,這免去了胖用戶端更新系統的麻煩。智能用戶端應用程式可以在其運行時或位於後台時對自身進行自動更新。這一功能使其可以逐個角色地進行更新;以分階段的方式更新,從而可以將應用程式推介給先導小組或限制的使用者組;或者按照制定的時間表更新。

智能用戶端可以部署在Web伺服器上面,通過80連接埠來載入和更新程式,並同樣使用80連接埠通過訪問Web Service的方式來同伺服器互動,這樣,就可以解決防火牆的問題,保證系統的安全性。

離線用戶端

智能用戶端應用程式使用網路載入程式集,一旦載入之後,程式集便被緩衝到了本地。當使用者至少啟動了一次應用程式後,程式集就被下載和緩衝到本地記憶體中了,所以使用者就可以離線啟動並執行智能用戶端程式了,並且只有在必要的時候才同伺服器通訊,調用伺服器端的資源。

儘管網路已經成了大多數應用軟體必不可少的環境,但我們仍不能給公司專屬應用程式程式提供始終連續的串連。在某些情況下,我們還需要在斷開網路的條件下工作,例如在某些情況俠使用手持終端工作的時候。離線式工作方式可以把資料先緩衝再本地,然後,在你重新線上時,自動進行資料和應用程式的更新,這種特徵是人們很想得到的,但在使用智能終端之前前,這是很難實現的。

同胖用戶端一樣,智能用戶端給用戶端分布大量的處理,這就為伺服器免除了它在一個基於Web的應用程式中需要承擔的負荷。智能用戶端採取一種使用者希望應用程式採取的工作方式——允許快速資料存取和管理,而不需要不必要的螢幕更新。

提供用戶端裝置靈活性

智能用戶端還可以提供靈活且可自訂的用戶端環境,從而使使用者可以將應用程式配置為支援他或她喜歡的工作方式。智能用戶端應用程式沒有被限制到案頭電腦或膝上型電腦。隨著小規模裝置的串連性和能力的增加,愈發需要能夠提供對多個裝置上重要資料和服務的訪問的有用用戶端應用程式。

可以對智能用戶端進行設計以使其適應宿主環境,並且為它們運行時所在的裝置提供適當的功能。例如,適合在 Pocket PC 上啟動並執行智能用戶端應用程式應該提供相應的使用者介面,該使用者介面在較小的螢幕地區上被調整為使用筆針。

在許多情況下,您需要設計多個版本的智能用戶端應用程式,每個版本都面向特定的裝置類型,以便充分利用該裝置所支援的特定功能。因為小規模裝置通常在提供完整範圍的智能用戶端應用程式功能方面受到限制,所以它們可能只提供對功能完善的智能用戶端應用程式所提供的資料和服務子集的移動訪問,或者它們可用於在使用者移動時收集和整合資料。最後,可以由功能更加完善的智能用戶端應用程式或伺服器端應用程式來分析或處理這些資料。

能夠感知目標裝置的功能和使用環境(無論它是案頭、膝上型、平板還是行動裝置),以及能夠定製應用程式以提供最適當的功能,這些都是許多智能用戶端應用程式的基本特點。

兩種類型的智能用戶端方案

在考慮智能用戶端和伺服器的互動時,可以有兩種類型的方法:以資料為中心的方法和面向服務的方法。使用以資料為中心的方法,用戶端可以使用本機資料庫和複製機制,以便在離線模式下管理對資料的更改。使用面向服務的方法,用戶端可以通過服務要求與許多服務進行互動。如果應用程式處於離線模式,它可以延遲服務要求,直到重新串連至 Web 服務。每種方法都有其優點和缺點,且適用於不同類型的應用程式。下面的圖顯示了這兩種方法的結構:

Microsoft Smart Client

微軟通過Offline Application Block提供了智能用戶端技術。Offline Application Block是一套在Microsoft.Net平台上進行智能用戶端開發的類庫,可以從微軟的網站上下載。

 Offline Application Block 提供如下的將離線模式功能構建到應用程式中的能力:

? 檢測網路連接是否存在,這樣可以使應用程式能夠根據其聯機或離線狀態來執行 

? 緩衝必要的資料,這樣即使在網路連接不可用時,應用程式也可以繼續運行 

? 當網路連接可用時,將用戶端應用程式的狀態和/或資料與伺服器同步化

它還可以利用其他塊組件。例如,它可以使用 Caching Application Block 來利用緩衝,並將 Caching Application Block 作為其參考資料緩衝的基礎。

因為 Offline Application Block 使用面向服務的方法,所以它所包含的功能(或類)與中所示的功能相對應。下面的圖展示了 Offline Application Block 的相應子系統,它們是鬆散耦合的組件。

下面的表說明了圖中顯示的每個子系統。

子系統

說明

串連狀態管理

“串連狀態管理”檢測應用程式是處於聯機狀態還是離線狀態。有兩種方法可以判斷串連狀態:手動判斷或通過自動過程判斷。如果選擇自動判斷,則串連狀態表示為包括網路層和應用程式串連的多層串連性(請注意,應用程式串連檢測並不是在該應用程式塊中實現的)。應用程式的行為會根據串連狀態而變化。

服務代理管理

“服務代理管理”與 Offline Application Block 的這些元素(“訊息資料管理”、“參考資料管理”)以及伺服器進行互動。它會進行協調,以便將任務完成通知返回到應用程式。

參考資料管理

“參考資料管理”與“服務代理管理”和“訊息資料管理”配合工作,以下載儲存在本機電腦上的參考資料。在大多數情況下,參考資料是用於完成工作流程的唯讀資料。“參考資料管理”可使參考資料與伺服器上的資料保持一致。它將訊息儲存在“隊列”中以下載參考資料。然後,“執行程式”將使用Message Service請求與服務串連,以下載參考資料。

訊息資料管理

訊息資料是在工作流程過程中建立的資料。當應用程式處於離線狀態時,該資料將儲存在一個本地隊列中。當應用程式聯機後,“執行程式”會從“隊列”中刪除訊息,發出與伺服器同步資料的“服務要求”,然後資料就會與伺服器進行同步。

在安全性方面,Offline Application Block 並不提供安全架構。但是,它支援緩衝和隊列中儲存的所有資料的加密和簽名。加密和簽名的使用不是強制性的,但強烈建議您使用。通過使用這些安全措施,應用程式可以在將資料臨時儲存在硬碟上時對資料進行保護。

小結

不管採用什麼開發模式,什麼架構來構建我們的介面系統,我們都必須明確,在介面層,主要的工作就是三個:一是介面的表現,二是頁面移轉模式,三是同應用服務層的互動。合理的將這三個功能進行劃分,以及有機的進行組合,是構建一個優秀的介面系統的基礎。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.