專利名稱:確認(rèn)流水線的制作方法
確認(rèn)流水線背景正日益大量地開發(fā)業(yè)務(wù)應(yīng)用來提高業(yè)務(wù)生產(chǎn)力。一種示例類型的業(yè)務(wù)應(yīng)用是業(yè)務(wù)線(LOB)應(yīng)用。LOB應(yīng)用是被配置成服務(wù)于ー個或多個特定業(yè)務(wù)要求的資源。例如,LOB系統(tǒng)可以執(zhí)行記賬、訂單處理、供應(yīng)鏈管理、資源規(guī)劃、數(shù)據(jù)庫管理、和/或其他企業(yè)相關(guān)功倉^:。許多業(yè)務(wù)應(yīng)用(包括LOB應(yīng)用)被實(shí)現(xiàn)在客戶機(jī)-服務(wù)器計(jì)算機(jī)系統(tǒng)中。在這樣的系統(tǒng)中,用戶可在客戶機(jī)計(jì)算機(jī)處與業(yè)務(wù)應(yīng)用進(jìn)行交互,并且該業(yè)務(wù)應(yīng)用可將相關(guān)數(shù)據(jù)存儲位于在服務(wù)器處的遠(yuǎn)程數(shù)據(jù)庫處。業(yè)務(wù)應(yīng)用可被實(shí)現(xiàn)在多層(即“η層”)體系結(jié)構(gòu)中,其中演示、應(yīng)用處理、和數(shù)據(jù)管理過程在邏輯上跨客戶機(jī)-服務(wù)器計(jì)算機(jī)系統(tǒng)來分布。許多業(yè)務(wù)應(yīng)用實(shí)現(xiàn)確保數(shù)據(jù)完整性的業(yè)務(wù)規(guī)則(B卩“確認(rèn)規(guī)則”)。在客戶機(jī)-服務(wù)器計(jì)算機(jī)系統(tǒng)中實(shí)施業(yè)務(wù)規(guī)則是ー個復(fù)雜的問題。在多層體系結(jié)構(gòu)中操作的業(yè)務(wù)應(yīng)用的開發(fā)人員通常難以在該體系結(jié)構(gòu)中配置業(yè)務(wù)規(guī)則以使得數(shù)據(jù)完整性和數(shù)據(jù)安全性得到實(shí)施。
發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容以便以簡化形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的ー些概念。本發(fā)明內(nèi)容并不_在標(biāo)識所要求保護(hù)主題的關(guān)鍵特征或必要特征,也不_在用于限制所要求保護(hù)主題的范圍。提供了用于在客戶機(jī)-服務(wù)器體系結(jié)構(gòu)中配置確認(rèn)規(guī)則的技術(shù)和用于實(shí)施這些確認(rèn)規(guī)則的技木。開發(fā)人員將確認(rèn)規(guī)則與應(yīng)用的數(shù)據(jù)輸入域進(jìn)行關(guān)聯(lián)。確認(rèn)規(guī)則被配置成對與應(yīng)用進(jìn)行交互的用戶所輸入的數(shù)據(jù)進(jìn)行評估。確認(rèn)規(guī)則被整合到應(yīng)用中,以在應(yīng)用執(zhí)行的各所需點(diǎn)處執(zhí)行。在應(yīng)用的執(zhí)行期間,可存在著用于在客戶機(jī)處評估確認(rèn)規(guī)則的客戶機(jī)側(cè)規(guī)則引擎,以及可存在著用于在服務(wù)器處評估確認(rèn)規(guī)則的服務(wù)器側(cè)規(guī)則引擎??蛻魴C(jī)側(cè)規(guī)則引擎和服務(wù)器側(cè)規(guī)則引擎可被配置成以異步的方式來評估確認(rèn)規(guī)則。在ー個示例實(shí)現(xiàn)中,提供了ー種用于客戶機(jī)-服務(wù)器應(yīng)用的開發(fā)工具中的方法。使開發(fā)人員能夠開發(fā)應(yīng)用。使開發(fā)人員能夠?qū)?yīng)用的顯示屏配置成具有使客戶機(jī)處的用戶能夠輸入要被存儲在服務(wù)器處能訪問的數(shù)據(jù)庫中的數(shù)據(jù)的用戶界面元素。使開發(fā)人員能夠輸入被配置成用來在客戶機(jī)處和服務(wù)器處確認(rèn)數(shù)據(jù)的規(guī)則。該規(guī)則被整合到應(yīng)用的代碼中。在另ー實(shí)現(xiàn)中,提供了用于確認(rèn)客戶機(jī)-服務(wù)器環(huán)境中的數(shù)據(jù)的方法。使用戶能夠在客戶機(jī)處執(zhí)行ー應(yīng)用。該應(yīng)用的顯示屏被顯示在客戶機(jī)處,它包括能夠從用戶接收數(shù)據(jù)的用戶界面元素。在客戶機(jī)處根據(jù)客戶機(jī)側(cè)規(guī)則執(zhí)行對由用戶界面元素接收到的數(shù)據(jù)的第一確認(rèn)。如果從用戶接收到的數(shù)據(jù)根據(jù)客戶機(jī)側(cè)規(guī)則未被確認(rèn)為有效,則在顯示屏中顯示確認(rèn)錯誤。如果從用戶接收到的數(shù)據(jù)根據(jù)客戶機(jī)側(cè)規(guī)則被確認(rèn)為有效,則使用戶能夠與顯示屏進(jìn)行交互以嘗試保存該數(shù)據(jù)。如果用戶與顯示屏進(jìn)行交互以嘗試保存數(shù)據(jù),則將該 數(shù)據(jù)從客戶機(jī)傳送到服務(wù)器。在服務(wù)器處根據(jù)與客戶機(jī)側(cè)規(guī)則相對應(yīng)的服務(wù)器側(cè)規(guī)則來執(zhí)行對數(shù)據(jù)的第二確認(rèn)。如果從用戶接收到的數(shù)據(jù)根據(jù)服務(wù)器側(cè)規(guī)則未被確認(rèn)為有效,則在顯示屏中顯示確認(rèn)錯誤。如果從用戶接收到的數(shù)據(jù)根據(jù)服務(wù)器側(cè)規(guī)則被確認(rèn)為有效,則將所述數(shù)據(jù)持久存儲到可在所述服務(wù)器處訪問的數(shù)據(jù)庫中。注意,在又一些實(shí)現(xiàn)中,如開發(fā)人員所配置的,對用戶輸入到顯示屏的數(shù)據(jù)的確認(rèn)可僅按照客戶機(jī)側(cè)規(guī)則、僅按照服務(wù)器側(cè)規(guī)則執(zhí)行。在一些實(shí)現(xiàn)中,對用戶輸入的數(shù)據(jù)的確認(rèn)可異步地執(zhí)行。在又ー實(shí)現(xiàn)中,提供了用于數(shù)據(jù)確認(rèn)的系統(tǒng)。該系統(tǒng)包括應(yīng)用、第一規(guī)則引擎、以及第ニ規(guī)則引擎。應(yīng)用被配置成在客戶機(jī)上執(zhí)行。應(yīng)用被配置成在客戶機(jī)處顯示包括能夠從用戶接收數(shù)據(jù)的用戶界面元素的顯示屏。第一規(guī)則引擎被配置成在客戶機(jī)上執(zhí)行,并且被配置成在客戶機(jī)處根據(jù)客戶機(jī)側(cè)規(guī)則來執(zhí)行對由用戶界面元素接收到的數(shù)據(jù)的第一確認(rèn)。第二規(guī)則引擎被配置成在服務(wù)器處執(zhí)行。應(yīng)用被配置成如果第一規(guī)則引擎指示數(shù)據(jù)根據(jù)客戶機(jī)側(cè)規(guī)則未被確認(rèn)為有效,則在顯示屏中顯示確認(rèn)錯誤。應(yīng)用被配置成如果從用戶 接收到的數(shù)據(jù)根據(jù)客戶機(jī)側(cè)規(guī)則被確認(rèn)為有效,則使用戶能夠嘗試保存該數(shù)據(jù)。如果用戶嘗試保存數(shù)據(jù),則將該數(shù)據(jù)從客戶機(jī)傳送到服務(wù)器。第二規(guī)則引擎被配置成在服務(wù)器處根據(jù)與客戶機(jī)側(cè)規(guī)則相對應(yīng)的服務(wù)器側(cè)規(guī)則執(zhí)行對數(shù)據(jù)的第二確認(rèn)。應(yīng)用被配置成如果數(shù)據(jù)根據(jù)服務(wù)器側(cè)規(guī)則未被確認(rèn)為有效,則在顯示屏中顯示確認(rèn)錯誤。如果數(shù)據(jù)根據(jù)服務(wù)器側(cè)規(guī)則被確認(rèn)為有效,則將該數(shù)據(jù)持久存儲到可在服務(wù)器處訪問的數(shù)據(jù)庫中。本文還描述了計(jì)算機(jī)系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品(存儲在計(jì)算機(jī)可讀介質(zhì)中),它們能夠執(zhí)行和/或啟用以上描述的和在本文其他地方描述的方法,包括在客戶機(jī)-服務(wù)器體系結(jié)構(gòu)中配置確認(rèn)規(guī)則、實(shí)施這些確認(rèn)規(guī)則、以及用于實(shí)現(xiàn)本文描述的其他實(shí)施例。下面將參考各個附圖,詳細(xì)描述本發(fā)明的進(jìn)ー步特點(diǎn)和優(yōu)點(diǎn),以及本發(fā)明的各實(shí)施例的結(jié)構(gòu)和操作。值得注意的是,本發(fā)明不僅限于此處所描述的特定實(shí)施例。本文呈現(xiàn)這些實(shí)施例僅用于說明性的用途?;诒疚乃拿枋?,其他實(shí)施例對于相關(guān)領(lǐng)域的技術(shù)人員將是顯而易見的。附圖簡述結(jié)合到本說明書并構(gòu)成本說明書的一部分的附圖示出了本發(fā)明,且與描述一起,進(jìn)ー步用于說明本發(fā)明的原理,并允許那些相關(guān)領(lǐng)域技術(shù)人員實(shí)施和使用本發(fā)明。圖I示出客戶機(jī)-服務(wù)器計(jì)算機(jī)系統(tǒng)的框圖。圖2示出圖I的客戶機(jī)-服務(wù)器計(jì)算機(jī)系統(tǒng)的一部分,還包括數(shù)據(jù)庫。圖3示出根據(jù)ー示例實(shí)施例的配備有確認(rèn)流水線的客戶機(jī)-服務(wù)器計(jì)算機(jī)系統(tǒng)的框圖。圖4示出根據(jù)ー示例實(shí)施例的提供用于在客戶機(jī)-服務(wù)器體系結(jié)構(gòu)中配置規(guī)則的過程的流程圖。圖5不出根據(jù)ー不例實(shí)施例的用于配置確認(rèn)規(guī)則的系統(tǒng)的框圖。圖6示出示例數(shù)據(jù)結(jié)構(gòu)的框圖。圖7示出根據(jù)ー示例實(shí)施例的開發(fā)中的顯示屏。圖8示出根據(jù)ー示例實(shí)施例的包括規(guī)則配置界面的用戶界面的框圖。圖9示出根據(jù)ー示例實(shí)施例的規(guī)則放置模塊的框圖。
圖10示出根據(jù)ー示例實(shí)施例的提供用于將與確認(rèn)規(guī)則相對應(yīng)的業(yè)務(wù)邏輯插入到應(yīng)用中的過程的流程圖。
圖11示出根據(jù)ー示例實(shí)施例的提供用于在客戶機(jī)-服務(wù)器體系結(jié)構(gòu)中實(shí)施確認(rèn)規(guī)則的過程的流程圖。圖12示出根據(jù)ー示例實(shí)施例的客戶機(jī)-服務(wù)器計(jì)算機(jī)系統(tǒng)的框圖。圖13示出根據(jù)ー示例實(shí)施例的應(yīng)用執(zhí)行期間的顯示屏。圖14示出根據(jù)ー示例實(shí)施例的客戶機(jī)計(jì)算機(jī)系統(tǒng)的框圖。圖15示出根據(jù)ー示例實(shí)施例的服務(wù)器的框圖。圖16示出根據(jù)ー示例實(shí)施例的用于數(shù)據(jù)的異步確認(rèn)的過程。圖17示出可用于實(shí)現(xiàn)本發(fā)明的各實(shí)施例的示例計(jì)算機(jī)系統(tǒng)的框圖。 當(dāng)結(jié)合其中相同的附圖標(biāo)記標(biāo)識對應(yīng)的元素的附圖時,本發(fā)明的特征和優(yōu)點(diǎn)將從以下闡述的詳細(xì)描述中變得更加顯而易見。在附圖中,相同的附圖標(biāo)記一般指相同的、功能上相似的和/或結(jié)構(gòu)上相似的元素。其中元素第一次出現(xiàn)的附圖由對應(yīng)的附圖標(biāo)記中最左側(cè)的數(shù)字指示。詳細(xì)描述I.引言本說明書公開了包括本發(fā)明的各特征的一個或多個實(shí)施例。所公開的實(shí)施例只例示了本發(fā)明。本發(fā)明的范圍不僅限于所公開的實(shí)施例。本發(fā)明由所附的權(quán)利要求進(jìn)行限定。說明書中對“ー個實(shí)施例”、“實(shí)施例”、“示例實(shí)施例”等等的引用表示所描述的實(shí)施例可包括特定特征、結(jié)構(gòu)或特性,但是,姆ー個實(shí)施例可不必包括該特定特征、結(jié)構(gòu),或特征。此外,這些短語不一定指同一實(shí)施例。此外,當(dāng)結(jié)合某一實(shí)施例來描述特定特征、結(jié)構(gòu)或特性吋,不管是否被明確描述,結(jié)合其他實(shí)施例來實(shí)現(xiàn)該特征、結(jié)構(gòu)或特性被認(rèn)為是在本領(lǐng)域技術(shù)人員的知識范圍內(nèi)。II.示例實(shí)施例本文提供了用于在客戶機(jī)-服務(wù)器體系結(jié)構(gòu)中配置業(yè)務(wù)規(guī)則的技術(shù)和用于實(shí)施這些業(yè)務(wù)規(guī)則的技木。諸如業(yè)務(wù)線(LOB)應(yīng)用等業(yè)務(wù)應(yīng)用可以執(zhí)行許多類型的任務(wù),包括記賬、訂單處理、供應(yīng)鏈管理、資源規(guī)劃、數(shù)據(jù)庫管理、和/或其他企業(yè)相關(guān)功能。這樣的業(yè)務(wù)應(yīng)用需要實(shí)施業(yè)務(wù)規(guī)則來確保用戶在客戶機(jī)設(shè)備處輸入的數(shù)據(jù)的完整性。本文描述的各實(shí)施例使得能夠在各種業(yè)務(wù)應(yīng)用實(shí)現(xiàn)中,包括在多層體系結(jié)構(gòu)(“η層體系結(jié)構(gòu)”)實(shí)現(xiàn)中,配置和實(shí)施業(yè)務(wù)規(guī)則。例如,根據(jù)各實(shí)施例,使得能夠在客戶機(jī)上和服務(wù)器上實(shí)施業(yè)務(wù)規(guī)則。在一實(shí)施例中,分析業(yè)務(wù)規(guī)則以確定它們是否適合在客戶機(jī)上和/或在服務(wù)器上實(shí)施。根據(jù)這ー確定,將各業(yè)務(wù)規(guī)則分配給客戶機(jī)和服務(wù)器來實(shí)施。此外,分配給客戶機(jī)的業(yè)務(wù)規(guī)則可被置于業(yè)務(wù)應(yīng)用中應(yīng)用代碼的ー個或多個位置處,以在應(yīng)用執(zhí)行的所需點(diǎn)處實(shí)施??蔀閼?yīng)用開發(fā)人員來執(zhí)行這樣的分配,而非開發(fā)人員必須做出這些分配。在常規(guī)系統(tǒng)中,在業(yè)務(wù)規(guī)則就緒時,這些業(yè)務(wù)規(guī)則的執(zhí)行往往遵循同步模式,其中用戶在客戶機(jī)處輸入的數(shù)據(jù)觸發(fā)了此時根據(jù)業(yè)務(wù)規(guī)則進(jìn)行的確認(rèn)。如此,在評估業(yè)務(wù)規(guī)則時,接收輸入數(shù)據(jù)的用戶界面可變得對用戶不響應(yīng)。在各實(shí)施例中,使確認(rèn)規(guī)則能以異步方式執(zhí)行,使得在評估確認(rèn)規(guī)則時用戶界面可以響應(yīng)。例如,可在客戶機(jī)處和/或服務(wù)器處提供規(guī)則引擎,以執(zhí)行對確認(rèn)規(guī)則的異步評估。在又一些實(shí)施例中,作為同步/異步模式的替換,應(yīng)用開發(fā)人員可以配置用于執(zhí)行確認(rèn)規(guī)則的ー個或多個策略。例如,開發(fā)人員可以配置在應(yīng)用進(jìn)入空閑狀態(tài)時使確認(rèn)規(guī)則能夠執(zhí)行的策略,在執(zhí)行了保存之后在所添加的實(shí)體上執(zhí)行確認(rèn)規(guī)則的策略,和/或以任何其他所需方式執(zhí)行確認(rèn)規(guī)則的策略。如上所述,各實(shí)施例可被實(shí)現(xiàn)在客戶機(jī)-服務(wù)器計(jì)算環(huán)境中。例如,圖I示出客戶機(jī)-服務(wù)器計(jì)算機(jī)系統(tǒng)100的框圖。如圖I所示,系統(tǒng)100包括多個客戶機(jī)計(jì)算機(jī)系統(tǒng)102a-102n、網(wǎng)絡(luò)104、以及服務(wù)器106??蛻魴C(jī)計(jì)算機(jī)系統(tǒng)102a_102n通過網(wǎng)絡(luò)104與服務(wù)器106進(jìn)行通信。網(wǎng)絡(luò)104可以是LAN (局域網(wǎng))、WAN (廣域網(wǎng)),或諸如因特網(wǎng)之類的網(wǎng)絡(luò)組合??梢源嬖谌魏螖?shù)量的一個或多個客戶機(jī)計(jì)算機(jī)系統(tǒng)102a-102n,包括數(shù)十個、數(shù)百個等等。客戶機(jī)計(jì)算機(jī)系統(tǒng)102a-102n的示例包括臺式計(jì)算機(jī)(例如,個人計(jì)算機(jī))、移動計(jì)算設(shè)備(例如,諸如個人數(shù)字助理(PDA)、膝上型計(jì)算機(jī)、筆記本計(jì)算機(jī)等移動計(jì)算機(jī))、移動電話(例如,智能電話等)、以及其他計(jì)算設(shè)備類型。每ー客戶機(jī)計(jì)算機(jī)系統(tǒng)102和服務(wù)器106可通過網(wǎng)絡(luò)104根據(jù)對應(yīng)的通信鏈路進(jìn)行通信。例如,如圖I所示,客戶機(jī)計(jì)算機(jī)系統(tǒng)102a-102n通過對應(yīng)的通信鏈路108a_108n與網(wǎng)絡(luò)104通信耦合,而服務(wù)器106通過通信鏈路110與網(wǎng)絡(luò)104通信耦合。通信鏈路108a-108n和110可包括任何類型的通信鏈路或其組合,包括有線和/或無線鏈路,如IEEE802. 11無線LAN (WLAN)無線鏈路、蜂窩網(wǎng)絡(luò)鏈路、無線個域網(wǎng)(PAN)鏈路(例如,藍(lán)牙 鏈路)、全球微波互聯(lián)接入(Wi-MAX)鏈路、以太網(wǎng)鏈路、USB鏈路等等。服務(wù)器106可以是能夠被配置成擔(dān)當(dāng)服務(wù)器的任何類型的計(jì)算機(jī)系統(tǒng),如在本文其他部分描述的或以其他方式已知的。服務(wù)器106可被配置成使客戶機(jī)計(jì)算機(jī)系統(tǒng)102a-102n能夠訪問與一個或多個應(yīng)用相關(guān)聯(lián)的數(shù)據(jù)。客戶機(jī)計(jì)算機(jī)系統(tǒng)102a_102n可以按任何方式與服務(wù)器106對接。例如,在一個實(shí)施例中,服務(wù)器106可以提供web服務(wù)或其他API (應(yīng)用程序編程接ロ)以供與客戶機(jī)計(jì)算機(jī)系統(tǒng)102a-102n進(jìn)行機(jī)器到機(jī)器的交互。在Web服務(wù)實(shí)施例中,客戶機(jī)計(jì)算機(jī)系統(tǒng)102a-102n可以使用SOAP消息與服務(wù)器106處的Web服務(wù)進(jìn)行交互,通常使用帶有XML串行化的HTTP結(jié)合其他Web相關(guān)標(biāo)準(zhǔn)來傳達(dá)。圖2示出圖I的系統(tǒng)100的一部分,其中數(shù)據(jù)庫206耦合到服務(wù)器106。在圖2中,客戶機(jī)計(jì)算機(jī)系統(tǒng)102a被示為執(zhí)行應(yīng)用202,應(yīng)用202被配置成通過服務(wù)器106與數(shù)據(jù)庫206所維護(hù)的數(shù)據(jù)進(jìn)行交互。如圖2所示,數(shù)據(jù)庫206可包括被配置成存儲數(shù)據(jù)的存儲208。存儲208可包括任何合適類型的存儲設(shè)備中的ー個或多個,包括磁盤(例如,在硬盤驅(qū)動器中)、光盤(例如,在光盤驅(qū)動器中)、磁帶(例如,在磁帶驅(qū)動器中)、諸如RAM設(shè)備等存儲器設(shè)備、和/或任何其他合適類型的存儲介質(zhì)。應(yīng)用202可以是任何類型的業(yè)務(wù)應(yīng)用,并且能夠存儲新數(shù)據(jù)、更新現(xiàn)有數(shù)據(jù)、和/或刪除數(shù)據(jù)庫206所維護(hù)的數(shù)據(jù)。例如,應(yīng)用202的用戶可以將數(shù)據(jù)錄入到客戶機(jī)計(jì)算機(jī)系統(tǒng)102a處的用戶界面所提供的表單中。該數(shù)據(jù)可以是任何類型的數(shù)據(jù),如訂單數(shù)據(jù)(例如,其中應(yīng)用202是訂單處理應(yīng)用)等。應(yīng)用202能夠可任選地處理所錄入的數(shù)據(jù),并且客戶機(jī)計(jì)算機(jī)系統(tǒng)102a將所錄入的數(shù)據(jù)作為輸入數(shù)據(jù)210來傳送。輸入數(shù)據(jù)210通過網(wǎng)絡(luò)104被傳送到服務(wù)器106。服務(wù)器106可任選地包括與應(yīng)用202相關(guān)聯(lián)的、處理輸入數(shù)據(jù)210的服務(wù)器側(cè)應(yīng)用邏輯204。服務(wù)器106將輸入數(shù)據(jù)210提供給數(shù)據(jù)庫206,數(shù)據(jù)庫206將輸入數(shù)據(jù)210存儲在存儲208中。 如上所述,應(yīng)用實(shí)施確保數(shù)據(jù)完整性,包括用戶輸入的數(shù)據(jù)(如輸入數(shù)據(jù)210)的完整性,的規(guī)則可能是合乎需要的。本文描述了用于在客戶機(jī)-服務(wù)器體系結(jié)構(gòu)中配置業(yè)務(wù)規(guī)則(如圖I和2所示)的實(shí)施例和用于實(shí)施這些業(yè)務(wù)規(guī)則的實(shí)施例。例如,圖3示出了根據(jù)ー示例實(shí)施例的客戶機(jī)-服務(wù)器計(jì)算機(jī)系統(tǒng)300的框圖??蛻魴C(jī)-服務(wù)器計(jì)算機(jī)系統(tǒng)300 一般類似于圖I和2的客戶機(jī)-服務(wù)器計(jì)算機(jī)系統(tǒng)100,但添加了確認(rèn)流水線302。確認(rèn)流水線302使得能夠根據(jù)開發(fā)人員生成的規(guī)則來確認(rèn)系統(tǒng)100中的數(shù)據(jù),包括在客戶機(jī)計(jì)算機(jī)系統(tǒng)102a-102n和服務(wù)器106處確認(rèn)數(shù)據(jù)。在一實(shí)施例中,確認(rèn)流水線302使得確認(rèn)規(guī)則能夠被置于客戶機(jī)-服務(wù)器環(huán)境中的各個位置處以用于特定場景和要求。例如,在多層體系結(jié)構(gòu)實(shí)施例中,確認(rèn)流水線302可以定義邏輯層中可執(zhí)行確認(rèn)規(guī)則的位置(如客戶機(jī)、服務(wù)器、或客戶機(jī)和服務(wù)器兩者),以及使得確認(rèn)規(guī)則能夠與各種人工產(chǎn)物(如實(shí)體域、實(shí)體、以及顯示屏)相關(guān)聯(lián)。確認(rèn)流水線302使得確認(rèn)規(guī)則能夠被異步執(zhí)行,包括在接收來自最終用戶的數(shù)據(jù)輸入的過程之外執(zhí)行。在隨后的小節(jié)中描述了確認(rèn)流水線302的示例實(shí)施例。下一小節(jié)描述了用于在客戶機(jī)-服務(wù)器體系結(jié)構(gòu)中配置業(yè)務(wù)規(guī)則的示例實(shí)施例,此后是描述用于在客戶機(jī)-服務(wù)器體系結(jié)構(gòu)中實(shí)施這些業(yè)務(wù)規(guī)則的示例實(shí)施例的小節(jié)。 A.用于配置確認(rèn)流水線的示例實(shí)施例在各實(shí)施例中,可以用各種方式將確認(rèn)流水線配置在客戶機(jī)-服務(wù)器體系結(jié)構(gòu)中,以使得能夠根據(jù)規(guī)則來確認(rèn)數(shù)據(jù)。例如,圖4示出根據(jù)ー示例實(shí)施例的提供用于在客戶機(jī)-服務(wù)器體系結(jié)構(gòu)中配置規(guī)則的過程的流程圖400。出于說明目的,參考圖5來描述流程圖400。圖5不出根據(jù)ー不例實(shí)施例的用于配置確認(rèn)規(guī)則的系統(tǒng)500的框圖?;谟嘘P(guān)流程圖400的討論,其他結(jié)構(gòu)及操作的實(shí)施例對于相關(guān)領(lǐng)域的技術(shù)人員將是顯而易見的。流程圖400和系統(tǒng)500描述如下。流程圖400開始于步驟402。在步驟402,使開發(fā)人員能夠開發(fā)應(yīng)用。例如,如圖5所示,系統(tǒng)包括應(yīng)用開發(fā)工具504。應(yīng)用開發(fā)工具504被配置成使開發(fā)人員502(例如,業(yè)務(wù)應(yīng)用設(shè)計(jì)人員、軟件開發(fā)人員、計(jì)算機(jī)程序員等)能夠開發(fā)應(yīng)用,如圖2所示的應(yīng)用202。應(yīng)用開發(fā)工具504可被配置成使得能夠開發(fā)ー個或多個業(yè)務(wù)應(yīng)用方面,包括用戶界面(UI)開發(fā)、應(yīng)用功能,等等。應(yīng)用開發(fā)工具504可以是其中可實(shí)現(xiàn)在此描述的實(shí)施例的各方面的任何合適的應(yīng)用開發(fā)工具(市場上可購買的或?qū)S玫?。應(yīng)用開發(fā)工具504的示例包括華盛頓州雷蒙德市的微軟公司所發(fā)布的應(yīng)用開發(fā)工具(例如,Microsoft Visual Studio 、MicrosoftSilverlight 等)、加利福尼亞州圣何塞市的Adobe Systems公司發(fā)布的應(yīng)用開發(fā)工具(例如,Adobe Integrated Runtime (AIR) )、Ruby on Rails (由 Rails Core Team 開發(fā))、以及其他類型的應(yīng)用開發(fā)工具。在步驟404,使開發(fā)人員能夠?qū)?yīng)用的至少ー個顯示屏配置成具有使客戶機(jī)處的用戶能夠輸入要被存儲在服務(wù)器處能訪問的數(shù)據(jù)庫中的數(shù)據(jù)的用戶界面元素。例如,如圖5所示,應(yīng)用開發(fā)工具504可包括用戶界面(UI)配置模塊506、規(guī)則配置模塊508、以及規(guī)則放置模塊510。UI配置模塊506可被配置成使得開發(fā)人員502能夠配置開發(fā)中的應(yīng)用的顯示屏。例如,Π配置模塊506可使開發(fā)人員502能夠生成使用戶能向應(yīng)用輸入數(shù)據(jù)的ー個 或多個表単。在執(zhí)行時,輸入數(shù)據(jù)可能_在被應(yīng)用存儲在數(shù)據(jù)庫206 (圖2)中。UI配置模塊506可使開發(fā)人員502能夠生成用于接收任何類型或形式的數(shù)據(jù)(包括諸如對象、類等數(shù)據(jù)結(jié)構(gòu))的顯示屏。例如,圖6示出實(shí)體600的框圖,它是可接收到的并且可包括ー個或多個屬性的數(shù)據(jù)的示例。實(shí)體600具有可描述所包括的數(shù)據(jù)的結(jié)構(gòu)的實(shí)體名608,如“雇員”(例如,在該實(shí)體被用來表示雇員數(shù)據(jù)的情況下)或其他名稱。如圖6所示,實(shí)體600具有由ー組屬性602a-602n所定義的結(jié)構(gòu)。實(shí)體600可包括ー個或多個屬性602。如圖6所示,屬性602a-602n各自被表達(dá)成名/值對,每一名/值對包括對應(yīng)的屬性名604和數(shù)據(jù)值606。數(shù)據(jù)值606可包括值和相關(guān)聯(lián)的類型(例如,整型、串、日期,等等)。例如,屬性602a包括屬性名604a和數(shù)據(jù)值606a,而屬性602b包括屬性名604b和數(shù)據(jù)值606b。每ー屬性名604具有作為對應(yīng)屬性602的名稱的值,并且對應(yīng)的數(shù)據(jù)值606是實(shí)體600中的屬性602的數(shù)據(jù)值。例如,在實(shí)體600的實(shí)體名608是“雇員”的示例中,屬性名602a可以是“名字”,且數(shù)據(jù)值602b可以是“Tom Smith”,屬性名602b可以是“生日”,且數(shù)據(jù)值602b可以是“1976-08-27”,而屬性名602c可以是“辦公室號”,且數(shù)據(jù)值602c可以是“B1078”。UI配置模塊506可使開發(fā)人員502能夠生成用于接收任何 類型或形式的數(shù)據(jù)(包括實(shí)體600)的顯示屏。例如,圖7示出根據(jù)ー示例實(shí)施例的、開發(fā)人員502與圖5中的工具504的UI配置模塊506交互來進(jìn)行開發(fā)時的顯示屏700。開發(fā)人員可以配置用于接收要呈現(xiàn)在顯示屏700中的數(shù)據(jù)的用戶界面元素(例如,“控件”)。如圖7所示,開發(fā)人員已配置了用于接收對應(yīng)于第一實(shí)體的數(shù)據(jù)的第一實(shí)體區(qū)域702a和用于接收對應(yīng)于第二實(shí)體的數(shù)據(jù)的第二實(shí)體區(qū)域702b。每ー實(shí)體區(qū)域702被配置成使用戶能夠輸入對應(yīng)實(shí)體的屬性數(shù)據(jù)。第一實(shí)體區(qū)域702a包括用于接收對應(yīng)于第一實(shí)體的相關(guān)聯(lián)的屬性數(shù)據(jù)的第一和第二實(shí)體域區(qū)域708a和708b。在一實(shí)施例中,UI配置模塊506可使開發(fā)人員能夠根據(jù)需要將實(shí)體區(qū)域702和實(shí)體域區(qū)域708置于顯示屏700中。顯示屏700可被開發(fā)人員配置成包括對應(yīng)于各實(shí)體的任何數(shù)量的實(shí)體區(qū)域702,并且每一區(qū)域702可包括用于接收對應(yīng)于各實(shí)體域的數(shù)據(jù)的任何數(shù)量的實(shí)體域區(qū)域708。實(shí)體區(qū)域702可按任何方式被安排在顯示屏700中,并且對應(yīng)的實(shí)體域區(qū)域708可按任何方式安排在其中。每ー實(shí)體區(qū)域702可被配置成包括實(shí)體標(biāo)記704,它向用戶標(biāo)識特定實(shí)體。例如,實(shí)體區(qū)域702可被開發(fā)人員配置成使用戶能夠錄入雇員數(shù)據(jù),并且因而,在這一示例中,實(shí)體標(biāo)記704可以是文本“雇員”。實(shí)體域區(qū)域708可被配置成包括使用戶能夠錄入數(shù)據(jù)的任何類型的用戶界面元素或控件,如文本錄入框等。例如,如圖7所示,每ー實(shí)體域區(qū)域708包括域標(biāo)記706和文本錄入框716。域標(biāo)記706標(biāo)識特定實(shí)體域。例如,在實(shí)體區(qū)域702a被開發(fā)人員配置成接收雇員數(shù)據(jù)時,域標(biāo)記706a可以是文本“名字”(以使得用戶知道要將雇員名字?jǐn)?shù)據(jù)錄入到文本錄入框716a中)并且域標(biāo)記706b可以是文本“生日”(以使得用戶知道要將該雇員的生日錄入到文本錄入框716b中)。實(shí)體區(qū)域702和實(shí)體域區(qū)域708可被配置成使得能夠?qū)⑿聰?shù)據(jù)提供給數(shù)據(jù)庫206,使得能夠在數(shù)據(jù)庫206中更新現(xiàn)有數(shù)據(jù),和/或使得能夠從數(shù)據(jù)庫206中刪除現(xiàn)有數(shù)據(jù)。在開發(fā)人員根據(jù)需要完成了對顯示屏700的配置時,開發(fā)人員可以選擇保存按鈕718 (“提交”)來保存顯示屏700的配置,或可以選擇取消按鈕720 (以不保存對顯示屏700的任何改變)?;仡^參考圖4,在步驟406,使開發(fā)人員能夠輸入被配置成用來在客戶機(jī)處和服務(wù)器處確認(rèn)數(shù)據(jù)的規(guī)則。例如,如圖5所示,規(guī)則配置模塊508可使開發(fā)人員502能夠配置關(guān)于開發(fā)中的應(yīng)用的確認(rèn)規(guī)則。規(guī)則配置模塊508可使開發(fā)人員502能夠生成用于顯示屏的每ー實(shí)體域和/或?qū)嶓w以及用于顯示屏本身的ー個或多個規(guī)則。例如,規(guī)則配置模塊508可以生成使用戶能夠輸入確認(rèn)規(guī)則的規(guī)則配置界面。規(guī)則配置模塊508可基于所輸入的確認(rèn)規(guī)則來生成業(yè)務(wù)邏輯,該業(yè)務(wù)邏輯可被執(zhí)行以根據(jù)確認(rèn)規(guī)則來進(jìn)行確認(rèn)。如上所述,(圖5的UI配置模塊506)使開發(fā)人員能夠?qū)@示屏700配置成包括用于接收數(shù)據(jù)的、以實(shí)體和實(shí)體域?yàn)樾问降慕缑?控件。此外,對于每ー實(shí)體和實(shí)體域,規(guī)則配置模塊508使開發(fā)人員能夠配置相關(guān)聯(lián)的確認(rèn)規(guī)則。規(guī)則配置模塊508可被配置成使規(guī)則能由開發(fā)人員以各種方式來輸入。例如,如圖7所示,可以提供開發(fā)人員在希望輸入確認(rèn)規(guī)則的情況下可以選擇的用戶界面元素。例如,對于由開發(fā)人員輸入到顯示屏700中的每一實(shí)體域702,可以提供對應(yīng)的用戶界面元素710。對于由開發(fā)人員輸入到顯示屏700中的每ー實(shí)體域區(qū)域708,可以提供對應(yīng)的用戶界面元素712。此外,也可提供對應(yīng)于顯示屏700的用戶界面元素714。開發(fā)人員可與用戶界面元素710交互以調(diào)用使得能夠輸入與相應(yīng)實(shí) 體區(qū)域708相關(guān)聯(lián)的對應(yīng)規(guī)則(實(shí)體級規(guī)則)的規(guī)則配置界面。開發(fā)人員可與用戶界面元素712交互以調(diào)用使開發(fā)人員能夠輸入與相應(yīng)實(shí)體域區(qū)域708相關(guān)聯(lián)的規(guī)則(實(shí)體域級規(guī)則)的規(guī)則配置界面。開發(fā)人員可與用戶界面元素714交互以調(diào)用使得能夠輸入與顯示屏700相關(guān)聯(lián)的規(guī)則(屏幕級規(guī)則)的規(guī)則配置界面。例如,如圖7所示,實(shí)體區(qū)域702a具有對應(yīng)的用戶界面元素710a,實(shí)體域708a具有對應(yīng)的用戶界面元素712a,實(shí)體域708b具有對應(yīng)的用戶界面元素712b,以及實(shí)體區(qū)域702b具有對應(yīng)的用戶界面元素710b。用戶界面元素710、712、以及714在圖7中被示為按鈕(例如,可使用定點(diǎn)設(shè)備、按鍵等來選擇),但在其他實(shí)施例中可具有其他形式。可選擇用戶界面元素710、712、以及714來調(diào)用對應(yīng)實(shí)體、實(shí)體域、或顯示屏的規(guī)則配置界面。在另ー實(shí)施例中,并非呈現(xiàn)用戶界面元素710、712、和/或714,開發(fā)人員可以在實(shí)體區(qū)域702、實(shí)體域區(qū)域708、或顯示屏700的某一區(qū)域上移動定點(diǎn)設(shè)備,并且可使得出現(xiàn)(例如,通過使用定點(diǎn)設(shè)備來點(diǎn)擊)具有可被選中來調(diào)用使開發(fā)人員能夠錄入規(guī)則的規(guī)則配置界面的“配置規(guī)則”選擇或類似選擇的菜単。在又一實(shí)施例中,可以用其他方式調(diào)用實(shí)體、實(shí)體域、以及顯示屏的規(guī)則配置界面。例如,圖8示出根據(jù)ー示例實(shí)施例的包括規(guī)則配置界面802的用戶界面800 (例如,顯示屏)的框圖。規(guī)則配置界面802可被調(diào)用來配置實(shí)體的確認(rèn)規(guī)則804、實(shí)體域的確認(rèn)規(guī)則806、和/或顯示屏的確認(rèn)規(guī)則808。規(guī)則配置界面802可包括使得能夠錄入/配置確認(rèn)規(guī)則804的用戶界面元素或控件的任何組合,包括文本錄入框、復(fù)選框、單選按鈕、下拉列表等。規(guī)則配置界面802可使得能夠以任何方式來配置確認(rèn)規(guī)則,包括使得能夠?qū)⒁?guī)則配置成確認(rèn)數(shù)據(jù)參數(shù),如長度、范圍、各種類型的信息、類型、等等。可以提供標(biāo)準(zhǔn)的、預(yù)定的“確認(rèn)器”,和/或可使開發(fā)人員能夠生成定制的確認(rèn)配置??墒褂靡?guī)則配置界面802來配置任何類型的確認(rèn)規(guī)則804、806和808。例如,對于實(shí)體域(例如,實(shí)體域區(qū)域708),確認(rèn)規(guī)則804可被配置成評估輸入到該實(shí)體域的數(shù)據(jù)的正確性或可接受性。數(shù)據(jù)輸入的可被確認(rèn)規(guī)則804評估的屬性的示例包括數(shù)據(jù)類型、長度、范圍、格式等。例如,在一個示例中,實(shí)體域區(qū)域708b可被開發(fā)人員配置成接收生日數(shù)據(jù)。確認(rèn)規(guī)則804可被配置成驗(yàn)證輸入到實(shí)體域區(qū)域708的生日對應(yīng)于可接受的年齡范圍(例如,大于或等于21歲的年齡)。
對于實(shí)體(例如,實(shí)體區(qū)域702),確認(rèn)規(guī)則806可被配置成確保實(shí)體實(shí)例處于有效狀態(tài)。例如,確認(rèn)規(guī)則806可被配置成交叉域確認(rèn)規(guī)則,以確保錄入到第一實(shí)體域中的數(shù)據(jù)相對于錄入到實(shí)體的第二實(shí)體域中的數(shù)據(jù)而言是正確的。此外,確認(rèn)規(guī)則806可被配置成訪問相關(guān)實(shí)體并跨相關(guān)實(shí)體來評估數(shù)據(jù)的交叉實(shí)體確認(rèn)規(guī)則。例如,在關(guān)于實(shí)體區(qū)域702a的交叉域確認(rèn)規(guī)則示例中,實(shí)體域區(qū)域708a可被配置成接收電話號碼數(shù)據(jù),而實(shí)體域區(qū)域708b可被配置成接收辦公室號數(shù)據(jù)。確認(rèn)規(guī)則806可被配置成驗(yàn)證輸入到實(shí)體域區(qū)域708a中的電話號碼對應(yīng)于輸入到實(shí)體域區(qū)域708b中的辦公室號。對于顯示屏(例如,顯示屏700),確認(rèn)規(guī)則808可被配置成執(zhí)行屏幕級確認(rèn)。例如,顯示屏能夠訪問邊界實(shí)體以及任何其他屏幕級成員(例如,屏幕文本等)。確認(rèn)規(guī)則808可被配置成跨屏幕級成員來評估數(shù)據(jù)以確保顯示屏作為整體處于有效狀態(tài),且確保來自顯示屏的保存操作(例如,選中圖7中的保存按鈕718)可被執(zhí)行。如上所述,規(guī)則配置模塊508將開發(fā)人員502所輸入的規(guī)則(例如,輸入到規(guī)則配置界面802)中的每ー個轉(zhuǎn)換成可被執(zhí)行以在所錄入的數(shù)據(jù)上實(shí)施這些規(guī)則的業(yè)務(wù)邏輯。 回頭參考圖4,在步驟408,規(guī)則被整合到應(yīng)用的代碼中。例如,如圖5所示,規(guī)則放置模塊510可被配置成將確認(rèn)規(guī)則整合到應(yīng)用中。例如,如圖5所示,應(yīng)用開發(fā)工具504生成應(yīng)用512。應(yīng)用512可包括開發(fā)人員502使用應(yīng)用開發(fā)工具504來配置的應(yīng)用功能,包括由開發(fā)人員502配置的任何顯示屏。此外,如圖5所示,應(yīng)用612可包括客戶機(jī)側(cè)業(yè)務(wù)邏輯516。客戶機(jī)側(cè)業(yè)務(wù)邏輯516由規(guī)則配置模塊508生成以實(shí)現(xiàn)客戶機(jī)側(cè)規(guī)則518。客戶機(jī)側(cè)規(guī)則518包括開發(fā)人員502 (在步驟406)所輸入的、被規(guī)則放置模塊510確定為要由客戶機(jī)-服務(wù)器實(shí)現(xiàn)中的客戶機(jī)來實(shí)現(xiàn)的一個或多個確認(rèn)規(guī)則。如圖5所示,應(yīng)用開發(fā)工具504另外還生成服務(wù)器側(cè)業(yè)務(wù)邏輯514。服務(wù)器側(cè)業(yè)務(wù)邏輯514由規(guī)則配置模塊508生成以實(shí)現(xiàn)服務(wù)器側(cè)規(guī)則520。服務(wù)器側(cè)規(guī)則520包括開發(fā)人員602 (在步驟406)所輸入的、被規(guī)則放置模塊510確定為要由客戶機(jī)-服務(wù)器實(shí)現(xiàn)中的服務(wù)器來實(shí)現(xiàn)的ー個或多個確認(rèn)規(guī)則。注意,客戶機(jī)側(cè)業(yè)務(wù)邏輯516和服務(wù)器側(cè)業(yè)務(wù)邏輯514可以用任何方式來實(shí)現(xiàn),包括用任何編程語言編寫的計(jì)算機(jī)代碼的形式。用于客戶機(jī)側(cè)業(yè)務(wù)邏輯516和服務(wù)器側(cè)業(yè)務(wù)邏輯 514 的編程語言的示例包括 XML、C++、Borand [)elphi⑨、Java、JavaScript、Python、任何Microsoft · NETTM編程語言等。圖9示出根據(jù)ー示例實(shí)施例的規(guī)則放置模塊510的框圖。如圖9所示,規(guī)則放置模塊510包括規(guī)則評估器906和規(guī)則插入器908。如圖9所示,規(guī)則放置模塊510接收業(yè)務(wù)邏輯902。業(yè)務(wù)邏輯902由規(guī)則配置模塊508 (圖5)生成以實(shí)現(xiàn)開發(fā)人員(例如,使用規(guī)則配置界面802)所輸入的確認(rèn)規(guī)則904。規(guī)則評估器906接收業(yè)務(wù)邏輯902并評估對應(yīng)于確認(rèn)規(guī)則904的哪ー業(yè)務(wù)邏輯要在客戶機(jī)側(cè)執(zhí)行和/或要在服務(wù)器側(cè)執(zhí)行。例如,對應(yīng)于確認(rèn)規(guī)則的、可完全在客戶機(jī)側(cè)執(zhí)行的業(yè)務(wù)邏輯(例如,不需要來自遠(yuǎn)程源的數(shù)據(jù)/資源,具有足夠低的復(fù)雜度水平而能在客戶機(jī)上執(zhí)行,等等)被規(guī)則評估器906指定為要在客戶機(jī)側(cè)執(zhí)行。對應(yīng)于確認(rèn)規(guī)則的、不能完全在客戶機(jī)側(cè)執(zhí)行的業(yè)務(wù)邏輯(例如,需要來自遠(yuǎn)程源的數(shù)據(jù)/資源,具有足夠高的復(fù)雜度水平而應(yīng)在服務(wù)器上執(zhí)行,等等)被規(guī)則評估器906指定為要在服務(wù)器側(cè)執(zhí)行。因而,在一些實(shí)施例中,特定確認(rèn)規(guī)則的業(yè)務(wù)邏輯可被指定為在客戶機(jī)側(cè)或服務(wù)器側(cè)執(zhí)行,但不是在兩者處執(zhí)行。在另ー實(shí)施例中,每ー確認(rèn)規(guī)則被指定為在客戶機(jī)側(cè)執(zhí)行并也在服務(wù)器側(cè)執(zhí)行可能是合乎需要的。例如,為安全起見,所有確認(rèn)規(guī)則(包括被指定為在客戶機(jī)側(cè)執(zhí)行的確認(rèn)規(guī)則)都在服務(wù)器側(cè)執(zhí)行可能是合乎需要的,以保護(hù)服務(wù)器處的數(shù)據(jù)庫免受來自未知方的數(shù)據(jù)訪問。因而,在一實(shí)施例中,被指定為在客戶機(jī)側(cè)執(zhí)行的每ー確認(rèn)規(guī)則也被指定為在服務(wù)器側(cè)執(zhí)行。在這種情況下,在客戶機(jī)處錄入的數(shù)據(jù)可首先在客戶機(jī)處確認(rèn),并在服務(wù)器處再次確認(rèn)。規(guī)則放置模塊510生成客戶機(jī)側(cè)業(yè)務(wù)邏輯516 (其包括客戶機(jī)側(cè)規(guī)則518),以包括業(yè)務(wù)邏輯902的與被指定為要在客戶機(jī)側(cè)執(zhí)行的規(guī)則904相對應(yīng)的各部分。規(guī)則放置模塊510生成服務(wù)器側(cè)業(yè)務(wù)邏輯514 (其包括服務(wù)器側(cè)規(guī)則520),以包括業(yè)務(wù)邏輯902的與被指定為要在服務(wù)器側(cè)執(zhí)行的規(guī)則904相對應(yīng)的各部分。規(guī)則插入器908被配置成將客戶機(jī)側(cè)業(yè)務(wù)邏輯516插入與應(yīng)用512 (圖5)相對應(yīng)的應(yīng)用代碼914中。規(guī)則插入器908將與客戶機(jī)側(cè)規(guī)則518的每ー確認(rèn)規(guī)則相對應(yīng)的業(yè)務(wù)邏輯插入到應(yīng)用代碼914中的對應(yīng)位置,以使得確認(rèn)規(guī)則在適當(dāng)?shù)臅r候執(zhí)行。如此,輸入確認(rèn)規(guī)則的開發(fā)人員(例如,圖5中的開發(fā)人員502)不需要確定要將確認(rèn)規(guī)則插入到應(yīng)用代 碼914中的何處,因?yàn)橐?guī)則插入器908將確認(rèn)規(guī)則(以業(yè)務(wù)邏輯的形式)自動插入到應(yīng)用代碼914中的適當(dāng)位置。例如,在一實(shí)施例中,規(guī)則插入器908可以執(zhí)行圖10所示的流程圖1000。在步驟1002,選擇應(yīng)用代碼的多個預(yù)定位置之一。可將應(yīng)用代碼914中的多個位置預(yù)先確定為適于執(zhí)行客戶機(jī)側(cè)規(guī)則518 (以客戶機(jī)側(cè)業(yè)務(wù)邏輯516的形式)。應(yīng)用代碼914中的這樣的位置的示例包括用于接收實(shí)體域控件中的輸入數(shù)據(jù)的代碼之后的位置、用于接收實(shí)體的所有域中的所有數(shù)據(jù)的代碼之后的位置、用戶嘗試保存(例如,選中保存按鈕718)顯示屏之后的位置、呈現(xiàn)顯示屏之后或之前的位置、和/或應(yīng)用代碼914中的其他位置。規(guī)則插入器908可被配置成基于特定確認(rèn)規(guī)則來從應(yīng)用代碼914中的這些預(yù)定位置中選擇位置。例如,確認(rèn)規(guī)則可以與不依賴于任何其他實(shí)體域或?qū)嶓w的特定實(shí)體域相關(guān)聯(lián)。在這種情況下,規(guī)則插入器908可以選擇應(yīng)用代碼914中的在用于接收該實(shí)體域中的數(shù)據(jù)的代碼之后的代碼位置,以插入相關(guān)聯(lián)的業(yè)務(wù)邏輯?;蛘?,確認(rèn)規(guī)則可以與具有多個實(shí)體域的實(shí)體相關(guān)聯(lián)。在這種情況下,規(guī)則插入器908可以選擇應(yīng)用代碼914中的在確定數(shù)據(jù)已被接收到該實(shí)體的每ー實(shí)體域中的代碼之后的代碼位置,以插入相關(guān)聯(lián)的業(yè)務(wù)邏輯。在步驟1004,客戶機(jī)側(cè)業(yè)務(wù)邏輯被插入到應(yīng)用代碼的所選預(yù)定位置。在一實(shí)施例中,規(guī)則插入器908可將客戶機(jī)側(cè)業(yè)務(wù)邏輯插入到應(yīng)用代碼914中的在步驟1002中為特定確認(rèn)規(guī)則所選擇的位置。如果存在多個確認(rèn)規(guī)則,則每一確認(rèn)規(guī)則的業(yè)務(wù)邏輯可被插入到應(yīng)用代碼914中對應(yīng)的所選位置。因而,如圖5所示,應(yīng)用開發(fā)工具504生成其中插入了客戶機(jī)側(cè)業(yè)務(wù)邏輯516 (其實(shí)現(xiàn)了客戶機(jī)側(cè)規(guī)則518)的應(yīng)用512,并生成實(shí)現(xiàn)服務(wù)器側(cè)規(guī)則520的服務(wù)器側(cè)業(yè)務(wù)邏輯514。應(yīng)用512可以由用戶在客戶機(jī)(例如,圖2的客戶機(jī)計(jì)算機(jī)系統(tǒng)102a)上執(zhí)行,并且服務(wù)器側(cè)業(yè)務(wù)邏輯514可被實(shí)現(xiàn)在對應(yīng)服務(wù)器(例如,服務(wù)器106)上以在確認(rèn)流水線中確認(rèn)數(shù)據(jù)。B.用于在客戶機(jī)-服務(wù)器體系結(jié)構(gòu)中實(shí)施確認(rèn)規(guī)則的示例實(shí)施例這ー小節(jié)描述用于在客戶機(jī)-服務(wù)器體系結(jié)構(gòu)中(如在圖I和2中示出的客戶機(jī)-服務(wù)器計(jì)算機(jī)系統(tǒng)100)實(shí)施確認(rèn)規(guī)則的實(shí)施例。例如,圖11示出根據(jù)ー示例實(shí)施例的提供在客戶機(jī)-服務(wù)器體系結(jié)構(gòu)中實(shí)施規(guī)則的流程圖1100。出于說明目的,參考圖12來描述流程圖1100。圖12示出根據(jù)ー示例實(shí)施例的客戶機(jī)-服務(wù)器計(jì)算機(jī)系統(tǒng)1200的框圖。如圖12所示,系統(tǒng)1200包括客戶機(jī)計(jì)算機(jī)系統(tǒng)102、網(wǎng)絡(luò)104、服務(wù)器106、以及數(shù)據(jù)庫206??蛻魴C(jī)計(jì)算機(jī)系統(tǒng)102包括應(yīng)用512和客戶機(jī)側(cè)規(guī)則引擎1204。服務(wù)器106包括服務(wù)器側(cè)業(yè)務(wù)邏輯514和服務(wù)器側(cè)規(guī)則引擎1208?;谟嘘P(guān)流程圖1100的討論,其他結(jié)構(gòu)及操作的實(shí)施例對于相關(guān)領(lǐng)域的技術(shù)人員將是顯而易見的。以下描述流程圖1100。流程圖1100開始于步驟1102。在步驟1102,使用戶能夠在客戶機(jī)處執(zhí)行ー應(yīng)用。例如,如圖12所示,應(yīng)用512可被用戶1220調(diào)用并在客戶機(jī)計(jì)算機(jī)系統(tǒng)102處執(zhí)行。應(yīng)用512可作為桌面應(yīng)用來執(zhí)行,可在web瀏覽器中執(zhí)行,或可按任何其他方式在客戶機(jī)計(jì)算機(jī)系統(tǒng)102處執(zhí)行。應(yīng)用512可在執(zhí)行時被傳送到客戶機(jī)計(jì)算機(jī)系統(tǒng)102,或先前已經(jīng)安裝??蛻魴C(jī)側(cè)規(guī)則引擎1204可與應(yīng)用512 —起(例如,在應(yīng)用包中)提供給客戶機(jī)計(jì)算機(jī)系統(tǒng) 102,或可分開提供。在步驟1104,該應(yīng)用的顯示屏被顯示在客戶機(jī)處,它包括能夠從用戶接收數(shù)據(jù)的用戶界面元素。應(yīng)用512可以生成用戶1220可與之交互的一個或多個顯示屏以顯示在客戶機(jī)計(jì)算機(jī)系統(tǒng)102處。顯示屏可包括用于從用戶1220接收數(shù)據(jù)的用戶界面。例如,如上所述由開發(fā)人員502所配置的顯示屏700可被顯示成顯示屏1300,如圖13所示。如圖13所示,顯示屏1300包括用于接收對應(yīng)于第一實(shí)體的數(shù)據(jù)的第一實(shí)體區(qū)域702a和用于接收對應(yīng)于第二實(shí)體的數(shù)據(jù)的第二實(shí)體區(qū)域702b。第一實(shí)體區(qū)域702a包括第一和第二實(shí)體域區(qū)域708a和708b。第一和第二實(shí)體域區(qū)域708a和708b分別包括文本錄入框716a和716b,作為用于從用戶1220接收數(shù)據(jù)的用戶界面元素或控件。在步驟1106,在客戶機(jī)處根據(jù)客戶機(jī)側(cè)規(guī)則執(zhí)行對由用戶界面元素接收到的數(shù)據(jù)的第一確認(rèn)。例如,用戶1220可能已經(jīng)將數(shù)據(jù)錄入到圖13中的實(shí)體域區(qū)域708a的文本錄入框716a中??赏ㄟ^將數(shù)據(jù)錄入到文本錄入框716a中來觸發(fā)確認(rèn)規(guī)則,包括實(shí)體級確認(rèn)規(guī)則、實(shí)體域級確認(rèn)規(guī)則、和/或屏幕級確認(rèn)規(guī)則。如此,客戶機(jī)側(cè)規(guī)則引擎1204可根據(jù)確認(rèn)規(guī)則來執(zhí)行確認(rèn)。例如,圖14示出了根據(jù)ー示例實(shí)施例的客戶機(jī)計(jì)算機(jī)系統(tǒng)102的框圖。在圖14的示例中,客戶機(jī)側(cè)業(yè)務(wù)邏輯1402實(shí)現(xiàn)與文本錄入框716a相關(guān)聯(lián)的客戶機(jī)側(cè)規(guī)則1404。在應(yīng)用代碼914中(在應(yīng)用代碼914中的可能已經(jīng)如上所述地被選擇的位置處)遇到客戶機(jī)側(cè)業(yè)務(wù)邏輯1402,并且將其提供給客戶機(jī)側(cè)規(guī)則引擎1204??蛻魴C(jī)側(cè)規(guī)則引擎1204被配置成在客戶機(jī)計(jì)算機(jī)系統(tǒng)102處根據(jù)客戶機(jī)側(cè)規(guī)則來執(zhí)行規(guī)則確認(rèn),包括評估與文本錄入框716a相關(guān)聯(lián)的客戶機(jī)側(cè)規(guī)則1404。在步驟1108,如果從用戶接收到的數(shù)據(jù)根據(jù)客戶機(jī)側(cè)規(guī)則未被確認(rèn)為有效,則在顯示屏中顯示確認(rèn)錯誤??蛻魴C(jī)側(cè)規(guī)則引擎1204執(zhí)行與客戶機(jī)側(cè)規(guī)則相關(guān)聯(lián)的業(yè)務(wù)邏輯來根據(jù)確認(rèn)規(guī)則對實(shí)體、實(shí)體域、以及顯示屏進(jìn)行確認(rèn)。在圖14的示例中,客戶機(jī)側(cè)規(guī)則引擎1204根據(jù)客戶機(jī)側(cè)業(yè)務(wù)邏輯1402評估錄入到文本錄入框716中的數(shù)據(jù)。如果客戶機(jī)側(cè)規(guī)則引擎1204確定數(shù)據(jù)未被確認(rèn)為有效,則客戶機(jī)側(cè)規(guī)則引擎1204可生成確認(rèn)錯誤,其可被顯示在顯示屏1300上。此外,在一實(shí)施例中,取決于特定確認(rèn)規(guī)則的配置,確認(rèn)警告和/或其他確認(rèn)信息可被顯示在顯示屏1300上。例如,如圖13所示,各區(qū)域被呈現(xiàn)在顯示屏1300上以顯示確認(rèn)錯誤。實(shí)體級確認(rèn)錯誤1302可相對應(yīng)于實(shí)體區(qū)域702顯示,實(shí)體域級確認(rèn)錯誤1304可相對應(yīng)于實(shí)體域區(qū)域708顯示,以及屏幕級確認(rèn)錯誤1306可相對應(yīng)于顯示屏1300顯示。確認(rèn)錯誤1302和1304可與它們相應(yīng)的實(shí)體區(qū)域702和實(shí)體域區(qū)域708相鄰顯示,或在顯示屏1300的其他位置顯示。屏幕級確認(rèn)錯誤1306可被顯示在顯示屏1300中的任何位置,包括用于這些錯誤的預(yù)定屏幕位置。例如,在一實(shí)施例中,所有確認(rèn)錯誤(例如,實(shí)體級、實(shí)體域級、以及屏幕級確認(rèn)錯誤)可被顯示在顯示屏1300的底部。此外,確認(rèn)警告和/或其他確認(rèn)信息可被顯示在顯示屏1300中,包括顯示在上述用于顯示確認(rèn)錯誤的區(qū)域中。如果接收到確認(rèn)錯誤,則用戶1220可重新錄入或改變所錄入的數(shù)據(jù)以校正該確認(rèn)錯誤,這可重新觸發(fā)客戶機(jī)側(cè)規(guī)則引擎1204根據(jù)對應(yīng)的確認(rèn)規(guī)則(和/或其他確認(rèn)規(guī)則)進(jìn)行確認(rèn)。確認(rèn)錯誤可能再次發(fā)生,從而需要被校正,或者經(jīng)重新錄入或改變的數(shù)據(jù)可能通過確認(rèn)。注意,如果沒有確認(rèn)錯誤發(fā)生,如果顯示確認(rèn)警告(例如,對于微小問題),或如果校正了先前的確認(rèn)錯誤,則可在顯示屏1300中顯示“確認(rèn)成功”或類似消息。這樣的確認(rèn)成功或類似消息可被顯示在顯示屏1300中,包括顯示在上述用于顯示確認(rèn)錯誤的區(qū)域中。此外,注意,在步驟1108,在一替換實(shí)施例中,所錄入的數(shù)據(jù)可被傳送到服務(wù)器側(cè) 規(guī)則引擎1208以根據(jù)服務(wù)器側(cè)業(yè)務(wù)邏輯514執(zhí)行對數(shù)據(jù)的確認(rèn),而非由客戶機(jī)側(cè)規(guī)則引擎1204進(jìn)行確認(rèn)。例如,確認(rèn)規(guī)則可能需要在客戶機(jī)計(jì)算機(jī)系統(tǒng)102處不能訪問的遠(yuǎn)程數(shù)據(jù)/資源,或可能過于復(fù)雜而不能在客戶機(jī)計(jì)算機(jī)系統(tǒng)102處進(jìn)行評估。在這種情況下,數(shù)據(jù)可被傳送給服務(wù)器106,并且服務(wù)器側(cè)業(yè)務(wù)邏輯514可以執(zhí)行確認(rèn)。確認(rèn)的結(jié)果可被傳送回客戶機(jī)計(jì)算機(jī)系統(tǒng)102,并且被顯示在顯示屏1300上。在步驟1110,如果從用戶接收到的數(shù)據(jù)根據(jù)客戶機(jī)側(cè)規(guī)則被確認(rèn)為有效,則使用戶能夠與顯示屏進(jìn)行交互以嘗試保存數(shù)據(jù)。一旦所有所需數(shù)據(jù)都被錄入到顯示屏中,則用戶1220可嘗試保存所錄入的數(shù)據(jù)(例如,通過選中保存按鈕718)。注意,如下所述,數(shù)據(jù)可能沒有實(shí)際保存到數(shù)據(jù)庫206中,直至進(jìn)ー步確認(rèn)發(fā)生為止。此外,注意,在ー實(shí)施例中,“保存策略”可由開發(fā)人員502指定。例如,默認(rèn)地,如果存在無效實(shí)體,則顯示屏700不便所錄入的數(shù)據(jù)能被保存。然而,開發(fā)人員502可將顯示屏700配置成提供“保存成草稿”的能力,以使得無效實(shí)體可根據(jù)特定策略來提交??舍槍蛻魴C(jī)和服務(wù)器確認(rèn)來配置這樣的策略。在步驟1112,如果用戶與顯示屏進(jìn)行交互以嘗試保存數(shù)據(jù),則將該數(shù)據(jù)從客戶機(jī)傳送到服務(wù)器。例如,如圖12所示,在用戶1220嘗試保存數(shù)據(jù)時,包括對數(shù)據(jù)的改變(例如,新輸入數(shù)據(jù)、經(jīng)更新數(shù)據(jù))的數(shù)據(jù)信號1214可通過網(wǎng)絡(luò)104從客戶機(jī)計(jì)算機(jī)系統(tǒng)102傳送到服務(wù)器106。在步驟1114,在服務(wù)器處根據(jù)服務(wù)器側(cè)規(guī)則執(zhí)行對數(shù)據(jù)的第二確認(rèn)。在一實(shí)施例中,服務(wù)器側(cè)規(guī)則引擎1208可以根據(jù)服務(wù)器側(cè)確認(rèn)規(guī)則對在數(shù)據(jù)信號1214中接收到的數(shù)據(jù)執(zhí)行確認(rèn)。例如,圖15示出了根據(jù)ー示例實(shí)施例的服務(wù)器106的框圖。如圖15所示,月艮務(wù)器106包括實(shí)現(xiàn)與文本錄入框716a相關(guān)聯(lián)的服務(wù)器側(cè)規(guī)則1504的服務(wù)器側(cè)業(yè)務(wù)邏輯1502。服務(wù)器側(cè)業(yè)務(wù)邏輯1502由服務(wù)器側(cè)規(guī)則引擎1208接收。服務(wù)器側(cè)規(guī)則引擎1208被配置成在服務(wù)器106處根據(jù)服務(wù)器側(cè)規(guī)則來執(zhí)行對接收到的數(shù)據(jù)的規(guī)則確認(rèn),包括評估與文本錄入框716a相關(guān)聯(lián)的服務(wù)器側(cè)規(guī)則1504。注意,在一實(shí)施例中,服務(wù)器側(cè)規(guī)則1504可以是與圖14的客戶機(jī)側(cè)規(guī)則1404相同的規(guī)則,以使得在客戶機(jī)側(cè)和服務(wù)器側(cè)對輸入數(shù)據(jù)評估相同的確認(rèn)規(guī)則。在另ー實(shí)施例中,即使可對同一數(shù)據(jù)評估客戶機(jī)側(cè)規(guī)則1404和服務(wù)器側(cè)規(guī)則1504,服務(wù)器側(cè)規(guī)則1504也可以是與客戶機(jī)側(cè)規(guī)則1404不同的確認(rèn)規(guī)則。在步驟1116,如果從用戶接收到的數(shù)據(jù)根據(jù)服務(wù)器側(cè)規(guī)則未被確認(rèn)為有效,則在顯示屏中顯示確認(rèn)錯誤。例如,如果服務(wù)器側(cè)規(guī)則引擎1208根據(jù)服務(wù)器側(cè)業(yè)務(wù)邏輯1502評估錄入到文本錄入框716中的數(shù)據(jù),并確定它未被確認(rèn)為有效,則服務(wù)器側(cè)規(guī)則引擎1208可生成確認(rèn)錯誤1216。如圖12所示,確認(rèn)錯誤1216從服務(wù)器106傳送到客戶機(jī)計(jì)算機(jī)系統(tǒng)102。確認(rèn)錯誤1216可被顯示在顯示屏1300中與實(shí)體(例如,圖13中的實(shí)體級確認(rèn)錯誤1302)、實(shí)體域(例如,實(shí)體域級確認(rèn)錯誤1304)、或顯示屏(屏級確認(rèn)錯誤1306)相對應(yīng)的可從中調(diào)用服務(wù)器側(cè)確認(rèn)的區(qū)域中。如果從服務(wù)器106接收到確認(rèn)錯誤1216,則用戶1220可重新錄入或改變所錄入的數(shù)據(jù)以校正該確認(rèn)錯誤,這可重新觸發(fā)客戶機(jī)側(cè)規(guī)則引擎1204和/或服務(wù)器側(cè)規(guī)則引擎1208根據(jù)對應(yīng)的確認(rèn)規(guī)則(例如,和/或其他確認(rèn)規(guī)則)進(jìn)行確認(rèn)。以與以上描述的相類似的方式,確認(rèn)錯誤可再次發(fā)生,從而需要被校正,或者經(jīng)重新錄入或改變的數(shù)據(jù)可通過確認(rèn)。在步驟1118,如果從用戶接收到的數(shù)據(jù)根據(jù)服務(wù)器側(cè)規(guī)則被確認(rèn)為有效,則數(shù)據(jù)被持久存儲到可在服務(wù)器處訪問的數(shù)據(jù)庫中。如果服務(wù)器側(cè)引擎1208根據(jù)服務(wù)器側(cè)業(yè)務(wù)邏輯1502成功確認(rèn)了數(shù)據(jù),則服務(wù)器106可將該數(shù)據(jù)作為經(jīng)確認(rèn)的數(shù)據(jù)1218傳送到數(shù)據(jù)庫206。數(shù)據(jù)庫1218因此可將該數(shù)據(jù)(例如,新數(shù)據(jù)、經(jīng)更新數(shù)據(jù)等)存儲在存儲208中。數(shù)據(jù)庫206可向服務(wù)器106提供該數(shù)據(jù)被成功存儲的指示,并且服務(wù)器106可向客戶機(jī)計(jì)算機(jī)系統(tǒng)102傳送該數(shù)據(jù)被成功存儲的指示(例如,以指示在步驟1110中所嘗試的保存已經(jīng)完成)。以此方式,與實(shí)體、實(shí)體域、和/或顯示屏相關(guān)聯(lián)的數(shù)據(jù)可在客戶機(jī)-服務(wù)器環(huán)境中得到確認(rèn)??筛鶕?jù)流程圖1110串行或并行地評估任何數(shù)量和組合的各類型的確認(rèn)規(guī)則。如上所述,這樣的確認(rèn)可同步地(例如,當(dāng)在用戶界面中從用戶接收到數(shù)據(jù)時)或異步地發(fā)生。常規(guī)確認(rèn)框架的限制是規(guī)則執(zhí)行的同步本質(zhì)。通常,作為用戶的數(shù)據(jù)輸入過程的一部分,常規(guī)確認(rèn)框架需要確認(rèn)規(guī)則只在數(shù)據(jù)輸入被分配給實(shí)體域時進(jìn)行評估。如此,這些規(guī)則被同步地評估,并且不能在屬性設(shè)置器之外執(zhí)行。這不滿足ー些業(yè)務(wù)應(yīng)用場景,其中需要不僅在屬性設(shè)置器上執(zhí)行規(guī)則,還要由實(shí)體域本身之外的觸發(fā)器來執(zhí)行規(guī)則。在各實(shí)施例中,使確認(rèn)規(guī)則能被異步地評估并且異步地生成結(jié)果。例如,在ー實(shí)施例中,客戶機(jī)側(cè)規(guī)則引擎1204和服務(wù)器側(cè)規(guī)則引擎1208可被配置成執(zhí)行圖16中示出的步驟1602。在步驟1602,以異步的方式執(zhí)行對數(shù)據(jù)的確認(rèn)。例如,確認(rèn)結(jié)果屬性可被用來收集來自異步確認(rèn)執(zhí)行的確認(rèn)結(jié)果?;诔R?guī)屬性設(shè)置器的確認(rèn)規(guī)則可與確認(rèn)結(jié)果屬性分開地聚集??赏ㄟ^將確認(rèn)規(guī)則當(dāng)作與應(yīng)用的顯示屏分開的查看模型的一部分來實(shí)現(xiàn)異步確認(rèn)規(guī)則執(zhí)行。這使得無論何時執(zhí)行確認(rèn)規(guī)則顯示屏都能夠操作??蛻魴C(jī)側(cè)規(guī)則引擎1204和/或服務(wù)器側(cè)規(guī)則引擎1208可被配置成確定確認(rèn)規(guī)則何時需要被評估、異步地執(zhí)行這些確認(rèn)規(guī)則、以及在結(jié)果可用時將通知張貼到對應(yīng)顯示屏。III.其他示例實(shí)施例 確認(rèn)流水線302、應(yīng)用開發(fā)工具504、用戶界面配置模塊506、規(guī)則配置模塊508、規(guī)則放置模塊510、規(guī)則評估器906、規(guī)則插入器908、客戶機(jī)側(cè)規(guī)則引擎1204、以及服務(wù)器側(cè)規(guī)則引擎1208可以用硬件、軟件、固件、或其任何組合來實(shí)現(xiàn)。例如,確認(rèn)流水線302、應(yīng)用開發(fā)工具504、用戶界面配置模塊506、規(guī)則配置模塊508、規(guī)則放置模塊510、規(guī)則評估器906、規(guī)則插入器908、客戶機(jī)側(cè)規(guī)則引擎1204、和/或服務(wù)器側(cè)規(guī)則引擎1208可被實(shí)現(xiàn)為配置成在一個或多個處理器中執(zhí)行的計(jì)算機(jī)程序代碼?;蛘撸_認(rèn)流水線302、應(yīng)用開發(fā)エ具504、用戶界面配置模塊506、規(guī)則配置模塊508、規(guī)則放置模塊510、規(guī)則評估器906、規(guī)則插入器908、客戶機(jī)側(cè)規(guī)則引擎1204、和/或服務(wù)器側(cè)規(guī)則引擎1208可被實(shí)現(xiàn)為硬件邏輯/電子電路。圖17描繪了其中可以實(shí)現(xiàn)本發(fā)明的各實(shí)施例的計(jì)算機(jī)1700的示例性實(shí)現(xiàn)。例如,可以類似于計(jì)算機(jī)1700來實(shí)現(xiàn)客戶機(jī)計(jì)算機(jī)系統(tǒng)102 (例如,客戶機(jī)計(jì)算機(jī)系統(tǒng)102a-102n)和/或服務(wù)器106,并且其可包括計(jì)算機(jī)1700的一個或多個特征和/或替換特征。計(jì)算機(jī)1700可以是例如常規(guī)個人計(jì)算機(jī)、移動計(jì)算機(jī)或工作站形式的通用計(jì)算設(shè)備,或者計(jì)算機(jī)1700可以是專用計(jì)算設(shè)備。此處所提供的對計(jì)算機(jī)1700的描述只是為了說明, 并不是限制性的。如相關(guān)領(lǐng)域的技術(shù)人員所知道的,本發(fā)明的各實(shí)施例可以在其他類型的計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn)。如圖17所示,計(jì)算機(jī)1700包括處理單元1702、系統(tǒng)存儲器1704和總線1706,總線1706將包括系統(tǒng)存儲器1704在內(nèi)的各種系統(tǒng)組件耦合到處理單元1702??偩€1706表示若干類型的總線結(jié)構(gòu)中的任何ー種總線結(jié)構(gòu)的ー個或多個,包括存儲器總線或存儲器控制器、外圍總線、加速圖形端ロ,以及使用各種總線體系結(jié)構(gòu)中的任何一種的處理器或局部總線。系統(tǒng)存儲器1704包括只讀存儲器(ROM) 1708和隨機(jī)存取存儲器(RAM) 1710?;据斎?輸出系統(tǒng)1712 (BIOS)儲存在ROM 1708中。計(jì)算機(jī)1700還具有ー個或多個以下驅(qū)動器用于讀寫硬盤的硬盤驅(qū)動器1714、用于讀或?qū)懣梢苿哟疟P1718的磁盤驅(qū)動器1716、以及用于讀或?qū)懼T如⑶R0M、DVD ROM或其他光介質(zhì)之類的可移動光盤1722的光盤驅(qū)動器1720。硬盤驅(qū)動器1714、磁盤驅(qū)動器1716,以及光盤驅(qū)動器1720分別通過硬盤驅(qū)動器接ロ 1724、磁盤驅(qū)動器接ロ 1726,以及光盤驅(qū)動器接ロ 1728連接到總線1706。驅(qū)動器以及它們相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)提供了對計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊,及其他數(shù)據(jù)的非易失存儲器。雖然描述了硬盤、可移動磁盤和可移動光盤,但是,也可以使用諸如閃存卡、數(shù)字視頻盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)等等之類的其他類型的計(jì)算機(jī)可讀介質(zhì)來存儲數(shù)據(jù)。數(shù)個程序模塊可被儲存在硬盤、磁盤、光盤、ROM或RAM上。這些程序包括操作系統(tǒng)1730、一個或多個應(yīng)用程序1732、其他程序模塊1734,以及程序數(shù)據(jù)1736。應(yīng)用程序1732或程序模塊1734可包括例如用于實(shí)現(xiàn)確認(rèn)流水線302、應(yīng)用開發(fā)工具504、用戶界面配置模塊506、規(guī)則配置模塊508、規(guī)則放置模塊510、規(guī)則評估器906、規(guī)則插入器908、客戶機(jī)側(cè)規(guī)則引擎1204、服務(wù)器側(cè)規(guī)則引擎1208、流程圖400、流程圖1000、流程圖1100、和/或步驟1600 (包括流程圖400、1000和/或1100的任何步驟)、和/或上述任何其他實(shí)施例的計(jì)算機(jī)程序邏輯。用戶可以通過諸如鍵盤1738和定點(diǎn)設(shè)備1740之類的輸入設(shè)備向計(jì)算機(jī)1700中輸入命令和信息。其他輸入設(shè)備(未示出)可包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等。這些及其他輸入設(shè)備常常通過耦合到總線1706的串行端ロ接ロ 1742連接到處理單元1702,但是,也可以通過其他接ロ,諸如并行端ロ、游戲端ロ、通用串行總線(USB)端ロ,來進(jìn)行連接。監(jiān)視器1744或其他類型的顯示設(shè)備也可以經(jīng)由諸如視頻適配器1746之類的接ロ來連接到系統(tǒng)總線1706。除了監(jiān)視器之外,計(jì)算機(jī)1700還可包括其他外圍輸出設(shè)備(未示出),如揚(yáng)聲器和打印機(jī)。計(jì)算機(jī)1700通過網(wǎng)絡(luò)適配器或接ロ 1750、調(diào)制解調(diào)器1752、或用于通過網(wǎng)絡(luò)建立通信的其他裝置連接到網(wǎng)絡(luò)1748 (例如,因特網(wǎng))。調(diào)制解調(diào)器1752 (可以是內(nèi)置的或外置的)通過串行端ロ接ロ 1742連接到總線1706。如此處所使用的,術(shù)語“計(jì)算機(jī)程序介質(zhì)”和“計(jì)算 機(jī)可讀介質(zhì)”被用來泛指諸如與硬盤驅(qū)動器1714相關(guān)聯(lián)的硬盤、可移動磁盤1718、可移動光盤1722,以及諸如閃存卡、數(shù)字視頻盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)等等之類的其他介質(zhì)。如上文所指示的,計(jì)算機(jī)程序和模塊(包括應(yīng)用程序1732及其他程序模塊1734)可被儲存在硬盤、磁盤、光盤、ROM或RAM上。這樣的計(jì)算機(jī)程序也可以通過網(wǎng)絡(luò)接ロ 1750或串行端ロ接ロ 1742來接收。這樣的計(jì)算機(jī)程序,當(dāng)由應(yīng)用執(zhí)行或加載時,使得計(jì)算機(jī)1700能實(shí)現(xiàn)此處所討論的本發(fā)明的特征。相應(yīng)地,這樣的計(jì)算機(jī)程序表示計(jì)算機(jī)1700的控制器。本發(fā)明還涉及包括儲存在任何計(jì)算機(jī)可使用介質(zhì)上的軟件的計(jì)算機(jī)程序產(chǎn)品。這樣的軟件,當(dāng)在一個或多個數(shù)據(jù)處理設(shè)備中執(zhí)行吋,使數(shù)據(jù)處理設(shè)備如此處所描述的那樣操作。本發(fā)明的各實(shí)施例使用現(xiàn)在已知的或?qū)硪阎娜魏斡?jì)算機(jī)可使用或計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的示例包括,但不僅限于,諸如RAM、硬盤驅(qū)動器、軟盤、⑶ROM、DVDROM、zip磁盤、磁帶、磁存儲設(shè)備、光存儲設(shè)備、MEM (存儲器)、基于納米技術(shù)的存儲設(shè)備等等之類的存儲設(shè)備。IV.結(jié)語盡管上文描述了本發(fā)明的各實(shí)施例,但是,應(yīng)該理解,它們只是作為示例來呈現(xiàn)的,而不作為限制。那些精通有關(guān)技術(shù)的人員將理解,在不偏離如所附權(quán)利要求書所定義的本發(fā)明的精神和范圍的情況下,可以在形式和細(xì)節(jié)方面進(jìn)行各種修改。因此,本發(fā)明的范圍不應(yīng)該受到上述示例性實(shí)施例的任一個的限制,而只應(yīng)根據(jù)下面的權(quán)利要求和它們的等效內(nèi)容進(jìn)行定義。
權(quán)利要求
1.ー種方法,包括 使用戶能夠在客戶機(jī)處執(zhí)行ー應(yīng)用; 在所述客戶機(jī)處顯示所述應(yīng)用的顯示屏,它包括能夠從所述用戶接收數(shù)據(jù)的用戶界面元素; 在所述客戶機(jī)處根據(jù)客戶機(jī)側(cè)規(guī)則執(zhí)行對由所述用戶界面元素接收到的數(shù)據(jù)的第一確認(rèn); 如果從所述用戶接收到的數(shù)據(jù)根據(jù)所述客戶機(jī)側(cè)規(guī)則未被確認(rèn)為有效,則在所述顯示屏中顯示確認(rèn)錯誤; 如果從所述用戶接收到的數(shù)據(jù)根據(jù)所述客戶機(jī)側(cè)規(guī)則被確認(rèn)為有效,則使所述用戶能夠與所述顯示屏進(jìn)行交互以嘗試保存所述數(shù)據(jù); 如果所述用戶與所述顯示屏進(jìn)行交互以嘗試保存所述數(shù)據(jù),則將該數(shù)據(jù)從所述客戶機(jī)傳送到所述服務(wù)器; 在所述服務(wù)器處根據(jù)與所述客戶機(jī)側(cè)規(guī)則相對應(yīng)的服務(wù)器側(cè)規(guī)則來執(zhí)行對所述數(shù)據(jù)的第二確認(rèn); 如果從所述用戶接收到的數(shù)據(jù)根據(jù)所述服務(wù)器側(cè)規(guī)則未被確認(rèn)為有效,則在所述顯示屏中顯示確認(rèn)錯誤;以及 如果從所述用戶接收到的數(shù)據(jù)根據(jù)所述服務(wù)器側(cè)規(guī)則被確認(rèn)為有效,則將所述數(shù)據(jù)持久存儲到可在所述服務(wù)器處訪問的數(shù)據(jù)庫中。
2.如權(quán)利要求I所述的方法,其特征在于,所述用戶界面元素被配置成使所述用戶能夠執(zhí)行以下操作中的至少ー個將新數(shù)據(jù)輸入到所述數(shù)據(jù)庫中、更新存儲在所述數(shù)據(jù)庫中的數(shù)據(jù)、或刪除存儲在所述數(shù)據(jù)庫處的數(shù)據(jù)。
3.如權(quán)利要求I所述的方法,其特征在于,在所述客戶機(jī)處根據(jù)客戶機(jī)側(cè)規(guī)則執(zhí)行對由所述用戶界面元素接收到的數(shù)據(jù)的第一確認(rèn)包括 在所述客戶機(jī)處執(zhí)行被配置成根據(jù)所述規(guī)則確認(rèn)所述數(shù)據(jù)的客戶機(jī)側(cè)業(yè)務(wù)邏輯。
4.如權(quán)利要求3所述的方法,其特征在于,在所述服務(wù)器處根據(jù)與所述客戶機(jī)側(cè)規(guī)則相對應(yīng)的服務(wù)器側(cè)規(guī)則執(zhí)行對所述數(shù)據(jù)的第二確認(rèn)包括 在所述服務(wù)器處執(zhí)行被配置成根據(jù)所述規(guī)則確認(rèn)所述數(shù)據(jù)的服務(wù)器側(cè)業(yè)務(wù)邏輯。
5.如權(quán)利要求I所述的方法,其特征在于,在所述客戶機(jī)處根據(jù)客戶機(jī)側(cè)規(guī)則執(zhí)行對由所述用戶界面元素接收到的數(shù)據(jù)的第一確認(rèn)包括 以異步的方式在所述客戶機(jī)處執(zhí)行對所述數(shù)據(jù)的第一確認(rèn)。
6.如權(quán)利要求I所述的方法,其特征在于,所述客戶機(jī)側(cè)規(guī)則是域級規(guī)則、實(shí)體級規(guī)貝IJ、或屏幕級規(guī)則。
7.如權(quán)利要求I所述的方法,其特征在于,還包括 在所述服務(wù)器處根據(jù)不與任何客戶機(jī)側(cè)規(guī)則相對應(yīng)的第二服務(wù)器側(cè)規(guī)則來執(zhí)行對所述數(shù)據(jù)的第二確認(rèn);以及 如果從所述用戶接收到的數(shù)據(jù)根據(jù)所述第二服務(wù)器側(cè)規(guī)則未被確認(rèn)為有效,則在所述顯示屏中顯示確認(rèn)錯誤; 在此,所述持久存儲包括 如果從所述用戶接收到的數(shù)據(jù)根據(jù)所述第一服務(wù)器側(cè)規(guī)則和所述第二服務(wù)器側(cè)規(guī)則被確認(rèn)為有效,則將所述數(shù)據(jù)持久存儲到可在所述服務(wù)器處訪問的數(shù)據(jù)庫中。
8.一種計(jì)算機(jī)程序產(chǎn)品,包括其上記錄有計(jì)算機(jī)程序邏輯的計(jì)算機(jī)可讀介質(zhì),包括 用于使得處理器能夠執(zhí)行權(quán)利要求1-7中任一項(xiàng)的計(jì)算機(jī)程序邏輯裝置。
9.一種系統(tǒng),包括 被配置成在客戶機(jī)上執(zhí)行的應(yīng)用,所述應(yīng)用被配置成在客戶機(jī)處顯示包括能夠從用戶接收數(shù)據(jù)的用戶界面元素的顯示屏; 被配置成在所述客戶機(jī)上執(zhí)行的第一規(guī)則引擎,所述第一規(guī)則引擎被配置成在所述客戶機(jī)處根據(jù)所述應(yīng)用的客戶機(jī)側(cè)規(guī)則來執(zhí)行對由所述用戶界面元素接收到的數(shù)據(jù)的第一確認(rèn);以及 被配置成在服務(wù)器處執(zhí)行的第二規(guī)則引擎; 其中所述應(yīng)用被配置成如果所述第一規(guī)則引擎指示所述數(shù)據(jù)根據(jù)所述客戶機(jī)側(cè)規(guī)則未被確認(rèn)為有效,則在所述顯示屏中顯示確認(rèn)錯誤; 其中所述應(yīng)用被配置成如果從所述用戶接收到的數(shù)據(jù)根據(jù)所述客戶機(jī)側(cè)規(guī)則被確認(rèn)為有效,則使所述用戶能夠嘗試保存所述數(shù)據(jù); 其中如果所述用戶嘗試保存所述數(shù)據(jù),則將所述數(shù)據(jù)從所述客戶機(jī)傳送到所述服務(wù)器; 其中所述第二規(guī)則引擎被配置成在所述服務(wù)器處根據(jù)與所述客戶機(jī)側(cè)規(guī)則相對應(yīng)的服務(wù)器側(cè)規(guī)則執(zhí)行對所述數(shù)據(jù)的第二確認(rèn); 其中所述應(yīng)用被配置成如果所述數(shù)據(jù)根據(jù)所述服務(wù)器側(cè)規(guī)則未被確認(rèn)為有效,則在所述顯示屏中顯示確認(rèn)錯誤;以及 其中如果所述數(shù)據(jù)根據(jù)所述服務(wù)器側(cè)規(guī)則被確認(rèn)為有效,則將所述數(shù)據(jù)持久存儲到可在所述服務(wù)器處訪問的數(shù)據(jù)庫中。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述用戶界面元素被配置成使所述用戶能夠執(zhí)行以下操作中的至少ー個將新數(shù)據(jù)輸入到所述數(shù)據(jù)庫中、更新存儲在所述數(shù)據(jù)庫中的數(shù)據(jù)、或刪除存儲在所述數(shù)據(jù)庫處的數(shù)據(jù)。
11.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述第一規(guī)則引擎被配置成在所述客戶機(jī)處執(zhí)行客戶機(jī)側(cè)業(yè)務(wù)邏輯以根據(jù)所述規(guī)則確認(rèn)所述數(shù)據(jù)。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述第二規(guī)則引擎被配置成在所述服務(wù)器處執(zhí)行服務(wù)器側(cè)業(yè)務(wù)邏輯,所述服務(wù)器側(cè)業(yè)務(wù)邏輯被配置成根據(jù)所述規(guī)則確認(rèn)所述數(shù)據(jù)。
13.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述第一規(guī)則引擎被配置成以異步的方式在所述客戶機(jī)處執(zhí)行對所述數(shù)據(jù)的第一確認(rèn)。
14.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述客戶機(jī)側(cè)規(guī)則和所述服務(wù)器側(cè)規(guī)則是域級規(guī)則或?qū)嶓w級規(guī)則。
15.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述第二規(guī)則引擎被配置成在所述服務(wù)器處根據(jù)不與任何客戶機(jī)側(cè)規(guī)則相對應(yīng)的第二服務(wù)器側(cè)規(guī)則執(zhí)行對所述數(shù)據(jù)的第二確認(rèn); 其中如果從所述用戶接收到的數(shù)據(jù)根據(jù)所述第二服務(wù)器側(cè)規(guī)則未被確認(rèn)為有效,則在所述顯示屏中顯示確認(rèn)錯誤;以及 其中如果從所述用戶接收到的數(shù)據(jù)根據(jù)所述第一服務(wù)器側(cè)規(guī)則和所述第二服務(wù)器側(cè)規(guī)則被確認(rèn)為有效,則將所述數(shù)據(jù)持久存儲到所述數(shù)據(jù)庫中 。
全文摘要
提供了用于在客戶機(jī)-服務(wù)器體系結(jié)構(gòu)中配置確認(rèn)規(guī)則的技術(shù)和用于實(shí)施這些確認(rèn)規(guī)則的技術(shù)。使開發(fā)人員能夠配置應(yīng)用的顯示屏以使客戶機(jī)處的用戶能夠輸入數(shù)據(jù)。還使開發(fā)人員能夠輸入被配置成用來在客戶機(jī)處和/或在服務(wù)器處確認(rèn)數(shù)據(jù)的確認(rèn)規(guī)則。該確認(rèn)規(guī)則被整合到應(yīng)用的代碼中。在應(yīng)用的執(zhí)行期間,可存在著用于在客戶機(jī)處評估確認(rèn)規(guī)則的客戶機(jī)側(cè)規(guī)則引擎,以及可存在著用于在服務(wù)器處評估確認(rèn)規(guī)則的服務(wù)器側(cè)規(guī)則引擎。客戶機(jī)側(cè)規(guī)則引擎和服務(wù)器側(cè)規(guī)則引擎可被配置成以異步的方式來評估確認(rèn)規(guī)則。
文檔編號G06F21/00GK102696036SQ201080052251
公開日2012年9月26日 申請日期2010年10月29日 優(yōu)先權(quán)日2009年11月20日
發(fā)明者D·澤費(fèi)爾特, P·拉瑪納坦 申請人:微軟公司