两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于Schema的XML安全視圖查詢方法

文檔序號:6486713閱讀:340來源:國知局
一種基于Schema的XML安全視圖查詢方法
【專利摘要】本發(fā)明涉及一種基于Schema的XML安全視圖查詢方法。包括以下步驟:搭建數(shù)控機床遠程監(jiān)控診斷平臺,采用XML?Schema技術(shù)對平臺中的數(shù)控裝備信息、加工工藝信息、運行狀態(tài)信息進行建模,形成原始Schema文檔;系統(tǒng)管理員通過圖形用戶界面為平臺的訪問用戶設(shè)置操作權(quán)限,結(jié)合訪問限定集合的定義生成用戶權(quán)限說明;根據(jù)用戶權(quán)限說明以及原始Schema文檔,在服務(wù)器端采用安全視圖生成算法自動生成新Schema文檔,并將約簡屬性后的對應(yīng)安全視圖存儲于客戶端;客戶端基于安全視圖展開查詢,服務(wù)器采用查詢重寫算法重寫XPath查詢語句,并將查詢結(jié)果返回客戶端。本發(fā)明具有訪問控制安全性強、視圖生成和信息查詢效率高、空間開銷低、可擴展性好等特點。
【專利說明】—種基于Schema的XML安全視圖查詢方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)控機床遠程監(jiān)控診斷平臺的安全訪問控制領(lǐng)域,具體的說是一種基于Schema的XML安全視圖查詢方法。
【背景技術(shù)】
[0002]高檔數(shù)控裝備作為機電一體化產(chǎn)品,其故障發(fā)生、故障傳播以及誤診、漏診的可能性很高,通過自診斷和可編程邏輯控制器對機床電器做簡單狀態(tài)檢測已無法滿足數(shù)控裝備健康可靠運行的需求,因此,數(shù)控機床遠程監(jiān)控診斷平臺應(yīng)運而生。該平臺能夠充分利用開放式數(shù)控系統(tǒng)的網(wǎng)絡(luò)化接口和現(xiàn)有互連網(wǎng)資源實現(xiàn)信息共享、監(jiān)控診斷、壽命預(yù)測以及與制造執(zhí)行系統(tǒng)、企業(yè)資源規(guī)劃等第三方系統(tǒng)的集成,但其實現(xiàn)需要解決以下兩方面問題:(1)地理上分散的網(wǎng)絡(luò)節(jié)點間的數(shù)據(jù)接口與系統(tǒng)集成規(guī)范存在較大差異,造成數(shù)控裝備信息的異構(gòu)問題,不便于信息的整合與共享;⑵遠程終端為實現(xiàn)精準的判斷需要大量數(shù)據(jù)傳輸時,可能由于網(wǎng)絡(luò)帶寬、入侵攻擊等限制因素造成網(wǎng)絡(luò)傳輸延遲和訪問控制安全等問題。
[0003]可擴展標記語言(extensible Markup Language, XML)作為Web上數(shù)據(jù)描述和交換的實施標準,己在工業(yè)界得到廣泛的應(yīng)用。因此,可以借助XML技術(shù),對數(shù)控裝備信息、力口工工藝信息、運行狀態(tài)信息進行建模和規(guī)范化表達,以實現(xiàn)平臺中各節(jié)點信息的同步與共享。這種XML規(guī)范化的信息雖然能夠方便授權(quán)用戶根據(jù)需求配置管理功能,在復(fù)雜網(wǎng)絡(luò)制造環(huán)境下實現(xiàn)資源自由重組和高效利用,但同時也引入了異構(gòu)網(wǎng)絡(luò)節(jié)點間敏感信息的安全訪問控制問題。如何為不同網(wǎng)絡(luò)授權(quán)用戶提供高效、安全的查詢訪問控制,成為當(dāng)前的研究執(zhí)占。
[0004]立足于上述工程需求,針對XML信息規(guī)范和安全訪問控制展開的研究受到普遍關(guān)注。主要包括以下三種兩種研究方法:⑴基于原始XML文檔的訪問控制方法,沒有為用戶提供文檔類型定義(Document Type Definition, DTD)或者 XML Schema 定義(XML SchemaDefinition,XSD)來結(jié)構(gòu)化可訪問信息,其查詢算法復(fù)雜,完整性開銷大。⑵基于DTD文檔的訪問控制方法,直接將完整的DTD文檔展示給所有用戶,不僅查詢更新耗費的時間多,而且不能對用戶隱藏敏感信息路徑,使其有可能利用看似安全的查詢語句獲取訪問控制模型保護的敏感信息。⑶基于DTD安全視圖的訪問控制方法,通過定義于原始DTD文檔上的安全策略為不同用戶生成安全視圖,提供授權(quán)范圍內(nèi)的信息訪問控制,并通過查詢重寫技術(shù)修改客戶端XPath查詢語句,防止未授權(quán)用戶對敏感信息的直接訪問和推理訪問。但現(xiàn)有方法的視圖生成和查詢效率并不高,并且由于DTD模型本身的復(fù)雜性,不便于用戶針對未來需求進行開發(fā)、使用和擴展。

【發(fā)明內(nèi)容】

[0005]針對數(shù)控機床遠程監(jiān)控診斷平臺中異構(gòu)信息安全交互的需求,以及現(xiàn)有XML安全訪問控制方法存在的上述不足之處,本發(fā)明要解決的技術(shù)問題是提供一種增強訪問控制安全性、提高視圖生成和信息查詢效率、降低空間開銷、提高可擴展性的用于數(shù)控機床安全訪問控制領(lǐng)域的基于Schema的XML安全視圖查詢方法。
[0006]為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案是:
[0007]本發(fā)明一種基于Schema的XML安全視圖查詢方法包括以下步驟:
[0008]搭建數(shù)控機床遠程監(jiān)控診斷平臺,采用XML Schema技術(shù)對平臺中的數(shù)控裝備信息、加工工藝信息、運行狀態(tài)信息進行建模和規(guī)范化表達,形成原始Schema文檔;
[0009]系統(tǒng)管理員通過圖形用戶界面為數(shù)控機床遠程監(jiān)控診斷平臺的訪問用戶設(shè)置操作權(quán)限,針對用戶權(quán)限設(shè)置,將原始Schema文檔中的信息節(jié)點劃分為三種訪問限定集合,包括遞歸不可訪問節(jié)點集合、當(dāng)前不可訪問節(jié)點集合和條件可訪問節(jié)點集合,處于上述三種集合以外的節(jié)點均屬于可訪問節(jié)點;
[0010]系統(tǒng)根據(jù)由用戶設(shè)置生成的用戶權(quán)限說明以及原始Schema文檔,在服務(wù)器端采用安全視圖生成算法自動生成添加了 path_to_parent屬性的新Schema文檔,在屏蔽敏感信息的同時,保存當(dāng)前節(jié)點同父節(jié)點之間的原始路徑信息;
[0011]將去除path_to_parent屬性得到的對應(yīng)安全視圖存儲于客戶端,從而隱藏敏感信息路徑,為用戶提供授權(quán)范圍內(nèi)的信息查詢控制;
[0012]客戶端基于安全視圖展開查詢,服務(wù)器采用查詢重寫算法重寫XPath查詢語句,將作用于視圖上的查詢轉(zhuǎn)換為作用于原始Schema文檔上的等價查詢,并將查詢結(jié)果返回客戶端。
[0013]所述數(shù)控機床遠程監(jiān)控診斷平臺包括遠程客戶端、服務(wù)器、路由器、數(shù)控系統(tǒng)、數(shù)控機床、嵌入式監(jiān)控診斷單元及相應(yīng)的傳感器。
[0014]所述安全視圖生成算法包括以下步驟:
[0015]從原始Schema文檔的根結(jié)點開始,標記當(dāng)前正在處理的節(jié)點;
[0016]判斷當(dāng)前節(jié)點是否已遍歷,如果是,說明以當(dāng)前節(jié)點為根的分支節(jié)點樹在之前已經(jīng)生成過,則進入當(dāng)前節(jié)點的下一個兄弟節(jié)點進行處理;
[0017]判斷該兄弟節(jié)點是否存在,如果是,將其標記為當(dāng)前節(jié)點,重復(fù)上一步驟,如果否,說明以當(dāng)前節(jié)點的父節(jié)點為根的寬度遍歷已經(jīng)結(jié)束,當(dāng)前節(jié)點的父節(jié)點的所有子節(jié)點均已進行過處理,標記當(dāng)前節(jié)點的父節(jié)點為已遍歷狀態(tài),并將該父節(jié)點記錄為當(dāng)前節(jié)點;
[0018]判斷當(dāng)前節(jié)點是否為根結(jié)點,如果否,進入當(dāng)前節(jié)點的下一個兄弟節(jié)點進行處理,重復(fù)上一步驟,如果是,生成新Schema文檔,去除其中的path_to_parent屬性,生成安全視圖,算法結(jié)束。
[0019]如果所述當(dāng)前節(jié)點未被遍歷,則進一步判斷當(dāng)前節(jié)點對于用戶權(quán)限而言的訪問級另IJ,如果當(dāng)前節(jié)點屬于遞歸不可訪問節(jié)點集合,則刪除當(dāng)前節(jié)點及其后續(xù)子孫所有節(jié)點,并進入當(dāng)前節(jié)點的下一個兄弟節(jié)點進行處理,重復(fù)上述視圖生成過程。
[0020]如果所述當(dāng)前節(jié)點屬于條件可訪問節(jié)點集合,則將當(dāng)前節(jié)點和條件查詢語句一起加入路徑信息中,并存儲入path_to_parent屬性中,然后進入當(dāng)前節(jié)點的第一個孩子節(jié)點進行處理,標記該孩子節(jié)點為當(dāng)前節(jié)點,重復(fù)上述視圖生成過程。
[0021]如果所述當(dāng)前節(jié)點屬于當(dāng)前不可訪問節(jié)點集合,則進一步判斷當(dāng)前節(jié)點是否為根結(jié)點,如果否,則刪除當(dāng)前節(jié)點,并使用當(dāng)前節(jié)點的所有孩子節(jié)點進行代替,同時將當(dāng)前節(jié)點記錄入路徑信息中,然后進入當(dāng)前節(jié)點的第一個孩子節(jié)點進行處理,標記該孩子節(jié)點為當(dāng)前節(jié)點,重復(fù)上述視圖生成過程。[0022]如果所述當(dāng)前節(jié)點是根結(jié)點,則進一步判斷當(dāng)前節(jié)點的孩子個數(shù),如果多于一個孩子,則使用虛擬增加的dummy節(jié)點代替當(dāng)前節(jié)點,并將其path_to_parent屬性置為空,然后進入當(dāng)前節(jié)點的第一個孩子節(jié)點進行處理,標記該孩子節(jié)點為當(dāng)前節(jié)點,重復(fù)上述視圖生成過程。
[0023]如果所述當(dāng)前節(jié)點只有一個孩子節(jié)點,則使用該孩子節(jié)點代替當(dāng)前節(jié)點,進入該孩子節(jié)點進行處理,標記該孩子節(jié)點為當(dāng)前節(jié)點,重復(fù)上述視圖生成過程。
[0024]如果所述當(dāng)前節(jié)點為可訪問節(jié)點,則將當(dāng)前節(jié)點記錄入路徑信息中,并存儲入path_to_parent屬性中,然后進入當(dāng)前節(jié)點的第一個孩子節(jié)點進行處理,標記該孩子節(jié)點為當(dāng)前節(jié)點,重復(fù)上述視圖生成過程。
[0025]所述查詢重寫算法包括以下步驟:
[0026]將客戶端輸入的XPath查詢語句按照XPath的基本查詢表達式劃分為多個子查詢語句,針對其中一個子查詢語句,按照文檔樹自頂向下的順序進行重寫操作;
[0027]在用戶安全視圖對應(yīng)的新Schema文檔中,對該子查詢語句的目標節(jié)點進行查找,并將查找的起始節(jié)點標記為臨時根結(jié)點;
[0028]如果能夠找到目標節(jié)點,則記錄從臨時根節(jié)點到目標節(jié)點所經(jīng)過的所有節(jié)點路徑,并將該路徑中所有的path_to_parent屬性添加到對應(yīng)的查詢語句中,以新記錄的路徑信息替換原始子查詢語句,并標記目標節(jié)點為新Schema文檔的新臨時根結(jié)點;
[0029]判斷是否還存在子查詢語句未經(jīng)處理,如果是,則重復(fù)上述步驟,如果否,說明重寫過程結(jié)束,返回新生成的XPath查詢語句,算法結(jié)束;
[0030]如果不能找到所述目標節(jié)點,則說明當(dāng)前查詢過程是非法的,用戶所輸入的查詢語句是非法的,需要重置新Schema文檔的臨時根節(jié)點,并終止本次查詢,算法結(jié)束。
[0031]本發(fā)明具有以下有益效果及優(yōu)點:
[0032]1.有效增強安全性。本發(fā)明方法不僅能夠針對特定用戶權(quán)限生成安全視圖,隱藏敏感信息路徑和屏蔽敏感信息,而且支持基于Schema的細粒度訪問控制和包含通配符、限定符等的XPath復(fù)雜查詢語句的處理,因此有效增強了復(fù)雜異構(gòu)信息交互的安全性。
[0033]2.視圖生成和信息查詢效率高。本發(fā)明方法采用三種訪問限定集合的定義,降低了視圖生成過程中文檔樹節(jié)點的遍歷次數(shù),并且將路徑信息存儲于節(jié)點的屬性path_to_parent中,通過直接替換客戶端查詢語句來恢復(fù)原始路徑,省去了查詢重寫過程中路徑信息同節(jié)點的匹配查找,因此視圖生成和信息查詢效率高。
[0034]3.空間開銷低。雖然本發(fā)明方法存放安全文檔需要占用一定的存儲空間,但采用三種訪問限定集合的定義,約簡了安全文檔節(jié)點數(shù)量,文檔壓縮率高,因此,空間開銷低,不會對物理存儲設(shè)備和網(wǎng)絡(luò)傳輸造成大的負擔(dān)。
[0035]4.可擴展性好。本發(fā)明方法基于Schema技術(shù)描述XML文檔結(jié)構(gòu),采用XML相同語法編寫,無需特殊解析器,便于用戶的學(xué)習(xí)和針對未來需求進行開發(fā),因此可擴展性好。
【專利附圖】

【附圖說明】
[0036]圖1為本發(fā)明方法應(yīng)用的數(shù)控機床遠程監(jiān)控診斷平臺示意圖;
[0037]圖2為本發(fā)明方法應(yīng)用的安全視圖訪問控制架構(gòu)圖;
[0038]圖3為本發(fā)明方法中安全視圖生成算法流程圖;[0039]圖4為本發(fā)明方法中XPath查詢重寫算法流程圖;
[0040]圖5為本發(fā)明方法應(yīng)用的XML Schema文檔樹示意圖;
[0041]圖6為本發(fā)明方法中算法執(zhí)行時間結(jié)果圖;
[0042]圖7為使用本發(fā)明方法所得的文檔壓縮率結(jié)果圖。
【具體實施方式】
[0043]下面結(jié)合附圖及實施例對本發(fā)明一種基于Schema的XML安全視圖查詢方法的實施方式進行詳細說明。
[0044]如圖1所示,為本發(fā)明方法應(yīng)用的數(shù)控機床遠程監(jiān)控診斷平臺示意圖。該圖中使用溫度、噪聲、振動傳感器采集數(shù)控機床整機及其核心子系統(tǒng)的機械載荷狀態(tài)信息,經(jīng)嵌入式監(jiān)控診斷單元的處理,發(fā)送至服務(wù)器;數(shù)控系統(tǒng)結(jié)合現(xiàn)場總線獲取設(shè)備信息、加工工藝信息、電氣狀態(tài)信息,發(fā)送至服務(wù)器;服務(wù)器使用XML Schema封裝信息,通過路由器提供給遠程客戶端,同時接收遠程客戶端的查詢信息、控制信息,發(fā)送給數(shù)控裝備。
[0045]如圖2所示,為本發(fā)明方法應(yīng)用的安全視圖訪問控制架構(gòu)圖。該圖中使用XML技術(shù)對數(shù)控系統(tǒng)與數(shù)控機床設(shè)備信息、加工工藝信息、運行狀態(tài)信息進行建模,形成的XML文檔數(shù)據(jù)庫由Schema語言定義其合法結(jié)構(gòu),形成原始Schema文檔S ;系統(tǒng)管理員通過圖形用戶界面為用戶設(shè)置操作權(quán)限,形成用戶權(quán)限說明R ;系統(tǒng)根據(jù)用戶權(quán)限說明以及原始Schema文檔,在服務(wù)器端采用安全視圖生成算法自動生成添加了 path_to_parent屬性的新Schema文檔NS ;去除NS中的path_to_parent屬性后得到其對應(yīng)的安全視圖Sv,并存儲于客戶端;客戶端基于Sv展開查詢,服務(wù)器基于Sv對應(yīng)的NS文檔,采用查詢重寫算法重寫XPath查詢語句,將作用于Sv上的查詢轉(zhuǎn)換為作用于S上的等價查詢;將查詢結(jié)果返回客戶端。
[0046]如圖3所示,為本發(fā)明方法中安全視圖生成算法流程圖。其中,新Schema文檔NS為每一節(jié)點增設(shè)了 path_to_parent屬性,用以保存當(dāng)前節(jié)點同父節(jié)點之間的原始路徑信息為遞歸不可訪問節(jié)點集合,其內(nèi)部包含的節(jié)點表示該節(jié)點以及該節(jié)點的所有后續(xù)子孫節(jié)點均不可訪問A1為當(dāng)前不可訪問節(jié)點集合,其內(nèi)部包含的節(jié)點表示該節(jié)點不可訪問,但是存在可訪問的后續(xù)子孫節(jié)點;Nq為條件訪問節(jié)點集合,其內(nèi)部包含的節(jié)點表示該節(jié)點是條件可訪問的,[q]即表示條件限制語句;處于上述三種訪問限定集合以外的節(jié)點均屬于可訪問節(jié)點。
[0047]針對隊、N1和Nq三種訪問限定集合中的節(jié)點以及可訪問節(jié)點,安全視圖生成算法具體包括以下步驟:
[0048]從原始Schema文檔S的根節(jié)點Root開始,進行新Schema文檔NS和安全視圖Sv的生成;
[0049]使用A標記當(dāng)前正在處理的節(jié)點;
[0050]判斷節(jié)點A是否已遍歷,如果是,說明以A節(jié)點為根的分支節(jié)點樹在之前已經(jīng)生成過,則進入A的下一個兄弟節(jié)點進行處理;
[0051]判斷A是否存在下一個兄弟節(jié)點,如果存在,將該兄弟節(jié)點標記為A,重復(fù)上述過程;
[0052]如果A不存在下一個兄弟節(jié)點,說明以A的父節(jié)點為根的寬度遍歷已經(jīng)結(jié)束,A的父節(jié)點的所有子節(jié)點均已進行過處理,則標記A的父節(jié)點為已遍歷狀態(tài),并將該父節(jié)點標記為A,進一步判斷A是否為根結(jié)點,如果否,進入A的下一個兄弟節(jié)點進行處理,重復(fù)上述過程;
[0053]如果A是根結(jié)點,貝U生成NS,去除其中的path_to_parent屬性,生成Sv,算法結(jié)束;
[0054]如果A未被遍歷,則判斷A對于用戶權(quán)限而言的訪問級別,如果A節(jié)點屬于隊集合,則刪除A及其后續(xù)子孫所有節(jié)點,并進入A的下一個兄弟節(jié)點進行處理,重復(fù)上述過程;
[0055]如果A屬于Nq集合,則將條件查詢語句q加入路徑信息TPath中,將A記錄入TPath中,并存儲入path_to_parent屬性中,然后進入A的第一個孩子節(jié)點進行處理,將該孩子節(jié)點標記為A,重復(fù)上述過程;
[0056]如果A屬于N1集合,則進一步判斷A是否為根結(jié)點,如果否,則刪除A,并使用A的所有孩子節(jié)點進行代替,同時將A記錄入TPath中,然后進入A的第一個孩子節(jié)點進行處理,將該孩子節(jié)點標記為A,重復(fù)上述過程;
[0057]如果A是根結(jié)點,則進一步判斷A的孩子個數(shù),如果多于一個孩子,則使用虛擬增加的dummy節(jié)點代替A,并將其path_to_parent屬性置為空,然后進入A的第一個孩子節(jié)點進行處理,將該孩子節(jié)點標記為A,重復(fù)上述過程;
[0058]如果A只有一個孩子節(jié)點,則使用該孩子節(jié)點代替A,進入該孩子節(jié)點進行處理,將該孩子節(jié)點標記為A,重復(fù)上述過程;
[0059]如果A為可訪問節(jié)點,則將A記錄入TPath中,并存儲入path_to_parent屬性中,然后進入A的第一個孩子節(jié)點進行處理,將該孩子節(jié)點標記為A,重復(fù)上述過程。
[0060]如圖4所示,為本發(fā)明方法中XPath查詢重寫算法流程圖。具體包括以下步驟:
[0061]將客戶端輸入的XPath查詢語句按照XPath的基本查詢表達式劃分為多個子查詢語句,將其中一個子查詢語句標記為P,按照文檔樹自頂向下的順序進行重寫操作;
[0062]在用戶安全視圖Sv對應(yīng)的新Schema文檔NS中,對P的目標節(jié)點進行查找,并將查找的起始節(jié)點標記為SRoot ;
[0063]如果能夠找到目標節(jié)點,則記錄從SRoot到目標節(jié)點所經(jīng)過的所有節(jié)點路徑,并將該路徑中所有的path_to_parent屬性添加到對應(yīng)的查詢語句中,以新記錄的路徑信息替換P,并標記目標節(jié)點為NS的新SRoot ;
[0064]判斷是否還存在其他子查詢語句未經(jīng)處理,如果是,則重復(fù)上述過程,如果否,說明重寫過程結(jié)束,返回新生成的XPath查詢語句,算法結(jié)束;
[0065]如果不能找到目標節(jié)點,則說明當(dāng)前查詢過程是非法的,用戶所輸入的查詢語句是非法的,需要重置NS的SRoot,并終止本次查詢,算法結(jié)束。
[0066]為驗證本發(fā)明方法的有效性,通過理論分析和實驗測試對本發(fā)明所述基于Schema的XML安全視圖查詢方法進行了研究。
[0067]本發(fā)明方法不僅能夠針對特定用戶權(quán)限生成安全視圖,隱藏敏感信息路徑和屏蔽敏感信息,而且支持基于Schema的細粒度訪問控制和包含通配符、限定符等的XPath復(fù)雜查詢語句的處理,增強了復(fù)雜異構(gòu)信息交互的安全性。
[0068]本發(fā)明所述安全視圖生成算法,采用H和Nq限定集合表示節(jié)點的訪問權(quán)限,遍歷Schema文檔中的節(jié)點,分別與三種訪問限定集合進行匹配,若節(jié)點屬于隊,則該節(jié)點和子孫節(jié)點均不會包含于Sv,其子孫節(jié)點也不必遍歷,降低了節(jié)點遍歷次數(shù);若節(jié)點屬于N1,貝Ij該節(jié)點不會包含于Sv,其子孫節(jié)點仍需進一步判斷所屬集合;若節(jié)點屬于N,,則節(jié)點必定包含于Sv* ;若節(jié)點與三個集合均不匹配,則為可訪問節(jié)點,必定包含于Sv中。因此該算法的時間復(fù)雜度為O (M*N),其中M= SvKlNrKlN1IjN= I Nr | +1N11 +1 Nq |,M為遍歷的節(jié)點的個數(shù),Sj為安全視圖中節(jié)點的規(guī)模,INrMN1和IN」為HNq集合中節(jié)點的規(guī)模。本發(fā)明方法在視圖生成過程中將路徑信息直接存儲于節(jié)點的屬性path_t0_parent中,查詢重寫算法通過直接對查詢語句進行替換來恢復(fù)原始路徑,省去了路徑信息同節(jié)點的匹配查找過程,因此該算法的時間復(fù)雜度為o(|pI*Ins|),其中|P|為查詢語句中基本查詢表達式的規(guī)模,|ns|為Ns文檔中節(jié)點的規(guī)模。相對于現(xiàn)有的基于安全視圖的訪問控制方法,本發(fā)明方法的視圖生成和信息查詢的效率有了很大程度的提高。
[0069]本發(fā)明方法基于Schema技術(shù)實現(xiàn),采用與XML相同的語法編寫,無需特殊解析器,便于用戶的學(xué)習(xí)和開發(fā);支持數(shù)據(jù)類型和命名空間,能夠創(chuàng)建領(lǐng)域內(nèi)XML文檔信息的共同描述,以形式化的方式保護數(shù)據(jù)通信,能夠針對未來需求隨意擴充功能,具有更好的可擴展性。
[0070]如圖5所示,為本發(fā)明方法應(yīng)用的XML Schema文檔樹示意圖。將本發(fā)明方法應(yīng)用于數(shù)控機床遠程監(jiān)控診斷平臺中,提取其部分Schema原始文檔,對安全視圖生成算法和查詢重寫算法進行了實驗測試。該文檔樹包括設(shè)備描述信息節(jié)點、連續(xù)數(shù)據(jù)流信息節(jié)點、離散事件流信息節(jié)點和屬性信息節(jié)點,共177個標簽節(jié)點,文檔大小為25KB。
[0071]實驗過程中,首先隨機生成三種訪問限定集合HN,,以模擬不同用戶權(quán)限的建立,然后記錄安全視圖生成算法所耗費的時間,以及新生成Schema文件NS的大小,最后針對一個代表性的查詢語句測試查詢重寫算法的執(zhí)行時間。
[0072]如圖6所示,為本發(fā)明方法中算法執(zhí)行時間結(jié)果圖。安全視圖生成算法的平均耗時為3.96ms,查詢重寫算法的平均耗時為0.84ms,時間開銷較小,能夠滿足系統(tǒng)穩(wěn)定運行的需求。其中,部分查詢重寫算法的耗時非常低,僅為0.1ms左右,這是因為該查詢語句對于這些情況下生成的安全視圖而言是非法的,從而在早期便終止了查詢重寫算法的執(zhí)行。
[0073]如圖7所示,為使用本發(fā)明方法所得的文檔壓縮率結(jié)果圖。三種訪問限定集合的定義約簡了 NS文件節(jié)點數(shù)量(NS文件對應(yīng)的Sv文件更小),新文件所達平均壓縮效果為27%左右,最大可達80%以上。因此,雖然本文所述方法存放安全文檔需要占用一定的存儲空間,但文檔壓縮率較高,空間耗費較少,不會對物理存儲設(shè)備和網(wǎng)絡(luò)傳輸造成大的負擔(dān),能夠有效地提高XPath查詢效率。
[0074]以上結(jié)果表明,本發(fā)明方法具有訪問控制安全性強、視圖生成和信息查詢效率高、空間開銷低、可擴展性好的優(yōu)點,能夠適用于數(shù)控機床遠程監(jiān)控診斷平臺的安全訪問控制領(lǐng)域,具有良好的應(yīng)用前景。
【權(quán)利要求】
1.一種基于Schema的XML安全視圖查詢方法,其特征在于,包括以下步驟: 搭建數(shù)控機床遠程監(jiān)控診斷平臺,采用XML Schema技術(shù)對平臺中的數(shù)控裝備信息、加工工藝信息、運行狀態(tài)信息進行建模和規(guī)范化表達,形成原始Schema文檔; 系統(tǒng)管理員通過圖形用戶界面為數(shù)控機床遠程監(jiān)控診斷平臺的訪問用戶設(shè)置操作權(quán)限,針對用戶權(quán)限設(shè)置,將原始Schema文檔中的信息節(jié)點劃分為三種訪問限定集合,包括遞歸不可訪問節(jié)點集合、當(dāng)前不可訪問節(jié)點集合和條件可訪問節(jié)點集合,處于上述三種集合以外的節(jié)點均屬于可訪問節(jié)點; 系統(tǒng)根據(jù)由用戶設(shè)置生成的用戶權(quán)限說明以及原始Schema文檔,在服務(wù)器端采用安全視圖生成算法自動生成添加了 path_to_parent屬性的新Schema文檔,在屏蔽敏感信息的同時,保存當(dāng)前節(jié)點同父節(jié)點之間的原始路徑信息; 將去除path_to_parent屬性得到的對應(yīng)安全視圖存儲于客戶端,從而隱藏敏感信息路徑,為用戶提供授權(quán)范圍內(nèi)的信息查詢控制; 客戶端基于安全視圖展開查詢,服務(wù)器采用查詢重寫算法重寫XPath查詢語句,將作用于視圖上的查詢轉(zhuǎn)換為作用于原始Schema文檔上的等價查詢,并將查詢結(jié)果返回客戶端。
2.按權(quán)利要求1所述的一種基于Schema的XML安全視圖查詢方法,其特征在于:所述數(shù)控機床遠程監(jiān)控診斷平臺包括遠程客戶端、服務(wù)器、路由器、數(shù)控系統(tǒng)、數(shù)控機床、嵌入式監(jiān)控診斷單元及相應(yīng)的傳感器。
3.按權(quán)利要求1所述的一種基于Schema的XML安全視圖查詢方法,其特征在于:所述安全視圖生成算法包括以下步驟: 從原始Schema文檔的根結(jié)點開始,標記當(dāng)前正在處理的節(jié)點; 判斷當(dāng)前節(jié)點是否已遍歷,如果是,說明以當(dāng)前節(jié)點為根的分支節(jié)點樹在之前已經(jīng)生成過,則進入當(dāng)前節(jié)點的下一個兄弟節(jié)點進行處理; 判斷該兄弟節(jié)點是否存在,如果是,將其標記為當(dāng)前節(jié)點,重復(fù)上一步驟,如果否,說明以當(dāng)前節(jié)點的父節(jié)點為根的寬度遍歷已經(jīng)結(jié)束,當(dāng)前節(jié)點的父節(jié)點的所有子節(jié)點均已進行過處理,標記當(dāng)前節(jié)點的父節(jié)點為已遍歷狀態(tài),并將該父節(jié)點記錄為當(dāng)前節(jié)點; 判斷當(dāng)前節(jié)點是否為根結(jié)點,如果否,進入當(dāng)前節(jié)點的下一個兄弟節(jié)點進行處理,重復(fù)上一步驟,如果是,生成新Schema文檔,去除其中的path_to_parent屬性,生成安全視圖,算法結(jié)束。
4.按權(quán)利要求3所述的一種基于Schema的XML安全視圖查詢方法,其特征在于:如果所述當(dāng)前節(jié)點未被遍歷,則進一步判斷當(dāng)前節(jié)點對于用戶權(quán)限而言的訪問級別,如果當(dāng)前節(jié)點屬于遞歸不可訪問節(jié)點集合,則刪除當(dāng)前節(jié)點及其后續(xù)子孫所有節(jié)點,并進入當(dāng)前節(jié)點的下一個兄弟節(jié)點進行處理,重復(fù)上述視圖生成過程。
5.按權(quán)利要求4所述的一種基于Schema的XML安全視圖查詢方法,其特征在于:如果所述當(dāng)前節(jié)點屬于條件可訪問節(jié)點集合,則將當(dāng)前節(jié)點和條件查詢語句一起加入路徑信息中,并存儲入path_to_parent屬性中,然后進入當(dāng)前節(jié)點的第一個孩子節(jié)點進行處理,標記該孩子節(jié)點為當(dāng)前節(jié)點,重復(fù)上述視圖生成過程。
6.按權(quán)利要求4所述的一種 基于Schema的XML安全視圖查詢方法,其特征在于:如果所述當(dāng)前節(jié)點屬于當(dāng)前不可訪問節(jié)點集合,則進一步判斷當(dāng)前節(jié)點是否為根結(jié)點,如果否,則刪除當(dāng)前節(jié)點,并使用當(dāng)前節(jié)點的所有孩子節(jié)點進行代替,同時將當(dāng)前節(jié)點記錄入路徑信息中,然后進入當(dāng)前節(jié)點的第一個孩子節(jié)點進行處理,標記該孩子節(jié)點為當(dāng)前節(jié)點,重復(fù)上述視圖生成過程。
7.按權(quán)利要求6所述的一種基于Schema的XML安全視圖查詢方法,其特征在于:如果所述當(dāng)前節(jié)點是根結(jié)點,則進一步判斷當(dāng)前節(jié)點的孩子個數(shù),如果多于一個孩子,則使用虛擬增加的dummy節(jié)點代替當(dāng)前節(jié)點,并將其path_to_parent屬性置為空,然后進入當(dāng)前節(jié)點的第一個孩子節(jié)點進行處理,標記該孩子節(jié)點為當(dāng)前節(jié)點,重復(fù)上述視圖生成過程。
8.按權(quán)利要求7所述的一種基于Schema的XML安全視圖查詢方法,其特征在于:如果所述當(dāng)前節(jié)點只有一個孩子節(jié)點,則使用該孩子節(jié)點代替當(dāng)前節(jié)點,進入該孩子節(jié)點進行處理,標記該孩子節(jié)點為當(dāng)前節(jié)點,重復(fù)上述視圖生成過程。
9.按權(quán)利要求4所述的一種基于Schema的XML安全視圖查詢方法,其特征在于:如果所述當(dāng)前節(jié)點為可訪問節(jié)點,則將當(dāng)前節(jié)點記錄入路徑信息中,并存儲入path_to_parent屬性中,然后進入當(dāng)前節(jié)點的第一個孩子節(jié)點進行處理,標記該孩子節(jié)點為當(dāng)前節(jié)點,重復(fù)上述視圖生成過程。
10.按權(quán)利要求1所述的一種基于Schema的XML安全視圖查詢方法,其特征在于:所述查詢重寫算法包括以下步驟: 將客戶端輸入的XPath查詢語句按照XPath的基本查詢表達式劃分為多個子查詢語句,針對其中一個子查詢語句,按照文檔樹自頂向下的順序進行重寫操作; 在用戶安全視圖對應(yīng)的新Schema文檔中,對該子查詢語句的目標節(jié)點進行查找,并將查找的起始節(jié)點標記為臨時根結(jié)點; 如果能夠找到目標節(jié)點,則記錄從臨時根節(jié)點到目標節(jié)點所經(jīng)過的所有節(jié)點路徑,并將該路徑中所有的path_to`_parent屬性添加到對應(yīng)的查詢語句中,以新記錄的路徑信息替換原始子查詢語句,并標記目標節(jié)點為新Schema文檔的新臨時根結(jié)點; 判斷是否還存在子查詢語句未經(jīng)處理,如果是,則重復(fù)上述步驟,如果否,說明重寫過程結(jié)束,返回新生成的XPath查詢語句,算法結(jié)束; 如果不能找到所述目標節(jié)點,則說明當(dāng)前查詢過程是非法的,用戶所輸入的查詢語句是非法的,需要重置新Schema文檔的臨時根節(jié)點,并終止本次查詢,算法結(jié)束。
【文檔編號】G06F17/30GK103530538SQ201210227823
【公開日】2014年1月22日 申請日期:2012年7月3日 優(yōu)先權(quán)日:2012年7月3日
【發(fā)明者】于東, 高甜容, 岳東峰, 韓旭, 楊磊, 陳龍 申請人:沈陽高精數(shù)控技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
巨鹿县| 高阳县| 永州市| 邓州市| 方正县| 玉门市| 商河县| 海淀区| 贺兰县| 阳信县| 翼城县| 邯郸县| 辽源市| 海口市| 和林格尔县| 平乡县| 乐安县| 得荣县| 石柱| 厦门市| 冀州市| 旺苍县| 黄陵县| 内黄县| 潍坊市| 涟源市| 根河市| 白山市| 厦门市| 旌德县| 屏东市| 丰原市| 乌拉特前旗| 吕梁市| 新化县| 肃南| 通渭县| 都匀市| 湛江市| 杂多县| 高青县|