專利名稱:對數(shù)據(jù)的動態(tài)訪問的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及主數(shù)據(jù)的動態(tài)訪問。
背景技術(shù):
在異構(gòu)(heterogeneous)信息技術(shù)環(huán)境下,在一個機(jī)構(gòu)內(nèi)或在不同機(jī)構(gòu)之間使用不同的計算機(jī)應(yīng)用系統(tǒng)。例如,一種系統(tǒng)可能用于管理與公司的客戶有關(guān)的信息,另一種系統(tǒng)可能用于管理與產(chǎn)品有關(guān)的信息。每種系統(tǒng)可能擁有它自己的用戶接口、數(shù)據(jù)存儲器、和處理數(shù)據(jù)的進(jìn)程。每種系統(tǒng)可能被設(shè)計成將它的性能優(yōu)化以管理特定的任務(wù)。兩種系統(tǒng)維護(hù)的數(shù)據(jù)之間可能存在關(guān)聯(lián)。例如,某些產(chǎn)品可能由特定的客戶請求、被定制成滿足某些特殊要求、和需要被寄送到客戶的特定地址。
為了使系統(tǒng)共享數(shù)據(jù),一種系統(tǒng)可能被安裝成維護(hù)以客戶對象的形式存儲所有客戶數(shù)據(jù)的主數(shù)據(jù)庫的主數(shù)據(jù)服務(wù)器,而另一種系統(tǒng)可能被安裝成維護(hù)以產(chǎn)品對象的形式存儲所有產(chǎn)品數(shù)據(jù)的主數(shù)據(jù)庫的主數(shù)據(jù)服務(wù)器。每個客戶對象具有描述客戶的各種方面的屬性。客戶的一些屬性是局部的,而一些屬性是全局的。局部屬性只存儲在它們的各自數(shù)據(jù)庫中,而全局屬性周期性地或在某些觸發(fā)點(diǎn)被異步復(fù)制到不同數(shù)據(jù)庫。由于全局屬性被復(fù)制,系統(tǒng)可能通過利用局部應(yīng)用程序編程接口訪問各自數(shù)據(jù)庫,來訪問它們需要的客戶數(shù)據(jù)和產(chǎn)品數(shù)據(jù)。由于每種系統(tǒng)維護(hù)它自己的數(shù)據(jù)庫,可以獨(dú)立地升級或維護(hù)每種系統(tǒng)。
發(fā)明內(nèi)容
一般說來,一方面,本發(fā)明旨在提供動態(tài)訪問數(shù)據(jù)的方法。該方法包括將請求從客戶機(jī)發(fā)送到服務(wù)器,以訪問存儲在服務(wù)器維護(hù)的數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中檢索第一組數(shù)據(jù),根據(jù)客戶機(jī)定義的一組映射規(guī)則將第一組數(shù)據(jù)映射成第二組數(shù)據(jù),和在客戶機(jī)上接收第二組數(shù)據(jù)。
本發(fā)明的實(shí)現(xiàn)方案可能包括一個或多個如下特征。存儲在數(shù)據(jù)庫中的數(shù)據(jù)包括對象的屬性值。對象包括產(chǎn)品。對象包括商業(yè)伙伴。第一組數(shù)據(jù)到第二組數(shù)據(jù)的映射包括除去第一組數(shù)據(jù)中與客戶機(jī)無關(guān)的屬性數(shù)據(jù)。獨(dú)立于服務(wù)器的客戶機(jī)不時地修改該組映射規(guī)則。
一般說來,另一方面,本發(fā)明旨在提供一種維護(hù)數(shù)據(jù)的方法。該方法包括在服務(wù)器上接收標(biāo)識符和與標(biāo)識符標(biāo)識的對象相關(guān)的數(shù)據(jù),服務(wù)器被配置以維護(hù)客戶機(jī)可訪問的數(shù)據(jù)庫,對于每個客戶機(jī),核實(shí)標(biāo)識符和數(shù)據(jù)是否遵從客戶機(jī)定義的一組規(guī)則,并將標(biāo)識符和數(shù)據(jù)輸入到數(shù)據(jù)庫。
本發(fā)明的實(shí)現(xiàn)方案可能包括一個或多個如下特征。數(shù)據(jù)包括與對象相關(guān)的屬性值。核實(shí)標(biāo)識符和數(shù)據(jù)是否遵從一組規(guī)則包括核實(shí)數(shù)據(jù)是否符合與對象的屬性有關(guān)的客戶機(jī)定義的一子組規(guī)則。該子組規(guī)則包括定義屬性值的可接受格式的規(guī)則。核實(shí)標(biāo)識符和數(shù)據(jù)是否遵從一組規(guī)則包括核實(shí)標(biāo)識符是否遵從與對象的標(biāo)識有關(guān)的客戶機(jī)定義的一子組規(guī)則。該子組規(guī)則包括定義標(biāo)識符的可接受格式的規(guī)則。該方法還包括將數(shù)據(jù)與標(biāo)識符聯(lián)系在一起。該方法還包括將請求從客戶機(jī)發(fā)送到服務(wù)器,以請求與標(biāo)識符相關(guān)的數(shù)據(jù),和將數(shù)據(jù)庫中與標(biāo)識符相聯(lián)系的數(shù)據(jù)轉(zhuǎn)換成客戶機(jī)可接受的格式。該方法還包括將請求從服務(wù)器發(fā)送到第二服務(wù)器,該請求請求核實(shí)標(biāo)識符和數(shù)據(jù),識別哪些客戶機(jī)可以訪問數(shù)據(jù)庫,和將該請求從第二服務(wù)器路由到被識別為能夠訪問數(shù)據(jù)庫的客戶機(jī)。對象包括產(chǎn)品。對象包括商業(yè)伙伴。服務(wù)器利用以可擴(kuò)充標(biāo)記語言編寫的消息與客戶機(jī)通信。該方法還包括對于每個客戶機(jī),將請求發(fā)送到客戶機(jī),以請求核實(shí)標(biāo)識符和數(shù)據(jù)是否遵從客戶機(jī)定義的該組規(guī)則,和如果特定客戶機(jī)無應(yīng)答,將客戶機(jī)放在異常列表上,以指示標(biāo)識符和數(shù)據(jù)沒有被核實(shí)為遵從特定客戶機(jī)定義的該組規(guī)則。在預(yù)定時間間隔之后,或當(dāng)特定客戶機(jī)試圖訪問數(shù)據(jù)庫中的數(shù)據(jù)時,進(jìn)行核實(shí)標(biāo)識符和數(shù)據(jù)是否遵從特定客戶機(jī)定義的該組規(guī)則的另一次嘗試。
一般說來,另一方面,本發(fā)明旨在提供維護(hù)數(shù)據(jù)的方法。該方法包括將請求從客戶機(jī)發(fā)送到服務(wù)器,以請求修改與對象相關(guān)的一組數(shù)據(jù),該組數(shù)據(jù)存儲在服務(wù)器維護(hù)的數(shù)據(jù)庫中,接收服務(wù)器已經(jīng)鎖定該組數(shù)據(jù),使得只有客戶機(jī)才能修改該組數(shù)據(jù)的消息,將一組修改數(shù)據(jù)發(fā)送到服務(wù)器本發(fā)明的實(shí)現(xiàn)方案可能包括一個或多個如下特征。該組數(shù)據(jù)包括與對象相關(guān)的屬性值??蛻魴C(jī)定義的該組規(guī)則包括定義屬性值的可接受格式的規(guī)則。服務(wù)器通過將屬性與客戶機(jī)公布的檢驗表相比較,確定其它哪些客戶機(jī)可以訪問修改數(shù)據(jù),每個檢驗表指示客戶機(jī)可訪問的屬性。對象包括產(chǎn)品。對象包括商業(yè)伙伴。服務(wù)器利用包括以可擴(kuò)充標(biāo)記語言編寫的代碼的消息與客戶機(jī)通信。
一般說來,另一方面,本發(fā)明旨在提供包括如下步驟的方法提供含有允許在將數(shù)據(jù)存儲在本地數(shù)據(jù)庫中的第一模式和將數(shù)據(jù)存儲在服務(wù)器計算機(jī)維護(hù)的遠(yuǎn)程數(shù)據(jù)庫中的第二模式之間切換的模塊的客戶機(jī)計算機(jī),和提供動態(tài)地將存儲在遠(yuǎn)程數(shù)據(jù)庫中的數(shù)據(jù)映射成具有客戶機(jī)計算機(jī)定義的格式的數(shù)據(jù)的接口。
本發(fā)明的實(shí)現(xiàn)方案可能包括一個或多個如下特征。該方法還包括提供也含有允許在將數(shù)據(jù)存儲在本地數(shù)據(jù)庫中的第一模式和將數(shù)據(jù)存儲在服務(wù)器計算機(jī)維護(hù)的遠(yuǎn)程數(shù)據(jù)庫中的第二模式之間切換的模塊的第二客戶機(jī)計算機(jī)、和動態(tài)地將存儲在遠(yuǎn)程數(shù)據(jù)庫中的數(shù)據(jù)映射成具有第二客戶機(jī)計算機(jī)定義的第二格式的數(shù)據(jù)的接口,第二格式是由獨(dú)立于第一客戶機(jī)的第二客戶機(jī)修改的。
一般說來,另一方面,本發(fā)明旨在提供包括如下單元的系統(tǒng)數(shù)據(jù)服務(wù)器,用于維護(hù)存儲與標(biāo)識符標(biāo)識的對象相關(guān)的數(shù)據(jù)的數(shù)據(jù)庫,具有描述對象的多個方面的屬性的對象,包括與屬性相關(guān)的屬性值的數(shù)據(jù);客戶機(jī),用于訪問存儲在數(shù)據(jù)庫中的數(shù)據(jù),每個客戶機(jī)為標(biāo)識符和屬性定義一組規(guī)則;和綜合服務(wù)器,用于與客戶機(jī)和數(shù)據(jù)服務(wù)器通信,綜合服務(wù)器響應(yīng)于來自客戶機(jī)的對數(shù)據(jù)的請求,將數(shù)據(jù)服務(wù)器中的數(shù)據(jù)映射成具有遵從客戶機(jī)定義的規(guī)則的格式的數(shù)據(jù)。
本發(fā)明的實(shí)現(xiàn)方案可能包括如下特征。綜合服務(wù)器利用包括以可擴(kuò)充標(biāo)記語言編寫的代碼的消息與客戶機(jī)和數(shù)據(jù)服務(wù)器通信。
一般說來,另一方面,本發(fā)明旨在提供用于動態(tài)訪問主數(shù)據(jù)、有形地存儲在機(jī)器可讀媒體上的計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品包括起使可編程處理器執(zhí)行如下步驟作用的指令接收來自客戶機(jī)的請求,以訪問存儲在服務(wù)器維護(hù)的數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中檢索第一組數(shù)據(jù),根據(jù)客戶機(jī)定義的一組映射規(guī)則將第一組數(shù)據(jù)映射成第二組數(shù)據(jù),和將第二組數(shù)據(jù)發(fā)送到客戶機(jī)。
本發(fā)明的實(shí)現(xiàn)方案可能包括一個或多個如下特征。存儲在數(shù)據(jù)庫中的數(shù)據(jù)包括對象的屬性值。對象包括產(chǎn)品。對象包括商業(yè)伙伴。該指令起使可編程處理器除去第一組數(shù)據(jù)中與客戶機(jī)無關(guān)的屬性數(shù)據(jù)的作用。獨(dú)立于服務(wù)器的客戶機(jī)不時地修改該組映射規(guī)則。
一般說來,另一方面,本發(fā)明旨在提供用于動態(tài)訪問存儲在客戶機(jī)可訪問的數(shù)據(jù)庫中的主數(shù)據(jù)、有形地存儲在機(jī)器可讀媒體上的計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品包括起使可編程處理器執(zhí)行如下步驟作用的指令接收標(biāo)識符和與標(biāo)識符標(biāo)識的對象相關(guān)的數(shù)據(jù),對于每個客戶機(jī),核實(shí)標(biāo)識符和數(shù)據(jù)是否遵從客戶機(jī)定義的一組規(guī)則,并將標(biāo)識符和數(shù)據(jù)輸入到數(shù)據(jù)庫。
本發(fā)明的實(shí)現(xiàn)方案可能包括一個或多個如下特征。數(shù)據(jù)包括與對象相關(guān)的屬性值。該指令起使可編程處理器核實(shí)數(shù)據(jù)是否符合與對象的屬性有關(guān)的客戶機(jī)定義的一子組規(guī)則的作用。該子組規(guī)則包括定義屬性值的可接受格式的規(guī)則。該指令起使可編程處理器核實(shí)標(biāo)識符是否符合與對象的標(biāo)識有關(guān)的客戶機(jī)定義的一子組規(guī)則的作用。該子組規(guī)則包括定義標(biāo)識符的可接受格式的規(guī)則。該指令起使可編程處理器將數(shù)據(jù)與標(biāo)識符聯(lián)系在一起的作用。該指令起使可編程處理器將請求從客戶機(jī)發(fā)送到服務(wù)器,以請求與標(biāo)識符相關(guān)的數(shù)據(jù),和將數(shù)據(jù)庫中與標(biāo)識符相聯(lián)系的數(shù)據(jù)轉(zhuǎn)換成客戶機(jī)可接受的格式的作用。對象包括產(chǎn)品。對象包括商業(yè)伙伴。服務(wù)器利用以可擴(kuò)充標(biāo)記語言編寫的消息與客戶機(jī)通信。該指令起使可編程處理器對于每個客戶機(jī),將請求發(fā)送到客戶機(jī),以請求核實(shí)標(biāo)識符和數(shù)據(jù)是否遵從客戶機(jī)定義的該組規(guī)則,和如果特定客戶機(jī)無響應(yīng),將客戶機(jī)放在異常列表上,以指示標(biāo)識符和數(shù)據(jù)沒有被核實(shí)為遵從特定客戶機(jī)定義的該組規(guī)則的作用。該指令起使可編程處理器在預(yù)定時間間隔之后,或當(dāng)特定客戶機(jī)試圖訪問數(shù)據(jù)庫中的數(shù)據(jù)時,啟動核實(shí)識符和數(shù)據(jù)是否遵從特定客戶機(jī)定義的該組規(guī)則的另一次嘗試的作用。
一般說來,另一方面,本發(fā)明旨在提供用于動態(tài)訪問主數(shù)據(jù)、有形地存儲在機(jī)器可讀媒體上的計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品包括起使含有客戶機(jī)和服務(wù)器的計算機(jī)系統(tǒng)執(zhí)行如下步驟作用的指令將請求從第一客戶機(jī)發(fā)送到服務(wù)器,以修改與對象相關(guān)的一組數(shù)據(jù),該組數(shù)據(jù)存儲在服務(wù)器維護(hù)的數(shù)據(jù)庫中,接收服務(wù)器已經(jīng)鎖定該組數(shù)據(jù),使得只有客戶機(jī)才能修改該組數(shù)據(jù)的消息,將一組修改數(shù)據(jù)發(fā)送到服務(wù)器,以便將數(shù)據(jù)存儲在數(shù)據(jù)庫中,和接收該組修改數(shù)據(jù)已存儲在數(shù)據(jù)庫中的消息,其中,服務(wù)器對其它客戶機(jī)的每一個確定其它哪些客戶機(jī)可以訪問該組修改數(shù)據(jù),和核實(shí)該組修改數(shù)據(jù)是否遵從客戶機(jī)定義的一組規(guī)則。
本發(fā)明的實(shí)現(xiàn)方案可能包括一個或多個如下特征。該組數(shù)據(jù)包括與對象相關(guān)的屬性值。客戶機(jī)定義的該組規(guī)則包括定義屬性值的可接受格式的規(guī)則。該指令起使計算機(jī)系統(tǒng)將屬性值與客戶機(jī)公布的檢驗表相比較的作用,每個檢驗表指示客戶機(jī)可訪問的屬性。對象包括產(chǎn)品。對象包括商業(yè)伙伴。該指令起使服務(wù)器利用包括以可擴(kuò)充標(biāo)記語言編寫的代碼的消息與客戶機(jī)通信的作用。
本發(fā)明的一個或多個實(shí)施例的細(xì)節(jié)在附圖和如下的描述中得到展示。本發(fā)明的其它特征、目的、和優(yōu)點(diǎn)可從如下的描述和附圖中,和從權(quán)利要求書中明顯看出。
圖1示出了一個異構(gòu)系統(tǒng);圖2示出了客戶機(jī)和服務(wù)器的細(xì)節(jié);圖3-5示出了核實(shí)主數(shù)據(jù)的相容性的進(jìn)程;圖6是示出數(shù)據(jù)輸入的圖形;圖7示出了混合軟件的結(jié)構(gòu);圖8示出了混合結(jié)構(gòu);圖9示出了利用代理訪問主數(shù)據(jù)的應(yīng)用程序;和圖10示出了計算機(jī)系統(tǒng)。
具體實(shí)施例方式
具有單個主數(shù)據(jù)庫的系統(tǒng)參照圖1,異構(gòu)系統(tǒng)100包括主數(shù)據(jù)服務(wù)器(MDS)110、綜合服務(wù)器109、和客戶機(jī)系統(tǒng)102-106。主數(shù)據(jù)服務(wù)器110維護(hù)單個主數(shù)據(jù)庫112,而客戶機(jī)系統(tǒng)102-106同步地和動態(tài)地通過綜合服務(wù)器109和主數(shù)據(jù)服務(wù)器110訪問主數(shù)據(jù)庫112。當(dāng)?shù)谝淮螌?shù)據(jù)存儲到主數(shù)據(jù)庫112中時,客戶機(jī)系統(tǒng)102-106通過相容性檢驗進(jìn)程決定存儲在數(shù)據(jù)庫112中的數(shù)據(jù)。當(dāng)主數(shù)據(jù)服務(wù)器110或客戶機(jī)系統(tǒng)102-106之一更新數(shù)據(jù)時,所作的改變對于所有客戶機(jī)系統(tǒng)102-106都是可見的。利用單個主數(shù)據(jù)庫112的優(yōu)點(diǎn)在于,減少了管理開銷,和消除了不同數(shù)據(jù)庫的同步性帶來的問題。
術(shù)語“同步”和“動態(tài)”意味著每當(dāng)在客戶機(jī)系統(tǒng)中運(yùn)行的進(jìn)程需要信息時,該進(jìn)程可以從主數(shù)據(jù)庫112中訪問信息,不必在客戶機(jī)方本地存儲數(shù)據(jù)。該進(jìn)程可以是在后臺運(yùn)行的批處理,或適合使用戶訪問、查看、和維護(hù)主數(shù)據(jù)的進(jìn)程。不同進(jìn)程可能需要不同的數(shù)據(jù)格式,取決于系統(tǒng)是如何配置的,動態(tài)地將在客戶機(jī)系統(tǒng)和主數(shù)據(jù)服務(wù)器之間傳輸?shù)臄?shù)據(jù)從一種格式映射到另一種模式。每種客戶機(jī)系統(tǒng)可以與其它系統(tǒng)獨(dú)立地配置,并且每種系統(tǒng)可以不同地查看和處理主數(shù)據(jù)庫112中的數(shù)據(jù)。綜合服務(wù)器109動態(tài)地映射數(shù)據(jù),以便遵從每種客戶機(jī)系統(tǒng)和主數(shù)據(jù)服務(wù)器定義的數(shù)據(jù)格式。
參照圖2,客戶機(jī)114用于代表客戶機(jī)系統(tǒng)102-106的任何一個。不同應(yīng)用程序,例如,訪問與產(chǎn)品有關(guān)的數(shù)據(jù)的銷售應(yīng)用程序116和產(chǎn)品應(yīng)用程序118可以在客戶機(jī)114上運(yùn)行。應(yīng)用程序116和118訪問產(chǎn)品服務(wù)層124提供的功能。產(chǎn)品用戶接口120與產(chǎn)品服務(wù)層124交互,為用戶提供數(shù)據(jù)的圖形表示。產(chǎn)品服務(wù)層124屬于客戶機(jī)114,提供根據(jù)與客戶機(jī)114相關(guān)的產(chǎn)品模型處理數(shù)據(jù)的功能。例如,客戶機(jī)114可以含有用于管理客戶關(guān)系的應(yīng)用程序。這些應(yīng)用程序可能需要與傳送給客戶和從客戶傳送的產(chǎn)品有關(guān)的數(shù)據(jù)。在客戶機(jī)114上運(yùn)行的應(yīng)用程序所使用的產(chǎn)品數(shù)據(jù)可能包含產(chǎn)品數(shù)據(jù),但不包含財務(wù)數(shù)據(jù)??蛻魴C(jī)114不存儲任何與產(chǎn)品有關(guān)的數(shù)據(jù)。取而代之,通過綜合服務(wù)器109中的交換接口126將訪問這樣數(shù)據(jù)的所有請求路由到主數(shù)據(jù)服務(wù)器110。
主數(shù)據(jù)服務(wù)器110的主要功能是維護(hù)存儲在主數(shù)據(jù)庫112中的主數(shù)據(jù)。不同應(yīng)用程序,譬如,訪問主數(shù)據(jù)的應(yīng)用程序128和130可以在主數(shù)據(jù)服務(wù)器110上運(yùn)行。應(yīng)用程序128和130訪問產(chǎn)品服務(wù)層134提供的功能。產(chǎn)品用戶接口132與產(chǎn)品服務(wù)層134交互,為用戶提供數(shù)據(jù)的圖形表示。產(chǎn)品服務(wù)層134屬于主數(shù)據(jù)服務(wù)器110,提供根據(jù)與主數(shù)據(jù)服務(wù)器110相關(guān)的產(chǎn)品模型處理產(chǎn)品數(shù)據(jù)的功能。產(chǎn)品服務(wù)層134可訪問主數(shù)據(jù)庫112。當(dāng)在客戶機(jī)114上運(yùn)行的應(yīng)用程序需要訪問存儲在主數(shù)據(jù)庫112中的主數(shù)據(jù)時,通過交換接口126將該請求路由到產(chǎn)品服務(wù)層134。交換接口126可以使用對等連接與產(chǎn)品服務(wù)層124和134連接。
與客戶機(jī)114相關(guān)的產(chǎn)品模型可以不同于與主數(shù)據(jù)服務(wù)器110相關(guān)的產(chǎn)品模型。因此,當(dāng)產(chǎn)品服務(wù)層124通過產(chǎn)品服務(wù)層134訪問主數(shù)據(jù)庫112時,需要語義映射。
產(chǎn)品服務(wù)層124提供客戶機(jī)的應(yīng)用程序可以使用的相容應(yīng)用程序編程接口。這使得維護(hù)和升級銷售應(yīng)用程序116和產(chǎn)品應(yīng)用程序118更加容易。產(chǎn)品服務(wù)層屬于客戶機(jī),因此,不同客戶機(jī)可以擁有不同的產(chǎn)品服務(wù)層??蛻魴C(jī)系統(tǒng)的每個產(chǎn)品服務(wù)層和它的相關(guān)應(yīng)用程序可以獨(dú)立于其它客戶機(jī)系統(tǒng)的產(chǎn)品服務(wù)層地得到修改或升級。
維護(hù)主數(shù)據(jù)當(dāng)生成或修改主數(shù)據(jù)時,數(shù)據(jù)應(yīng)該與在客戶機(jī)上運(yùn)算的商業(yè)進(jìn)程相容。為了使進(jìn)程正確地工作,該進(jìn)程需要依靠它使用的數(shù)據(jù)的相容性。當(dāng)生成或更新主數(shù)據(jù)時,哪些客戶機(jī)將使用數(shù)據(jù)是不知道的。因此,在使用數(shù)據(jù)之前,可能與數(shù)據(jù)有關(guān)的所有客戶機(jī)都要對數(shù)據(jù)進(jìn)行相容性檢驗。
當(dāng)用戶維護(hù)(例如,添加,修改,或刪除)主數(shù)據(jù)時,用戶應(yīng)該保證所作的改變與在客戶機(jī)上運(yùn)行的進(jìn)程相容。用戶需要來自系統(tǒng)的即時響應(yīng)來通知不相容,這有助于使數(shù)據(jù)相容。
來自客戶機(jī)的相容性規(guī)則可能相互矛盾。當(dāng)發(fā)生矛盾時,由于不存在滿足所有客戶機(jī)的數(shù)據(jù)選項,所以不可能維護(hù)主數(shù)據(jù)對象。然后,在可以生成主數(shù)據(jù)對象之前,必須由維護(hù)數(shù)據(jù)的用戶來協(xié)調(diào)客戶機(jī)。
相容性可以在寫入數(shù)據(jù)時或在讀取數(shù)據(jù)時加以檢驗。在讀取數(shù)據(jù)時檢驗相容性的優(yōu)點(diǎn)在于,每個客戶機(jī)在讀取數(shù)據(jù)時,保證它的進(jìn)程所使用的數(shù)據(jù)的相容性。缺點(diǎn)是讀操作比寫操作更頻繁地進(jìn)行,因此,在讀取數(shù)據(jù)時檢驗相容性的效率比寫入數(shù)據(jù)時低。另一個缺點(diǎn)是,當(dāng)在讀操作期間發(fā)現(xiàn)不相容時,不可能解決不相容性問題??赡苄枰兄乖L問不相容數(shù)據(jù)的進(jìn)程,和找出輸入數(shù)據(jù)的人員以確定是否可以糾正和正確數(shù)據(jù)應(yīng)該是什么。相比之下,在寫入數(shù)據(jù)時檢驗相容性的優(yōu)點(diǎn)在于,在實(shí)際保存和寫入數(shù)據(jù)庫之前可以請用戶糾正數(shù)據(jù)。
參照圖3,當(dāng)用戶通過主數(shù)據(jù)服務(wù)器110將新數(shù)據(jù)輸入主數(shù)據(jù)庫112中時,執(zhí)行數(shù)據(jù)輸入進(jìn)程142。在這個例子中,在主數(shù)據(jù)服務(wù)器110上進(jìn)行主數(shù)據(jù)的維護(hù)??蛻魴C(jī)A 114和客戶機(jī)B 144與綜合服務(wù)器109連接。用戶選擇用戶界面(例如,屏幕)來生成和鎖定(146)新產(chǎn)品的新輸入。舉例來說,用戶選擇號碼“4711”來標(biāo)識新產(chǎn)品。在將新輸入保存在主數(shù)據(jù)庫112中之前,鎖定標(biāo)識符“4711”,以便其它用戶不能用它來標(biāo)識另一個產(chǎn)品。鎖定過程保證了只有一個人可以創(chuàng)建與標(biāo)識符“4711”有關(guān)的主數(shù)據(jù)庫。
為了保證所有應(yīng)用程序都能夠通過其標(biāo)識符訪問輸入到主數(shù)據(jù)庫112的數(shù)據(jù),對照定義標(biāo)識符的可接受格式的模式檢驗(148)標(biāo)識符(即,號碼“4711”)。主數(shù)據(jù)服務(wù)器110、客戶機(jī)A 114和客戶機(jī)B 144每一個都可以擁有它自己與其它模式不同的模式。例如,主數(shù)據(jù)服務(wù)器110可以使用要求標(biāo)識符具有小于10個位的模式。在核實(shí)標(biāo)識符遵從主數(shù)據(jù)服務(wù)器110所要求的模式之后,將請求從主數(shù)據(jù)服務(wù)器110發(fā)送到綜合服務(wù)器109,以便對照各種客戶機(jī)生成的模式核實(shí)標(biāo)識符。
綜合服務(wù)器109含有有關(guān)客戶機(jī)可以訪問新數(shù)據(jù)的信息。例如,客戶機(jī)A 114和客戶機(jī)B 144兩者都可以訪問與“產(chǎn)品”有關(guān)的數(shù)據(jù)。綜合服務(wù)器109將對照模式檢驗標(biāo)識符的請求路由(150)到相關(guān)客戶機(jī),在這種情況下,相關(guān)客戶機(jī)是客戶機(jī)A 114和客戶機(jī)B 144。當(dāng)客戶機(jī)A 114接收到核實(shí)標(biāo)識符的請求時,客戶機(jī)A 114對照它自己的模式檢驗(152)標(biāo)識符。如果標(biāo)識符與模式不匹配,將錯誤消息發(fā)送到主數(shù)據(jù)服務(wù)器110,指示用戶必須選擇另一個標(biāo)識符。同樣,客戶機(jī)B 144對照它自己的模式檢驗(154)標(biāo)識符,并且,如果標(biāo)識符與模式不匹配,將錯誤消息發(fā)送到主數(shù)據(jù)服務(wù)器110。檢驗148、152和154保證了主數(shù)據(jù)服務(wù)器110、客戶機(jī)A 114和客戶機(jī)B 144都可以使用對于主數(shù)據(jù)服務(wù)器110、客戶機(jī)A 114和客戶機(jī)B 144的每一個有效的標(biāo)識符訪問新數(shù)據(jù)。
如果標(biāo)識符的格式已經(jīng)得到核實(shí),用戶繼續(xù)維護(hù)與產(chǎn)品4711相關(guān)的一般屬性。該屬性可以是,例如,產(chǎn)品的簡要文本描述、基本度量單位、銷售度量單位、產(chǎn)品價格、產(chǎn)品數(shù)量、產(chǎn)品的計劃參數(shù)、或產(chǎn)品的銷售商。一般屬性是與多于一個的客戶機(jī)有關(guān)的屬性。
用戶為每個屬性輸入屬性值,然后,檢驗(158)屬性值是否滿足為那些屬性設(shè)置的相容性規(guī)則。例如,相容性規(guī)則可以要求,如果添加了新度量單位,需要擁有到現(xiàn)有度量單位的轉(zhuǎn)換因子。舉另一個例子,相容性規(guī)則可以要求,如果用數(shù)字表示產(chǎn)品價格,也必須指定貨幣。
主數(shù)據(jù)服務(wù)器110將請求發(fā)送到綜合服務(wù)器109,以請求核實(shí)屬性值。綜合服務(wù)器109將該請求路由(160)到相關(guān)客戶機(jī)。一旦接收到該請求,客尸機(jī)A 114就對照客戶機(jī)A 114定義的相容性規(guī)則檢驗(162)屬性值,并且,如果發(fā)生違背規(guī)則現(xiàn)象,將一個消息發(fā)送到主數(shù)據(jù)服務(wù)器110。例如,客戶機(jī)A 114可以定義要求基本度量單位附帶銷售度量單位的相容性規(guī)則(例如,如果銷售人員以箱為單位銷售產(chǎn)品,他需要這個度量單位-箱、和一箱有多少產(chǎn)品的附加信息)。另一個相容性規(guī)則可能要求用歐元指定價格。
一旦接收到核實(shí)屬性的請求,客戶機(jī)B 144就對照客戶機(jī)144定義的規(guī)則檢驗(164)屬性值。例如,相容性規(guī)則可能要求如果不開放有計劃運(yùn)行,只能改變生產(chǎn)時間(例如,由于有計劃運(yùn)行依靠不變的生產(chǎn)時間,所以可能需要這一點(diǎn))。
在客戶機(jī)A 114和客戶機(jī)B 144核實(shí)該屬性遵從那些客戶機(jī)定義的規(guī)則之后,用戶選擇一個界面(例如,屏幕)來維護(hù)(166)與,例如,銷售有關(guān)的數(shù)據(jù)。與銷售有關(guān)的屬性可能只與客戶機(jī)A 114有關(guān),而與客戶機(jī)B 144無關(guān)。綜合服務(wù)器109始終監(jiān)視哪些類型的屬性與哪個或哪些客戶機(jī)有關(guān)。在用戶添加或修改了與銷售有關(guān)的數(shù)據(jù)之后,主數(shù)據(jù)服務(wù)器110將請求發(fā)送到綜合服務(wù)器109,以核實(shí)數(shù)據(jù)是否遵從客戶機(jī)的相容性規(guī)則。綜合服務(wù)器109將請求路由(168)到相關(guān)客戶機(jī),在本例中,相關(guān)客戶機(jī)是客戶機(jī)A 114。一旦接收到該請求,客戶機(jī)A 114就對照客戶機(jī)A 114定義的與銷售數(shù)據(jù)有關(guān)的相容性規(guī)則檢驗與銷售有關(guān)的數(shù)據(jù)。如果數(shù)據(jù)與相容性規(guī)則相容,主數(shù)據(jù)服務(wù)器110將新數(shù)據(jù)保存(172)到主數(shù)據(jù)庫112中。
主數(shù)據(jù)也可以由客戶機(jī)的用戶利用界面實(shí)現(xiàn)維護(hù)對話來維護(hù)??梢詫⒔缑嬖O(shè)計成只顯示和維護(hù)與客戶機(jī)有關(guān)的數(shù)據(jù)。
參照圖4,當(dāng)客戶機(jī)更新主數(shù)據(jù)庫112中的數(shù)據(jù)時,執(zhí)行數(shù)據(jù)維護(hù)進(jìn)程174。在本例中,客戶機(jī)A 114想要更新與產(chǎn)品4711有關(guān)的數(shù)據(jù)??蛻魴C(jī)A 114“打開”(176)產(chǎn)品7411,這可能意味著示出使用戶可以輸入標(biāo)識符“產(chǎn)品4711”以識別需要修改什么數(shù)據(jù)的圖形用戶界面。
客戶機(jī)A 114將請求發(fā)送到綜合服務(wù)器109,請求(178)來自主數(shù)據(jù)服務(wù)器110的數(shù)據(jù)。一旦接收到該請求,主數(shù)據(jù)服務(wù)器110就讀取和鎖定(180)與產(chǎn)品4711有關(guān)的數(shù)據(jù)。鎖定是由主數(shù)據(jù)服務(wù)器110完成的,與哪個客戶機(jī)改變數(shù)據(jù)無關(guān)。主數(shù)據(jù)服務(wù)器110需要知道哪個客戶機(jī)鎖定數(shù)據(jù),以便將這個信息傳送給試圖訪問該數(shù)據(jù)的另一個客戶機(jī)。將數(shù)據(jù)發(fā)送到綜合服務(wù)器109,綜合服務(wù)器109將該數(shù)據(jù)映射成具有客戶機(jī)A 114的格式的數(shù)據(jù)。舉例來說,客戶機(jī)A 114維護(hù)與銷售有關(guān)的數(shù)據(jù)??蛻魴C(jī)114使用圖形用戶界面來顯示只示出與銷售有關(guān)的數(shù)據(jù)的視圖??蛻魴C(jī)A 114上的用戶開始維護(hù)(182)(例如,修正或刪除)與銷售有關(guān)的數(shù)據(jù)。對照其它客戶機(jī)和主數(shù)據(jù)服務(wù)器110定義的相容性規(guī)則對更新的數(shù)據(jù)進(jìn)行相容性檢驗。
客戶機(jī)A 114將請求發(fā)送到服務(wù)器109以啟動核實(shí)進(jìn)程。綜合服務(wù)器109將該請求路由(186)到相關(guān)客戶機(jī)。在本例中,由于銷售數(shù)據(jù)與客戶機(jī)B 144無關(guān),綜合服務(wù)器109不將該請求發(fā)送給客戶機(jī)B 144。綜合服務(wù)器109將該請求發(fā)送給主數(shù)據(jù)服務(wù)器110,主數(shù)據(jù)服務(wù)器110響應(yīng)該請求,對照主數(shù)據(jù)服務(wù)器110定義的相容性規(guī)則對屬性進(jìn)行相容性檢驗(188)。在主數(shù)據(jù)服務(wù)器110和其它客戶機(jī)發(fā)送了指示更新數(shù)據(jù)與相容性規(guī)則相容的消息之后,客戶機(jī)A 114保存(90)數(shù)據(jù),并且將消息發(fā)送到主數(shù)據(jù)服務(wù)器110,請求主數(shù)據(jù)服務(wù)器110將更新數(shù)據(jù)保存到主數(shù)據(jù)庫112中。
主數(shù)據(jù)服務(wù)器110維護(hù)在不同客戶機(jī)上運(yùn)行的許多應(yīng)用程序或進(jìn)程所需的數(shù)據(jù)。維護(hù)與對象相關(guān)的數(shù)據(jù)的客戶機(jī)(或使用客戶機(jī)的用戶)可能沒有資格或未授權(quán)修改所有數(shù)據(jù),和可能只為他自己的進(jìn)程(例如,銷售)維護(hù)數(shù)據(jù)。將綜合服務(wù)器109配置成使用戶可以只訪問含有與他自己的進(jìn)程有關(guān)的數(shù)據(jù)的視圖,因此,只能處理這個視圖的相容性要求。已經(jīng)得到維護(hù)的數(shù)據(jù)(和與數(shù)據(jù)相關(guān)的對象)可以用于這個視圖(即,可以用于與這個視圖相關(guān)的進(jìn)程)。數(shù)據(jù)不可用在還未創(chuàng)建的視圖(例如,未來規(guī)劃)中。
需要檢驗相容性的客戶機(jī)由綜合服務(wù)器109確定。綜合服務(wù)器109在運(yùn)行期內(nèi)將檢驗請求路由到客戶機(jī),并且,返回每個客戶機(jī)的結(jié)果,“成功消息”或描述相容性錯誤的一組消息。顯示這些錯誤使用戶可以修改數(shù)據(jù)以保證相容性。
在相容性檢驗進(jìn)程中,如果客戶機(jī)無應(yīng)答,將客戶機(jī)放在異常列表上,并且,檢驗進(jìn)程繼續(xù)對其余客戶機(jī)進(jìn)行檢驗。這保證了主數(shù)據(jù)的維護(hù)不會因一些客戶機(jī)故障而中斷。
參照圖5,當(dāng)客戶機(jī)無響應(yīng)時,執(zhí)行數(shù)據(jù)維護(hù)進(jìn)程194。主數(shù)據(jù)服務(wù)器110維護(hù)(196)與產(chǎn)品4711相關(guān)的數(shù)據(jù),并且將請求發(fā)送到綜合服務(wù)器109以檢驗相容性。綜合服務(wù)器198將該請求路由(198)到相關(guān)客戶機(jī)。一旦接收到該請求,客戶機(jī)A 114就檢驗(200)屬性??蛻魴C(jī)B 144一旦接收到該請求,本來也應(yīng)檢驗(202)屬性。但是,由于一些原因(例如,系統(tǒng)故障),客戶機(jī)B 144可能無響應(yīng)。綜合服務(wù)器109從客戶機(jī)收集(206)所有響應(yīng),并且發(fā)現(xiàn)未從客戶機(jī)B 144接收到響應(yīng)。綜合服務(wù)器109將從客戶機(jī)收集的響應(yīng)發(fā)送到主數(shù)據(jù)服務(wù)器110。
主數(shù)據(jù)服務(wù)器110將客戶機(jī)B 144添加到(208)異常列表中,指示客戶機(jī)B 144未確認(rèn)更新數(shù)據(jù)是否與客戶機(jī)B 144要求的相容性規(guī)則相容。主數(shù)據(jù)服務(wù)器110把更新的數(shù)據(jù)存儲到主數(shù)據(jù)庫112,并且開始(212)一個工作流來檢查客戶機(jī)B144。工作流可以在某個時間延遲之后人工地或自動地檢測客戶機(jī)B 144,或者,根據(jù)觸發(fā)事件,譬如,當(dāng)客戶機(jī)B 144發(fā)送讀取請求,發(fā)出可以與客戶機(jī)通信的信令時來檢驗客戶機(jī)B 144。如果綜合服務(wù)器109成功地與客戶機(jī)B 144通信,客戶機(jī)B 144檢驗(214)屬性以核實(shí)相容性。一旦從客戶機(jī)B 144接收到?jīng)]有沖突的確認(rèn),主數(shù)據(jù)服務(wù)器110就從異常列表中除去(216)客戶機(jī)B 144。
利用上面的手段,當(dāng)客戶機(jī)不能用在網(wǎng)絡(luò)中時,主數(shù)據(jù)維護(hù)進(jìn)程不會停止。不相容數(shù)據(jù)不會傳遞給客戶機(jī)。異常列表用于確定應(yīng)該暫時拒絕哪些客戶機(jī)訪問對象,直到相容性檢驗已經(jīng)完成為止。
相容性和機(jī)構(gòu)單元數(shù)據(jù)對象的屬性可以是“機(jī)構(gòu)單元”。為機(jī)構(gòu)單元生成的數(shù)據(jù)可以只與某些客戶機(jī)有關(guān)。例如,當(dāng)生成第一制造工廠的計劃數(shù)據(jù)時,可能只有為第一制造工廠執(zhí)行計算的應(yīng)用程序(例如,高級計劃或優(yōu)化應(yīng)用程序)需要該數(shù)據(jù),該數(shù)據(jù)可能與為第二制造工廠執(zhí)行計算的計劃應(yīng)用程序無關(guān)。
綜合服務(wù)器109只將數(shù)據(jù)路由到與數(shù)據(jù)有關(guān)的客戶機(jī)。相容性檢驗由那些客戶機(jī)來進(jìn)行。如果綜合服務(wù)器109處理的消息包含對兩個機(jī)構(gòu)的引用,那么,該消息可能分解成兩個子消息,和每個子消息都用于進(jìn)行相容性檢驗。這種手段也可以用于根據(jù)除了機(jī)構(gòu)單元之外的屬性將數(shù)據(jù)路由到不同客戶機(jī)。
偶爾,數(shù)據(jù)可能得不到正確路由。因此,將客戶機(jī)設(shè)計成以不中斷客戶機(jī)正常操作的方式對無關(guān)數(shù)據(jù)作出反應(yīng)。例如,如果第二制造工廠的計劃應(yīng)用程序接收到第一制造工廠的數(shù)據(jù),那么,取代將錯誤返回給相容性檢驗進(jìn)程,計劃應(yīng)用程序需要忽略這個數(shù)據(jù)。
添加客戶機(jī)當(dāng)將滿足新相容性要求的新客戶機(jī)加入異構(gòu)系統(tǒng)100中時,在新客戶機(jī)可以訪問數(shù)據(jù)之前,對所有主數(shù)據(jù)進(jìn)行客戶機(jī)的相容性的檢驗。
新客戶機(jī)向綜合服務(wù)器109登記,和新客戶機(jī)公布指示需要檢驗?zāi)男傩缘臋z驗界面。對于所有數(shù)據(jù)將新客戶機(jī)放在異常列表上,以便新客戶機(jī)不能訪問數(shù)據(jù),直到相容性檢驗已經(jīng)完成為止。啟動與工作流212(圖6)相似的工作流,對新客戶機(jī)進(jìn)行相容性檢驗。
搜索當(dāng)客戶機(jī)搜索主數(shù)據(jù)時,將請求轉(zhuǎn)發(fā)給主數(shù)據(jù)服務(wù)器110。最初,主數(shù)據(jù)服務(wù)器110將帶有少數(shù)重要字段(例如,簡要描述)的搜索結(jié)果列表返回給客戶機(jī)。如果客戶機(jī)需要任何或所有搜索結(jié)果的進(jìn)一步信息,客戶機(jī)利用讀取操作(如下所述)來訪問更多信息。用于搜索的主數(shù)據(jù)服務(wù)器110的應(yīng)用程序編程接口(API)被設(shè)計成提供大量可能性來涵蓋客戶機(jī)所需的搜索選項。
當(dāng)客戶機(jī)請求讀取主數(shù)據(jù)庫112中的數(shù)據(jù)時,將該請求路由到主數(shù)據(jù)服務(wù)器110。存在,例如,兩種類型的讀取操作。被稱為“獲取標(biāo)識”的一種讀取操作是對對象的身份信息的請求,它返回對象標(biāo)識符和某些描述性參數(shù)(例如,產(chǎn)品的簡要文本、或商業(yè)伙伴的名稱)。被稱為“獲取細(xì)節(jié)”的另一種讀取操作是對對象的詳細(xì)信息的請求,它返回與對象相聯(lián)系的所有信息。
每個客戶機(jī)將具有它自己在“獲取細(xì)節(jié)”讀取操作中客戶機(jī)認(rèn)為是對象部分的那些對象屬性的定義。那些屬性可能是主數(shù)據(jù)服務(wù)器110中已知的所有屬性的一個子組。主數(shù)據(jù)服務(wù)器110含有不同的更通用數(shù)據(jù)模型是可能的,以致需要將客戶機(jī)API映射成主數(shù)據(jù)服務(wù)器API。這種映射在應(yīng)用程序綜合層中進(jìn)行。
刪除主數(shù)據(jù)庫112中數(shù)據(jù)的刪除可以分兩步執(zhí)行。首先,詢問每個客戶機(jī)對對象的引用是否存在。如果引用不存在,不再接受試圖從那個客戶機(jī)中讀取與對象相關(guān)的數(shù)據(jù)的任何讀取操作。并且,不將任何搜索結(jié)果返回給對象。其次,將對象存檔和從主數(shù)據(jù)庫112中刪除對象。當(dāng)所有客戶機(jī)都表明不存在對對象的引用時,執(zhí)行第二步??梢韵鄬τ谀承┛蛻魴C(jī)來“刪除”一個對象(經(jīng)過第2步驟),而其它客戶機(jī)仍然可以訪問和使用該對象。
許多進(jìn)程允許從進(jìn)程事務(wù)處理到與事務(wù)處理相關(guān)的主數(shù)據(jù)庫的導(dǎo)航。例如,當(dāng)生成給定產(chǎn)品的銷售定單時,用戶觀看產(chǎn)品標(biāo)識符和產(chǎn)品的描述。如果用戶想要看得更詳細(xì)一點(diǎn),他可以導(dǎo)航到示出與產(chǎn)品相關(guān)的主數(shù)據(jù),以便觀看其它屬性。
當(dāng)客戶機(jī)松散耦合時,譬如,如圖2所示的例子,存在兩種狀況。如果客戶機(jī)擁有它自己的主數(shù)據(jù)庫用戶界面,那么,那個主數(shù)據(jù)庫用戶界面應(yīng)該用于顯示產(chǎn)品主數(shù)據(jù)。如果客戶機(jī)沒有它自己的用戶界面,那么,使用主數(shù)據(jù)服務(wù)器110的用戶界面。
應(yīng)用程序之間的通信圖6示出了應(yīng)用程序與主數(shù)據(jù),例如,產(chǎn)品數(shù)據(jù)之間的交互。用戶利用用戶界面218針對產(chǎn)品生成定單220。他利用搜索應(yīng)用程序通過各種屬性(例如,外部關(guān)鍵字、描述、或產(chǎn)品類型)找出某種產(chǎn)品。在用戶在輸入屏中輸入數(shù)據(jù)之后,搜索應(yīng)用程序檢驗產(chǎn)品是否存在。搜索應(yīng)用程序調(diào)用訪問產(chǎn)品主數(shù)據(jù)庫112的產(chǎn)品API 222。如果搜索應(yīng)用程序找到產(chǎn)品,產(chǎn)品的簡要文本描述就出現(xiàn)在用戶界面上。在用戶完成輸入定單的數(shù)據(jù)之后,他保存數(shù)據(jù)。當(dāng)保存定單的數(shù)據(jù)時,創(chuàng)建到(對)產(chǎn)品主數(shù)據(jù)的鏈路(或引用)。在一些情況下,如有必要,更新產(chǎn)品屬性。
軟件層之間的通信圖7示出了客戶機(jī)系統(tǒng)224和主數(shù)據(jù)服務(wù)器110的軟件層之間的通信??蛻魴C(jī)系統(tǒng)224包括用戶界面226、商業(yè)服務(wù)層228、持久服務(wù)層230、和主數(shù)據(jù)庫232。同樣,主數(shù)據(jù)服務(wù)器110包括用戶界面234、商業(yè)服務(wù)層236、持久服務(wù)層238、和數(shù)據(jù)庫240。客戶機(jī)系統(tǒng)224和主數(shù)據(jù)服務(wù)器110具有分層的軟件結(jié)構(gòu)。每層訪問每個系統(tǒng)內(nèi)正好在它下面的層的功能。當(dāng)客戶機(jī)系統(tǒng)224需要訪問主數(shù)據(jù)服務(wù)器110的數(shù)據(jù)庫240中的數(shù)據(jù)時,客戶機(jī)224的商業(yè)服務(wù)層228與主數(shù)據(jù)服務(wù)器110的商業(yè)服務(wù)層238以便訪問主數(shù)據(jù)。
只有主數(shù)據(jù)服務(wù)器110可訪問主數(shù)據(jù)庫240中的主數(shù)據(jù)。在一種操作模式中,客戶機(jī)系統(tǒng)224不保持主數(shù)據(jù),和只將它自己的持久服務(wù)230用于客戶機(jī)專用進(jìn)程數(shù)據(jù)。通過使用,例如,入口,可以集成用戶界面226和234,使用戶可以將用戶界面226與用戶界面234相鏈接或從用戶界面226導(dǎo)航到用戶界面234。
客戶機(jī)系統(tǒng)224的用戶界面226和商業(yè)服務(wù)層228可以直接例如通過交換接口或萬維網(wǎng)服務(wù)直接訪問主數(shù)據(jù)服務(wù)器110的商業(yè)服務(wù)層236。
客戶機(jī)系統(tǒng)224的持久服務(wù)層230可以用主數(shù)據(jù)服務(wù)器110的商業(yè)服務(wù)層236來代表主數(shù)據(jù)的持久性。
取決于結(jié)構(gòu)要求,客戶機(jī)系統(tǒng)224的用戶可以決定從商業(yè)服務(wù)層228(通過鏈路242)還是從持久服務(wù)層230(通過鏈路244)訪問主數(shù)據(jù)庫240。從持久服務(wù)層230連接的優(yōu)點(diǎn)是,持久服務(wù)層230中的服務(wù)數(shù)量通常少于商業(yè)服務(wù)層228中的服務(wù)數(shù)量。這使得調(diào)整客戶機(jī)系統(tǒng)224可以費(fèi)較少勁,從而可以訪問主數(shù)據(jù)庫240。從持久服務(wù)層230連接的另一個優(yōu)點(diǎn)是,使商業(yè)服務(wù)層228可以獨(dú)立地,與數(shù)據(jù)存儲在什么地方無關(guān)地得到配置。這使得實(shí)現(xiàn)圖8中的混合結(jié)構(gòu)比較容易。
客戶機(jī)方的混合數(shù)據(jù)存儲在異構(gòu)信息技術(shù)系統(tǒng)的一種實(shí)現(xiàn)方案中,客戶機(jī)如何訪問數(shù)據(jù)取決于客戶機(jī)是如何配置的。如果客戶機(jī)是獨(dú)立系統(tǒng),那么,將主數(shù)據(jù)直接存儲在客戶機(jī)的數(shù)據(jù)庫中。如果客戶機(jī)在含有主數(shù)據(jù)服務(wù)器的分布式環(huán)境下運(yùn)行,應(yīng)用主數(shù)據(jù)服務(wù)器的主數(shù)據(jù)持久性。
從開發(fā)軟件的觀點(diǎn)來看,只實(shí)現(xiàn)主數(shù)據(jù)的一個軟件“示例”是有利的,然后,主數(shù)據(jù)的軟件“示例”可以用在不同系統(tǒng)中一在分布式環(huán)境中,以及在綜合安裝情形中。這降低了開發(fā)和維護(hù)成本,并且可以提供客戶統(tǒng)一軟件。
訪問主數(shù)據(jù)的“混合軟件”可以利用如圖8所示的結(jié)構(gòu)來開發(fā)。持久服務(wù)層230被設(shè)計成它可以通過主數(shù)據(jù)服務(wù)器110的商業(yè)服務(wù)層236訪問本地數(shù)據(jù)庫232或遠(yuǎn)程主數(shù)據(jù)庫240。這使得在定制軟件這一點(diǎn)上可以在客戶機(jī)處決定是本地還是遠(yuǎn)程維護(hù)數(shù)據(jù)。
主數(shù)據(jù)的映射利用消息在客戶機(jī)系統(tǒng)和主數(shù)據(jù)服務(wù)器之間交換主數(shù)據(jù)。綜合服務(wù)器負(fù)責(zé)消息的路由和映射。綜合服務(wù)器含有有關(guān)客戶機(jī)的信息,并且,能夠選擇消息、數(shù)據(jù)類型、和接口的適當(dāng)映射。
使用綜合服務(wù)器的優(yōu)點(diǎn)是,在客戶機(jī)系統(tǒng)上或在主數(shù)據(jù)服務(wù)器上不必附加代碼。在綜合服務(wù)器上維護(hù)和存儲映射規(guī)則。在一個例子中,映射規(guī)則由為客戶機(jī)開發(fā)應(yīng)用程序的人員開發(fā)。
從客戶機(jī)訪問主數(shù)據(jù)參照圖9,主數(shù)據(jù)服務(wù)器114包括用于管理產(chǎn)品數(shù)據(jù)的產(chǎn)品數(shù)據(jù)模塊288。產(chǎn)品數(shù)據(jù)模塊288包括用戶界面部件282、應(yīng)用程序編程接口部件284、和主數(shù)據(jù)庫286??蛻魴C(jī)應(yīng)用程序250通過調(diào)用主數(shù)據(jù)中介器252的應(yīng)用程序編程接口訪問產(chǎn)品數(shù)據(jù)模塊288,主數(shù)據(jù)中介器252的應(yīng)用程序編程接口執(zhí)行高速緩存和權(quán)限檢驗的功能,和確定訪問本地存儲的數(shù)據(jù)(當(dāng)客戶機(jī)被配置成獨(dú)立系統(tǒng)時)還是訪問遠(yuǎn)程存儲的數(shù)據(jù)(當(dāng)客戶機(jī)被配置為與主數(shù)據(jù)服務(wù)器交互時)。當(dāng)客戶機(jī)110與主數(shù)據(jù)服務(wù)器交換時,一些數(shù)據(jù)也可以在本地得到高速緩存(例如,在客戶機(jī)110的存儲器中)。
主數(shù)據(jù)中介器252包括產(chǎn)品服務(wù)部件290、交換接口代理器292、和本地主教據(jù)庫296。產(chǎn)品服務(wù)部件290提供應(yīng)用程序250可以調(diào)用的應(yīng)用程序編程接口。如果客戶機(jī)110是獨(dú)立系統(tǒng),產(chǎn)品服務(wù)部件290可以通過路徑298訪問存儲在本地主數(shù)據(jù)庫296中的數(shù)據(jù)。如果客戶機(jī)110被配置成與主數(shù)據(jù)服務(wù)器114交互,產(chǎn)品服務(wù)部件290可以通過路徑300與交換接口代理器292通信。交換接口代理器292通過綜合服務(wù)器109的交換接口126與主數(shù)據(jù)服務(wù)器114的應(yīng)用程序編程接口284通信。應(yīng)用程序編程接口284用于訪問存儲在主數(shù)據(jù)庫286中的主數(shù)據(jù)。無論客戶機(jī)110被配置成獨(dú)立系統(tǒng)還是與主數(shù)據(jù)服務(wù)器114交互的聯(lián)網(wǎng)系統(tǒng)的一部分,都只在一個數(shù)據(jù)庫-本地主數(shù)據(jù)庫290或主數(shù)據(jù)庫286中維護(hù)主數(shù)據(jù)。
數(shù)據(jù)對象之間的鏈路主數(shù)據(jù)對象和進(jìn)程對象可以與某種語義相關(guān)。用像時間相關(guān)屬性n:m相關(guān)那樣的模式,例如,通用客戶關(guān)系管理互連加以實(shí)現(xiàn)。
主數(shù)據(jù)存儲在主數(shù)據(jù)服務(wù)器110上。主數(shù)據(jù)對象之間的鏈路是否應(yīng)該存儲在主數(shù)據(jù)服務(wù)器110的決定取決于相連客戶機(jī)中鏈路的使用。如果在許多系統(tǒng)中需要鏈路的語義,必須將鏈路存儲在主數(shù)據(jù)服務(wù)器110上。
一般說來,主數(shù)據(jù)服務(wù)器110不知道(或存儲)進(jìn)程數(shù)據(jù)。因此,客戶機(jī)114負(fù)責(zé)維護(hù)從它的進(jìn)程數(shù)據(jù)到引用主數(shù)據(jù)的鏈路。
有時,有必要在主數(shù)據(jù)服務(wù)器110上保持到進(jìn)程數(shù)據(jù)的鏈路。主數(shù)據(jù)服務(wù)器100上這樣鏈路的實(shí)現(xiàn)是通用的。
高速緩存數(shù)據(jù)主數(shù)據(jù)的讀取訪問比其它主數(shù)據(jù)進(jìn)程更頻繁發(fā)生,并且,它往往是時間上有嚴(yán)格要求的應(yīng)用程序的一部分。通過在客戶機(jī)方高速緩存數(shù)據(jù),可以更快地進(jìn)行讀取訪問操作。
對于在客戶機(jī)上實(shí)現(xiàn)高速緩存,可以使用不同的手段。哪種方法較好取決于主數(shù)據(jù)結(jié)構(gòu)。一種手段是在綜合服務(wù)器中高速緩存數(shù)據(jù)。在一種手段中,綜合服務(wù)器可以高速緩存對讀取消息操作的應(yīng)答。如果相同消息被再次發(fā)送,可以從高速緩沖存儲器傳遞該應(yīng)答。在另一種手段中,可以在消息級上進(jìn)行高速緩存。消息被主數(shù)據(jù)應(yīng)用程序高速緩存。在又一種手段中,高速緩存對象模型??蛻魴C(jī)主數(shù)據(jù)事務(wù)處理通常具有高速緩存機(jī)制。當(dāng)與主數(shù)據(jù)服務(wù)器通信時,也可以使用這種高速緩存。
為了取得足夠的高速緩存結(jié)果,在客戶機(jī)的會話期間需要共享高速緩存內(nèi)容。通常,這是通過在數(shù)據(jù)庫上使高速緩存持久取得的。利用共享對象的新基本技術(shù),也可以共享存儲器中的高速緩沖存儲器以提高性能。
當(dāng)使用持久高速緩存時,客戶機(jī)應(yīng)該登記最后訪問的時間,以便可以從高速緩沖存儲器中刪除舊條目。
當(dāng)數(shù)據(jù)不再有用時,需要使高速緩存數(shù)據(jù)失效。由于主數(shù)據(jù)幾乎不變,較好的手段是使用顯式失效,而不是周期性地使之失效。當(dāng)主數(shù)據(jù)發(fā)生改變時,向所有客戶機(jī)廣播這個信息,以便它們可以使它們的高速緩沖存儲器失效??蛻魴C(jī)也可以在方便的時候,例如,在夜里重新讀取所有失效條目。在服務(wù)器方也可以提供高速緩存機(jī)制。會話之間的共享高速緩存將導(dǎo)致性能提高。
權(quán)限檢驗用戶在權(quán)限檢驗中起重要作用。用戶有權(quán)請求某些對象或?qū)ο箢愋?。一種手段是讓來自所有客戶機(jī)的所有用戶存在于主數(shù)據(jù)服務(wù)器之上。可以像平常那樣在主數(shù)據(jù)服務(wù)器上給出用戶權(quán)限。這種手段趨向于增加系統(tǒng)管理。另一種手段是讓所有權(quán)限檢驗在客戶機(jī)上完成,并且讓主數(shù)據(jù)服務(wù)器返回請求的任何數(shù)據(jù)。從用戶管理的觀點(diǎn)來看,這更容易些,但使相容性權(quán)限概念實(shí)現(xiàn)起來更加困難。
主數(shù)據(jù)服務(wù)器使用雙層權(quán)限結(jié)構(gòu)。在第一層中,主數(shù)據(jù)服務(wù)器將權(quán)限級分配給客戶機(jī)系統(tǒng)。在第二層中,客戶機(jī)系統(tǒng)可以進(jìn)一步將權(quán)限級分配給客戶機(jī)的用戶或在客戶機(jī)上運(yùn)行的進(jìn)程。例如,銷售客戶機(jī)系統(tǒng)可以具有讀取一般數(shù)據(jù)和銷售數(shù)據(jù)的權(quán)限,以及改變銷售數(shù)據(jù)的權(quán)限。另一種客戶機(jī)系統(tǒng)可以具有讀取通用數(shù)據(jù)和銷售數(shù)據(jù)的權(quán)限,而沒有改變銷售數(shù)據(jù)的權(quán)限。可以授權(quán)銷售客戶機(jī)系統(tǒng)的特定用戶讀取通用數(shù)據(jù)和只讀取與特定產(chǎn)品有關(guān)的銷售數(shù)據(jù)。當(dāng)訪問主數(shù)據(jù)時,客戶機(jī)上的用戶不能比客戶機(jī)擁有更高的權(quán)限級。
如上所述的手段用在通過客戶機(jī)訪問數(shù)據(jù)的時候。當(dāng)用戶直接導(dǎo)航到主數(shù)據(jù)服務(wù)器時,他需要作為用戶登錄在主數(shù)據(jù)服務(wù)器上。根據(jù)他的使用狀態(tài)將某些權(quán)限級授予他。
主數(shù)據(jù)管理的后果下面描述利用主數(shù)據(jù)庫集中存儲數(shù)據(jù)的一些后果。
主數(shù)據(jù)服務(wù)器被設(shè)計為滿足許多客戶機(jī)的要求。主數(shù)據(jù)軟件被設(shè)計成可靈活地使在客戶機(jī)處配置之前未知的屬性得到存儲??梢允褂迷谒兄鲾?shù)據(jù)中使用SAP提供的易擴(kuò)工作臺(Easy Extension Workbench)中的統(tǒng)一手段。
提供相容性檢驗框架,以便客戶機(jī)可以檢驗數(shù)據(jù)的相容性。
軟件以混合方式寫成,以便取決于系統(tǒng)是如何連接的,可以本地或遠(yuǎn)程進(jìn)行主數(shù)據(jù)的存儲。
原理表1示出了支持動態(tài)訪問中心主數(shù)據(jù)服務(wù)器的原理的例子。
表1
實(shí)現(xiàn)主數(shù)據(jù)集中存儲在主數(shù)據(jù)服務(wù)器維護(hù)的主數(shù)據(jù)庫中的系統(tǒng)存在一些風(fēng)險。綜合服務(wù)器和主數(shù)據(jù)服務(wù)器需要具有高可用性(系統(tǒng)可靠性)。如果主數(shù)據(jù)服務(wù)器不可用,基于主數(shù)據(jù)的進(jìn)程不再能運(yùn)行。為了減輕主數(shù)據(jù)服務(wù)器故障引起的損害,可以在客戶機(jī)上引入本地高速緩存機(jī)制。主數(shù)據(jù)中的錯誤可能使進(jìn)程停止。因此,主數(shù)據(jù)的映射必須沒有錯誤。所有對象都應(yīng)該正確映射,和所有所需的屬性都應(yīng)該正確映射。系統(tǒng)之間的事務(wù)處理相容性也許難以實(shí)現(xiàn)。應(yīng)該將數(shù)據(jù)模型化成不需要分兩階段提交。客戶機(jī)上應(yīng)用程序的定制需要得到協(xié)調(diào)。主數(shù)據(jù)模型和實(shí)現(xiàn)方案需要提供靈活性,以便它們可以使用其特殊屬性為所有客戶機(jī)服務(wù)的方式擴(kuò)展主數(shù)據(jù)。
動態(tài)訪問主數(shù)據(jù)的進(jìn)程可以在數(shù)字電子線路中,或在計算機(jī)硬件、固件、軟件、或它們的組合中實(shí)現(xiàn)。動態(tài)訪問主數(shù)據(jù)的設(shè)備可以用可供可編程處理器執(zhí)行的、在信息載體中,例如,在機(jī)器可讀存儲設(shè)備中或在傳播信號中有形地具體化的計算機(jī)程序產(chǎn)品來實(shí)現(xiàn)。動態(tài)訪問主數(shù)據(jù)的方法步驟可以由可編程處理器來完成??删幊烫幚砥鲌?zhí)行由指令組成的程序,通過對輸入數(shù)據(jù)進(jìn)行運(yùn)算和生成輸出完成本發(fā)明的功能。動態(tài)訪問主數(shù)據(jù)的進(jìn)程可以在可在包括耦合成從數(shù)據(jù)存儲系統(tǒng)接收數(shù)據(jù)和指令和將數(shù)據(jù)和指令發(fā)送到數(shù)據(jù)存儲系統(tǒng)的至少一個可編程處理器、至少一個輸入設(shè)備、和至少一個輸出設(shè)備。計算機(jī)程序是可以直接或間接用在計算機(jī)中,完成某種活動或產(chǎn)生某種結(jié)果的一組指令。計算機(jī)程序可以用包括編譯或解譯語言的任何形式編程語言寫成,并且,可以以任何形式,包括作為獨(dú)立程序或作為模塊,部件、子例程、或適合用在計算機(jī)環(huán)境中的其它單元部署它。
適合執(zhí)行由指令組成的程序的處理器包括,舉例來說,通用和專用微處理器兩者、和單獨(dú)處理器或任何類型計算機(jī)的多個處理器之一。一般來說,處理器從只讀存儲器或隨機(jī)訪問存儲器或兩者接收指令和數(shù)據(jù)。計算機(jī)的基本單元是執(zhí)行指令的處理器和存儲指令和數(shù)據(jù)的一個或多個存儲器。一般來說,計算機(jī)還包括一個或多個存儲數(shù)據(jù)文件的大型存儲設(shè)備,或可操作地耦合成與一個或多個存儲數(shù)據(jù)文件的大型存儲設(shè)備通信;這樣的設(shè)備包括諸如內(nèi)置硬盤和可移動盤之類的磁盤;磁光盤;和光盤。適合有形地具體化計算機(jī)程序指令和數(shù)據(jù)的存儲設(shè)備包括所有形式的非易失性存儲器,舉例來說,非易失性存儲器包括諸如EPROM(可擦除可編程只讀存儲器)、EEPROM(電可擦除可編程只讀存儲器)、和閃速存儲設(shè)備之類的半導(dǎo)體存儲設(shè)備;諸如內(nèi)置硬盤和可移動盤之類的硬盤;磁光盤;和CD-ROM(光盤只讀存儲器)和DVD-ROM(數(shù)字多功能盤只讀存儲器)盤。處理器和存儲器可以通過ASIC(專用集成電路)添加或合并在ASIC中。
一種這樣類型計算機(jī)的例子顯示在圖10中,圖10示出了適合實(shí)現(xiàn)動態(tài)訪問主數(shù)據(jù)的進(jìn)程的可編程處理系統(tǒng)(系統(tǒng))256的方?jīng)Q圖。系統(tǒng)256包括通過處理器(CPU)總線270耦合的處理器258、隨機(jī)訪問存儲器(RAM)260、程序存儲器262(例如,諸如閃存ROM之類的可寫只讀存儲器(ROM))、硬盤驅(qū)動器控制器264、視頻控制器266、和輸入/輸出(I/O)控制器268。系統(tǒng)256可以在,例如,ROM中被預(yù)先編程,或者,可以通過從另一個源頭(例如,從軟盤、CD-ROM、或另一個計算機(jī))裝載程序而被編程(或預(yù)先編程)。
硬盤驅(qū)動器控制器264與適合存儲包括實(shí)現(xiàn)主數(shù)據(jù)軟件的程序在內(nèi)的可執(zhí)行計算機(jī)程序的硬盤272耦合。視頻控制器266與顯示圖形用戶界面的顯示器耦合。I/O控制器268通過I/O總線276與I/O接口278耦合。I/O接口278以模擬或數(shù)字形式在諸如串行鏈路、局域網(wǎng)、無線鏈路、和并行鏈路之類的通信鏈路上接收和發(fā)送數(shù)據(jù)。
與I/O總線276耦合的還有鍵盤280??蛇x地,對于I/O接口278和鍵盤280,可以使用分立連線(分立總線)。動態(tài)訪問主數(shù)據(jù)的進(jìn)程可以在計算機(jī)系統(tǒng)中實(shí)現(xiàn),該計算機(jī)系統(tǒng)包括諸如數(shù)據(jù)服務(wù)器之類的后端部件,或包括諸如應(yīng)用程序服務(wù)器或因特網(wǎng)服務(wù)器之類的中間件部件,或包括諸如具有圖形用戶界面或因特網(wǎng)瀏覽器,或它們的任意組合的客戶機(jī)計算機(jī)之類的前端部件。系統(tǒng)的部件可以通過諸如通信網(wǎng)絡(luò)之類的數(shù)字?jǐn)?shù)據(jù)通信的任何形式或媒體連接。通信網(wǎng)絡(luò)的例子包括,例如,局域網(wǎng)(“LAN”)、廣域網(wǎng)(“WAN”)、和因特網(wǎng)。
計算機(jī)系統(tǒng)可以包括客戶機(jī)和服務(wù)器??蛻魴C(jī)和服務(wù)器一般彼此遠(yuǎn)離,并且,通常通過像上述那樣的網(wǎng)絡(luò)交互??蛻魴C(jī)和服務(wù)器之間的關(guān)系依在各自計算機(jī)上運(yùn)行和彼此具有客戶機(jī)-服務(wù)器關(guān)系的計算機(jī)程序而定。
上面通過特定實(shí)施例對本發(fā)明作了描述。其它實(shí)施例也在所附權(quán)利要求書的范圍之內(nèi)。例如,本發(fā)明的步驟可以按不同順序完成,并且,仍然獲得所需結(jié)果。
上面已經(jīng)描述了本發(fā)明的許多實(shí)施例。不過,應(yīng)該明白,可以作出各種各樣的修改而不偏離本發(fā)明的精神和范圍。例如,綜合服務(wù)器109和主數(shù)據(jù)服務(wù)器110在物理上可以駐留在同一計算機(jī)中。本發(fā)明可應(yīng)用于兩個部件共享的任何類型數(shù)據(jù),不局限于“主數(shù)據(jù)”。數(shù)據(jù)可以是通用數(shù)據(jù)或應(yīng)用數(shù)據(jù)。因此,其它實(shí)施例都在所附權(quán)利要求書的范圍之內(nèi)。
權(quán)利要求
1.一種動態(tài)訪問數(shù)據(jù)的方法,該方法包括將請求從客戶機(jī)發(fā)送到服務(wù)器,以訪問存儲在該服務(wù)器維護(hù)的數(shù)據(jù)庫中的數(shù)據(jù);從數(shù)據(jù)庫中檢索第一組數(shù)據(jù);根據(jù)客戶機(jī)定義的一組映射規(guī)則,將第一組數(shù)據(jù)映射成第二組數(shù)據(jù);和在客戶機(jī)上接收第二組數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其中,存儲在數(shù)據(jù)庫中的數(shù)據(jù)包括對象的屬性值。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述對象包括產(chǎn)品。
4.根據(jù)權(quán)利要求2所述的方法,其中,所述對象包括商業(yè)伙伴。
5.根據(jù)權(quán)利要求2所述的方法,其中,第一組數(shù)據(jù)到第二組數(shù)據(jù)的映射包括除去第一組數(shù)據(jù)中與客戶機(jī)無關(guān)的屬性數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的方法,其中,獨(dú)立于服務(wù)器的客戶機(jī)不時地修改該組映射規(guī)則。
7.一種維護(hù)數(shù)據(jù)的方法,該方法包括在服務(wù)器上接收標(biāo)識符和與標(biāo)識符標(biāo)識的對象相關(guān)的數(shù)據(jù),服務(wù)器被配置成維護(hù)客戶機(jī)可訪問的數(shù)據(jù)庫;對于每個客戶機(jī),核實(shí)標(biāo)識符和數(shù)據(jù)是否遵從客戶機(jī)定義的一組規(guī)則;和將標(biāo)識符和數(shù)據(jù)輸入到數(shù)據(jù)庫。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述數(shù)據(jù)包括與對象相關(guān)的屬性值。
9.根據(jù)權(quán)利要求8所述的方法,其中,核實(shí)標(biāo)識符和數(shù)據(jù)是否遵從該組規(guī)則包括核實(shí)數(shù)據(jù)是否符合與對象的屬性有關(guān)的客戶機(jī)定義的一子組規(guī)則。
10.根據(jù)權(quán)利要求9所述的方法,其中,該子組規(guī)則包括定義屬性值的可接受格式的規(guī)則。
11.根據(jù)權(quán)利要求7所述的方法,其中,核實(shí)標(biāo)識符和數(shù)據(jù)是否遵從一組規(guī)則包括核實(shí)標(biāo)識符是否符合與對象的標(biāo)識有關(guān)的客戶機(jī)定義的一子組規(guī)則。
12.根據(jù)權(quán)利要求11所述的方法,其中,該子組規(guī)則包括定義標(biāo)識符的可接受格式的規(guī)則。
13.根據(jù)權(quán)利要求7所述的方法,還包括將數(shù)據(jù)與標(biāo)識符聯(lián)系在一起。
14.根據(jù)權(quán)利要求13所述的方法,還包括將請求從客戶機(jī)發(fā)送到服務(wù)器,以請求與標(biāo)識符相聯(lián)系的數(shù)據(jù),和將數(shù)據(jù)庫中與標(biāo)識符相聯(lián)系的數(shù)據(jù)轉(zhuǎn)換成客戶機(jī)可接受的格式。
15.根據(jù)權(quán)利要求7所述的方法,還包括將所述請求從服務(wù)器發(fā)送到第二服務(wù)器,該請求請求核實(shí)標(biāo)識符和數(shù)據(jù),識別哪些客戶機(jī)可以訪問數(shù)據(jù)庫,和將該請求從第二服務(wù)器路由到被識別為能夠訪問數(shù)據(jù)庫的客戶機(jī)。
16.根據(jù)權(quán)利要求7所述的方法,其中,所述對象包括產(chǎn)品。
17.根據(jù)權(quán)利要求7所述的方法,其中,所述對象包括商業(yè)伙伴。
18.根據(jù)權(quán)利要求7所述的方法,其中,服務(wù)器利用以可擴(kuò)充標(biāo)記語言編寫的消息與客戶機(jī)通信。
19.根據(jù)權(quán)利要求7所述的方法,還包括對于每個客戶機(jī),將請求發(fā)送到客戶機(jī),以請求核實(shí)標(biāo)識符和數(shù)據(jù)是否遵從客戶機(jī)定義的該組規(guī)則,和如果特定客戶機(jī)無應(yīng)答,將客戶機(jī)放在異常列表上,以指示標(biāo)識符和數(shù)據(jù)未被核實(shí)為遵從特定客戶機(jī)定義的該組規(guī)則。
20.根據(jù)權(quán)利要求19所述的方法,其中,在預(yù)定時間周期之后,或當(dāng)特定客戶機(jī)試圖訪問數(shù)據(jù)庫中的數(shù)據(jù)時,進(jìn)行核實(shí)標(biāo)識符和數(shù)據(jù)是否遵從特定客戶機(jī)定義的該組規(guī)則的另一次嘗試。
21.一種維護(hù)數(shù)據(jù)的方法,該方法包括將請求從容戶機(jī)發(fā)送到服務(wù)器,以請求修改與對象相關(guān)的一組數(shù)據(jù),該組數(shù)據(jù)存儲在該服務(wù)器維護(hù)的數(shù)據(jù)庫中;接收服務(wù)器已經(jīng)鎖定該組數(shù)據(jù);使得只有該客戶機(jī)才能修改該組數(shù)據(jù)的消息;將一組修改數(shù)據(jù)發(fā)送到服務(wù)器,以便將修改數(shù)據(jù)存儲在數(shù)據(jù)庫中;接收修改數(shù)據(jù)存儲在數(shù)據(jù)庫中的消息,隨著服務(wù)器對其它客戶機(jī)的每一個確定其它哪些客戶機(jī)可以訪問所述修改數(shù)據(jù),核實(shí)該修改數(shù)據(jù)是否遵從客戶機(jī)定義的一組規(guī)則。
22.根據(jù)權(quán)利要求21所述的方法,其中,該組數(shù)據(jù)包括與對象相關(guān)的屬性值。
23.根據(jù)權(quán)利要求22所述的方法,其中,客戶機(jī)定義的該組規(guī)則包括定義屬性值的可接受格式的規(guī)則。
24.根據(jù)權(quán)利要求22所述的方法,其中,服務(wù)器通過將屬性與客戶機(jī)公布的檢驗表相比較,確定其它哪些客戶機(jī)可以訪問修改數(shù)據(jù),每個檢驗表指示客戶機(jī)可訪問的屬性。
25.根據(jù)權(quán)利要求21所述的方法,其中,所述對象包括產(chǎn)品。
26.根據(jù)權(quán)利要求21所述的方法,其中,所述對象包括商業(yè)伙伴。
27.根據(jù)權(quán)利要求21所述的方法,其中,所述服務(wù)器利用包括以可擴(kuò)充標(biāo)記語言編寫的代碼的消息與客戶機(jī)通信。
28.一種方法,包括如下步驟提供含有允許在將數(shù)據(jù)存儲在本地數(shù)據(jù)庫中的第一模式和將數(shù)據(jù)存儲在服務(wù)器計算機(jī)維護(hù)的遠(yuǎn)程數(shù)據(jù)庫中的第二模式之間切換的模塊的客戶機(jī)計算機(jī);和提供動態(tài)地將存儲在遠(yuǎn)程數(shù)據(jù)庫中的數(shù)據(jù)映射成具有由客戶機(jī)計算機(jī)定義的格式的數(shù)據(jù)的接口。
29.根據(jù)權(quán)利要求28所述的方法,還包括提供也具有允許在將數(shù)據(jù)存儲在本地數(shù)據(jù)庫中的第一模式和將數(shù)據(jù)存儲在服務(wù)器計算機(jī)維護(hù)的遠(yuǎn)程數(shù)據(jù)庫中的第二模式之間切換的模塊的第二客戶機(jī)計算機(jī),和也動態(tài)地將存儲在遠(yuǎn)程數(shù)據(jù)庫中的數(shù)據(jù)映射成具有第二客戶機(jī)計算機(jī)定義的第二格式的數(shù)據(jù)的接口,所述第二格式是由第二客戶機(jī)獨(dú)立于第一客戶機(jī)修改的。
30.一種系統(tǒng),包括數(shù)據(jù)服務(wù)器,用于維護(hù)存儲與標(biāo)識符標(biāo)識的對象相關(guān)的數(shù)據(jù)的數(shù)據(jù)庫,該對象具有描述對象的多個方面的屬性,該數(shù)據(jù)包括與屬性相關(guān)的屬性值;客戶機(jī),用于訪問存儲在數(shù)據(jù)庫中的數(shù)據(jù),每個客戶機(jī)為標(biāo)識符和屬性定義一組規(guī)則;和綜合服務(wù)器,用于與客戶機(jī)和數(shù)據(jù)服務(wù)器通信,該綜合服務(wù)器響應(yīng)來自客戶機(jī)的對數(shù)據(jù)的請求,將數(shù)據(jù)服務(wù)器中的數(shù)據(jù)映射成具有遵從客戶機(jī)定義的規(guī)則的格式的數(shù)據(jù)。
31.根據(jù)權(quán)利要求30所述的系統(tǒng),其中,綜合服務(wù)器利用包括以可擴(kuò)充標(biāo)記語言編寫的代碼的消息與客戶機(jī)和數(shù)據(jù)服務(wù)器通信。
32.一種用于動態(tài)訪問主數(shù)據(jù)、有形地存儲在機(jī)器可讀媒體上的計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品包括使可編程處理器執(zhí)行如下步驟的指令接收來自客戶機(jī)的請求,以訪問存儲在服務(wù)器維護(hù)的數(shù)據(jù)庫中的數(shù)據(jù);從數(shù)據(jù)庫中檢索第一組數(shù)據(jù);根據(jù)客戶機(jī)定義的一組映射規(guī)則將第一組數(shù)據(jù)映射成第二組數(shù)據(jù);和將第二組數(shù)據(jù)發(fā)送到客戶機(jī)。
33.根據(jù)權(quán)利要求32所述的計算機(jī)程序產(chǎn)品,其中,存儲在數(shù)據(jù)庫中的數(shù)據(jù)包括對象的屬性值。
34.根據(jù)權(quán)利要求33所述的計算機(jī)程序產(chǎn)品,其中,所述對象包括產(chǎn)品。
35.根據(jù)權(quán)利要求33所述的計算機(jī)程序產(chǎn)品,其中,所述對象包括商業(yè)伙伴。
36.根據(jù)權(quán)利要求33所述的計算機(jī)程序產(chǎn)品,其中,該指令起使可編程處理器除去第一組數(shù)據(jù)中與客戶機(jī)無關(guān)的屬性數(shù)據(jù)的作用。
37.根據(jù)權(quán)利要求32所述的計算機(jī)程序產(chǎn)品,其中,獨(dú)立于服務(wù)器的客戶機(jī)不時地修改該組映射規(guī)則。
38.一種用于動態(tài)訪問存儲在客戶機(jī)可訪問的數(shù)據(jù)庫中的主數(shù)據(jù)、有形地存儲在機(jī)器可讀媒體上的計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品包括起使可編程處理器執(zhí)行如下步驟作用的指令接收標(biāo)識符和與標(biāo)識符標(biāo)識的對象相關(guān)的數(shù)據(jù);對于每個客戶機(jī),核實(shí)標(biāo)識符和數(shù)據(jù)是否遵從客戶機(jī)定義的一組規(guī)則;和將標(biāo)識符和數(shù)據(jù)輸入到數(shù)據(jù)庫。
39.根據(jù)權(quán)利要求38所述的計算機(jī)程序產(chǎn)品,其中,所述數(shù)據(jù)包括與對象相關(guān)的屬性值。
40.根據(jù)權(quán)利要求39所述的計算機(jī)程序產(chǎn)品,其中,該指令起使可編程處理器核實(shí)數(shù)據(jù)是否符合與對象的屬性有關(guān)的客戶機(jī)定義的一子組規(guī)則的作用。
41.根據(jù)權(quán)利要求40所述的計算機(jī)程序產(chǎn)品,其中,該子組規(guī)則包括定義屬性值的可接受格式的規(guī)則。
42.根據(jù)權(quán)利要求38所述的計算機(jī)程序產(chǎn)品,其中,該指令起使可編程處理器核實(shí)標(biāo)識符是否符合與對象的標(biāo)識相關(guān)的客戶機(jī)定義的一子組規(guī)則的作用。
43.根據(jù)權(quán)利要求42所述的計算機(jī)程序產(chǎn)品,其中,所述組規(guī)則包括定義標(biāo)識符的可接受格式的規(guī)則。
44.根據(jù)權(quán)利要求38所述的計算機(jī)程序產(chǎn)品,其中,該指令起使可編程處理器將數(shù)據(jù)與標(biāo)識符聯(lián)系在一起的作用。
45.根據(jù)權(quán)利要求44所述的計算機(jī)程序產(chǎn)品,其中,該指令起使可編程處理器將請求從客戶機(jī)發(fā)送到服務(wù)器,以請求與標(biāo)識符相聯(lián)系的數(shù)據(jù),和將數(shù)據(jù)庫中與標(biāo)識符相聯(lián)系的數(shù)據(jù)轉(zhuǎn)換成客戶機(jī)可接受的格式的作用。
46.根據(jù)權(quán)利要求38所述的計算機(jī)程序產(chǎn)品,其中,所述對象包括產(chǎn)品。
47.根據(jù)權(quán)利要求38所述的計算機(jī)程序產(chǎn)品,其中,所述對象包括商業(yè)伙伴。
48.根據(jù)權(quán)利要求38所述的計算機(jī)程序產(chǎn)品,其中,服務(wù)器利用以可擴(kuò)充標(biāo)記語言編寫的消息與客戶機(jī)通信。
49.根據(jù)權(quán)利要求38所述的計算機(jī)程序產(chǎn)品,其中,該指令起使可編程處理器對于每個客戶機(jī),將請求發(fā)送到客戶機(jī),以請求核實(shí)標(biāo)識符和數(shù)據(jù)是否遵從客戶機(jī)定義的該組規(guī)則,和如果特定客戶機(jī)無應(yīng)答,將客戶機(jī)放在異常列表上,以指示標(biāo)識符和數(shù)據(jù)未被核實(shí)為遵從特定客戶機(jī)定義的該組規(guī)則的作用。
50.根據(jù)權(quán)利要求49所述的計算機(jī)程序產(chǎn)品,其中,該指令起使可編程處理器在預(yù)定時間周期之后,或當(dāng)特定客戶機(jī)試圖訪問數(shù)據(jù)庫中的數(shù)據(jù)時,啟動核實(shí)識符和數(shù)據(jù)是否遵從特定客戶機(jī)定義的該組規(guī)則的另一次嘗試的作用。
51.一種用于動態(tài)訪問主數(shù)據(jù)、有形地存儲在機(jī)器可讀媒體上的計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品包括起使具有客戶機(jī)和服務(wù)器的計算機(jī)系統(tǒng)執(zhí)行如下步驟作用的指令將請求從第一客戶機(jī)發(fā)送到服務(wù)器,以修改與對象相關(guān)的一組數(shù)據(jù),該組數(shù)據(jù)存儲在服務(wù)器維護(hù)的數(shù)據(jù)庫中;接收服務(wù)器已經(jīng)鎖定該組數(shù)據(jù);使得只有該客戶機(jī)才能修改該組數(shù)據(jù)的消息;將一組修改數(shù)據(jù)發(fā)送到服務(wù)器,以便將數(shù)據(jù)存儲在數(shù)據(jù)庫中;和接收該組修改數(shù)據(jù)已存儲在數(shù)據(jù)庫中的消息,其中,服務(wù)器對其它客戶機(jī)的每一個確定其它哪些客戶機(jī)可以訪問該組修改數(shù)據(jù),和核實(shí)該組修改數(shù)據(jù)是否遵從客戶機(jī)定義的一組規(guī)則。
52.根據(jù)權(quán)利要求51所述的計算機(jī)程序產(chǎn)品,其中,所述組數(shù)據(jù)包括與對象相聯(lián)系的屬性值。
53.根據(jù)權(quán)利要求52所述的計算機(jī)程序產(chǎn)品,其中,客戶機(jī)定義的該組規(guī)則包括定義屬性值的可接受格式的規(guī)則。
54.根據(jù)權(quán)利要求52所述的計算機(jī)程序產(chǎn)品,其中,該指令起使計算機(jī)系統(tǒng)將屬性值與客戶機(jī)公布的檢驗表相比較的作用,每個檢驗表指示客戶機(jī)可訪問的屬性。
55.根據(jù)權(quán)利要求51所述的計算機(jī)程序產(chǎn)品,其中,所述對象包括產(chǎn)品。
56.根據(jù)權(quán)利要求51所述的計算機(jī)程序產(chǎn)品,其中,所述對象包括商業(yè)伙伴。
57.根據(jù)權(quán)利要求51所述的計算機(jī)程序產(chǎn)品,其中,該指令起使服務(wù)器利用包括以可擴(kuò)充標(biāo)記語言編寫的代碼的消息與客戶機(jī)通信的作用。
全文摘要
動態(tài)訪問存儲在服務(wù)器維護(hù)的數(shù)據(jù)庫中的數(shù)據(jù)??蛻魴C(jī)將請求發(fā)送到服務(wù)器,以訪問存儲在數(shù)據(jù)庫中的數(shù)據(jù)。從數(shù)據(jù)庫中檢索第一組數(shù)據(jù),和根據(jù)客戶機(jī)定義的一組映射規(guī)則,將第一組數(shù)據(jù)映射成第二組數(shù)據(jù)。然后,客戶機(jī)接收第二組數(shù)據(jù)。
文檔編號G06F9/00GK1695141SQ03824686
公開日2005年11月9日 申請日期2003年9月3日 優(yōu)先權(quán)日2002年9月3日
發(fā)明者霍爾格·戈克爾, 沃爾夫?qū)た査鞣? 托馬斯·沃格特 申請人:Sap股份公司