專(zhuān)利名稱(chēng):一種訪問(wèn)數(shù)據(jù)庫(kù)的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件系統(tǒng)實(shí)現(xiàn)中的一種通用的訪問(wèn)數(shù)據(jù)庫(kù)的方法,具體地說(shuō),是一種應(yīng)用軟件系統(tǒng)需要使用數(shù)據(jù)庫(kù)時(shí)不依賴(lài)于特定數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS的方法。
在大型應(yīng)用軟件系統(tǒng)中一般需要使用數(shù)據(jù)庫(kù)來(lái)存放或操作數(shù)據(jù),各種數(shù)據(jù)庫(kù)系統(tǒng)提供不同的訪問(wèn)方式和其他特性(比如數(shù)據(jù)庫(kù)的容量估計(jì)、在線(xiàn)備份)。在現(xiàn)有技術(shù)中,訪問(wèn)數(shù)據(jù)庫(kù)的方法是直接采用各種與DBMS相關(guān)的API接口,或使用一些通用的數(shù)據(jù)庫(kù)接口。當(dāng)改變DBMS系統(tǒng)時(shí),這兩種情況都需要對(duì)應(yīng)用軟件系統(tǒng)進(jìn)行修改。使用API接口的缺點(diǎn)一是在改變DBMS時(shí),移植代價(jià)較高,二是數(shù)據(jù)庫(kù)相關(guān)操作分別有不同的人員開(kāi)發(fā),所有開(kāi)發(fā)人員必須完全了解數(shù)據(jù)庫(kù)處理的各個(gè)實(shí)現(xiàn)細(xì)節(jié),包括表結(jié)構(gòu),表與表之間的關(guān)系等,導(dǎo)致產(chǎn)品質(zhì)量不易控制,這樣容易重復(fù)勞動(dòng),且成本較高;使用通用數(shù)據(jù)庫(kù)接口雖可使移植代價(jià)稍有降低,其他方面并無(wú)改善,且嚴(yán)重影響數(shù)據(jù)庫(kù)的使用效率。
本發(fā)明的目的是提供一種在不同DBMS系統(tǒng)問(wèn)移植時(shí)費(fèi)用較低且軟件系統(tǒng)整體開(kāi)發(fā)成本較低的數(shù)據(jù)庫(kù)訪問(wèn)方法及其裝置。
為實(shí)現(xiàn)上述目的,本發(fā)明首先提出的一種訪問(wèn)數(shù)據(jù)庫(kù)的裝置,其核心是在現(xiàn)有技術(shù)中的應(yīng)用系統(tǒng)和DBMS之間增加一個(gè)中間件進(jìn)行隔離,應(yīng)用系統(tǒng)采用數(shù)據(jù)服務(wù)的方式訪問(wèn)所述中間件,由所述中間件進(jìn)行數(shù)據(jù)服務(wù)的轉(zhuǎn)換工作,并且實(shí)際完成數(shù)據(jù)庫(kù)的訪問(wèn),將獲得的數(shù)據(jù)進(jìn)行整理,形成通用形式的結(jié)果返回給應(yīng)用系統(tǒng)。
本發(fā)明提出的一種數(shù)據(jù)庫(kù)訪問(wèn)方法,包括以下步驟1)判斷應(yīng)用系統(tǒng)所要求的數(shù)據(jù)訪問(wèn)是否為事務(wù)性操作,如果是,進(jìn)入步驟2)如果不是,則直接進(jìn)入步驟3);2)應(yīng)用系統(tǒng)向中間件發(fā)出開(kāi)始一個(gè)事務(wù)命令,中間件向應(yīng)用系統(tǒng)返回一個(gè)事務(wù)標(biāo)識(shí);3)應(yīng)用系統(tǒng)向中間件發(fā)出一個(gè)服務(wù)請(qǐng)求;4)中間件對(duì)服務(wù)請(qǐng)求進(jìn)行翻譯,并對(duì)數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS進(jìn)行操作,獲得結(jié)果;5)如果結(jié)果只有一條記錄,中間件將結(jié)果組織成標(biāo)準(zhǔn)形式返回給應(yīng)用系統(tǒng),進(jìn)入步驟8);6)結(jié)果有多條記錄,中間件將結(jié)果寫(xiě)入結(jié)果緩沖區(qū),并將緩沖區(qū)標(biāo)識(shí)返回給應(yīng)用系統(tǒng),由應(yīng)用系統(tǒng)進(jìn)行相應(yīng)操作;7)應(yīng)用系統(tǒng)向中間件發(fā)出釋放結(jié)果緩沖區(qū)的命令;8)如果不是事務(wù)型操作則成功完成;
9)事務(wù)型操作,如果服務(wù)請(qǐng)求失敗,應(yīng)用系統(tǒng)向中間件取消整個(gè)事務(wù),退出處理過(guò)程;10)如果繼續(xù)服務(wù)請(qǐng)求,則重復(fù)步驟3,直至完成整個(gè)事務(wù);11)所有服務(wù)都成功完成,應(yīng)用系統(tǒng)向中間件確認(rèn)整個(gè)事務(wù)完成。
如上所述的一種數(shù)據(jù)庫(kù)訪問(wèn)方法,其特征在于,所述步驟6)中由應(yīng)用系統(tǒng)進(jìn)行相應(yīng)操作包括1)用系統(tǒng)向中間件發(fā)出取結(jié)果命令;2)中間件向應(yīng)用系統(tǒng)返回一條結(jié)果記錄;3)重復(fù)步驟2),直至取完數(shù)據(jù)或應(yīng)用系統(tǒng)停止取數(shù)據(jù)。
下面結(jié)合附圖和實(shí)施例進(jìn)一步詳細(xì)說(shuō)明本發(fā)明。
圖1是本發(fā)明所述方法的流程2是本發(fā)明所述裝置的結(jié)構(gòu)示意圖為了更好地理解本發(fā)明,有必要先解釋一下相關(guān)概念,服務(wù)的概念被理解為應(yīng)用系統(tǒng)希望對(duì)數(shù)據(jù)庫(kù)進(jìn)行某種操作,以獲得預(yù)想結(jié)果的一個(gè)表述,用一個(gè)三元組來(lái)表示{名稱(chēng);輸入;輸出}。應(yīng)用系統(tǒng)向中間件發(fā)出服務(wù)請(qǐng)求,中間件滿(mǎn)足應(yīng)用系統(tǒng)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)要求。
其中,名稱(chēng)決定中間件進(jìn)行什么樣的服務(wù)操作。
輸入表示輸入到中間件的參數(shù),其數(shù)量、類(lèi)型和格式取決于服務(wù)名稱(chēng)。
輸出表示應(yīng)用系統(tǒng)從中間件獲得的輸出數(shù)據(jù),其數(shù)量、類(lèi)型和格式取決于服務(wù)名稱(chēng)。
服務(wù)與具體的數(shù)據(jù)庫(kù)結(jié)構(gòu)及操作方法無(wú)關(guān),只表示應(yīng)用系統(tǒng)希望存儲(chǔ)、獲取或刪除什么信息。具體的數(shù)據(jù)庫(kù)操作由中間件處理。服務(wù)模型只與應(yīng)用系統(tǒng)對(duì)數(shù)據(jù)存儲(chǔ)和獲取的具體要求有關(guān)。
以下是一個(gè)例子應(yīng)用系統(tǒng)需要將采集到的數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù),數(shù)據(jù)有兩個(gè){A,B},同時(shí)要記錄采集到數(shù)據(jù)的時(shí)間。在需要時(shí)按時(shí)間取出相應(yīng)的數(shù)據(jù)。為了實(shí)現(xiàn)上述功能,需要兩個(gè)服務(wù)。
一個(gè)服務(wù)是寫(xiě)入數(shù)據(jù),其名稱(chēng)為Write,輸入?yún)?shù)為A,B,time,沒(méi)有輸出,其表達(dá)形式為{Write;A,B,time;}另一個(gè)服務(wù)是讀取數(shù)據(jù),其名稱(chēng)為Read,輸入?yún)?shù)為time,輸出A,B,其表達(dá)形式為{Read;time;A,B}。
這兩個(gè)服務(wù)都沒(méi)有指明如何具體地操作數(shù)據(jù)庫(kù),其執(zhí)行過(guò)程由中間件完成,在開(kāi)發(fā)過(guò)程中,只需在數(shù)據(jù)庫(kù)中建立一張表存儲(chǔ)這些數(shù)據(jù),然后將完成上述兩個(gè)服務(wù)所對(duì)應(yīng)的操作數(shù)據(jù)庫(kù)的方法,添加到中間件中去。應(yīng)用系統(tǒng)僅對(duì)中間件提出上述服務(wù)要求,就可以得到希望的結(jié)果,且不必知曉其具體的存儲(chǔ)方式和操作過(guò)程。
在數(shù)據(jù)庫(kù)的實(shí)際應(yīng)用中,還有關(guān)于事務(wù)操作的概念,它是指一個(gè)事務(wù)過(guò)程中對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行多次修改的一系列操作必須全部按次序完成,如果有一個(gè)操作失敗則屬于本事務(wù)過(guò)程全部操作無(wú)效,對(duì)原有數(shù)據(jù)沒(méi)有影響。因此在使用本方法訪問(wèn)數(shù)據(jù)庫(kù)時(shí)需要提供事務(wù)控制的能力,可以使多個(gè)服務(wù)構(gòu)成一個(gè)事務(wù),便于實(shí)現(xiàn)一些應(yīng)用。在沒(méi)有顯式的指明事務(wù)時(shí),中間件應(yīng)該將每個(gè)單獨(dú)的服務(wù)理解為一個(gè)事務(wù)的操作。
數(shù)據(jù)庫(kù)操作的返回信息一般分為兩種,一種形式為一個(gè)或多個(gè)數(shù)據(jù),構(gòu)成一條記錄,另一種是返回一組記錄。在返回一個(gè)記錄時(shí),中間件將其按標(biāo)準(zhǔn)格式排列好直接返回給應(yīng)用。在返回多條記錄時(shí),中間件將所有數(shù)據(jù)記錄在結(jié)果緩沖區(qū)中,并給應(yīng)用一個(gè)緩沖區(qū)標(biāo)識(shí),應(yīng)用通過(guò)該標(biāo)識(shí)逐條獲取數(shù)據(jù)。
按照本發(fā)明所述的方法,當(dāng)應(yīng)用系統(tǒng)需要在數(shù)據(jù)庫(kù)中存儲(chǔ)某些信息或從數(shù)據(jù)庫(kù)中獲得某些信息時(shí),就按圖1顯示的具體的實(shí)現(xiàn)流程所描述的方法向中間件裝置申請(qǐng)服務(wù),完成需要的操作。
應(yīng)用向中間件發(fā)出開(kāi)始一個(gè)事務(wù)命令(當(dāng)多個(gè)服務(wù)構(gòu)成一個(gè)事務(wù)時(shí)),中間件向應(yīng)用返回一個(gè)事務(wù)標(biāo)識(shí)(當(dāng)多個(gè)服務(wù)構(gòu)成一個(gè)事務(wù)時(shí)),應(yīng)用向中間件發(fā)出一個(gè)服務(wù)請(qǐng)求,中間件對(duì)服務(wù)請(qǐng)求進(jìn)行翻譯,并對(duì)DBMS進(jìn)行操作,所獲結(jié)果只有一條記錄時(shí),則中間件將結(jié)果組織成標(biāo)準(zhǔn)形式返回給應(yīng)用,當(dāng)結(jié)果有多條記錄時(shí),中間件將結(jié)果寫(xiě)入結(jié)果緩沖區(qū),并將緩沖區(qū)標(biāo)識(shí)返回給應(yīng)用系統(tǒng);如果存在繼續(xù)服務(wù)請(qǐng)求,則有應(yīng)用系統(tǒng)繼續(xù)向中間件發(fā)出服務(wù)請(qǐng)求,直至沒(méi)有繼續(xù)服務(wù)請(qǐng)求,則應(yīng)用系統(tǒng)向中間件取消整個(gè)事務(wù),退出處理過(guò)程(當(dāng)多個(gè)服務(wù)構(gòu)成一個(gè)事務(wù)時(shí))。
例如當(dāng)結(jié)果有多條記錄時(shí),應(yīng)用系統(tǒng)需要在數(shù)據(jù)庫(kù)中獲得某些信息,是這樣工作的應(yīng)用系統(tǒng)向中間件發(fā)出取結(jié)果命令,中間件向應(yīng)用返回一條結(jié)果記錄,直至取完數(shù)據(jù)或應(yīng)用停止取數(shù)據(jù),應(yīng)用系統(tǒng)向中間件發(fā)出釋放緩沖區(qū)的命令,不斷重復(fù),直至完成整個(gè)事務(wù),所有服務(wù)都成功完成,應(yīng)用向中間件確認(rèn)整個(gè)事務(wù)完成。
本發(fā)明中,應(yīng)用系統(tǒng)使用服務(wù)的界面形式包括但不限于通用或?qū)S玫腁PI形式的接口,經(jīng)二次封裝的類(lèi)形式的接口。
本發(fā)明適用于現(xiàn)有的所有操作系統(tǒng)和DBMS系統(tǒng),只是在各種不同操作系統(tǒng)下和DBMS系統(tǒng)下中間件的實(shí)現(xiàn)方式略有不同而已?,F(xiàn)以適用環(huán)境為SUNSolarise*7操作系統(tǒng)和Oracle**8.0 DBMS的中間件為例,說(shuō)明圖2給出的本發(fā)明結(jié)構(gòu)原理。
本發(fā)明裝置是隔離在應(yīng)用系統(tǒng)和數(shù)據(jù)庫(kù)之間的中間件系統(tǒng),中間件系統(tǒng)向應(yīng)用系統(tǒng)提供數(shù)據(jù)服務(wù),以便代替應(yīng)用系統(tǒng)直接訪問(wèn)數(shù)據(jù)庫(kù)的傳統(tǒng)做法。這樣在需要改變DBMS系統(tǒng)時(shí)不用對(duì)應(yīng)用系統(tǒng)進(jìn)行修改,增強(qiáng)系統(tǒng)的可移植性。
如圖2所示,所述中間件位于應(yīng)用模塊和數(shù)據(jù)庫(kù)之間,應(yīng)用模塊使用API形式的接口和中間件模塊通訊,中間件的構(gòu)成模塊分為服務(wù)模塊、調(diào)度模塊、處理模塊、結(jié)果記錄查詢(xún)模塊和超時(shí)檢測(cè)模塊五個(gè)模塊。分成五個(gè)模塊的原因是為了實(shí)現(xiàn)并發(fā)操作、提高系統(tǒng)的運(yùn)行效率和穩(wěn)定性。實(shí)際上將這些模塊的所有功能完全組合在一起也是可以的。
所述服務(wù)模塊用于接收各種命令,并將其分發(fā)給調(diào)度模塊和查詢(xún)模塊。
所述調(diào)度模塊用于管理各處理模塊的工作狀態(tài)并根據(jù)其空閑情況將具體的操作命令轉(zhuǎn)交處理模塊執(zhí)行。
所述處理模塊用于分析操作命令并將其轉(zhuǎn)化為實(shí)際的數(shù)據(jù)庫(kù)操作、執(zhí)行這些操作并將結(jié)果寫(xiě)入結(jié)果緩沖區(qū)或直接返回給應(yīng)用系統(tǒng)。處理模塊可以有多個(gè),以滿(mǎn)足并發(fā)的訪問(wèn)數(shù)據(jù)庫(kù)的需求。
所述查詢(xún)模塊通過(guò)服務(wù)模塊提供的來(lái)自于應(yīng)用系統(tǒng)的查詢(xún)請(qǐng)求將指定的結(jié)果緩沖區(qū)中的記錄返回給應(yīng)用系統(tǒng)。
所述超時(shí)檢測(cè)模塊用于檢查各操作、結(jié)果緩沖和處理模塊的狀態(tài)、通過(guò)刪除過(guò)時(shí)的操作請(qǐng)求、終止超時(shí)的處理、釋放超時(shí)存在的結(jié)果緩沖以保證系統(tǒng)的強(qiáng)壯性。
應(yīng)用系統(tǒng)和中間件系統(tǒng)之間交互的信息包括開(kāi)始事務(wù)命令,應(yīng)用系統(tǒng)通知中間件開(kāi)始一個(gè)事務(wù)。中間件將該事務(wù)的事務(wù)號(hào)返回給應(yīng)用系統(tǒng)。
服務(wù)請(qǐng)求,應(yīng)用系統(tǒng)通知中間件按指定的參數(shù)進(jìn)行指定的操作,同時(shí)指明本服務(wù)所屬的事務(wù)號(hào),中間件返回操作結(jié)果和服務(wù)操作是否成功的信息,同時(shí)如果是一個(gè)返回多條記錄的服務(wù)則返回緩沖區(qū)標(biāo)識(shí)。
獲得緩沖區(qū)內(nèi)數(shù)據(jù)的命令,應(yīng)用系統(tǒng)通知中間件返回緩沖區(qū)中的一條數(shù)據(jù),中間件將數(shù)據(jù)排列好后返回給應(yīng)用系統(tǒng),并將指針下移。應(yīng)用系統(tǒng)可以重復(fù)使用本命令逐條獲取全部數(shù)據(jù)。
確認(rèn)事務(wù)命令,應(yīng)用系統(tǒng)確認(rèn)本事務(wù)的所有操作都成功完成,修改數(shù)據(jù)庫(kù)的數(shù)據(jù)。
取消事務(wù)命令,應(yīng)用系統(tǒng)取消本事務(wù)操作,數(shù)據(jù)庫(kù)中的數(shù)據(jù)還原為開(kāi)始操作時(shí)的狀態(tài)。
應(yīng)當(dāng)指出的是,本發(fā)明并不是在指定環(huán)境下才能實(shí)現(xiàn),上述例子不應(yīng)理解為對(duì)本發(fā)明的某種限制。
由此可見(jiàn),使用本發(fā)明后,應(yīng)用系統(tǒng)的實(shí)現(xiàn)中并不需要涉及數(shù)據(jù)庫(kù)操作的實(shí)現(xiàn)細(xì)節(jié),所有數(shù)據(jù)庫(kù)部分的操作完全由中間件完成,從而實(shí)現(xiàn)應(yīng)用系統(tǒng)和DBMS之間的隔離。在需要進(jìn)行DBMS的移植時(shí)只需要修改中間件部分,大大減小移植后的測(cè)試范圍(限制在中間件范圍內(nèi)),從而降低移植費(fèi)用,加快移植速度。
在應(yīng)用系統(tǒng)的開(kāi)發(fā)階段,使用上述方法可以將數(shù)據(jù)庫(kù)操作部分的實(shí)現(xiàn)細(xì)節(jié)封裝在中間件系統(tǒng)中,應(yīng)用系統(tǒng)只需要提出數(shù)據(jù)字典和操作要求,通過(guò)對(duì)中間件進(jìn)行優(yōu)化和開(kāi)發(fā),可以生成具有較高穩(wěn)定性和較高效率的代碼。應(yīng)用系統(tǒng)在開(kāi)發(fā)過(guò)程中,僅需要對(duì)數(shù)據(jù)字典和服務(wù)的定義及定義修改,從而避免了由于某一應(yīng)用系統(tǒng)直接修改數(shù)據(jù)庫(kù)結(jié)構(gòu)時(shí)未考慮其他應(yīng)用系統(tǒng)對(duì)數(shù)據(jù)庫(kù)的使用,從而導(dǎo)致許多其他應(yīng)用系統(tǒng)不能正常運(yùn)行的混亂情況,提高了開(kāi)發(fā)工作效率。
權(quán)利要求
1一種訪問(wèn)數(shù)據(jù)庫(kù)的裝置,包括應(yīng)用系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS,其特征在于,還包括一個(gè)位于應(yīng)用系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS之間的中間件,所述應(yīng)用系統(tǒng)采用數(shù)據(jù)服務(wù)的方式訪問(wèn)所述中間件,由所述中間件進(jìn)行數(shù)據(jù)服務(wù)的轉(zhuǎn)換工作,并且實(shí)際完成數(shù)據(jù)庫(kù)的訪問(wèn),將獲得的數(shù)據(jù)進(jìn)行整理,形成通用形式的結(jié)果返回給應(yīng)用系統(tǒng)。
2如權(quán)利要求1所述的一種訪問(wèn)數(shù)據(jù)庫(kù)的裝置,其特征在于,所述中間件包括服務(wù)模塊、調(diào)度模塊、處理模塊、結(jié)果記錄查詢(xún)模塊和超時(shí)檢測(cè)模塊;所述服務(wù)模塊用于接收各種命令,并將其分發(fā)給調(diào)度模塊和查詢(xún)模塊;所述調(diào)度模塊用于管理各處理模塊的工作狀態(tài)并根據(jù)其空閑情況將具體的操作命令轉(zhuǎn)交處理模塊執(zhí)行;所述處理模塊用于分析操作命令并將其轉(zhuǎn)化為實(shí)際的數(shù)據(jù)庫(kù)操作、執(zhí)行這些操作并將結(jié)果寫(xiě)入結(jié)果緩沖區(qū)或直接返回給應(yīng)用系統(tǒng)。處理模塊以有多個(gè),以滿(mǎn)足并發(fā)的訪問(wèn)數(shù)據(jù)庫(kù)的需求;所述查詢(xún)模塊通過(guò)服務(wù)模塊提供的來(lái)自于應(yīng)用系統(tǒng)的查詢(xún)請(qǐng)求將指定的結(jié)果緩沖區(qū)中的記錄返回給應(yīng)用系統(tǒng);所述超時(shí)檢測(cè)模塊用于檢查各操作、結(jié)果緩沖和處理模塊的狀態(tài)、通過(guò)刪除過(guò)時(shí)的操作請(qǐng)求、終止超時(shí)的處理、釋放超時(shí)存在的結(jié)果緩沖以保證系統(tǒng)的強(qiáng)壯性。
3如權(quán)利要求1或2所述的一種訪問(wèn)數(shù)據(jù)庫(kù)的裝置,其特征在于,應(yīng)用系統(tǒng)使用服務(wù)的界面形式包括通用或?qū)S玫腁PI形式的接口,或經(jīng)二次封裝的類(lèi)形式的接口。
4如權(quán)利要求1所述的一種訪問(wèn)數(shù)據(jù)庫(kù)的裝置,其特征在于,所述服務(wù)模塊、調(diào)度模塊、處理模塊、結(jié)果記錄查詢(xún)模塊和超時(shí)檢測(cè)模塊的所有功能可以組合在一起成為一個(gè)模塊。
5一種數(shù)據(jù)庫(kù)訪問(wèn)方法,包括以下步驟1)判斷應(yīng)用系統(tǒng)所要求的數(shù)據(jù)訪問(wèn)是否為事務(wù)性操作,如果是,進(jìn)入步驟2)如果不是,則直接進(jìn)入步驟3);2)應(yīng)用系統(tǒng)向中間件發(fā)出開(kāi)始一個(gè)事務(wù)命令,中間件向應(yīng)用系統(tǒng)返回一個(gè)事務(wù)標(biāo)識(shí);3)應(yīng)用系統(tǒng)向中間件發(fā)出一個(gè)服務(wù)請(qǐng)求;4)中間件對(duì)服務(wù)請(qǐng)求進(jìn)行翻譯,并對(duì)數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS進(jìn)行操作,獲得結(jié)果;5)如果結(jié)果只有一條記錄,中間件將結(jié)果組織成標(biāo)準(zhǔn)形式返回給應(yīng)用系統(tǒng),進(jìn)入步驟8);6)結(jié)果有多條記錄,中間件將結(jié)果寫(xiě)入結(jié)果緩沖區(qū),并將緩沖區(qū)標(biāo)識(shí)返回給應(yīng)用系統(tǒng),由應(yīng)用系統(tǒng)進(jìn)行相應(yīng)操作;7)應(yīng)用系統(tǒng)向中間件發(fā)出釋放結(jié)果緩沖區(qū)的命令;8)如果不是事務(wù)型操作則成功完成;9)事務(wù)型操作,如果服務(wù)請(qǐng)求失敗,應(yīng)用系統(tǒng)向中間件取消整個(gè)事務(wù),退出處理過(guò)程;10)如果繼續(xù)服務(wù)請(qǐng)求,則重復(fù)步驟3,直至完成整個(gè)事務(wù);11)所有服務(wù)都成功完成,應(yīng)用系統(tǒng)向中間件確認(rèn)整個(gè)事務(wù)完成。
6 如權(quán)利要求5所述的一種數(shù)據(jù)庫(kù)訪問(wèn)方法,其特征在于,所述步驟6)中由應(yīng)用系統(tǒng)進(jìn)行相應(yīng)操作包括1)用系統(tǒng)向中間件發(fā)出取結(jié)果命令;2)中間件向應(yīng)用系統(tǒng)返回一條結(jié)果記錄;3)重復(fù)步驟2),直至取完數(shù)據(jù)或應(yīng)用系統(tǒng)停止取數(shù)據(jù)。
全文摘要
本發(fā)明提出一種訪問(wèn)數(shù)據(jù)庫(kù)的方法和裝置,裝置包括應(yīng)用系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS及位于兩者間的中間件,所述應(yīng)用系統(tǒng)采用數(shù)據(jù)服務(wù)的方式訪問(wèn)所述中間件,由所述中間件進(jìn)行數(shù)據(jù)服務(wù)的轉(zhuǎn)換工作,并且實(shí)際完成數(shù)據(jù)庫(kù)的訪問(wèn),將獲得的數(shù)據(jù)進(jìn)行整理,形成通用形式的結(jié)果返回給應(yīng)用系統(tǒng),所述方法給出了所述中間件的工作過(guò)程,使用本發(fā)明在需要進(jìn)行DBMS的移植時(shí)只需修改中間件部分,大大減小移植后的測(cè)試范圍,從而降低移植費(fèi)用,加快移植速度。
文檔編號(hào)G06F17/30GK1351299SQ00125888
公開(kāi)日2002年5月29日 申請(qǐng)日期2000年10月28日 優(yōu)先權(quán)日2000年10月28日
發(fā)明者董嘉, 張琪 申請(qǐng)人:深圳市中興通訊股份有限公司