欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

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

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

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


圖l為本發(fā)明實(shí)施例中程序初始化流程圖; 圖2為本發(fā)明實(shí)施例中水印操作流程圖。
具體實(shí)施例方式
一種支持多進(jìn)程的嵌入式的樹(shù)形數(shù)據(jù)庫(kù)技術(shù),包括程序初始流程 和水印操作流程。
初始流程如圖l所示,開(kāi)始于步驟101初始化讀寫(xiě)鎖,為了支持多進(jìn)程操作,所以要使用信號(hào)量來(lái)實(shí)現(xiàn)進(jìn)程之間的互斥。
然后進(jìn)入步驟102加載數(shù)據(jù)庫(kù)文件與緩存文件中的數(shù)據(jù)到共享內(nèi) 存,數(shù)據(jù)在磁盤(pán)上,是以序列化的字符存儲(chǔ)的,這一步就是將磁盤(pán)上 的數(shù)據(jù)解析到內(nèi)存中對(duì)應(yīng)的樹(shù)形結(jié)構(gòu)中。
加載數(shù)據(jù)庫(kù)文件與緩存文件中的數(shù)據(jù)到共享內(nèi)存是這樣實(shí)現(xiàn)的 它包括共享內(nèi)存、內(nèi)容緩存和二叉樹(shù)序列化存儲(chǔ),其中,
共享內(nèi)容為在非Windows平臺(tái)上通過(guò)shmget和shmat函數(shù)實(shí)現(xiàn) 共享內(nèi)存的創(chuàng)建與分配置;在Windows平臺(tái)上通過(guò)CreateFileMapping 和MapViewOfFile函數(shù)實(shí)現(xiàn)共享內(nèi)存的創(chuàng)建與分配置;
內(nèi)容緩存為將某一段時(shí)間對(duì)數(shù)據(jù)庫(kù)的更新記錄寫(xiě)到某一文件中, 等到更新到某一規(guī)模,再統(tǒng)一將數(shù)據(jù)寫(xiě)到數(shù)據(jù)庫(kù)文件中去,目的是提 高操作數(shù)據(jù)庫(kù)的效率和安全性;
二叉樹(shù)序列化存儲(chǔ)為采用流的方式,通過(guò)<<和>>操作符重載, 來(lái)實(shí)現(xiàn)數(shù)序列化。
然后進(jìn)入步驟103啟動(dòng)同步線程,當(dāng)更新的數(shù)據(jù)內(nèi)容大于一個(gè)限 值時(shí),同步線程就會(huì)將共享內(nèi)存的數(shù)據(jù)同步到磁盤(pán)上,實(shí)現(xiàn)持久化存 儲(chǔ)。
水印操作流程如圖2所示,開(kāi)始于步驟201加讀或?qū)戞i,實(shí)現(xiàn)進(jìn) 程間的互斥。
然后進(jìn)入步驟202查詢或更新共享內(nèi)存數(shù)據(jù),如果是讀操作,遍 歷二叉樹(shù),取出該文件的水印并返回;如果是寫(xiě)操作,先更新共享內(nèi) 存的數(shù)據(jù);
最后進(jìn)入步驟203更新內(nèi)容寫(xiě)入緩存,如果是寫(xiě)操作,在更新共 享內(nèi)存中的數(shù)據(jù)之后,保存到緩存文件。
權(quán)利要求
1.一種支持多進(jìn)程的嵌入式的樹(shù)型數(shù)據(jù)庫(kù)技術(shù),其特征在于包括程序初始流程和水印操作流程,其中,程序初始流程為1-1)初始化讀寫(xiě)鎖,使用信號(hào)量實(shí)現(xiàn)進(jìn)程之間的互斥;1-2)加載數(shù)據(jù)庫(kù)文件與緩存文件中的數(shù)據(jù)到共享內(nèi)存,即將磁盤(pán)上的數(shù)據(jù)解析到內(nèi)存中對(duì)應(yīng)的樹(shù)形結(jié)構(gòu)中;1-3)啟動(dòng)同步線程,當(dāng)更新的數(shù)據(jù)內(nèi)容大于一個(gè)限值時(shí),同步線程就會(huì)將共享內(nèi)存的數(shù)據(jù)同步到磁盤(pán)上,實(shí)現(xiàn)持久化存儲(chǔ);水印操作流程為2-1)加讀或?qū)戞i,實(shí)現(xiàn)進(jìn)程間的互斥;2-2)查詢或更新共享內(nèi)存數(shù)據(jù),如果是讀操作,遍歷二叉樹(shù),取出該文件的水印并返回;如果是寫(xiě)操作,先更新共享內(nèi)存的數(shù)據(jù);2-3)更新內(nèi)容寫(xiě)入緩存,如果是寫(xiě)操作,在更新共享內(nèi)存中的數(shù)據(jù)之后,保存到緩存文件。
2. 根據(jù)權(quán)利要求1所述的支持多進(jìn)程的嵌入式的樹(shù)型數(shù)據(jù)庫(kù)技 術(shù),其特征在于上述第1-2)步中加載數(shù)據(jù)庫(kù)文件與緩存文件中的 數(shù)據(jù)到共享內(nèi)存是這樣實(shí)現(xiàn)的它包括共享內(nèi)存、內(nèi)容緩存和二叉樹(shù) 序列化存儲(chǔ),其中,共享內(nèi)容為在非Windows平臺(tái)上通過(guò)shmget和shmat函數(shù)實(shí)現(xiàn) 共享內(nèi)存的創(chuàng)建與分配置;在Windows平臺(tái)上通過(guò)CreateFileMapping 和MapViewOfFile函It實(shí)現(xiàn)共享內(nèi)存的創(chuàng)建與分配置;內(nèi)容緩存為將某一段時(shí)間對(duì)數(shù)據(jù)庫(kù)的更新記錄寫(xiě)到某一文件中, 等到更新到某一規(guī)模,再統(tǒng)一將數(shù)據(jù)寫(xiě)到數(shù)據(jù)庫(kù)文件中去;二叉樹(shù)序列化存儲(chǔ)為采用流的方式,通過(guò)<<和〉>操作符重載, 來(lái)實(shí)現(xiàn)數(shù)序列化。 全文摘要
本發(fā)明是一種支持多進(jìn)程的嵌入式的樹(shù)型數(shù)據(jù)庫(kù)技術(shù),包括程序初始流程和水印操作流程,采用共享內(nèi)存機(jī)制、二叉樹(shù)遍歷與序列化存儲(chǔ)技術(shù)等,查詢效率高、功能安全可靠、輕巧而靈活。
文檔編號(hào)G06F9/52GK101551808SQ20091001551
公開(kāi)日2009年10月7日 申請(qǐng)日期2009年5月13日 優(yōu)先權(quán)日2009年5月13日
發(fā)明者春 劉, 劉宗福, 劉毅楓, 進(jìn) 王, 磊 石, 黃三偉 申請(qǐng)人:山東中創(chuàng)軟件商用中間件股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
闽清县| 盐源县| 临洮县| 象州县| 安阳市| 乌兰县| 米易县| 寿光市| 长岭县| 洛南县| 普格县| 德江县| 依安县| 吴川市| 蒲江县| 凌云县| 临漳县| 甘洛县| 崇明县| 牙克石市| 民县| 乌拉特后旗| 三明市| 连江县| 明星| 杂多县| 兴化市| 腾冲县| 武汉市| 高阳县| 开平市| 隆德县| 盐边县| 收藏| 中阳县| 林州市| 前郭尔| 滨海县| 前郭尔| 固阳县| 岳池县|