複製鏈接
請複製以下鏈接發送給好友

smart client

鎖定
smart client,是一種一個可擴展的能集成不同應用的桌面應用程序。可動態加載,即需即裝。
外文名
smart client
概    念
一個可擴展的能集成不同應用的桌面應用程序
特    點
動態加載,即需即裝、更鬆散的耦合、自動更新等

目錄

smart client定義

簡而言之,Smart Client智能客户端就是這樣一種一個可擴展的能集成不同應用的桌面應用程序:它可以無接觸部署、即需即裝、動態加載,XCopy即可運行而無須修改註冊表,可以動態升級、自動更新,可以方便的經Web運行而不用擔心防火牆問題並可以方便的離線運用,方便的連接WebServices的Windows應用程序。

smart client主要特點

1.動態加載,即需即裝。
應用程序的各個構件之間的相互調用並不採用直接引用的方式,而是採用動態加載,即需即裝的方式,有效地降低了對系統資源的消耗。應用軟件開發商可根據企業應用系統的公共接口進行開發,然後將應用組件發佈在企業的服務器上,客户端應用程序將自動發現並加載該應用組件。
2.更鬆散的耦合
由於上面第一點所言構件之間的相互調用並不採用直接引用方式,這樣系統實現的更鬆散的耦合,為應用程序升級更新提供了方便。
3.進一步的模塊化
由於應用程序的鬆散耦合特性,使系統的進一步模塊化成為可能,新功能、新特性的加入只需要開發出符合接口定義的新模塊並添加連接即可。而無須修改重編譯現有的程序。
4.零接觸部署。
安裝時只要將一個主程序文件下載到本地,直接運行即可,無須改變註冊表或共享的系統組件,其他應用組件將在第一次運行時自動下載。
5.網絡加載應用程序組件
Smart Client的應用程序可以很方便的從網絡服務器加載應用程序,而且因為程序及加載是從80端口實現,故無須考慮防火牆問題,這樣為企業系統的集中管理提供了方便。
6.自動更新
只需將新版本的程序發佈在服務器上,由客户端自動發現最新版本的程序和應用組件,並自動下載和更新。
7.在線與離線均可使用的應用程序
Smart Client應用程序儘管使用網絡加載程序集,但一旦加載之後,程序集便被緩存到了本地。當用户至少啓動了一次應用程序後,其裝配就被下載和緩存到本地內存中了,所以用户就可以離線運行你的智能客户端了(通過轉換瀏覽器到離線工作狀態),假設應用程序不需要永久訪問Web services或一個共享的數據庫就可以運行。
構建智能客户端的最大的好處就是可以離線使用。儘管業務之間的聯繫越來越緊密,但我們仍不能給企業應用程序提供始終連續的連接。離線式工作方式可以在你重新在線時,自動接收數據和應用程序更新,這種特徵是人們很想得到的,但在.NET前,這是很難實現的。同胖客户端一樣,智能客户端給客户端分佈大量的處理,這就為服務器免除了它在一個基於Web的應用程序中需要承擔的負荷。最後,智能客户端採取一種用户希望應用程序採取的工作方式——允許快速數據存取和管理,而不需要不必要的屏幕更新。
8.個性化用户界面
用户可根據喜好自行設置客户端應用程序,配置信息將被保存到服務器上。
9.與WebServices的完美集成
Smart Client應用程序可以與WebServices方便的集成應用,這樣便可以輕鬆享受C/S應用程序的完美用户體驗而不需擔心防火牆等等的一系列問題。

smart client優勢

儘管有大量的廣告,但瘦Web解決方案並沒必要成為所有企業應用程序的未來。不要丟棄用WinForms來構建企業應用程序這種想法,因為企業應用需要集中的分佈。下面的這張表格描述了Smart Client和瘦Web解決方案之間的對比:
功能
智能客户端
Web應用程序
可以離線工作
可以
不容易
集中的部署
可以
可以
高級的GUI特徵
高性能的GUI
可以
不可以
卸載處理到客户端
可以
有限
通過HTTP更新
可以
可以
安全
不接觸客户端安裝
不是;需要構建用來改變。NET的安全配置的一個加載應用程序(除非你用的是Microsoft Transaction Server或Citrix,但是那樣的話,應用程序就只能在線使用)
大部分時間只傳輸數據
不是;結合內容的傳輸,.NET控件顯示在IE中
客户端需要。NET Framework
不是
平台和客户端是獨立的
不是
適合電子商務或Internet應用程序
不是;最適合企業內部應用程序
充分利用客户端豐富的資源
可以
不能
表1 比較兩者
通過將智能客户端的功能和web應用程序的功能進行比較,可以簡化我們的決策過程。
四、Smart Client的工作模型
應用程序加載器用HTTP從Web服務器上的一個虛擬目錄來訪問和下載裝配。下載後,裝配被緩存起來,只有需要的時候才執行它們。
五、Smart Client的安全性問題
1.客户端的代碼訪問安全(CAS) 説到Web方式直接運行,就不能不談到代碼訪問安全性(Code Access Security)問題,如果一個黑客能夠説服或者誘使你下載一段代碼,而你在很高的權限賬户下運行它,那操作系統就對各種危害門户打開。這種情形就是導致著名的宣言“在最小權限下運行”的原因,每個人都應該注意這一點。 但是,.NET Framework提供了比這種單純的基於身份的安全性更高級的功能。由CLR強制執行的CAS機制允許為代碼(實際上是assembliy,.NET Framework中調度和保護的單位)指定基於屬性的不同的可信度等級,例如數字證書或源站點或URL。在這種方式下,.NET Framework只允許已知的或受信的源代碼執行。 為了讓你的智能應用程序運轉,你需要改變一些客户端的安全設置——實質上就是通知客户端運行時間相信你的應用程序的裝配。一種方法就是將帶有你的裝配的站點添加到IE中可信任站點清單中,然後用安裝在你的管理工具目錄下的Microsoft .NET Framework Configuration工具來修改.NET Framework安全設置。打開Framework Configuration工具,右擊Runtime Security Policy,然後選擇Adjust Security。對於Trusted Sites中指定的所有站點,將信任級別調整到Full Trust。作為選擇,你也可以用Framework Configuaration工具來修改安全策略,使它信任你的應用程序的個別裝配。右擊Runtime Security Policy,選擇Trust Assembly。 2.服務器端的身份驗證 這裏的服務器端的身份驗證,實際上就是WebServices的身份驗證,雖然説從理論上Forms身份驗證也是可行的,但是WebServices既然是一個A2A(Application To Application)的應用程序,那麼還是儘量不要用這用更適合於人機交互的身份驗證方式為好。 (a) Windows身份驗證。 使用用户的Windows賬號如域賬號進行身份驗證。 (b) .Net Passport身份驗證 使用與用户相關聯的.NET Passport賬號進行身份驗證。(c) 自定義身份驗證 使用Soap來給Web服務傳遞賬户信息是一個相對使用URL傳遞裝户信息而言比較安全的方式,同時不必為每一個WebMethod傳遞證書(作為參數的一部份),如果仍然覺得不夠安全則可以對Soap頭進行加密,或者乾脆使用Soap傳遞安全證書,這裏只介紹使用Soap不加密傳遞用户名和密碼進行身份驗證的方式當一個服務請求發送到服務端,請求會被WebServiceAuthenticationModule截獲,WebServiceAuthenticationModule就開始分析該請求的Soap頭,從中解析出客户端發送的用户名和密碼,並進行身份驗證。如果身份驗證通過,WebServiceAuthenticationModule便會給用户簽發身份驗證票;如果身份驗證失敗,WebServiceAuthenticationModule便會拋出一個消息為”Access Deny!”的SOAPException,隨後服務端和客户端均可截獲該異常並進行處理。
六、Smart Client的未來
Smart Client實際上是一個客户端表現層架構,通過抽象這些概念開發人員可以更好地理解現代軟件開發的各個層次。它最適合的是.NET平台,而.NET則是微軟的戰略基礎,相信微軟在幾年內,會有越來越多的應用構建在.NET之上。在未來的幾年之內,.NET將成為更加主流的應用平台,作為建立在.NET基礎之上的抽象的表現層架構,隨着.NET平台的更加成熟,Smart Client也會有更多的用武之地。 VS.NET中最重要的後續產品—代號為“Whidbey”的Visual Studio 2005。VS2005除了在底層類庫和IDE提供了更加強大的支持以外,還針對無接觸部署引入了引人矚目的“Click Once”技術。Click Once技術通過使用Smart Client簡化 Web 應用程序的安裝和升級,從而給開發人員提供了更好的部署更新應用解決方案。Click Once基本上具有UAB和OAB的所有優勢,使許多編碼工作只要通過簡單地配置項目屬性即可完成,同時,它還具有一些新增功能。它最大的特點在於代碼訪問的安全性(CAS),從而保證應用程序在一個更加安全的環境中完成部署和更新。Click Once是.NET運行庫(CLR)中的一組功能與VS .NET中集成的design-time support(設計時支持)功能的組合。總之,使用該功能以及IDE工具,在部署、啓動和更新應用程序方面具有很大的靈活性。通過Click Once可以極大地簡化更新部署應用解決方案,同時也提供了更加強大的安全選項。 任何技術都是應用催生的,Smart Client也是如此。在經歷了C/S、B/S之後,是否真正步入了Smart Client時代呢?結論為時尚早。相信在這場變革中,Smart Client將為更多企業應用系統的開發帶來助力。