自動用戶界面對象變換和代碼生成的制作方法
【專利摘要】描述了用于自動用戶界面對象轉(zhuǎn)換和代碼生成的技術(shù)。裝置可包括被安排成執(zhí)行服務(wù)器應(yīng)用的邏輯設(shè)備。服務(wù)器應(yīng)用可包括用于從接收到的用戶事件性質(zhì)集合生成不依賴于圖形用戶界面(GUI)的對象的解釋運行時引擎或其他元件。不依賴于GUI的對象遭受模板處理,以創(chuàng)建新的依賴于GUI的對象,該依賴于GUI的對象可被返回給客戶機應(yīng)用進(jìn)行渲染。對其他實施例也予以描述并要求保護(hù)。
【專利說明】自動用戶界面對象變換和代碼生成
[0001]背景
[0002]客戶機-服務(wù)器體系結(jié)構(gòu)是在被稱為服務(wù)器和客戶機的兩個基本實體之間的、為應(yīng)用程序劃分計算任務(wù)和工作負(fù)載的分布式應(yīng)用結(jié)構(gòu)。服務(wù)器是資源或服務(wù)的提供方。客戶機是資源或服務(wù)的請求方。服務(wù)器是運行與客戶機共享其資源的一個或多個服務(wù)器程序的物理或邏輯設(shè)備??蛻魴C是一般不共享其任何資源,但從服務(wù)器請求內(nèi)容或服務(wù)功能的物理或邏輯設(shè)備??蛻魴C和服務(wù)器通常在分開的硬件上通過計算機網(wǎng)絡(luò)進(jìn)行通信。然而,在某些情況下,客戶機和服務(wù)器兩者可駐留在同一系統(tǒng)中??蛻魴C因此發(fā)起與等待傳入請求的服務(wù)器的通信會話。
[0003]客戶機-服務(wù)器體系結(jié)構(gòu)的一種形式是多層體系結(jié)構(gòu),通常被稱為η層體系結(jié)構(gòu)。η層體系結(jié)構(gòu)是其中應(yīng)用程序的某些方面被劃分成多個層的客戶機-服務(wù)器體系結(jié)構(gòu)。例如,使用中間軟件在用戶和數(shù)據(jù)庫之間提供數(shù)據(jù)請求的應(yīng)用采用多層體系結(jié)構(gòu)。η層應(yīng)用體系結(jié)構(gòu)提供供開發(fā)商創(chuàng)建靈活且可重復(fù)使用的應(yīng)用的模型。通過將應(yīng)用分割成多個層,開發(fā)商僅需要修改或添加特定層(或?qū)哟?,由此避免了重寫整個應(yīng)用的需要。
[0004]在開發(fā)和修改應(yīng)用程序時,η層體系結(jié)構(gòu)提供許多優(yōu)點。然而,在為存在大量客戶機的基于web的環(huán)境實現(xiàn)η層體系結(jié)構(gòu)時存在困難。每一客戶機可利用不同的web技術(shù),包括不同的web瀏覽器、web服務(wù)和web應(yīng)用。此外,web技術(shù)被設(shè)計成與許多不同類型的底層硬件和軟件體系結(jié)構(gòu)一起工作,包括具有不同輸入/輸出(I/O)組件、形狀因素、功率要求、處理能力、通信能力、和存儲器資源等的各種各樣的設(shè)備。因此,可能難以跨這許多的異構(gòu)設(shè)備和體系結(jié)構(gòu)實現(xiàn)一個或多個層。此外,應(yīng)用程序的web版本可能與應(yīng)用程序的非web版本不兼容,由此創(chuàng)建了對各自的分開的軟件體系結(jié)構(gòu)的需要。本發(fā)明的改進(jìn)正是針對這些和其他缺點而被需要的。
[0005]概述
[0006]提供本概述是為了以簡化的形式介紹將在以下【具體實施方式】中進(jìn)一步描述的選擇的概念。本概述并非旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。
[0007]各個實施例一般涉及適用于執(zhí)行不同類型的應(yīng)用程序(諸如,例如商用業(yè)務(wù)線應(yīng)用程序)的客戶機-服務(wù)器體系結(jié)構(gòu)。某些實施例尤其涉及具有應(yīng)用程序的多個層(或?qū)哟?的η層客戶機-服務(wù)器體系結(jié)構(gòu),包括至少一個呈現(xiàn)層。在一個實施例中,例如,3層客戶機-服務(wù)器體系結(jié)構(gòu)可包括至少一個呈現(xiàn)層,該呈現(xiàn)層使用以下技術(shù)來實現(xiàn):該技術(shù)被設(shè)計成在使解釋運行時引擎應(yīng)用適于與許多不同類型的客戶機一起操作時,分離并增強對用戶事件的圖形用戶界面(GUI)渲染。
[0008]在一實施例中,例如,一種裝置可包括被安排成執(zhí)行服務(wù)器應(yīng)用的邏輯設(shè)備。該服務(wù)器應(yīng)用可包括用于從接收到用戶事件性質(zhì)集合中生成不依賴于圖形用戶界面(GUI)的對象的解釋運行時引擎或其他元件。不依賴于GUI的對象被提供給模板處理器,以創(chuàng)建新的依賴于GUI的對象,該依賴于GUI的對象可被返回給客戶機應(yīng)用進(jìn)行渲染。對其他實施例也予以描述并要求保護(hù)。[0009]通過閱讀下面的詳細(xì)描述并參考相關(guān)聯(lián)的附圖,這些及其他特點和優(yōu)點將變得顯而易見。應(yīng)該理解,前面的概括說明和下面的詳細(xì)描述只是說明性的,不會對所要求保護(hù)的各方面形成限制。
[0010]附圖簡述
[0011]圖1A示出了常規(guī)的桌面應(yīng)用體系結(jié)構(gòu)。
[0012]圖1B示出了常規(guī)的2層應(yīng)用體系結(jié)構(gòu)。
[0013]圖1C示出了常規(guī)的3層應(yīng)用體系結(jié)構(gòu)。
[0014]圖2示出了根據(jù)一個實施例的具有多個客戶機和客戶機適配器的增強式η層客戶機-服務(wù)器體系結(jié)構(gòu)的框圖。
[0015]圖3示出了根據(jù)一個實施例的具有單個客戶機和客戶機適配器的增強式η層客戶機-服務(wù)器體系結(jié)構(gòu)的框圖。
[0016]圖4示出了根據(jù)一個實施例的具有客戶機和客戶機適配器的不依賴于圖形用戶界面(GUI)的對象的增強式η層客戶機-服務(wù)器體系結(jié)構(gòu)的框圖。
[0017]圖5示出了根據(jù)一個實施例的增強式η層客戶機-服務(wù)器體系結(jié)構(gòu)的第一邏輯流程。
[0018]圖6Α示出了根據(jù)一個實施例的不依賴于⑶I的對象的邏輯示圖。
[0019]圖6Β示出了根據(jù)一個實施例的特定的不依賴于GUI的對象的邏輯示圖。
[0020]圖7示出了根據(jù)一個實施例的增強式η層客戶機-服務(wù)器體系結(jié)構(gòu)的第二邏輯流程。
[0021]圖8Α示出了根據(jù)一個實施例的用于處理表示GUI對象布局的模板的增強式η層客戶機-服務(wù)器體系結(jié)構(gòu)的框圖。
[0022]圖SB示出了根據(jù)一個實施例的從代表性CTI對象布局生成的第一用戶界面視圖。
[0023]圖SC示出了根據(jù)一個實施例的從代表性CTI對象布局生成的第二用戶界面視圖。
[0024]圖9示出了根據(jù)一個實施例的模板處理系統(tǒng)的第三邏輯流程。
[0025]圖10示出了根據(jù)一個實施例的適用于增強式η層客戶機-服務(wù)器體系結(jié)構(gòu)的計算體系結(jié)構(gòu)的實施例。
[0026]圖11示出了根據(jù)一個實施例的適用于增強式η層客戶機-服務(wù)器體系結(jié)構(gòu)的通信體系結(jié)構(gòu)的實施例。
[0027]詳細(xì)描述
[0028]各個實施例一般涉及適用于執(zhí)行不同類型的商用業(yè)務(wù)線應(yīng)用程序的客戶機-服務(wù)器體系結(jié)構(gòu)。某些實施例尤其涉及增強式η層客戶機-服務(wù)器體系結(jié)構(gòu),其中η是表示任何正整數(shù)的變量。增強式η層體系結(jié)構(gòu)可包括應(yīng)用程序的多個層(或?qū)哟?,包括至少一個呈現(xiàn)層。在一個實施例中,例如,增強式η層體系結(jié)構(gòu)可被實現(xiàn)為包括至少一個呈現(xiàn)層、一應(yīng)用處理層、和一數(shù)據(jù)管理層的3層體系結(jié)構(gòu)。呈現(xiàn)層一般實現(xiàn)用戶界面邏輯,諸如處理輸入/輸出操作。應(yīng)用處理層一般實現(xiàn)應(yīng)用或業(yè)務(wù)邏輯,諸如根據(jù)一組應(yīng)用規(guī)則來處理數(shù)據(jù)。數(shù)據(jù)管理層一般實現(xiàn)數(shù)據(jù)存儲和訪問,諸如定義數(shù)據(jù)模式、存儲數(shù)據(jù)、和處理數(shù)據(jù)查詢
坐寸ο
[0029]增強式η層客戶機-服務(wù)器體系結(jié)構(gòu)可包括使用以下技術(shù)來實現(xiàn)的至少一個呈現(xiàn)層:該技術(shù)被設(shè)計成便于使用解釋運行時引擎來分離并優(yōu)化應(yīng)用中的GUI渲染和用戶事件。它允許使來自2層的基于客戶機-服務(wù)器的體系結(jié)構(gòu)的解釋運行時引擎應(yīng)用適合于主存的3層環(huán)境,同時減少對該解釋運行時引擎應(yīng)用的改變。
[0030]圖1A、1B和IC以背景的方式示出了應(yīng)用開發(fā)的三個常規(guī)體系結(jié)構(gòu),以強調(diào)增強式η層客戶機-服務(wù)器體系結(jié)構(gòu)的各個實施例的優(yōu)點。圖1A示出了常規(guī)的桌面體系結(jié)構(gòu)。圖1B示出了常規(guī)的2層體系結(jié)構(gòu)。圖1C示出常規(guī)的3層(或η層)體系結(jié)構(gòu)。
[0031]圖1A是桌面體系結(jié)構(gòu)100的示例,其中,應(yīng)用程序112的所有部分(或應(yīng)用層)是在客戶機計算機110 (例如,臺式計算機)上實現(xiàn)的。應(yīng)用程序112可包括實現(xiàn)例如用戶界面(UI)邏輯、業(yè)務(wù)邏輯和數(shù)據(jù)訪問邏輯的各種應(yīng)用層。應(yīng)用程序112可存儲應(yīng)用數(shù)據(jù),并從也被實現(xiàn)在客戶機計算機110上的數(shù)據(jù)庫114中訪問應(yīng)用數(shù)據(jù)。
[0032]圖1B是2層體系結(jié)構(gòu)120的示例,其中數(shù)據(jù)庫114現(xiàn)在在客戶機計算機10的遠(yuǎn)程。在2層體系結(jié)構(gòu)120中,應(yīng)用程序112及其組成應(yīng)用層仍存在于客戶機計算機110上。然而,數(shù)據(jù)庫114已從客戶機計算機110被移動到了數(shù)據(jù)庫服務(wù)器116。運行在客戶機計算機110中的應(yīng)用程序112經(jīng)由數(shù)據(jù)庫應(yīng)用程序接口(API)向與數(shù)據(jù)庫114通信地耦合的數(shù)據(jù)庫服務(wù)器116發(fā)送對數(shù)據(jù)的請求。所請求的數(shù)據(jù)隨后被返回給在客戶機計算機110上執(zhí)行的應(yīng)用程序112。
[0033]圖1C是3層體系結(jié)構(gòu)130的示例。在3層體系結(jié)構(gòu)130中,應(yīng)用程序112可被劃分成在各自的客戶機計算機Iio和服務(wù)器122上執(zhí)行的分布式應(yīng)用程序112、124。應(yīng)用程序112可以實現(xiàn)具有Π邏輯的應(yīng)用層。應(yīng)用程序124可以實現(xiàn)具有業(yè)務(wù)和數(shù)據(jù)庫訪問邏輯的應(yīng)用層。在客戶機計算機110中運行的應(yīng)用程序112向正在執(zhí)行應(yīng)用程序124的服務(wù)器122發(fā)送數(shù)據(jù)。應(yīng)用程序124可隨后執(zhí)行業(yè)務(wù)邏輯,并向與數(shù)據(jù)庫114通信地耦合的數(shù)據(jù)庫服務(wù)器116發(fā)送對數(shù)據(jù)的請求。所請求的數(shù)據(jù)和所執(zhí)行的業(yè)務(wù)邏輯的結(jié)果隨后被返回給應(yīng)用程序112,并被渲染在客戶機計算機110中。應(yīng)注意,數(shù)據(jù)庫服務(wù)器116可以與服務(wù)器122位于一處,或者是服務(wù)器122的一部分。換言之,硬件體系結(jié)構(gòu)可以使得單個服務(wù)器122用作應(yīng)用和數(shù)據(jù)庫服務(wù)器兩者。2層體系結(jié)構(gòu)和3層(或η層)體系結(jié)構(gòu)之間的區(qū)別因素是應(yīng)用層中的一些或許多被移出客戶機計算機110,并被分布在一個或多個其他服務(wù)器116,122 中。
[0034]在開發(fā)和修改應(yīng)用程序時,η層體系結(jié)構(gòu)(諸如,3層體系結(jié)構(gòu)130)相對于2層體系結(jié)構(gòu)120來說,可以提供許多優(yōu)點。例如,單個層可以被修改或添加,而不會導(dǎo)致對整個應(yīng)用程序的完全重寫。然而,在為存在大量客戶機的基于web的環(huán)境實現(xiàn)η層體系結(jié)構(gòu)時存在困難。每一客戶機可利用不同的web技術(shù),包括不同的web瀏覽器、web服務(wù)和web應(yīng)用。此外,web技術(shù)被設(shè)計成與許多不同類型的底層硬件和軟件體系結(jié)構(gòu)一起工作,包括具有不同輸入/輸出(I/O)組件、形狀因素、功率要求、處理能力、通信能力、和存儲器資源等的各種各樣的設(shè)備。由此,可能難以跨這許多的異構(gòu)設(shè)備和體系結(jié)構(gòu)來唯一地實現(xiàn)給定應(yīng)用層(諸如,呈現(xiàn)層),而無需廣泛定制呈現(xiàn)層以適合于每一客戶機的唯一配置。此外,應(yīng)用程序的web版本可能與應(yīng)用程序的非web版本不兼容,由此創(chuàng)建了對各自的分開的軟件體系結(jié)構(gòu)的需要。
[0035]在各個實施例中,增強式η層體系結(jié)構(gòu)提供了一框架,該框架使得能夠?qū)?層客戶機-服務(wù)器應(yīng)用體系結(jié)構(gòu)遷移到3層應(yīng)用體系結(jié)構(gòu),該3層應(yīng)用體系結(jié)構(gòu)將瘦客戶機用于應(yīng)用程序的呈現(xiàn)層。在一個實施例中,例如,每一客戶機設(shè)備可以實現(xiàn)web客戶機形式的瘦客戶機。Web客戶機通常指用web技術(shù)實現(xiàn)的瘦客戶機應(yīng)用,諸如例如在客戶機計算機中操作的web瀏覽器。它也可以指將瀏覽器增強為支持來自網(wǎng)站或服務(wù)器的定制服務(wù)的插件和幫助應(yīng)用。在此對web客戶機的任何引用也可以指web瀏覽器的功能。
[0036]圖2示出了客戶機-服務(wù)器系統(tǒng)200。在一個實施例中,客戶機-服務(wù)器系統(tǒng)200可以包括增強式η層客戶機-服務(wù)器系統(tǒng)。增強式η層客戶機-服務(wù)器系統(tǒng)可以將應(yīng)用程序劃分成多個層,包括至少一個呈現(xiàn)層。呈現(xiàn)層可以使用以下技術(shù)來實現(xiàn):該技術(shù)被設(shè)計成便于使用解釋運行時引擎來分離并優(yōu)化應(yīng)用程序中的CTI渲染和用戶事件。它允許使來自2層的基于客戶機-服務(wù)器的體系結(jié)構(gòu)的解釋運行時引擎應(yīng)用適合于主存的3層環(huán)境,同時減少該解釋運行時引擎應(yīng)用所需的改變。
[0037]如之前參考圖1A所描述的,許多應(yīng)用遵循2層應(yīng)用體系結(jié)構(gòu),在2層應(yīng)用體系結(jié)構(gòu)中,應(yīng)用被組織成兩個相互關(guān)聯(lián)的組件一數(shù)據(jù)庫服務(wù)器和客戶機應(yīng)用。數(shù)據(jù)庫服務(wù)器可以主控系統(tǒng)和伴隨數(shù)據(jù)以及擴(kuò)展業(yè)務(wù)邏輯,該擴(kuò)展業(yè)務(wù)邏輯允許服務(wù)器處理較繁重的操作中的一些,這些操作在客戶機處執(zhí)行起來將非常耗時。同時,客戶機應(yīng)用可以執(zhí)行以下功能:分發(fā)U1、提供數(shù)據(jù)項驗證、及渲染報告或其他功能。
[0038]在圖2中示出的說明性實施例中,客戶機-服務(wù)器系統(tǒng)200可包括服務(wù)器202和多個客戶機204、206。當(dāng)在不同的硬件平臺上被實現(xiàn)時,服務(wù)器202和客戶機204、206可以經(jīng)由網(wǎng)絡(luò)250彼此通信。當(dāng)在同一硬件平臺上被實現(xiàn)時,服務(wù)器202和客戶機204、206可以經(jīng)由合適的總線技術(shù)和體系結(jié)構(gòu)彼此通信。雖然出于簡潔的目的,圖2中僅示出了單個服務(wù)器202和兩個客戶機204、206,但應(yīng)理解,客戶機-服務(wù)器系統(tǒng)200可以實現(xiàn)如給定實現(xiàn)所需的任何數(shù)量的服務(wù)器和客戶機。各實施例不限于該上下文。
[0039]在一個實施例中,服務(wù)器202可以包括實現(xiàn)服務(wù)器應(yīng)用210的電子設(shè)備。服務(wù)器應(yīng)用210可以包括任何類型的服務(wù)器應(yīng)用,諸如商用業(yè)務(wù)線應(yīng)用。商用業(yè)務(wù)線應(yīng)用的示例可包括但不限于會計應(yīng)用、企業(yè)資源規(guī)劃(ERP)應(yīng)用、顧客關(guān)系管理(CRM)應(yīng)用、和供應(yīng)鏈管理(SCM)應(yīng)用等。這些商用業(yè)務(wù)線應(yīng)用有時被稱為“中間層”應(yīng)用,因為它們一般由商用企業(yè)網(wǎng)絡(luò)中的服務(wù)器或服務(wù)器陣列來執(zhí)行,而不是由諸如臺式計算機的客戶機設(shè)備來執(zhí)行。特定示例可包括由華盛頓州雷蒙德市的微軟公司開發(fā)的Microsoft? Dynamics GP。Microsoft Dynamics GP是商用會計軟件應(yīng)用。商用業(yè)務(wù)線應(yīng)用的另一特定示例可包括由華盛頓州雷蒙德市的微軟公司開發(fā)的Microsoft Dynamics? AX。Microsoft DynamicsAX是商用ERP軟件應(yīng)用。然而,各實施例不限于這些示例。
[0040]當(dāng)服務(wù)器202是服務(wù)器應(yīng)用210的執(zhí)行代碼時,服務(wù)器202形成解釋運行時引擎212。解釋運行時引擎212實現(xiàn)服務(wù)器應(yīng)用210的多個應(yīng)用層,在客戶機一服務(wù)器系統(tǒng)200中被稱為應(yīng)用邏輯214、數(shù)據(jù)庫邏輯216和服務(wù)器呈現(xiàn)邏輯218。服務(wù)器應(yīng)用210可以經(jīng)由通過網(wǎng)絡(luò)250以信號或消息的形式從客戶機204、206處接收到的控制指示來控制和操作。
[0041]在一個實施例中,客戶機204、206各自可包括實現(xiàn)相應(yīng)的web客戶機230、240的電子設(shè)備。web客戶機230、240各自可包括例如在相應(yīng)的客戶機204、206上執(zhí)行的web瀏覽器的實例。web瀏覽器還可包括被設(shè)計為增強web瀏覽器以支持來自服務(wù)器202的定制服務(wù)的插件、web應(yīng)用和幫助應(yīng)用。此處對web客戶機230、240的任何引用也可以指web瀏覽器的功能。[0042]客戶機204、206可以包括相應(yīng)的客戶機適配器232、242。客戶機適配器232、242中的每一個可被配置為與給定客戶機204、206 —起使用。通過這種方式,服務(wù)器應(yīng)用210和解釋運行時引擎212在被不同的客戶機使用不同的web技術(shù)訪問時不需要被修改。
[0043]客戶機適配器232、242可包括相應(yīng)的客戶機呈現(xiàn)邏輯238、248??蛻魴C呈現(xiàn)邏輯238,248可被設(shè)計成將用戶界面元素或視圖呈現(xiàn)在客戶機204、206的輸出設(shè)備(諸如例如數(shù)字顯示器)上。客戶機呈現(xiàn)邏輯238、248可被設(shè)計成根據(jù)為服務(wù)器應(yīng)用210實現(xiàn)的分布式η層體系結(jié)構(gòu)與服務(wù)器202上執(zhí)行的服務(wù)器應(yīng)用112的應(yīng)用邏輯214、數(shù)據(jù)庫邏輯216和服務(wù)器呈現(xiàn)邏輯218互操作。
[0044]客戶機適配器232、242和相應(yīng)的客戶機呈現(xiàn)邏輯238、248可以與服務(wù)器呈現(xiàn)邏輯218互操作以允許經(jīng)由不同的客戶機204、206訪問服務(wù)器應(yīng)用210。每一客戶機204、206可以將服務(wù)器呈現(xiàn)邏輯218的不同版本實現(xiàn)成相應(yīng)的客戶機呈現(xiàn)邏輯238、248,以適合于客戶機204、206的特定配置。這可以在不必重寫服務(wù)器呈現(xiàn)邏輯218,并且更重要地不必重寫業(yè)務(wù)邏輯214和數(shù)據(jù)庫邏輯216的情況下被實現(xiàn)。此外,服務(wù)器呈現(xiàn)邏輯218和客戶機呈現(xiàn)邏輯238、248可以以減少網(wǎng)絡(luò)250的通信流量和負(fù)載的方式進(jìn)行交互,由此增加了速度和性能,同時減少了與通信延遲相關(guān)聯(lián)的等待時間。
[0045]在各個實施例中,服務(wù)器呈現(xiàn)邏輯218和客戶機呈現(xiàn)邏輯238、248可以以利用不依賴于圖形用戶界面(⑶I)的對象260的高效方式來進(jìn)行交互。不依賴于⑶I的對象260允許諸如屏幕(例如,Microsoft Windows? Form)之類的⑶I元素在桌面環(huán)境和web環(huán)境之間自由移動。不依賴于⑶I的對象260允許服務(wù)器應(yīng)用210作為后臺中正等候可經(jīng)由傳統(tǒng)的OS表單或web客戶機表單來接收的用戶事件的服務(wù)來運行,并仍能執(zhí)行腳本事件,而不管通過其來提交該對象的表單的類型。
[0046]除了可以影響應(yīng)用邏輯事件的用戶事件性質(zhì)之外,不依賴于GUI的對象260還可包含可以影響客戶機適配器232、242的依賴于⑶I的渲染的用戶事件和任何用戶事件性質(zhì)或其他類型的信息。不依賴于⑶I的對象260由解釋運行時引擎212生成并被發(fā)送到客戶機適配器232、242,該不依賴于⑶I的對象260基本上經(jīng)由相應(yīng)的客戶機呈現(xiàn)邏輯238、248被渲染在客戶機用戶界面中。
[0047]圖3示出了 η層客戶機-服務(wù)器系統(tǒng)300的特定實現(xiàn)??蛻魴C一服務(wù)器系統(tǒng)300可包括服務(wù)器302和客戶機304。服務(wù)器302可以表示例如參考圖2描述的服務(wù)器202??蛻魴C304可以表示例如參考圖2描述的客戶機204、206之一或兩者。
[0048]在客戶機-服務(wù)器系統(tǒng)300中示出的說明性實施例中,服務(wù)器302可以實現(xiàn)服務(wù)
器應(yīng)用310。在一個實現(xiàn)中,例如,服務(wù)器應(yīng)用310可以使用Microsoft Dexterity?編程
語言或其他合適類型的編程語言來被代碼化。在被實現(xiàn)為Microsoft Dexterity應(yīng)用時,服務(wù)器應(yīng)用310—般可被劃分成兩個不同的元素。第一元素是解釋運行時引擎312,該引擎提出應(yīng)用環(huán)境的諸如與操作系統(tǒng)(OS)進(jìn)行通信和經(jīng)由文件管理器316來建立和管理與數(shù)據(jù)庫320的連接之類的技術(shù)方面。第二元素是應(yīng)用詞典313,該應(yīng)用詞典主控應(yīng)用邏輯315,諸如,應(yīng)用規(guī)則、業(yè)務(wù)規(guī)則、表單、報告、資源、元數(shù)據(jù)以及使能對用戶命令和輸入的響應(yīng)的應(yīng)用代碼。該體系結(jié)構(gòu)將應(yīng)用邏輯315與UI的樣式改變和平臺進(jìn)步(諸如,例如平臺OS的升級)隔離。
[0049]sanScript代碼用于控制應(yīng)用如何操作。SanScript代碼一般被寫在小片段或腳本中,這些小片段或腳本被附加到應(yīng)用詞典313中的對象,諸如字段、菜單、屏幕和表單。腳本在用戶與該應(yīng)用中的那個特定對象交互時被運行。例如,被應(yīng)用于推送按鈕的腳本將在用戶點擊該按鈕時運行。
[0050]如圖所示,客戶機304可以包括web客戶機330。web客戶機330可以表示例如web客戶機230、240之一或兩者。web客戶機330可以遞送面向用戶界面和用戶交互的組件和服務(wù)集合,包括供與服務(wù)器應(yīng)用310 —起使用的用戶輸入和輕量用戶界面控制。然而,為了實現(xiàn)到3層體系結(jié)構(gòu)的平滑遷移,需要克服由web客戶機體系結(jié)構(gòu)的引入造成的多個技術(shù)挑戰(zhàn),以允許聞效的web客戶機界面。
[0051]在此描述的各實施例的目標(biāo)是減少所需的對現(xiàn)有代碼和GUI元數(shù)據(jù)的修改。為了解決前述挑戰(zhàn)中的一些,各個實施例涉及用于將用戶界面管理器318和OS渲染引擎322從解釋運行時引擎312中解耦出來的技術(shù)。用戶界面管理器318是控制給定GUI系統(tǒng)中的各個用戶界面元素(諸如,GUI屏幕)的放置和外觀的系統(tǒng)軟件。OS渲染引擎322是用于顯示內(nèi)容的系統(tǒng)軟件。解釋運行時引擎312是服務(wù)器應(yīng)用310的執(zhí)行版本。
[0052]對表單(或屏幕)的使用是任何Microsoft Dexterity應(yīng)用的核心成份。表單是用戶將與服務(wù)器應(yīng)用310進(jìn)行交互的機制。當(dāng)服務(wù)器應(yīng)用310被實現(xiàn)成例如MicrosoftDexterity應(yīng)用時,Microsoft Dexterity屏幕一般包括與對該屏幕的控制相關(guān)聯(lián)的sanScript代碼。sanScript代碼響應(yīng)于給出屏幕的預(yù)期功能和在腳本解釋器314的指導(dǎo)下的控制(例如,保存事務(wù)、粘貼批處理)的用戶事件而執(zhí)行。
[0053]在服務(wù)器應(yīng)用310的非web版本中,UI由用戶界面管理器318管理,該用戶界面管理器318進(jìn)而與OS渲染引擎322通信以使實際的Microsoft Dexterity屏幕與之前由開發(fā)商布局的控制元素一起顯示在顯示屏上。
[0054]然而,為了促進(jìn)向客戶機-服務(wù)器系統(tǒng)300的web客戶機3層體系結(jié)構(gòu)的轉(zhuǎn)變,可以將用戶界面管理器318和OS渲染引擎322從解釋運行時引擎312的功能中解耦出來。這允許web客戶機332將用戶界面管理器336和渲染引擎338的客戶機版本實現(xiàn)在客戶機304上。這還允許正在服務(wù)器302上執(zhí)行的解釋運行時引擎312生產(chǎn)供web客戶機332使用的不依賴于⑶I的對象360。伴隨不依賴于⑶I的對象360,經(jīng)典的客戶機可以繼續(xù)提供典型的⑶I屏幕(例如,Microsoft Win32?;屏幕),同時還允許客戶機304的web客戶
機330提供同一屏幕的基于web的表示,而無須改變服務(wù)器應(yīng)用310的任何底層應(yīng)用邏輯315。
[0055]將用戶界面管理器318和OS渲染引擎322從解釋運行時引擎312中解耦出來允許屏幕(表單)在非web (例如,桌面或Win32)環(huán)境和web環(huán)境之間自由移動。隨著用戶界面管理器318和OS渲染引擎322被解耦,服務(wù)器應(yīng)用310可以作為后臺中等候可經(jīng)由傳統(tǒng)的Win32表單或web客戶機表單來接收的用戶事件的服務(wù)來運行,并仍能執(zhí)行腳本事件,而不管通過其來提交該對象的表單的類型。
[0056]為了促進(jìn)該解耦,服務(wù)器應(yīng)用310的依賴于⑶I的處理層和不依賴于⑶I的處理層首先被分開。代替這兩個層之間的直接通信,渲染和事件元數(shù)據(jù)使用不依賴于GUI的對象360來展示。除了可以影響應(yīng)用邏輯事件的用戶事件性質(zhì)之外,不依賴于GUI的對象360還可以包含可以影響客戶機適配器332的依賴于GUI的渲染的任何用戶事件性質(zhì)。不依賴于⑶I的對象360隨后被發(fā)送至(依賴于⑶I的)客戶機適配器332,該客戶機適配器332被渲染在客戶機304的顯示器上的客戶機用戶界面屏幕中。某些客戶機適配器332的實例可包括但不必限于 Microsoft Silverlight?、HTML、Win32GD1、.Net 表單等。
[0057]圖4示出了 n層客戶機-服務(wù)器系統(tǒng)400的特定實現(xiàn)??蛻魴C-服務(wù)器系統(tǒng)400可包括服務(wù)器402和客戶機404。服務(wù)器402可以表示例如參考圖2、3描述的服務(wù)器202、302??蛻魴C404可以表示例如參考圖2、3描述的客戶機204、206、304之一或全部。
[0058]在服務(wù)器402上,可存在包括解釋運行時引擎412的服務(wù)器應(yīng)用410,該解釋運行時引擎412可負(fù)責(zé)執(zhí)行一個或多個應(yīng)用層,或與運行一個或多個應(yīng)用層的其他組件耦合在一起。解釋運行時引擎412還可包括腳本解釋器414、文件管理器416和用戶界面管理器418。腳本解釋器414可以與文件管理器416和服務(wù)器用戶界面管理器418通信。文件管理器416還可以與數(shù)據(jù)庫420通信。
[0059]在客戶機404上存在執(zhí)行客戶機適配器432的web客戶機430。客戶機適配器432可以包括用戶界面管理器436和渲染引擎438,該渲染引擎438用于根據(jù)圖2中示出的客戶機呈現(xiàn)邏輯238、248將內(nèi)容顯示在客戶機用戶界面(諸如客戶機用戶界面)中。
[0060]圖4可表示3層應(yīng)用體系結(jié)構(gòu),其中某些應(yīng)用層可以分布在服務(wù)器402和客戶機404之間。例如,如圖2所示,客戶機呈現(xiàn)邏輯238和/或248可以駐留在客戶機404上,而應(yīng)用邏輯214和數(shù)據(jù)庫邏輯216可以分布在服務(wù)器402上。圖4中示出的體系結(jié)構(gòu)已將用戶界面管理器436和渲染引擎438的功能從服務(wù)器402上的解釋運行時引擎412中解耦出來,并將該功能與客戶機404上的客戶機適配器432放置在一起。
[0061]在一個實施例中,解釋運行時引擎412可包括腳本解釋器414。腳本解釋器414 一般可被安排成響應(yīng)于諸如但不限于保存事務(wù)或粘貼批處理的用戶事件而執(zhí)行腳本代碼。腳本代碼的實例可包括預(yù)先腳本、改變腳本、和粘貼腳本或其他類型的腳本。
[0062]在一個實施例中,解釋運行時引擎412可包括文件管理器416。文件管理器416 —般被安排成對數(shù)據(jù)庫420中存儲的文件執(zhí)行文件管理操作。文件管理操作的示例可包括創(chuàng)建文件、打開文件、復(fù)制文件、移動文件、刪除文件等。
[0063]在一個實施例中,解釋運行時引擎412可包括用戶界面管理器436。用戶界面管理器436 —般被安排成控制各個用戶界面元素(諸如,屏幕元素)在實現(xiàn)給定GUI系統(tǒng)的用戶界面內(nèi)的放置和外觀。
[0064]在操作中,用戶可以經(jīng)由web客戶機430與客戶機用戶界面交互。web客戶機430可以包括具有用于渲染基于web的內(nèi)容的用戶界面代碼的web瀏覽器。web客戶機430可以使用諸如HTML、XHTML和XML等各種web技術(shù)來實現(xiàn)。web客戶機430的示例可包括但
不限于由華盛頓州雷蒙德市的微軟公司開發(fā)的Internet Explorer?或其他類型的web瀏
覽器軟件。
[0065]根據(jù)一實施例,在操作中,用戶可以經(jīng)由web客戶機430與客戶機用戶界面交互,并可輸入用戶事件,這些用戶事件可被客戶機適配器432接收并處理。用戶事件的示例可包括但不限于,將指針移動到某字段、懸停在某字段上、選擇某字段、鼠標(biāo)點擊某按鈕、填充文本字段及類似的操作。用戶事件可以使用用戶事件性質(zhì)集合來定義。在一個實施例中,僅需將用戶事件性質(zhì)的改變從web客戶機430發(fā)送到服務(wù)器應(yīng)用410,而非將用戶事件性質(zhì)的完整集合從web客戶機430發(fā)送到服務(wù)器應(yīng)用410。該差別技術(shù)可以節(jié)約通信帶寬并減少等待時間。
[0066]用戶事件性質(zhì)可以是向顯示在用戶界面布局中的用戶界面元素(諸如字段、屏幕或圖形對象)分配的任何屬性。用戶事件性質(zhì)描述了相應(yīng)用戶界面元素的呈現(xiàn)樣式或呈現(xiàn)格式的屬性。用戶事件性質(zhì)可包括用戶界面元素標(biāo)識符(ID)、性質(zhì)(例如,邊界、字體、字體大小、字體顏色、背景、背景色、樣式、右對齊、居中對齊、左對齊、單倍行距、和雙倍行距等)和性質(zhì)值(例如,假、真、0、1等)、或其他類型的信息。例如,GUI屏幕可具有標(biāo)識符“WindowOOl”,以及被設(shè)為假的可重設(shè)大小性質(zhì),這意味著用戶無法在運行時為⑶I屏幕重設(shè)大小。這些僅是一些示例,任何用戶界面元素和用戶界面性質(zhì)可以按照給定實現(xiàn)的需要被實現(xiàn)。各實施例不限于該上下文。
[0067]web客戶機430可以將消息450中的已改變的用戶事件性質(zhì)451的集合發(fā)送給服務(wù)器應(yīng)用410。在服務(wù)器402上操作的用戶界面管理器418將消息450中的已改變的用戶事件性質(zhì)451轉(zhuǎn)發(fā)給腳本解釋器414進(jìn)行處理。服務(wù)器應(yīng)用410可確保應(yīng)用輸入和應(yīng)用狀態(tài)在執(zhí)行服務(wù)器應(yīng)用410的任何應(yīng)用邏輯之前是合適的。腳本解釋器414可隨后與具有對數(shù)據(jù)庫420的訪問的文件管理器416通信,如果對數(shù)據(jù)庫420的訪問是執(zhí)行由從客戶機404接收到的消息450中的已改變用戶事件性質(zhì)451得到的任何應(yīng)用規(guī)則所必須的話。在執(zhí)行了合適的應(yīng)用邏輯后,解釋運行時引擎412可以產(chǎn)生不依賴于⑶I的對象452。不依賴于GUI的對象452可以包括經(jīng)更新的用戶事件性質(zhì)454或其他信息。由服務(wù)器402實現(xiàn)的用戶界面管理器418可以將不依賴于⑶I的對象452連同任何經(jīng)更新的用戶事件性質(zhì)454 —起發(fā)送回客戶機404。隨后,客戶機適配器432可通過客戶機界面管理器436和渲染引擎438使用不依賴于⑶I的對象452以及由服務(wù)器應(yīng)用410生成并從服務(wù)器應(yīng)用410接收的經(jīng)更新用戶事件性質(zhì)454來更新之前渲染的圖像。
[0068]上述實施例的操作可參考一個或多個邏輯流程來進(jìn)一步描述??梢岳斫猓橇硗庵该?,否則代表性的邏輯流程不一定要按所呈現(xiàn)的次序或者按任何特定次序來執(zhí)行。此夕卜,關(guān)于邏輯流程描述的各種活動可按串行或并行的方式執(zhí)行。視給定一組設(shè)計和性能約束所需,邏輯流程可使用所述實施例的一個或多個硬件元件和/或軟件元件或替換元件來實現(xiàn)。例如,邏輯流程可被實現(xiàn)為供邏輯設(shè)備(例如,通用或?qū)S糜嬎銠C)執(zhí)行的邏輯(例如,計算機程序指令)。
[0069]圖5示出了邏輯流程500的實施例。邏輯流程500可示出根據(jù)一個或多個實施例來執(zhí)行的操作。例如,邏輯流程500可示出由web客戶機430和/或服務(wù)器應(yīng)用410來執(zhí)行的操作。
[0070]在邏輯流程500中,在框502,用戶與在客戶機側(cè)用戶界面中執(zhí)行的web客戶機交互。例如,web客戶機430可以接收從輸入設(shè)備接收的一個或多個控制指示形式的用戶輸入,該用戶輸入影響渲染引擎438所呈現(xiàn)的用戶界面中的一個或多個用戶界面元素。用戶輸入可以與用戶界面元素交互,從而引起用戶事件。例如,用戶可以選擇GUI屏幕中呈現(xiàn)的表單上的字段,并修改該字段的值。
[0071]在邏輯流程500中,在框504,在其中執(zhí)行的客戶機適配器可以以與在服務(wù)器上執(zhí)行的服務(wù)器應(yīng)用兼容的方式來解釋表示用戶事件的控制指示。例如,由web客戶機430執(zhí)行的客戶機適配器432可以以與服務(wù)器應(yīng)用410類似的方式來解釋用戶事件。用戶事件可以包括與在web客戶機430上運行的用戶界面的一個或多個用戶交互,諸如但不限于,點擊按鈕、和填充文本字段等。
[0072]在邏輯流程500中,框504處的解釋操作檢查新輸入的用戶事件性質(zhì),以在菱形506處確定用戶事件性質(zhì)是否已改變成服務(wù)器應(yīng)用應(yīng)被通知到所需的程度。例如,客戶機適配器432可以檢查任何用戶輸入及受影響的用戶界面元素的性質(zhì)的相應(yīng)改變,以確定用戶事件性質(zhì)是否已改變了超過某一閾值量。例如,懸停在某字段上以將該字段帶入焦點可能不足以觸發(fā)用戶事件性質(zhì)中的任何改變,而選擇字段將足以通知服務(wù)器應(yīng)用410。
[0073]在邏輯流程500中,在框508,在要求通知的那些情況下,客戶機適配器可以將任何待處理的已改變用戶事件性質(zhì)發(fā)送給服務(wù)器應(yīng)用。例如,客戶機適配器432可以經(jīng)由網(wǎng)絡(luò)250將消息450中的已改變用戶事件性質(zhì)451發(fā)送至服務(wù)器應(yīng)用410。在某些實施例中,客戶機適配器432可以將消息450中的多個用戶事件的已改變用戶事件性質(zhì)451的多個集合發(fā)送至在服務(wù)器402上執(zhí)行的服務(wù)器應(yīng)用410。該“批處理”發(fā)送可以以許多方式使用,包括在用戶事件定時時幫助服務(wù)器應(yīng)用410。例如,腳本解釋器414可以安排執(zhí)行各種腳本(例如,預(yù)先腳本、改變腳本、粘貼腳本等)的時間以確保服務(wù)器應(yīng)用410的準(zhǔn)確更新序列。批處理發(fā)送還可以通過跨網(wǎng)絡(luò)250發(fā)送較少的消息450來減少通信開銷。其他優(yōu)點也存在,且各實施例不限于該上下文。
[0074]在邏輯流程500中,在業(yè)務(wù)邏輯事件在框512處被執(zhí)行之前,在服務(wù)器上執(zhí)行的運行時引擎可在框510處確保服務(wù)器應(yīng)用的合適的輸入/狀態(tài)。例如,在服務(wù)器402上執(zhí)行的解釋運行時引擎412可以確保服務(wù)器應(yīng)用410在執(zhí)行任何應(yīng)用或業(yè)務(wù)邏輯之前的合適的應(yīng)用輸入和應(yīng)用狀態(tài)。
[0075]在邏輯流程500中,在框514,將從業(yè)務(wù)邏輯的執(zhí)行以及不依賴于⑶I的對象得出的經(jīng)更新用戶事件性質(zhì)傳送回客戶機適配器。例如,可以將從應(yīng)用或業(yè)務(wù)邏輯的執(zhí)行以及不依賴于⑶I的對象452得出的經(jīng)更新用戶事件性質(zhì)454從服務(wù)器應(yīng)用410發(fā)送至web客戶機430,以供傳送回客戶機適配器432。
[0076]在邏輯流程500中,客戶機適配器可隨后在框516處使用經(jīng)更新用戶事件性質(zhì)以及不依賴于GUI的對象來更新客戶機用戶界面中的之前渲染的圖像。例如,客戶機適配器432可以接收不依賴于⑶I的對象452,渲染引擎438可以使用經(jīng)更新用戶事件性質(zhì)454和不依賴于GUI的對象452來更新客戶機用戶界面中的之前渲染的圖像。
[0077]圖6A示出了可如何使用來自服務(wù)器應(yīng)用410的數(shù)據(jù)來為客戶機適配器432創(chuàng)建不依賴于⑶I的對象452的實施例。如之前所描述的,客戶機適配器432可接收具有經(jīng)更新用戶事件性質(zhì)454的不依賴于GUI的對象452。經(jīng)更新用戶事件性質(zhì)454可包括不依賴于⑶I的對象元數(shù)據(jù)602或其他信息。在一個實施例中,不依賴于⑶I的對象元數(shù)據(jù)602可包括固定的或靜態(tài)的元數(shù)據(jù)。經(jīng)更新用戶事件性質(zhì)454還可包括性質(zhì)/值集合604。固定/靜態(tài)的不依賴于GUI的對象元數(shù)據(jù)602可以與不依賴于GUI的性質(zhì)/值集合604組合以產(chǎn)生不依賴于⑶I的對象606,該不依賴于⑶I的對象606可以被客戶機適配器432渲染在web客戶機430中。
[0078]圖6B示出了可如何使用圖6A中展示的構(gòu)造來創(chuàng)建特定的不依賴于GUI的對象452的實施例。經(jīng)更新用戶事件性質(zhì)454可包括對象元數(shù)據(jù)612和性質(zhì)/值集合614或其他信息。
[0079]經(jīng)更新用戶事件性質(zhì)454可包括具有一個或多個用戶界面元素的對象元數(shù)據(jù)612。在這個示例中,對象元數(shù)據(jù)612包括字段形式的三個用戶界面元素,即已標(biāo)記字段A、字段B和字段C。字段A、B和C中的每一個字段一般被示為具有邊框的文本框,所示邊框圍繞分別包括短語‘字段A’、‘字段B’和‘字段C’的默認(rèn)字體文本。
[0080]經(jīng)更新用戶事件性質(zhì)454還可包括性質(zhì)/值集合614。在一個實施例中,性質(zhì)/值集合614可以以諸如具有一個或多個元組(或行)的表格的數(shù)據(jù)結(jié)構(gòu)來實現(xiàn),其中每一元組包括含用戶界面元素的標(biāo)識符、該用戶界面元素的性質(zhì)和該性質(zhì)的值的屬性(或列)。標(biāo)識符、性質(zhì)和值的表格可以對應(yīng)于對象元數(shù)據(jù)612的字段。
[0081]在被組合在一起時,結(jié)果可以是不依賴于⑶I的對象616。如在不依賴于⑶I的對象616中示出的,字段A未從通用元數(shù)據(jù)版本改變,因為在性質(zhì)/值集合614中其性質(zhì)或值中的任何一個都沒有被改變。字段B被示為沒有其邊框,因為在屬性/值集合614中屬性‘邊框’被設(shè)為值‘假’。字段C中的文本被示為黑體字,因為在屬性/值集合614中屬性‘黑體’被設(shè)為值‘真’。對象616現(xiàn)在可被客戶機適配器432的渲染引擎438渲染在客戶機404上的web客戶機430中。
[0082]圖7示出了邏輯流程700的實施例。邏輯流程700可示出根據(jù)一個或多個實施例來執(zhí)行的操作。例如,邏輯流程700可以示出由web客戶機430和/或服務(wù)器應(yīng)用410出于恢復(fù)已被破壞的客戶機適配器432的目的而執(zhí)行的操作。
[0083]在此描述的各實施例的另一好處是給定客戶機404中的經(jīng)渲染圖像可在客戶機適配器432被破壞的情況下被恢復(fù)。如果客戶機適配器432被破壞,則包括各種依賴于GUI的對象452的經(jīng)渲染圖像也被破壞。然而,服務(wù)器應(yīng)用410可以繼續(xù)以不依賴于⑶I的對象452的形式保持狀態(tài)。如圖7所示,用戶可以與客戶機側(cè)用戶界面中執(zhí)行的web客戶機430交互,以在框702處創(chuàng)建客戶機適配器432的新實例,隨后,客戶機適配器432的新實例可在框704處與服務(wù)器應(yīng)用410重新連接。在重新連接后,服務(wù)器應(yīng)用410仍可維持所有不依賴于⑶I的對象452的最后已知狀態(tài)。在框706,所有不依賴于⑶I的對象452的最后已知狀態(tài)被傳送回客戶機404并被客戶機404接收。隨后,在框708,可以使所有不依賴于⑶I的對象452的最后已知狀態(tài)與客戶機404的web客戶機430同步。結(jié)果是可以使用服務(wù)器應(yīng)用410所存儲的信息來有效地恢復(fù)客戶機適配器432的當(dāng)前狀態(tài)。
[0084]本公開至此已描述了可如何將渲染引擎438從解釋運行時引擎412中解耦出來,以便創(chuàng)建不依賴于GUI的對象452,該不依賴于GUI的對象452可被渲染成用戶界面視圖,諸如Microsoft Windows? Form或Microsoft Silverlight? UI 界面等。以下描述聚焦
于可如何將不依賴于⑶I的對象452變換成用戶界面視圖(諸如,例如Microsoft WindowsForm 或 a Microsoft Silverlight UI)的經(jīng)值染圖像。
[0085]根據(jù)一個實施例,系統(tǒng)400可以將由解釋運行時引擎412生成的不依賴于⑶I的對象元數(shù)據(jù)602變換成用戶界面模版,同時將原始元數(shù)據(jù)代碼作為主代碼庫來保留。不依賴于GUI的對象452包括渲染和事件元數(shù)據(jù)兩者。如之前所描述的,不依賴于GUI的對象452可以從解釋運行時引擎412或從可提供關(guān)于不依賴于GUI的對象452的細(xì)節(jié)的對象模型直接生成。
[0086]回想用戶界面管理器418 (解釋運行時引擎412的一部分)仍被分配了處理Π事件的任務(wù),而渲染引擎438被分配了將客戶機404上的用戶界面呈現(xiàn)給最終用戶的任務(wù)。現(xiàn)在,解釋運行時引擎412已被從主要執(zhí)行這些任務(wù)中釋放出來,得到的不依賴于⑶I的對象452被客戶機適配器432處理來產(chǎn)生這些界面中的任一個。這可例如通過實現(xiàn)模板處理器來獲得。
[0087]在各種實施例中,模板處理器采用GUI屏幕的一般表示,并且可能能夠應(yīng)用其內(nèi)容(例如,字段、按鈕和事件)的可擴(kuò)展標(biāo)記語言(XML)版本,該版本可被稱為⑶I屏幕模板。此外,模板處理器可能還能夠應(yīng)用可能仍被解釋運行時引擎412顯示在典型客戶機中的、被稱為基本模板的版本,該版本至少在不存在屏幕的GUI模板的情況下進(jìn)行基本轉(zhuǎn)換。GUI屏幕和基本模板包括表示GUI屏幕布局的元數(shù)據(jù)和內(nèi)容。GUI屏幕模板與基本模板有關(guān),但是其定制版本。
[0088]模板可被設(shè)計成改變現(xiàn)有的不依賴于GUI的對象的布局。對于在此之前呈現(xiàn)的實例,可存在兩種類型的模板,即基本模板和GUI屏幕模板。應(yīng)該理解,各種實現(xiàn)可根據(jù)需要使用不同的模板。
[0089]第一模板可被稱為基本模板。對于許多應(yīng)用,可存在差不多上千個GUI屏幕,并且對于每一個屏幕可花費大量的時間和精力來開發(fā)和應(yīng)用模板(即,新布局)。然而,基本模板可以應(yīng)用基本轉(zhuǎn)換,而無須為每一個GUI屏幕創(chuàng)建新模板布局。相反,它可應(yīng)用轉(zhuǎn)換邏輯來創(chuàng)建單個新布局GUI屏幕?;灸0蹇梢暂敵鲆粋€GUI屏幕,并且通常不被設(shè)計成將多個⑶I屏幕組合成一個⑶I屏幕。
[0090]第二模板可被稱為⑶I屏幕模板。⑶I屏幕模板可包括給定⑶I屏幕的模板。⑶I屏幕模板布局可以針對頭部和內(nèi)容部分兩者覆蓋基本模板布局。被覆蓋的內(nèi)容布局可以是諸如網(wǎng)格布局之類的表格和/或諸如折疊布局之類的分組。新布局可以被定義在XML文件中。⑶I屏幕模板布局可以將多個⑶I屏幕組合成一個⑶I屏幕,并可專用于它正改變的GUI屏眷。
[0091]如此處所使用的,術(shù)語“⑶I屏幕”可涉及被設(shè)計成消費顯示器的呈現(xiàn)字段或顯示區(qū)域的部分或全部的用戶界面元素。例如,某些用戶界面元素被設(shè)計成僅消費顯示器的諸如被該顯示器上的邊框、框或其他類似窗口的用戶界面元素框住的一部分或子部分。在某些情況下,⑶I屏幕可具有一組Π控件,該組Π控件允許用戶放大、減小或移動圍繞顯示器的呈現(xiàn)字段的GUI屏幕,或者將GUI屏幕整個地從顯示器的呈現(xiàn)字段中刪除。GUI屏幕的不例可包括用戶界面兀素,諸如例如由Microsoft Windows或Microsoft Window Form用戶界面應(yīng)用或其他應(yīng)用和操作系統(tǒng)生成的GUI “窗口”。
[0092]模板處理器可以應(yīng)用上述模板等,以生成包括有關(guān)⑶I屏幕布局的細(xì)節(jié)的、不依賴于⑶I的對象452的定制版本。渲染引擎438以及UI轉(zhuǎn)換邏輯可以接收不依賴于⑶I的對象452的新定制版本,并為客戶機404生成新定制的GUI視圖(例如,GUI窗口)以供呈現(xiàn)給最終用戶。渲染引擎438可以用GUI控件和性質(zhì)來映射GUI對象屬性(例如,頭部一功能區(qū)),并生成客戶機404所需的特定GUI控件和布局。
[0093]圖8A不出了根據(jù)一個實施例的用于處理表不GUI對象布局的模板的模板處理系統(tǒng)800的框圖。在一個實施例中,模板處理系統(tǒng)800可以被實現(xiàn)成用于服務(wù)器802的服務(wù)器應(yīng)用810的部分。服務(wù)器應(yīng)用810和服務(wù)器802可以表示如參考圖4來描述的相應(yīng)服務(wù)器應(yīng)用410和服務(wù)器402。然而,可以理解,模板處理系統(tǒng)800也可以被實現(xiàn)在η層客戶機-服務(wù)器體系結(jié)構(gòu)的各個其他部分中,包括例如客戶機804的客戶機應(yīng)用830。
[0094]在一個實施例中,客戶機應(yīng)用830可以表示例如參考圖4來描述的客戶機404的web客戶機430和/或客戶機適配器432。另外地或另選地,客戶機應(yīng)用830可以被實現(xiàn)成與客戶機應(yīng)用430不同的客戶機應(yīng)用,諸如例如服務(wù)器應(yīng)用810的本機版本或桌面版本。其他客戶機應(yīng)用也可被實現(xiàn)。各實施例不限于該上下文。
[0095]如之前參考圖4描述的,具有已改變用戶事件性質(zhì)451的消息450可被發(fā)送給服務(wù)器應(yīng)用430。服務(wù)器應(yīng)用410的解釋運行時引擎412隨后處理該已改變用戶事件性質(zhì)451以產(chǎn)生不依賴于⑶I的對象452。
[0096]在圖8A中示出的說明性實施例中,類似的過程可以由用戶事件804來表示,客戶機804的客戶機應(yīng)用830可以經(jīng)由用戶界面管理器806將該用戶事件804轉(zhuǎn)發(fā)到解釋運行時引擎850,以產(chǎn)生不依賴于⑶I的對象812。然而,在這點處,不依賴于⑶I的對象812是臨時的不依賴于GUI的對象,并且未準(zhǔn)備好供客戶機應(yīng)用830呈現(xiàn)。為了細(xì)化不依賴于GUI的對象812以供特定客戶機應(yīng)用830使用,該不依賴于GUI的對象812可被轉(zhuǎn)發(fā)給模板處理器814進(jìn)行進(jìn)一步處理。隨后,模板處理器814可以通過不依賴于⑶I的對象812應(yīng)用基本模板816以及⑶I屏幕模板818。
[0097]基本模板816可以應(yīng)用基本轉(zhuǎn)換,而無須為每一個GUI屏幕創(chuàng)建新模板布局?;灸0?16可以應(yīng)用轉(zhuǎn)換邏輯來創(chuàng)建如GUI視圖811所示的單個新布局。在這個實施例中,⑶I視圖811未被設(shè)計成將多個⑶I屏幕組合成一個⑶I屏幕。
[0098]GUI屏幕模板布局可以針對頭部和內(nèi)容部分兩者覆蓋基本模板816的基本模板布局。被覆蓋的內(nèi)容布局可以是諸如網(wǎng)格布局之類的表格和/或諸如折疊布局之類的分組。在一個實施例中,新布局可以在XML文件中被定義或以其他合適的與web相關(guān)的布局格式來定義。GUI屏幕模板布局可以將多個GUI屏幕組合成一個GUI屏幕,并可專用于它正改變的⑶I屏幕。
[0099]模板處理器814可隨后應(yīng)用上述模板816、818來生成新的且高度已定制的不依賴于⑶I的對象820,該不依賴于⑶I的對象820包括有關(guān)⑶I屏幕布局的細(xì)節(jié)。該新的不依賴于⑶I的對象820可以包括不依賴于⑶I的對象812的更具體的實現(xiàn),該更具體的實現(xiàn)進(jìn)而表示參考相應(yīng)的圖3、4描述的不依賴于⑶I的對象360、452。將該新的不依賴于⑶I的對象820從服務(wù)器應(yīng)用810返回給在客戶機804上執(zhí)行的客戶機應(yīng)用830的渲染引擎822。
[0100]渲染引擎822接收該新的不依賴于GUI的對象820,并執(zhí)行被設(shè)計成為最終用戶生成定制的新GUI視圖824的UI轉(zhuǎn)換邏輯。渲染引擎822可以用GUI控件和性質(zhì)來映射GUI對象屬性(諸如例如,頭部一功能區(qū)),并生成客戶機應(yīng)用所需的特定GUI控件和布局。
[0101]圖8B、8C提供了相應(yīng)⑶I視圖811、824的更詳細(xì)的說明。例如,表示基本模板的GUI屏幕可被示出在圖8B的GUI視圖811中,而從GUI屏幕模板得到的GUI屏幕可被示出在圖8C中的⑶I視圖824中。
[0102]在圖8B、8C中示出的說明性實施例中,從基本模板816構(gòu)建的⑶I視圖811 (圖SB)可以表現(xiàn)為類似于,但還是不同于,從屏幕模板818構(gòu)建的⑶I視圖824 (圖SC)?;叵肫聊荒0?18將取代基本模板816。S卩,基本模板816可以被首先應(yīng)用,而屏幕模板818可以在稍候被應(yīng)用來定制該基本模板816。在圖8B (基本模板表不)和圖8C (屏幕模板表示)的說明性示例中,已經(jīng)重新安排了按鈕和字段框中的許多。例如,從基本模板816構(gòu)建的⑶I視圖811中的左下按鈕已被重定位到在從屏幕模板818構(gòu)建的⑶I視圖824的左上方部分上的菜單欄中。用于811 (圖8B)和824 (圖8C)的⑶I視圖兩者都示出了功能區(qū)UI表示826。功能區(qū)是大型工具欄,該大型工具欄包含依據(jù)功能來組織的菜單和按鈕的分組。每一功能區(qū)在功能上與選項卡(tab)相關(guān)聯(lián)。參考圖8C的⑶I視圖824,該選項卡是“Vendor (供應(yīng)商)”。此外,vendor選項卡的布局已被安排在兩個部分中。部分I被標(biāo)記為“General (通用)”828,而部分2被標(biāo)記為“Addresses (地址)”860。這與圖8B中的GUI視圖811不同,因為GUI視圖824中的選項卡(Addresses (地址)、Accounts (賬戶)、0ptions(選項)、Email (電子郵件)、Withholding (隱藏))替代了 GUI視圖811中的按鈕(Options(選項),Address (地址),Accounts (賬戶),E_mail (電子郵件))。應(yīng)該理解,在⑶I視圖811、824之間已作出了并且可以作出其他修改和更改。通過這種方式,模板處理系統(tǒng)800可以向針對實現(xiàn)不同客戶機適配器(例如,客戶機適配器232、242)的不同web客戶機(例如,web客戶機230、240)的定制⑶I視圖提供從由服務(wù)器應(yīng)用(例如,410、810)所提供的本機GUI視圖導(dǎo)出的定制GUI視圖。
[0103]圖9示出邏輯流程900。邏輯流程900可示出根據(jù)一個或多個實施例執(zhí)行的操作。例如,邏輯流程900可示出由如圖8所示的服務(wù)器應(yīng)用810和/或客戶機應(yīng)用830執(zhí)行的操作。另外地或另選地,邏輯流程900可以示出由如圖4所示的服務(wù)器應(yīng)用410和/或web客戶機430執(zhí)行的操作。各實施例不限于該上下文。
[0104]在邏輯流程900中,用戶與在客戶機側(cè)用戶界面中執(zhí)行的web客戶機交互,以輸入用戶事件。框902、904和906可以表示已在圖5中較完整地描述過的邏輯過程的縮略表示。
[0105]在邏輯流程900中,當(dāng)在框906處運行時引擎生成了不依賴于⑶I的對象后,可在框908將該不依賴于⑶I的對象轉(zhuǎn)發(fā)給模板處理器。例如,該不依賴于⑶I的對象812可以被客戶機應(yīng)用830轉(zhuǎn)發(fā)給在服務(wù)器應(yīng)用810中執(zhí)行的模板處理器814來進(jìn)行進(jìn)一步處理。
[0106]在邏輯流程900中,在框912,模板處理器可以應(yīng)用所生成的基本模板和屏幕模板來生成新的GUI對象。例如,模板處理器814可以應(yīng)用所生成的基本模板816和屏幕模板818來生成定制的新的不依賴于⑶I的對象820。
[0107]在邏輯流程900中,在框914,可將該新的不依賴于⑶I的對象發(fā)送回客戶機。例如,定制的新的不依賴于⑶I的對象820可(經(jīng)由網(wǎng)絡(luò)250)被發(fā)送回客戶機應(yīng)用830,在客戶機應(yīng)用830處,該對象820可被轉(zhuǎn)發(fā)給渲染引擎822進(jìn)行進(jìn)一步處理。
[0108]在邏輯流程900中,在框916,渲染引擎可轉(zhuǎn)換⑶I對象,并可生成新的⑶I屏幕。例如,渲染引擎822可轉(zhuǎn)換不依賴于⑶I的對象820,并可生成由客戶機應(yīng)用830 (或客戶機適配器或客戶機OS)渲染的定制的⑶I視圖824。
[0109]圖10示出適用于實現(xiàn)上述各實施例的示例性計算體系結(jié)構(gòu)1000的實施例。計算體系結(jié)構(gòu)1000包括各種常見計算元件,如一個或多個處理器、協(xié)處理器、存儲器單元、芯片組、控制器、外圍設(shè)備、接口、振蕩器、定時設(shè)備、視頻卡、音頻卡、多媒體輸入/輸出(I/o)組件,等等。然而,各實施例不限于由計算體系結(jié)構(gòu)1000來實現(xiàn)。
[0110]如圖10所示,計算體系結(jié)構(gòu)1000包括處理單元1004、系統(tǒng)存儲器1006以及系統(tǒng)總線1008。處理單元1004可以是可購得的各種處理器中的任一種。雙微處理器和其他多處理器體系結(jié)構(gòu)也可用作處理單元1004。系統(tǒng)總線1008向包括但不限于系統(tǒng)存儲器1006的各系統(tǒng)組件提供到處理單元1004的接口。系統(tǒng)總線10010可以是若干類型總線結(jié)構(gòu)中的任一種,這些總線結(jié)構(gòu)還可互連到存儲器總線(帶有或沒有存儲器控制器)、外圍總線、以及使用各類市場上可購買到的總線體系結(jié)構(gòu)中的任一種的局部總線。[0111]系統(tǒng)存儲器1006可以包括各種類型的存儲器單元,諸如只讀存儲器(ROM)、隨機存取存儲器(RAM)、動態(tài)RAM(DRAM)、雙倍數(shù)據(jù)率DRAM(DDRAM)、同步DRAM(SDRAM)、靜態(tài)RAM(SRAM)、可編程ROM (PR0M)、可擦除可編程ROM (EPR0M)、電可擦除可編程ROM (EEPR0M)、閃存、諸如鐵電聚合物存儲器等聚合物存儲器、奧氏存儲器、相變或鐵電存儲器、硅-氧化物-氮化物-氧化物-硅(SONOS)存儲器、磁卡或光卡、或適于存儲信息的任何其他類型的介質(zhì)。在圖10示出的所示實施例中,系統(tǒng)存儲器1006可包括非易失性存儲器1010和/或易失性存儲器1012?;据斎?輸出系統(tǒng)(BIOS)可以存儲在非易失性存儲器1010中。
[0112]計算機1002可包括各種類型的計算機可讀存儲介質(zhì),包括內(nèi)置硬盤驅(qū)動器(HDD)1014、用于讀寫可移動磁盤10110的磁軟盤驅(qū)動器(FDD) 1016、以及用于讀寫可移動光盤1022 (例如,CD-ROM或DVD)的光盤驅(qū)動器1020。HDD1014、FDD1016、以及光盤驅(qū)動器1020可分別由HDD接口 1024、FDD接口 1026和光盤驅(qū)動器接口 10210連接到系統(tǒng)總線100108。用于外置驅(qū)動器實現(xiàn)的HDD接口 1024可包括通用串行總線(USB)和IEEE1394接口技術(shù)中的至少一種或兩者。
[0113]驅(qū)動器及相關(guān)聯(lián)的計算機可讀介質(zhì)提供了對數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、計算機可執(zhí)行指令等的易失性和/或非易失性存儲。例如,多個程序模塊可被存儲在驅(qū)動器和存儲器單元1010、1012中,包括操作系統(tǒng)1030、一個或多個應(yīng)用程序1032、其他程序模塊1034和程序數(shù)據(jù)1036。這一個或多個應(yīng)用程序1032、其他程序模塊1034、以及程序數(shù)據(jù)1036可包括例如客戶機-服務(wù)器系統(tǒng)200、300和400的軟件組件。
[0114]用戶可以通過一個或多個有線/無線輸入設(shè)備,例如鍵盤10310和諸如鼠標(biāo)1040等定點設(shè)備將命令和信息輸入到計算機1002中。其他輸入設(shè)備可包括話筒、紅外(IR)遙控器、操縱桿、游戲墊、指示筆、觸摸屏等等。這些和其他輸入設(shè)備通常通過耦合到系統(tǒng)總線10010的輸入設(shè)備接口 1042連接到處理單元1004,但也可通過諸如并行端口、IEEE1394串行端口、游戲端口、USB端口、IR接口等其他接口連接。
[0115]一個或多個監(jiān)視器1044或其它類型的顯示設(shè)備也經(jīng)由諸如視頻適配器1046等的接口連接到系統(tǒng)總線1008。除了監(jiān)視器1044之外,計算機通常包括諸如揚聲器、打印機等其他外圍輸出設(shè)備。一個或多個監(jiān)視器1045也可經(jīng)由輸入設(shè)備接口 1042和/或諸如USB集線器1043等的集線器連接到系統(tǒng)總線10010。監(jiān)視器1045可包括各種組件,如攝像頭、話筒陣列、觸摸傳感器、動作傳感器、揚聲器等等。這些組件可經(jīng)由USB集線器1043連接到輸入設(shè)備接口 1042。
[0116]計算機1002可使用經(jīng)由有線和/或無線通信至一個或多個遠(yuǎn)程計算機(諸如遠(yuǎn)程計算機10410)的邏輯連接在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計算機10410可以是工作站、服務(wù)器計算機、路由器、個人計算機、便攜式計算機、基于微處理器的娛樂設(shè)備、對等設(shè)備或其他常見的網(wǎng)絡(luò)節(jié)點,并且通常包括相對于計算機1002描述的許多或所有元件,但為簡明起見僅示出了存儲器/存儲設(shè)備1050。所描繪的邏輯連接包括到局域網(wǎng)(LAN) 1052和/或例如廣域網(wǎng)(WAN)1054等更大網(wǎng)絡(luò)的有線/無線連接。這種LAN和WAN聯(lián)網(wǎng)環(huán)境常見于辦公室和公司,并且方便了諸如內(nèi)聯(lián)網(wǎng)等企業(yè)范圍計算機網(wǎng)絡(luò),所有這些都可連接到例如因特網(wǎng)等全球通信網(wǎng)絡(luò)。
[0117]當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用時,計算機1002通過有線和/或無線通信網(wǎng)絡(luò)接口或適配器1056連接到LAN1052。適配器1056可以方便到LAN1052的有線和/或無線通信,并且還可包括其上設(shè)置的用于使用適配器1056的無線功能進(jìn)行通信的無線接入點。
[0118]當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用時,計算機1002可包括調(diào)制解調(diào)器10510,或連接到WAN1054上的通信服務(wù)器,或具有用于諸如通過因特網(wǎng)等在WAN1054上建立通信的其他裝置?;驗閮?nèi)置或為外置以及有線和/或無線設(shè)備的調(diào)制解調(diào)器10510經(jīng)由輸入設(shè)備接口1042連接到系統(tǒng)總線10010。在聯(lián)網(wǎng)環(huán)境中,相對于計算機1002所描繪的程序模塊或其部分可以存儲在遠(yuǎn)程存儲器/存儲設(shè)備1050中。將明白,所示網(wǎng)絡(luò)連接是示例性的,并且可以使用在計算機之間建立通信鏈路的其他手段。
[0119]計算機1002可操作來使用IEEE802標(biāo)準(zhǔn)家族來與有線和無線設(shè)備或?qū)嶓w進(jìn)行通信,這些實體例如是在操作上安置成與例如打印機、掃描儀、臺式和/或便攜式計算機、個人數(shù)字助理(PDA)、通信衛(wèi)星、任何一件與無線可檢測標(biāo)簽相關(guān)聯(lián)的設(shè)備或位置(例如,電話亭、報亭、休息室)以及電話進(jìn)行無線通信(例如,IEEE802.11空中調(diào)制技術(shù))的無線設(shè)備。這至少包括W1-Fi (即無線保真)、WiMax和藍(lán)牙?無線技術(shù)。由此,通信可以如對于常規(guī)網(wǎng)絡(luò)那樣是預(yù)定義結(jié)構(gòu),或者僅僅是至少兩個設(shè)備之間的自組織(ad hoc)通信。W1-Fi網(wǎng)絡(luò)使用稱為IEEE802.1lx (a、b、g等等)的無線電技術(shù)來提供安全、可靠、快速的無線連接。W1-Fi網(wǎng)絡(luò)可用于將計算機彼此連接、連接到因特網(wǎng)以及連接到有線網(wǎng)絡(luò)(使用IEEE802.3相關(guān)的介質(zhì)和功能)。
[0120]圖11示出適用于實現(xiàn)上述各實施例的示例性通信體系結(jié)構(gòu)1100的框圖。通信體系結(jié)構(gòu)1100包括各種常見通信元件,如發(fā)射機、接收機、收發(fā)機、無線電裝置、網(wǎng)絡(luò)接口、基帶處理器、天線、放大器、濾波器,等等。然而,各實施例不限于由通信體系結(jié)構(gòu)1100來實現(xiàn)。
[0121]如圖11所示,通信體系結(jié)構(gòu)1100包括一個或多個客戶機1102和服務(wù)器1104??蛻魴C1102可實現(xiàn)web客戶機430。服務(wù)器1104可以實現(xiàn)解釋運行時引擎412??蛻魴C1102和服務(wù)器1104可操作地連接到可被用來存儲相應(yīng)客戶機1102和服務(wù)器1104本地的信息(如cookie和/或相關(guān)聯(lián)的上下文信息)的一個或多個相應(yīng)客戶機數(shù)據(jù)存儲1108和服務(wù)器數(shù)據(jù)存儲1110。
[0122]客戶機1102和服務(wù)器1104可以使用通信框架1106在彼此之間傳遞信息。通信框架1106可以實現(xiàn)任何公知通信技術(shù),如適用于與分組交換網(wǎng)絡(luò)(例如,諸如因特網(wǎng)等公共網(wǎng)絡(luò)、諸如企業(yè)內(nèi)聯(lián)網(wǎng)等專有網(wǎng)絡(luò),等等)、電路交換網(wǎng)絡(luò)(例如,公共交換電話網(wǎng))、或分組交換網(wǎng)絡(luò)和電路交換網(wǎng)絡(luò)的組合(使用合適的網(wǎng)關(guān)和轉(zhuǎn)換器)一起使用的技術(shù)??蛻魴C1102和服務(wù)器1104可以包括被設(shè)計成可與通信框架1106進(jìn)行互操作的各種類型的標(biāo)準(zhǔn)通信元件,如一個或多個通信接口、網(wǎng)絡(luò)接口、網(wǎng)絡(luò)接口卡(NIC)、無線電裝置、無線發(fā)射機/接收機(收發(fā)機)、有線和/或無線通信介質(zhì)、物理連接器等。作為示例而非限制,通信介質(zhì)包括有線通信介質(zhì)和無線通信介質(zhì)。有線通信介質(zhì)的示例可以包括導(dǎo)線、電纜、金屬線、印刷電路板(PCB)、背板、交換光纖、半導(dǎo)體材料、雙絞線、同軸電纜、光纖、所傳播的信號等。無線通信介質(zhì)的示例可以包括聲學(xué)、射頻(RF)頻譜、紅外和其他無線介質(zhì)??蛻魴C1102和服務(wù)器1104之間的一種可能的通信可以是以適用于在兩個或更多計算機進(jìn)程之間傳輸?shù)臄?shù)據(jù)包的形式。例如,數(shù)據(jù)包可以包括cookie和/或相關(guān)聯(lián)的上下文信息。
[0123]各實施例可以使用硬件元件、軟件元件或兩者的組合來實現(xiàn)。硬件元件的示例可以包括設(shè)備、邏輯設(shè)備、組件、處理器、微處理器、電路、電路元素(例如,晶體管、電阻器、電容器、電感器等)、集成電路、專用集成電路(ASIC)、可編程邏輯器件(PLD)、數(shù)字信號處理器(DSP)、現(xiàn)場可編程門陣列(FPGA)、存儲器單元、邏輯門、寄存器、半導(dǎo)體設(shè)備、芯片、微芯片、芯片組等。軟件元件的示例可以包括軟件組件、程序、應(yīng)用、計算機程序、應(yīng)用程序、系統(tǒng)程序、機器程序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、函數(shù)、方法、過程、軟件接口、應(yīng)用程序接口(API)、指令集、計算代碼、計算機代碼、代碼段、計算機代碼段、文字、值、符號、或其任意組合。確定一實施例是否使用硬件元件和/或軟件元件來實現(xiàn)可根據(jù)如給定實現(xiàn)所需的任何數(shù)量的因素而變化,這些因素諸如所需計算速率、功率級、耐熱性、處理周期預(yù)算、輸入數(shù)據(jù)速率、輸出數(shù)據(jù)速率、存儲器資源、數(shù)據(jù)總線速度以及其他設(shè)計或性能約束。
[0124]一些實施例可包括制品。制品可包括被設(shè)置為存儲邏輯的計算機可讀的存儲介質(zhì)。計算機可讀的存儲介質(zhì)的示例可包括能夠存儲電子數(shù)據(jù)的任何存儲介質(zhì),包括易失性存儲器或非易失性存儲器、可移動或不可移動存儲器、可擦除或不可擦除存儲器、可寫或可重寫存儲器等。邏輯的示例可包括各種軟件元件,諸如軟件組件、程序、應(yīng)用、計算機程序、應(yīng)用程序、系統(tǒng)程序、機器程序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、函數(shù)、方法、過程、軟件接口、應(yīng)用程序接口(API)、指令集、計算代碼、計算機代碼、代碼段、計算機代碼段、文字、值、符號、或其任意組合。例如,在一個實施例中,制品可以存儲可執(zhí)行計算機程序指令,該指令在由計算機執(zhí)行時使得該計算機執(zhí)行根據(jù)所描述的各實施例的方法和/或操作??蓤?zhí)行計算機程序指令可包括任何合適類型的代碼,諸如源代碼、已編譯代碼、已解釋代碼、可執(zhí)行代碼、靜態(tài)代碼、動態(tài)代碼等??蓤?zhí)行計算機程序指令可根據(jù)用于指示計算機執(zhí)行特定功能的預(yù)定義的計算機語言、方式或句法來實現(xiàn)。這些指令可使用任何合適的高級、低級、面向?qū)ο?、可視、已編譯和/或已解釋編程語言來實現(xiàn)。
[0125]一些實施例可使用表述“一個實施例”和“一實施例”及其派生詞來描述。這些術(shù)語意味著結(jié)合該實施例描述的特定特征、結(jié)構(gòu)、或性質(zhì)包括在至少一個實施例中。出現(xiàn)在說明書中各個地方的短語在“一個實施例中”并不必全都指的是同一實施例。
[0126]一些實施例可使用表述“耦合的”和“連接的”及其派生詞來描述。這些術(shù)語不必旨在互為同義詞。例如,一些實施例可使用術(shù)語“連接的”和/或“耦合的”來描述以指示兩個或更多元件彼此有直接的物理或電接觸。然而,術(shù)語“耦合的”還可以意味著兩個或更多元件彼此不直接接觸,而仍彼此合作或交互。
[0127]要強調(diào),本公開的摘要是為了允許讀者快速確定本技術(shù)公開的性質(zhì)而提供的。提交摘要的同時要明白,將不用它來解釋或限制權(quán)利要求的范圍或含義。另外,在前面的詳細(xì)描述中,可以看到,出于將本公開連成一個整體的目的而將各種特征組合在一起放在單個實施例中。此公開方法將不被解釋為反映所要求保護(hù)的實施例要求比每個權(quán)利要求中明確陳述的更多特征的意圖。相反,如所附權(quán)利要求書所反映,發(fā)明性的主題存在于比單個已公開實施例的所有特征少的特征中。從而,據(jù)此將所附權(quán)利要求結(jié)合進(jìn)詳細(xì)描述中,其中每個權(quán)利要求獨立地代表一個單獨的實施例。在所附權(quán)利要求書中,術(shù)語“包括”和“其中”分別用作術(shù)語“包含”和“其特征在于”的易懂的英文等價詞。而且,術(shù)語“第一”、“第二”、“第三”等等只用作標(biāo)記,而不旨在將數(shù)字要求強加于其對象上。
[0128]盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于上述具體特征或動作。更確切而言,上述具體特征和動作是作為實現(xiàn)權(quán)利要求的示例形式公開的。
【權(quán)利要求】
1.一種計算機實現(xiàn)的方法,包括: 從在客戶機計算機上執(zhí)行的客戶機應(yīng)用處接收用戶事件性質(zhì); 基于接收到的用戶事件性質(zhì)來生成不依賴于圖形用戶界面(GUI)的對象; 將基本模板和屏幕模板應(yīng)用于所述不依賴于GUI的對象,以創(chuàng)建新的不依賴于GUI的對象; 將所述新的不依賴于GUI的對象發(fā)送給在客戶機計算機上執(zhí)行的所述客戶機應(yīng)用。
2.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其特征在于,包括將單個消息中的多個用戶事件的多個用戶事件性質(zhì)從所述客戶機應(yīng)用發(fā)送到所述服務(wù)器應(yīng)用。
3.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其特征在于,所述基本模板包括GUI屏幕布局的單個表示的元數(shù)據(jù)和內(nèi)容,并且其中所述屏幕模板包括與基本模板有關(guān)并覆蓋所述基本模板數(shù)據(jù)的GUI屏幕布局的定制表示的元數(shù)據(jù)和內(nèi)容。
4.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其特征在于,所述定制的新GUI布局屏幕將多個屏幕組合成單個屏幕。
5.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其特征在于,包括接收用戶事件性質(zhì),所述用戶事件性質(zhì)包括以下各項中的至少一個:具有一個或多個用戶界面元素的對象元數(shù)據(jù)、或具有一個或多個元組的性質(zhì)/值集合,其中每一元組包括一用戶界面元素的標(biāo)識符、該用戶界面元素的性質(zhì)和該性質(zhì)的值。
6.一種包括包含指令的存儲介質(zhì)的制品,所述指令在被執(zhí)行時使得系統(tǒng)執(zhí)行如權(quán)利要求1、2、3、4或5中任一項所述的方法。
7.一種裝置,包括: 邏輯設(shè)備;以及 能在所述邏輯設(shè)備上操作的服務(wù)器應(yīng)用,所述服務(wù)器應(yīng)用包括: 解釋運行時引擎,該解釋運行時引擎用于:從在客戶機計算機上執(zhí)行的客戶機應(yīng)用處接收用戶事件性質(zhì),基于接收到的用戶事件性質(zhì)來生成不依賴于圖形用戶界面(GUI)的對象, 模板處理器,該模板處理器用于將基本模板和屏幕模板應(yīng)用于所述不依賴于GUI的對象,以創(chuàng)建新的不依賴于GUI的對象,并將所述新的不依賴于GUI的對象發(fā)送到在所述客戶機計算機上執(zhí)行的所述客戶機應(yīng)用處。
8.如權(quán)利要求7所述的裝置,其特征在于,所述解釋運行時引擎與數(shù)據(jù)庫操作地耦合。
9.如權(quán)利要求7或8所述的裝置,其特征在于,所述解釋運行時引擎還包括腳本解釋器,該腳本解釋器用于響應(yīng)于接收到的用戶事件性質(zhì)而執(zhí)行腳本代碼。
10.如權(quán)利要求7或8所述的裝置,其特征在于,所述解釋運行時引擎還包括文件管理器,該文件管理器用于執(zhí)行對存儲在數(shù)據(jù)庫中的文件執(zhí)行文件管理操作。
【文檔編號】G06F9/44GK103608799SQ201280028886
【公開日】2014年2月26日 申請日期:2012年6月12日 優(yōu)先權(quán)日:2011年6月13日
【發(fā)明者】R·帕特爾, K·拉森, L·馬雷斯卡, B·羅尼, E·尼森, J·南那伽 申請人:微軟公司