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

支持多進程的嵌入式的樹型數(shù)據(jù)庫技術的制作方法

文檔序號:6481129閱讀:261來源:國知局
專利名稱:支持多進程的嵌入式的樹型數(shù)據(jù)庫技術的制作方法
技術領域
本發(fā)明涉及一種支持多進程的嵌入式的樹型數(shù)據(jù)庫技術,即
I n f o r G u a r d網(wǎng)頁防篡改系統(tǒng)中間件存儲水印信息的數(shù)據(jù)庫技術。
背景技術
在基于WEB服務器或應用服務器(以下簡稱為服務器)的網(wǎng)絡應 用中,需要對部署在服務器上的資源文件、腳本文件、頁面文件、以 及頁面文件引用的服務性文件進行保護,即保證服務器提供給訪問用 戶的文件是正確性;為此需要將各個文件的摘要信息(也就是水印信 息)保存到數(shù)據(jù)庫中。
目前,在此領域采用的方式為
1. 文件對應存4諸方式
該方法是根據(jù)文件路徑和名子,在水印目錄下,生成與之對應的 一個文件,用于存儲水印信息;這種方式也就意味著一個文件就要有 一個與之對應的存儲水印的文件,如果一個網(wǎng)站有1 00000個網(wǎng)頁,也 就要有100000個水印文件;這種方式的優(yōu)點是比較直觀,可以很方便 的去查看,但是其缺點是性能低,安全性差。
2. 關系數(shù)據(jù)庫存儲方式
該方法是采用關系數(shù)據(jù)庫,將文件全名和水印存儲到現(xiàn)有的關系 型數(shù)庫中;這種方式的優(yōu)點是實現(xiàn)簡單,開發(fā)周期短,但是缺點是查 詢性能低(查詢的性能又是限制Web服務器的一個重要因素)。

發(fā)明內(nèi)容
本發(fā)明的目的就是針對上述的不足,提供了一種查詢效率高、功 能安全可靠的支持多進程的嵌入式的樹型數(shù)據(jù)庫技術。 本發(fā)明主要采用了一下技術
1. 共享內(nèi)存機制
在進程啟動后,數(shù)據(jù)庫模塊會將數(shù)據(jù)庫中的數(shù)據(jù)加載到共享內(nèi)存 中,方便該進程或其他進程讀寫數(shù)據(jù);在被加載后,所有的操作都是 操作共享內(nèi)存(大大提高了讀寫速度),而共享內(nèi)存和磁盤數(shù)據(jù)的同步 使用獨立的線程進行維護。
2. 二叉樹遍歷與序列化存儲技術
數(shù)據(jù)結構是一個二叉樹,左子、右兄; 一個節(jié)點的屬性有節(jié)點名、 文件列表、子目錄及兄弟目錄;樹在磁盤上的存儲,采用的序列化存
3儲技術。
3. 數(shù)據(jù)更新緩存技術
為了提高查詢速度,數(shù)據(jù)實現(xiàn)采用了更新緩存技術,將數(shù)據(jù)庫更 新的數(shù)據(jù)緩存到臨時文件中去, 一是提高了速度,二是提高了可靠性。
4. 雙文件交替讀寫技術
為了提高數(shù)據(jù)的可靠性,采用兩個文件交替寫的方式,這樣可以 將計算機突然重啟丟失的數(shù)據(jù)降到最低。
具體來說,本發(fā)明是一種支持多進程的嵌入式的樹型數(shù)據(jù)庫技術, 包括程序初始流程和水印操作流程,其中,
程序初始流程為
l-l)初始化讀寫鎖,為了支持多進程操作,所以要使用信號量來 實現(xiàn)進程之間的互斥;
1 -2 )加載數(shù)據(jù)庫文件與緩存文件中的數(shù)據(jù)到共享內(nèi)存,數(shù)據(jù)在磁 盤上,是以序列化的字符存儲的,這一步就是將磁盤上的數(shù)據(jù)解析到 內(nèi)存中對應的樹形結構中;
1- 3)啟動同步線程,當更新的數(shù)據(jù)內(nèi)容大于一個限值時,同步線
程就會將共享內(nèi)存的數(shù)據(jù)同步到磁盤上,實現(xiàn)持久化存儲。 水印操作流程為
2- l)加讀或?qū)戞i,實現(xiàn)進程間的互斥;
2-2 )查詢或更新共享內(nèi)存數(shù)據(jù),如果是讀操作,遍歷二叉樹,取 出該文件的水印并返回;如果是寫操作,先更新共享內(nèi)存的數(shù)據(jù);
2-3)更新內(nèi)容寫入緩存,如果是寫操作,在更新共享內(nèi)存中的數(shù) 據(jù)之后,保存到緩存文件。
上述第1-2)步中加載數(shù)據(jù)庫文件與緩存文件中的數(shù)據(jù)到共享內(nèi) 存是這樣實現(xiàn)的它包括共享內(nèi)存、內(nèi)容緩存和二叉樹序列化存儲, 其中,
共享內(nèi)容為在非Windows平臺上通過shmget和shmat函!t實現(xiàn) 共享內(nèi)存的創(chuàng)建與分配置;在Windows平臺上通過CreateFileMapping 和MapViewOfFile函數(shù)實現(xiàn)共享內(nèi)存的創(chuàng)建與分配置;
內(nèi)容緩存為將某一段時間對數(shù)據(jù)庫的更新記錄寫到某一文件中, 等到更新到某一規(guī)模,再統(tǒng)一將數(shù)據(jù)寫到數(shù)據(jù)庫文件中去,目的是提 高操作數(shù)據(jù)庫的效率和安全性;
二叉樹序列化存儲為采用流的方式,通過<<和〉>操作符重載, 來實現(xiàn)數(shù)序列化。通過本發(fā)明,實現(xiàn)了一套用于存儲水印信息的數(shù)據(jù)庫,其特點如

1. 支持多進程
可以多個進程同時操作該數(shù)據(jù)庫(此數(shù)據(jù)庫要被Web服務器加載, 同時也會被InforGuardMa (監(jiān)控代理)加載),而多個進程之間釆用 共享內(nèi)存的方式實現(xiàn)數(shù)據(jù)的共享,從而提高了查詢的速度;和文件對 應存儲方式相比,在進行水印比對時不需要再從磁盤上讀到文件,從 而大大提高了比對速度。
2. 嵌入式
不需要啟動獨立的進程,而是直接由其他進程調(diào)用統(tǒng)一的接口 , 從而實現(xiàn)數(shù)據(jù)庫內(nèi)嵌到其調(diào)用進程中去。
3. 樹型數(shù)據(jù)結構
由于水印信息是和文件對應的,而文件在操作系統(tǒng)中又是以樹狀 的目錄結構存在的,自然而然用于存儲水印的數(shù)據(jù)庫實現(xiàn)為樹型數(shù)據(jù) 庫是更為合理的;因為樹型數(shù)據(jù)結構,無論是查詢還是更新操作上, 其速度都是高于關系數(shù)庫的。
本發(fā)明提供的支持多進程的嵌入式的樹型數(shù)據(jù)庫技術,具有以下 優(yōu)點
1. 查詢效率高
由于釆用了共享內(nèi)存機制和樹型結構的描述以及更新緩存的技 術,所以查詢與更新的效率要高。
2. 功能安全可靠
雙文件交替讀寫的方而以及緩存機制的應用,從而保障了功能的 安全可靠性。
3. 輕巧而靈活
釆用嵌入進程的方式,使得程序靈活性大大提高,實現(xiàn)上比較輕 便,容易實現(xiàn)。


圖l為本發(fā)明實施例中程序初始化流程圖; 圖2為本發(fā)明實施例中水印操作流程圖。
具體實施例方式
一種支持多進程的嵌入式的樹形數(shù)據(jù)庫技術,包括程序初始流程 和水印操作流程。
初始流程如圖l所示,開始于步驟101初始化讀寫鎖,為了支持多進程操作,所以要使用信號量來實現(xiàn)進程之間的互斥。
然后進入步驟102加載數(shù)據(jù)庫文件與緩存文件中的數(shù)據(jù)到共享內(nèi) 存,數(shù)據(jù)在磁盤上,是以序列化的字符存儲的,這一步就是將磁盤上 的數(shù)據(jù)解析到內(nèi)存中對應的樹形結構中。
加載數(shù)據(jù)庫文件與緩存文件中的數(shù)據(jù)到共享內(nèi)存是這樣實現(xiàn)的 它包括共享內(nèi)存、內(nèi)容緩存和二叉樹序列化存儲,其中,
共享內(nèi)容為在非Windows平臺上通過shmget和shmat函數(shù)實現(xiàn) 共享內(nèi)存的創(chuàng)建與分配置;在Windows平臺上通過CreateFileMapping 和MapViewOfFile函數(shù)實現(xiàn)共享內(nèi)存的創(chuàng)建與分配置;
內(nèi)容緩存為將某一段時間對數(shù)據(jù)庫的更新記錄寫到某一文件中, 等到更新到某一規(guī)模,再統(tǒng)一將數(shù)據(jù)寫到數(shù)據(jù)庫文件中去,目的是提 高操作數(shù)據(jù)庫的效率和安全性;
二叉樹序列化存儲為采用流的方式,通過<<和>>操作符重載, 來實現(xiàn)數(shù)序列化。
然后進入步驟103啟動同步線程,當更新的數(shù)據(jù)內(nèi)容大于一個限 值時,同步線程就會將共享內(nèi)存的數(shù)據(jù)同步到磁盤上,實現(xiàn)持久化存 儲。
水印操作流程如圖2所示,開始于步驟201加讀或?qū)戞i,實現(xiàn)進 程間的互斥。
然后進入步驟202查詢或更新共享內(nèi)存數(shù)據(jù),如果是讀操作,遍 歷二叉樹,取出該文件的水印并返回;如果是寫操作,先更新共享內(nèi) 存的數(shù)據(jù);
最后進入步驟203更新內(nèi)容寫入緩存,如果是寫操作,在更新共 享內(nèi)存中的數(shù)據(jù)之后,保存到緩存文件。
權利要求
1.一種支持多進程的嵌入式的樹型數(shù)據(jù)庫技術,其特征在于包括程序初始流程和水印操作流程,其中,程序初始流程為1-1)初始化讀寫鎖,使用信號量實現(xiàn)進程之間的互斥;1-2)加載數(shù)據(jù)庫文件與緩存文件中的數(shù)據(jù)到共享內(nèi)存,即將磁盤上的數(shù)據(jù)解析到內(nèi)存中對應的樹形結構中;1-3)啟動同步線程,當更新的數(shù)據(jù)內(nèi)容大于一個限值時,同步線程就會將共享內(nèi)存的數(shù)據(jù)同步到磁盤上,實現(xiàn)持久化存儲;水印操作流程為2-1)加讀或?qū)戞i,實現(xiàn)進程間的互斥;2-2)查詢或更新共享內(nèi)存數(shù)據(jù),如果是讀操作,遍歷二叉樹,取出該文件的水印并返回;如果是寫操作,先更新共享內(nèi)存的數(shù)據(jù);2-3)更新內(nèi)容寫入緩存,如果是寫操作,在更新共享內(nèi)存中的數(shù)據(jù)之后,保存到緩存文件。
2. 根據(jù)權利要求1所述的支持多進程的嵌入式的樹型數(shù)據(jù)庫技 術,其特征在于上述第1-2)步中加載數(shù)據(jù)庫文件與緩存文件中的 數(shù)據(jù)到共享內(nèi)存是這樣實現(xiàn)的它包括共享內(nèi)存、內(nèi)容緩存和二叉樹 序列化存儲,其中,共享內(nèi)容為在非Windows平臺上通過shmget和shmat函數(shù)實現(xiàn) 共享內(nèi)存的創(chuàng)建與分配置;在Windows平臺上通過CreateFileMapping 和MapViewOfFile函It實現(xiàn)共享內(nèi)存的創(chuàng)建與分配置;內(nèi)容緩存為將某一段時間對數(shù)據(jù)庫的更新記錄寫到某一文件中, 等到更新到某一規(guī)模,再統(tǒng)一將數(shù)據(jù)寫到數(shù)據(jù)庫文件中去;二叉樹序列化存儲為采用流的方式,通過<<和〉>操作符重載, 來實現(xiàn)數(shù)序列化。 全文摘要
本發(fā)明是一種支持多進程的嵌入式的樹型數(shù)據(jù)庫技術,包括程序初始流程和水印操作流程,采用共享內(nèi)存機制、二叉樹遍歷與序列化存儲技術等,查詢效率高、功能安全可靠、輕巧而靈活。
文檔編號G06F9/52GK101551808SQ20091001551
公開日2009年10月7日 申請日期2009年5月13日 優(yōu)先權日2009年5月13日
發(fā)明者春 劉, 劉宗福, 劉毅楓, 進 王, 磊 石, 黃三偉 申請人:山東中創(chuàng)軟件商用中間件股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宁晋县| 德江县| 佳木斯市| 磐安县| 通化市| 民乐县| 二连浩特市| 金山区| 阳山县| 安泽县| 陆河县| 剑川县| 哈密市| 玛纳斯县| 阿克陶县| 新蔡县| 图们市| 开化县| 满洲里市| 舒城县| 休宁县| 固安县| 章丘市| 榕江县| 温宿县| 新龙县| 西和县| 罗城| 沧州市| 彰武县| 沛县| 四子王旗| 边坝县| 宣城市| 监利县| 兰考县| 德州市| 长兴县| 秦皇岛市| 贡嘎县| 辽阳县|