計(jì)算機(jī)系統(tǒng)當(dāng)前被廣泛應(yīng)用。許多計(jì)算機(jī)系統(tǒng)具有表單或其他顯示機(jī)制,通過表單或其他顯示機(jī)制將計(jì)算機(jī)系統(tǒng)中的信息呈現(xiàn)給用戶。
作為示例,一些計(jì)算機(jī)系統(tǒng)包括業(yè)務(wù)系統(tǒng)。業(yè)務(wù)系統(tǒng)可包括例如企業(yè)資源規(guī)劃(ERP)系統(tǒng)、客戶關(guān)系管理(CRM)系統(tǒng)、業(yè)務(wù)線(LOB)系統(tǒng)等。這些類型的系統(tǒng)可具有在不同上下文中呈現(xiàn)給用戶的數(shù)百或數(shù)千種不同的表單。每種表單可具有許多不同的控件。一些表單還具有相關(guān)聯(lián)的邏輯、數(shù)據(jù)、狀態(tài)信息和其他行為信息。
業(yè)務(wù)系統(tǒng)只是這種系統(tǒng)的一個(gè)示例。例如,電子郵件或其他消息收發(fā)系統(tǒng),以及電子店面、文檔管理系統(tǒng)和大量其他計(jì)算機(jī)系統(tǒng)同樣具有向用戶呈現(xiàn)數(shù)據(jù)的表單或類似機(jī)制。
為了開發(fā)表單,開發(fā)人員通常在開發(fā)環(huán)境中對表單進(jìn)行建模。然后經(jīng)建模的表單被編譯成可序列化格式(諸如XML)并被保存到數(shù)據(jù)存儲(chǔ)中。
在運(yùn)行時(shí)期間,表單可被用在基于服務(wù)器的系統(tǒng)(諸如基于服務(wù)器的業(yè)務(wù)系統(tǒng))中。當(dāng)用戶在瀏覽器中請求表單時(shí),具有需要被打開的表單的名稱的請求被發(fā)送到服務(wù)器。服務(wù)器隨后使用XML表示來創(chuàng)建并初始化表單及其控件,并且來執(zhí)行與表單相關(guān)聯(lián)的任何運(yùn)行時(shí)代碼。在所有代碼已經(jīng)被執(zhí)行之后,服務(wù)器根據(jù)表單可被發(fā)送到客戶端應(yīng)用的格式來生成表單,并且將表單發(fā)送到客戶端。在一些系統(tǒng)中,服務(wù)器使用完整表單的描述符來生成表單的表示。例如,服務(wù)器可生成表單的JavaScript對象表示法(JSON)表示。JSON表示由瀏覽器中的代碼解釋,以生成被用來在瀏覽器中渲染表單的結(jié)構(gòu)和標(biāo)記語言格式。因此,服務(wù)器生成表單的整體表示并將其傳送到客戶端以在瀏覽器中渲染。
提供以上討論僅用作一般的背景信息,并不旨在用作幫助來確定所要求保護(hù)的主題的范圍。
概述
在客戶端設(shè)備上接收對表單的請求。在客戶端設(shè)備上接收表單的靜態(tài)表示,其包括定義表單的總體結(jié)構(gòu)的結(jié)構(gòu)信息以及屬性信息,并且客戶端設(shè)備上的瀏覽器基于靜態(tài)表示來生成表單的可渲染的標(biāo)記語言表示。從服務(wù)器接收行為和狀態(tài)信息,并且其被用來增強(qiáng)表單的可渲染版本。然后瀏覽器渲染表單的增強(qiáng)的、可渲染的版本。
提供本概述以便以簡化的形式介紹以下在詳細(xì)描述中進(jìn)一步描述的一些概念。本概述并非旨在標(biāo)識(shí)出要求保護(hù)的主題的關(guān)鍵特征或必要特征,亦非旨在用作輔助確定要求保護(hù)的主題的范圍。所要求保護(hù)的主題不限于解決在背景中提及的任何或所有缺點(diǎn)的實(shí)現(xiàn)。
附圖簡述
圖1是開發(fā)環(huán)境的一個(gè)示例的框圖。
圖2是解說圖1中所示的環(huán)境在開發(fā)表單時(shí)的操作的一個(gè)示例的流程圖。
圖2A示出了在開發(fā)環(huán)境中生成的用戶界面顯示的一個(gè)示例。
圖3是解說基于服務(wù)器的運(yùn)行時(shí)環(huán)境的一個(gè)示例的框圖。
圖4A和4B(統(tǒng)稱為圖4)示出了圖3所示的基于服務(wù)器的運(yùn)行時(shí)環(huán)境在渲染由用戶所請求的表單時(shí)的操作的一個(gè)示例。
圖5示出了可在圖3所示的環(huán)境中生成的用戶界面顯示的一個(gè)示例。
圖6示出了被置于云計(jì)算環(huán)境中的圖3示出的環(huán)境的一個(gè)示例。
圖7-9示出了移動(dòng)設(shè)備的各種示例。
圖10是計(jì)算環(huán)境的一個(gè)示例的框圖。
詳細(xì)描述
圖1示出了可被用來開發(fā)向用戶103顯示信息的表單或其他機(jī)制的開發(fā)環(huán)境100的一個(gè)示例的框圖。開發(fā)環(huán)境100可包括開發(fā)系統(tǒng)102和數(shù)據(jù)存儲(chǔ)104。在圖1所示的示例中,示出了開發(fā)系統(tǒng)102生成用戶界面顯示106,用戶界面顯示106具有供用戶103進(jìn)行交互的用戶輸入機(jī)制108。用戶103可以是正在使用開發(fā)系統(tǒng)102開發(fā)模型或代碼并且儲(chǔ)存在數(shù)據(jù)存儲(chǔ)104中的開發(fā)者。用戶103說明性地與用戶輸入機(jī)制108交互以控制并操縱系統(tǒng)102。
開發(fā)系統(tǒng)102本身說明性地包括處理器110、用戶界面組件112、元數(shù)據(jù)創(chuàng)作功能114、表單編譯器116,并且開發(fā)系統(tǒng)102還可包括其他項(xiàng)118。數(shù)據(jù)存儲(chǔ)104說明性地包括由用戶102建模的每個(gè)表單的靜態(tài)(例如,標(biāo)記語言)表單表示120。數(shù)據(jù)存儲(chǔ)104還說明性地包括服務(wù)器表示122。靜態(tài)表單表示120說明性地包括定義對應(yīng)表單的總體分層結(jié)構(gòu)的結(jié)構(gòu)信息124。靜態(tài)表單表示120還可包括屬性信息126以及其他信息128。另外,在一個(gè)示例中,靜態(tài)表單表示120可包括指示綁定到對應(yīng)表單的數(shù)據(jù)源的一些數(shù)據(jù)綁定信息。
服務(wù)器表示122可包括邏輯130、數(shù)據(jù)和其他數(shù)據(jù)綁定信息132、對應(yīng)于表單的狀態(tài)和行為信息134,并且服務(wù)器表示122還可包括其他項(xiàng)136。
在更詳細(xì)描述環(huán)境100的總體操作之前,將首先提供簡要概覽。用戶界面組件112本身或者在開發(fā)系統(tǒng)102中的其他項(xiàng)的控制下說明性地生成具有用戶輸入機(jī)制108的用戶界面顯示106。用戶103說明性地使用用戶輸入機(jī)制108以便訪問元數(shù)據(jù)創(chuàng)作功能114來創(chuàng)作表示給定表單的元數(shù)據(jù)。元數(shù)據(jù)創(chuàng)作功能114說明性地是在開發(fā)系統(tǒng)102中或在另一開發(fā)工具中所提供的功能,該功能允許用戶103創(chuàng)作定義表單或其他表示機(jī)制的元數(shù)據(jù)或其他數(shù)據(jù)。出于本討論的目的,在一個(gè)示例中,術(shù)語“表單”將被用來意指向用戶顯示信息的任何機(jī)制。
表單編譯器116說明性地將用戶102在開發(fā)表單中輸入的元數(shù)據(jù)編譯成靜態(tài)表單表示120和服務(wù)器表示122。靜態(tài)表示120可說明性地是服務(wù)器可以用來將表單發(fā)送到請求客戶端的表示。例如,靜態(tài)表示120可以是表單的JSON表示。在一個(gè)示例中,靜態(tài)表示120包含表單控件分層結(jié)構(gòu)(由結(jié)構(gòu)信息124定義)以及可由瀏覽器在運(yùn)行時(shí)環(huán)境中使用的一組屬性和其他可選數(shù)據(jù)綁定信息(由屬性信息126定義),以便在瀏覽器中生成表單的可渲染版本。編譯器116還說明性地生成由服務(wù)器表示122所表示的表單的標(biāo)記語言(例如,XML)版本。
因此,如下面參考圖3更詳細(xì)地描述的,在運(yùn)行時(shí)期間,客戶端設(shè)備上的瀏覽器可請求來自基于服務(wù)器的系統(tǒng)的表單并且將接收靜態(tài)表示120。然后,客戶端可開始構(gòu)建表單的可渲染版本,同時(shí)服務(wù)器執(zhí)行與表單相關(guān)聯(lián)的邏輯130,并且還獲得數(shù)據(jù)132以及任何狀態(tài)和行為信息134。當(dāng)服務(wù)器請求被完成時(shí),該信息可被發(fā)送到客戶端設(shè)備上的瀏覽器,在瀏覽器中該信息與已使用靜態(tài)表單表示120創(chuàng)建的可渲染版本合并,以獲得表單的最終的經(jīng)渲染版本。
圖2是解說圖1中所示的環(huán)境100在創(chuàng)作并編譯表單時(shí)的操作的一個(gè)示例的流程圖。開發(fā)系統(tǒng)100首先從用戶103接收指示用戶103希望訪問開發(fā)系統(tǒng)103以便開發(fā)表單的用戶輸入。這由圖2中的框150指示。例如,這可以是認(rèn)證信息152或其他信息154。
用戶界面組件112隨后顯示表單創(chuàng)作顯示,使得用戶103可訪問元數(shù)據(jù)創(chuàng)作功能114以便創(chuàng)作表單。顯示表單創(chuàng)作顯示由框156指示。其可包括元數(shù)據(jù)顯示158、屬性顯示160和其他顯示部分162。
圖2A示出表單創(chuàng)作顯示164的一個(gè)示例??梢钥闯觯谝粋€(gè)示例中,顯示164包括允許開發(fā)者查找各種表單的瀏覽器顯示部分166。顯示164還說明性地包括允許開發(fā)者創(chuàng)作元數(shù)據(jù)的元數(shù)據(jù)顯示部分158。圖2A中所示的示例示出了表示表單的分層元數(shù)據(jù)結(jié)構(gòu)168的一個(gè)示例。預(yù)覽部分170示出了當(dāng)由元數(shù)據(jù)結(jié)構(gòu)168表示的表單在運(yùn)行時(shí)期間被渲染時(shí),該表單將看起來像什么的預(yù)覽。
開發(fā)系統(tǒng)102接收元數(shù)據(jù)創(chuàng)作功能114上的輸入以便創(chuàng)作表單。這由圖2的流程圖中的框172指示。因此,開發(fā)者可修改或添加到元數(shù)據(jù)結(jié)構(gòu)168以進(jìn)一步開發(fā)一般在170處顯示的表單。
在某一時(shí)刻,表單編譯器116編譯創(chuàng)作出的表單。在一個(gè)示例中,這可在每當(dāng)用戶保存正在被創(chuàng)作的表單時(shí)執(zhí)行。在另一示例中,編譯器116可間歇地或者周期性地自動(dòng)編譯表單。當(dāng)然,編譯也可在其他時(shí)間執(zhí)行。接收指示表單編譯器116將編譯表單的編譯輸入由圖2的流程圖中的框174指示。
然后,如框166所示,表單編譯器116編譯創(chuàng)作出的表單。在這樣做時(shí),如上所討論的,表單編譯器116生成靜態(tài)表單表示120、服務(wù)器表示122,并且表單編譯器116還可生成其他項(xiàng)178。編譯器116反射分層結(jié)構(gòu)168中的元數(shù)據(jù)以生成表單的靜態(tài)版本120。例如,靜態(tài)版本120可使用JSON字符串或其他描述符來表示,所示其他描述符可由將渲染表單的運(yùn)行時(shí)瀏覽器理解。在任何情況下,靜態(tài)表示120可被瀏覽器使用來創(chuàng)建作為經(jīng)建模的表單的完整表示的標(biāo)記語言表單(例如,HTML表單),但是不具有表單的邏輯結(jié)果、所有數(shù)據(jù)綁定、以及狀態(tài)和行為信息。此信息將由服務(wù)器在運(yùn)行時(shí)期間提供。
下面的表1示出了表示圖2A中所示的示例表單的靜態(tài)表單表示204的經(jīng)編譯文件的一個(gè)示例。為了生成靜態(tài)表示,表單編譯器116在經(jīng)建模的元數(shù)據(jù)結(jié)構(gòu)168上反射并且生成表單的靜態(tài)表示?!办o態(tài)”意味著該表示不包括與表單相關(guān)聯(lián)的邏輯或代碼的結(jié)果。在一個(gè)示例中,靜態(tài)表示是JSON表示,但它也可以是其他表示。在表1中可以看出,該表示包括控件層次結(jié)構(gòu)和屬性,所述控件層次結(jié)構(gòu)和屬性被需要以創(chuàng)建視覺上有效的表單的表示。該表示還可任選地包括一些數(shù)據(jù)綁定信息。這是作為編譯表單時(shí)的中間步驟來完成的。
表1
然后,表單編譯器116將經(jīng)編譯的表單儲(chǔ)存在數(shù)據(jù)存儲(chǔ)104中,以供運(yùn)行時(shí)使用。這由圖2中的框180指示。
圖3是基于服務(wù)器的運(yùn)行時(shí)環(huán)境182的一個(gè)示例的框圖。環(huán)境182說明性地包括服務(wù)器環(huán)境184、客戶端設(shè)備186和數(shù)據(jù)存儲(chǔ)188。圖3所示的示例示出了客戶端設(shè)備186生成用戶界面顯示190以供顯示用于用戶194的交互的表單192。
服務(wù)器環(huán)境184說明性地包括一個(gè)或多個(gè)處理器196、應(yīng)用服務(wù)器組件198、表單處理組件200,并且服務(wù)器環(huán)境184還可包括其他項(xiàng)202。數(shù)據(jù)存儲(chǔ)188說明性地儲(chǔ)存由應(yīng)用服務(wù)器組件198運(yùn)行的應(yīng)用所使用的表單的靜態(tài)表單表示204和服務(wù)器表示206。數(shù)據(jù)存儲(chǔ)188還可包括數(shù)據(jù)源208以及其他項(xiàng)210??蛻舳嗽O(shè)備186說明性地包括瀏覽器210,其包括表單渲染組件212??蛻舳嗽O(shè)備186還可包括處理器214、用戶界面組件216、顯示設(shè)備218,并且客戶端設(shè)備186還可包括其他項(xiàng)220。在更詳細(xì)描述環(huán)境182的總體操作之前,將首先提供簡要概覽。
應(yīng)用服務(wù)器組件198說明性地運(yùn)行使用由儲(chǔ)存在數(shù)據(jù)存儲(chǔ)188中的各種表示和數(shù)據(jù)表示的表單和數(shù)據(jù)的應(yīng)用(諸如業(yè)務(wù)系統(tǒng)應(yīng)用或其他應(yīng)用)。表單處理組件200說明性地處理對表單的請求??蛻舳藨?yīng)用組件213說明性地運(yùn)行由應(yīng)用服務(wù)器組件198伺服的應(yīng)用的客戶側(cè)部分。因此,用戶194可通過客戶端應(yīng)用213請求表單192的顯示。例如,用戶界面組件216本身或者在其他項(xiàng)的控制下說明性地在客戶端設(shè)備186上的顯示設(shè)備218上生成用戶界面顯示190。
當(dāng)用戶194請求表單192的呈現(xiàn)時(shí),瀏覽器210將該請求提供給服務(wù)器環(huán)境184。表單處理組件200檢索所請求的表單的靜態(tài)表單表示204,并將其直接提供給客戶端設(shè)備186。表單渲染組件212使用靜態(tài)表單表示來生成標(biāo)記語言、所請求的表單的可渲染版本。該表單的可渲染版本將說明性地是表單的完整渲染,將要運(yùn)行的關(guān)于表單的任何邏輯的結(jié)果越少,由應(yīng)用服務(wù)器組件198基于服務(wù)器表示206生成的行為和狀態(tài)信息(以及一些數(shù)據(jù)和數(shù)據(jù)綁定)就越少。服務(wù)器表示206被提供給應(yīng)用服務(wù)器組件198,在應(yīng)用服務(wù)器組件198處生成了其他信息,例如,運(yùn)行與表單相關(guān)聯(lián)的邏輯,獲得數(shù)據(jù)和數(shù)據(jù)綁定,獲得行為和狀態(tài)信息等。然后該附加信息被提供以形成渲染組件212,其中該附加信息與已經(jīng)由表單渲染組件212生成(或正在被生成)的表單的可渲染版本合并。一旦合并,整個(gè)表單就被瀏覽器210內(nèi)的表單渲染組件212渲染,以供向用戶194顯示。
圖4A和4B(統(tǒng)稱為圖4)示出了解說基于服務(wù)器的運(yùn)行時(shí)環(huán)境182的操作的一個(gè)示例的流程圖。服務(wù)器環(huán)境184首先接收訪問基于服務(wù)器的應(yīng)用的用戶輸入。這由圖4的框230指示。這可以采用認(rèn)證信息232或其他信息234的形式。
客戶端應(yīng)用組件213結(jié)合應(yīng)用服務(wù)器組件198隨后生成允許用戶194來控制并操縱基于服務(wù)器的應(yīng)用的用戶界面顯示190。在某一時(shí)刻,用戶194將提供請求給定表單192的顯示的輸入。接收這樣的輸入由圖4的流程圖中的框236指示。
該請求將說明性地由瀏覽器210提供至服務(wù)器環(huán)境184中的表單處理組件200。然后,表單處理組件200檢索所請求的表單的靜態(tài)表單表示204,并將其提供到客戶端設(shè)備186上的表單渲染組件212。表單處理組件200還說明性地獲得所請求的表單的服務(wù)器表示206,并且將服務(wù)器表示206提供給應(yīng)用服務(wù)器組件198,使得組件198能夠執(zhí)行獲得動(dòng)態(tài)信息所需的任何服務(wù)器側(cè)處理,該動(dòng)態(tài)信息被用來完整地渲染該表單,包括表單的當(dāng)前數(shù)據(jù)、狀態(tài)信息、行為信息等。檢索服務(wù)器表示206和靜態(tài)表單表示204并將它們提供給客戶端設(shè)備186中的服務(wù)器環(huán)境184分別由圖4中的框238所指示。
在圖4中的這一點(diǎn)上,在客戶端設(shè)備186和服務(wù)器環(huán)境184兩者上開始處理??蛻舳?86上的瀏覽器210中的表單渲染組件212接收所請求的表單的靜態(tài)表示。這由框240指示。然后,表單渲染組件212執(zhí)行靜態(tài)表示的任何必要的轉(zhuǎn)換,以獲得表單結(jié)構(gòu)的可渲染版本及其屬性。這由框242指示。此時(shí)在處理中生成的表單是該表單的完整工作版本,但其不包括由服務(wù)器提供的信息(如果有的話)。
同時(shí),請求由表單處理組件200發(fā)送到應(yīng)用服務(wù)器組件198,以請求任何附加的狀態(tài)或行為信息,并請求服務(wù)器組件198執(zhí)行與表單相關(guān)聯(lián)的任何邏輯并為所請求的表單獲得任何附加數(shù)據(jù)(如果存在的話)。在圖4中的框244指示在應(yīng)用服務(wù)器組件198處接收請求。然后,應(yīng)用服務(wù)器組件198執(zhí)行獲得該附加信息(如果有的話)所需的各種操作。這由框256指示。然后,應(yīng)用服務(wù)器組件198將數(shù)據(jù)、邏輯結(jié)果、行為和狀態(tài)信息等發(fā)送到在瀏覽器210中表單渲染組件212。這由框248指示。被生成并發(fā)送到表單渲染組件212的表單的服務(wù)器表示可以是具有與靜態(tài)表示相同的格式的描述符格式的表單的完整表示。因此,動(dòng)態(tài)信息(例如數(shù)據(jù)、狀態(tài)信息、行為信息、邏輯結(jié)果等)可被組件212標(biāo)識(shí)為增量并且作為增量被應(yīng)用。在另一示例中,從服務(wù)器發(fā)送的描述符可僅表示來自所請求表單的已創(chuàng)建的可渲染版本的增量(或變化)。在任一情況下,框250指示了在表單渲染組件212處接收來自服務(wù)器的該信息。
然后,表單渲染組件212利用從應(yīng)用服務(wù)器組件198接收的任何信息來增強(qiáng)所請求表單的已創(chuàng)建的可渲染版本。這是通過將該信息與已創(chuàng)建的表單合并來完成的,以便獲得經(jīng)更新的可視化和所請求的表單的狀態(tài)。這由框252指示。該合并說明性地通過將從服務(wù)器發(fā)送的動(dòng)態(tài)信息所獲得的增量應(yīng)用于已創(chuàng)建的表單來完成。然后,表單渲染組件212在瀏覽器210中渲染所請求的表單,以在用戶界面顯示190上顯示給用戶194。渲染表單由框254指示。
圖5A示出用戶界面顯示256的一個(gè)示例。用戶界面顯示256示出了上文參考圖2A和表1所描述的經(jīng)渲染的表單的示例。一旦為用戶194渲染所請求的表單,用戶就可以與該表單進(jìn)行交互(諸如通過填充字段、激活顯示的控件等)。表示這些用戶交互的信息可被傳送到應(yīng)用服務(wù)器組件198用于處理。例如,該信息可能表示一些用戶交互可能將調(diào)用進(jìn)一步的邏輯操作或運(yùn)行與表單相關(guān)聯(lián)的業(yè)務(wù)邏輯或其他代碼。該信息還可能表示用戶交互可能以其他方式調(diào)用服務(wù)器側(cè)處理。如果是這種情況,則處理返回至框246,在框246,應(yīng)用服務(wù)器組件198執(zhí)行由用戶交互觸發(fā)的處理。然后,應(yīng)用服務(wù)器組件198將該處理的結(jié)果發(fā)送回瀏覽器210中的渲染組件212,使得結(jié)果可被渲染。然而,將注意到,在一個(gè)示例中,修改以表示來自現(xiàn)有表單的變化的增量的形式而不是作為全新的表單表示被發(fā)送。以這種方式,表單渲染組件212可將增量應(yīng)用于表單的經(jīng)渲染版本,而不必重新計(jì)算表單的整個(gè)可渲染版本。在另一示例中,服務(wù)器表示表示整個(gè)表單,并且客戶端上的渲染組件212標(biāo)識(shí)差異(或增量),并將差異(或增量)應(yīng)用于已生成的表單的可渲染版本。接收用戶交互由圖4中的框258指示。
可以看出,將創(chuàng)作出的表單編譯成靜態(tài)表示以及其相應(yīng)的基于服務(wù)器的表示可被用來改進(jìn)表單渲染性能。當(dāng)瀏覽器210等待服務(wù)器應(yīng)用組件198運(yùn)行并執(zhí)行所有邏輯并且隨后將結(jié)果返回到瀏覽器210時(shí),瀏覽器210中的表單渲染組件212可開始使用該靜態(tài)表示來為客戶側(cè)上的表單創(chuàng)建文檔對象模型或其他結(jié)構(gòu)。這兩種類型的處理可并行執(zhí)行。因此,當(dāng)應(yīng)用服務(wù)器組件198返回表單的任何附加描述符時(shí),僅增量(在已經(jīng)作為可渲染表單生成的內(nèi)容與附加信息之間的變化)被應(yīng)用。描述可作為增量發(fā)送,或者該增量可在客戶端上被標(biāo)識(shí)。這提高了渲染性能。當(dāng)用戶與表單交互時(shí)也可以這樣做。
本討論提到了處理器和服務(wù)器。在一個(gè)實(shí)施例中,處理器和服務(wù)器包括具有相關(guān)聯(lián)的存儲(chǔ)器和時(shí)序電路系統(tǒng)(未分別示出)的計(jì)算機(jī)處理器。它們是它們所屬的系統(tǒng)或設(shè)備的功能部分,且由這些系統(tǒng)中的其他組件或項(xiàng)的功能來激活并促成這些功能。
同樣,討論了多個(gè)用戶界面顯示。它們可以采取各種各樣的不同形式且可具有布置于其上的各種各樣的不同用戶可致動(dòng)輸入機(jī)制。例如,用戶可致動(dòng)輸入機(jī)制可以是文本框、復(fù)選框、圖標(biāo)、鏈接、下拉菜單、搜索框,等等。例如,可使用點(diǎn)擊設(shè)備(諸如跟蹤球或鼠標(biāo))來致動(dòng)它們??墒褂糜布粹o、開關(guān)、操縱桿或鍵盤、拇指開關(guān)或拇指墊等等來致動(dòng)它們。還可使用虛擬鍵盤或其他虛擬致動(dòng)器來致動(dòng)它們。另外,在其上顯示它們的屏幕是觸敏屏的情況下,可以使用觸摸手勢來致動(dòng)它們。同樣,在顯示它們的設(shè)備具有語音識(shí)別組件的情況下,可以使用語音命令來致動(dòng)它們。
還討論了數(shù)個(gè)數(shù)據(jù)存儲(chǔ)。將注意,它們可各自被分解成多個(gè)數(shù)據(jù)存儲(chǔ)。它們?nèi)靠晌挥谠L問它們的系統(tǒng)的本地,全部可以是遠(yuǎn)程的,或一些可以在本地而其他在遠(yuǎn)程。本文構(gòu)想了所有這些配置。
同樣,附圖示出了具有歸屬于每一框的功能的多個(gè)框。將注意,可以使用更少的框,使得功能由更少的組件來執(zhí)行。同樣,可以使用更多框,其中功能被分布在更多組件之間。
圖6是圖3中所示的運(yùn)行時(shí)環(huán)境182的框圖,只是其各元素被置于云計(jì)算架構(gòu)500中。云計(jì)算提供了不要求終端用戶知曉交付服務(wù)的系統(tǒng)的物理位置或配置的計(jì)算、軟件、數(shù)據(jù)訪問和存儲(chǔ)服務(wù)。在各個(gè)實(shí)施例中,云計(jì)算通過諸如因特網(wǎng)之類的廣域網(wǎng)使用合適的協(xié)議來交付服務(wù)。例如,云計(jì)算提供者通過廣域網(wǎng)交付應(yīng)用,并且它們可以通過web瀏覽器或任何其他計(jì)算組件被訪問。架構(gòu)100的軟件或組件以及相對應(yīng)的數(shù)據(jù)可被存儲(chǔ)在遠(yuǎn)程位置處的服務(wù)器上。云計(jì)算環(huán)境中的計(jì)算資源可以被整合在遠(yuǎn)程數(shù)據(jù)中心位置處或者它們可以是分散的。云計(jì)算基礎(chǔ)結(jié)構(gòu)可以通過共享數(shù)據(jù)中心來交付服務(wù),即使在用戶看來它們是單個(gè)訪問點(diǎn)。因此,在此所述的組件和功能可以從使用云計(jì)算架構(gòu)的遠(yuǎn)程位置處的服務(wù)提供者來提供。替代地,它們可以從常規(guī)的服務(wù)器中提供,或者它們可以直接地或以其他方式安裝在客戶端設(shè)備上。
本說明書旨在包括公共云計(jì)算和私有云計(jì)算兩者。云計(jì)算(公共和私有兩者)提供了基本無縫的資源聯(lián)營以及對管理和配置底層硬件基礎(chǔ)結(jié)構(gòu)的降低的需求。
公共云由供應(yīng)商管理,并且通常支持使用同一基礎(chǔ)結(jié)構(gòu)的多個(gè)消費(fèi)者。此外,與私有云相反,公共云能夠?qū)⒔K端用戶從管理硬件中釋放出來。私有云可由機(jī)構(gòu)本身管理,并且基礎(chǔ)結(jié)構(gòu)通常不與其他機(jī)構(gòu)共享。該機(jī)構(gòu)在某種程度上仍然維護(hù)著硬件,諸如安裝和維修等。
在圖6中所示的實(shí)施例中,一些項(xiàng)與圖3中所示的那些是類似的,并且它們被類似地編號。圖6具體地示出服務(wù)器環(huán)境184和數(shù)據(jù)存儲(chǔ)188可位于云502(可以是公共的、私有的或者其中某些部分是公共的而某些部分是私有的組合)中。因此,用戶194使用用戶設(shè)備186通過云502來訪問那些系統(tǒng)。
圖6還描繪了云架構(gòu)的另一實(shí)施例。圖6示出還構(gòu)想了環(huán)境182的某些元素可被置于云502中而其他元素沒有被置于云502中。作為示例,數(shù)據(jù)存儲(chǔ)188可被置于云502的外部,并且通過云502來被訪問。在另一實(shí)施例中,表單處理組件200也可在云502的外部。無論它們位于哪里,它們都可直接由設(shè)備186通過網(wǎng)絡(luò)(廣域網(wǎng)或局域網(wǎng))訪問,它們可由服務(wù)主存在遠(yuǎn)程站點(diǎn)處,或者它們可作為通過云來提供或通過駐留在云中的連接服務(wù)來訪問的服務(wù)。本文構(gòu)想了所有這些架構(gòu)。
還要注意,環(huán)境182或其部分可被置于各種不同的設(shè)備上。這些設(shè)備中的某些包括:服務(wù)器、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、或其他移動(dòng)設(shè)備,諸如掌上計(jì)算機(jī)、蜂窩電話、智能電話、多媒體播放器、個(gè)人數(shù)字助理等。
圖7是可被用作其中可部署本發(fā)明的系統(tǒng)(或其部分)的用戶或客戶的手持式設(shè)備16的手持式或移動(dòng)計(jì)算設(shè)備的一個(gè)說明性實(shí)施例的簡化框圖。圖8-9是手持式或移動(dòng)設(shè)備的示例。
圖7提供了客戶端設(shè)備16的組件的大體框圖,該客戶端設(shè)備16可以運(yùn)行環(huán)境100或182的組件或者與這些環(huán)境交互、或二者。在設(shè)備16中,提供了通信鏈路13,該通信鏈路允許手持設(shè)備與其他計(jì)算設(shè)備通信,并且在一些實(shí)施例中提供用于諸如通過掃描來自動(dòng)接收信息的信道。通信鏈路13的示例包括:紅外端口、串行/USB端口、諸如以太網(wǎng)端口之類的電纜網(wǎng)絡(luò)端口、以及允許通過一個(gè)或多個(gè)通信協(xié)議的通信的無線網(wǎng)絡(luò)端口,所述通信協(xié)議包括作為用于提供對網(wǎng)絡(luò)的蜂窩接入的無線服務(wù)的通用分組無線服務(wù)(GPRS)、LTE、HSPA、HSPA+、以及其他3G和4G無線電協(xié)議、1Xrtt和短消息服務(wù),并包括提供對網(wǎng)絡(luò)的本地?zé)o線連接的802.11和802.11b(WiFi)協(xié)議、和藍(lán)牙協(xié)議。
根據(jù)其他實(shí)施例,應(yīng)用或系統(tǒng)被容納在連接到可移動(dòng)安全數(shù)字(SD)卡接口15的SD卡上。SD卡接口15和通信鏈路13沿總線19與處理器17(也可實(shí)現(xiàn)來自圖1和3的處理器110、196或214)進(jìn)行通信,該總線19還連接到存儲(chǔ)器21和輸入/輸出(I/O)組件23、以及時(shí)鐘25和定位系統(tǒng)27。
在一個(gè)實(shí)施例中,提供了I/O組件23以促成輸入和輸出操作。針對設(shè)備16的各個(gè)實(shí)施例的I/O組件23可以包括:輸入組件,比如按鈕、觸摸傳感器、多點(diǎn)觸摸傳感器、光學(xué)或視頻傳感器、語音傳感器、觸摸屏、鄰近傳感器、話筒、傾斜傳感器以及重力開關(guān);以及輸出組件,比如顯示設(shè)備、揚(yáng)聲器和或打印機(jī)端口。也可以使用其他I/O組件23。
時(shí)鐘25說明性地包括輸出時(shí)間和日期的真實(shí)時(shí)間時(shí)鐘組件。時(shí)鐘還可以說明性地為處理器17提供時(shí)序功能。
定位系統(tǒng)27說明性地包括輸出設(shè)備16的當(dāng)前地理位置的組件。這例如可以包括全球定位系統(tǒng)(GPS)接收機(jī)、LORAN系統(tǒng)、航位推算系統(tǒng)、蜂窩三角測量系統(tǒng)或者其他定位系統(tǒng)。這例如還可以包括生成所期望的地圖、導(dǎo)航線路和其他地理功能的測繪軟件或?qū)Ш杰浖?/p>
存儲(chǔ)器21存儲(chǔ)操作系統(tǒng)29、網(wǎng)絡(luò)設(shè)置31、應(yīng)用33、應(yīng)用配置設(shè)置35、數(shù)據(jù)存儲(chǔ)37、通信驅(qū)動(dòng)程序39以及通信配置設(shè)置41。存儲(chǔ)器21可以包括所有類型的有形易失性和非易失性計(jì)算機(jī)可讀存儲(chǔ)器設(shè)備。其還可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)(下面描述)。存儲(chǔ)器21存儲(chǔ)計(jì)算機(jī)可讀指令,所述指令在被處理器17執(zhí)行時(shí)致使處理器根據(jù)所述指令執(zhí)行計(jì)算機(jī)實(shí)現(xiàn)的步驟或功能。類似地,設(shè)備16可具有可運(yùn)行各種業(yè)務(wù)應(yīng)用的客戶端應(yīng)用組件213和瀏覽器210。處理器17可以也被其他組件激活以促成它們的功能性。
網(wǎng)絡(luò)設(shè)置31的示例包括諸如代理信息、因特網(wǎng)連接信息以及測繪之類的事物。應(yīng)用配置設(shè)置35包括為特定企業(yè)或用戶定制應(yīng)用的設(shè)置。通信配置設(shè)置41提供了用于與其他計(jì)算機(jī)進(jìn)行通信的參數(shù),并且包括諸如GPRS參數(shù)、SMS參數(shù)、連接用戶名和口令之類的項(xiàng)目。
應(yīng)用33可以是之前已經(jīng)存儲(chǔ)在設(shè)備16上的應(yīng)用或是在使用期間安裝的應(yīng)用,但是這些應(yīng)用可以是操作系統(tǒng)29的一部分,或者也可以在設(shè)備16之外被托管。
圖8示出其中設(shè)備16是平板計(jì)算機(jī)600的一個(gè)實(shí)施例。在圖8中,計(jì)算機(jī)600被示為具有用戶界面顯示屏602。屏幕602可以是觸摸屏(使得來自用戶手指的觸摸姿勢可以用于與應(yīng)用交互)或者啟用筆的界面,其接收來自筆或指示筆的輸入。其還可以使用屏幕上虛擬鍵盤。當(dāng)然,其還例如可以通過諸如無線鏈路或USB端口之類的合適的附連機(jī)制附連到鍵盤或其他用戶輸入設(shè)備。計(jì)算機(jī)600還可以說明性地接收語音輸入。
還可使用設(shè)備16的附加示例。例如,設(shè)備16可以是智能電話或移動(dòng)電話45。電話可包括:一組小鍵盤,其用于撥打電話號碼;顯示器,其能夠顯示包括應(yīng)用圖像、圖標(biāo)、網(wǎng)頁、照片和視頻在內(nèi)的圖像;以及控制按鈕,其用于選擇在顯示器上示出的項(xiàng)目。電話可包括天線,該天線用于接收諸如通用分組無線服務(wù)(GPRS)和1Xrtt之類的蜂窩電話信號以及短消息服務(wù)(SMS)信號。在一些示例中,所述電話還包括容納安全數(shù)字(SD)卡的SD卡槽。
該設(shè)備也可以是個(gè)人數(shù)字助理(PDA)或多媒體播放器或平板計(jì)算設(shè)備等等(在此稱為PDA)。PDA可包括電感屏,所述電感屏感測指示筆(或其他指示器,諸如用戶的手指)在該指示筆被置于屏幕之上時(shí)的位置。這允許用戶在屏幕上選擇、突出顯示和移動(dòng)項(xiàng)目以及繪圖和書寫。PDA還可包括多個(gè)用戶輸入鍵或按鈕,其允許用戶將顯示器上所顯示的菜單選項(xiàng)或其他顯示選項(xiàng)滾屏,并且允許用戶在沒有接觸顯示器的情況下改變應(yīng)用或選擇用戶輸入功能。盡管未被示出,但是PDA可以包括允許與其他計(jì)算機(jī)進(jìn)行無線通信的內(nèi)置天線和紅外發(fā)射機(jī)/接收機(jī)、以及允許與其他計(jì)算設(shè)備的硬件連接的連接端口。這樣的硬件連接通常是通過經(jīng)由串行或USB端口連接到其他計(jì)算機(jī)的支架來完成的。因此,這些連接是非網(wǎng)絡(luò)連接。
圖9是智能電話71的一個(gè)示例。智能電話71具有顯示圖標(biāo)或磁貼或其他用戶輸入機(jī)制75的觸敏顯示器73。機(jī)制75可由用戶用來運(yùn)行應(yīng)用、進(jìn)行呼叫、執(zhí)行數(shù)據(jù)傳輸操作,等等。一般而言,智能電話71被構(gòu)建在移動(dòng)操作系統(tǒng)上且提供比功能電話更高級的計(jì)算能力和連接性。
注意,設(shè)備16的其他形式是可能的。
圖10是可在環(huán)境100和182中使用的計(jì)算環(huán)境的一個(gè)示例。參考圖10,用于實(shí)現(xiàn)一些實(shí)施例的示例系統(tǒng)包括計(jì)算機(jī)810形式的通用計(jì)算設(shè)備。計(jì)算機(jī)810的組件可包括,但不限于,處理單元820(可以包括處理器110、196或214)、系統(tǒng)存儲(chǔ)器830和將包括系統(tǒng)存儲(chǔ)器在內(nèi)的各種系統(tǒng)組件耦合至處理單元820的系統(tǒng)總線821。系統(tǒng)總線821可以是若干類型的總線結(jié)構(gòu)中的任一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線和使用各種總線架構(gòu)中的任一種的局部總線。作為示例而非限制,這樣的架構(gòu)包括工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)總線、微通道架構(gòu)(MCA)總線、增強(qiáng)型ISA(EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線和外圍部件互連(PCI)總線(也稱為夾層(Mezzanine)總線)。參考圖1描述的存儲(chǔ)器和程序可被部署在圖10的對應(yīng)部分中。
計(jì)算機(jī)810通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是能由計(jì)算機(jī)810訪問的任何可用介質(zhì),而且包含易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)不同于且不包括已調(diào)制數(shù)據(jù)信號或載波。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括硬件存儲(chǔ)介質(zhì),該硬件存儲(chǔ)介質(zhì)包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)的信息的任何方法和技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其他存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其他光盤存儲(chǔ)、磁帶盒、磁帶、磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備、或能用于存儲(chǔ)所需信息且可以由計(jì)算機(jī)810訪問的任何其他介質(zhì)。通信介質(zhì)通常具體化計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或傳輸機(jī)制中的其他數(shù)據(jù),并包括任何信息遞送介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”是指使得以在信號中編碼信息的方式來設(shè)定或改變其一個(gè)或多個(gè)特征的信號。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接線連接之類的有線介質(zhì),以及諸如聲學(xué)、RF、紅外及其他無線介質(zhì)之類的無線介質(zhì)。上述任何組合也應(yīng)該包括在計(jì)算機(jī)可讀的介質(zhì)范圍內(nèi)。
系統(tǒng)存儲(chǔ)器830包括易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì),如只讀存儲(chǔ)器(ROM)831和隨機(jī)存取存儲(chǔ)器(RAM)832。包含諸如在啟動(dòng)期間幫助在計(jì)算機(jī)810內(nèi)的元件之間傳輸信息的基本例程的基本輸入/輸出系統(tǒng)833(BIOS)通常存儲(chǔ)在ROM 831中。RAM 832通常包含處理單元820可立即訪問和/或當(dāng)前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非限制,圖10例示出了操作系統(tǒng)834、應(yīng)用程序835、其他程序模塊836和程序數(shù)據(jù)837。
計(jì)算機(jī)810還可以包括其他可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。僅作為示例,圖10示出了從不可移動(dòng)、非易失性磁性介質(zhì)讀取或向其寫入的硬盤驅(qū)動(dòng)器841和從諸如CD ROM或其他光學(xué)介質(zhì)等可移動(dòng)、非易失性光盤856讀取或向其寫入的光盤驅(qū)動(dòng)器855??稍谑纠圆僮鳝h(huán)境中使用的其他可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅(qū)動(dòng)器841通常通過諸如接口840等不可移動(dòng)存儲(chǔ)器接口連接到系統(tǒng)總線821,而光盤驅(qū)動(dòng)器855則通常由諸如接口850等可移動(dòng)存儲(chǔ)器接口連接至系統(tǒng)總線821。
作為替換或補(bǔ)充,本文所述的功能可至少部分地由一個(gè)或多個(gè)硬件邏輯組件來執(zhí)行。例如、但非限制,可使用的硬件邏輯組件的說明性類型包括現(xiàn)場可編程門陣列(FPGA)、程序?qū)S玫募呻娐?ASIC)、程序?qū)S玫臉?biāo)準(zhǔn)產(chǎn)品(ASSP)、片上系統(tǒng)系統(tǒng)(SOC)、復(fù)雜可編程邏輯器件(CPLD)、等等。
上文討論并在圖10中示出的驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)810提供了對計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的存儲(chǔ)。例如,在圖10中,硬盤驅(qū)動(dòng)器841被示為存儲(chǔ)操作系統(tǒng)844、應(yīng)用程序845、其他程序模塊846和程序數(shù)據(jù)847。注意,這些組件可與操作系統(tǒng)834、應(yīng)用程序835、其他程序模塊836和程序數(shù)據(jù)837相同,也可與它們不同。在此操作系統(tǒng)844、應(yīng)用程序845、其他程序模塊846以及程序數(shù)據(jù)847被給予了不同的編號,以至少說明它們是不同的副本。
用戶可以通過諸如鍵盤862、話筒863以及諸如鼠標(biāo)、跟蹤球或觸摸墊等定點(diǎn)設(shè)備861等輸入設(shè)備來將命令和信息輸入至計(jì)算機(jī)810中。其他輸入設(shè)備(未示出)可以包括操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等。這些以及其他輸入設(shè)備通常通過耦合到系統(tǒng)總線的用戶輸入接口860連接到處理單元820,但也可通過諸如并行端口、游戲端口或通用串行總線(USB)之類的其他接口和總線結(jié)構(gòu)來連接。視覺顯示器891或其他類型的顯示設(shè)備也經(jīng)由諸如視頻接口890之類的接口連接至系統(tǒng)總線821。除了監(jiān)視器以外,計(jì)算機(jī)還可包括諸如揚(yáng)聲器897和打印機(jī)896之類的其他外圍輸出設(shè)備,它們可通過輸出外圍接口895來連接。
計(jì)算機(jī)810使用到諸如遠(yuǎn)程計(jì)算機(jī)880等一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)880可以是個(gè)人計(jì)算機(jī)、手持設(shè)備、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其他常見的網(wǎng)絡(luò)節(jié)點(diǎn),且一般包括以上關(guān)于計(jì)算機(jī)810描述的多個(gè)或所有的元件。圖10中所示的邏輯連接包括局域網(wǎng)(LAN)871和廣域網(wǎng)(WAN)873,但也可以包括其他網(wǎng)絡(luò)。此類聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍的計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。
當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)810通過網(wǎng)絡(luò)接口或適配器870連接到LAN 871。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)810通常包括調(diào)制解調(diào)器872或用于通過諸如因特網(wǎng)等WAN 873建立通信的其他手段。調(diào)制解調(diào)器872可以是內(nèi)置的或外置的,可經(jīng)由用戶輸入接口860或其他適當(dāng)?shù)臋C(jī)制連接到系統(tǒng)總線821。在聯(lián)網(wǎng)環(huán)境中,相關(guān)于計(jì)算機(jī)810所示的程序模塊或其部分可被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例而非限制,圖10示出了遠(yuǎn)程應(yīng)用程序885駐留在遠(yuǎn)程計(jì)算機(jī)880上。應(yīng)當(dāng)理解,所示的網(wǎng)絡(luò)連接是示例性的,并且可使用在計(jì)算機(jī)之間建立通信鏈路的其他手段。
還應(yīng)注意,本文描述的不同實(shí)施例可以按不同的方式來組合。即,一個(gè)或多個(gè)實(shí)施例的各部分可以與一個(gè)或多個(gè)其他實(shí)施例的各部分組合在一起。本文中構(gòu)想了所有這些。
示例1是一種計(jì)算系統(tǒng),包括:
顯示設(shè)備;以及
在客戶端設(shè)備上的表單渲染組件,所述表單渲染組件被配置成從服務(wù)器獲得表示所述表單上的顯示元素的結(jié)構(gòu)的表單的靜態(tài)表示,生成所述表單的可渲染表示,將從所述服務(wù)器接收到的所述表單的動(dòng)態(tài)信息合并到所述表單的可渲染表示中以獲得表單可視化,并且在所述顯示設(shè)備上渲染所述表單可視化。
示例2是任何以及所有前述示例的計(jì)算系統(tǒng),其中所述表單渲染組件被配置成接收所述動(dòng)態(tài)信息,并且在合并所述動(dòng)態(tài)信息之前,將所述可渲染表示與所述動(dòng)態(tài)信息之間的差異應(yīng)用于所述可渲染表示以獲得所述表單可視化。
示例3是任何以及所有前述示例的計(jì)算系統(tǒng),其中所述表單渲染組件接收所述動(dòng)態(tài)信息作為所述表單的服務(wù)器表示,并且標(biāo)識(shí)要應(yīng)用于所述可渲染表示的差異。
示例4是任何以及所有前述示例的計(jì)算系統(tǒng),其中所述表單渲染組件從所述服務(wù)器接收具有由所述服務(wù)器標(biāo)識(shí)的差異的所述動(dòng)態(tài)信息。
示例5是任何以及所有前述示例的計(jì)算系統(tǒng),其中所述表單渲染組件從所述靜態(tài)表示生成所述表單的可渲染表示作為沒有所述動(dòng)態(tài)信息的所述表單的功能表示。
示例6是任何以及所有前述示例的計(jì)算系統(tǒng),其中所述表單渲染組件包括所述客戶端設(shè)備上的瀏覽器。
示例7是任何以及所有前述示例的計(jì)算系統(tǒng),且進(jìn)一步包括:
客戶端應(yīng)用組件,所述客戶端應(yīng)用組件被配置成接收請求顯示表單的用戶輸入,并且向所述服務(wù)器發(fā)送請求以獲得所述表單的靜態(tài)表示,并向所述服務(wù)器發(fā)送請求以獲得所述動(dòng)態(tài)信息。
示例8是一種計(jì)算系統(tǒng),包括:
在服務(wù)器上的應(yīng)用服務(wù)器組件,所述應(yīng)用服務(wù)器組件被配置成從客戶端接收請求表單的客戶端請求,并且作為響應(yīng)向所述客戶端發(fā)送所述表單的靜態(tài)表示;以及
在所述服務(wù)器上的表單處理組件,所述表單處理組件被配置成基于所述客戶端請求來生成所述表單的動(dòng)態(tài)信息,并且將所述動(dòng)態(tài)信息與所述靜態(tài)表示分開地發(fā)送到所述客戶端。
示例9是任何以及所有前述示例的計(jì)算系統(tǒng),其中所述應(yīng)用服務(wù)器組件被配置成以描述所述表單的功能表示的描述符格式發(fā)送所述表單的靜態(tài)表示。
示例10是任何以及所有前述示例的計(jì)算系統(tǒng),其中所述表單處理組件被配置成以所述描述符格式來生成所述動(dòng)態(tài)信息。
示例11是任何以及所有前述示例的計(jì)算系統(tǒng),其中所述表單處理組件被配置成獲得不同于所述表單的靜態(tài)表示的所述表單的服務(wù)器表示,并且從所述服務(wù)器表示生成所述動(dòng)態(tài)信息。
示例12是如權(quán)利要求11所述的計(jì)算系統(tǒng),其中所述表單處理組件被配置成通過獲得填充所述表單的數(shù)據(jù)來生成所述動(dòng)態(tài)信息。
示例13是任何以及所有前述示例的計(jì)算系統(tǒng),其中所述表單處理組件被配置成生成所述動(dòng)態(tài)信息以包括指示所述表單上的控件的狀態(tài)的表單狀態(tài)信息。
示例14是任何以及所有前述示例的計(jì)算系統(tǒng),其中所述表單處理組件被配置成通過運(yùn)行與所述表單相對應(yīng)的運(yùn)行時(shí)邏輯來生成所述動(dòng)態(tài)信息,以獲得邏輯結(jié)果。
示例14是一種方法,包括:
在開發(fā)系統(tǒng)中接收指示定義表單的元數(shù)據(jù)的表單創(chuàng)作輸入;
基于所述元數(shù)據(jù)來生成所述表單的靜態(tài)表示,所述表單的靜態(tài)表示包括指示所述表單上的控件結(jié)構(gòu)的結(jié)構(gòu)信息和指示所述表單的屬性的屬性信息;以及
基于所述元數(shù)據(jù)來與所述靜態(tài)表示分開地生成所述表單的服務(wù)器表示,所述服務(wù)器表示指示所述表單的動(dòng)態(tài)信息。
示例15是任何以及全部前述示例的方法,并且進(jìn)一步包括:
接收編譯用戶輸入并且響應(yīng)于編譯用戶輸入來生成所述靜態(tài)和服務(wù)器表示。
示例16是任何以及全部前述示例的方法,并且進(jìn)一步包括:
在數(shù)據(jù)存儲(chǔ)中保存所述靜態(tài)和服務(wù)器表示以用于運(yùn)行時(shí)訪問。
示例17是任何以及全部前述示例的方法,其中生成所述靜態(tài)表示包括:
反射元數(shù)據(jù)以標(biāo)識(shí)所述結(jié)構(gòu)信息和所述屬性信息。
示例18是任何以及全部前述示例的方法,其中生成所述靜態(tài)表示包括:
基于所述靜態(tài)表示,利用足夠用于渲染所述表單的功能版本的信息來生成所述靜態(tài)表示。
示例19是任何以及所有前述示例的方法,其中生成所述靜態(tài)表示包括生成描述符格式的所述靜態(tài)表示,并且其中生成所述服務(wù)器表示包括生成描述符格式的所述服務(wù)器表示。
示例20是任何以及全部前述示例的方法,并且進(jìn)一步包括:
基于所述靜態(tài)表示,在所述開發(fā)系統(tǒng)中顯示所述表單的表單預(yù)覽。
盡管用結(jié)構(gòu)特征和/或方法動(dòng)作專用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于上述具體特征或動(dòng)作。更確切而言,上述具體特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式公開的。