專(zhuān)利名稱(chēng):數(shù)據(jù)自動(dòng)更新的制作方法
背景技術(shù):
1.發(fā)明領(lǐng)域本發(fā)明涉及自動(dòng)地更新軟件應(yīng)用程序使用的數(shù)據(jù)元素。尤其是,本發(fā)明涉及自動(dòng)地更新軟件應(yīng)用程序使用的表單文檔中的數(shù)據(jù)元素。
2.相關(guān)技術(shù)描述現(xiàn)有的系統(tǒng)能允許正訪問(wèn)一個(gè)相同數(shù)據(jù)庫(kù)的不同的或相同的應(yīng)用程序同時(shí)地使用/訪問(wèn)該數(shù)據(jù)庫(kù)。尤其是,使用包含多數(shù)據(jù)元素的多表單文檔的應(yīng)用程序,允許使用應(yīng)用程序的用戶(hù)同時(shí)編輯(更新)在表單中的數(shù)據(jù)元素。例如,一個(gè)數(shù)據(jù)元素可以是一個(gè)字段,該字段包含了條目(數(shù)據(jù))。典型地,為了獲得同步使用,當(dāng)?shù)谝粋€(gè)用戶(hù)開(kāi)始操作一個(gè)表單時(shí),例如輸入或編輯數(shù)據(jù)元素,由于該表正處于被第一個(gè)用戶(hù)訪問(wèn)的狀態(tài),因而要預(yù)防其他用戶(hù)訪問(wèn)該相同數(shù)據(jù)庫(kù),要預(yù)防其他用戶(hù)操作該表單或該表單的某些數(shù)據(jù)元素,該系統(tǒng)會(huì)對(duì)相同數(shù)據(jù)庫(kù)或可應(yīng)用的數(shù)據(jù)元素加鎖。因此,許多典型的系統(tǒng)執(zhí)行一個(gè)“后進(jìn)后贏”(“a last in,last win”)的更新過(guò)程。尤其是,在一個(gè)典型系統(tǒng)里,第一個(gè)用戶(hù)在對(duì)一個(gè)邏輯表完成最終操作,如對(duì)該表進(jìn)行電子標(biāo)記,存儲(chǔ),打印或傳遞之前,該第一個(gè)用戶(hù)在該表單中輸入的數(shù)據(jù)可能被另一個(gè)用戶(hù)覆蓋。
進(jìn)一步講,在維護(hù)一個(gè)公共(主/基本/中心)數(shù)據(jù)庫(kù)和本地(基于應(yīng)用程序的)數(shù)據(jù)庫(kù)的現(xiàn)有系統(tǒng)中,該相同數(shù)據(jù)庫(kù)和該基于應(yīng)用程序的數(shù)據(jù)庫(kù)應(yīng)該是同步的。例如,一個(gè)網(wǎng)絡(luò)環(huán)境中,如客房服務(wù)器網(wǎng)絡(luò)中,該相同數(shù)據(jù)庫(kù)是一個(gè)網(wǎng)絡(luò)(服務(wù)器)數(shù)據(jù)庫(kù),位于客戶(hù)終端上的基于應(yīng)用程序的本地?cái)?shù)據(jù)庫(kù),允許用戶(hù)方便地執(zhí)行應(yīng)用程序任務(wù)而無(wú)需網(wǎng)絡(luò)連接。當(dāng)維護(hù)兩個(gè)分離的數(shù)據(jù)庫(kù)時(shí),無(wú)論是在一個(gè)網(wǎng)絡(luò)環(huán)境之中還是在其中有應(yīng)用程序執(zhí)行的一個(gè)單機(jī)環(huán)境中,每個(gè)數(shù)據(jù)庫(kù)都擁有一個(gè)基于應(yīng)用程序的數(shù)據(jù)庫(kù)和一個(gè)本地的相同數(shù)據(jù)庫(kù),則一個(gè)事務(wù)日志數(shù)據(jù)庫(kù)可維護(hù)對(duì)在該基于應(yīng)用程序的數(shù)據(jù)庫(kù)所進(jìn)行的改變的一個(gè)日志。該基于應(yīng)用程序的數(shù)據(jù)庫(kù)可在晚些時(shí)候,例如在該用戶(hù)重新連接于該網(wǎng)絡(luò)的時(shí)候,被同步于該相同數(shù)據(jù)庫(kù)。但是,當(dāng)用戶(hù)的改變被分別施加到該相同數(shù)據(jù)庫(kù)時(shí),這種同步就引發(fā)”后進(jìn)后贏”的問(wèn)題。例如,在該網(wǎng)絡(luò)環(huán)境中,由于同步,脫機(jī)進(jìn)行的改變可能成為在該主數(shù)據(jù)庫(kù)中的最新改變,而不管其它用戶(hù)已執(zhí)行過(guò)什么。
更具體講,在維護(hù)兩個(gè)數(shù)據(jù)庫(kù)并且正使用可共享或可使用公共數(shù)據(jù)元素的表單的該系統(tǒng)中,當(dāng)用戶(hù)同時(shí)編輯在不同表單里的公共數(shù)據(jù)元素時(shí),一個(gè)用戶(hù)并不會(huì)意識(shí)到其他用戶(hù)對(duì)數(shù)據(jù)所做的更改,有可能覆蓋(刪除)其它用戶(hù)的數(shù)據(jù)。進(jìn)一步講,在這樣一個(gè)系統(tǒng)里,該用戶(hù)可能認(rèn)可一個(gè)表單,而不知道由其它用戶(hù)對(duì)其所進(jìn)行的改變。另外,對(duì)用戶(hù)而言,其提供的是一個(gè)低效的數(shù)據(jù)輸入系統(tǒng)。例如,兩個(gè)用戶(hù)打開(kāi)同一個(gè)空表單或打開(kāi)共享公共數(shù)據(jù)元素的不同空表單,當(dāng)?shù)谝粋€(gè)用戶(hù)完成該表單操作并存儲(chǔ)該表單(把數(shù)據(jù)存儲(chǔ)至該主數(shù)據(jù)庫(kù)中)時(shí),第二個(gè)用戶(hù)并不知道由他打開(kāi)的該表單中的一些字段已經(jīng)被第一個(gè)用戶(hù)操作完成了。那么,當(dāng)?shù)诙€(gè)用戶(hù)也做完該字段操作并存儲(chǔ)該表單時(shí),則第一個(gè)用戶(hù)的數(shù)據(jù)就被覆蓋或刪除。進(jìn)一步講,該第二個(gè)用戶(hù)不能利用通過(guò)使用已由第一個(gè)用戶(hù)完成的字段的好處,而需要重復(fù)數(shù)據(jù)鍵入。
發(fā)明概述根據(jù)本發(fā)明的實(shí)施方案,可通過(guò)監(jiān)控一個(gè)數(shù)據(jù)庫(kù)來(lái)檢測(cè)在數(shù)據(jù)庫(kù)中被訪問(wèn)的數(shù)據(jù)的變化,以及運(yùn)用同步規(guī)則響應(yīng)檢測(cè)到的變化,從而在使用該數(shù)據(jù)期間更新該訪問(wèn)數(shù)據(jù)的方式,實(shí)現(xiàn)本發(fā)明。
進(jìn)一步講,可通過(guò)一個(gè)設(shè)備實(shí)現(xiàn)本發(fā)明,包含一個(gè)處理器,監(jiān)控該數(shù)據(jù)庫(kù)以檢測(cè)在該數(shù)據(jù)庫(kù)中對(duì)被訪問(wèn)的數(shù)據(jù)所進(jìn)行的改變,并根據(jù)相應(yīng)于該被檢測(cè)的改變的同步規(guī)則,在使用該數(shù)據(jù)期間更新該訪問(wèn)數(shù)據(jù)。
更進(jìn)一步講,可通過(guò)一個(gè)過(guò)程實(shí)現(xiàn)本發(fā)明,該過(guò)程訪問(wèn)一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù),輸入該被訪問(wèn)的數(shù)據(jù)到一個(gè)表單,使用被第一個(gè)用戶(hù)輸入過(guò)的被訪問(wèn)數(shù)據(jù)的邏輯表,監(jiān)控該數(shù)據(jù)庫(kù)(13)以檢測(cè)該表單正被該第一個(gè)用戶(hù)使用時(shí)由第二個(gè)用戶(hù)對(duì)該被訪問(wèn)的數(shù)據(jù)的改變,根據(jù)相應(yīng)于該被檢測(cè)的改變的規(guī)則,在該表單正被第一個(gè)用戶(hù)使用的同時(shí)更新該表單中的該被訪問(wèn)的數(shù)據(jù),根據(jù)該更新過(guò)程顯示該被訪問(wèn)的數(shù)據(jù)的更新?tīng)顟B(tài),以及由第一個(gè)用戶(hù)存儲(chǔ)該被訪問(wèn)的數(shù)據(jù)進(jìn)入該數(shù)據(jù)庫(kù)。該規(guī)則被用于同步數(shù)據(jù)庫(kù)里的數(shù)據(jù)的同時(shí)改變。該被訪問(wèn)的數(shù)據(jù)的該改變狀態(tài)可以是一個(gè)被顯示的信息,它指示自從第一個(gè)用戶(hù)開(kāi)始使用該被訪問(wèn)的數(shù)據(jù)后,是否該被訪問(wèn)的數(shù)據(jù)被改變;指示是否該第一個(gè)用戶(hù)改變了該被訪問(wèn)的數(shù)據(jù);以及指示是否當(dāng)?shù)谝粋€(gè)用戶(hù)正使用該被訪問(wèn)的數(shù)據(jù)時(shí)第二個(gè)用戶(hù)改變了該被訪問(wèn)的數(shù)據(jù)。進(jìn)一步講,本發(fā)明可通過(guò)在一個(gè)單機(jī)計(jì)算機(jī),或者在諸如客戶(hù)-服務(wù)器系統(tǒng)或INTERNET網(wǎng)的網(wǎng)絡(luò)環(huán)境中的一個(gè)單機(jī)處理設(shè)備來(lái)實(shí)現(xiàn)。
再進(jìn)一步講,可通過(guò)一個(gè)設(shè)備實(shí)現(xiàn)本發(fā)明,該設(shè)備包含用于訪問(wèn)存儲(chǔ)在一個(gè)數(shù)據(jù)庫(kù)里的數(shù)據(jù)的裝置;用于輸入該被訪問(wèn)的數(shù)據(jù)到一個(gè)表單的裝置;用于使用具有第一個(gè)用戶(hù)輸入訪問(wèn)的數(shù)據(jù)的表單的裝置;用于監(jiān)控該數(shù)據(jù)庫(kù)以檢測(cè)當(dāng)該表單正被該第一個(gè)用戶(hù)使用時(shí)由第二個(gè)用戶(hù)對(duì)該被訪問(wèn)的數(shù)據(jù)所做的改變的裝置;以及用于根據(jù)相應(yīng)于該被檢測(cè)的改變的規(guī)則當(dāng)該表單正被第一個(gè)用戶(hù)使用時(shí)更新該表單中的該被訪問(wèn)的數(shù)據(jù)的裝置。
更進(jìn)一步講,可通過(guò)自動(dòng)更新表單的一個(gè)系統(tǒng)實(shí)現(xiàn)本發(fā)明,該系統(tǒng)包含把數(shù)據(jù)存儲(chǔ)至一個(gè)數(shù)據(jù)庫(kù)的一個(gè)服務(wù)器;以及包含客戶(hù)端,客戶(hù)端經(jīng)由一個(gè)網(wǎng)絡(luò)被連接到該服務(wù)器并訪問(wèn)存儲(chǔ)在該數(shù)據(jù)庫(kù)中的該數(shù)據(jù),在該數(shù)據(jù)庫(kù)中該被訪問(wèn)的數(shù)據(jù)是由第一個(gè)用戶(hù)輸入到一個(gè)表單中的,數(shù)據(jù)庫(kù)正被監(jiān)控以檢測(cè)當(dāng)該表單正被該第一個(gè)用戶(hù)使用時(shí),由第二個(gè)用戶(hù)對(duì)該被訪問(wèn)的數(shù)據(jù)所做的改變以及根據(jù)相應(yīng)于該被檢測(cè)的改變的規(guī)則當(dāng)該表單正被第一個(gè)用戶(hù)使用時(shí)。在該表單中該被訪問(wèn)的數(shù)據(jù)正被更新。
再更進(jìn)一步講,可通過(guò)一個(gè)計(jì)算機(jī)可讀媒體實(shí)現(xiàn)本發(fā)明,該媒體用處理指令編碼,該處理指令用于完成自動(dòng)更新被一臺(tái)計(jì)算機(jī)執(zhí)行的表單的一種方法,該方法包含訪問(wèn)存儲(chǔ)在一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù);輸入該被訪問(wèn)的數(shù)據(jù)到一個(gè)表單;使用具有由第一個(gè)用戶(hù)輸入的該被訪問(wèn)的數(shù)據(jù)的該表單;監(jiān)控該數(shù)據(jù)庫(kù)以檢測(cè)當(dāng)該表單正被第一個(gè)用戶(hù)使用時(shí);由第二個(gè)用戶(hù)對(duì)該被訪問(wèn)的數(shù)據(jù)所做的改變以及根據(jù)相應(yīng)于該被檢測(cè)的改變的規(guī)則當(dāng)該數(shù)據(jù)正被第一個(gè)用戶(hù)使用的更新該表單中的該被訪問(wèn)的數(shù)據(jù)。
附圖簡(jiǎn)述本發(fā)明的優(yōu)點(diǎn)將變得顯而易見(jiàn),并且其優(yōu)點(diǎn)將從該優(yōu)選實(shí)施方案的以下描述中更方便快速地體會(huì)到,聯(lián)系以下附圖
圖1.是一個(gè)軟件功能方框圖,它根據(jù)一個(gè)計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施方案中的本發(fā)明,在該計(jì)算機(jī)系統(tǒng)中本發(fā)明被實(shí)現(xiàn)。
圖2.是一個(gè)軟件功能方框圖,它根據(jù)另一個(gè)計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施方案中的本發(fā)明,在該另一個(gè)計(jì)算機(jī)系統(tǒng)中本發(fā)明被實(shí)現(xiàn)。
圖3.是在本發(fā)明中操作的一個(gè)流程圖。
圖4-6是根據(jù)本發(fā)明的一個(gè)軟件過(guò)程的流程圖。
優(yōu)選實(shí)施方案的描述詳細(xì)參考本發(fā)明的本優(yōu)選實(shí)施方案,它們的實(shí)例在附圖中被示出,其中相同的參照數(shù)通篇都指的是相同的元素。該實(shí)施方案在以下被描述以便通過(guò)參照?qǐng)D示解釋本發(fā)明。
圖1是根據(jù)本發(fā)明在一個(gè)網(wǎng)絡(luò)10中被實(shí)現(xiàn)的軟件功能方框圖。例如,該網(wǎng)絡(luò)10可以有一個(gè)常規(guī)表單面構(gòu)形,以及一個(gè)常規(guī)結(jié)構(gòu),諸如一個(gè)客戶(hù)-服務(wù)器結(jié)構(gòu),使用常規(guī)的通信協(xié)議。例如,該網(wǎng)絡(luò)10可以是一個(gè)局域網(wǎng),或是一個(gè)廣域網(wǎng),諸如INTERNET網(wǎng)。參照?qǐng)D1,至少一個(gè)服務(wù)器11與網(wǎng)絡(luò)12通信并且該服務(wù)器11把數(shù)據(jù)存儲(chǔ)至一個(gè)數(shù)據(jù)庫(kù)13中。例如,該數(shù)據(jù)庫(kù)13(也被稱(chēng)為公共/網(wǎng)絡(luò)/中心/基本數(shù)據(jù)庫(kù))可以是一個(gè)常規(guī)(商用)的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),它支持常規(guī)或標(biāo)準(zhǔn)查詢(xún)語(yǔ)言,諸如結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)。客戶(hù)終端14a-14n與該網(wǎng)絡(luò)12通信并執(zhí)行軟件,該軟件經(jīng)由使用該DBMS功能的該網(wǎng)絡(luò)12以使用/訪問(wèn)數(shù)據(jù)庫(kù)13中的該數(shù)據(jù)。例如,該至少一個(gè)的服務(wù)器11以及該客戶(hù)終端14a-14n可以是常規(guī)計(jì)算機(jī),諸如個(gè)人,便攜和手持計(jì)算機(jī),或是其它計(jì)算設(shè)備,它們能夠存儲(chǔ),能夠顯示和處理信息,能夠經(jīng)由使用常規(guī)技術(shù)的一個(gè)網(wǎng)絡(luò)通過(guò)接收和傳輸信息以與遠(yuǎn)程計(jì)算機(jī)和計(jì)算設(shè)備通信。
每個(gè)客戶(hù)終端14a可執(zhí)行應(yīng)用程序(軟件)16a-16n,應(yīng)用程序訪問(wèn)該網(wǎng)絡(luò)數(shù)據(jù)庫(kù)13以在數(shù)據(jù)庫(kù)中檢索和存儲(chǔ)數(shù)據(jù),例如由用戶(hù),檢索和存儲(chǔ)數(shù)據(jù)。該數(shù)據(jù)的使用可能涉及瀏覽,編輯,在該數(shù)據(jù)庫(kù)13中的新數(shù)據(jù)的輸入(創(chuàng)建)或者該數(shù)據(jù)的處理。進(jìn)一步講,應(yīng)用程序16a-16n可以分別維護(hù)本地?cái)?shù)據(jù)庫(kù)18a-n。雖然在一個(gè)實(shí)施方案中,一個(gè)應(yīng)用程序不能維護(hù)一個(gè)分離的本地?cái)?shù)據(jù)庫(kù)。本發(fā)明能處理被包含于每個(gè)應(yīng)用程序16中的某個(gè)程序段的表單。在一個(gè)優(yōu)選實(shí)施方案中,本發(fā)明處理軟件過(guò)程(更新過(guò)程)20a-20n的表單,該表單執(zhí)行于計(jì)算機(jī)的一個(gè)多任務(wù)操作系統(tǒng)之中并且使用常規(guī)編程技術(shù)以與該應(yīng)用程序16分別通信。尤其是,每個(gè)軟件過(guò)程20可以在客戶(hù)終端14中由一個(gè)線程執(zhí)行來(lái)實(shí)現(xiàn)。分別對(duì)應(yīng)于應(yīng)用程序16a-16n的軟件過(guò)程20a-20n的操作將在以下被詳細(xì)描述。
圖2是根據(jù)在一個(gè)單機(jī)計(jì)算設(shè)備30中實(shí)現(xiàn)的本發(fā)明的一個(gè)軟件功能方框圖。例如,該計(jì)算設(shè)備30可以是一臺(tái)常規(guī)計(jì)算機(jī),諸如一臺(tái)個(gè)人、便攜和手持計(jì)算機(jī),或者是能夠存儲(chǔ)、顯示和處理信息的其它計(jì)算設(shè)備。用于存儲(chǔ)信息的存儲(chǔ)設(shè)備,諸如存儲(chǔ)器,硬盤(pán),或移動(dòng)媒體驅(qū)動(dòng)器(如,CD-R,CD-ROM,CD-RW,DVD-ROM,DVD-R和DVD-RAM)可通過(guò)常規(guī)技術(shù)連接到該設(shè)備30以提供對(duì)該設(shè)備30的本地存儲(chǔ)。雖然,在一個(gè)單機(jī)系統(tǒng)中實(shí)現(xiàn)本發(fā)明不需要該計(jì)算設(shè)備30,但該計(jì)算設(shè)備30有能力經(jīng)由使用常規(guī)技術(shù)的網(wǎng)絡(luò)接收和傳輸信息以與其它計(jì)算機(jī)和計(jì)算設(shè)備通信。設(shè)備30也執(zhí)行應(yīng)用程序(軟件)16a-16n。該應(yīng)用程序16a-16n訪問(wèn)存儲(chǔ)在該設(shè)備30本地中的相同數(shù)據(jù)庫(kù)32,例如通過(guò)用戶(hù)由于使用的目的來(lái)檢索在該數(shù)據(jù)庫(kù)32中的數(shù)據(jù)和存儲(chǔ)數(shù)據(jù)在該數(shù)據(jù)庫(kù)32中。類(lèi)似于圖1所示的該實(shí)施方案,該數(shù)據(jù)庫(kù)32可以是一個(gè)常規(guī)DBMS,該DBMA支持常規(guī)的或者標(biāo)準(zhǔn)的查詢(xún)語(yǔ)言,如SQL語(yǔ)言。該數(shù)據(jù)的使用可能涉及瀏覽,編輯,在該數(shù)據(jù)庫(kù)32中的新數(shù)據(jù)的輸入(創(chuàng)建)或者該數(shù)據(jù)的處理。進(jìn)一步講,雖然并不被需要,該應(yīng)用程序16a-16n還可以分別維護(hù)相應(yīng)的應(yīng)用數(shù)據(jù)庫(kù)18a-18n。本發(fā)明可分別處理被包含于每個(gè)應(yīng)用程序16中的一個(gè)程序段的表單。在一個(gè)實(shí)施方案中,本發(fā)明處理軟件過(guò)程20a-20n的表單,該表單執(zhí)行于該設(shè)備30上的一個(gè)多任務(wù)操作系統(tǒng)環(huán)境之中并且使用常規(guī)編程技術(shù)以與該應(yīng)用程序16分別通信。尤其是,每個(gè)軟件過(guò)程20可以在設(shè)備30中由一個(gè)線程執(zhí)行來(lái)實(shí)現(xiàn)。分別對(duì)應(yīng)于應(yīng)用程序16a-16n的軟件過(guò)程20a-20n的操作將在以下被詳細(xì)描述。當(dāng)然,本發(fā)明不限于或不被約束于任何特定硬件結(jié)構(gòu)并且上述的圖1和圖2僅僅提供例子。
本發(fā)明的操作將參照?qǐng)D3進(jìn)行描述。本發(fā)明的操作對(duì)單機(jī)結(jié)構(gòu)或是網(wǎng)絡(luò)結(jié)構(gòu)都是相同的。因此,該網(wǎng)絡(luò)結(jié)構(gòu)(圖1)的操作將做為一個(gè)實(shí)施例被描述。當(dāng)本發(fā)明涉及同步用戶(hù)對(duì)一個(gè)數(shù)據(jù)庫(kù)所進(jìn)行的同時(shí)改變時(shí),本發(fā)明的一個(gè)實(shí)施方案是處理一個(gè)系統(tǒng)里的一個(gè)軟件過(guò)程的形式,在該系統(tǒng)中應(yīng)用程序16使用表單文檔。例如,一個(gè)健康/診所信息系統(tǒng)包括各種各樣的應(yīng)用程序,應(yīng)用程序使用和分享表單,例如輸入病人數(shù)據(jù)。本發(fā)明的該系統(tǒng)使用常規(guī)技術(shù)以維護(hù)由表單的用戶(hù)對(duì)該數(shù)據(jù)庫(kù)13中的該數(shù)據(jù)所進(jìn)行的多種修改的某一歷史數(shù)據(jù)。例如,一個(gè)交易日志數(shù)據(jù)庫(kù)可以維護(hù)對(duì)該數(shù)據(jù)庫(kù)13進(jìn)行改變的一個(gè)日志。當(dāng)例如基于一個(gè)用戶(hù)命令一個(gè)應(yīng)用程序16a在40處打開(kāi)一個(gè)表單的時(shí)候,該應(yīng)用程序16訪問(wèn)相應(yīng)于從該網(wǎng)絡(luò)數(shù)據(jù)庫(kù)13打開(kāi)的表單的數(shù)據(jù),并且通過(guò)該用戶(hù)把該數(shù)據(jù)輸入進(jìn)正在處理(使用)的該表單中。每個(gè)應(yīng)用程序16可以使用一個(gè)或多個(gè)表單并且表單可以有重疊的數(shù)據(jù)元素。
因?yàn)榫S護(hù)對(duì)數(shù)據(jù)庫(kù)13中該數(shù)據(jù)的該多種修改的該歷史數(shù)據(jù),在被打開(kāi)的表單中的該數(shù)據(jù)元素的一個(gè)更新?tīng)顟B(tài)信息或一個(gè)更新日志可以被提供給在42處的該用戶(hù),以提供該用戶(hù)一個(gè)機(jī)會(huì)以重新瀏覽更新。為了提供被打開(kāi)邏輯表的數(shù)據(jù)元素的任何可用更新數(shù)據(jù)對(duì)應(yīng)于該應(yīng)用程序16a的軟件過(guò)程20a會(huì)在44處定期地(根據(jù)系統(tǒng)需求被定義)檢查該網(wǎng)絡(luò)數(shù)據(jù)庫(kù)。進(jìn)一步講,該軟件過(guò)程20a可以維護(hù)被打開(kāi)表單的修改的一個(gè)歷史,以至于軟件過(guò)程20a可以定義一個(gè)時(shí)間,該表單或者該本地應(yīng)用數(shù)據(jù)庫(kù)18a最終與該網(wǎng)絡(luò)數(shù)據(jù)庫(kù)13同步。如果被打開(kāi)表單的該數(shù)據(jù)元素所進(jìn)行的多種改變是可用的,那么在數(shù)據(jù)庫(kù)13中改變的規(guī)則應(yīng)用在46處以更新被打開(kāi)表單的數(shù)據(jù)元素。一旦打開(kāi)該表單,就在48處通知一個(gè)用戶(hù)有關(guān)對(duì)此被打開(kāi)表單的任何更新。進(jìn)一步講,在50處存入該表單之前如果有必要,一個(gè)更新?tīng)顟B(tài)信息或更新的一個(gè)日志可以在48處被提供給該用戶(hù),以便該用戶(hù)提供重新瀏覽更新以及改變更新。
因此,當(dāng)通過(guò)實(shí)際減少或消除無(wú)意地覆蓋其它用戶(hù)的數(shù)據(jù)這種無(wú)效勞動(dòng)以對(duì)一個(gè)數(shù)據(jù)庫(kù)進(jìn)行同時(shí)改變的時(shí)候,本發(fā)明提供一次有效的“后進(jìn)后贏”更新過(guò)程(即同步過(guò)程)。進(jìn)一步講,在42處和48處提供更新?tīng)顟B(tài)信息以容納有微小差異的數(shù)據(jù)(字段)而字段可以被打開(kāi)該表單的用戶(hù)改變,也可以自該表單被打開(kāi)以來(lái)未被改變但該表單在打開(kāi)期間被該網(wǎng)絡(luò)數(shù)據(jù)庫(kù)13更新。就像某些情況下會(huì)出現(xiàn)法律分歧一樣,也可以由用戶(hù)來(lái)核數(shù)據(jù),該用戶(hù)在把該數(shù)據(jù)存入網(wǎng)絡(luò)數(shù)據(jù)庫(kù)13之前,為有效化可以在該表單中重新瀏覽對(duì)該數(shù)據(jù)的所有當(dāng)前和過(guò)去的改變(通過(guò)該用戶(hù)和其它用戶(hù)進(jìn)行的改變)。進(jìn)一步講,自動(dòng)更新被第一個(gè)用戶(hù)打開(kāi)并進(jìn)行數(shù)據(jù)輸入的表單,可以由第二個(gè)用戶(hù)消除第一個(gè)用戶(hù)的不必要的數(shù)據(jù)項(xiàng)來(lái)完成。例如,一個(gè)用戶(hù)可以打開(kāi)一個(gè)大部分空的表單并完成(填入)大部分字段。在第一個(gè)用戶(hù)存入該表單之前,第二個(gè)用戶(hù)可以在能發(fā)現(xiàn)該表單大部分為空的一個(gè)不同位置,打開(kāi)相同的表單。如果第一個(gè)用戶(hù)存入該被完成的表,即把在該表單中輸入的數(shù)據(jù)存入到該網(wǎng)絡(luò)數(shù)據(jù)庫(kù)13,之后通過(guò)本發(fā)明的軟件過(guò)程20,第二個(gè)用戶(hù)的邏輯表將會(huì)被自動(dòng)更新(填入)。第二個(gè)用戶(hù)僅僅必須完成該表單的其余空字段以節(jié)省時(shí)間。
軟件過(guò)程20的操作將參照?qǐng)D4-6被更詳細(xì)地描述。尤其是,圖4-6是為響應(yīng)對(duì)一個(gè)基本數(shù)據(jù)庫(kù)的改變以在該表單為打開(kāi)的時(shí)候更新一個(gè)表單的數(shù)據(jù)元素而被運(yùn)用的一個(gè)示例性同步規(guī)則集合的流程圖。一個(gè)表單可為以是一個(gè)數(shù)據(jù)元素/數(shù)據(jù)項(xiàng)的集合。例如可以代表一個(gè)“姓”和一個(gè)“電話(huà)號(hào)碼”字段,一個(gè)數(shù)據(jù)元素包括一個(gè)姓和電話(huà)號(hào)碼鍵入值(數(shù)據(jù))。在圖4中,60和62處的軟件過(guò)程20,為了將在一個(gè)被打開(kāi)的表單中的被訪問(wèn)的數(shù)據(jù)輸入(更新)為新的有效數(shù)據(jù),定期檢查該數(shù)據(jù)庫(kù)(例如網(wǎng)絡(luò)數(shù)據(jù)庫(kù)13和本地基本數(shù)據(jù)庫(kù)32)。尤其是,對(duì)于在一個(gè)被打開(kāi)表單中的每個(gè)數(shù)據(jù)元素而言,為一次更新,在62處檢查該網(wǎng)絡(luò)數(shù)據(jù)庫(kù)13。如果更新是有效的,在64處該新記錄被改變的數(shù)據(jù)元素以及與其相關(guān)的信息。將從該網(wǎng)絡(luò)數(shù)據(jù)庫(kù)13中檢索出來(lái),并作為一個(gè)新記錄隊(duì)列(列表)來(lái)處理而被裝入。該軟件過(guò)程20檢查從該表單上一次被更新的時(shí)間開(kāi)始就存在的記錄或者對(duì)照新記錄(例如,來(lái)自數(shù)據(jù)庫(kù)13,32的記錄)檢查從該表單被打開(kāi)(舊記錄)的時(shí)間開(kāi)始就存在的記錄。例如,舊記錄是正被使用或被操作的記錄,同時(shí)舊記錄可以包含存儲(chǔ)在該基于應(yīng)用的數(shù)據(jù)庫(kù)18中的數(shù)據(jù),或者存儲(chǔ)在該客戶(hù)終端14存儲(chǔ)器中的數(shù)據(jù)。開(kāi)始時(shí),在66處對(duì)照該新記錄檢查在被打開(kāi)表單中具有輸入項(xiàng)(數(shù)據(jù))的或者被一個(gè)用戶(hù)編輯過(guò)(完成過(guò)或填入過(guò)數(shù)據(jù)元素)的舊記錄。如果在66處有一條在該打開(kāi)表單中被處理過(guò)的一條舊記錄,則在68處為一次數(shù)據(jù)元素匹配(即作為與該新記錄相同的數(shù)據(jù)元素的該舊記錄,例如二者都是“姓”)而比較該舊記錄和該新記錄。例如,一個(gè)匹配可以被定義為如果記錄有相同的類(lèi)型和索引。在一個(gè)表單中的組合數(shù)據(jù)元素可以包含一個(gè)或輸入項(xiàng)或者選擇項(xiàng),例如在一個(gè)健康信息系統(tǒng)中的病人藥物和過(guò)敏反應(yīng)。如果該新記錄是一個(gè)組合,則一個(gè)組合標(biāo)識(shí)也可以被用做一個(gè)匹配準(zhǔn)則。如果在68處沒(méi)有一個(gè)匹配,則該比較過(guò)程被重復(fù)以在66處找該被打開(kāi)表單中的其它舊記錄。如果在68處有一個(gè)匹配,則在70處檢查該舊記錄以決定是否該舊記錄被已打開(kāi)表單的用戶(hù)所更新。如果該舊記錄在70處被該用戶(hù)更新,則在72處檢查該新記錄以決定是否該新記錄被電子簽名(esig)。一個(gè)數(shù)據(jù)元素可以使用常規(guī)技術(shù)被電子簽名,諸如通過(guò)要求一個(gè)口令以編輯該數(shù)據(jù)元素。如果該新記錄被電子簽名,在24處,為一個(gè)匹配而去比較該舊記錄和該新記錄的電子簽名。如果該新舊記錄的電子簽名不匹配,則在76處,該舊記錄會(huì)被該新的電子記錄所替代。那么在76處,該被打開(kāi)表單的一個(gè)數(shù)據(jù)元素會(huì)被來(lái)自該數(shù)據(jù)庫(kù)13的一個(gè)已改變的數(shù)據(jù)元素所更新。在78處的一個(gè)狀態(tài)標(biāo)志可被設(shè)置以顯示一個(gè)更新的發(fā)生。該狀態(tài)標(biāo)志常被用來(lái)提供給一個(gè)用戶(hù)更新?tīng)顟B(tài)信息,這將在以下被更詳細(xì)地描述。
如果在74處,該新記錄的電子簽名匹配于該舊記錄的電子簽名,則該新記錄在80處從該新記錄列中被清除。(進(jìn)一步講,在72處,該新記錄上沒(méi)有電子簽名,則在80處,該新記錄會(huì)從新記錄列中被清除。)因此,做為一條規(guī)則,由一個(gè)被打開(kāi)的表單的一個(gè)用戶(hù)完成的一個(gè)現(xiàn)存的字段(舊記錄)被來(lái)自該數(shù)據(jù)庫(kù)13的新數(shù)據(jù)所替代或更新,僅僅是是否該新數(shù)據(jù)被另一個(gè)用戶(hù)所電子簽名(即,另一個(gè)用戶(hù)擁有較高的權(quán)限,不允許由其它用戶(hù)對(duì)該已簽名的數(shù)據(jù)進(jìn)行編輯(edits))。做為一條總規(guī)則,該用戶(hù)對(duì)該被打開(kāi)表單所做的(但對(duì)于數(shù)據(jù)庫(kù)13還沒(méi)有存儲(chǔ)的)當(dāng)前的改變,可以是被電子簽名的也可是沒(méi)被電子簽名的,將被保持在來(lái)自該網(wǎng)絡(luò)數(shù)據(jù)庫(kù)13的改變之上,除非來(lái)自該網(wǎng)絡(luò)數(shù)據(jù)庫(kù)13的改變(例如,由另一個(gè)用戶(hù))被其它用戶(hù)電子簽名。例如,如果第一個(gè)用戶(hù)簽名到一個(gè)數(shù)據(jù)元素并把該數(shù)據(jù)元素存入該網(wǎng)絡(luò)數(shù)據(jù)庫(kù)13,則在該已簽名的數(shù)據(jù)元素中的條目不能被已打開(kāi)了包括相同已簽名的數(shù)據(jù)元素的一個(gè)表單的第二個(gè)用戶(hù)所修改或清除,并且第二個(gè)用戶(hù)已改變及簽名到了相同已簽名的數(shù)據(jù)元素但還沒(méi)把該數(shù)據(jù)元素存入到該數(shù)據(jù)庫(kù)13。在這種情況下,被第二個(gè)用戶(hù)所打開(kāi)的該表單將由第一個(gè)用戶(hù)被來(lái)自該已簽名的數(shù)據(jù)元素所更新。
如果在70處,該舊記錄還沒(méi)被該用戶(hù)更新,則在82處檢查該新記錄決定該新記錄是否為一個(gè)刪除記錄。如果在82處該新記錄是一個(gè)刪除記錄,則在84處該舊記錄被標(biāo)記為被刪除(deleted)并且在80處該新記錄被從可用的新記錄隊(duì)列中清除。該標(biāo)記過(guò)程指出一個(gè)更新的發(fā)生。
總之,圖4中的示例性同步規(guī)則集合提供如果在如被一個(gè)用戶(hù)使用所打開(kāi)的一個(gè)表單中有一條記錄(舊記錄),并且該舊記錄被該用戶(hù)鍵入或修改以及有一條匹配的、無(wú)電子簽名的新記錄,則該新記錄被從該列新數(shù)據(jù)中清除而不對(duì)該已打開(kāi)的表單進(jìn)行更新(66到68到70到72到80)。如果有一條舊記錄被該用戶(hù)鍵入或修改并存在具備一個(gè)匹配電子簽名(例如,由相同用戶(hù)簽名)的一條匹配的新記錄,則該新記錄將被從該新記錄列清除而不對(duì)該已打開(kāi)的表單進(jìn)行更新(66到68到70到74到80)。如果有一條舊記錄被該用戶(hù)鍵入或修改并存在具備一個(gè)不匹配電子簽名(例如,由不同用戶(hù)簽名)的一條匹配的新記錄,則該舊記錄將被該新記錄所替代(更新將發(fā)生,66到68到72到74到76到78)。如果有一條舊記錄未被該用戶(hù)鍵入或修改并有一個(gè)被標(biāo)識(shí)為已刪除的匹配的新記錄,則該舊記錄將被標(biāo)識(shí)為已刪除(更新將發(fā)生)并且該新記錄將被從該新記錄列中清除(66到68到82到84到80)。當(dāng)然,其它同步規(guī)則集合可以被運(yùn)用于本發(fā)明并且本發(fā)明不限于圖4-6中的示例性同步規(guī)則集合。
參照?qǐng)D5,如果在66處的條件不被滿(mǎn)足,該新記錄列中的其余新記錄在起始于100處被處理。尤其是在100處,被加入到該舊記錄列(即,在已打開(kāi)表單中和正被使用或被操作的記錄列)的任何新記錄將被視為舊記錄在100處處理。通常,在100處,將被處理的其余舊記錄是空的/空白的,以及是附加信息在其中可以是輸入(input)的組合記錄,諸如包含一個(gè)或藥物名字的“藥物”字段。如果在100處有舊記錄,則在102處為了一次數(shù)據(jù)元素和內(nèi)容的匹配(即,該舊記錄與該新記錄是否有相同數(shù)據(jù)元素,諸如兩者都是“姓”,以及在該舊記錄中的、其可以為空或可在一個(gè)二進(jìn)位組合碼(COMBO)字段里被完成的該條目,是否匹配該新記錄中的該條目)。例如,如果記錄有相同的類(lèi)型,索引和數(shù)據(jù),則可以被定義為一個(gè)匹配。如果該新記錄是一條組合記錄,則一個(gè)組合標(biāo)識(shí)也可做為一條匹配準(zhǔn)則被使用。如果在102處有一個(gè)匹配,則該新記錄在104處從該新記錄隊(duì)列中清除并且在100處為了在該已打開(kāi)表單中的其它舊記錄進(jìn)行重復(fù)比較。因此,如果一條舊組合記錄的條目(數(shù)據(jù))與該新記錄的那些條目相同則一個(gè)更新操作是不需要發(fā)生的。如果在102處沒(méi)有一個(gè)匹配,則在106處檢查該舊記錄以確定是否通過(guò)是相同的數(shù)據(jù)元素來(lái)匹配。該舊記錄與該新記錄。例如,如果記錄有相同的類(lèi)型和索引,則可以被定義為一個(gè)匹配。如果該新記錄是一個(gè)組合數(shù)據(jù)元素,則一個(gè)組合標(biāo)識(shí)也可以被用做一條匹配準(zhǔn)則。
如果在106處有一個(gè)匹配。則在108處檢查該舊記錄以決定是否該舊記錄被電子簽名以及該新記錄未被電子簽名。如果在108處,該舊記錄被簽名而該新記錄未被簽名,則在104處通過(guò)從該新記錄隊(duì)列清除該新記錄使得該更新不會(huì)發(fā)生。因此,在108處,由于在被運(yùn)用的規(guī)則下該舊記錄是被簽名,所以另一個(gè)用戶(hù)不能覆蓋或者編輯該用戶(hù)的一條被簽名的數(shù)據(jù)元素,此時(shí)該用戶(hù)正操作于該已打開(kāi)表單(即,該已打開(kāi)表單的該用戶(hù)可以存入該表單因此該被簽名的數(shù)據(jù)元素將覆蓋其它用戶(hù)的數(shù)據(jù))。這個(gè)規(guī)則也與該總規(guī)則(在上被描述)一致,在一個(gè)已打開(kāi)表單中,一個(gè)已完成且未被一個(gè)用戶(hù)簽名的字段將被保持在從該網(wǎng)絡(luò)數(shù)據(jù)庫(kù)提供的更新數(shù)據(jù)讓除非該更新數(shù)據(jù)有更高權(quán)限簽名。因此,在108處,如果該舊記錄被簽名并且該新記錄也被簽名,則該已打開(kāi)表單的更新可以發(fā)生并且在110處為該更新類(lèi)型檢查該新記錄。進(jìn)一步講,在108處,如果該舊記錄未被簽名并且該新記錄被簽名,則該已打開(kāi)表單的更新可以發(fā)生并且在110處未該更新類(lèi)型檢查該新記錄。更進(jìn)一步講,在108處,如果該舊記錄未被簽名并且該新記錄也未被簽名,則該已打開(kāi)表單的更新可以發(fā)生并且在110處為該更新類(lèi)型檢查新記錄。
如果在110處該新記錄是一條刪除記錄,則在112處該表單中的該舊記錄被清除(即,在該表單中的該字段的該數(shù)據(jù)條目被刪除)并且在114處可以設(shè)置一個(gè)狀態(tài)標(biāo)志可以指出一個(gè)更新的發(fā)生。如果在110處該新記錄不是一條刪除記錄,則在116處該表單中的該舊記錄被該新記錄所替代(即,在該表單中的該字段的該數(shù)據(jù)條目被更新)。隨后,在114處可以設(shè)置一條狀態(tài)標(biāo)志可以指出一個(gè)更新的發(fā)生。
如果在106處該舊記錄與該新記錄不匹配,則在18處檢查該新紀(jì)錄以決定該新記錄是否為一條刪除記錄。如果在118處該新記錄是一條刪除記錄,則在104處該新記錄被從該新記錄列清除以停止該新記錄的處理。如果在118處該新記錄不是一條刪除記錄,則該在120處新記錄被加入到該舊用戶(hù)的記錄列中。因此,在120處,例如,通過(guò)加入數(shù)據(jù)條目諸如另一個(gè)藥物到該“藥物”字段,在該表單中的一個(gè)組合字段的該數(shù)據(jù)條目被更新。其后,在114處可設(shè)置一個(gè)狀態(tài)標(biāo)志以指出一個(gè)更新的發(fā)生。在104處,在114處設(shè)置該狀態(tài)標(biāo)志之后,在該表單的一個(gè)數(shù)據(jù)元素被更新之后,或者在一條新更新記錄處理之后,該新記錄被從該新記錄列中清除并且在100處重復(fù)檢查該表單的舊記錄的該過(guò)程。
總之,圖5中的該示例性同步規(guī)則集合提供如果有一條新記錄完全(即,相同數(shù)據(jù)元素和條目)匹配一條舊記錄,則該新記錄將被清除(100到102到104)。如果有一條新記錄被電子簽名以及有一個(gè)匹配的舊記錄,則該舊記錄將被該新記錄替代(更新將發(fā)生,100到106到108到110到116到114到104)。如果有一條被標(biāo)記為已刪除的新記錄與一條未被電子簽名的舊記錄匹配,則該舊記錄將被清除(更新將發(fā)生),(100到106到108到110到112到114到104)。如果有一條未被電子簽名的新記錄與一條未被電子簽名的舊記錄匹配,則該舊記錄將被該新記錄(100到106到108到110到116到114到104)所替代(更新將發(fā)生)。如果有一條未被電子簽名的新記錄與一條被電子簽名的舊記錄匹配,則該新記錄將清除而沒(méi)有對(duì)已打開(kāi)表單的一個(gè)更新(100到106到108到104)。如果有一條新記錄不與任何舊記錄匹配,則該新記錄將被加入到該舊記錄列中(即,通過(guò)在該已打開(kāi)表單中完成一個(gè)數(shù)據(jù)元素或通過(guò)在該已打開(kāi)表單中加入一個(gè)條目到一個(gè)組合數(shù)據(jù)元素,更新將發(fā)生)(100到106到118到120到114到104)。如果有一條新記錄被標(biāo)記為已刪除并且不與任何舊記錄匹配,則該新記錄將被從該新記錄列中清除而不更新該已打開(kāi)的表單(100到106到118到104)。
當(dāng)然,其它同步規(guī)則集合可以被運(yùn)用并且本發(fā)明不限于參照?qǐng)D5所描述的該示范性同步規(guī)則集合。例如,在自動(dòng)更新該用戶(hù)的表單之前,為了考慮/審核,一個(gè)新記錄可以被提交給該用戶(hù)。因此可提供一次可選擇性的自動(dòng)數(shù)據(jù)刷新。進(jìn)一步講,本發(fā)明的該軟件過(guò)程20可以被擴(kuò)展到n個(gè)用戶(hù)和n個(gè)表單。例如,如果四個(gè)用戶(hù)正在編輯表單,并且其中一個(gè)用戶(hù)存入數(shù)據(jù),則其余三個(gè)用戶(hù)可以得到更新,即使他們的表單國(guó)包含有與第一個(gè)用戶(hù)存入的數(shù)據(jù)重疊的數(shù)據(jù)元素。
參照?qǐng)D6,如果在100處沒(méi)有其它將被處理的舊記錄,則在130處該系統(tǒng)決定是否那些已更新的數(shù)據(jù)元素可以在該客戶(hù)終端14的一個(gè)顯示屏上顯示。如果在130處那些已更新的數(shù)據(jù)元素不是可顯示的,則來(lái)自該數(shù)據(jù)庫(kù)13的新記錄的處理過(guò)程只完整的。如果那些已更新的數(shù)據(jù)元素是可顯示的,則在132處顯示一條信息以指示或通知正在操作于更新的該已打開(kāi)表單上的用戶(hù)。對(duì)于所有可顯示的記錄(數(shù)據(jù)元素),在134-144處更新歷史數(shù)據(jù)/日志的信息可以顯示在客戶(hù)終端14的一個(gè)顯示屏上。尤其是,該更新日志信息可使用不同顏色、圖標(biāo)或注釋菜單(bubble)來(lái)顯示,以提供給該用戶(hù)重新瀏覽更新、更新類(lèi)型以及容納更新的有效的認(rèn)可/確認(rèn)或者權(quán)限。例如,如果在138處一個(gè)表單數(shù)據(jù)元素(字段)被該已打開(kāi)表單的該用戶(hù)更新過(guò),則在146處一個(gè)特別的“被用戶(hù)更新”顏色可被使用以顯示該字段的條目(數(shù)據(jù))。在148處,一個(gè)字段的條目可用一個(gè)特別的“從該網(wǎng)絡(luò)數(shù)據(jù)庫(kù)更新”顏色顯示。在150處,一個(gè)字段的條目可用一個(gè)特別的“被用戶(hù)刪除”顏色顯示。在152處,一個(gè)字段的條目可用一個(gè)特別的“從該網(wǎng)絡(luò)數(shù)據(jù)庫(kù)刪除”顏色顯示。在148處,一個(gè)字段的條目可用一個(gè)特別的“沒(méi)被改變”顏色顯示。當(dāng)然,該圖標(biāo)和信息菜單可以是與對(duì)在一個(gè)被打開(kāi)的表單中的一個(gè)數(shù)據(jù)元素進(jìn)行更新的類(lèi)型相符合并顯示在一條計(jì)算機(jī)上的任何信息和任何圖象類(lèi)型。
因此,本發(fā)明可以方便地提供一個(gè)系統(tǒng)以允許正在使用來(lái)自同一個(gè)數(shù)據(jù)庫(kù)數(shù)據(jù)的用戶(hù)同時(shí)工作而不用鎖住該相同數(shù)據(jù)庫(kù)。進(jìn)一步講,本發(fā)明能提供一個(gè)系統(tǒng)以允許正在使用來(lái)自同一個(gè)數(shù)據(jù)庫(kù)數(shù)據(jù)的用戶(hù)同時(shí)工作而不會(huì)無(wú)意中覆蓋由另一個(gè)用戶(hù)在該數(shù)據(jù)庫(kù)中輸入的先前的數(shù)據(jù)。更進(jìn)一步講,本發(fā)明可以提供一個(gè)系統(tǒng)以通知正在同時(shí)工作并且正在使用來(lái)自同一個(gè)數(shù)據(jù)庫(kù)數(shù)據(jù)的用戶(hù),使得用戶(hù)在操作于該數(shù)據(jù)上的同時(shí)該數(shù)據(jù)庫(kù)可以被其它用戶(hù)改變。
更特別的是,本發(fā)明能提供一個(gè)系統(tǒng),該系統(tǒng)允許正使用應(yīng)用程序而應(yīng)用程序又使用了含有來(lái)自一個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)的表單文檔的用戶(hù)訪問(wèn)、編輯和更新該表單數(shù)據(jù)(數(shù)據(jù)元素)而不鎖住該數(shù)據(jù)庫(kù),防止當(dāng)?shù)谝粋€(gè)用戶(hù)正在編輯(正在更新)該表單數(shù)據(jù)時(shí)無(wú)意中覆蓋其它用戶(hù)對(duì)該數(shù)據(jù)庫(kù)的多種改變以及當(dāng)用戶(hù)正在訪問(wèn)該表單數(shù)據(jù)時(shí)通知用戶(hù)有關(guān)其它用戶(hù)對(duì)該數(shù)據(jù)庫(kù)的改變。進(jìn)一步講,例如本發(fā)明在使用一個(gè)應(yīng)用程序期間,通過(guò)在該應(yīng)用程序執(zhí)行期間,運(yùn)用同步規(guī)則去更新該應(yīng)用程序中的數(shù)據(jù)元素的方法,提供一次有效數(shù)據(jù)刷新。尤其是,本發(fā)明可以提供一個(gè)系統(tǒng)以允許用戶(hù)高效和同步地編輯表單文檔,表單文檔是來(lái)自一個(gè)數(shù)據(jù)庫(kù)的一個(gè)數(shù)據(jù)元素/數(shù)據(jù)項(xiàng)的集合。更進(jìn)一步講,本發(fā)明的系統(tǒng)容納了被不同應(yīng)用程序使用的不同表單,表單具有重疊的(共享的)數(shù)據(jù)元素。
盡管本發(fā)明的一些優(yōu)選的實(shí)施方案被圖示及描述,但是可被本領(lǐng)域的那些技術(shù)人員認(rèn)同的是在本實(shí)施方案中所做的改變沒(méi)有脫離于本發(fā)明的原則和精神,其范圍在本權(quán)利要求及它們的等價(jià)物中被定義。
權(quán)利要求
1.一種過(guò)程,包含監(jiān)控一個(gè)數(shù)據(jù)庫(kù)以檢測(cè)該數(shù)據(jù)庫(kù)中被訪問(wèn)的數(shù)據(jù)的改變;以及響應(yīng)檢測(cè)的變化,在使用該數(shù)據(jù)期間,根據(jù)的同步規(guī)則更新被訪問(wèn)的數(shù)據(jù)。
2.一種設(shè)備,包含一個(gè)處理器,一個(gè)數(shù)據(jù)庫(kù)以檢測(cè)該數(shù)據(jù)庫(kù)中被訪問(wèn)數(shù)據(jù)所做的改變,以及在使用該數(shù)據(jù)期間,根據(jù)相對(duì)于該被檢測(cè)的改變的同步規(guī)則更新該被訪問(wèn)的數(shù)據(jù)。
3.一種過(guò)程,包含訪問(wèn)已存儲(chǔ)在一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù);把該被訪問(wèn)的數(shù)據(jù)輸入到一個(gè)表單;使用具有此由第一個(gè)用戶(hù)輸入被訪問(wèn)的數(shù)據(jù)的表單;監(jiān)控該數(shù)據(jù)庫(kù)以檢測(cè)當(dāng)?shù)谝粋€(gè)用戶(hù)正在使用該邏輯表時(shí)由第二個(gè)用戶(hù)對(duì)該被訪問(wèn)的數(shù)據(jù)所做的改變;以及根據(jù)相應(yīng)于該被檢測(cè)的改變的規(guī)則當(dāng)該表單正被該第一個(gè)用戶(hù)使用時(shí)更新在該表單中的該被訪問(wèn)的數(shù)據(jù)而同時(shí)。
4.根據(jù)權(quán)利要求3的該過(guò)程,進(jìn)一步包含根據(jù)該更新,顯示該被訪問(wèn)的數(shù)據(jù)的更新?tīng)顟B(tài);以及在該數(shù)據(jù)庫(kù)中存儲(chǔ)由該第一個(gè)用戶(hù)輸入的被訪問(wèn)的該數(shù)據(jù)。
5.一種設(shè)備,包含一個(gè)處理器,訪問(wèn)已存儲(chǔ)在一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù),把該被訪問(wèn)的數(shù)據(jù)輸入到一個(gè)表單,使用具有由第一個(gè)用戶(hù)輸入的、被訪問(wèn)的數(shù)據(jù)的該表單,監(jiān)控該數(shù)據(jù)庫(kù)以檢測(cè)當(dāng)該表單正被該第一個(gè)用戶(hù)使用時(shí)由第二個(gè)用戶(hù)對(duì)該被訪問(wèn)的數(shù)據(jù)所做的改變,以及當(dāng)該表單正被該第一個(gè)用戶(hù)使用時(shí)根據(jù)相應(yīng)于該被檢測(cè)的改變的規(guī)則更新在該表單中的該被訪問(wèn)的數(shù)據(jù)而同時(shí)。
6.根據(jù)權(quán)利要求5的該設(shè)備,其中該規(guī)則同步由該第一個(gè)用戶(hù)和該第二個(gè)用戶(hù)對(duì)該被訪問(wèn)的數(shù)據(jù)所進(jìn)行的同時(shí)改變。
7.根據(jù)權(quán)利要求5的該設(shè)備,其中該規(guī)則基于由第二個(gè)用戶(hù)對(duì)該被訪問(wèn)的數(shù)據(jù)的編輯的特性以及該被訪問(wèn)的數(shù)據(jù)的特性。
8.根據(jù)權(quán)利要求5的該設(shè)備,其中由該第一個(gè)用戶(hù)使用該被訪問(wèn)的數(shù)據(jù)包括編輯該被訪問(wèn)的數(shù)據(jù)。
9.根據(jù)權(quán)利要求5的該設(shè)備,其中當(dāng)該表單正被該第一個(gè)用戶(hù)使用時(shí)該處理器提供了給該第一個(gè)用戶(hù)的更新通知。
10.根據(jù)權(quán)利要求9的該設(shè)備,其中該更新通知包含顯示對(duì)應(yīng)表單中每個(gè)被訪問(wèn)數(shù)據(jù)的更新歷史信息。
11.根據(jù)權(quán)利要求10的該設(shè)備,其中該更新通知包括根據(jù)該更新,用不同顏色顯示該被訪問(wèn)的數(shù)據(jù)。
12.根據(jù)權(quán)利要求10的該設(shè)備,其中該更新通知包括把注釋菜單與該被訪問(wèn)的數(shù)據(jù)相關(guān)聯(lián)。
13.根據(jù)權(quán)利要求5的該設(shè)備,其中輸入被訪問(wèn)的數(shù)據(jù)在本地存儲(chǔ)以及該數(shù)據(jù)庫(kù)在遠(yuǎn)程存儲(chǔ)。
14.根據(jù)權(quán)利要求5的該設(shè)備,其中該處理器更進(jìn)一步維護(hù)該被訪問(wèn)的數(shù)據(jù)的一個(gè)改變?nèi)罩尽?br>
15.一種設(shè)備,包含用于訪問(wèn)已存儲(chǔ)在一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)的裝置;用于把該被訪問(wèn)的數(shù)據(jù)輸入到一個(gè)表單的裝置;用于使用具有此由第一個(gè)用戶(hù)輸入的被訪問(wèn)的該數(shù)據(jù)的該表單的裝置;用于監(jiān)控該數(shù)據(jù)庫(kù)以檢測(cè)當(dāng)該表單正被該第一個(gè)用戶(hù)使用時(shí)由第二個(gè)用戶(hù)對(duì)該被訪問(wèn)的數(shù)據(jù)所做的改變的裝置;以及用于當(dāng)該表單正被該第一個(gè)用戶(hù)使用時(shí)根據(jù)相應(yīng)于該被檢測(cè)的改變的規(guī)則更新在該表單中的該被訪問(wèn)的數(shù)據(jù)的裝置。
16.一種自動(dòng)更新表單的系統(tǒng),該系統(tǒng)包含一個(gè)服務(wù)器,把數(shù)據(jù)存儲(chǔ)至一個(gè)數(shù)據(jù)庫(kù)中;以及經(jīng)由一個(gè)網(wǎng)絡(luò)被連接到該服務(wù)器以及訪問(wèn)已存儲(chǔ)在該數(shù)據(jù)庫(kù)中的該數(shù)據(jù),其中該被訪問(wèn)的數(shù)據(jù)被輸入到由第一個(gè)用戶(hù)使用的一個(gè)表單中,該數(shù)據(jù)庫(kù)被監(jiān)控以檢測(cè)當(dāng)該表單正被該第一個(gè)用戶(hù)使用時(shí),由第二個(gè)用戶(hù)對(duì)該被訪問(wèn)的數(shù)據(jù)所做的改變。以及當(dāng)該表單正被該第一個(gè)用戶(hù)使用時(shí)根據(jù)相應(yīng)于該被檢測(cè)的改變的規(guī)則,更新在該表單中的該被訪問(wèn)的數(shù)據(jù)。
17.用處理指令編碼的一種計(jì)算機(jī)可讀媒體,以實(shí)現(xiàn)通過(guò)某一臺(tái)被計(jì)算機(jī)執(zhí)行自動(dòng)更新表單的一種方法,該方法包含訪問(wèn)已存儲(chǔ)在一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù);把該被訪問(wèn)的數(shù)據(jù)輸入到一個(gè)表單;使用具有由第一個(gè)用戶(hù)輸入的被訪問(wèn)的該數(shù)據(jù)的該表單;監(jiān)控該數(shù)據(jù)庫(kù)以檢測(cè)當(dāng)該表單正被該第一個(gè)用戶(hù)使用時(shí)由第二個(gè)用戶(hù)對(duì)該被訪問(wèn)的數(shù)據(jù)所梆的改變;以及當(dāng)該表單正被該第一個(gè)用戶(hù)使用時(shí)根據(jù)相應(yīng)于該被檢測(cè)的改變的規(guī)則更新在該表單中的該被訪問(wèn)的數(shù)據(jù)。
全文摘要
一個(gè)過(guò)程,該過(guò)程訪問(wèn)一個(gè)數(shù)據(jù)庫(kù)(13)中的數(shù)據(jù),輸入該被訪問(wèn)的數(shù)據(jù)到一個(gè)表單,使用擁有第一個(gè)用戶(hù)訪問(wèn)的該數(shù)據(jù)的該表單,監(jiān)控該數(shù)據(jù)庫(kù)(13),以檢測(cè)在第一個(gè)用戶(hù)使用該邏輯表的同時(shí)第二個(gè)用戶(hù)對(duì)該被訪問(wèn)的數(shù)據(jù)進(jìn)行的改變,根據(jù)對(duì)應(yīng)于該被檢測(cè)的改變的規(guī)則,更新該表單中的該被訪問(wèn)的數(shù)據(jù)(20a-n)而同時(shí)該表單正被該第一個(gè)用戶(hù)使用,以及根據(jù)該更新顯示該被訪問(wèn)的數(shù)據(jù)的更新?tīng)顟B(tài)。該更新?tīng)顟B(tài)可指示自從該第一個(gè)用戶(hù)開(kāi)始使用該被訪問(wèn)的數(shù)據(jù)以來(lái),是否該被訪問(wèn)的數(shù)據(jù)沒(méi)有被改變過(guò);指示第一個(gè)用戶(hù)是否改變了該被訪問(wèn)的數(shù)據(jù);以及指示在該第一個(gè)用戶(hù)正使用該被訪問(wèn)的數(shù)據(jù)時(shí)是否該第二個(gè)用戶(hù)改變了該被訪問(wèn)的數(shù)據(jù)。本過(guò)程可在一個(gè)單機(jī)處理設(shè)備或者一個(gè)網(wǎng)絡(luò)(10)中實(shí)現(xiàn)。
文檔編號(hào)G06F15/00GK1459061SQ02800640
公開(kāi)日2003年11月26日 申請(qǐng)日期2002年2月25日 優(yōu)先權(quán)日2001年3月13日
發(fā)明者J·A·約翰森, R·P·史密斯 申請(qǐng)人:菲利浦電子北美公司