亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

地質(zhì)資料信息集群機(jī)理與接口聚合模型的制作方法

文檔序號:6488593閱讀:292來源:國知局
地質(zhì)資料信息集群機(jī)理與接口聚合模型的制作方法
【專利摘要】一種地質(zhì)資料信息集群機(jī)理與接口聚合模型,包括拉模式、推模式、接模式和送模式四個集群模式;拉模式采集集群節(jié)點(diǎn)注冊表信息建立三維字典,并建立集群組網(wǎng)形態(tài)或集群架構(gòu)映射樹;推模式依據(jù)集群架構(gòu)映射樹定位某集群所處的遠(yuǎn)程路徑,進(jìn)行并行化查詢,通過查詢結(jié)果判斷是否能夠獲取所述遠(yuǎn)程路徑的文檔流,如果能夠獲取所述遠(yuǎn)程路徑的文檔流,則將遠(yuǎn)程路徑的文檔流保存在數(shù)據(jù)存儲中心;送模式通過接口指令調(diào)用請求,對保存在所述數(shù)據(jù)存儲中心的數(shù)據(jù)執(zhí)行SQL查詢操作,并將查詢結(jié)果發(fā)送到調(diào)用接口;接模式在瀏覽器端向所述遠(yuǎn)程路徑接口服務(wù)發(fā)送請求。本發(fā)明消除了信息孤島并實現(xiàn)結(jié)點(diǎn)群互聯(lián)互通,有利于避免了地質(zhì)工作重復(fù)投入、減少成本。
【專利說明】地質(zhì)資料信息集群機(jī)理與接口聚合模型
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及地質(zhì)調(diào)查【技術(shù)領(lǐng)域】,尤其涉及一種具有空間位置的地質(zhì)資料信息集群“推拉接送”整裝接口機(jī)理與聚合模型。
【背景技術(shù)】
[0002]長期以來,地質(zhì)工作形成的大量地質(zhì)資料為社會發(fā)展和國民經(jīng)濟(jì)建設(shè)提供了重要支撐,在礦產(chǎn)資源勘查開發(fā)和地球科學(xué)研究方面所起的導(dǎo)向作用尤為顯著,但因分散式信息孤島問題的存在而導(dǎo)致地質(zhì)資料信息服務(wù)渠道不暢、能力不強(qiáng)、領(lǐng)域不寬等諸多弊端日趨凸顯,制約著地質(zhì)資料信息潛在價值的充分發(fā)揮,因此,在統(tǒng)一標(biāo)準(zhǔn)體系下構(gòu)筑集群共享服務(wù)平臺,從而實現(xiàn)地質(zhì)資料信息服務(wù)渠道和服務(wù)方式多元化十分重要。
[0003]檢索顯示,在集群機(jī)理方面與本發(fā)明接近的同類技術(shù)主要涉及服務(wù)器集群、數(shù)據(jù)庫集群和高性能計算等領(lǐng)域,如專利號:200510087857.2,200510087855.3,200610170452.X和200610170452.X等,此類專利成果側(cè)重于硬件連接、數(shù)據(jù)存儲分布、編程指令優(yōu)化、節(jié)點(diǎn)狀態(tài)監(jiān)控或者負(fù)載均衡等基礎(chǔ)環(huán)境的搭建方面,未涉及地質(zhì)資料信息(尤其是空間信息)專業(yè)應(yīng)用范疇;檢索還表明,基于網(wǎng)絡(luò)環(huán)境信息傳遞采取的技術(shù)措施符合“推拉”模式的應(yīng)用并不鮮見,已出現(xiàn)在多篇學(xué)術(shù)論文中,如:基于區(qū)域的信息推送服務(wù)模式探討-《情報探索》2011年09期,但集群化“推拉接送”整裝接口繼承模式屬本發(fā)明首次提出。

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

[0004]本發(fā)明的目的在于設(shè)計一種新型的地質(zhì)信息集群機(jī)理與接口聚合模型,解決上述問題。
[0005]為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
[0006]一種地質(zhì)資料信息集群機(jī)理與接口聚合模型,包括拉模式、推模式、接模式和送模式四個集群模式;
[0007]所述拉模式采集集群節(jié)點(diǎn)注冊表信息建立三維字典,并建立集群組網(wǎng)形態(tài)或集群架構(gòu)映射樹;
[0008]所述推模式依據(jù)所述集群架構(gòu)映射樹定位某集群所處的遠(yuǎn)程路徑,進(jìn)行并行化查詢,通過查詢結(jié)果判斷是否能夠獲取所述遠(yuǎn)程路徑的文檔流,如果能夠獲取所述遠(yuǎn)程路徑的文檔流,則將所述遠(yuǎn)程路徑的文檔流保存在數(shù)據(jù)存儲中心;
[0009]所述送模式通過接口指令調(diào)用請求,對保存在所述數(shù)據(jù)存儲中心的數(shù)據(jù)執(zhí)行SQL查詢操作,并將查詢結(jié)果發(fā)送到調(diào)用接口 ;
[0010]所述接模式在瀏覽器端向所述遠(yuǎn)程路徑接口服務(wù)發(fā)送請求。
[0011]優(yōu)選的,所述拉模式采取并行技術(shù)進(jìn)行觸碰發(fā)現(xiàn)和信息抓取,所述三維字典由集群編號、地質(zhì)資料XML文檔序號和存檔時間戳建立三維字典。
[0012]優(yōu)選的,所述推模式對所述遠(yuǎn)程路徑的定位以所述存檔時間戳為紐帶。
[0013]優(yōu)選的,所述送模式依據(jù)外界提供的關(guān)鍵字匹配、空間范圍約束和類別篩選條件等多種REST接口指令調(diào)用請求,通過并發(fā)控制和并行查詢機(jī)制,對集群數(shù)據(jù)存儲中心關(guān)系型數(shù)據(jù)庫按海量分頁、分類控制和正則匹配算法執(zhí)行SQL查詢操作。
[0014]優(yōu)選的,所述接模式在瀏覽器端通過JavaScript腳本向遠(yuǎn)程接口服務(wù)發(fā)送請求,瀏覽器與服務(wù)器兩者間的通訊采用AJAX技術(shù)實現(xiàn)同源訪問,采用Web Service代理技術(shù)解決因瀏覽器安全策略對集群結(jié)點(diǎn)接口跨域訪問的限制,在結(jié)點(diǎn)群服務(wù)器之間使用HttpffebRequest類進(jìn)行通訊、通過HttpWebResponse類接收應(yīng)答。
[0015]優(yōu)選的,所述集群組網(wǎng)架構(gòu)具備動態(tài)性,基于所述文檔時間戳的變更或失效機(jī)制所反映的遠(yuǎn)程事件和行為主要包括:某群為新增、某群已退出或已被刪除、某群編號或次序有變更、某群訪問鏈路中斷、某文檔被替代、某文檔被刪除、某文檔內(nèi)容發(fā)生變化和某文檔讀取出現(xiàn)異常。
[0016]本發(fā)明的有益效果可以總結(jié)如下:
[0017]1.本發(fā)明是實現(xiàn)網(wǎng)絡(luò)環(huán)境下面向公眾提供共享服務(wù)的核心組件之一,是地學(xué)海量空間信息技術(shù)瓶頸的有效解決方案,也是合理消除信息孤島并實現(xiàn)結(jié)點(diǎn)群互聯(lián)互通的關(guān)鍵所在。
[0018]2.本發(fā)明通過模型嵌入或接口調(diào)用所獲取到的系列化、權(quán)威性地質(zhì)資料信息服務(wù),不僅可提高地質(zhì)工作社會影響力和公共服務(wù)能力,還有利于避免地質(zhì)工作重復(fù)投入、減少社會投資浪費(fèi)并有助于商業(yè)勘查資本的注入,從而提高地質(zhì)資料信息服務(wù)產(chǎn)品的增值。
【專利附圖】

【附圖說明】
[0019]圖1是本發(fā)明地質(zhì)資料信息集群機(jī)理與接口聚合模型的“推拉接送”類體系繼承與耦合關(guān)系圖。
[0020]圖2是本發(fā)明地質(zhì)資料信息集群機(jī)理與接口聚合模型在地學(xué)空間信息檢索系統(tǒng)主流程的嵌入位置圖(粗虛線框圈定部分)示意圖。
[0021]圖3是本發(fā)明地質(zhì)資料信息集群機(jī)理與接口聚合模型拉模式運(yùn)行流程圖。
[0022]圖4是本發(fā)明地質(zhì)資料信息集群機(jī)理與接口聚合模型推模式運(yùn)行流程圖。
[0023]圖5是本發(fā)明地質(zhì)資料信息集群機(jī)理與接口聚合模型送模式運(yùn)行流程圖。
[0024]圖6是本發(fā)明地質(zhì)資料信息集群機(jī)理與接口聚合模型接模式運(yùn)行流程圖。
[0025]圖7是本發(fā)明地質(zhì)資料信息集群機(jī)理與接口聚合模型數(shù)據(jù)存儲中心主表、詳表級聯(lián)關(guān)系圖。
【具體實施方式】
[0026]為了使本發(fā)明所解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0027]實施例一:
[0028]如圖1所示的本發(fā)明地質(zhì)資料信息集群機(jī)理與接口聚合模型的“推拉接送”類體系繼承與耦合關(guān)系圖,本發(fā)明圍繞集群機(jī)理與接口聚合模型按“推拉接送”四個模式分述如下:
[0029]1、拉模式[0030]依據(jù)集群注冊表,以群組為處理單元,針對多協(xié)議(如http、https、ftp、file等)采取CPU多核并行技術(shù)進(jìn)行觸碰發(fā)現(xiàn)和信息抓取,由集群編號、地質(zhì)資料XML文檔序號和存檔時間戳聯(lián)合組成的哈希鍵值建立三維字典,形成分布式集群組網(wǎng)形態(tài)或架構(gòu)映射樹。其中,file協(xié)議強(qiáng)行指向受保護(hù)的.\App Data\xmlpublish路徑,以便支持發(fā)布池以便支持發(fā)布池(自留地)。
[0031]本發(fā)明點(diǎn)在模型系統(tǒng)中處于“基類”位置,其替代技術(shù)方案可為“網(wǎng)絡(luò)爬蟲”。
[0032]2、推模式
[0033]依據(jù)集群架構(gòu)映射樹以集群文檔時間戳為紐帶快速定位到某群所處的遠(yuǎn)程路徑,進(jìn)行并行化查詢操作,判別是否可按明文或暗文壓縮方式獲取遠(yuǎn)程路徑內(nèi)的若干文檔流,實現(xiàn)樹結(jié)構(gòu)到關(guān)系模型(層疊二維表)的轉(zhuǎn)換。
[0034]為使地質(zhì)資料文檔內(nèi)“點(diǎn)、線、面、貼圖”細(xì)粒度空間實體支持訪問接口 XPATH_“XML軸路徑查詢微語言”快速遍歷技術(shù),對每個線圖元和面圖元進(jìn)行幾何拓?fù)?長度、周長、面積、范圍、內(nèi)點(diǎn))計算并將結(jié)果存入屬性字段表,采取“長事務(wù)”機(jī)制將空間實體按分類結(jié)構(gòu)推入服務(wù)器端SQL數(shù)據(jù)存儲中心,完成正向同步過程。其中,地質(zhì)體“內(nèi)點(diǎn)”算法支持“湖中多島”概念,能返回任意形狀各向均質(zhì)多邊形的重心位置,可用于板塊動力學(xué)和地質(zhì)災(zāi)害滑坡體等方面的量化研究。
[0035]由于集群組網(wǎng)架構(gòu)具備動態(tài)性,基于時間戳的變更或失效機(jī)制所反映的遠(yuǎn)程事件和行為包括:某群為新增、某群已退出或已被刪除、某群編號或次序有變更、某群訪問鏈路中斷、某文檔被替代、某文檔被刪除、某文檔內(nèi)容發(fā)生變化、某文檔讀取出現(xiàn)異常等癥狀。為解決此類問題采取了反向并行對等技術(shù),包括整理并優(yōu)化數(shù)據(jù)庫、聚合重構(gòu)各類關(guān)系表、回收無效的存儲碎片、重建數(shù)據(jù)庫Btree和GIST索引,以便使分布式集群架構(gòu)與數(shù)據(jù)存儲中心保持一致并提高檢索效率。
[0036]本發(fā)明點(diǎn)在模型系統(tǒng)中處于一級“派生類”位置,其替代技術(shù)方案可為“網(wǎng)格計算”或“彈性計算”。
[0037]3、送模式(基于 Microsoft.NetFramework WCF 技術(shù)的 REST 接 口服務(wù))
[0038]依據(jù)外界提供的關(guān)鍵字匹配、空間范圍約束和類別篩選條件等多種REST(表述性狀態(tài)轉(zhuǎn)移)接口指令調(diào)用請求,通過并發(fā)控制和并行查詢(PLINQ)機(jī)制,對集群數(shù)據(jù)存儲中心關(guān)系型數(shù)據(jù)庫按海量分頁、分類控制和正則匹配算法執(zhí)行相應(yīng)的SQL查詢操作。
[0039]其中,關(guān)鍵字列表查詢可按“并且”、“或者”兩種運(yùn)算邏輯對圖元屬性內(nèi)容進(jìn)行模糊匹配;空間范圍約束查詢支持鼠標(biāo)點(diǎn)擊或拉框以及專題圖層之間呈疊置、落入、相交或接觸關(guān)系的GIS空間分析運(yùn)算功能;類別篩選查詢支持?jǐn)?shù)據(jù)倉、數(shù)據(jù)集(如:成礦帶、行政區(qū)劃、盆地流域)、數(shù)據(jù)庫(如:區(qū)域地質(zhì)、礦產(chǎn)勘查等專業(yè)類別)、圖層(如:比例尺分幅、礦種)級聯(lián)關(guān)系枚舉分類檢索。
[0040]查詢返回的結(jié)果經(jīng)聚合聚類發(fā)送至調(diào)用接口,完成由SQL關(guān)系數(shù)據(jù)庫向整裝(以當(dāng)前結(jié)點(diǎn)為軸沿父代路徑遞歸回溯至根結(jié)點(diǎn))XML結(jié)構(gòu)樹的再造與重構(gòu)。
[0041]送模式所有功能均以REST指令方式宿主于Windows IIS服務(wù),外界以HTTP路由協(xié)議訪問,這不僅提供了多元異構(gòu)地質(zhì)資料信息跨平臺訪問、交換和共享解決方案,還通過分頁機(jī)制有效解決了矢量型地學(xué)空間信息“海量”效應(yīng)(如海量檢索、海量傳輸、海量展現(xiàn)等)引發(fā)的諸多技術(shù)瓶頸。[0042]該類接口的可定制性、可訪問性和可伸縮性大大降低了集群“二次開發(fā)”技術(shù)和地質(zhì)資料信息“再利用”的難度,為地質(zhì)資料的跨行業(yè)應(yīng)用提供了底層可嵌入式接口范式和設(shè)計準(zhǔn)則。與此同時,該類接口針對外界訪問模糊了結(jié)點(diǎn)群軟硬件環(huán)境邊界,可將用戶的關(guān)注點(diǎn)直接鎖定到地質(zhì)資料信息豐富的專業(yè)內(nèi)涵和呈現(xiàn)的功能服務(wù)方面。
[0043]本發(fā)明點(diǎn)在模型系統(tǒng)中處于二級“派生類”位置,其REST接口替代技術(shù)方案可為“SOAP”。
[0044]4、接模式(接口聚合器)
[0045]在瀏覽器端通過JavaScript腳本向遠(yuǎn)程接口服務(wù)發(fā)送請求,瀏覽器與服務(wù)器兩者間的通訊采用AJAX技術(shù)實現(xiàn)同源訪問,采用Web Service代理技術(shù)解決因瀏覽器安全策略對集群結(jié)點(diǎn)接口跨域訪問的限制;在結(jié)點(diǎn)群服務(wù)器之間使用HttpWebRequest類進(jìn)行通訊、通過HttpWebResponse類接收應(yīng)答,以便使地質(zhì)資料信息傳輸可穿越異構(gòu)網(wǎng)絡(luò)環(huán)境。
[0046]通過異步調(diào)用接收遠(yuǎn)程應(yīng)答的地質(zhì)資料空間信息,為界面層提供解析、呈現(xiàn)和交互服務(wù)。
[0047]本發(fā)明點(diǎn)在模型系統(tǒng)中處于遠(yuǎn)端界面層位置。
[0048]實施例二:
[0049]本發(fā)明采用面向用戶群體、面向數(shù)據(jù)資源、面向協(xié)同服務(wù)的架構(gòu)思想,在參考OGC國際開放標(biāo)準(zhǔn)的基礎(chǔ)上,將具有空間定位特征的多元異構(gòu)地質(zhì)資料信息進(jìn)行統(tǒng)一化描述,使其便于整合、共享和發(fā)布;依托高效的并行計算前沿理論,將結(jié)點(diǎn)組網(wǎng)模型映射成具松散耦合(彈性)特征的網(wǎng)狀或樹狀“群組”體系,每個獨(dú)立群或派生群均由“推拉接送”接口聚合器構(gòu)成,向外界呈現(xiàn)瀏覽器對結(jié)點(diǎn)群(Browser vs Nodes)的訪問態(tài)勢。依時間順序?qū)⒐ぷ髁鞒虅澐譃楦袷街贫?、模型設(shè)計、測試評估和部署運(yùn)行四個主要階段。分述如下:
[0050]1、格式制定
[0051]為使集群節(jié)點(diǎn)間數(shù)據(jù)便于存儲、交換和解析,在參考OGC國際標(biāo)準(zhǔn)基礎(chǔ)上,將地質(zhì)資料信息按“點(diǎn)、線、面、貼圖”四類特征進(jìn)行統(tǒng)一化描述和細(xì)粒度劃分,形成金字塔狀彈性分類結(jié)構(gòu)樹:I個數(shù)據(jù)倉-N個數(shù)據(jù)集-N個數(shù)據(jù)庫-N個數(shù)據(jù)層-N個點(diǎn)線面貼圖(參數(shù)、屬性、權(quán)限)。部分節(jié)點(diǎn)元素定義與OGC推薦的KML、GML保持適度兼容并進(jìn)行了功能性擴(kuò)充,尤其體現(xiàn)在安全策略、幾何范圍、拓?fù)鋵傩缘确矫?。其中,幾何范圍〈LatLonBox〉屬于動態(tài)元素,目的是為基于“軸路徑”的XPATH快速遍歷提供空間約束參數(shù);《visibility〉元素定義為四態(tài)鍵,依次記錄并控制分類樹在界面層是否可視、半可視、不可視、未發(fā)生獲??;〈open〉元素定義為六態(tài)鍵:0 =關(guān)閉態(tài)(服務(wù)器端:未讀取)、1 =開啟態(tài)(服務(wù)器端:未讀取)、pages+page+2 =關(guān)閉態(tài)(服務(wù)器端:已讀取)、pages+page+3 =開啟態(tài)(服務(wù)器端:已讀取)、4 =關(guān)閉態(tài)(本地:已讀取)、5 =開啟態(tài)(本地:已讀取),用于控制分類樹如何呈現(xiàn)在界面層并記錄異步通訊事件。
[0052]文件類型采用XML擴(kuò)展名,此類文件已由操作系統(tǒng)在類型關(guān)聯(lián)(MME)中預(yù)定義為“ t ext/xml ”,可自由穿越網(wǎng)絡(luò)防火墻實現(xiàn)跨平臺訪問。
[0053]以下是本發(fā)明專用的XML架構(gòu)定義及說明:
[0054]< S xml version = " 1.0 " encoding = " utf-8 " 2 >
[0055]<geo>
[0056] <Dataware>< !—數(shù)據(jù)倉定義一>[0057]<name>GEOsite</name>< !—數(shù)據(jù)倉名稱一>
[0058]<description>GEOsite 工作區(qū)〈/descriptionX !—數(shù)據(jù)倉描述一>
[0059]<visibility>l</visibility>< ! —visibility 為 0/1/2/3 四態(tài),指不是否可視、半可視、不可視、未發(fā)生獲取,默認(rèn)值0->
[0060]<open>l</open>< ! —open為0/1,指示是否打開,忽略則取默認(rèn)值I—>
[0061]〈DatasetX !—數(shù)據(jù)集定義一>
[0062]〈name〉數(shù)據(jù)集名稱〈/name〉
[0063]〈description〉數(shù)據(jù)集描述〈/description〉
[0064]<visibility>l</visibility>< ! —visibility 為 0/1/2/3 四態(tài),指不是否可視、
半可視、不可視、未發(fā)生獲取,默認(rèn)值0->
[0065]<open>l</open>< ! —open為0/1,指示是否打開,忽略則取默認(rèn)值I—>
[0066]〈DatabaseX !—數(shù)據(jù)庫定義-->
[0067]〈name〉數(shù)據(jù)庫名稱〈/name〉
[0068]〈description〉數(shù)據(jù)庫描述〈/description〉
[0069]<visibility>l</visibility>< ! —visibility 為 0/1/2/3 四態(tài),指不是否可視、
半可視、不可視、未發(fā)生獲取,默認(rèn)值0->
[0070]<open>l</open>< ! —open為0/1,指示是否打開,忽略則取默認(rèn)值I—>
[0071]<Layer>< !—圖層定義一>
[0072]〈name〉圖層名稱〈/name〉
[0073]〈description〉圖層描述〈/description〉
[0074]<visibility>l</visibility>< ! —visibility 為 0/1 二態(tài),指不是否可視、不可視,默認(rèn)值O—>
[0075]<open>l</open>< ! —open 為 0/1/2/3/4/5 六態(tài),O =關(guān)閉態(tài)(服務(wù)器端:未讀取)1 =開啟態(tài)(服務(wù)器端:未讀取)pageS+page+2 =關(guān)閉態(tài)(服務(wù)器端:已讀取)pages+page+3 =開啟態(tài)(服務(wù)器端:已讀取)4 =關(guān)閉態(tài)(本地:已讀取)5 =開啟態(tài)(本地:已讀取),默認(rèn)值O—>
[0076]〈Element id = "內(nèi)部圖兀序號(0) " category = " Point" rank = "訪問級別號(O~3)默認(rèn)Orank = O可編輯=I可查看屬性2 =可瀏覽提示3 =僅顯示圖形-服務(wù)器端"X! —點(diǎn)要素定義,支持自定義子圖符號一X ! —在點(diǎn)要素中,PoinUcenter和LatLonBox均釆用了相同的坐標(biāo)對,雖出現(xiàn)信息冗余,卻為XPATH軸遍歷法提供了便利一>
[0077]〈name from ="字段序號,字段序號...默認(rèn)0,_1可忽略字段"center ="十進(jìn)制經(jīng)度,十進(jìn)制緯度" > 點(diǎn)圖元快捷提示默認(rèn)為空〈/name〉
[0078]〈description〉
[0079]〈field name="字段名稱默認(rèn)【field】"alias="字段別名默認(rèn)【描述信息】" > 字段內(nèi)容默認(rèn)為空〈/field〉
[0080]</description〉
[0081]〈Point marker="點(diǎn)圖元子圖編號(O~8 )默認(rèn)O子圖均可在服務(wù)器端自定義">
[0082]〈coordinates〉十進(jìn)制經(jīng)度,十進(jìn)制諱度〈/coordinates〉[0083]〈/Point〉
[0084]〈LatLonBox〉
[0085]〈north〉(上)十進(jìn)制諱度〈/north〉
[0086]〈south〉(下)十進(jìn)制諱度〈/south〉
[0087]〈west〉(左)十進(jìn)制經(jīng)度〈/west〉
[0088]〈east〉(右)十進(jìn)制經(jīng)度〈/east〉
[0089]〈/LatLonBox〉
[0090]〈/Element〉
[0091]〈Element id="內(nèi)部圖兀序號(I)" category = ,f Line" rank="訪問級別號(0~3)默認(rèn)Orank = O可編輯=I可查看屬性2 =可瀏覽提示3 =僅顯示圖形-服務(wù)器端"X! —線要素定義,支持參數(shù)控制和屬性結(jié)構(gòu)定義一>
[0092]< !—在線要素中,name節(jié)中的center為線元中點(diǎn)坐標(biāo)對一>
[0093]〈name from = " 字段序號組成的逗號分隔序列,若此序列含負(fù)值,則強(qiáng)行取name,并忽略字段;若某序號并不存在,則跳過該值"center = "十進(jìn)制經(jīng)度,十進(jìn)制緯度" >提示信息默認(rèn)為空〈/name〉
[0094]〈description〉
[0095]〈field name="字段名稱"alias="字段別名" > 字段內(nèi)容默認(rèn)為空〈/field>
[0096]</description〉
[0097]<LineString width ="線寬度(I ~10)默認(rèn) I " alpha ="線透明度(O ~100)默認(rèn)100" rgb = ,r線顏色紅綠藍(lán)默認(rèn)#ff0000" >
[0098]〈coordinates〉十進(jìn)制經(jīng)度,十進(jìn)制諱度空格空格十進(jìn)制經(jīng)度,十進(jìn)制諱度〈/coordinates〉
[0099]</LineString>
[0100]〈LatLonBox〉
[0101]〈north〉(上)十進(jìn)制諱度〈/north〉
[0102]〈south〉(下)十進(jìn)制諱度〈/south〉
[0103]〈west〉(左)十進(jìn)制經(jīng)度〈/west〉
[0104]〈east〉(右)十進(jìn)制經(jīng)度〈/east〉
[0105]〈/LatLonBox〉
[0106]〈/Element〉
[0107]〈Element id = "內(nèi)部圖兀序號(2) " category = !f Polygon" rank = "訪問級別號(0~3)默認(rèn)Orank:0 =可編輯(移動、刪除、修改)I =可查看屬性(屬性瀏覽+提示)2=可瀏覽(提示)3=僅顯示圖形(提示)-服務(wù)器端"X! —面要素定義,參數(shù)定義和結(jié)構(gòu)定義一>〈! 一在面要素中,name節(jié)中的center為面元最佳內(nèi)點(diǎn)坐標(biāo)對一>
[0108]〈name from = "字段序號組成的逗號分隔序列,若此序列含負(fù)值,則強(qiáng)行取name,并忽略字段;若某序號并不存在,則跳過該值"center = "十進(jìn)制經(jīng)度,十進(jìn)制緯度" >提示信息〈/name〉
[0109]〈description〉[0110]〈field name="字段名稱"alias="字段別名" > 字段內(nèi)容默認(rèn)為空〈/field>
[0111]</description〉
[0112]〈Polygon〉
[0113]<outerBoundaryls>
[0114]〈LinearRing width ="邊界線寬度(I~10)默認(rèn)I" alpha ="邊界線透明度(O~100)默認(rèn)100" rgb = ,r邊界線顏色紅綠藍(lán)默認(rèn)#ff0000" fillalpha = "面透明度(O ~100)默認(rèn) 20" fillrgb ="面顏色默認(rèn) SOOOOffir >
[0115]〈coordinates〉(起始點(diǎn))十進(jìn)制經(jīng)度,十進(jìn)制諱度空格...,...,...空格(最末點(diǎn))十進(jìn)制經(jīng)度,十進(jìn)制諱度(起始點(diǎn))十進(jìn)制經(jīng)度,十進(jìn)制諱度〈/coordinates〉
[0116]〈/LinearRing〉
[0117]</outerBoundaryls>
[0118]<innerBoundaryls>< !— “湖中多島”一>
[0119]〈LinearRing〉
[0120]〈coordinates〉(起始點(diǎn))十進(jìn)制經(jīng)度,十進(jìn)制諱度空格...,...,...空格(最末點(diǎn))十進(jìn)制經(jīng)度,十進(jìn)制諱度(起始點(diǎn))十進(jìn)制經(jīng)度,十進(jìn)制諱度〈/coordinates〉
[0121 ] 〈/LinearRing〉
[0122]〈LinearRing〉
[0123]〈coordinates〉(起始點(diǎn))十進(jìn)制經(jīng)度,十進(jìn)制諱度空格空格(最末點(diǎn))十進(jìn)制經(jīng)度,十進(jìn)制諱度(起始點(diǎn))十進(jìn)制經(jīng)度,十進(jìn)制諱度〈/coordinates〉
[0124]〈/LinearRing〉
[0125]</innerBoundaryls>
[0126]〈/Polygon〉
[0127]〈LatLonBox〉
[0128]〈north〉(上)十進(jìn)制諱度〈/north〉
[0129]〈south〉(下)十進(jìn)制諱度〈/south〉
[0130]〈west〉(左)十進(jìn)制經(jīng)度〈/west〉
[0131 ] 〈east〉(右)十進(jìn)制經(jīng)度〈/east〉
[0132]〈/LatLonBox〉
[0133]〈/Element〉
[0134]〈Element id="內(nèi)部圖兀序號(2)" category = !f Image" rank="訪問級別號(0~3)默認(rèn)Orank:0 =可編輯(移動、刪除、修改)I =可查看屬性(屬性瀏覽+提示)2=可瀏覽(提示)3=僅顯示圖形(提示)-服務(wù)器端"X! —在貼圖要素中,name節(jié)中的center為范圍中點(diǎn)坐標(biāo)對一>
[0135]〈name from = "字段序號組成的逗號分隔序列,若此序列含負(fù)值,則強(qiáng)行取name,并忽略字段;若某序號并不存在,則跳過該值"center = "十進(jìn)制經(jīng)度,十進(jìn)制緯度" >提示信息〈/name〉
[0136]〈description〉、
[0137]〈field name="字段名稱"alias="字段別名" > 字段內(nèi)容默認(rèn)為空〈/f ield>
[0138]</description)
[0139]〈Icon〉
[0140]<href>http://www.map.com/2.png</href>
[0141]〈/Icon〉
[0142]〈LatLonBox〉
[0143]〈north〉(上)十進(jìn)制諱度〈/north〉
[0144]〈south〉(下)十進(jìn)制纟韋度〈/south〉
[0145]〈west〉(左)十進(jìn)制經(jīng)度〈/west〉
[0146]〈east〉(右)十進(jìn)制經(jīng)度〈/east〉
[0147]〈/LatLonBox〉
[0148]〈/Element〉
[0149]〈/Layer〉
[0150]〈/Database〉
[0151]〈/Dataset〉
[0152]〈/Dataware〉
[0153]</geo>
[0154]2、模型設(shè)計
[0155]在Microsoft Visual Studio 2010開發(fā)環(huán)境內(nèi)采用C#語言編寫,主要支撐技術(shù)包括:REST(表述性狀態(tài)轉(zhuǎn)移)、WCF(視窗通訊基礎(chǔ))、PLINQ(并行語言集成查詢)、Parallel (并行化:任務(wù)并行、數(shù)據(jù)并行)。
[0156]說明書附圖中的圖1是本發(fā)明所涉及“推拉接送”模式各模塊之間的繼承關(guān)系和運(yùn)行流程圖。模型定義的類體系自基類至派生類依次為:拉模式類、推模式類、接模式類、送模式類。該模型基于WCF技術(shù)實現(xiàn),類體系承載于Windows IIS服務(wù)中,初始化過程通過注冊路由的方式進(jìn)行;由集群號、文檔號、時間戳組成的三維字典反映了集群節(jié)點(diǎn)組網(wǎng)虛擬形態(tài),是拉模式與推模式的連接紐帶;服務(wù)器端數(shù)據(jù)存儲中心是推模式與接模式的訪問樞紐;圖2中所示的幾個并行體主要針對具有枚舉特征的多個群組和多條地質(zhì)體記錄而展開,從而極大提高了多核服務(wù)器的運(yùn)行性能。
[0157]圖2是本發(fā)明地質(zhì)資料信息集群機(jī)理與接口聚合模型在地學(xué)空間信息檢索系統(tǒng)主流程的嵌入位置圖(粗虛線框圈定部分)示意圖。
[0158]圖3是本發(fā)明地質(zhì)資料信息集群機(jī)理與接口聚合模型拉模式運(yùn)行流程圖。其中,集群注冊表由組網(wǎng)人員按地質(zhì)資料涉密審批流程創(chuàng)建本地或遠(yuǎn)程鏈接并對可發(fā)布文檔進(jìn)行統(tǒng)一組織和命名。經(jīng)手工或自動調(diào)用對等指令,通過發(fā)現(xiàn)機(jī)制完成三維字典的創(chuàng)建。該字典僅在內(nèi)存中開辟,不進(jìn)行物理存儲。
[0159]圖4是本發(fā)明地質(zhì)資料信息集群機(jī)理與接口聚合模型推模式運(yùn)行流程圖。通過手工或自動調(diào)用對等指令,將字典中的時間戳與數(shù)據(jù)存儲中心關(guān)系表進(jìn)行對比,執(zhí)行正向同步過程并存儲空間要素的拓?fù)湫畔⒁员惚3謨烧叩囊恢滦裕蝗缓髮⒆值渲械臅r間戳與遠(yuǎn)程結(jié)點(diǎn)群組進(jìn)行對比,執(zhí)行反向?qū)Φ炔⒅亟ㄋ饕P(guān)系,從而確保集群架構(gòu)與數(shù)據(jù)庫之間嚴(yán)格匹配。[0160]圖5是本發(fā)明地質(zhì)資料信息集群機(jī)理與接口聚合模型送模式運(yùn)行流程圖。將接口指令傳輸?shù)脑L問請求轉(zhuǎn)換為標(biāo)準(zhǔn)SQL語句,通知數(shù)據(jù)存儲中心執(zhí)行該語句并返回結(jié)果集,此結(jié)果涉及的海量問題通過在SQL語句中附加分頁控制查詢參數(shù)進(jìn)行解決。傳送出的XML數(shù)據(jù)經(jīng)過了類別聚合與節(jié)點(diǎn)重構(gòu)以便形成完整的地質(zhì)資料分類樹供解析使用。
[0161]圖6是本發(fā)明地質(zhì)資料信息集群機(jī)理與接口聚合模型接模式運(yùn)行流程圖。遠(yuǎn)程接口服務(wù)按服務(wù)器端后臺和瀏覽器端前臺兩者調(diào)用方式進(jìn)行。后臺調(diào)用采用.net提供的類實現(xiàn)通訊,前臺調(diào)用采用JavaScript語言提供的AJAX技術(shù)實現(xiàn),瀏覽器端腳本執(zhí)行面學(xué)跨域障礙,本模型采用了服務(wù)器端Web Service代理迂回策略解決了跨域問題。通過異步接收,對封裝的XML數(shù)據(jù)依據(jù)正則算法進(jìn)行過濾提取。
[0162]圖7是“地質(zhì)資料信息集群機(jī)理與接口聚合模型”數(shù)據(jù)存儲中心主表、詳表級聯(lián)關(guān)系圖。矢量型地質(zhì)資料空間信息的存儲策略制約著海量信息訪問、檢索、運(yùn)算等功能的實現(xiàn)和執(zhí)行效率,本模型將關(guān)系數(shù)據(jù)庫劃分為五個呈現(xiàn)級聯(lián)關(guān)系的二維表:數(shù)據(jù)倉、數(shù)據(jù)集、數(shù)據(jù)庫、圖層、圖元。當(dāng)首次調(diào)用對等指令時,將采取“長事務(wù)”機(jī)制自動建立各關(guān)系表,同時還依據(jù)字段的關(guān)聯(lián)性自動建立B樹聯(lián)合索引、GIST空間索引以及表與表之間“一對多”約束關(guān)系鏈。
[0163]3、測試評估
[0164]為確保“地質(zhì)資料信息集群機(jī)理與接口聚合模型”的正確性、穩(wěn)定性、安全性和可操作性,依據(jù)中國地質(zhì)調(diào)查局地質(zhì)調(diào)查技術(shù)標(biāo)準(zhǔn)DD2010-01《地質(zhì)調(diào)查軟件開發(fā)測試管理規(guī)程》,2011年7月份組織專家利用專業(yè)軟件對標(biāo)定的各項技術(shù)指標(biāo)進(jìn)行了嚴(yán)格測試,尤其體現(xiàn)在集群節(jié)點(diǎn)模擬、并發(fā)訪問壓力測試、底層接口邊界條件測試和跨平臺兼容性測試等方面。
[0165]4、部署運(yùn)行
[0166]具體實施包括安裝、配置、數(shù)據(jù)制備、節(jié)點(diǎn)組網(wǎng)、接口調(diào)用五個環(huán)節(jié)。
[0167]4.1 安裝
[0168]本發(fā)明成果以純軟件形式運(yùn)行于Windows XP/2003/VISTA/2008/7/8操作系統(tǒng)X86/X64架構(gòu)之上,需額外安裝以下免費(fèi)軟件:
[0169]V基礎(chǔ)運(yùn)行環(huán)境Microsoft.NetFrameWork 4及其以上版本;
[0170]V關(guān)系型數(shù)據(jù)庫管理系統(tǒng)PostgreSQL 9.1.4及其以上版本;
[0171]V空間數(shù)據(jù)庫引擎PostGIS 2.0及其以上版本;
[0172]可將軟件直接復(fù)制到服務(wù)器某文件夾下,在Internet信息服務(wù)(IIS)管理器中將該文件夾轉(zhuǎn)換為虛擬目錄,添加成應(yīng)用程序并啟用ASP.NET v4.0應(yīng)用程序池。在資源管理器中將該文件夾的訪問屬性添加[NETWORK SERVICE]賬戶并賦予[讀寫控制]權(quán)限。
[0173]4.2 配置
[0174]I)修改web.config文件中的connectionStrings節(jié),其內(nèi)容是數(shù)據(jù)庫的連接信息,可視具體情況設(shè)置數(shù)據(jù)庫名、用戶名和密碼。
[0175]2)修改web.config文件appSettings節(jié),以便設(shè)置集群信息樹頂級節(jié)點(diǎn)名稱及其描述信息,還可控制接口調(diào)用時返回的坐標(biāo)精度。
[0176]4.3數(shù)據(jù)制備
[0177]方法1:可利用“地學(xué)空間信息檢索系統(tǒng)-GEOsite”門戶站點(diǎn)具備的交互操作功能,手工制作點(diǎn)線面及貼圖要素,設(shè)置每個要素的屬性內(nèi)容和可視化參數(shù),將其按XML格式;
[0178]方法2:可將MAPGIS點(diǎn)線面文件轉(zhuǎn)換成SHP格式,在GEOsite工具箱中轉(zhuǎn)換成XML格式;
[0179]方法3:谷歌地球KML文檔可直接用于發(fā)布或轉(zhuǎn)換成XML ;
[0180]方法4:可將符合要求的EXCEL格式數(shù)據(jù)另存為制表符分隔的TXT文件,經(jīng)GEOsite工具箱轉(zhuǎn)換成XML ;
[0181]方法5:中國地質(zhì)調(diào)查局地質(zhì)資料聯(lián)合編目系統(tǒng)導(dǎo)出的XML格式文件可經(jīng)GEOsite工具箱轉(zhuǎn)換成可發(fā)布的XML。
[0182]所述GEOsite工具箱為輔助性工具軟件。
[0183]4.4節(jié)點(diǎn)組網(wǎng)
[0184]App Data文件夾下的register, xml文件是集群結(jié)點(diǎn)體系控制文檔,系統(tǒng)管理員可在服務(wù)器端用記事本修改,還可在瀏覽器端通過訪問register, aspx(需要輸入數(shù)據(jù)庫密碼并具有寫入權(quán)限!)進(jìn)行遠(yuǎn)程修改。
[0185]數(shù)據(jù)格式如下:
[0186]<geo><—根節(jié)點(diǎn)名必須是geo并保持唯一一>
[0187]〈groupX—群組節(jié)點(diǎn)名必須是group,可有零個或多個一>
[0188]〈address〉遠(yuǎn)程路徑;支持 http、https、ftp 和 file 協(xié)議〈/address〉
[0189]〈domain〉域名〈/domain〉
[0190]〈username〉用戶名〈/username〉
[0191]〈password〉密碼〈/password〉
[0192]</group >
[0193]</geo>
[0194]其中〈address〉節(jié)指向某群的訪問路徑,該路徑內(nèi)存放可供發(fā)布的地質(zhì)資料信息xml、kml或壓縮格式gz文檔。此類文檔的命名規(guī)則形如:geosite序號.擴(kuò)展名
[0195]其中,[序號]必須從O開始編號,嚴(yán)格保證順序編號(若不連續(xù),則自動中止后續(xù)文件的發(fā)現(xiàn)機(jī)制)![擴(kuò)展名]暫支持xml、kml和gz三種命名方式。
[0196]4.5 接 口調(diào)用
[0197]“地質(zhì)資料信息集群機(jī)理與接口聚合模型”呈現(xiàn)的REST接口指令、調(diào)用參數(shù)及含義如下:
[0198]help =>顯示所有接口函數(shù)及描述信息。可用于檢查系統(tǒng)安裝的正確性;
[0199]refresh 2 domain = {domainname}= >采用并行技術(shù)“拉、推、送”模式調(diào)用數(shù)據(jù)中心集群架構(gòu)信息發(fā)現(xiàn)、獲取、同步、對等、拓?fù)湟妗omain參數(shù)可為空=發(fā)布池、all =整個群、空格分隔的頂級域名列表=某些域;
[0200]domain = >獲取已注冊的集群架構(gòu)頂級域名列表;
[0201]optimization=〉優(yōu)化集群數(shù)據(jù)庫性能,尤其針對索引崩潰或數(shù)據(jù)變更以及主詳表不對應(yīng)時需執(zhí)行本命令。經(jīng)過整理后的數(shù)據(jù)庫,將呈現(xiàn)各子表的嚴(yán)格一致性;
[0202]dataware =>返回數(shù)據(jù)倉節(jié)點(diǎn)樹;
[0203]alldatasets =>等價于 datasets ;[0204]datasets = >返回數(shù)據(jù)倉下所有不重復(fù)的數(shù)據(jù)集及父代節(jié)點(diǎn)樹;
[0205]datasetstotal =>返回數(shù)據(jù)倉下所有不重復(fù)的數(shù)據(jù)集總數(shù);
[0206]dataset 2 setname = {datasetname}= >返回數(shù)據(jù)倉下指定數(shù)據(jù)集 datasetname及父代節(jié)點(diǎn)樹;
[0207]alldatabases =>獲取數(shù)據(jù)倉下所有數(shù)據(jù)庫及父代節(jié)點(diǎn)樹;
[0208]databases 3 setname = {datasetname}= > 返回數(shù)據(jù)倉下指定數(shù)據(jù)集datasetname內(nèi)所有不重復(fù)的數(shù)據(jù)庫及父代節(jié)點(diǎn)樹;
[0209]databasestotal 2 setname = {datasetname}=> 返回數(shù)據(jù)倉下指定數(shù)據(jù)集datasetname內(nèi)所有不重復(fù)的數(shù)據(jù)庫總數(shù);
[0210]database 2 setname = {datasetname}&basename = {databasename}=>返回數(shù)據(jù)倉下指定數(shù)據(jù)集datasetname內(nèi)指定數(shù)據(jù)庫databasename及父代節(jié)點(diǎn)樹;
[0211]alllayers = >獲取數(shù)據(jù)倉下所有圖層及父代節(jié)點(diǎn)樹;
[0212]layers 2 setname = {datasetname}&basename = {databasename}=>返回數(shù)據(jù)倉下指定數(shù)據(jù)集datasetname內(nèi)指定數(shù)據(jù)庫databasename里所有不重復(fù)的圖層及父代節(jié)點(diǎn)樹;
[0213]Iayerstotal 3setname = {datasetname}&basename = {databasename}=>返回數(shù)據(jù)倉下指定數(shù)據(jù)集datasetname內(nèi)指定數(shù)據(jù)庫databasename里所有不重復(fù)的圖層的數(shù)量;
[0214]layer 3 setname = {datasetname}&basename = {databasename}&layname ={layername}= >返回數(shù)據(jù)倉下指定數(shù)據(jù)集datasetname內(nèi)指定數(shù)據(jù)庫databasename里指定圖層layername及父代節(jié)點(diǎn)樹;
[0215]allelements 2 page = {p}&many = {m}=>獲取數(shù)據(jù)倉下指定頁碼(page > =O)、指定數(shù)量(many >= O)的圖元及父代節(jié)點(diǎn)樹。page為O時,忽略many而直接返回所有圖元;page為負(fù)值時,返回圖元個數(shù);
[0216]elements 2 page = {p}&many = {m}&setname = {datasetname}&basename:...:... {layername}=>獲取數(shù)據(jù)倉下指定頁碼(page > = O)、指定數(shù)量(many>=0)的指定數(shù)據(jù)集內(nèi)指定數(shù)據(jù)庫里指定圖層內(nèi)所有圖元及父代節(jié)點(diǎn)樹。page為O時,忽略many而直接返回符合要求的所有圖元;page為負(fù)值時,返回圖元個數(shù);
[0217]elementstotal 2 setname = {datasetname} & basename ={databasename} &layname = {layername} &type = {elementtype}=> 返回唯一數(shù)據(jù)倉下指定數(shù)據(jù)集datasetname內(nèi)指定數(shù)據(jù)庫databasename里指定圖層layername內(nèi)指定圖元類型的圖元數(shù)O =點(diǎn)I =線2 =面3 =貼圖其他=所有類型;
[0218]elementidSmax = {minormax}= >獲取所有圖元個數(shù)以及其中最小或最大ID碼O:最小1:最大其他:圖兀個數(shù);
[0219]pointwithin 3 page = {p}&many = {m}&lng = {x}&lat = {y}=>獲取指定頁碼(page >= 0)、指定數(shù)量(many >=0)的指定坐標(biāo)落入其內(nèi)的所有圖元及父代節(jié)點(diǎn)樹。page為O時,忽略many而直接返回符合要求的所有圖元;page為負(fù)值時,返回圖元個數(shù);
[0220]IinecrossSpage = {p}&many = {m} &coordinate = {linestring}=>獲取指定頁碼(page >= 0)、指定數(shù)量(many >= 0)的與指定線相交的所有圖元及父代節(jié)點(diǎn)樹。注意:經(jīng)緯度之間用空格分隔,坐標(biāo)對之間用逗號分隔! page為O時,忽略many而直接返回符合要求的所有圖元;page為負(fù)值時,返回圖元個數(shù);
[0221]polygoncontains 2 page = {p}&many = {m} &method = {intersect} &coordinate={polygon}= >獲取指定頁碼(page > = 0)、指定數(shù)量(many > = 0)的落入(intersect:0)或相交(intersect:非0)指定范圍的所有圖元及父代節(jié)點(diǎn)樹。注意:經(jīng)諱度之間用空格分隔,坐標(biāo)對之間用逗號分隔!結(jié)束點(diǎn)必須等于起始點(diǎn),以便多邊形正確封閉! page為O時,忽略many而直接返回符合要求的所有圖元;page為負(fù)值時,返回圖元個數(shù);
[0222]spatialanalyse 2 page = {p}&many = {m}&method = {intersect}&setname ={datasetname} &basename = {databasename} &layname = {layername}=> 獲取指定頁石馬(page >= 0)、指定數(shù)量(many>=0)的與指定數(shù)據(jù)集內(nèi)指定數(shù)據(jù)庫里指定圖層內(nèi)的圖元呈落入(intersect:0)或相交(intersect:非0)關(guān)系的其他圖元及父代節(jié)點(diǎn)樹。page為O時,忽略many而直接返回符合要求的所有圖元;page為負(fù)值時,返回圖元個數(shù);
[0223]spatialanalyse2 2 page = {p } & m a n y = {m} & method ={intersect}&mothersetname = {datasetname}&motherbasename ={databasename}&motherlayname = {layername}&childsetname ={datasetname2}&childbasename = {databasename2}&childlayname = {layername2}=>獲取指定頁碼(page >= 0)、指定數(shù)量(many >= 0)的指定數(shù)據(jù)集內(nèi)指定數(shù)據(jù)庫里指定圖層內(nèi)與指定數(shù)據(jù)集內(nèi)指定數(shù)據(jù)庫里指定圖層內(nèi)的圖元呈落入(intersect:0)或相交(intersect:非0)關(guān)系的其他圖元及父代節(jié)點(diǎn)樹。page為O時,忽略many而直接返回符合要求的所有圖元;page為負(fù)值時,返回圖元個數(shù);
[0224]key search 2 page = {p}&many = {m} &method = {orand} &key = {keys}=> 獲取指定頁碼(page >=0)、指定數(shù)量(many >=0)的經(jīng)由關(guān)鍵字列表(以空格或逗號為分隔符)可按method:0 => “并且”、method:非O = > “或者”兩種運(yùn)算模式對圖元屬性內(nèi)容(忽略字段名稱)進(jìn)行模糊匹配的圖元及父代節(jié)點(diǎn)樹。page為O時,忽略many而直接返回符合要求的所有圖元;page為負(fù)值時,返回圖元個數(shù);
[0225]空白= >獲取集群架構(gòu)信息。
[0226]為便于闡明并行化技術(shù)與傳統(tǒng)遍歷的區(qū)別,將本發(fā)明中“并行反向?qū)Φ取盋#語言實現(xiàn)算法摘錄如下:
[0227]#region反向?qū)Φ冗^程:對過時時間戳文檔進(jìn)行清理,使得分布式集群架構(gòu)信息與服務(wù)器數(shù)據(jù)中心保持同步對等。不對等說明數(shù)據(jù)庫內(nèi)本時間戳所對應(yīng)的遠(yuǎn)程文檔已經(jīng)失效(如:某文檔被替代;某文檔被刪除;某文檔內(nèi)容被更新;服務(wù)器端集群注冊表發(fā)生改變)
[0228]//從數(shù)據(jù)庫中先得到所有時間戳
[0229]var timestamps = from sqldataware in SQLReaderX (" SELECT mytimestampFROM dataware ; " ).Descendants(〃 Xcol" ) select sqldataware.Value ;
[0230]long pstatus = 0 ;
[0231]//備用方案:傳統(tǒng)遍歷技術(shù) foreach (var timestampX in timestamps)
[0232]Η采用方案:并行對等技術(shù)(完成于2012年元月10日)[0233]Parallel.ForEach<string, long〉// 在并行 ForEach 循環(huán)中使用線程本地變量,必須使用采用兩個type參數(shù)的方法版本:第一個參數(shù)指定源元素的類型,第二個參數(shù)指定線程本地變量的類型
[0234](timestamps,//第一個輸入?yún)?shù)是數(shù)據(jù)源
[0235]O => 0,//第二個輸入?yún)?shù)是對線程本地變量進(jìn)行初始化的函數(shù)。注意:該函數(shù)在每個迭代執(zhí)行時均執(zhí)行!
[0236](timestampX, loop, status) = >// 第三個輸入?yún)?shù)是委托類型 Func〈Tl, T2,T3,TResult〉,每個迭代上的并行循環(huán)將調(diào)用該委托。其中首個輸入?yún)?shù)為當(dāng)前元素timestampX,第二個為使能夠檢查循環(huán)狀態(tài)的ParallelLoopState變量loop,用于在迭代間交互信息,末個為線程本地變量status,注意:該變量生存期僅限于當(dāng)前迭代內(nèi)!
[0237]{//第一層:將數(shù)據(jù)庫中數(shù)據(jù)倉表內(nèi)所有時間戳全部遍歷,看看是否能在分布式集群節(jié)點(diǎn)內(nèi)每份文檔的時間戳依然對等?事實上,每個時間戳對應(yīng)一份遠(yuǎn)程xml文檔
[0238]bool t2t = false ;//是否對等的邏輯變量:真=對等假=不對等
[0239]for (int i = O ;i<get_groups () ;i++)
[0240]{//第二層:遍歷注冊表字典包含的整個集群編號
[0241]for (int j = O ; j〈get_geos (i) ; j++)
[0242]Η第三層:遍歷某集群編號下所有文檔
[0243]if (timestampX = = string.Format {" {0}-{1}-{2} " , i, j, get_timestamp (i,j)))
[0244]{t2t = true ;break ;}
[0245]if (t2t)break ;//若對等便無需做任何事情,退出本層遍歷}
[0246]if( ! t2t)//遍歷結(jié)束后仍未發(fā)現(xiàn)對等,便說明數(shù)據(jù)庫內(nèi)本時間戳所對應(yīng)的遠(yuǎn)程文檔已經(jīng)失效(1、某文檔被替代;2、末文檔被刪除;3、某文檔內(nèi)容被更新;4、服務(wù)器端集群注冊表發(fā)生改變),應(yīng)該刪除本條記錄和其子代記錄!
[0247]{bool deleteX = false ;//指示是否需要刪除記錄
[0248]if (addresslinks.Length == 0)//若未指定對等路徑,便從數(shù)據(jù)倉中清理多余的時間戳記錄。
[0249]deleteX = true ;
[0250]else//若指定了對等路徑,需繼續(xù)判斷決策
[0251]//Regex.Split (timestampX,"-");返回的正則數(shù)組中,[O]==群號[I]==文檔編號其他暫無需關(guān)注
[0252]if (get_geos (int.Parse (Regex.Split (timestampX, " ) [0])) >=0)
[0253]//說明此時間戳對應(yīng)的群 的確與指定的地址所對應(yīng)的群一致,而時間戳又不對等,因此需要刪除
[0254]deleteX = true ;
[0255]if (deleteX)
[0256]{
[0257]//并行采用下行
[0258]status = I ;[0259]Il傳統(tǒng)遍歷采用本行pstatus++ ;
[0260]SQLNonQuery(string.Format ( " DELETE FROM dataware WHERE mytimestamp=丨ΙΟ}' ,timestampX)) ;//支持級聯(lián)刪除.得益于對關(guān)聯(lián)字段已經(jīng)建立了主鍵-外鍵刪除層疊約束關(guān)系,使得僅刪除數(shù)據(jù)倉某記錄便可實現(xiàn)子代數(shù)據(jù)庫內(nèi)記錄的刪除!
[0261]}
[0262] }
[0263]else status = O ;
[0264]return status ;//返回線程本地變量,方法隨后會將其傳遞到此分區(qū)上的下一個迭代
[0265]},
[0266]Il最后一個輸入?yún)?shù)是Action〈T>委托,當(dāng)所有循環(huán)完成時,方法將調(diào)用該委托
[0267]Il方法為此線程(或循環(huán)分區(qū))提供線程本地變量的最終值,提供代碼捕獲最終值,并執(zhí)行將此分區(qū)中的結(jié)果和其他分區(qū)中的結(jié)果進(jìn)行合并所需的任何操作。由于委托類型為Action〈T>,因此沒有返回值
[0268]//并行采用下行
[0269](f inalResult) = >Interlocked.Add (ref pstatus, finalResult) // 鎖定原子(cpu寄存器指令)變量pstatus,并將由status傳遞給finalResult的值進(jìn)行累加
[0270]);
[0271]#endregion
[0272]本發(fā)明能夠解決的技術(shù)問題是針對行業(yè)內(nèi)地質(zhì)信息集中式和分布式館藏現(xiàn)狀,將多元異構(gòu)空間信息進(jìn)行統(tǒng)一化描述,依托信息技術(shù)前沿理論,通過海量信息發(fā)現(xiàn)、獲取、轉(zhuǎn)換、存儲、同步、對等、聚合、重構(gòu)、推送等機(jī)制,實現(xiàn)基于關(guān)鍵字匹配、類別篩選、空間約束條件的檢索服務(wù),為跨平臺、跨行業(yè)應(yīng)用開辟信息傳遞無障礙通道,向外界呈現(xiàn)具有“推拉接送”集群機(jī)理的開放型嵌入式接口 ;建立具松散耦合(彈性)特征的網(wǎng)狀或樹狀結(jié)點(diǎn)體系,為部、局、大區(qū)中心、省廳、地市、基層單位乃至個人提供可定制、可延伸、可跨域的多級組網(wǎng)能力,為構(gòu)建廣域覆蓋、廣泛參與的地質(zhì)資料信息結(jié)點(diǎn)群框架提供運(yùn)行支撐引擎。
[0273]以上通過具體的和優(yōu)選的實施例詳細(xì)的描述了本發(fā)明,但本領(lǐng)域技術(shù)人員應(yīng)該明白,本發(fā)明并不局限于以上所述實施例,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種地質(zhì)資料信息集群機(jī)理與接口聚合模型,其特征在于:包括拉模式、推模式、接模式和送模式四個集群模式; 所述拉模式采集集群節(jié)點(diǎn)注冊表信息建立三維字典,并建立集群組網(wǎng)形態(tài)或集群架構(gòu)映射樹; 所述推模式依據(jù)所述集群架構(gòu)映射樹定位某集群所處的遠(yuǎn)程路徑,進(jìn)行并行化查詢,通過查詢結(jié)果判斷是否能夠獲取所述遠(yuǎn)程路徑的文檔流,如果能夠獲取所述遠(yuǎn)程路徑的文檔流,則將所述遠(yuǎn)程路徑的文檔流保存在數(shù)據(jù)存儲中心; 所述送模式通過接口指令調(diào)用請求,對保存在所述數(shù)據(jù)存儲中心的數(shù)據(jù)執(zhí)行SQL查詢操作,并將查詢結(jié)果發(fā)送到調(diào)用接口 ; 所述接模式在瀏覽器端向所述遠(yuǎn)程路徑接口服務(wù)發(fā)送請求。
2.根據(jù)權(quán)利要求1所述的地質(zhì)資料信息集群機(jī)理與接口聚合模型,其特征在于:所述拉模式采取并行技術(shù)進(jìn)行觸碰發(fā)現(xiàn)和信息抓取,所述三維字典由集群編號、地質(zhì)資料XML文檔序號和存檔時間戳建立三維字典。
3.根據(jù)權(quán)利要求2所述的地質(zhì)資料信息集群機(jī)理與接口聚合模型,其特征在于:所述推模式對所述遠(yuǎn)程路徑的定位以所述存檔時間戳為紐帶。
4.根據(jù)權(quán)利要求1所述的地質(zhì)資料信息集群機(jī)理與接口聚合模型,其特征在于:所述送模式依據(jù)外界提供的關(guān)鍵字匹配、空間范圍約束和類別篩選條件等多種REST接口指令調(diào)用請求,通過并發(fā)控制和并行查詢機(jī)制,對集群數(shù)據(jù)存儲中心關(guān)系型數(shù)據(jù)庫按海量分頁、分類控制和正則匹配算法執(zhí)行SQL查詢操作。
5.根據(jù)權(quán)利要求1所述的地質(zhì)資料信息集群機(jī)理與接口聚合模型,其特征在于:所述接模式在瀏覽器端通過JavaScript腳本向遠(yuǎn)程接口服務(wù)發(fā)送請求,瀏覽器與服務(wù)器兩者間的通訊采用AJAX技術(shù)實現(xiàn)同源訪問,采用Web Service代理技術(shù)解決因瀏覽器安全策略對集群結(jié)點(diǎn)接口跨域訪問的限制,在結(jié)點(diǎn)群服務(wù)器之間使用HttpWebRequest類進(jìn)行通訊、通過HttpWebResponse類接收應(yīng)答。
6.根據(jù)權(quán)利要求1所述的地質(zhì)資料信息集群機(jī)理與接口聚合模型,其特征在于:所述集群組網(wǎng)架構(gòu)具備動態(tài)性,基于所述文檔時間戳的變更或失效機(jī)制所反映的遠(yuǎn)程事件和行為主要包括:某群為新增、某群已退出或已被刪除、某群編號或次序有變更、某群訪問鏈路中斷、某文檔被替代、某文檔被刪除、某文檔內(nèi)容發(fā)生變化和某文檔讀取出現(xiàn)異常。
【文檔編號】G06F17/30GK103473247SQ201210325799
【公開日】2013年12月25日 申請日期:2012年9月5日 優(yōu)先權(quán)日:2012年6月30日
【發(fā)明者】王占昌, 顏世強(qiáng), 丁克永 申請人:中國地質(zhì)調(diào)查局西安地質(zhì)調(diào)查中心
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1