為方便數(shù)據(jù)變換而導(dǎo)入系統(tǒng)調(diào)用數(shù)據(jù)的制作方法
【技術(shù)領(lǐng)域】
[0001] 優(yōu)選實施例總體涉及保護(hù)諸如事務(wù)處理環(huán)境的分布式計算環(huán)境中的資源。
【背景技術(shù)】
[0002] 在計算環(huán)境中,"系統(tǒng)調(diào)用"是程序或進(jìn)程通過其請求來自操作系統(tǒng)內(nèi)核的服務(wù)的 機(jī)制。在典型的操作系統(tǒng)(OS)中,如Linux (Linux是林納斯·托瓦茲(Linus Torvalds)在 美國和/或其他國家的注冊商標(biāo))中,操作系統(tǒng)將虛擬存儲器分隔為內(nèi)核空間和用戶空間, 前者被保留用于運行操作系統(tǒng)內(nèi)核、內(nèi)核擴(kuò)展、和設(shè)備驅(qū)動程序,后者是在所有用戶模式的 應(yīng)用程序工作的地方。系統(tǒng)調(diào)用提供在用戶空間中執(zhí)行的程序或進(jìn)程與在內(nèi)核空間中執(zhí)行 的操作系統(tǒng)內(nèi)核之間的接口。
[0003] 出于安全的原因,分析和修改被程序讀或?qū)懙臄?shù)據(jù)可能是有益的。如果需要進(jìn)行 過濾或編輯(或者更一般來說,某種其它變換),則需要截獲流經(jīng)系統(tǒng)的數(shù)據(jù)并對其采取行 動。當(dāng)截獲系統(tǒng)調(diào)用時,可以將這個數(shù)據(jù)發(fā)送出去用于分析,甚至可以根據(jù)預(yù)先設(shè)定的規(guī)則 被修改。當(dāng)需要編輯時,最簡單的方法是在被截獲系統(tǒng)調(diào)用到實際系統(tǒng)調(diào)用的一對一(1:1) 映射內(nèi)實行編輯。有幾款現(xiàn)有的商業(yè)產(chǎn)品執(zhí)行此功能。
[0004] 然而,常??赡芸缍鄠€系統(tǒng)調(diào)用拆分單一事務(wù)的數(shù)據(jù)。例如,當(dāng)為了對通過操作系 統(tǒng)發(fā)送和接收的數(shù)據(jù)實行變換而截獲系統(tǒng)調(diào)用時,不能保證被截獲的數(shù)據(jù)的量包含整個邏 輯包(packet)。例如,考察一個正在接收TCP包的MySQL數(shù)據(jù)庫。該包分兩部分被接收,首 先被接收的是包頭(header),然后是包體(body)。通常,包頭首先被接收,并指示后續(xù)包中 的字節(jié)數(shù)?,F(xiàn)在,假設(shè)要編輯對一個數(shù)據(jù)庫的查詢,以將結(jié)果限制到特定的列(例如,諸如 'where EMPLOYEE = 20'的SQL語句)。要做到這一點,就要將該數(shù)據(jù)庫查詢修改得適合附 加子句(clause)。然而,在被截獲系統(tǒng)調(diào)用到實際系統(tǒng)調(diào)用的1:1的映射中,已經(jīng)將包頭傳 遞到數(shù)據(jù)庫,因此要改變包的大小已為時太晚。更一般來說,可能跨多個系統(tǒng)調(diào)用拆分單一 的(例如,從數(shù)據(jù)庫讀的)查詢。無論所需的查詢或功能的性質(zhì)如何,一旦將系統(tǒng)調(diào)用中被 讀或?qū)懙臄?shù)據(jù)返回到用戶進(jìn)程(user process),要修改數(shù)據(jù)就為時太晚了。這種限制使現(xiàn) 有的解決方案不能改寫或編輯跨越多個系統(tǒng)調(diào)用的被截獲數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0005] 優(yōu)選實施例提供一種在具有存儲器的計算系統(tǒng)中的處理系統(tǒng)調(diào)用的方法,該系統(tǒng) 調(diào)用具有關(guān)聯(lián)的源和目的地,該方法包含:截獲該系統(tǒng)調(diào)用時,應(yīng)用在硬件單元中執(zhí)行的功 能來導(dǎo)入與兩個或更多的實際系統(tǒng)調(diào)用相關(guān)聯(lián)的數(shù)據(jù),直到導(dǎo)入了與該系統(tǒng)調(diào)用相關(guān)聯(lián)的 完整數(shù)據(jù)集合;響應(yīng)于收到對該完整數(shù)據(jù)集合實行變換的結(jié)果,通過將該結(jié)果導(dǎo)出至目的 地而釋放該系統(tǒng)調(diào)用。
[0006] 優(yōu)選地,源是該系統(tǒng)調(diào)用,目的地是存儲器的用戶空間。更優(yōu)選地,源是存儲器的 用戶空間,目的地是該系統(tǒng)調(diào)用。更優(yōu)選地,該方法進(jìn)一步包含對該完整數(shù)據(jù)集合實行變換 的步驟。更優(yōu)選地,該變換是以下之一:檢查、分析、編輯、阻止、處理和更新。
[0007] 優(yōu)選地,該兩個或更多的實際系統(tǒng)調(diào)用導(dǎo)致數(shù)據(jù)被讀取,且在返回到請求讀取的 應(yīng)用之前對該完整數(shù)據(jù)集合實行該變換。優(yōu)選地,該兩個或更多的實際系統(tǒng)調(diào)用導(dǎo)致從應(yīng) 用寫數(shù)據(jù),且在發(fā)起第一系統(tǒng)調(diào)用寫之前實行該變換。
[0008] 本文中的技術(shù)提供被截獲系統(tǒng)調(diào)用的"時移"(time-shifting),以便能夠?qū)崿F(xiàn)被 截獲系統(tǒng)調(diào)用到實際系統(tǒng)調(diào)用的一對多(l:n)或多對一(n:l)映射。需要在系統(tǒng)調(diào)用截獲 時出現(xiàn)的數(shù)據(jù)的邏輯邊界(而不是物理邊界)上實行的任何行動,導(dǎo)入(spool)(緩存)采 取行動之前的數(shù)據(jù),然后在完成時導(dǎo)出(unspool)結(jié)果。該行動可能是相當(dāng)不同的,例如檢 查數(shù)據(jù)、編輯數(shù)據(jù)、更改數(shù)據(jù)、限制數(shù)據(jù)、處理數(shù)據(jù)以及更新數(shù)據(jù),等等。
[0009] 本文所描述的方法假定系統(tǒng)調(diào)用具有相關(guān)的源和目的地。在"讀"的情況下,源是 原始系統(tǒng)調(diào)用本身,而目的地是用戶空間。在"寫"的情況下,源是用戶空間,而目的地是原 始系統(tǒng)調(diào)用。根據(jù)本公開,實際上對與系統(tǒng)調(diào)用關(guān)聯(lián)的數(shù)據(jù)實施"保持"(hold)。特別地, 在讀的情況下,該保持導(dǎo)入數(shù)據(jù),在所有數(shù)據(jù)都被讀取之前不返回到用戶空間。在寫的情況 下,該保持導(dǎo)入數(shù)據(jù),直到所有將要被寫入的數(shù)據(jù)都被從用戶空間讀出。以這樣的方式保持 數(shù)據(jù),使得能夠?qū)φ{(diào)用被截獲系統(tǒng)調(diào)用的用戶進(jìn)程透明地實行變換。此外,使用這種方法使 得能夠遠(yuǎn)程地進(jìn)行數(shù)據(jù)的處理和實行變換,以例如避免存儲器限制,從而能將不同的數(shù)據(jù) 集合互相關(guān)聯(lián)。
[0010] 以上概述了所公開主題的一些更相關(guān)的特點。這些特點應(yīng)該被解釋為僅僅是說明 性的。正如下面所述的那樣,可以通過以不同方式應(yīng)用所公開的主題或者通過修改該主題 而得到許多其它有益的結(jié)果。
【附圖說明】
[0011] 為了更完整地理解本發(fā)明及其優(yōu)點,現(xiàn)在結(jié)合附圖作出以下描述,附圖中:
[0012] 圖1示出可以在其中可實現(xiàn)說明性實施例的分布式數(shù)據(jù)處理環(huán)境的示例性框圖;
[0013] 圖2是可以在其中可實現(xiàn)說明性實施例的數(shù)據(jù)處理系統(tǒng)的示例性框圖;
[0014] 圖3示出可在其中實踐本公開的非限定性實施例中的技術(shù)的、已知的本地數(shù)據(jù)庫 訪問控制系統(tǒng)(LDACS)的高級操作;
[0015] 圖4例示一計算實體的存儲器,其中可以實現(xiàn)本公開的導(dǎo)入(spooling)機(jī)制的功 能;
[0016] 圖5例示按照本發(fā)明的處理第一類(例如"讀")系統(tǒng)調(diào)用的處理流程;
[0017] 圖6例示按照本發(fā)明的處理第二類(例如"寫")系統(tǒng)調(diào)用的處理流程。
【具體實施方式】
[0018] 現(xiàn)在參照各附圖、特別是參照圖1-2,圖中示出可以在其中實現(xiàn)本發(fā)明的示例性實 施例的數(shù)據(jù)處理環(huán)境的示意圖。應(yīng)該明白,圖1-2僅僅是示范性的,并非是要對本發(fā)明主題 的各方面或?qū)嵤├梢栽谄渲袑崿F(xiàn)的環(huán)境設(shè)置或暗示任何限制。在不脫離本發(fā)明的范圍的 情況下可以對所示出的環(huán)境作出許多修改。
[0019] 現(xiàn)在參看各附圖。圖1描述了一個典型的分布式數(shù)據(jù)處理系統(tǒng)的圖形表示,其中 可以實現(xiàn)說明性實施方案的各個方面。分布式數(shù)據(jù)處理系統(tǒng)100可以包括一個計算機(jī)網(wǎng) 絡(luò),在該網(wǎng)絡(luò)中,可以實現(xiàn)說明性實施例的各方面。分布式數(shù)據(jù)處理系統(tǒng)100包含至少一個 網(wǎng)絡(luò)102,這是用于提供在分布式數(shù)據(jù)處理系統(tǒng)100中連接在一起的各種設(shè)備和計算機(jī)之 間的通信鏈路的介質(zhì)。網(wǎng)絡(luò)102可以包括連接,如有線、無線通信鏈路或光纖電纜
[0020] 在所示的例子中,服務(wù)器104和服務(wù)器106與存儲單元102 -起連接到網(wǎng)絡(luò)108。 此外,客戶端110、112和114也連接到網(wǎng)絡(luò)102。這些客戶端110、112和114例如可以是個 人電腦、網(wǎng)絡(luò)計算機(jī),等等。在所示的例子中,服務(wù)器104提供數(shù)據(jù),例如引導(dǎo)文件、操作系 統(tǒng)映像和應(yīng)用程序給客戶端110、112和114。在所示的例子中,客戶端110、112和114是服 務(wù)器104的客戶端。分布式數(shù)據(jù)處理系統(tǒng)100可以包括其他服務(wù)器、客戶端和未予示出的 其它設(shè)備。
[0021] 在所示的例子中,分布式數(shù)據(jù)處理系統(tǒng)100是互聯(lián)網(wǎng),網(wǎng)絡(luò)102代表世界范圍的網(wǎng) 絡(luò)連接和網(wǎng)關(guān),它們利用傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)的協(xié)議組彼此通信。在互聯(lián) 網(wǎng)的核心,是由成千上萬的商業(yè)、政府、教育和其他路由數(shù)據(jù)和消息的計算機(jī)系統(tǒng)組成的主 要節(jié)點或主機(jī)之間的高速數(shù)據(jù)通信線路的骨干。當(dāng)然,分布式數(shù)據(jù)處理系統(tǒng)100也可以實 現(xiàn)包括一些不同類型的網(wǎng)絡(luò),例如內(nèi)部網(wǎng)、局域網(wǎng)(LAN)、廣域網(wǎng)(LAN)等等。如上所述,圖 1旨在作為一個例子,絕非對所公開的主題的不同實施方式的結(jié)構(gòu)性限制,因此,圖1中所 示的特定元素,不應(yīng)該視為是對本發(fā)明的說明性實施例可在其中實施的環(huán)境的限制。
[0022] 現(xiàn)在參看圖2,所示的是可以在其中實現(xiàn)說明性實施例的各方面的示例性數(shù)據(jù)處 理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)200是計算機(jī)的一個例子,諸如圖1中的客戶端110,其中可 以安置實現(xiàn)本公開的說明性實施例的過程的計算機(jī)可用代碼或指令。
[0023] 現(xiàn)在參看圖2,所示的是可以在其中實現(xiàn)說明性實施例的各方面的示例性數(shù)據(jù)處 理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)200是計算機(jī)的一個例子,諸如圖1中的服務(wù)器104和客戶 端110,其中可以安置實現(xiàn)本公開的說明性實施例的過程的計算機(jī)可用代碼或指令。在這個 說明性例子中,數(shù)據(jù)處理系統(tǒng)200包括通信組織202,它提供處理器單元204、存儲器206、持 久性存儲器208、通信單元210、輸入/輸出(I/O)單元212和顯示器214之間的通信。
[002