




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、智能客戶端離線處理的分析與實(shí)現(xiàn)摘要本文首先介紹了智能客戶端的概念及特性,其次闡述實(shí)現(xiàn)離線處理的方法,最后詳細(xì)介紹了微軟fflineappliatinblk的設(shè)計(jì)與實(shí)現(xiàn)。關(guān)鍵詞智能客戶端;離線應(yīng)用程序塊;離線處理1引言從技術(shù)架構(gòu)上看,應(yīng)用程序分為胖客戶端和瘦客戶端。胖客戶端將所有應(yīng)用程序都存儲(chǔ)在客戶端計(jì)算機(jī)上,并具有可以顯示復(fù)雜圖形和動(dòng)畫的用戶界面。另一方面,瘦客戶端將所有應(yīng)用程序都存儲(chǔ)在效勞器上。根本上,它只負(fù)責(zé)檢索和顯示數(shù)據(jù)。瘦客戶端的主要問(wèn)題是:數(shù)據(jù)需要往返很屢次才能傳輸?shù)叫谄?,從而降低了性能。胖客戶端的主要?wèn)題是:分配比擬復(fù)雜并且會(huì)導(dǎo)致端口問(wèn)題。從業(yè)務(wù)需求上看,隨著信息化的推進(jìn),信息系
2、統(tǒng)在行業(yè)中的應(yīng)用日益普及,對(duì)信息系統(tǒng)的離線使用需求也日益增多。許多行業(yè),如煙草專賣店,保險(xiǎn)推銷人員都需要在不能持續(xù)聯(lián)機(jī)的情況下使用信息系統(tǒng)。這樣的需求,需要有/S形式的桌面應(yīng)用程序,也要求可以象B/S使用那樣便捷,在傳統(tǒng)的B/S或者/S構(gòu)造中都很難直接實(shí)現(xiàn)。在早先SUN公司推出的JavaebStart從某種程度上可以到達(dá)相關(guān)的要求,但是有著大量的程序編寫來(lái)應(yīng)對(duì)離線/在線切換以及數(shù)據(jù)緩存等問(wèn)題。近年來(lái),微軟針對(duì)這樣的應(yīng)用,提出的面向效勞的智能客戶端概念,提出了離線/在線無(wú)縫切換的思想以及數(shù)據(jù)緩存處理的方案,良好的應(yīng)對(duì)了相關(guān)需求。同時(shí)基于ebServies的特性更使得智能客戶端的整合才能異常強(qiáng)大,
3、被認(rèn)為是將來(lái)企業(yè)應(yīng)用集成最有潛力的架構(gòu)形式。有兩個(gè)方法可以解決離線需求:以數(shù)據(jù)為中心的方法和面向效勞的方法。使用以數(shù)據(jù)為中心的方法,客戶端可以使用本地?cái)?shù)據(jù)庫(kù)和復(fù)制機(jī)制,以便在脫機(jī)形式下管理對(duì)數(shù)據(jù)的更改。使用面向效勞的方法,客戶端可以通過(guò)效勞懇求與許多效勞進(jìn)展交互。假如應(yīng)用程序處于脫機(jī)形式,它可以推延效勞懇求,直到重新連接至eb效勞。2.1以數(shù)據(jù)為中心的方法與效勞器上的數(shù)據(jù)相結(jié)合的應(yīng)用程序使用以數(shù)據(jù)為中心的方法。本地?cái)?shù)據(jù)庫(kù)管理對(duì)本地保存的數(shù)據(jù)所作的更改,然后使用合并復(fù)制將這些更改傳回效勞器。架構(gòu)如圖1。圖1以數(shù)據(jù)為中心的方法首先,客戶端創(chuàng)立對(duì)所需數(shù)據(jù)的訂閱,這樣客戶端就可以在脫機(jī)之前將該數(shù)據(jù)復(fù)制
4、到本地?cái)?shù)據(jù)存儲(chǔ)區(qū)中。一旦客戶端脫機(jī),它將通過(guò)對(duì)本地?cái)?shù)據(jù)存儲(chǔ)區(qū)的調(diào)用,對(duì)本地?cái)?shù)據(jù)進(jìn)展更改。然后,當(dāng)客戶端重新聯(lián)機(jī)時(shí),數(shù)據(jù)存儲(chǔ)區(qū)的合并復(fù)制機(jī)制將對(duì)客戶端數(shù)據(jù)所作的更改傳回效勞器。對(duì)效勞器數(shù)據(jù)所作的更改也可能會(huì)傳到客戶端。在合并階段遇到的任何沖突,將根據(jù)效勞器或客戶端上指定的沖突解決規(guī)那么,或根據(jù)數(shù)據(jù)存儲(chǔ)區(qū)管理員定義的自定義規(guī)那么來(lái)進(jìn)展處理。以數(shù)據(jù)為中心的方法包括以下特點(diǎn):該方法以數(shù)據(jù)庫(kù)的列級(jí)別和行級(jí)別提供可靠的數(shù)據(jù)沖突檢測(cè)。此外,它還提供數(shù)據(jù)驗(yàn)證和約束??蛻舳伺c數(shù)據(jù)存儲(chǔ)區(qū)相結(jié)合,這意味著對(duì)數(shù)據(jù)存儲(chǔ)區(qū)架構(gòu)所作的更改會(huì)直接影響客戶端。客戶端可以為其訂閱的數(shù)據(jù)存儲(chǔ)區(qū)提供脫機(jī)支持。合并復(fù)制是一個(gè)兩層體系構(gòu)
5、造,因此在可管理性和可維護(hù)性方面受到約束。該方法要求在客戶端上安裝本地?cái)?shù)據(jù)存儲(chǔ)區(qū)例如,SQLServerfrindsE(SQLE)或SDE,以便與效勞器進(jìn)展復(fù)制。這可能不適用于運(yùn)行在小型設(shè)備或要求簡(jiǎn)易部署機(jī)制的設(shè)備上的應(yīng)用程序。所有更改跟蹤代碼都包含在相關(guān)數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBS)的內(nèi)部。您不需要編寫其他更改跟蹤代碼或沖突檢測(cè)和解決代碼。2.2面向效勞的方法智能客戶端是面向效勞解決方案的組成局部,它可以通過(guò)效勞懇求與網(wǎng)絡(luò)上的效勞進(jìn)展交互。這些效勞可能作為eb效勞來(lái)實(shí)現(xiàn),或者通過(guò)某種其他機(jī)制來(lái)實(shí)現(xiàn),但是該方法的根本特征是:客戶端并沒(méi)有與它使用的效勞嚴(yán)密結(jié)合在一起,客戶端和效勞是彼此獨(dú)立的。在此方
6、法中,客戶端可以自由地與所需的任何效勞進(jìn)展交互。此外,客戶端將重點(diǎn)放在效勞懇求本身上,而不是放在對(duì)本地保存的數(shù)據(jù)進(jìn)展直接更改上。效勞懇求可能會(huì)導(dǎo)致客戶端或效勞器上的狀態(tài)更改,但這些更改只是效勞懇求的副作用。架構(gòu)如圖2。圖2面向效勞的方法面向效勞的方法包括以下特點(diǎn):脫機(jī)邏輯封裝在客戶端上??蛻舳藬?shù)據(jù)架構(gòu)可以不同于效勞器上的架構(gòu)。自定義的業(yè)務(wù)邏輯可決定沖突檢測(cè)和解決。實(shí)現(xiàn)面向效勞的方法需要更多的設(shè)計(jì)和編碼。要在脫機(jī)工作時(shí)支持智能客戶端,需要使用一個(gè)允許存儲(chǔ)效勞懇求詳細(xì)信息的根底構(gòu)造,這樣當(dāng)客戶端重新連接到網(wǎng)絡(luò)時(shí),就可以執(zhí)行這些效勞懇求。這樣的根底構(gòu)造由以下四個(gè)主要元素組成。效勞代理:效勞代理提供效
7、勞的主要訪問(wèn)點(diǎn)。它管理客戶端與效勞的所有交互,并封裝所有必要的邏輯以允許客戶端創(chuàng)立效勞懇求。效勞懇求:效勞懇求的所有詳細(xì)信息都封裝在一個(gè)效勞懇求對(duì)象中。然后,效勞懇求保存在效勞懇求隊(duì)列中,直到執(zhí)行程序組件可以對(duì)它們進(jìn)展處理。效勞懇求對(duì)象負(fù)責(zé)發(fā)出實(shí)際的效勞懇求。效勞懇求隊(duì)列:該隊(duì)列為效勞懇求對(duì)象提供持久的存儲(chǔ)區(qū)。執(zhí)行程序:當(dāng)客戶端重新連接到網(wǎng)絡(luò)時(shí),執(zhí)行程序負(fù)責(zé)從隊(duì)列中提取效勞懇求并執(zhí)行它們。在效勞懇求完成后,執(zhí)行程序會(huì)通知效勞代理,以便它可以通知客戶端。圖3展示了這四個(gè)元素,并顯示了它們之間的關(guān)系??梢詫⒋藞D看作使用面向效勞方法的組件中所必須包括的功能的表示。還可以將它看作此類組件所具有的類的表
8、示。圖3面向效勞方法的組件除了上述四個(gè)元素外,還需要考慮許多其他問(wèn)題,然后才能將脫機(jī)支持構(gòu)建到智能客戶端應(yīng)用程序中。例如,必須具有某種形式的通知機(jī)制,以便執(zhí)行程序可以開場(chǎng)或掛起隊(duì)列中的效勞懇求。fflineAppliatinBlk重點(diǎn)解決了離線/在線之間的無(wú)縫切換問(wèn)題。在實(shí)現(xiàn)離線/在線的無(wú)縫集成中,主要存在以下問(wèn)題:如何處理效勞懇求,以實(shí)現(xiàn)離線時(shí)同樣工作如何緩存操作數(shù)據(jù),以備離線正常工作如何同步緩存數(shù)據(jù),以免數(shù)據(jù)邏輯沖突如何監(jiān)測(cè)網(wǎng)絡(luò)狀態(tài),自動(dòng)改變工作狀態(tài)fflineAppliatinBlk使用面向效勞的方法,為了應(yīng)對(duì)離線的工作情況,它提供的調(diào)用流程與圖3一樣。其中效勞懇求包裝了詳細(xì)的效勞信息如
9、ebServies地址,名稱等等,從而建立效勞代理為客戶提供了調(diào)用接口。然后,通過(guò)建立效勞懇求隊(duì)列來(lái)緩存效勞懇求隊(duì)列,使效勞懇求信息可以緩存。最后通過(guò)執(zhí)行程序來(lái)調(diào)用實(shí)際的效勞。通過(guò)這種方式,離線的效勞懇求信息可以通過(guò)文件、數(shù)據(jù)庫(kù)或者消息隊(duì)列等進(jìn)展緩存,而專用的執(zhí)行程序也可以與離線/執(zhí)行切換的事件掛鉤,從而實(shí)現(xiàn)離線/在線無(wú)縫切換。fflineAppliatinBlk的效勞處理過(guò)程如圖4所示:圖4fflineAppliatinBlk效勞流程在這樣的流程中,效勞懇求可以被保存,使效勞的懇求信息可以通過(guò)數(shù)據(jù)庫(kù)、文本文件或者消息隊(duì)列的方式存儲(chǔ),并建立離線狀態(tài)下的效勞懇求隊(duì)列。通過(guò)專門的執(zhí)行程序來(lái)執(zhí)行效勞
10、隊(duì)列懇求,這樣可以直接通過(guò)回調(diào)的方式與程序的在線/離線切換直接掛鉤。因此,對(duì)效勞懇求的協(xié)調(diào)和管理是fflineAppliatinBlk中重點(diǎn)考慮的局部,為了實(shí)現(xiàn)以上的工作流程,fflineAppliatinBlk分成了如圖5所示相應(yīng)子系統(tǒng),它們是松散耦合的組件。圖5fflineAppliatinBlk子系統(tǒng)a)連接狀態(tài)管理:檢測(cè)應(yīng)用程序是處于聯(lián)機(jī)狀態(tài)還是脫機(jī)狀態(tài)。有兩種方法可以判斷連接狀態(tài):手動(dòng)判斷或通過(guò)自動(dòng)過(guò)程判斷。應(yīng)用程序的行為會(huì)根據(jù)連接狀態(tài)而變化。b效勞代理管理:與fflineAppliatinBlk的這些元素“消息數(shù)據(jù)管理、“參考數(shù)據(jù)管理以及效勞器進(jìn)展交互。它會(huì)進(jìn)展協(xié)調(diào),以便將任務(wù)完成
11、通知返回到應(yīng)用程序。)消息數(shù)據(jù)管理:消息數(shù)據(jù)是在工作流過(guò)程中創(chuàng)立的數(shù)據(jù)。當(dāng)應(yīng)用程序處于脫機(jī)狀態(tài)時(shí),該數(shù)據(jù)將存儲(chǔ)在一個(gè)本地隊(duì)列中。當(dāng)應(yīng)用程序聯(lián)機(jī)后,“執(zhí)行程序會(huì)從“隊(duì)列中刪除消息,發(fā)出與效勞器同步數(shù)據(jù)的“效勞懇求,然后數(shù)據(jù)就會(huì)與效勞器進(jìn)展同步。d)參考數(shù)據(jù)管理:“參考數(shù)據(jù)管理與“效勞代理管理和“消息數(shù)據(jù)管理配合工作,以下載存儲(chǔ)在本地計(jì)算機(jī)上的參考數(shù)據(jù)。在大多數(shù)情況下,參考數(shù)據(jù)是用于完成工作流的只讀數(shù)據(jù)?!皡⒖紨?shù)據(jù)管理可使參考數(shù)據(jù)與效勞器上的數(shù)據(jù)保持一致。它將消息存儲(chǔ)在“隊(duì)列中以下載參考數(shù)據(jù)。然后,“執(zhí)行程序?qū)⑹褂孟⑿趹┣笈c效勞fflineappliatinblk中所有的邏輯程序都是通過(guò)相應(yīng)的
12、Builder來(lái)完成。其中fflineBlkBuilder是整個(gè)系統(tǒng)的Builder入口。fflineBlkBuilder中創(chuàng)立了系統(tǒng)運(yùn)行中所需要的所有Builder邏輯,一旦實(shí)例化fflineBlkBuilder,整個(gè)appliatinblk中需要的業(yè)務(wù)邏輯將讀取配置文件信息來(lái)創(chuàng)立完成。一個(gè)完好的效勞大致的調(diào)用邏輯如下:lientusterBuilder配置所有的事件信息usterServieAgent繼承自ServieAgentDataLadanagerQueueanagerExutrnlinePrxyntextServieServieAgentntextlient其中,效勞的轉(zhuǎn)換過(guò)程通過(guò)事件觸發(fā)。在微軟提供的AppliatinBlk中,提供了許多例子來(lái)演示如何使用fflineappliatinblk。詳
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 光伏發(fā)電融資租賃合同范例
- 關(guān)于展會(huì)框架合同范例
- 臨時(shí)供貨大米合同范例
- 人力輸送合同范例
- 保密加工合同范例
- 加盟分店轉(zhuǎn)讓合同范例
- 企業(yè)向員工集資合同范例
- 個(gè)人水泵維修合同范例
- 三方倉(cāng)儲(chǔ)配送合同范例
- 會(huì)議服務(wù)制作合同范例
- 2023-2024全國(guó)初中物理競(jìng)賽試題第09講杠桿(原卷版)
- 2024年新大象版四年級(jí)下冊(cè)科學(xué)全冊(cè)精編知識(shí)點(diǎn)總結(jié)
- 風(fēng)險(xiǎn)管理組織架構(gòu)課件
- 2023-2024學(xué)年人教版新教材必修第二冊(cè) 第七章第一節(jié) 認(rèn)識(shí)有機(jī)化合物(第1課時(shí)) 教案
- 新概念二-第24課課件
- 《土地管理法》課件
- 項(xiàng)目使用林地可行性報(bào)告
- 網(wǎng)絡(luò)安全技術(shù)服務(wù)方案
- 明天版幼兒園大班語(yǔ)言領(lǐng)域《尖嘴巴和短尾巴》課件
- 文旅項(xiàng)目招商方案
- AC800M特點(diǎn)優(yōu)勢(shì)課件
評(píng)論
0/150
提交評(píng)論