專利名稱::利用過濾器為無線設(shè)備進行個性化資料抄寫的方法
技術(shù)領(lǐng)域:
:本發(fā)明是關(guān)于一種將流通于一移動式計算機設(shè)備上的資料流量最小化的方法,特別是關(guān)于一種利用資料過濾器來最小化移動設(shè)備上的資料存儲量及移動設(shè)備與資料服務(wù)器之間的頻寬。
背景技術(shù):
:在電腦發(fā)明后不久,人們開始把它們連接起來。多臺電腦之間的連接可以使數(shù)量較少的資源諸如打印機、內(nèi)存設(shè)備等被共享。起初,電腦之間通過電纜進行連接,隨著技術(shù)的發(fā)展及人們對靈活性需求的增加,無線通訊方式出現(xiàn)并發(fā)展起來。早期的無線通訊技術(shù)涉及移動設(shè)備與網(wǎng)絡(luò)連接端口之間的周期性連接,該連接是由在移動式電腦設(shè)備和網(wǎng)絡(luò)連接端口之間的線纜或紅外線信號來實現(xiàn)。該技術(shù)需要在移動設(shè)備上連接一線纜到網(wǎng)絡(luò)連接端口,或是在移動設(shè)備上設(shè)置一紅外線裝置,其要求該紅外線裝置與網(wǎng)絡(luò)連接端口上相應(yīng)的紅外線裝置必須處在一定的范圍內(nèi)?;旧希缙诘臒o線通訊技術(shù)能使移動設(shè)備之間或與別的電腦設(shè)備之間在有限的物理范圍內(nèi)進行通訊。而在十九世紀,當(dāng)電腦設(shè)備可通過新興的無線通訊網(wǎng)路如逐漸出現(xiàn)的移動電話系統(tǒng)來通訊后,上述使用范圍的限制被逐漸解決。到十九世紀后期,無線網(wǎng)絡(luò)在全世界被廣泛應(yīng)用。移動式電腦設(shè)備可以在任何區(qū)域與遠程電腦主機的信息儲存設(shè)備或“資料服務(wù)器”進行通訊。例如,通過該通訊網(wǎng)路,一銷售人員使用裝備有無線調(diào)制解調(diào)器的膝上型電腦,可以與所屬公司的中央庫存和訂單系統(tǒng)保持聯(lián)系。另外,移動設(shè)備如個人數(shù)字助理(PersonalDigitalAssistant,PDA)以及精密移動電話可以讓用戶連上匯聚了全世界資源的互聯(lián)網(wǎng)。很多移動設(shè)備也能通過連上公共電話網(wǎng)絡(luò)(PublicTelephoneNetwork,PTN)和/或互聯(lián)網(wǎng),彼此進行通訊。通過目前的移動式電腦設(shè)備,用戶可連接到電子郵件服務(wù)器、網(wǎng)站服務(wù)器、在線銀行和其它的位于遠程資料服務(wù)器的“后臺”應(yīng)用設(shè)備。諸多公司,認識到通過移動設(shè)備連上他們自身的系統(tǒng)或服務(wù)器的潛在優(yōu)勢,希望通過提供給其工作人員或客戶的遠程通訊使用者界面和后臺系統(tǒng),把他們的業(yè)務(wù)擴展到無線世界上,最終提供給用戶以移動設(shè)備進行交易的能力。當(dāng)然,新的無線技術(shù)具有其自身的問題,例如,受限于自身的尺寸,很多移動式電腦設(shè)備只提供很小的區(qū)域用于輸入及提供很小的存儲器空間給資料和應(yīng)用軟件。這些問題意味著,在移動設(shè)備上進行輸入是很困難的,且在移動設(shè)備上運行的應(yīng)用軟件都是很小型的。另外還存在一些諸如對無線連接的維護費用高以及確保移動設(shè)備上的資料一致、準確以及是否為最新等有關(guān)的問題。當(dāng)前解決在有限區(qū)域進行輸入或輸出的問題可以利用手寫識別軟件。然而,手寫識別軟件都很龐大,在移動設(shè)備上使用則又涉及到存儲器不夠的問題。另一解決方法是提供一小鍵盤,然而這種小鍵盤一般較難于使用。還有一種解決方法是采用屏幕圖標及一指示筆,其中每一圖標代表某一定義的動作;指示筆用于點選移動設(shè)備顯示屏上的特定圖標,當(dāng)針接點選一特定圖標,該圖標對應(yīng)的動作即開始執(zhí)行。眾多個人數(shù)字助理采用了這種圖標/指示筆的方法,因為它似乎在輸入的簡易性和執(zhí)行輸入軟件的需求之間提供了最好的平衡。如上所述,多數(shù)移動設(shè)備均只具備有限的存儲器容量,移動設(shè)備的存儲器容量不僅決定了在移動設(shè)備上執(zhí)行的應(yīng)用軟件必須非常小,而且,還限制了所有與所述應(yīng)用軟件有關(guān)資料儲存裝置空間的大小。解決這種問題的一種方法是在另一第二電腦設(shè)備(如一資料服務(wù)器)中設(shè)置一數(shù)據(jù)庫,并讓移動設(shè)備周期性地連接該第二電腦設(shè)備以進行同步。當(dāng)然,如果一特定的資料源,如一產(chǎn)品數(shù)據(jù)庫,存儲于一遠程電腦上分享給多個用戶使用,就會涉及到資料連續(xù)性或“資料同步”問題的出現(xiàn)。資料同步是一過程,其確保在一數(shù)據(jù)庫中的資料與另一數(shù)據(jù)庫中相應(yīng)的資料保持一致,以使該資料的任一用戶均了解到其它用戶對該等資料的任何變更。例如,如果一個公司在庫存中有一個棒球,第一個銷售人員賣出了這個棒球,第二個銷售人員有必要了解到公司不再有棒球可供銷售。為了讓第二個銷售人員知道庫存的變更信息,至少需完成如下兩項事情(1)第一個銷售人員必須更新服務(wù)器以反映棒球的最新數(shù)目;(2)資料必須能被第二個銷售人員所使用,如果該等資料位于銷售人員的移動設(shè)備上,則必須對其進行更新以反映服務(wù)器上的變更信息。在數(shù)據(jù)庫連接同步過程中存在另一問題,即移動通訊常具有區(qū)域相關(guān)性或間斷性。一個用戶可能不需時時與網(wǎng)絡(luò)連接,或一個確定的連接可能會在傳輸過程中出人意料地被中斷。而且,無線連接的費用一般較有線連接的高,如果某一用戶需要持續(xù)連接,維持該連接的支出費用可能會超過由無線連接所產(chǎn)生的利潤。
發(fā)明內(nèi)容本發(fā)明提供一種方法使移動式計算機設(shè)備(如PDA)僅僅存儲符合其需要之必要信息,從而節(jié)省寶貴的存儲容量和傳送信息至(或出)該PDA之通訊媒介之頻寬。本發(fā)明提供一種方法既可以節(jié)約該移動通信設(shè)備之復(fù)雜性成本,還可以節(jié)約與數(shù)據(jù)傳輸和同步相關(guān)之通信成本。本發(fā)明提供一種方法使移動式計算機設(shè)備如個人數(shù)字助理(PDA),移動電話及膝上型計算機在與服務(wù)器之間進行數(shù)據(jù)傳輸和資料同步時最小化其通信頻寬。用戶可配置化資料過濾器被用來讓移動式計算機設(shè)備用戶選擇特定的信息進行傳輸和存儲在該移動式計算機設(shè)備上。資料過濾器可以通過移動式計算機設(shè)備之輸入輸出功能如圖形用戶界面(GUI)進行定義,也可以由系統(tǒng)管理員來進行創(chuàng)建和維護。系統(tǒng)管理員可以通過一基于網(wǎng)絡(luò)之圖形用戶界面為一個或多個用戶創(chuàng)建一組資料過濾器。不管是由用戶創(chuàng)建的還是由系統(tǒng)管理員創(chuàng)建的資料過濾器都可以從簡單(如一種等式匹配)轉(zhuǎn)變?yōu)閺?fù)雜(如一種多元連接)。上述所揭露之資料過濾器可被用來搜索移動設(shè)備之本地資料存儲區(qū)和服務(wù)器之遠程資料存儲區(qū)。而且該資料過濾器還可以通過提供一種計算資料關(guān)聯(lián)性技術(shù),如計算移動設(shè)備上之資料記錄是否與服務(wù)器之資料記錄相匹配,來提供資料同步功能。所述之資料過濾器被應(yīng)用于服務(wù)器上之一個域內(nèi)的資料對象。每一個域包含對特定資料對象之定義,包括每個資料組件本身或其屬性值,其結(jié)合起來一起構(gòu)成資料對象。每一屬性值都有一數(shù)據(jù)類型和一個或多個值。例如,一帳戶域包含一帳戶對象,該帳戶對象可能包括與銀行帳戶有關(guān)的屬性,如戶主姓名和帳戶余額。在服務(wù)器端,一個對象也可以是相關(guān)資料的邏輯表示。例如,一個帳戶對象可以有一個儲存在一數(shù)據(jù)庫中的一個表格或文件中的戶主姓名屬性,和一儲存在該數(shù)據(jù)庫中的另一表格或文件中的帳戶余額屬性。在該例子中,服務(wù)器必須有一帳戶對象之邏輯表示以把相關(guān)屬性值集合在該帳戶對象。每一對象都有一唯一的身份標識,或關(guān)鍵詞對應(yīng)于相應(yīng)對象,以便該對象被更有效率地查找和參照。當(dāng)一特定對象被更新,對應(yīng)于該對象之所有資料也要被更新。本發(fā)明提供一種訪問符合資料過濾器之資料對象的技術(shù),不管是處于在線模式(如該移動設(shè)備連結(jié)到服務(wù)器)還是處于離線模式(如該移動設(shè)備沒有連結(jié)到服務(wù)器)。當(dāng)處于在線模式時,一客戶端程序,或一移動式計算機設(shè)備上程序,通過發(fā)送資料過濾器或資料過濾器ID直接與服務(wù)器程序進行通信。服務(wù)器利用資料過濾器或存處在其上的對應(yīng)于該資料過濾器ID之資料過濾器在服務(wù)器資料對象中進行搜索。在這種模式下,服務(wù)器僅僅搜集和傳輸符合該資料過濾器所定義之標準的信息。服務(wù)器還可以通過判斷某特定資料對象自上次資料同步后有否改變來限定傳輸之信息。當(dāng)該移動式計算機設(shè)備處于離線模式,客戶端程序利用資料過濾器在存儲在移動式計算機設(shè)備上的資料中進行搜索。在規(guī)律的或不規(guī)律的持續(xù)少于一秒到超過一年的中斷情況下,移動式計算機設(shè)備與服務(wù)器仍然可以通過無線通信或其它類型的網(wǎng)絡(luò)連接達到同步。所述之同步技術(shù)采用資料過濾器確保該移動式計算機設(shè)備接收大部分的當(dāng)前信息和該移動式計算機設(shè)備所要求之特定信息。一同步排程可以通過客戶端或服務(wù)器端之用戶界面(UI)進行設(shè)定。而且,一同步程序可以由移動式計算機設(shè)備用戶或服務(wù)器端系統(tǒng)管理員在任意時間設(shè)定。如果排程后的或初始過的同步程序沒有可用的連接,請求同步之移動設(shè)備識別該情形并將該同步請求放置到同步序列中。接著該設(shè)備周期地測試是否存在一連接或建立連接的條件是否已具備;一旦連接建立,該請求之同步開始執(zhí)行。本發(fā)明之方法通過使移動式計算機設(shè)備僅僅存儲符合其需要之必要信息來節(jié)省移動設(shè)備上的資料存儲量及移動設(shè)備與資料服務(wù)器之間的通訊媒介頻寬,從而提高了通信效率,降低了移動通信設(shè)備之復(fù)雜性成本及與數(shù)據(jù)傳輸和同步相關(guān)之通信成本。圖1是一通訊系統(tǒng)的方塊圖,該通訊系統(tǒng)包括兩個典型的移動式電腦設(shè)備,其可用于實施本發(fā)明所揭示的方法。圖2是本發(fā)明的一典型個人數(shù)字助理(PDA)示意圖。圖3是本發(fā)明的一無線應(yīng)用程序示例架構(gòu)的方塊圖。圖4是服務(wù)器中各部件的方塊圖。圖5是在客戶端移動式電腦設(shè)備的數(shù)據(jù)管理過程流程圖。圖6是圖5中同步步驟的流程圖。圖7是在服務(wù)器端的數(shù)據(jù)管理過程流程圖。圖8是更新識別過程的流程圖。圖9是圖1及圖2中個人數(shù)字助理的主頁屏幕顯示器示意圖。圖10是圖1及圖2中個人數(shù)字助理的編輯過濾器屏幕顯示器示意圖。圖11是圖1及圖2中個人數(shù)字助理的最佳產(chǎn)品搜索屏幕顯示器示意圖。圖12是圖1及圖2中個人數(shù)字助理的另一產(chǎn)品搜索屏幕顯示器示意圖。具體實施方式如圖1所示,其為一典型的通訊系統(tǒng)100的方塊圖,該系統(tǒng)100可支持本發(fā)明所揭示的方法。通訊塔105提供有多重?zé)o線通訊信道,比如與個人數(shù)字助理(PDA)101連接的通訊信道115以及與膝上型電腦103連接的通訊信道117。通訊系統(tǒng)100、個人數(shù)字助理101以及膝上型電腦103均為可支持本發(fā)明方法的典型移動式電腦系統(tǒng)和設(shè)備。為簡便起見,一電腦設(shè)備,無論其是否為可移動,只要采用了無線通訊技術(shù),我們均稱它為“移動式電腦設(shè)備”。許多類型的移動式設(shè)備,包括已在使用的和即將被發(fā)明的,均包含于本發(fā)明的權(quán)利要求中。例如,當(dāng)今使用的許多移動電話即可利用本發(fā)明的方法可使其對資料和國際互聯(lián)網(wǎng)的訪問更加便利。另一類可利用本發(fā)明所揭示方法的系統(tǒng)為無線電子證章以及用來與其通訊的發(fā)射機和接收器。通訊塔105通過專用或公用的通訊信道119與服務(wù)器107相連。當(dāng)然,對于熟知此項技藝的人士來說,通訊信道119可以是有線通訊,也可以是無線通訊。服務(wù)器107可實現(xiàn)本發(fā)明標的的部分內(nèi)容,以下會對其作更為詳細的說明。服務(wù)器107和局域網(wǎng)(LAN)121相連。局域網(wǎng)121又與電腦設(shè)備109及111相連,其可為服務(wù)器107及電腦設(shè)備109及111提供訪問國際互聯(lián)網(wǎng)113的信道。個人數(shù)字助理101以及膝上型電腦103也可經(jīng)由局域網(wǎng)121、服務(wù)器107、通訊信道119以及通訊信道115或者117來訪問國際互聯(lián)網(wǎng)113。通訊系統(tǒng)100僅為本發(fā)明的一實例,由該系統(tǒng)所衍生出的其它一些系統(tǒng),甚至是不同類型的系統(tǒng),也可以采用本發(fā)明的方法。例如,本發(fā)明的方法可以于局域網(wǎng)的資料服務(wù)器架構(gòu)中實現(xiàn)。對于熟知此項技藝的人士來說,所揭示的方法可以方便地在任何通訊系統(tǒng)或其它類型存在著頻寬和/或設(shè)備內(nèi)存問題的系統(tǒng)內(nèi)展開具有一定優(yōu)勢。本發(fā)明不僅限于采用無線通訊鏈路的系統(tǒng);雖然在該領(lǐng)域本發(fā)明的便利性最容易體現(xiàn)出來。圖2是圖1所示的個人數(shù)字助理101的示意圖。個人數(shù)字助理101可以執(zhí)行本發(fā)明所揭示的方法,其輸入與輸出分別由資料輸入?yún)^(qū)205以及顯示屏203提供。本實施方式所述的資料輸入?yún)^(qū)205為一小鍵盤,用戶可以在上面鍵入信息。另外,顯示屏203也提供有資料輸入功能。顯示在顯示屏203上的小圖標(圖中未畫出)代表著預(yù)先定義好的、個人數(shù)字助理101可以執(zhí)行的動作。用戶可利用指示筆207來點選顯示屏203上的一個特定的圖標從而執(zhí)行相應(yīng)的動作。排列于個人數(shù)字助理101底部的控制按鈕209可以供用戶設(shè)置不同的功能,比如音量和顯示屏203的亮度等。在另一實施方式中,資料輸入?yún)^(qū)205可被程序化以使指示筆207可以在其上書寫,然后利用個人數(shù)字助理101中的筆跡分析軟件分析該筆跡以決定一合適的動作。圖3是一無線應(yīng)用程序的示例架構(gòu)的方塊圖,該應(yīng)用程序庫在客戶端,如個人數(shù)字助理101以及如服務(wù)器107(如圖1所示)之類的服務(wù)器上運行,并采用了本發(fā)明所揭示的技術(shù)。無線應(yīng)用架構(gòu)301包括有一無線資料復(fù)制器307以及一移動式交換器309,并向諸如個人數(shù)字助理101之類的可移動式設(shè)備提供促進無線應(yīng)用程序發(fā)展的服務(wù)。該無線應(yīng)用架構(gòu)301是基于標準建構(gòu),并可容易地成為設(shè)備、操作系統(tǒng)或獨立的數(shù)據(jù)庫。移動式交換器309為移動客戶端和跨平臺客戶端提供實時的訪問企業(yè)服務(wù)器或其它類型的服務(wù)器的通路。內(nèi)存的動作和配置,諸如在服務(wù)器中所執(zhí)行或配置的程序和對象,可以由一客戶端無線設(shè)備所控制。在本實施方式中,移動式交換器309也是基于可擴展標示語言(XML)和超文件傳輸協(xié)議(HTTP),可擴展標示語言(XML)使設(shè)計者可以定義、傳送、驗證以及解釋應(yīng)用程序之間和組織之間的資料,超文件傳輸協(xié)議(HTTP)是國際互聯(lián)網(wǎng)所運用的根本協(xié)議,其定義了信息采用何種格式化及如何傳送,以及網(wǎng)絡(luò)服務(wù)器或瀏覽器應(yīng)該采用什么動作以響應(yīng)一特定的需求。XML和HTTP均使用了一種流行的方式—遠程過程調(diào)用(RemoteProcedureCall,RPC),以利用網(wǎng)絡(luò)在不同電腦中的單獨程序之間實現(xiàn)進程間通訊(Inter-ProcessCommunication,IPC)。當(dāng)然,RPC和IPC也可以在單獨的電腦設(shè)備上被執(zhí)行。所揭示的無線應(yīng)用架構(gòu)301提供簡潔有效的環(huán)境,以發(fā)展在無線結(jié)構(gòu)中運行的主從式應(yīng)用程序。無線應(yīng)用架構(gòu)301的客戶端庫提供如下用于關(guān)系型客戶應(yīng)用程序的功能(1)生成遠程過程調(diào)用的內(nèi)容(方法名稱和參數(shù));(2)形成XML信息;(3)利用HTTP協(xié)議將該XML信息傳送至服務(wù)器;以及(4)接收并解釋來自于服務(wù)器的相應(yīng)的響應(yīng)。無線應(yīng)用架構(gòu)301的服務(wù)器端庫提供如下用于關(guān)系型客戶應(yīng)用程序的功能(1)接收并解釋一客戶端的請求信息,尤其是利用上述的客戶端庫所產(chǎn)生、形成以及傳送的請求信息;(2)根據(jù)客戶端的請求信息所請求的特定RPC,搜索一適合的程序;(3)調(diào)用該合適的程序;(4)將該合適的響應(yīng)發(fā)回至客戶端。本發(fā)明中的遠程過程調(diào)用(RPC)支持無線環(huán)境中以下的數(shù)據(jù)類型整數(shù)(4位);布爾函數(shù);字符串;日期;雙精度;base-64;數(shù)組;結(jié)構(gòu)以及雜湊表(hashtable)。無線資料復(fù)制器307處理并管理無線設(shè)備中的資料,它使用戶能夠在無線設(shè)備中選擇用戶所需要的特定信息,并且僅復(fù)制所選擇的信息,利用該方法以節(jié)省傳輸媒介中的頻寬和無線設(shè)備中的內(nèi)存資源。無線資料復(fù)制器307將系統(tǒng)數(shù)據(jù)庫用作客戶端資料緩存,并給每位用戶提供一無線設(shè)備資料過濾器,或稱用戶化腳本(customizablescripts),用以說明特定用戶選擇存儲在移動式設(shè)備上的信息。資料過濾器可以由特定的用戶在該用戶的移動式設(shè)備上定義,或者,由系統(tǒng)管理器或系統(tǒng)程序員來生成一公用數(shù)據(jù)過濾器(或稱標準過濾器)的菜單,然后用戶依其特定的環(huán)境和職責(zé)從該菜單上做簡單的選擇即可。標準過濾器也可以簡單地模塊化,這樣用戶就可選擇并定制。資料過濾器和標準過濾器可以很簡單,就如等式匹配游戲一樣,也可以很復(fù)雜,就如運用了乘法規(guī)則的乘算表一樣。無線資料復(fù)制器307和移動式交換器309提供有一平臺,專用應(yīng)用程序可以建構(gòu)于其上。在本實施方式中,專用應(yīng)用程序包括有移動式電子商務(wù)應(yīng)用程序310、移動式醫(yī)院應(yīng)用程序320、移動式物流應(yīng)用程序330以及移動式金融應(yīng)用程序340。該專用應(yīng)用程序310、320、330和340都僅僅是作為例子。實際上,本發(fā)明所揭示的方法可以用來實現(xiàn)任何應(yīng)用程序,這些應(yīng)用程序可以利用移動式訪問中心應(yīng)用程序或數(shù)據(jù)庫服務(wù)器來獲得幫助。應(yīng)用程序310、320、330和340都是本系統(tǒng)的應(yīng)用程序組件303之一。任何一個應(yīng)用程序310、320、330和340都包括有應(yīng)用程序產(chǎn)品305。在本實施方式中,移動式電子商務(wù)應(yīng)用程序310的應(yīng)用程序產(chǎn)品305包括有應(yīng)用程序A1311(APPA1)、應(yīng)用程序A2312(APPA2)和應(yīng)用程序A3313(APPA3)。移動式醫(yī)院應(yīng)用程序320的應(yīng)用程序產(chǎn)品305包括有應(yīng)用程序B1321(APPB1)和應(yīng)用程序B2322(APPB2)。移動式物流應(yīng)用程序330的應(yīng)用程序產(chǎn)品305包括有應(yīng)用程序C1331(APPC1)、應(yīng)用程序C2332(APPC2)和應(yīng)用程序C3333(APPC3)。最后,移動式金融應(yīng)用程序340的應(yīng)用程序產(chǎn)品305包括有應(yīng)用程序D1341(APPD1)、應(yīng)用程序D2342(APPD2)和應(yīng)用程序D3343(APPD3)。如應(yīng)用程序組件303一樣,應(yīng)用程序產(chǎn)品305的特定構(gòu)成對本發(fā)明而言并非是必要的,而僅僅是作為一個例子。例如,APPA1311可以是一個移動式銷售力自動控制應(yīng)用程序;APPB1321可以是一個移動式病人管理系統(tǒng);APPC1331可以是一個移動式傳輸管理系統(tǒng);APPD1341可以是一個移動式銀行業(yè)務(wù)應(yīng)用程序。圖4是本發(fā)明的服務(wù)器組件的方塊圖。如下的流程是在圖1所示的服務(wù)器107上執(zhí)行并支持上述與圖3結(jié)合起來所描述的服務(wù)器端庫。Java服務(wù)引擎401執(zhí)行透過其它流程訪問到該引擎的軟件、或Javaapplets和/或servlets。雖然本例所使用的是Java語言,但是本發(fā)明實際上可以用任何軟件語言來實現(xiàn)。特定的語言對本發(fā)明的實質(zhì)并不重要。在本實施方式當(dāng)中,這些組件均以Javaservlets構(gòu)成。Javaservlets與applets類似,也是一些應(yīng)用程序,或為軟件代碼的集合,其可擴展網(wǎng)絡(luò)瀏覽器和Java服務(wù)引擎401的功能。這種方法可以減小生成不同的擴充以和不同的后端系統(tǒng)相連接的需求。Java服務(wù)引擎401可根據(jù)不同的后端系統(tǒng)負載新的servlets,而不必修改Java服務(wù)引擎401本身。這樣,servlets只有在它被需要的第一時間才被安裝,并且并非所有時間都會生成對特定后端系統(tǒng)過程的需求。通訊管理器403控制進出移動式設(shè)備的信息,為方便以下的描述,該移動式設(shè)備設(shè)為個人數(shù)字助理101。通訊管理器403使服務(wù)器107和個人數(shù)字助理101之間保持基于傳輸控制協(xié)議(TCP)的聯(lián)接。在聯(lián)接的服務(wù)器107端,通訊管理器403接收個人數(shù)字助理101處的字符串流形式的遠程過程調(diào)用,并解析該遠程過程調(diào)用字符串流,將字符串流參數(shù)轉(zhuǎn)換成數(shù)據(jù)結(jié)構(gòu),然后調(diào)用具有已轉(zhuǎn)換的數(shù)據(jù)參數(shù)的合適的本地程序。由遠程過程調(diào)用所生成的結(jié)果被存儲于數(shù)據(jù)結(jié)構(gòu)的輸出參數(shù)中。和通訊管理器403通訊連接的是一復(fù)制管理器405、一緩存管理器411以及一圖表管理器407。復(fù)制管理器403控制客戶端之間的雙向資料同步,比如個人數(shù)字助理101和服務(wù)器107之間的資料同步。此外,復(fù)制管理器403提供端對端的傳輸交易控制,該傳輸交易控制可以檢測并解決不同客戶端之間的資料沖突。與復(fù)制管理器405連接在一起的是初級域管理器409,詳述如下。資料之間的沖突可以基于下述四類方法來解決。這四類方法是“最后所寫”、“基于時間標示”、“基于值”以及“基于時間標示和值”,詳述如下(1)在“最后所寫”沖突解決方法中,寫入數(shù)據(jù)庫的最后的值會成為對象的值。這類方法適用于那些極不可能發(fā)生的情形,即多人希望更新同一份資料。這會產(chǎn)生一個問題,那就是如果前一次的修改是在離線狀態(tài)下進行的,而且直到后一次修改進行以后才被復(fù)制,則該前一次的修改會覆蓋后一次的修改。(2)在“基于值”的方法中,如果個人數(shù)字助理101的“舊值”和服務(wù)器107的當(dāng)前值相匹配的話,服務(wù)器107就接受修改。(3)在“基于時間標示”方法中,如果修改的時間標示大于(時間上晚于)服務(wù)器107中對象的當(dāng)前時間標示,修改就被接受。這種方法之前提是假設(shè)個人數(shù)字助理101的時鐘與服務(wù)器的時鐘同步。(4)在“基于時間標示和值”的沖突解決方法中,由個人數(shù)字助理101所提供的修改時間標示必須晚于服務(wù)器07上的修改時間標示。此外,由個人數(shù)字助理101所提供的作為“舊值”的值必須和服務(wù)器107上的當(dāng)前值相匹配。這些條件可以確保修改是最近的,而且在做出修改時,用戶可以知道服務(wù)器107中對象的當(dāng)前表示法。注意如果個人數(shù)字助理101的數(shù)據(jù)庫和服務(wù)器107的數(shù)據(jù)庫都能夠操縱對象屬性層(相較于對象層)中的時間標示,則在更新操作進行時,可以生成一多重請求以更新一特定的對象。對那些沒有被服務(wù)器107中的復(fù)制管理器405所解決的資料所作的未被接受的修改,會被存儲起來供系統(tǒng)管理員檢查。系統(tǒng)管理員可以根據(jù)casebycase來決定一特定的修改是否應(yīng)該被接受。在本實施方式中,圖表管理器407管理有兩個圖表,皆為XML格式。第一圖表,或稱主圖表描述服務(wù)器107以及存儲在資料存儲器417中的主數(shù)據(jù)庫的圖表,以及該主數(shù)據(jù)庫的圖表之間的關(guān)系。當(dāng)然,如同上述與圖1結(jié)合所述的內(nèi)容一樣,主數(shù)據(jù)庫和資料存儲器417無需一定處于服務(wù)器107上,其可以處于電腦設(shè)備109和111之一或二者上,并能被服務(wù)器107透過網(wǎng)絡(luò)121所訪問。圖表管理器407中之一第二圖表描述個人數(shù)字助理101的數(shù)據(jù)結(jié)構(gòu)。當(dāng)資料從主數(shù)據(jù)庫檢索出來后,圖表管理器407就從所檢索的資料中提取信息,并將該提取的信息傳送至通訊管理器403以傳給個人數(shù)字助理101。圖表管理器407還有一附加的次圖表,用以從其它移動式設(shè)備,諸如膝上型電腦103中提取信息。緩存管理器411在資料對象從主數(shù)據(jù)庫中被提取出來前為其提供一緩存,以使來自個人數(shù)字助理101的復(fù)制資料請求更有效。緩存的目的和功能是為電腦領(lǐng)域內(nèi)的人士所熟知的。開放式數(shù)據(jù)庫互連(OpenDatabaseConnectivity,ODBC)連接管理器413(以下簡稱為ODBC連接管理器413)和圖表管理器407進行通訊連接。除了為熟知此項技術(shù)的人員所熟悉的連接池服務(wù)(connectionpoolservices)和本文服務(wù)(contextservices)外,ODBC連接管理器413在資料訪問管理器415和圖表管理器407之間還預(yù)建了一套ODBC連接,以從ODBC連接獲得并返回開放式連接,以及在停工時返回所有的資源。ODBC連接管理器413也處理連接失效和通訊失效的情形。資料訪問管理器415控制著對資料存儲器417的訪問。在本說明書中,資料存儲器417是指“遠程”的資料存儲器,而個人數(shù)字助理101上的資料存儲器是指“本地”資料存儲器?!氨镜亍奔啊斑h程”的指定僅為簡便起見,資料存儲器417也可以被稱為本地資料存儲器,而移動式電腦設(shè)備上的資料存儲器也可以被稱為遠程資料存儲器。對“本地”及“遠程”的指定僅為基于這樣一個事實,即兩個資料存儲器沒有駐存于同一設(shè)備上。資料訪問管理器415可以是任何商用的數(shù)據(jù)庫管理系統(tǒng),或者是用戶構(gòu)建的系統(tǒng)。資料訪問管理器415的具體的細節(jié)對本發(fā)明的精神并不重要,而且也應(yīng)當(dāng)為熟知本項技術(shù)的人士所熟悉。資料應(yīng)按技術(shù)域進行編排以使資料的存儲、收集以及分發(fā)降低對特定服務(wù)器程序,如數(shù)據(jù)庫管理系統(tǒng)和其它所采用的系統(tǒng)的依賴。特定技術(shù)域包含有特定對象的定義,包括構(gòu)成對象的單個的資料組件,或“屬性”。每條屬性均具有數(shù)據(jù)類型和一個或多個值。例如,一“賬戶”對象可以包含與銀行賬戶有關(guān)的屬性,比如所有者姓名和余額等。在一服務(wù)器中,一對象也可以是相關(guān)的資料的邏輯表示。每個對象都有唯一的識別符,或相應(yīng)對象的唯一的密鑰。當(dāng)一特定的對象被更新時,所有與該對象有關(guān)的資料也會被更新。諸如移動式電子商務(wù)應(yīng)用程序310、移動式醫(yī)院應(yīng)用程序320、移動式物流應(yīng)用程序330以及移動式金融應(yīng)用程序340(圖3所示)之類的應(yīng)用程序都有與其相對應(yīng)的域集合。例如,移動式醫(yī)院應(yīng)用程序320可具有病人對象和醫(yī)生對象,移動式電子商務(wù)應(yīng)用程序310可包含產(chǎn)品對象。特定的應(yīng)用程序310、320、330或340的對象均置于域管理器中,如域管理器一421,域管理器二422,域管理器三423。由于不同類型的對象需要不同類型的操作,因此每一域管理器421~423都包含有一套客制化的功能或者商業(yè)邏輯,比如商業(yè)邏輯431、商業(yè)邏輯432和商業(yè)邏輯433等。域管理器421~423透過資料訪問管理器415從資料存儲器417中提取與各自對象有關(guān)的信息。每一域管理器421~423都是相關(guān)域內(nèi)信息管理的控制點。諸如搜索、增加、更新和刪除等操作均是透過域管理器來完成。商業(yè)邏輯431~433為客制化的域,以使每一特定域的處理過程能夠進行。商業(yè)邏輯431~433也可以包含用于解決數(shù)據(jù)沖突的邏輯。為了防止不必要的軟件復(fù)制,所有域管理器421~423的公共功能都集中在初級域管理器409。初級域管理器409是一個基礎(chǔ)對象,域管理器421~423可從它那里繼承一些屬性和方法。圖5是客戶端移動式電腦設(shè)備如個人數(shù)字助理101上的數(shù)據(jù)管理程序500的流程圖。該流程始于開始步驟501,緊接著即為交易初始化步驟503,在這一步驟中個人數(shù)字助理101的用戶執(zhí)行一些動作以處理資料。例如,使用個人數(shù)字助理101的銷售人員可以從客戶那里接收購買特定棒球的請求。個人數(shù)字助理101上的本地數(shù)據(jù)庫被更新以顯示棒球庫存量的變化,該庫存量由服務(wù)器107上的數(shù)據(jù)庫表示。在本例中,上述個人數(shù)字助理101的本地數(shù)據(jù)庫可以被服務(wù)器107上的中央數(shù)據(jù)庫所同步,也可以不被該中央數(shù)據(jù)庫所同步。當(dāng)然,一旦該棒球的庫存量被輸入到該本地數(shù)據(jù)庫,則該本地數(shù)據(jù)庫和中央數(shù)據(jù)庫就彼此不同步了。在資料創(chuàng)建或更新步驟507中,程序500確定該交易是代表新的資料還是對已有資料的更新。新的資料可以是銷售人員在輸入新的客戶信息時所生成的帳戶對象。雖然不大可能,但是如果生成或接收的資料沒有改變或產(chǎn)生本地數(shù)據(jù)庫,或者如果資料被標以“沒有存儲”(下面會解釋),則控制過程會從步驟507跳到結(jié)束步驟523,交易的處理過程就此結(jié)束。如果資料是新的或被更新,則轉(zhuǎn)至當(dāng)前連接步驟509。在此步驟中,程序500確定在個人數(shù)字助理101和服務(wù)器107之間是否具有一當(dāng)前動態(tài)連接。如果沒有,則轉(zhuǎn)到插入同步序列步驟511,在該步驟,資料被置于個人數(shù)字助理101的存儲區(qū)域,那些未決的交易均存儲于此。此外,這些資料的狀態(tài)被設(shè)為“陳舊”,以下會對此做更為詳細的解釋。如果該程序在步驟509確定個人數(shù)字助理101和服務(wù)器107在當(dāng)前是連接著的,則流程會轉(zhuǎn)到同步步驟513。資料在步驟509被插入到同步序列和在步驟513的同步化均涉及到將資料格式化為適合傳送的格式,比如生成遠程過程調(diào)用的內(nèi)容(方法的名稱和參數(shù)),以及基于所生成的內(nèi)容和在步驟503所生成或者接收的資料形成XML信息。為了實現(xiàn)正確有效的同步,程序500將下列資料狀態(tài)之一分配到每個對象(1)新這種狀態(tài)指在個人數(shù)字助理101上已經(jīng)生成但在服務(wù)器107中未存在的對象。適合于相應(yīng)對象的“增加”對象操作,或者“方法”必須在下一同步過程中被傳送至服務(wù)器。該新對象的一些屬性比如唯一的對象密鑰須由服務(wù)器107生成并回傳給個人數(shù)字助理101,并確定服務(wù)器107中的增加操作是成功的。當(dāng)然,如果增加的操作不成功,服務(wù)器107需要將此情形傳送給個人數(shù)字助理101,這樣,個人數(shù)字助理101就可以采取合適的動作。(2)更新一個對象的更新指自從上次同步后已經(jīng)在本地個人數(shù)字助理101資料存儲區(qū)被更新。在更新的同一時刻,該對象的更新值必須被傳送到服務(wù)器107上。任何可能發(fā)生的沖突,如兩個互不相識的銷售員都試圖銷售同一產(chǎn)品時發(fā)生的沖突,都會在服務(wù)器107上通過復(fù)制管理器405解決(圖4)。然后更新過的對象重新被傳送到個人數(shù)字助理101以確保個人數(shù)字助理上的副本資料與服務(wù)器107上的一致。如果復(fù)制管理器405確定來自于個人數(shù)字助理101的對象因為數(shù)據(jù)沖突而無效時,傳送到個人數(shù)字助理101的更新對象還必須簡要說明該沖突事實。(3)不能存儲被指定為“不能存儲”的對象來自服務(wù)器107并保存到個人數(shù)字助理101上。如果有必要的話,該對象可以會被個人數(shù)字助理所遺棄。一個典型的例子是個人數(shù)字助理臨時需要某數(shù)據(jù)項目,而其屬性不能被修改。當(dāng)環(huán)境改變時,個人數(shù)字助理101可以將對象狀態(tài)從“不能存儲”狀態(tài)改為“可存儲”狀態(tài)。(4)存儲被指定為“存儲”的對象不管是在本地的還是在遠程的資料存儲區(qū)都被作為永久的一部分,并與至少一個包含在同步過程中的預(yù)先定義的資料過濾器相匹配,從而使其屬性值被保留在一個同步狀態(tài)。(5)陳舊被指定為“陳舊”的對象被保留在個人數(shù)字助理101上但不包括在同步過程中。個人數(shù)字助理101可以根據(jù)其自身需求及(或)該陳舊對象的自身特性來決定保留還是清除該指定為陳舊的對象。(6)刪除被指定為“刪除”的對象是指已經(jīng)從個人數(shù)字助理101的資料存儲區(qū)移除的對象,且在一個同步過程中該刪除信息需被傳送到服務(wù)器107中??蛻艨梢詮谋镜刭Y料存儲區(qū)移除該刪除的對象,而只需在一個同步過程中傳送該對象的唯一密鑰至服務(wù)器,或者標注該對象為刪除狀態(tài),而正如同步過程所要求的那樣,只有當(dāng)該對象從服務(wù)器107成功刪除時才將其從本地資料存儲區(qū)移除。個人數(shù)字助理101特定對象的狀態(tài)維持追蹤的方式對于本發(fā)明的精神并不很重要。如果個人數(shù)字助理101將對象保存在一個關(guān)系數(shù)據(jù)庫中,該對象的指定狀態(tài)可以簡單地作為表格中的一個屬性值范圍。另外一種可替代的保存該狀態(tài)信息的方法是,通過將對象的不同狀態(tài)隔離在不同的文件里。例如,一個“不能保存”的對象可以保存在一臨時文件中,只有當(dāng)該“不能保存”狀態(tài)轉(zhuǎn)換為“保存”狀態(tài)時才被保存到資料存儲區(qū)。步驟509是向步驟511進行還是向步驟513進行取決于個人數(shù)字助理101是處于在線狀態(tài)還是處于離線狀態(tài)。如果個人數(shù)字助理101處于在線狀態(tài),則轉(zhuǎn)向步驟513且在步驟509創(chuàng)建的XML信息被傳送到服務(wù)器107上。如果個人數(shù)字助理101處于離線狀態(tài),則轉(zhuǎn)向步驟511,在該步驟,XML信息被插入到一個同步步驟中。接著,再轉(zhuǎn)回至步驟509,在該步驟,個人數(shù)字助理一直為待機狀態(tài),直到在其與服務(wù)器107之間建立一條連接。個人數(shù)字助理101周期地核查一個連接是否被建立,例如當(dāng)連接周期為定期排程事件或數(shù)據(jù)傳輸被服務(wù)器107所初始化等;或者當(dāng)個人數(shù)字助理101需要傳送一條或多條信息,被設(shè)定為初始化一個連接時,核查建立連接的條件是否已經(jīng)具備。如果當(dāng)個人數(shù)字助理101在等待與服務(wù)器之間建立一個連接時,一個新的交易被初始化,程序500會像處理以前的交易一樣將該新的交易放到同步隊列中等待建立連接,以便能產(chǎn)生一個同步過程。上述提到的同步周期可以是固定不變的也可以是可變的。一個同步排程可以通過個人數(shù)字助理101或服務(wù)器107上的用戶接口(UI)來建立。用戶亦可在個人數(shù)字助理101或服務(wù)器107上利用該用戶接口來初始化一同步過程。如果在初始化一同步過程的同時,在個人數(shù)字助理101和服務(wù)器107之間還未建立連接,初始化同步過程的個人數(shù)字助理101和服務(wù)器107辨識出該狀態(tài),并將連接請求放進同步序列中,然后周期地測試兩者之間的連接是否建立或建立連接的必要條件是否存在。兩者之間的連接一旦建立,同步過程將繼續(xù),控制過程509將轉(zhuǎn)向步驟513。該同步過程需保持本地的資料副本與服務(wù)器107上的對應(yīng)資料一致。本發(fā)明的同步是基于資料過濾器的,這些將在后面結(jié)合圖9到圖12進行詳細論述。個人數(shù)字助理101上的資料對象副本,如本地或客戶端資料,通過一系列的客戶端/服務(wù)器端的交易,與服務(wù)器107上對應(yīng)的資料對象,如服務(wù)器端資料達成同步。同步步驟513始于個人數(shù)字助理101向服務(wù)器107發(fā)送一個同步請求對象時。該同步請求對象會壓縮所有個人數(shù)字助理101需要提供給服務(wù)器107的資料,以便執(zhí)行一個特定的同步動作,包括一時間標記、一可選擇的過濾器、一可選擇列表、或一需要同步的對象“矢量”或一同步對象,以及一個包括個人數(shù)字助理101當(dāng)前的地理位置信息的可選的位置對象。在另一實施方式中,該位置對象可以是一個既包括個人數(shù)字助理101的當(dāng)前地理位置信息還包括其未來地理位置信息的矢量。有六種同步行為或操作一同步過濾操作,一獲取刪除操作,一獲取創(chuàng)建操作,一發(fā)送修改操作,一發(fā)送創(chuàng)建操作及一發(fā)送刪除操作。該六個操作在下面結(jié)合圖6有詳細描述。每一操作都帶有兩個參數(shù),一同步請求對象和一第二字段,或“結(jié)果ID”,其用于表明對應(yīng)于該同步請求對象,個人數(shù)字助理101希望從服務(wù)器107返回的信息。該結(jié)果ID設(shè)置有如下幾種值(1)全部該“全部”結(jié)果標記值意味著服務(wù)器107必須返回該操作有關(guān)的所有對象的ID及其狀態(tài)值。該“全部”結(jié)果標記值應(yīng)該慎用,應(yīng)為其會導(dǎo)致個人數(shù)字助理101與服務(wù)器107之間的通訊量劇增。(2)更新該“更新”結(jié)果標記值意味著服務(wù)器107應(yīng)該返回與該更新操作有關(guān)的所有對象的ID及其狀態(tài)值。此外,當(dāng)服務(wù)器107上的副本與個人數(shù)字助理101上不一致時,對象副本也應(yīng)返回。(3)ID該“ID”結(jié)果標記值意味著服務(wù)器107應(yīng)該返回與該操作有關(guān)的所有對象的ID及其狀態(tài)值。另外需返回基于操作之類型的信息。(4)失敗該“失敗”結(jié)果標記值意味著服務(wù)器107僅僅返回操作過程中不能處理的對象的錯誤信息。(5)無記載該“無記載”結(jié)果標記值意味著個人數(shù)字助理101對于接受關(guān)于操作的任何信息都不關(guān)心,服務(wù)器107應(yīng)處理整個請求,而僅僅將操作完成的信息傳送給個人數(shù)字助理101。對應(yīng)于特定操作的結(jié)果ID將在圖6進行詳細描述。該同步請求時間ID指示某特定同步操作執(zhí)行的最新時間。如果資料過濾器是指定的,服務(wù)器107即利用該資料過濾器來限定返回的資料范圍或“同步結(jié)果對象”。如果可選的位置對象包括在同步結(jié)果對象里,則返回資料范圍也可以基于位置對象中的位置信息來設(shè)定。例如,位于一城市的個人數(shù)字助理101用戶,其在該個人數(shù)字助理101的本地資料存儲區(qū)存有該城市的餐館相關(guān)信息,當(dāng)該用戶旅行到另外一城市時,一個同步結(jié)果對象將包含該異地城市的餐館相關(guān)信息。該位置信息可以基于一公用系統(tǒng),如全球定位系統(tǒng)(GPS)或移動電話塔或一私有系統(tǒng),如傳送裝置置于一醫(yī)院房間,而僅僅在一有限的區(qū)域內(nèi)發(fā)送信息。該位置對象還可以包括未來位置信息。例如通過該傳送裝置,一醫(yī)生可以指定將來的房間矢量,不僅可以將當(dāng)前房間里的病人信息下載到其個人數(shù)字助理101上,還可以把該房間周圍矢量范圍內(nèi)的的房間內(nèi)的病人信息都下載到其個人數(shù)字助理101上。每一同步對象矢量都包括一時間ID,一對象ID,一基礎(chǔ)對象,一對象狀態(tài)ID,一舊值對象及一可選的信息字段。在一特定行為里,并不是所有的這些同步對象都必須指定。例如,在一個添加操作中,同步對象不需要指定該舊值對象;在一個刪除操作中,只需要指定要刪除的對象ID即可;而舊值對象只有在更新操作時才需要指定。該同步對象的時間ID表示某特定對象在服務(wù)器107上被更新或核實的時間。如果同步對象的時間ID在某特定同步對象中沒有指定,則服務(wù)器107將同步請求時間ID作為該同步對象的時間ID。對象ID指定一基礎(chǔ)對象在整個同步對象中的唯一身份標識ID。該狀態(tài)ID和信息字段描述一作為操作結(jié)果的同步對象的狀態(tài),主要應(yīng)用在同步結(jié)果對象中。當(dāng)服務(wù)器107完成同步對象中指定的動作時,其會將同步結(jié)果對象傳送到個人數(shù)字助理101。該同步結(jié)果對象包括一個時間ID和一同步對象矢量。該同步結(jié)果時間ID表示響應(yīng)的同步操作在服務(wù)器107上執(zhí)行的時間。同步結(jié)果對象中的每一同步對象的時間ID表示與該同步對象對應(yīng)的行為被執(zhí)行的時間。特別是當(dāng)同步結(jié)果里的所有同步對象都有相同的時間ID時,如果一個時間ID沒有被指定,則可以用同步結(jié)果的時間ID來代替。同步結(jié)果中的同步對象的狀態(tài)字段表示該對象與對應(yīng)的操作的關(guān)系,其設(shè)定有如下幾種值(1)更新更新狀態(tài)表示服務(wù)器107上的副本與個人數(shù)字助理101上的副本不一致。該狀態(tài)意味著另外一客戶在服務(wù)器收到同步請求前已經(jīng)更新了數(shù)據(jù)庫中的資料對象,此時個人數(shù)字助理101必須采取一適當(dāng)操作來解決該種沖突。(2)成功成功狀態(tài)表示同步對象在服務(wù)器107上處理成功,在服務(wù)器107滿足同步請求時不需要對同步對象做任何修改。(3)失敗失敗狀態(tài)表示服務(wù)器107不能執(zhí)行某特定同步對象的操作請求。在這種情況下,該信息字段包含一關(guān)于該失敗狀態(tài)的文本信息。(4)相同相同狀態(tài)表示服務(wù)器107上的對應(yīng)對象同步對象時間ID沒有變動。(5)新匹配新匹配狀態(tài)表示自從個人數(shù)字助理101最后一次發(fā)出請求的時間后,對應(yīng)的同步對象中描述的對象對于服務(wù)器107或某特定請求來說是新的。(6)不匹配不匹配的狀態(tài)意味著服務(wù)器107不能找到對應(yīng)值對象,可能因為其已被刪除或更改,以致于不再匹配同步請求對象提供的資料過濾器。該狀態(tài)字段及其對應(yīng)的特定操作將會對照圖6作詳細描述。一旦同步步驟513完成,程序500將繼續(xù)到良好狀態(tài)返回的步驟517,在該步驟,會通過分析服務(wù)器107的返回信息來核實同步步驟513中的對象信息,如果該返回狀態(tài)值信息表示某特定的資料更新或創(chuàng)建操作成功,則控制模塊517轉(zhuǎn)向標示資料狀態(tài)步驟519,在該步驟,表示存儲在本地資料存儲區(qū)的對象值被與存儲在服務(wù)器107的存儲區(qū)417的對象值相匹配。如果某特定項目的返回信息表示一更新或創(chuàng)建操作在服務(wù)器107上沒有被執(zhí)行,那幺控制模塊517轉(zhuǎn)向重處理步驟521,在該步驟,對應(yīng)的對象值被設(shè)定為與存儲在服務(wù)器107的存儲區(qū)417中的對象值相同。此外,任何在個人數(shù)字助理101上基于資料對象的更新或操作的行為必須被確定是否有必要采取更進一步的操作。在步驟519和521完成之后,程序500進行到結(jié)束步驟523,在該步驟,程序500運行結(jié)束。需要注意的是,步驟517,519及521在本質(zhì)上是反復(fù)迭代的。換句話來說,如果一個同步過程包括多個對象且這些對象都被處理形成一同步隊列,對應(yīng)于每一對象的返回信息都必須通過步驟517,519及521才能到達最后的結(jié)束步驟523。圖6為一對應(yīng)于同步步驟513(圖5)的典型同步程序600流程圖。程序600始于開始步驟601,當(dāng)同步請求操作如圖5中所描述的那樣被初始化的同時,該步驟被初始化。如下的每一個步驟都表示一個與同步請求對象一起傳送的操作。程序600從步驟601進行到與獲取刪除操作相關(guān)聯(lián)的獲取刪除步驟603。該獲取刪除操作重新找回從上一次獲取刪除操作被執(zhí)行后已經(jīng)從服務(wù)器107上所刪除的所有對象。對應(yīng)于同步請求對象,該獲取刪除操作發(fā)送一時間ID和一可選擇的對象ID列表至服務(wù)器107。一般來講,對應(yīng)于該獲取刪除操作沒有對應(yīng)的資料過濾器。但是,如果某特定的服務(wù)器107執(zhí)行一兩步過程刪除和銷毀,那幺一個資料過濾器可以被發(fā)送。該獲取刪除操作的時間ID應(yīng)被設(shè)定為個人數(shù)字助理101最近一次發(fā)送獲取刪除操作的時間(如果某給定的資料過濾器已經(jīng)被發(fā)送)。如果該可選的ID列表與該獲取刪除操作一起被發(fā)送至服務(wù)器107,則該服務(wù)器107將同步結(jié)果對象回傳至個人數(shù)字助理101,正如上述在圖5的描述一樣。該同步結(jié)果對象包含對象狀態(tài),包括已刪除的和未刪除的對象,連同列表上的對象ID。如果一個資料過濾器被發(fā)送,則僅僅只有符合該資料過濾器的對象狀態(tài)被發(fā)送。否則,服務(wù)器107將回傳一個包含自上一次同步后被刪除的所有對象ID列表的同步結(jié)果對象。該同步結(jié)果對象的時間ID被保存在個人數(shù)字助理101上并被作為下一次同步請求對象的時間ID。個人數(shù)字助理101將返回的ID列表與其上保存的對象做比較,并據(jù)此更新其本地數(shù)據(jù)庫。如果該同步結(jié)果對象的結(jié)果標記值被指定為全部,則服務(wù)器107返回自上一次獲取刪除操作后被刪除的所有對象的ID。如果提供有一ID列表,則該同步結(jié)果還將包含列表上每一ID的狀態(tài)?!安黄ヅ洹睜顟B(tài)表示該對應(yīng)的對象在服務(wù)器107上不再存在。“更新”狀態(tài)表示該對應(yīng)的對象存在于該服務(wù)器上,但已經(jīng)在該獲取刪除操作時間后被更新。在這種情形下,該更新過的對象副本也被返回至個人數(shù)字助理101。更新、失敗及無記載的結(jié)果標記值不適用于該操作?!癐D”結(jié)果標記值會致使服務(wù)器107返回自上一次執(zhí)行獲取刪除操作后被刪除的所有對象ID。如果提供有一ID列表,則該服務(wù)器還將返回列表上每一ID的狀態(tài)。在這種情形下,該結(jié)果狀態(tài)不是匹配就是不匹配,且更新后的對象副本也不用返回。接著步驟603進行到發(fā)送刪除步驟605,在該步驟,個人數(shù)字助理101經(jīng)由傳送該同步請求對象中的發(fā)送刪除對象,其包括被刪除對象的對象ID,來向服務(wù)器107匯報在個人數(shù)字助理101本地數(shù)據(jù)庫被刪除的對象。服務(wù)器107據(jù)此更新服務(wù)器數(shù)據(jù)庫并回復(fù)給服務(wù)器個人數(shù)字助理101,說明已經(jīng)從服務(wù)器107的資料存儲區(qū)417成功刪除的對象。完成發(fā)送刪除步驟605后,程序600繼續(xù)到獲取創(chuàng)建步驟607。在該獲取創(chuàng)建步驟607,個人數(shù)字助理101發(fā)送一時間ID和一可選的資料過濾器至服務(wù)器107。如果資料過濾器沒有指定,則個人數(shù)字助理101找回自上一次執(zhí)行獲取創(chuàng)建步驟后在服務(wù)器107上所創(chuàng)建的所有資料對象。如果在同步請求對象中指定了資料過濾器,則僅僅返回該時間ID后新創(chuàng)建的符合該資料過濾器的新對象。在該操作中,不返回對象ID。服務(wù)器107回復(fù)一組同步對象矢量,每一對象均表示一新創(chuàng)建的基礎(chǔ)對象。該返回對象的狀態(tài)值為“新匹配”,且其時間ID對應(yīng)于該對象在服務(wù)器107上創(chuàng)建的時間。同步請求對象中的結(jié)果ID值為全部ID時,服務(wù)器107返回所有創(chuàng)建的對象;結(jié)果標記值為ID時,服務(wù)器107返回所創(chuàng)建對象的ID,但不返回對象本身的副本。結(jié)果標記值更新,失敗及無記載不適用于該操作。完成獲取創(chuàng)建步驟607后,程序進行到發(fā)送創(chuàng)建步驟609,在該步驟,個人數(shù)字助理101通過在本地資料存儲區(qū)搜索狀態(tài)值為“新”的對象來創(chuàng)建一在本地資料存儲區(qū)所創(chuàng)建的最新對象列表。該新對象隨同上次發(fā)送創(chuàng)建操作執(zhí)行的時間ID一起被發(fā)送至服務(wù)器107。該時間ID信息被復(fù)制管理器405用來探測及解決任何潛在的資料沖突,且在可能的情況下添加物件至服務(wù)器107的數(shù)據(jù)庫。在該發(fā)送創(chuàng)建操作,沒有指定資料過濾器,且個人數(shù)字助理101在請求中為每一對象創(chuàng)建一臨時ID或ID密鑰,用來將該對象與服務(wù)器107回復(fù)的同步結(jié)果對象中的對象ID相關(guān)聯(lián)。一旦服務(wù)器107接收到來自個人數(shù)字助理101的同步請求對象,服務(wù)器107產(chǎn)生相應(yīng)的同步結(jié)果對象,指明在服務(wù)器107上所重新創(chuàng)建的新對象。該同步結(jié)果對象包括一基礎(chǔ)對象,其可能與個人數(shù)字助理101所發(fā)送的新對象不盡相同。如果同步請求對象中的結(jié)果標記值設(shè)為“全部”,則該同步對象包括包含在該發(fā)送創(chuàng)建操作中的全部對象及其子對象。其包括有顯示該操作后新增的對象、在該發(fā)送創(chuàng)建過程中更新的新增對象及不能添加物件的失敗結(jié)果等基礎(chǔ)對象。該全部結(jié)果標記值是同時返回該對象及其成功狀態(tài)值的唯一設(shè)定值。該成功狀態(tài)值意味著該對象沒有任何變動地被添加到服務(wù)器107的數(shù)據(jù)庫中。如果該結(jié)果標記值設(shè)定為“更新”,則返回對象ID及其成功狀態(tài)值,但不返回對象本身。如果該添加物件的狀態(tài)為更新,則對象ID,狀態(tài)值及對象副本被返回。一般地,這種情形意味著有多個字段沒有在原始請求中做描述,但需要由服務(wù)器107來設(shè)定。在這種情形下,對象ID由服務(wù)器107設(shè)定,且包含在返回信息字段里。如果對于某特定對象添加失敗,則該失敗狀態(tài)值、信息字段中的錯誤信息及原始對象被返回至個人數(shù)字助理101。如果同步請求中的結(jié)果標記值設(shè)定為“ID”,則該同步結(jié)果對象僅僅包括服務(wù)器創(chuàng)建的對象ID及所發(fā)送的所有對象的狀態(tài)--沒有任何對象被返回至個人數(shù)字助理101。如果該結(jié)果標記值設(shè)定為“失敗”,則該同步結(jié)果對象僅僅包含臨時ID、對象狀態(tài)及失敗的原因信息。如果該結(jié)果標記值設(shè)定為“無記載”,則關(guān)于操作成功或失敗與否的任何信息都不返回至個人數(shù)字助理101。如果該結(jié)果標記值設(shè)定為“全部”或“更新”,則客戶端應(yīng)依據(jù)同步結(jié)果對象中的結(jié)果來更新其本地資料存儲區(qū)。如果該結(jié)果標記值設(shè)定為“失敗”或“無記載”,則個人數(shù)字助理101應(yīng)采取相應(yīng)步驟以確保本地信息的正確性。如果該同步結(jié)果對象返回的狀態(tài)值為“失敗”,則個人數(shù)字助理101應(yīng)采取相應(yīng)步驟去修正該問題,有可能還需要再次進行相應(yīng)的操作。一旦確認該發(fā)送創(chuàng)建操作在服務(wù)器107上已完成,正如在相應(yīng)的同步結(jié)果對象中所指明的那樣,原始對象從本地資料存儲區(qū)被刪除。如果一新創(chuàng)建對象符合一過濾器,則起將會在下一個同步過程中被重新創(chuàng)建。這樣能確保個人數(shù)字助理101對該對象有一正確的表述。在某些情況下,服務(wù)器107將在將該對象添加至數(shù)據(jù)庫之前填充缺省字段或更新新對象。如果個人數(shù)字助理101不能決定服務(wù)器107是否已完成一添加操作,則個人數(shù)字助理101不知道是否所有的添加請求是否被服務(wù)器107所接收和(或)處理。在個人數(shù)字助理101再次與服務(wù)器107連接時,其將試圖去確定先前的添加操作是否成功。如果該信息仍然不能確定,則個人數(shù)字助理101,或更精確地說是執(zhí)行該操作的移動式電子商務(wù)應(yīng)用程序310將提示用戶再次提交該添加請求或從本地資料存儲區(qū)移除該操作請求。一旦該發(fā)送創(chuàng)建步驟609完成,則程序?qū)⒗^續(xù)到發(fā)送更新步驟611,在該步驟,個人數(shù)字助理101將自上次執(zhí)行發(fā)送創(chuàng)建操作后在本地資料存儲區(qū)有變動的對象信息發(fā)送到服務(wù)器107。個人數(shù)字助理101利用上次發(fā)送創(chuàng)建操作的時間ID來填充同步請求對象中的時間ID字段,同時其還發(fā)送一組同步基礎(chǔ)對象矢量。對于在本地數(shù)據(jù)庫存儲區(qū)有變動的每一對象,個人數(shù)字助理101創(chuàng)建一同步基礎(chǔ)對象。該同步基礎(chǔ)包含同步基礎(chǔ)對象中所表述的某次特定變更的時間ID。ID字段用該特定對象的唯一身份標識來填充。個人數(shù)字助理101還提交一更新的基礎(chǔ)對象于同步對象中的基礎(chǔ)對象字段中。只有有變動的值才會被表述。舊值被放置在另一基礎(chǔ)對象中,包括舊值及屬性等,不包括更新過的值。唯一需要被表述的值為在更新過的基礎(chǔ)對象中所列示的屬性的原始值。例如,如果一個對象值變更,則其原始值應(yīng)放置在舊值對象中,而其新值則被放置在更新的基礎(chǔ)對象中。該同步基礎(chǔ)對象中的ID字段為變更的目標對象唯一的可靠標識。下面描述的是由服務(wù)器107的返回信息,該信息是基于一為發(fā)送創(chuàng)建操作而設(shè)置的特定結(jié)果ID。如果結(jié)果ID值設(shè)定為“全部”,服務(wù)器107則傳回所有已被成功更新對象的ID和一錯誤信息,該錯誤信息顯示沒有被更新的對象。在完成所有的更新操作后所有對象的當(dāng)前值會被傳給客戶端。如果結(jié)果ID值設(shè)定為“更新”,服務(wù)器107則傳回符合要求的每一對象的狀態(tài)。那些已被更新對象的信息將不會傳回。對于沒有被成功更新的對象,傳回的信息包括已更新對象的ID、該對象被存儲于服務(wù)器107的狀態(tài)和當(dāng)前版本。個人數(shù)字助理101能用這些對象的當(dāng)前值更新其本地的資料存儲區(qū)。如果結(jié)果ID值設(shè)定為“ID”,服務(wù)器107則傳回所有符合要求對象的ID和狀態(tài)。無對象傳回至個人數(shù)字助理101。如果結(jié)果ID值設(shè)定為“失敗”,服務(wù)器107傳回的結(jié)果將僅包括不能在服務(wù)器107上更新的對象的ID、狀態(tài)和失敗信息。服務(wù)器107不會傳回該對象的當(dāng)前版本。如果結(jié)果ID值設(shè)定為“無記載”,服務(wù)器107不會傳送有關(guān)更新成功與否的任何信息給個人數(shù)字助理。在執(zhí)行發(fā)送更新步驟611后,程序進行至一同步過濾步驟613,在該步驟使用者可選擇保存一資料過濾器以供后續(xù)使用。該資料過濾器存儲于個人數(shù)字助理101在本地的資料存儲區(qū)的過濾器列表中。服務(wù)器107也可以保存資料過濾器,并為每一資料過濾器設(shè)一使用者ID和資料過濾器ID,以便在同步過程中個人數(shù)字助理101只需發(fā)送資料過濾器的ID即可,而非實際的資料過濾器。如果被保存的過濾器正在本地運行,除了資料過濾器的查詢字符串、過濾器名稱和該資料過濾器是否要同步外不會存儲其它的信息。如果該資料過濾器是在服務(wù)器107上運行,被傳回的ID清單也會與數(shù)據(jù)過濾器一起保存。資料過濾器的同步操作即可成批進行,也可一次只執(zhí)行一個。對于每一資料過濾器,個人數(shù)字助理101,或者更準確的說執(zhí)行該資料過濾器的電子商務(wù)應(yīng)用程序310提供一與上次執(zhí)行同步操作時使用的數(shù)據(jù)過濾器相匹配的ID清單。個人數(shù)字助理101傳送同步請求對象的矢量至服務(wù)器107。每一同步請求對象均包含一查詢字符串和一同步對象的矢量。在每一同步對象內(nèi),由個人數(shù)字助理101填寫該對象的ID和時間ID。服務(wù)器107則傳回同步結(jié)果對象的矢量。該矢量將含有對應(yīng)于每一同步請求對象的一同步結(jié)果對象。每一同步結(jié)果對象將包含一被執(zhí)行過的資料過濾器,顯示該過濾器執(zhí)行時間的ID和同步對象的矢量。每一同步對象均有一字段用下述四種狀態(tài)描述其在結(jié)果信息中的存在方式。如果一同步對象被標為“相同”,則該對象的ID已包含在請求信息ID內(nèi)。換句話說,個人數(shù)字助理101已經(jīng)知道該對象匹配的過濾器。而且,該對象自同步請求對象內(nèi)的時間ID顯示的時間以來尚未被更新過。所以個人數(shù)字助理101不需要對本地資料器存儲做任何更動。服務(wù)器107可選擇不傳送該對象至個人數(shù)字助理101以減少網(wǎng)絡(luò)上的通訊量。如果該對象的ID沒有包含在結(jié)果信息內(nèi),個人數(shù)字助理仍可假定該對象與過濾器匹配并且未發(fā)生變動。隨后,個人數(shù)字助理101將該對象在本地的副本上的時間ID更新為同步結(jié)果對象內(nèi)提供的時間ID。時間ID被更新后,應(yīng)保存該對象在本地的副本的狀態(tài),而不論其先前狀態(tài)如何。遺漏的ID則留在與該過濾器相匹配的ID清單內(nèi)。如果該同步對象被標為“新匹配”,則同步請求對象內(nèi)列明的已知ID中沒有該對象的ID。即該對象與前一次被執(zhí)行同步操作的過濾器不相匹配。在這種情形下,整個對象被傳回至個人數(shù)字助理101。個人數(shù)字助理101將其存入本地存儲區(qū),同時將時間ID更新為同步請求對象內(nèi)提供的時間ID。在個人數(shù)字助理101的資料存儲區(qū)該對象的狀態(tài)被設(shè)為“保存”,該對象的ID也添加至與過濾器相匹配的ID本地清單。如果同步對象的狀態(tài)為“更新”,其對應(yīng)ID則在同步請求對象發(fā)送之前次結(jié)果信息內(nèi)。但是自同步請求內(nèi)提供的對象的時間ID顯示的時間以來,該對象已被更新過。整個對象被傳至個人數(shù)字助理101。個人數(shù)字助理101將其保存至本地資料存儲區(qū),同時將時間ID更新為同步請求對象內(nèi)提供的時間ID。在個人數(shù)字助理101的資料存儲區(qū)該對象的本地狀態(tài)被設(shè)為“保存”,該對象的ID也被保留在與過濾器相匹配的ID清單內(nèi)。在與先前的特定過濾器相匹配的同步請求內(nèi),發(fā)送的同步對象狀態(tài)為“不匹配”。但是該對象已經(jīng)被更新或刪除,所以不再與相應(yīng)的查詢字符串相匹配。個人數(shù)字助理101則在本地資料存儲區(qū)將該對象狀態(tài)設(shè)為“陳舊”,并將該對象的ID從與過濾器相匹配的ID清單中移除。如果本地資料存儲區(qū)內(nèi)并沒有該對象,那幺個人數(shù)字助理僅將該對象的ID從ID清單中移除。個人數(shù)字助理101保存每一被執(zhí)行同步操作的資料過濾器,以及表明該過濾器上一次被執(zhí)行的時間的時間ID,每一次該過濾器被執(zhí)行時與的匹配的ID清單。除同步過濾請求外,個人數(shù)字助理101也提供指示傳回信息的數(shù)量的結(jié)果ID。下面列出的即是個人數(shù)字助理101基于該ID可得到的結(jié)果。如果結(jié)果ID的值為“全部”,服務(wù)器則傳回與資料過濾器內(nèi)的查詢字符串相匹配的所有對象。該對象的狀態(tài)會添加進去,然后傳回整個對象。如果某一ID不再與過濾器相匹配,該對象則被設(shè)為“不匹配”,該對象的ID被傳回。此時,沒有對象傳回個人數(shù)字助理101。如果結(jié)果ID的值為“更新”,服務(wù)器107則傳回與資料過濾器相匹配的所有對象的ID,而不是整個對象,因為這些對象的狀態(tài)為“相同”。被傳回的是被標為“更新”或“新匹配”的對象。同時,服務(wù)器107也指出不再與過濾器匹配的對象,將其狀態(tài)設(shè)為“不匹配”。如果結(jié)果ID的值為“ID”,服務(wù)器107則傳回被標為“更新”或“新匹配”的對象,同時指出不再與過濾器匹配的對象,將其狀態(tài)設(shè)為“不匹配”。對于任何標為“相同”的對象,服務(wù)器107不會傳回其ID或?qū)ο?。如果結(jié)果ID設(shè)為失敗或未記載,則不執(zhí)行本步驟。完成同步過濾步驟613后,同步程序600即進行至步驟615,至此整個同步程序結(jié)束。盡管圖6的同步程序600不是一串連續(xù)的步驟,但這并不是本發(fā)明主題所必需的。舉例來說,所有的步驟可結(jié)合成一單一的同步請求對象,由服務(wù)器107按照圖6揭示的次序或其它次序依次執(zhí)行不同的操作。圖7是在支持個人數(shù)字助理101的服務(wù)器107上運行的資料管理程序700的流程圖。該程序始于一開始步驟701,并直接進行至一資料接收步驟703。比較典型的例子是,步驟703與一同步步驟513(圖5)相連接。從步驟703到一新資料步驟705后,資料管理程序700判斷在步驟703收到的資料對象的狀態(tài)值是否為“新”(如圖5所述)。如果該資料是新的,程序即轉(zhuǎn)入一插入資料步驟707,由資料擷取管理器(圖4)創(chuàng)建一新資料對象并將其插入資料存儲器417(圖4)的合適位置。隨后程序進行至傳送狀態(tài)步驟715,在該步驟生成一傳回信息,通知傳送資料對象的個人數(shù)字助理101資料創(chuàng)建操作的結(jié)果。如果在步驟705,資料管理程序700確定該資料對象不是新的,而是被傳送它的個人數(shù)字助理101指定為“更新”的對象,那幺程序即進行至核對時間ID步驟709,由程序700比對被傳送來的資料對象的時間ID和存儲的相應(yīng)對象的時間ID。如果存儲的資料對象比傳送的資料對象新,那幺該存儲的對象不會被更新,程序直接跳至傳送狀態(tài)步驟715,發(fā)送一傳回信息通知個人數(shù)字助理101該更新操作失敗。如果在步驟711,程序確定傳送的資料對象上的時間ID晚于該存儲的對象上的時間ID,那幺程序轉(zhuǎn)入資料同步步驟713,用傳來的對象取代存儲的對象。隨后,在傳送狀態(tài)步驟715,發(fā)送一傳回信息通知個人數(shù)字助理101資料更新成功。需要注意的是,上述程序是不斷重復(fù)的,因為個人數(shù)字助理101傳送給服務(wù)器107的資料對象可以不只一個,而每一傳送的資料對象需在一個同步操作完成前由程序700處理。圖8是在服務(wù)器107(圖1)上執(zhí)行的更新通知程序800的流程圖。程序800始于一開始步驟801,然后直接到一初始化交易步驟803,在遠程資料存儲器417(圖4)一些針對資料的操作已經(jīng)完成。在本較佳實施方式中,該操作可以是更新、添加或刪除,只要與個人數(shù)字助理器101(圖1)的使用者的ID相連的資料過濾器相符即可。每一對操作/資料過濾器都有一加權(quán)值、一臨界值,或者一累積加權(quán)值(另一較佳實施方式)。在某些情形下,該加權(quán)值和臨界值可能相同。交易在步驟803被執(zhí)行后,在檢索加權(quán)值步驟805,程序?qū)⒃摬僮饕约霸摬僮鞯哪繕酥蹬c服務(wù)器107上的資料過濾器清單進行比對。如果該操作與某一資料過濾器相符,那幺就會檢索到那一對操作/資料過濾器所對應(yīng)的加權(quán)值。在累積加權(quán)值實施方式中,還會檢索到一個累積加權(quán)值。累積加權(quán)值是某一對操作/資料過濾器在程序800先前的多次反復(fù)操作中得到的各加權(quán)值的累加數(shù)。隨后,程序進行到步驟807,比較加權(quán)值是否超過臨界值。在累積加權(quán)值實施方式中,則是將一對操作/資料過濾器的累積加權(quán)值與臨界值相比對。如果加權(quán)值或者是累積加權(quán)值沒有超過臨界值,程序即轉(zhuǎn)入重算加權(quán)值步驟815,在累積加權(quán)值實施方式中,則是直接跳至結(jié)束步驟817。在結(jié)束步驟815,該特定操作的處理程序完成。在重算加權(quán)值步驟815,將在步驟805檢索到的加權(quán)值加到累積加權(quán)值上,然后將新的累積加權(quán)值存入資料存儲器417,取代舊累積加權(quán)值。最后,程序轉(zhuǎn)入結(jié)束步驟815。在步驟807,如果加權(quán)值或是累積加權(quán)值超過了臨界值,則程序轉(zhuǎn)入發(fā)送信息步驟809。在步驟809,發(fā)送一通知信息至個人數(shù)字助理101,要求或建議其更新本地資料存儲器。該通知信息是利用短訊服務(wù)(ShortMessagingService,SMS)從服務(wù)器107傳送到個人數(shù)字助理101上的。SMS是尋呼型服務(wù),為熟知該項技藝的人士所熟知。它僅是實施本發(fā)明所使用的一種傳送媒介而已。每一SMS信息均包含一資料域名、需要執(zhí)行的特定資料過濾器的名稱或ID、需要執(zhí)行的操作之類型以及該操作是否要立即執(zhí)行。如果一SMS信息標有“立即”,則個人數(shù)字助理101可能需要建立一通訊聯(lián)機以便立即執(zhí)行同步操作。如果該SMS信息沒有標上“立即”,則個人數(shù)字助理101既可立即執(zhí)行同步操作,也可等待安排的下一同步時間段,或是將該信息存入一使用者日歷,通知有同步本地資料存儲器需求的使用者。完成步驟809后,程序轉(zhuǎn)入接收確認步驟811,步驟811是一個可選擇的步驟,因而在圖中用虛現(xiàn)表示。如果程序800在步驟809發(fā)出SMS信息后需要得到對方的確認,該確認信息可采用SMS信息的形式,從個人數(shù)字助理101傳送至服務(wù)器107,或是采用同步請求的形式,該同步請求與通知信息中指定的資料過濾器相符。如果確認信息沒有被服務(wù)器107上的程序800收到,程序?qū)⒒氐讲襟E809,重新發(fā)送通知信息。如果在步驟811收到了確認信息或是在步驟809沒要求發(fā)送確認信息,程序即轉(zhuǎn)到清除加權(quán)值步驟813,重設(shè)累積加權(quán)值(如果有的話)。最后,程序進行至結(jié)束步驟817,在步驟801初始化的交易執(zhí)行結(jié)束。圖9是在個人數(shù)字助理101(圖1和圖2)的顯示屏203(圖2)上顯示的一典型的主頁面901。使用者一執(zhí)行實施本發(fā)明的應(yīng)用程序,該主頁901即顯示在屏幕上。如圖3中解釋的那樣,該應(yīng)用程序可以是移動式電子商務(wù)應(yīng)用程序310,移動式醫(yī)院應(yīng)用程序320,移動式物流應(yīng)用程序330,移動式金融應(yīng)用程序340。為方便圖9~12的描述,僅以移動式電子商務(wù)應(yīng)用程序310為例。在主頁901的最上端是一標題欄903,包含的內(nèi)容有一標題“主頁面”、當(dāng)前時間“1125a”。標題欄903下面是一“歡迎”信息905,該信息可依情況而變。信息905下面則是幾個屏幕圖標,它們分別是一目錄圖標907,一訂單圖標908,一帳戶圖標909,一同步圖標910。每一屏幕圖標(907~910)都代表者電子商務(wù)應(yīng)用程序310的某一特定功能。使用者用指示筆207(圖2)點擊任一圖標即可執(zhí)行電子商務(wù)應(yīng)用程序310的相應(yīng)功能。具體而言,目錄圖標907透過執(zhí)行個人數(shù)字助理101上的軟件使得使用者可以瀏覽一產(chǎn)品檔案中的產(chǎn)品目錄,甚至可以做某些修改;訂單圖標908可使使用者發(fā)出采購訂單,或是對訂單作一些修改;帳戶圖標909能使使用者瀏覽或修改其帳號;同步圖標910可使使用者定義、重新定義或改變其同步過濾器。圖9~12的例子即是關(guān)于目錄圖標907和在電子商務(wù)應(yīng)用程序中與一產(chǎn)品目錄相對應(yīng)的產(chǎn)品檔案或數(shù)據(jù)庫的。在屏幕圖標907~910下面是一狀態(tài)區(qū)913,包括“帳號”、“訂單”、“目錄”、“同步”等四個選擇鍵,與屏幕圖標909、908、907、910一一對應(yīng)。使用者用指示筆選擇某一個鍵即可運行相應(yīng)的軟件,該軟件與通過屏幕圖標運行的軟件相同。除了對應(yīng)于屏幕圖標的四個選擇鍵外,狀態(tài)區(qū)913還包含一“檔案”鍵,該“檔案”鍵的功能與MicrosoftWord等程序中的相似,使用者透過此鍵可執(zhí)行開啟、關(guān)閉、保存文檔等操作。此外,狀態(tài)區(qū)913還包括幾個狀態(tài)圖標一電腦圖標915,表明個人數(shù)字助理101是否與一遠程服務(wù)器107(圖1)相連;一指示筆圖標917,表明個人數(shù)字助理101的指示筆207是否處于可用狀態(tài);一翻上頁圖標919,使用者用指示筆207點擊該圖標(一向上的箭頭)即可翻動主頁901。翻上頁圖標919適用于主頁901不能一次在顯示屏203內(nèi)全部顯示的情形。當(dāng)然,圖標919也可以是一個向下的箭頭,或者是既有一個向下的箭頭,又有一個向上的箭頭,這取決于主頁901的大小和主頁901在顯示屏203上的相對位置。圖10是電子商務(wù)應(yīng)用程序310(圖3)的編輯過濾器頁面1001顯示于個人數(shù)字助理101(圖1,圖2)的顯示屏203(圖2)上的示意圖。使用者用指示筆207點擊同步圖標910(圖9)或是在狀態(tài)區(qū)913內(nèi)的同步選擇鍵顯示的菜單中選擇相應(yīng)功能,編輯過濾器頁面1001即會顯示在顯示屏203上。與主頁901相似(圖9),頁面1001包含一標題欄1003,其含有標題“編輯過濾器”、當(dāng)前時間“454p”。頁面1001也含有一狀態(tài)區(qū)1013和狀態(tài)圖標1015、1017、1019,其功能與狀態(tài)區(qū)913和狀態(tài)圖標915、917、919(圖9)相似。頁面1001還有一縮放圖標1021,其能放大或縮小頁面1001的尺寸;一取消圖標1023,其能結(jié)束正在運行的程序,回到前一頁面,如主頁901。當(dāng)然,和圖9~12中的其它圖標、箭頭、菜單一樣,縮放圖標1021和取消圖標1023也是用指示筆207來點選的。盡管使用何種用戶接口對于本發(fā)明精神來說并不重要,但是下面幾圖都要用到指示筆207和顯示屏201。編輯過濾器頁面1001還有幾個區(qū)域,其能使用戶指定資料過濾器。例如,用戶在名稱區(qū)1005輸入資料過濾器名“全部產(chǎn)品”后,如果該“全部產(chǎn)品”過濾器已經(jīng)存在,電子商務(wù)應(yīng)用程序310即搜索出該過濾器上的信息,如果該“全部產(chǎn)品”過濾器不存在,電子商務(wù)應(yīng)用程序310會使其創(chuàng)建一個新資料過濾器。一同步區(qū)1007可使用戶選定是否將相應(yīng)的資料過濾器包括在個人數(shù)字助理101的同步程序中。在本例中,全部產(chǎn)品資料過濾器并未包含在同步程序中,因為同步區(qū)1007沒有標記。如果一資料過濾器所對應(yīng)的數(shù)據(jù)庫不經(jīng)常的變動,該資料過濾器可以不包含在同步程序中。但是某些資料過濾器如訂單資料過濾器(圖中未標示),則需要同步,因為用戶或者是銷售人員需要隨時了解公司庫存發(fā)生的變動。上次同步區(qū)1009顯示的是日期“5/25/01”和時間“43840PM”,表明全部產(chǎn)品資料過濾器上一次同步的日期和時間。搜索字符串1011則顯示一實際對應(yīng)的資料過濾器,其用熟悉本技藝的人士能夠辨認的語法表示。在本例中,資料過濾器指定全部產(chǎn)品資料過濾器搜索產(chǎn)品數(shù)據(jù)庫中的所有紀錄,即用“PrName”表示產(chǎn)品數(shù)據(jù)庫中的某一屬性,用“=”表示搜索并顯示等于*的紀錄。由于*是一通用符號,所以該資料過濾器會顯示產(chǎn)品數(shù)據(jù)庫中的全部紀錄。可以用BackusNaurForm(BNF)符號來表示數(shù)據(jù)過濾器或查詢字符串,其符號具體說明如下。filter=“(“filtercomp”)”filtercomp=and|or|simpleFilterand=“&”filterlistor=“|”filterlistfilterlist=1*filtersimpleFilter=attributeNamefiltertypevaluefiltertype=“==”|“>=”|“<=”|“?。健睂傩悦俏臄?shù)型的,與產(chǎn)品數(shù)據(jù)庫或檔案中的一欄相對應(yīng)。二進制不會在數(shù)據(jù)過濾器中使用,即,一個數(shù)據(jù)過濾器不能譯成兩個JPEG圖像。對于某一屬性,某一個值可符合任何允許的登錄,如一個籃球的價格可以是任何數(shù)值;一個產(chǎn)品的名稱則可以是一名詞,如“baseball”。圖11是移動式電子商務(wù)應(yīng)用程序310的搜索產(chǎn)品頁面1101顯示于個人數(shù)字助理101(圖1、圖2)的顯示屏203(圖2)上的示意圖。頁面1101是一登錄頁面,利用此頁面使用者或銷售人員用顯示屏203和指示筆201可定義或修改資料過濾器。與主頁901(圖9)和編輯過濾器頁面1001(圖10)類似,頁面1101也包括一標題欄1103,其含有頁面名稱“查詢產(chǎn)品”和當(dāng)前時間“1138a”;一狀態(tài)區(qū)1113;三個狀態(tài)圖標1115、1117和1119。所有這些與圖9和圖10的標題欄、狀態(tài)區(qū)、狀態(tài)圖標具有相似的功能。在標題欄1103的下面,頁面1101有一執(zhí)行圖標1105和一高級過濾圖標1121。當(dāng)用戶點選執(zhí)行圖標1105時,一對應(yīng)于顯示于顯示屏幕1101上信息的當(dāng)前資料過濾器即被建立。在本例中,該當(dāng)前資料過濾器和上文圖10所描述的一樣,即“PrName==*”。當(dāng)用戶用指示筆203點選高級圖標1121,既有的顯示屏幕1101即會被另一搜索產(chǎn)品顯示屏幕1201所替換,其會在后述的圖12中進行說明,該顯示屏幕1201可讓用戶建立及更改更為復(fù)雜和高級的資料過濾器。顯示屏幕包括一搜索范圍1125,用戶可在該區(qū)輸入一特定屬性的名稱格式,例如,產(chǎn)品文文件。當(dāng)利用指示筆207點選搜索范圍1125邊緣倒三角形,則即會顯示一下拉列表,可使用戶從產(chǎn)品文文件或數(shù)據(jù)庫表中選擇一屬性。搜索值區(qū)1127可以讓用戶輸入一個值,該值可用于其將要定義或創(chuàng)建資料過濾器中。在本例中,該值為“*”,其是一通配符,與文檔中任何值相匹配。故,產(chǎn)品文文件中的所有記錄均會被返回。另一例子是在搜索值區(qū)輸入一“baseball”,則資料過濾器會把產(chǎn)品文文件中所有名稱中包含有“baseball”的條目返回。如果用戶輸入“base*”,則資料過濾器即會返回產(chǎn)品文文件中如“baseballs”或“baseballbats”等全部記錄。兩個運算符符區(qū)1107能使用戶定義其所期望的搜索范圍1125與搜索值區(qū)之間的關(guān)系。在本例中,兩個運算符區(qū)1107選項中,只能選擇其中一個,即′=′或′?。??!洌健溥\算符1107表示用戶希望資料過濾器返回產(chǎn)品文文件中所有屬性為搜索范圍1125所輸入的,且與搜索值區(qū)1127中所輸入的值相匹配的條目。如果用戶選擇′?。健洌瑒t用戶希望資料過濾器返回產(chǎn)品文文件中所有屬性為搜索范圍1125所輸入的,且與搜索值區(qū)1127中所輸入的值不匹配的條目。一顯示值核對塊1109可以讓用戶指定一“模糊”查詢,換句話說,對在搜索范圍1125中所輸入的查詢條件的查詢不像在搜索值區(qū)1127那樣精確匹配。資料過濾器會返回在產(chǎn)品文文件中所有與的接近的資料。一匹配圖標1111提供了與顯示值核對塊1109相似的功能,只不過其能使用戶執(zhí)行資料過波器并立刻能觀看結(jié)果。一取消按紐1123,其能忽略當(dāng)前的資料過濾器定義或創(chuàng)建過程,并把顯示屏203返回至顯示屏先前所顯示的狀態(tài)。圖12揭示了另一實施方式的在個人數(shù)字助理101的顯示屏203上出現(xiàn)的搜索產(chǎn)品顯示屏幕1201。與搜索產(chǎn)品顯示屏幕1101相似,搜索產(chǎn)品顯示屏幕1201為一輸入屏,其可使用戶或銷售人員利用顯示屏203和指示筆207定義或更改資料過濾器。然而,與搜索產(chǎn)品顯示屏幕1101只能讓用戶定義或更改一簡單資料過濾器不同,搜索產(chǎn)品顯示屏幕1201可讓用戶定義或更改更高級或更復(fù)雜的資料過濾器,與顯示屏幕901、1001及1101一樣,搜索產(chǎn)品顯示屏幕1201亦包括一標題欄1203,其上寫有該顯示屏幕的名稱“搜索產(chǎn)品”,及當(dāng)前時間“1138a”;一狀態(tài)區(qū)1213;及狀態(tài)圖標1215、1217及1219,這些標題欄、狀態(tài)區(qū)及狀態(tài)圖標均與圖9、圖10及圖11中相應(yīng)的標題欄、狀態(tài)區(qū)及狀態(tài)圖標具有相似的功能。與搜索產(chǎn)品顯示屏幕1101相似,顯示屏幕1201包括一匹配圖標1211及一取消按紐1223,他們的功能分別與圖11中的匹配圖標1111及取消按紐1123相似。在標題欄1203下面,顯示屏幕1201包括兩個圖標,即執(zhí)行圖標1205和簡單過濾圖標1221。當(dāng)用指示筆執(zhí)行圖標1205,一對應(yīng)于顯示盒1235所顯示的信息,或本例中的“(&(PrName=*Base*)(PrRetailPrice>=5.00))”的當(dāng)前資料過濾器被執(zhí)行。當(dāng)前資料過濾器即會返回產(chǎn)品數(shù)據(jù)庫中所有名稱中包含有“Base”且價格大于或等于5.00元的產(chǎn)品條目信息。例如會在個人數(shù)字助理101中顯示價格在5.00元以上的baseballs,baseballmitts及baseballgloves等產(chǎn)品條目信息。這些資料過濾器的方法和語法在以前的技術(shù)中為眾人所周知。該顯示盒1235的一優(yōu)勢為具有一上拉箭頭和一下拉箭頭,當(dāng)用戶利用指示筆207這些箭頭,在顯示盒1235中即能卷出由于太大而處于顯示盒1235邊界的外的信息。當(dāng)用戶利用指示筆207簡單過濾圖標1221,個人數(shù)字助理101即會在顯示屏203上顯示搜索產(chǎn)品顯示屏幕1101。與搜索產(chǎn)品顯示屏幕1101相似,顯示屏幕1201可能讓用戶輸入一資料過濾器,但其較顯示屏幕1101中更為復(fù)雜。搜索范圍1225可讓用戶選擇產(chǎn)品數(shù)據(jù)庫中的多種屬性,每次選一種屬性。搜索值區(qū)1227可使用戶輸入一價格或其它適當(dāng)值以完成對數(shù)據(jù)庫的查詢。在上述顯示屏幕1101中只提供了兩個運算符域選擇,而顯示屏幕1201卻代的以四個運算符域選擇1207,一“=”運算符,表示等于;一“?。健边\算符,表示不等于;一“>=”運算符,表示大于或等于;一“<=”運算符,表示小于或等于。一顯示值核對塊1209的功能與顯示屏幕1101中的顯示值核對塊1109相似。顯示屏幕1201亦包含一建立按紐1229,兩個關(guān)聯(lián)按紐1231及一重置按紐1233。該建立按紐1229可以移動搜索范圍1225、運算符區(qū)1207及搜索值區(qū)1227所指定的一個新查詢字符串至顯示盒1235中的表達式中,關(guān)聯(lián)按紐1232決定一組合查詢之間的關(guān)系,該組合查詢是被建立按紐所移動的新查詢字符串與現(xiàn)有的查詢字符串之間的組合,如果該現(xiàn)有的查詢字符串存在的話,通常會顯示于顯示盒1235上?!昂汀卑醇~創(chuàng)建一組合查詢,其顯示的于產(chǎn)品數(shù)據(jù)庫中查詢結(jié)果需符合新查詢字符串和現(xiàn)有的查詢字符串?!盎颉卑醇~創(chuàng)建一組合查詢,其顯示的于產(chǎn)品數(shù)據(jù)庫中查詢結(jié)果需符合新查詢字符串和現(xiàn)有的查詢字符串中的一個或全部的查詢條件。當(dāng)利用指示筆207點選重置按紐1233時,其會清除顯示盒1235中的信息,從而可使用戶重新開始建立一新的查詢字符串。利用圖9~12中的屏幕,用戶可以定義資料過濾器以實現(xiàn)實施方式中的技術(shù)方案。但圖9~12僅代表了可供選擇的一部分圖形用戶界面(GUI),這些圖形用戶界面顯示于個人數(shù)字助理101的顯示屏203上,其可運行電子商務(wù)應(yīng)用軟件310。其余的應(yīng)用軟件320、330及340均具有自身特定的功能、GUI和相應(yīng)屏幕等。權(quán)利要求1.一種將一移動式計算機設(shè)備之本地資料存儲區(qū)之資料與一遠程服務(wù)器之資料存儲區(qū)之資料同步之資料同步方法,其特征在于包括有如下步驟在移動式計算機設(shè)備上定義一資料過濾器,該資料過濾器指定服務(wù)器的多個域之一個或多個域標準;從無線計算設(shè)備傳輸一同步請求信息至服務(wù)器;服務(wù)器生成一同步回復(fù)信息,該同步回復(fù)信息包括有多個符合該資料過濾器所指定之標準之資料對象;傳輸該同步回復(fù)信息至該移動式計算機設(shè)備;根據(jù)該同步回復(fù)信息更新該移動式計算機設(shè)備之資料存儲區(qū)。2.如權(quán)利要求1所述的資料同步方法,其特征在于其中該同步回復(fù)信息包括一資料過濾器之副本。3.如權(quán)利要求1所述的資料同步方法,其特征在于其中該資料過濾器儲存在該服務(wù)器上,且該同步回復(fù)信息包括一對應(yīng)于該資料過濾器之ID。4.如權(quán)利要求1所述的資料同步方法,其特征在于其中該方法的實施基于該移動式計算機設(shè)備之用戶所定義之標準。5.如權(quán)利要求1所述的資料同步方法,其特征在于其中該方法的實施基于在該無線計算設(shè)備與該服務(wù)器之間存在一能動的通信信道。6.如權(quán)利要求1所述的資料同步方法,其特征在于其中該移動式計算機設(shè)備為一個人數(shù)字助理(PDA)。7.如權(quán)利要求1所述的資料同步方法,其特征在于其中該移動式計算機設(shè)備為一膝上型計算機。8.如權(quán)利要求1所述的資料同步方法,其特征在于其還包括有如下步驟確定該移動式計算機設(shè)備是處于離線模式還是處于在線模式;當(dāng)該移動式計算機設(shè)備處于離線模式時,延期執(zhí)行該傳輸同步請求信息步驟直到該移動式計算機設(shè)備確定處于在線狀態(tài)。9.一種周期地更新一移動式計算機設(shè)備本地資料存儲區(qū)的方法,其特征在于包括有如下步驟生成一資料過濾器對應(yīng)于存儲在遠程服務(wù)器之資料存儲區(qū)上之多個資料對象;傳輸該資料過濾器至該服務(wù)器;萃取出遠程資料存儲區(qū)多個資料對象中符合該資料過濾器指定之標準之資料對象;傳輸該萃取出之資料對象至該移動式計算機設(shè)備;根據(jù)該被萃取和傳輸之資料對象更新該移動式計算機設(shè)備之本地資料存儲區(qū)。10.如權(quán)利要求9所述的方法,其特征在于還包括有如下步驟確定該移動式計算機設(shè)備是處于在線模式還是離線模式;當(dāng)該移動式計算機設(shè)備處于離線模式時,延期執(zhí)行該方法直到該移動式計算機設(shè)備處于在線模式。11.如權(quán)利要求9所述的方法,其特征在于其中該資料過濾器通過一移動式計算機設(shè)備之用戶使用該移動式計算機設(shè)備之輸入輸出功能而產(chǎn)生。12.如權(quán)利要求9所述的方法,其特征在于其中該資料過濾器儲存在該服務(wù)器上,對應(yīng)于一資料過濾器ID,且將該資料過濾器ID取代該資料過濾器傳輸至該服務(wù)器。13.一分布式資料存儲系統(tǒng),其特征在于包括有一移動式計算機設(shè)備,其包括有一本地資料存儲區(qū);允許一移動式計算機設(shè)備之用戶創(chuàng)建一資料過濾器對應(yīng)于遠程服務(wù)器之資料存儲區(qū)中之一對象域之邏輯,其中該資料過濾器之副本聯(lián)合數(shù)據(jù)過濾器ID被存儲在遠程資料存儲區(qū);一生成同步請求信息之邏輯,該同步請求信息包括一資料過濾器ID;一傳輸該同步請求信息至一服務(wù)器之邏輯;一根據(jù)一同步回復(fù)信息來更新本地資料存儲區(qū)之邏輯;一服務(wù)器,其包括有一遠程資料存儲區(qū);根據(jù)對應(yīng)于該資料過濾器ID之資料過濾器副本中之標準從對象域挑選多個資料對象之邏輯;產(chǎn)生一同步回復(fù)信息之邏輯,該同步回復(fù)信息包括有多個資料對象;傳輸該同步回復(fù)信息至移動式計算機設(shè)備之邏輯。14.如權(quán)利要求13所述的分布式資料存儲系統(tǒng),其特征在于其中該傳輸同步請求信息之邏輯的實施依賴于該移動式計算機設(shè)備與該服務(wù)器之間有能動之通信信道存在。15.如權(quán)利要求13所述的分布式資料存儲系統(tǒng),其特征在于其中該允許用戶創(chuàng)建一資料過濾器之邏輯通過該移動式計算機設(shè)備之圖形用戶接口(GUI)實現(xiàn)。16.如權(quán)利要求13所述的分布式資料存儲系統(tǒng),其特征在于其中該資料過濾器副本連同一移動式計算機設(shè)備用戶之用戶ID被存儲,且該同步請求信息還包括該用戶ID。17.如權(quán)利要求13所述的分布式資料存儲系統(tǒng),其特征在于其中該資料過濾器不再由用戶自己創(chuàng)建,而是由用戶從服務(wù)器系統(tǒng)管理員已經(jīng)在服務(wù)器上所創(chuàng)建之多個資料過濾器中進行選擇。全文摘要本發(fā)明提供一種可以使移動式計算機設(shè)備如個人數(shù)字助理(PDA)、網(wǎng)絡(luò)電話及膝上型計算機在與遠程服務(wù)器之資料存儲區(qū)之間進行數(shù)據(jù)傳輸和同步作業(yè)時將其通信頻寬最小化的方法。用戶可配置化資料過濾器為一移動式計算機設(shè)備用戶所定義,以使該用戶可以選擇特定的信息進行傳輸和存儲在該移動式計算機設(shè)備上。資料過濾器還可以被該服務(wù)器的系統(tǒng)管理員創(chuàng)建和維護。該系統(tǒng)管理員可以通過一基于網(wǎng)絡(luò)之圖形用戶界面為一個或多個用戶創(chuàng)建一組資料過濾器。本發(fā)明之方法通過最小化移動設(shè)備上的資料存儲量及移動設(shè)備與資料服務(wù)器之間的通訊媒介頻寬,從而達到降低移動通信設(shè)備之復(fù)雜性成本及與數(shù)據(jù)傳輸和同步相關(guān)之通信成本。文檔編號G06F12/00GK1405691SQ02126660公開日2003年3月26日申請日期2002年7月27日優(yōu)先權(quán)日2001年8月13日發(fā)明者史曉斌,德波拉·B·林可維奇,威廉·M·德洛斯特申請人:鴻富錦精密工業(yè)(深圳)有限公司,摩力動網(wǎng)科技股份有限公司