遠(yuǎn)程數(shù)據(jù)庫訪問(數(shù)據(jù)庫)
時(shí)間:2022-12-08 06:30:01 | 來源:信息時(shí)代
時(shí)間:2022-12-08 06:30:01 來源:信息時(shí)代
遠(yuǎn)程數(shù)據(jù)庫訪問 : 為支持?jǐn)?shù)據(jù)庫在網(wǎng)絡(luò)環(huán)境中的應(yīng)用,實(shí)現(xiàn)互連、互操作的一項(xiàng)重要技術(shù)標(biāo)準(zhǔn)。
20世紀(jì)90年代網(wǎng)絡(luò)技術(shù)廣泛應(yīng)用,數(shù)據(jù)庫在網(wǎng)絡(luò)環(huán)境的訪問、互操作已成為應(yīng)用的迫切需求。1995年由ISO提出制訂了 ISO/IEC 9579 Information Technology—Open Systems Interconnection—Remote Database Access標(biāo)準(zhǔn)。它對應(yīng)的我國標(biāo)準(zhǔn)是GB/T17533—1998信息技術(shù)——開放系統(tǒng)互連——遠(yuǎn)程數(shù)據(jù)庫訪問。
RDA標(biāo)準(zhǔn)是針對“開放系統(tǒng)互連”(OSI)的網(wǎng)絡(luò)環(huán)境制定的,作為OSI應(yīng)用層的一個(gè)特定應(yīng)用服務(wù)元素,規(guī)定了由OSI支持的兩個(gè)開放實(shí)系統(tǒng)間進(jìn)行數(shù)據(jù)庫訪問所需要的系統(tǒng)服務(wù)和通信協(xié)議。
RDA標(biāo)準(zhǔn)分為三部分,第一部分是關(guān)于RDA的類屬模型、服務(wù)與協(xié)議,規(guī)定通用的RDA類屬標(biāo)準(zhǔn)。第二部分是RDA的SQL專門化標(biāo)準(zhǔn),專門為用SQL語言的數(shù)據(jù)庫規(guī)定實(shí)現(xiàn)數(shù)據(jù)庫之間的訪問規(guī)范,讓RDA類屬標(biāo)準(zhǔn)規(guī)定的內(nèi)容完全與SQL數(shù)據(jù)庫結(jié)合,使標(biāo)準(zhǔn)的實(shí)施更加具體明確。第三部分是SQL專門化協(xié)議實(shí)現(xiàn)一致性敘述(PICS)形式的標(biāo)準(zhǔn),是對RDA一致性要求更詳細(xì)的表述。
RDA標(biāo)準(zhǔn)把在開放系統(tǒng)環(huán)境中一個(gè)分布的開放系統(tǒng)具有數(shù)據(jù)庫功能的設(shè)施稱為數(shù)據(jù)庫服務(wù)器,它提供數(shù)據(jù)庫的存儲(chǔ)設(shè)施,并對其他開放系統(tǒng)(稱為客戶)提供數(shù)據(jù)庫處理服務(wù)。標(biāo)準(zhǔn)規(guī)定的通信服務(wù)和協(xié)議支持客戶訪問數(shù)據(jù)庫服務(wù)的能力。
1. RDA服務(wù)模型
RDA服務(wù)模型如圖1所示。
圖1 RDA模型
圖中,RDA客戶和RDA服務(wù)器是RDA通信服務(wù)的用戶。RDA通信服務(wù)在RDA客戶和RDA服務(wù)器之間提供合作。RDA客戶是初始RDA對話并請求由RDA服務(wù)執(zhí)行RDA操作的用戶。RDA服務(wù)器是向RDA客戶提供數(shù)據(jù)庫服務(wù)的用戶。RDA客戶和RDA通信服務(wù)之間的界限稱為RDA客戶接口,而RDA服務(wù)器和RDA通信服務(wù)之間的界限稱為RDA服務(wù)器接口。
在這個(gè)模型中的RDA服務(wù)器位置就是數(shù)據(jù)庫服務(wù)器。數(shù)據(jù)庫服務(wù)器在通信服務(wù)協(xié)議的支持下,由建立的應(yīng)用聯(lián)系的語境,實(shí)現(xiàn)RDA的對話。
數(shù)據(jù)庫服務(wù)器提供數(shù)據(jù)資源的管理。數(shù)據(jù)資源是命名的關(guān)于數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)和(或)支持功能的集合。數(shù)據(jù)庫服務(wù)器的處理是在一個(gè)RDA對話中,由RDA事務(wù)執(zhí)行數(shù)據(jù)庫語言命令,完成RDA的操作。
RDA通信服務(wù)是在OSI應(yīng)用層實(shí)現(xiàn),它需要應(yīng)用層及其以下各層提供的協(xié)議和服務(wù)來支持,完成RDA客戶和RDA服務(wù)器之間的交互。通信服務(wù)管理RDA對話、事務(wù)及對話的失敗和恢復(fù)等。
RDA對話只能在已建立應(yīng)用聯(lián)系的語境中存在如果聯(lián)系(正?;蚍钦?釋放,RDA對話也將不復(fù)存在。因此,RDA對話的狀態(tài)可以認(rèn)為是在已建立的“聯(lián)系”的狀態(tài)中存在。對話狀態(tài)和事務(wù)狀態(tài)如圖2所示。
圖2 RDA對話狀態(tài)圖
RDA對話只能處于下述兩個(gè)對話狀態(tài)之一:
(1) 非活動(dòng)(inactive)狀態(tài): 客戶與服務(wù)器之間不存在RDA對話;
(2) 活動(dòng)(active)狀態(tài): 客戶與服務(wù)器之間存在一個(gè)已建立的RDA對話。
RDA對話的活動(dòng)狀態(tài)能進(jìn)一步細(xì)分為三個(gè)事務(wù)狀態(tài)如下:
(1) 事務(wù)未打開(transaction not open): 沒有RDA事務(wù)在進(jìn)行。
(2) 事務(wù)打開(transaction open): 有一個(gè)RDA事務(wù)在進(jìn)行,但它不是在結(jié)束處理過程。
(3) 事務(wù)結(jié)束(transaction terminating):存在一個(gè)在進(jìn)行中的RDA事務(wù),但它為了向數(shù)據(jù)庫的狀態(tài)交付或回滾,在結(jié)束它的處理。
RDA應(yīng)用語境定義應(yīng)用層通信能力的單個(gè)聯(lián)系對象。它是模型化的一些相異的應(yīng)用服務(wù)元素(ASE)和單個(gè)聯(lián)系控制功能(SACF)。每個(gè)ASE的規(guī)范定義支持通信方面的服務(wù)和協(xié)議。SACF的規(guī)范定義ASE與應(yīng)用一起使用的規(guī)則。
RDA類屬應(yīng)用語境有RDA基本應(yīng)用語境和RDA TP(事務(wù)處理)應(yīng)用語境?;緫?yīng)用語境是通過在對話之前建立聯(lián)系來支持RDA對話的。TP應(yīng)用語境由RDA、TP、ACSE(聯(lián)系控制服務(wù)元素)以及可選擇的CCR(交付、并發(fā)和恢復(fù))組成,由TP服務(wù)提供兩階段交付的事務(wù)管理。
2. RDA服務(wù)
類屬RDA服務(wù)的定義是作為定義專門化RDA服務(wù)的一個(gè)模板。RDA服務(wù)的定義形式如下:
(1)服務(wù)按照它們支持客戶請求的功能區(qū)分為:管理RDA對話、管理RDA事務(wù)、控制未完成的操作、控制數(shù)據(jù)資源的可用性、定義和調(diào)用服務(wù)器的數(shù)據(jù)庫操作。
(2)在每個(gè)組中的服務(wù)按照它們能獨(dú)立地用于其他功能單元而再區(qū)分為一些功能單元。
(3)在每個(gè)功能單元中服務(wù)的描述包括對每個(gè)服務(wù)的服務(wù)原語。
(4)在組中的每個(gè)服務(wù)的定義,由服務(wù)的目的、展示服務(wù)參數(shù)的表(列出請求、結(jié)果響應(yīng)和錯(cuò)誤響應(yīng)的參數(shù))、對請求、結(jié)果響應(yīng)和錯(cuò)誤響應(yīng)參數(shù)的描述等內(nèi)容組成。
每個(gè)服務(wù)由服務(wù)原語的集模型化,成為RDA服務(wù)接口上的一些事件。典型的單個(gè)服務(wù)由RDA客戶接口上的請求,并伴隨著在RDA服務(wù)器接口上的指示所組成。通過RDA服務(wù)器對它處理,稍后在RDA服務(wù)器接口產(chǎn)生結(jié)果響應(yīng)或錯(cuò)誤響應(yīng),并在RDA客戶接口產(chǎn)生結(jié)果證實(shí)或錯(cuò)誤證實(shí)。
3. RDA協(xié)議
RDA協(xié)議規(guī)定了服務(wù)器執(zhí)行規(guī)則、協(xié)議機(jī)的狀態(tài)表、協(xié)議數(shù)據(jù)單元及一致性。
服務(wù)器執(zhí)行規(guī)則定義RDA服務(wù)器響應(yīng)RDA客戶請求的一些約束,這些請求是在服務(wù)器開放系統(tǒng)中按照RDA服務(wù)器接口上指示的事件通信,這些事件跟結(jié)果和錯(cuò)誤響應(yīng)一起,組成RDA服務(wù)器接口。
在服務(wù)器中,從客戶接受的請求,被模型化通過服務(wù)器改進(jìn)成一些操作實(shí)體,直到它們在RDA服務(wù)器接口上顯示結(jié)果或錯(cuò)誤響應(yīng)原語事件。
操作實(shí)體的語義和它們通過數(shù)據(jù)服務(wù)器的處理是通過服務(wù)器的模型狀態(tài)和通過服務(wù)器管理的操作事件的改進(jìn)規(guī)則定義的。
服務(wù)器的狀態(tài)有兩個(gè)主要組成部分:
(1)對話狀態(tài):是把一次對話中與單個(gè)客戶的交互模型化。
(2)數(shù)據(jù)庫狀態(tài):是把所有數(shù)據(jù)庫用戶之間共享的持久(存儲(chǔ)的)數(shù)據(jù)模型化。
這些狀態(tài)通過RDA專門化定義的數(shù)據(jù)庫操作去改變。服務(wù)器執(zhí)行規(guī)則描述了由服務(wù)器操作執(zhí)行所允許的動(dòng)作,包括: 當(dāng)產(chǎn)生錯(cuò)誤時(shí)定義適應(yīng)的條件: 描述由操作實(shí)體執(zhí)行引起的改變對話狀態(tài); 當(dāng)產(chǎn)生結(jié)果時(shí)定義適應(yīng)的條件。
狀態(tài)表定義兩個(gè)RDA協(xié)議機(jī)(PM)狀態(tài)表,一是對RDA客戶的,另一個(gè)是對RDA服務(wù)器的。狀態(tài)表指明PM當(dāng)前狀態(tài)、進(jìn)入出現(xiàn)的事件和引起退出動(dòng)作以及RDA PM狀態(tài)之間的相互聯(lián)系。
RDA PM組成部分及RDA PM與RDA模型的關(guān)系如圖3所示。
圖3 RDA PM與RDA模型關(guān)系圖
圖中RDA服務(wù)全部由RDA客戶開始,并有請求、指示、響應(yīng)和證實(shí)組成的結(jié)構(gòu)。在對等的RDA客戶和服務(wù)器協(xié)議機(jī)之間,通過RDA初始化應(yīng)用協(xié)議數(shù)據(jù)單元(RI APDU)和RDA交付應(yīng)用協(xié)議數(shù)據(jù)單元(RC APDU)實(shí)現(xiàn)通信服務(wù)。類屬RDA的APDU結(jié)構(gòu)和編碼是作為RDA專門化APDU的模板,用標(biāo)準(zhǔn)的抽象語法表記法(ASN.1)建模。
4.應(yīng)用語境
RDA應(yīng)用語境包括基本應(yīng)用語境和事務(wù)處理應(yīng)用語境。
基本應(yīng)用語境是數(shù)據(jù)庫事務(wù)使用ACSE的聯(lián)系管理設(shè)施和RDA的遠(yuǎn)程數(shù)據(jù)庫訪問設(shè)施,這些事務(wù)通過單個(gè)遠(yuǎn)程開放系統(tǒng)訪問數(shù)據(jù)。ACSE服務(wù)定義創(chuàng)建聯(lián)系和正常與非正常釋放聯(lián)系的操作。RDA服務(wù)定義包括對話管理服務(wù)和使用一段交付的事務(wù)管理服務(wù)的遠(yuǎn)程數(shù)據(jù)庫訪問的操作。RDA基本應(yīng)用語境在ACSE服務(wù)的使用方面設(shè)置了附加的約束。
RDA事務(wù)處理應(yīng)用語境是對跨一個(gè)以上開放系統(tǒng)的數(shù)據(jù)庫事務(wù),使用事務(wù)處理(TP)涉及控制服務(wù)、資源管理服務(wù)和數(shù)據(jù)庫語言服務(wù)的對話管理及事務(wù)管理的設(shè)施。
在RDA TP應(yīng)用語境中,RDA客戶和RDA服務(wù)器是事務(wù)處理服務(wù)用戶請求(TP SUI)的一部分。TP服務(wù)提供用作所有本地和遠(yuǎn)程資源全部協(xié)調(diào)的事務(wù)管理設(shè)施,以高度可靠的方法,成功或不成功地終止分布的事務(wù),使所有資源達(dá)到一致的狀態(tài)。TP服務(wù)也包括隨著通信或系統(tǒng)故障而引起對所有資源重創(chuàng)一致性狀態(tài)的適合的恢復(fù)機(jī)制。TP服務(wù)包括為確保分布事務(wù)的原子性、一致性、隔離和持久的特征而必需協(xié)調(diào)遠(yuǎn)程服務(wù)的預(yù)防措施。TP也提供創(chuàng)建、維護(hù)和終止對話的對話管理設(shè)施。RDA TP應(yīng)用語境在TP和RDA兩者上也設(shè)置附加的約束。
5. RDA專門化
RDA專門化是為SQL專門定義的RDA服務(wù),也是對RDA類屬標(biāo)準(zhǔn)的應(yīng)用和補(bǔ)充。RDA類屬標(biāo)準(zhǔn)包含一個(gè)ASN.1的模塊模板,根據(jù)這個(gè)模板,可以構(gòu)造出一個(gè)專門的RDA服務(wù)的ASN.1模塊,其中類屬標(biāo)準(zhǔn)未定義參數(shù)表的類型,在專門化會(huì)被賦予適當(dāng)?shù)念愋?同時(shí)也定義它們的含義和格式(包括可允許的值)。
RDA專門化也可以對每個(gè)服務(wù)的使用定義附加約束,并與RDA類屬標(biāo)準(zhǔn)中規(guī)定的全部規(guī)則同時(shí)有效。
RDA只制訂了SQL專門化標(biāo)準(zhǔn),這是對以SQL語言為代表的關(guān)系數(shù)據(jù)庫按照具體的功能設(shè)施規(guī)定專門的服務(wù)和協(xié)議。其中的RDA服務(wù)器稱為SQL服務(wù)器,RDA類屬數(shù)據(jù)資源稱為SQL數(shù)據(jù)資源。SQL專門化支持RDA客戶和SQL服務(wù)器之間的對話,支持RDA服務(wù)器規(guī)定的所有服務(wù)功能,它是實(shí)現(xiàn)SQL數(shù)據(jù)庫聯(lián)網(wǎng)操作的具體技術(shù)依據(jù)。