專利名稱:用于實(shí)現(xiàn)瘦客戶機(jī)的四層體系結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)體系結(jié)構(gòu),尤其涉及用于實(shí)現(xiàn)瘦客戶機(jī)的四層計(jì)算機(jī)體系結(jié)構(gòu)。
背景技術(shù):
隨著增強(qiáng)型通信網(wǎng)絡(luò)和計(jì)算設(shè)備的迅速發(fā)展,用于客戶機(jī)/服務(wù)器通信的web服務(wù)變得更為流行。Web服務(wù)可以位于企業(yè)的服務(wù)器中,或位于線上(托管提供)并由客戶機(jī)為各種操作訪問。文檔共享、搜索、分析、報(bào)告、數(shù)據(jù)挖掘僅僅是web服務(wù)的一些示例。Web 服務(wù)的日益流行帶來了瘦客戶機(jī)的發(fā)展,類似于在瀏覽器或移動(dòng)客戶應(yīng)用程序中的帶有豐富的用戶接口(UI)的豐富互聯(lián)網(wǎng)應(yīng)用程序。瘦客戶機(jī)是嚴(yán)重依賴于另一個(gè)計(jì)算機(jī)(或服務(wù)器)以完成其傳統(tǒng)計(jì)算職責(zé)的計(jì)算機(jī)程序。這與傳統(tǒng)的胖客戶機(jī)相反,傳統(tǒng)的胖客戶機(jī)是設(shè)計(jì)成由其自身執(zhí)行這些職責(zé)的計(jì)算機(jī)程序(或設(shè)備)。瘦客戶機(jī)設(shè)置中的服務(wù)器會(huì)承擔(dān)多種職責(zé),包括但不限于,提供數(shù)據(jù)持續(xù)性、信息處理、通信便利化、以及類似功能。胖客戶機(jī)體系結(jié)構(gòu)通常包括客戶機(jī)自身、應(yīng)用程序服務(wù)器、以及對(duì)被處理數(shù)據(jù)進(jìn)行管理的數(shù)據(jù)庫(kù)服務(wù)器。因?yàn)榕挚蛻魴C(jī)應(yīng)用程序是最新的,使用3層胖客戶機(jī)體系結(jié)構(gòu)來設(shè)計(jì)基于web的系統(tǒng)的大部分。因此,在瘦客戶機(jī)和其服務(wù)器之間(諸如,web服務(wù)器)的共享職責(zé)提出了將這種相對(duì)新的發(fā)展集成入傳統(tǒng)系統(tǒng)的挑戰(zhàn)。
發(fā)明內(nèi)容
提供本概述是為了以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概念。本概述并不旨在排他性地標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限定所要求保護(hù)的主題的范圍。實(shí)施例針對(duì)用于使基于邏輯客戶機(jī)的3層應(yīng)用程序能夠支持4層體系結(jié)構(gòu)的瘦客戶機(jī)的應(yīng)用程序結(jié)構(gòu)。根據(jù)一些實(shí)施例,邏輯客戶機(jī)可用駐留在瘦客戶機(jī)中的代理邏輯客戶機(jī)來擴(kuò)展。代理邏輯客戶機(jī)可包括用于邏輯形式和控件的邏輯代理,使得它們能夠運(yùn)行在瘦客戶機(jī)上并便于瘦客戶機(jī)和3層體系結(jié)構(gòu)中的應(yīng)用程序的無縫交互。上述和其他特征和優(yōu)點(diǎn)將通過閱讀下述描述并參考所結(jié)合的附圖而變得顯而易見??梢岳斫獾剑笆龈怕悦枋龊秃罄m(xù)的詳細(xì)描述均是示例性的,并且不限制所要求的范圍。
圖1是對(duì)用于聯(lián)網(wǎng)計(jì)算操作的3層和4層體系結(jié)構(gòu)的比較的示意圖;圖2示出可駐留在web服務(wù)器中的邏輯客戶機(jī)結(jié)構(gòu);圖3示出根據(jù)各個(gè)實(shí)施例作為web服務(wù)器的邏輯客戶機(jī)的擴(kuò)展而可駐留在瘦客戶機(jī)之中的代理邏輯客戶機(jī)結(jié)構(gòu);
圖4示出根據(jù)多個(gè)實(shí)施例的系統(tǒng)的示例性組件之間的交互;圖5示出根據(jù)一個(gè)實(shí)施例的用于胖客戶機(jī)的示例性編程模型以及用于瘦客戶機(jī)的對(duì)應(yīng)示例性模型;圖6示出用于4層瘦客戶機(jī)體系結(jié)構(gòu)的示例性實(shí)施平臺(tái);圖7是其中可實(shí)現(xiàn)根據(jù)各實(shí)施例的系統(tǒng)的聯(lián)網(wǎng)環(huán)境;圖8是其中可實(shí)現(xiàn)各實(shí)施例的示例計(jì)算操作環(huán)境的框圖;以及圖9示出根據(jù)各個(gè)實(shí)施例的用于實(shí)現(xiàn)瘦客戶機(jī)的4層體系結(jié)構(gòu)的過程的邏輯流程圖。
具體實(shí)施例方式如之前所簡(jiǎn)略描述的,通過當(dāng)邏輯客戶機(jī)運(yùn)行在web服務(wù)器(體系結(jié)構(gòu)的第3層) 上時(shí)使用運(yùn)行在瘦客戶機(jī)(體系結(jié)構(gòu)的第4層)上的代理邏輯客戶機(jī)來擴(kuò)展該邏輯客戶機(jī),從而可將胖客戶機(jī)3層體系結(jié)構(gòu)(其中客戶機(jī)是圍繞一邏輯客戶機(jī)而構(gòu)建的)擴(kuò)展為 4層瘦客戶機(jī)體系結(jié)構(gòu)??梢酝ㄟ^用于邏輯形式和控件的代理邏輯客戶機(jī)的瘦代理來促進(jìn)與3層結(jié)構(gòu)內(nèi)的應(yīng)用程序的交互。在以下詳細(xì)描述中,參考了構(gòu)成了詳細(xì)描述的一部分并作為說明示出了各具體實(shí)施方式
或示例的附圖??山M合些方面,可利用其他方面,并且可以做出結(jié)構(gòu)上的改變而不背離本發(fā)明的精神或范圍。因此,以下具體實(shí)施方式
并不旨在限制, 并且本發(fā)明的范圍由所附權(quán)利要求及其等效方案來限定。雖然在結(jié)合在個(gè)人計(jì)算機(jī)上的操作系統(tǒng)上運(yùn)行的應(yīng)用程序執(zhí)行的程序模塊的一般上下文中描述了各實(shí)施方式,但是本領(lǐng)域技術(shù)人員會(huì)認(rèn)識(shí)到各方面也可以結(jié)合其他程序模塊實(shí)現(xiàn)。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)和其他類型的結(jié)構(gòu)。此外,如本領(lǐng)域技術(shù)人員理解的,各實(shí)施例可以用其他計(jì)算機(jī)系統(tǒng)配置來實(shí)施,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程消費(fèi)者電子產(chǎn)品、小型計(jì)算機(jī)、大型計(jì)算機(jī)以及類似計(jì)算設(shè)備。各實(shí)施方式還能在任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備來執(zhí)行的分布式計(jì)算環(huán)境中實(shí)現(xiàn)。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。各實(shí)施例可被實(shí)現(xiàn)為計(jì)算機(jī)實(shí)現(xiàn)的過程(方法)、計(jì)算系統(tǒng)、或者如計(jì)算機(jī)程序產(chǎn)品或計(jì)算機(jī)可讀介質(zhì)等制品。計(jì)算機(jī)程序產(chǎn)品可以是計(jì)算機(jī)系統(tǒng)可讀并且編碼包括用于使得計(jì)算機(jī)或計(jì)算系統(tǒng)執(zhí)行示例過程的指令的計(jì)算機(jī)程序的計(jì)算機(jī)存儲(chǔ)介質(zhì)。例如,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可經(jīng)由易失性計(jì)算機(jī)存儲(chǔ)器、非易失性存儲(chǔ)器、硬盤驅(qū)動(dòng)器、閃存驅(qū)動(dòng)器、軟盤或緊致盤和類似介質(zhì)中的一個(gè)或多個(gè)來實(shí)現(xiàn)。在本說明書之中,術(shù)語“平臺(tái)”可以是用于管理計(jì)算機(jī)和網(wǎng)絡(luò)操作的軟件和硬件組件的組合,其可包括瘦客戶機(jī)。平臺(tái)的示例包括但不限于,在多個(gè)服務(wù)器上執(zhí)行的托管服務(wù)、在單個(gè)服務(wù)器上執(zhí)行的應(yīng)用程序以及類似系統(tǒng)。術(shù)語“服務(wù)器”一般指通常在聯(lián)網(wǎng)環(huán)境中執(zhí)行一個(gè)或多個(gè)軟件程序的計(jì)算設(shè)備。然而,服務(wù)器還可被實(shí)現(xiàn)為視作網(wǎng)絡(luò)上的服務(wù)器的、在一個(gè)或多個(gè)計(jì)算設(shè)備上執(zhí)行的虛擬服務(wù)器(軟件程序)。關(guān)于這些技術(shù)和示例操作的更多細(xì)節(jié)在以下提供。圖1是對(duì)用于聯(lián)網(wǎng)計(jì)算操作的3層和四4體系結(jié)構(gòu)進(jìn)行比較的示意圖。瘦客戶機(jī)是更寬泛的計(jì)算機(jī)基礎(chǔ)結(jié)構(gòu)的組件,其中許多客戶機(jī)與同一服務(wù)器共享它們的計(jì)算。因此, 瘦客戶機(jī)基礎(chǔ)結(jié)構(gòu)可以被視為跨越多個(gè)用戶接口的計(jì)算服務(wù)的表示。瘦客戶機(jī)的一個(gè)示例是低端計(jì)算機(jī)終端,其向終端用戶提供圖形用戶接口,而由服務(wù)器提供諸如操作系統(tǒng)的剩余功能。瘦客戶機(jī)的其它示例包括瀏覽器應(yīng)用程序、移動(dòng)客戶機(jī)應(yīng)用程序、以及類似物中的web應(yīng)用程序。瘦客戶機(jī)通常不被設(shè)計(jì)為在3層體系結(jié)構(gòu)上運(yùn)行,3層體系結(jié)構(gòu)諸如由華盛頓州雷德蒙的微軟公司制作的.NET 框架。圖100示出3層結(jié)構(gòu),包括胖客戶機(jī)(層 3) 102、應(yīng)用程序服務(wù)器(層2、104、以及數(shù)據(jù)庫(kù)服務(wù)器(層1) 106。胖客戶機(jī)102至少具有通過網(wǎng)絡(luò)到應(yīng)用程序服務(wù)器104的間歇連接,并通常以在沒有該連接的情況下執(zhí)行許多功能的能力為特點(diǎn)。將由胖客戶機(jī)102和應(yīng)用程序服務(wù)器104的協(xié)同操作所處理的數(shù)據(jù)可以通過數(shù)據(jù)庫(kù)服務(wù)器106從數(shù)據(jù)存儲(chǔ)器(諸如,數(shù)據(jù)庫(kù)、數(shù)據(jù)塊、或其他任何數(shù)據(jù)存儲(chǔ)設(shè)施) 檢索,或被存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器之中。相對(duì)于胖客戶機(jī)102,瘦客戶機(jī)112是4層結(jié)構(gòu)的層4,并通常執(zhí)行盡可能少的處理,在諸如每次輸入數(shù)據(jù)需要被處理或被驗(yàn)證時(shí)依靠對(duì)網(wǎng)絡(luò)的訪問。在4層體系結(jié)構(gòu)中,瘦客戶機(jī)112通過web服務(wù)器(層3) 114訪問應(yīng)用程序服務(wù)器(層2) 116的資源。因此,在 4層體系結(jié)構(gòu)中瘦客戶機(jī)112和web服務(wù)器114執(zhí)行胖客戶機(jī)的操作和任務(wù)。要被處理的數(shù)據(jù)仍然可由應(yīng)用程序服務(wù)器116通過數(shù)據(jù)庫(kù)服務(wù)器(層1)118從數(shù)據(jù)源檢索,或存儲(chǔ)在數(shù)據(jù)源之中。例如,瘦客戶機(jī)112可包括使用戶能使用基于web的文字處理服務(wù)的瀏覽器應(yīng)用程序。文字處理服務(wù)本身可由應(yīng)用程序服務(wù)器116來執(zhí)行和管理,并通過瘦客戶機(jī)112 和web服務(wù)器14的交互來訪問。圖2示出可駐留在web服務(wù)器中的邏輯客戶機(jī)體系結(jié)構(gòu)200。根據(jù)各個(gè)實(shí)施例的系統(tǒng)包括駐留在體系結(jié)構(gòu)的第3層的web服務(wù)器中的邏輯客戶機(jī)體系結(jié)構(gòu)200。體系結(jié)構(gòu)的邏輯客戶機(jī)2 可以在設(shè)計(jì)時(shí)間期間被創(chuàng)建,并描述或建模數(shù)據(jù)結(jié)構(gòu)如何被變換供瘦客戶機(jī)使用。邏輯客戶機(jī)體系結(jié)構(gòu)200可基于多個(gè)不同的應(yīng)用程序中的數(shù)據(jù)結(jié)構(gòu)而被建模, 并被用于在多個(gè)不同的顯示目標(biāo)(諸如,顯示目標(biāo)222、224)上呈現(xiàn)用戶接口(UI)的特定實(shí)施方式。應(yīng)用程序可包括商業(yè)應(yīng)用程序,諸如存儲(chǔ)不同類型數(shù)據(jù)的ERP系統(tǒng)和CRM系統(tǒng)。不同類型的顯示目標(biāo)222、2M可被配置為捕捉由邏輯客戶機(jī)226生成的邏輯內(nèi)容,并將其邏輯內(nèi)容呈現(xiàn)為UI形式。例如,如果顯示目標(biāo)是互聯(lián)網(wǎng)瀏覽器,該互聯(lián)網(wǎng)瀏覽器可捕捉邏輯客戶機(jī)2 的內(nèi)容,并將這些內(nèi)容呈現(xiàn)為web形式。在一些情況中,不同類型的顯示目標(biāo)可顯示被包括在邏輯客戶機(jī)中的邏輯內(nèi)容的僅僅一個(gè)子集。除了對(duì)形式和控件的邏輯表示,邏輯客戶機(jī)2 可處理數(shù)據(jù)綁定和變更傳播。邏輯客戶機(jī)2 通常獨(dú)立于顯示目標(biāo)222和2M。圖3在示意圖300中示出根據(jù)各個(gè)實(shí)施例可駐留在瘦客戶機(jī)中作為web服務(wù)器的邏輯客戶機(jī)的擴(kuò)展的代理邏輯客戶機(jī)結(jié)構(gòu)。根據(jù)各個(gè)實(shí)施例,瘦客戶機(jī)312包括代理邏輯客戶機(jī)334,代理邏輯客戶機(jī)334允許層3上的邏輯客戶機(jī)(圖2中的邏輯客戶機(jī)226)被擴(kuò)展到(或被代理到)瘦客戶機(jī)312上。邏輯客戶機(jī)運(yùn)行在web服務(wù)器層中,而對(duì)應(yīng)的代理邏輯客戶機(jī)運(yùn)行在瘦客戶機(jī)上。因此,邏輯客戶機(jī)其本身出于實(shí)用目的而變成兩層的。代理邏輯客戶機(jī)334可包括代理邏輯形式336和代理邏輯控件338。代理控件/ 形式(336,338)包括形式/控件的屬性數(shù)據(jù)——狀態(tài),但不包括它們的行為。控件的行為可由層3的web服務(wù)器314上的邏輯客戶機(jī)340執(zhí)行。邏輯客戶機(jī)340的其他產(chǎn)物,諸如數(shù)據(jù)綁定等,也可在層3上提供并執(zhí)行。代理邏輯客戶機(jī)334可與如前所述的瘦客戶機(jī)的顯示目標(biāo)332進(jìn)行交互。邏輯客戶機(jī)340可包括UI會(huì)話模塊356。為了呈現(xiàn)UI形式,顯示目標(biāo)中的一個(gè)可發(fā)起由UI會(huì)話模塊356提供的會(huì)話。會(huì)話可驗(yàn)證(驗(yàn)證348)用戶的憑證??山⑦壿婾I 表示,其包括關(guān)于邏輯形式342、控件344、動(dòng)作354、以及數(shù)據(jù)綁定(352)的內(nèi)容。邏輯UI 表示的內(nèi)容獨(dú)立于數(shù)據(jù)源,并且獨(dú)立于要在其上呈現(xiàn)該內(nèi)容的顯示目標(biāo)。邏輯UI表示的內(nèi)容(UI模式346)可向至少一個(gè)顯示目標(biāo)(諸如,顯示目標(biāo)332)展示,以用于UI形式的呈現(xiàn)。由邏輯客戶機(jī)340執(zhí)行的其他動(dòng)作可包括格式化和/或解析350以及服務(wù)與第2層上的應(yīng)用程序服務(wù)器的后端集成358。圖4示出根據(jù)各個(gè)實(shí)施例的系統(tǒng)的示例組件之間的交互。盡管在瘦客戶機(jī)的代理邏輯客戶機(jī)和web服務(wù)器的邏輯客戶機(jī)之間可進(jìn)行許多不同的交互以通過4層瘦客戶機(jī)體系結(jié)構(gòu)提供對(duì)遠(yuǎn)程服務(wù)的訪問,為闡釋目的,示例性的情景將被示出在圖400中。根據(jù)示例性的情景,(在層4上的)瘦客戶機(jī)412的本機(jī)用戶接口(UI)組件 462(諸如,文本框、按鈕等)可接收用戶動(dòng)作,并通過瘦客戶機(jī)412的邏輯控制適配器464 來指令代理邏輯控件466。為了執(zhí)行邏輯客戶機(jī)的行為,代理邏輯客戶機(jī)可通過代理邏輯控件466進(jìn)行對(duì)層3 (414)邏輯客戶機(jī)的回叫(callback)。邏輯客戶機(jī)的邏輯控件468可隨后使用服務(wù)器應(yīng)用程序代碼470在應(yīng)用程序服務(wù)器(層2、416調(diào)用服務(wù)器動(dòng)作,并接收響應(yīng)的數(shù)據(jù)/狀態(tài)改變。當(dāng)回叫完成時(shí),狀態(tài)改變將從邏輯控件468轉(zhuǎn)發(fā)到瘦客戶機(jī)上的代理邏輯控件466。在代理邏輯客戶機(jī)上,在該回叫期間發(fā)生的屬性/數(shù)據(jù)改變可隨后被應(yīng)用以更新本機(jī)UI元件462上的自然形式,其確保了代理反映真實(shí)邏輯客戶機(jī)的改變后的狀態(tài)。圖5示出了根據(jù)一個(gè)實(shí)施例的用于胖客戶機(jī)的示例性編程模型,以及用于瘦客戶機(jī)的對(duì)應(yīng)的示例性模型。如圖500所示的,基于代理邏輯客戶機(jī)的4層瘦客戶機(jī)體系結(jié)構(gòu)為瘦客戶機(jī)502上的代碼使用與胖客戶機(jī)514的編程模型相類似的編程模型。在胖邏輯客戶機(jī)中,模型包括邏輯控件572,邏輯控件572通過控制邏輯控制適配器574而被適配于本機(jī)控件576。瘦客戶機(jī)514上的編程模型是等效的。在瘦客戶機(jī)上,開發(fā)者也會(huì)創(chuàng)建邏輯控制適配器582,其將瘦代理邏輯控件580適配于瘦客戶機(jī)514上的本機(jī)控件584。邏輯控制適配器582針對(duì)代理工作的情況將對(duì)開發(fā)者和顯示目標(biāo)是透明的,并且將防止開發(fā)者對(duì)web 服務(wù)器512上的真實(shí)邏輯控件578的直接訪問。圖6示出用于4層瘦客戶機(jī)體系結(jié)構(gòu)的示例實(shí)施平臺(tái)。因?yàn)榇磉壿嬁蛻魴C(jī)不要求整個(gè)框架或操作系統(tǒng)來運(yùn)作,其可被實(shí)現(xiàn)并執(zhí)行在瘦客戶機(jī)上,諸如根據(jù)一個(gè)示例性情景的作為豐富web應(yīng)用程序的一部分的瀏覽器612。在示意圖600的示例性體系結(jié)構(gòu)中,瀏覽器612和web服務(wù)器614是web服務(wù)客戶機(jī)的一部分。示例性的web服務(wù)可使用戶能存儲(chǔ)、共享、編輯、檢索、以及查看各種文檔, 這些文檔傳統(tǒng)上是由安裝在各個(gè)計(jì)算設(shè)備上的不同的應(yīng)用程序處理的??赏ㄟ^控件/形式適配器6 和瀏覽器控件/形式適配器630來促進(jìn)在web服務(wù)器614上的web應(yīng)用程序624以及對(duì)應(yīng)的超文本標(biāo)記語言(HTML)文檔對(duì)象模型(DOM)/客戶機(jī)web應(yīng)用程序6 之間的數(shù)據(jù)和狀態(tài)交換,控件/形式適配器6 提供邏輯和本機(jī)控件 /形式之間的連接,瀏覽器控件/形式適配器630提供邏輯和HTML控件/形式之間的連接。 控件/形式適配器6 和瀏覽器控件/形式適配器630諸如使用超文本傳輸協(xié)議(HTTP) 來通信。Web顯示目標(biāo)622可通過瀏覽器612來提供對(duì)來自邏輯客戶機(jī)632以及代理邏輯客戶機(jī)634的內(nèi)容的呈現(xiàn)。邏輯客戶機(jī)632使用應(yīng)用程序特定客戶機(jī)綜合層來處理形式和控件的邏輯表示, 應(yīng)用程序特定客戶機(jī)綜合層與應(yīng)用程序服務(wù)器616 (web應(yīng)用程序)交換消息,應(yīng)用程序服務(wù)器616執(zhí)行UI和商業(yè)邏輯、從SQL數(shù)據(jù)庫(kù)服務(wù)器618檢索數(shù)據(jù)、激活對(duì)話、并驗(yàn)證字段。 代理邏輯客戶機(jī)634在瘦客戶機(jī)(瀏覽器)612上顯示web服務(wù)器托管的邏輯形式、控件、 UI和會(huì)話。已經(jīng)使用特定服務(wù)器、客戶機(jī)、軟件模塊、組件和交互來描述了圖2到6的示例性系統(tǒng)。各實(shí)施例不限于根據(jù)這些示例配置的系統(tǒng)。用于瘦客戶機(jī)的四層體系結(jié)構(gòu)可在使用更少或額外組件并執(zhí)行其他任務(wù)的配置中實(shí)現(xiàn)。此外,可以使用此處描述的原理用相似的方式來實(shí)現(xiàn)具體的協(xié)議和/或接口。圖7是可以實(shí)現(xiàn)各實(shí)施例的示例聯(lián)網(wǎng)環(huán)境。提供4層體系結(jié)構(gòu)中瘦客戶機(jī)應(yīng)用程序的平臺(tái)可通過在一個(gè)或多個(gè)服務(wù)器744或單個(gè)服務(wù)器(諸如,web服務(wù)器)746上執(zhí)行的軟件(諸如,托管服務(wù))來實(shí)現(xiàn)。該平臺(tái)可通過網(wǎng)絡(luò)740與各個(gè)計(jì)算設(shè)備上的瘦客戶機(jī)應(yīng)用程序進(jìn)行通信,各個(gè)計(jì)算設(shè)備諸如智能電話743、膝上型計(jì)算機(jī)742、或臺(tái)式計(jì)算機(jī)741 (“客戶機(jī)設(shè)備”)。如前所述的,執(zhí)行在客戶機(jī)設(shè)備741-743的任何一個(gè)上的客戶機(jī)應(yīng)用程序可執(zhí)行瘦客戶機(jī),瘦客戶機(jī)連同運(yùn)行在web服務(wù)器上(諸如,在服務(wù)器744上或在單個(gè)服務(wù)器746 上)的邏輯客戶機(jī)一起對(duì)在遠(yuǎn)程服務(wù)器(諸如,服務(wù)器744中之一)上執(zhí)行的應(yīng)用程序的訪問,如前所描述的。遠(yuǎn)程應(yīng)用程序服務(wù)器可直接地或通過數(shù)據(jù)庫(kù)服務(wù)器748從數(shù)據(jù)存儲(chǔ)器749檢索相關(guān)數(shù)據(jù),或?qū)⑾嚓P(guān)數(shù)據(jù)存儲(chǔ)入數(shù)據(jù)存儲(chǔ)器749。網(wǎng)絡(luò)740可包括服務(wù)器、客戶端、因特網(wǎng)服務(wù)供應(yīng)商、以及通信介質(zhì)的任何拓?fù)浣Y(jié)構(gòu)。根據(jù)各實(shí)施例的系統(tǒng)可具有靜態(tài)或動(dòng)態(tài)拓?fù)浣Y(jié)構(gòu)。網(wǎng)絡(luò)740可包括諸如企業(yè)網(wǎng)絡(luò)等安全網(wǎng)絡(luò)、諸如無線開放網(wǎng)絡(luò)等非安全網(wǎng)絡(luò)、或因特網(wǎng)。網(wǎng)絡(luò)740還可通過諸如公共交換電話網(wǎng)絡(luò)(PSTN)或蜂窩網(wǎng)絡(luò)等其他網(wǎng)絡(luò)來協(xié)調(diào)通信。此外,網(wǎng)絡(luò)740可包括諸如藍(lán)牙或類似網(wǎng)絡(luò)等短程無線網(wǎng)絡(luò)。網(wǎng)絡(luò)740提供此處描述的節(jié)點(diǎn)之間的通信。作為示例而非限制,網(wǎng)絡(luò) 740可包括諸如聲學(xué)、RF、紅外線和其他無線介質(zhì)等無線介質(zhì)。計(jì)算設(shè)備、應(yīng)用程序、數(shù)據(jù)源、以及數(shù)據(jù)分布系統(tǒng)的各種其他的配置可被使用以實(shí)現(xiàn)用于瘦客戶機(jī)的四層體系結(jié)構(gòu)。進(jìn)一步的,圖7中所討論的聯(lián)網(wǎng)環(huán)境僅用于說明目的。各實(shí)施方式不限于示例應(yīng)用程序、模塊、或過程。圖8及相關(guān)聯(lián)的討論旨在提供對(duì)其中可實(shí)現(xiàn)各實(shí)施方式的合適計(jì)算環(huán)境的簡(jiǎn)要概括描述。參考圖8,示出了根據(jù)各實(shí)施例的、諸如計(jì)算設(shè)備800等用于應(yīng)用程序的示例計(jì)算操作環(huán)境的框圖。在一個(gè)基本配置中,計(jì)算設(shè)備800可以是客戶機(jī)設(shè)備并包括至少一個(gè)處理單元802和系統(tǒng)存儲(chǔ)器804,客戶機(jī)設(shè)備執(zhí)行根據(jù)多個(gè)實(shí)施例的能通過代理邏輯客戶機(jī)與web服務(wù)器進(jìn)行交互的瘦客戶機(jī)。計(jì)算設(shè)備800還可包括協(xié)作執(zhí)行程序的多個(gè)處理單元。取決于計(jì)算設(shè)備的確切配置和類型,系統(tǒng)存儲(chǔ)器804可以是易失性的(諸如RAM)、非易失性的(諸如ROM、閃存等)或是兩者的某種組合。系統(tǒng)存儲(chǔ)器804通常包括適用于控制平臺(tái)操作的操作系統(tǒng)805,諸如,華盛頓州雷得蒙的微軟公司出品的WINDOWS 操作系統(tǒng)。系統(tǒng)存儲(chǔ)器804也可包括一個(gè)或多個(gè)軟件應(yīng)用程序,諸如,程序模塊806、瘦客戶機(jī)應(yīng)用程序822以及代理邏輯客戶機(jī)826。應(yīng)用程序822可以是任何與遠(yuǎn)程應(yīng)用程序或托管服務(wù)進(jìn)行交互的瘦客戶機(jī)應(yīng)用程序。代理邏輯客戶機(jī)擬6可通過回叫使得用戶動(dòng)作能夠轉(zhuǎn)發(fā)到web服務(wù)器上的邏輯客戶機(jī)并在回叫完成時(shí)更新瘦客戶機(jī)的狀態(tài)。該基本配置在圖8中由虛線808內(nèi)的組件示出。計(jì)算設(shè)備800可具有附加特征或功能。例如,計(jì)算設(shè)備800還可包括附加數(shù)據(jù)存儲(chǔ)設(shè)備(可移動(dòng)和/或不可移動(dòng)),諸如例如磁盤、光盤或磁帶。在圖8中通過可移動(dòng)存儲(chǔ)器 809和不可移動(dòng)存儲(chǔ)器810示出了這樣的附加存儲(chǔ)。計(jì)算機(jī)可讀介質(zhì)可包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。系統(tǒng)存儲(chǔ)器804、可移動(dòng)存儲(chǔ)器809和不可移動(dòng)存儲(chǔ)器810都是計(jì)算機(jī)可讀介質(zhì)的示例。計(jì)算機(jī)可讀介質(zhì)包括,但不限于,RAM、R0M、EEPR0M、 閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光存儲(chǔ)、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或能用于存儲(chǔ)所需信息且可以由計(jì)算設(shè)備800訪問的任何其它介質(zhì)。任何這樣的計(jì)算機(jī)可讀介質(zhì)都可以是計(jì)算設(shè)備800的一部分。計(jì)算設(shè)備800也可具有輸入設(shè)備 812,諸如鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、觸摸輸入設(shè)備和類似輸入設(shè)備。還可包括輸出設(shè)備 814,諸如顯示器、揚(yáng)聲器、打印機(jī)和其他類型的輸出設(shè)備。這些設(shè)備在本領(lǐng)域中公知并且無需在此處詳細(xì)討論。計(jì)算設(shè)備800還可包含通信連接816,該通信連接允許該設(shè)備諸如通過分布式計(jì)算環(huán)境中的有線或無線網(wǎng)絡(luò)、衛(wèi)星鏈接、蜂窩鏈接、短程網(wǎng)絡(luò)和類似機(jī)制來與其他設(shè)備818 進(jìn)行通信。其他設(shè)備818可包括執(zhí)行通信應(yīng)用程序的計(jì)算機(jī)設(shè)備、其他web服務(wù)器和類似設(shè)備。通信連接816是通信介質(zhì)的一個(gè)示例。通信介質(zhì)可在其中包括計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)。作為示例而非限制,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接線連接,以及諸如聲學(xué)、射頻(RF)、紅外線及其他無線介質(zhì)之類的無線介質(zhì)。各示例實(shí)施例還包括各種方法。這些方法可以用任何數(shù)量的方式,包括本文中所描述的結(jié)構(gòu)來實(shí)現(xiàn)。一種此類方式是通過本文中描述的類型的設(shè)備的機(jī)器操作。另一可任選方式是結(jié)合一個(gè)或多個(gè)人類操作者執(zhí)行該方法的各個(gè)操作中的某一些來執(zhí)行該方法的一個(gè)或多個(gè)操作。這些人類操作者無需彼此同在一處,而是其每一個(gè)可以僅與執(zhí)行程序的一部分的機(jī)器同在一處。圖9示出根據(jù)各個(gè)實(shí)施例將3層體系結(jié)構(gòu)擴(kuò)展到用于瘦客戶機(jī)的4層體系結(jié)構(gòu)的過程900的邏輯流程圖。過程900可被實(shí)現(xiàn)為執(zhí)行在客戶機(jī)設(shè)備上的瘦客戶機(jī)應(yīng)用程序的一部分。過程900從操作910開始,其中通過瘦客戶機(jī)的UI接收到用戶動(dòng)作??赏ㄟ^邏輯控制適配器將所請(qǐng)求的動(dòng)作提供給執(zhí)行在瘦客戶機(jī)上的代理邏輯客戶機(jī),其在操作920中向駐留在web服務(wù)器之上的對(duì)應(yīng)的邏輯客戶機(jī)發(fā)出回叫。Web服務(wù)器上的邏輯客戶機(jī)通過經(jīng)由應(yīng)用程序服務(wù)器從數(shù)據(jù)源檢索數(shù)據(jù)而與執(zhí)行請(qǐng)求的動(dòng)作的底層的應(yīng)用程序服務(wù)器進(jìn)行交互,并在回叫完成時(shí)將狀態(tài)改變提交給代理服務(wù)器。在操作930,代理邏輯客戶機(jī)接收狀態(tài)改變,并在操作940中通過邏輯控制適配器更新本機(jī)形式而將屬性改變向瘦客戶機(jī)的本機(jī)UI元件提出。由此,代理邏輯客戶機(jī)反映了 web服務(wù)器上的真實(shí)邏輯客戶機(jī)的改變后的狀態(tài)。在過程900中所包括的操作是出于說明目的。用于瘦客戶機(jī)的4層體系結(jié)構(gòu)可以通過使用在此描述的原理的具有更少或額外的步驟的類似過程,以及按照不同的操作順序來實(shí)現(xiàn)。以上說明書、示例和數(shù)據(jù)提供了對(duì)各實(shí)施方式組成的制造和使用的全面描述。盡管用結(jié)構(gòu)特征和/或方法動(dòng)作專用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于上述具體特征或動(dòng)作。此外,以上描述的特定特征和動(dòng)作是實(shí)施權(quán)利要求和實(shí)施例的示例性形式。
權(quán)利要求
1.一種至少部分在計(jì)算設(shè)備執(zhí)行中的方法,用于執(zhí)行四層體系結(jié)構(gòu)中的瘦客戶機(jī),所述方法包括在瘦客戶機(jī)接收用戶動(dòng)作(910);通過邏輯控制適配器將所述用戶動(dòng)作轉(zhuǎn)發(fā)到執(zhí)行在所述瘦客戶機(jī)上的代理邏輯客戶機(jī);從所述代理邏輯客戶機(jī)向所述瘦客戶機(jī)外部的邏輯客戶機(jī)提交與所述用戶動(dòng)作相關(guān)聯(lián)的回叫(920);當(dāng)回叫完成時(shí),接收與所執(zhí)行的用戶動(dòng)作相關(guān)聯(lián)的狀態(tài)改變(930);以及通過從所述代理邏輯客戶機(jī)提出屬性改變,更新所述瘦客戶機(jī)的狀態(tài)(940)。
2.如權(quán)利要求1所述的方法,其特征在于,還包括 通過本機(jī)用戶接口元件462接收所述用戶動(dòng)作;以及通過邏輯控制適配器464來更新所述本機(jī)用戶接口元件處的本機(jī)形式。
3.如權(quán)利要求1所述的方法,其特征在于,所述代理邏輯客戶機(jī)334包括代理邏輯控件 338和代理邏輯形式336。
4.如權(quán)利要求3所述的方法,其特征在于,所述回叫是通過所述代理邏輯客戶機(jī)334的代理邏輯控件338而提交給所述邏輯客戶機(jī)340的。
5.如權(quán)利要求1所述的方法,其特征在于,所述瘦客戶機(jī)312包括至少一個(gè)顯示目標(biāo) 332,所述顯示目標(biāo)332適應(yīng)于捕捉由所述邏輯客戶機(jī)340生成的邏輯內(nèi)容,并將所述邏輯內(nèi)容呈現(xiàn)為用戶接口(UI)形式。
6.如權(quán)利要求5所述的方法,其特征在于,所述代理邏輯客戶機(jī)334對(duì)于顯示目標(biāo)的開發(fā)者而言是透明的。
7.如權(quán)利要求1所述的方法,其特征在于,還包括通過代理邏輯客戶機(jī)334來管理瘦客戶機(jī)312的用戶接口會(huì)話。
8.一種用于促進(jìn)通過瘦客戶機(jī)的遠(yuǎn)程應(yīng)用程序訪問的計(jì)算設(shè)備800,所述計(jì)算設(shè)備包括存儲(chǔ)器804 ;處理器802,耦合到所述存儲(chǔ)器,所述處理器連同存儲(chǔ)在所述存儲(chǔ)器中的指令一起執(zhí)行瘦客戶機(jī)312應(yīng)用程序,其中所述瘦客戶機(jī)包括 顯示目標(biāo)332 ;以及代理邏輯客戶機(jī)334,所述代理邏輯客戶機(jī)被配置為 從本機(jī)用戶接口元件接收用戶動(dòng)作(910);向所述瘦客戶機(jī)外部的邏輯客戶機(jī)提交與所述用戶動(dòng)作相關(guān)聯(lián)的回叫(920); 當(dāng)回叫完成時(shí),通過所述邏輯客戶機(jī)接收與所執(zhí)行的用戶行為相關(guān)聯(lián)的狀態(tài)改變 (930);以及通過向所述本機(jī)用戶接口元件提出屬性改變,更新由所述瘦客戶機(jī)所管理的狀態(tài)和屬性中的至少一個(gè)(940)。
9.如權(quán)利要求8所述的計(jì)算設(shè)備,其特征在于,所述代理邏輯客戶機(jī)334更新還被配置成更新所述本機(jī)用戶接口元件處的自然形式。
10.如權(quán)利要求8所述的計(jì)算設(shè)備,其特征在于,所述代理邏輯客戶機(jī)334包括與遠(yuǎn)程執(zhí)行的商業(yè)邏輯相關(guān)聯(lián)的web服務(wù)器托管的控件和形式(336,338)的表示。
11.如權(quán)利要求8所述的計(jì)算設(shè)備,其特征在于,所述代理邏輯客戶機(jī)334還管理用于瘦客戶機(jī)312用戶接口的內(nèi)容以及用于顯示目標(biāo)332的用戶接口會(huì)話356,所述顯示目標(biāo)呈現(xiàn)所述內(nèi)容。
12.—種其上存儲(chǔ)有指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),用于促進(jìn)通過四層體系結(jié)構(gòu)中的瘦客戶機(jī)的遠(yuǎn)程應(yīng)用程序訪問,所述指令包括以對(duì)所述瘦客戶機(jī)的開發(fā)者透明的方式,在執(zhí)行在web服務(wù)器上的邏輯客戶機(jī)340處, 從執(zhí)行在所述瘦客戶機(jī)312上的代理邏輯客戶機(jī)接收回叫(910);響應(yīng)于所述回叫,調(diào)用服務(wù)器動(dòng)作來執(zhí)行代理邏輯客戶機(jī)控件的行為;通過所述服務(wù)器動(dòng)作來致使用戶接口的執(zhí)行、遠(yuǎn)程存儲(chǔ)數(shù)據(jù)的檢索、以及遠(yuǎn)程商業(yè)邏輯的執(zhí)行;在所述邏輯客戶機(jī)上接收數(shù)據(jù)改變和狀態(tài)改變中的至少一個(gè)(930);以及向所述代理邏輯客戶機(jī)提供所述狀態(tài)改變,以使所述瘦客戶機(jī)能更新所述瘦客戶機(jī)的狀態(tài),所述瘦客戶機(jī)的狀態(tài)反映所述邏輯客戶機(jī)的狀態(tài)(940)。
13.如權(quán)利要求12所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述邏輯客戶機(jī)340還被配置為處理數(shù)據(jù)綁定,并將邏輯用戶接口表示向至少一個(gè)顯示目標(biāo)展示,以供呈現(xiàn)。
14.如權(quán)利要求12所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,在設(shè)計(jì)時(shí)間創(chuàng)建所述邏輯客戶機(jī)340,所述邏輯客戶機(jī)340對(duì)數(shù)據(jù)結(jié)構(gòu)的變換進(jìn)行建模,以為所述瘦客戶機(jī)所用。
15.如權(quán)利要求14所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,基于多個(gè)遠(yuǎn)程執(zhí)行的應(yīng)用程序中的數(shù)據(jù)結(jié)構(gòu),對(duì)所述邏輯客戶機(jī)340進(jìn)行建模。
全文摘要
提供了一種用于使基于邏輯客戶機(jī)的3層應(yīng)用程序能支持4層體系結(jié)構(gòu)中的瘦客戶機(jī)的申請(qǐng)結(jié)構(gòu)??墒褂民v留在所述瘦客戶機(jī)中的代理邏輯客戶機(jī)來擴(kuò)展駐留在web服務(wù)器中的邏輯客戶機(jī)。代理邏輯客戶機(jī)包括用于邏輯形式和控件的瘦代理,使得它們能夠運(yùn)行在瘦客戶機(jī)上并便于瘦客戶機(jī)和3層體系結(jié)構(gòu)中的應(yīng)用程序的無縫交互。
文檔編號(hào)H04L29/06GK102215252SQ20111009611
公開日2011年10月12日 申請(qǐng)日期2011年4月2日 優(yōu)先權(quán)日2010年4月5日
發(fā)明者M·H·斯溫斯 申請(qǐng)人:微軟公司