国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向軟件定義地圖模式的水利數(shù)據(jù)共享方法

2018-09-05 09:41婁淵清李長(zhǎng)松
水利信息化 2018年4期
關(guān)鍵詞:表項(xiàng)數(shù)據(jù)包端口

黃 偉,婁淵清,李長(zhǎng)松

(黃河水利委員會(huì)信息中心,河南 鄭州 450004)

0 引言

為解決數(shù)據(jù)資源模型不一致造成數(shù)據(jù)共享困難,應(yīng)用系統(tǒng)技術(shù)架構(gòu)差異形成的業(yè)務(wù)系統(tǒng)缺少關(guān)聯(lián),以及基礎(chǔ)軟硬件環(huán)境服務(wù)于單一應(yīng)用造成資源利用率不高等問(wèn)題,長(zhǎng)江水利委員會(huì)(以下簡(jiǎn)稱(chēng)長(zhǎng)委)開(kāi)展了流域水利綜合管理信息資源整合與共享項(xiàng)目,圍繞軟硬件設(shè)施、數(shù)據(jù)資源和應(yīng)用系統(tǒng)對(duì)信息化資源開(kāi)展整合和共享[1]。水利部 2015 年啟動(dòng)水信息基礎(chǔ)平臺(tái)項(xiàng)目,提出完成業(yè)務(wù)系統(tǒng)、數(shù)據(jù)資源和基礎(chǔ)設(shè)施的整合,促進(jìn)水利部本級(jí)信息化良性發(fā)展目標(biāo),提出主要數(shù)據(jù)資源“統(tǒng)一模型、一數(shù)一源、共建共享、授權(quán)使用”,建立了 41 類(lèi)統(tǒng)一水利數(shù)據(jù)模型。黃河水利委員會(huì)(以下簡(jiǎn)稱(chēng)黃委)在借鑒水利部和長(zhǎng)委項(xiàng)目成果基礎(chǔ)上,提出以流域綜合信息門(mén)戶(hù)為核心,自頂向下逐步推進(jìn)以下信息資源整合共享思路:

1)通過(guò)華為云對(duì)服務(wù)器資源進(jìn)行虛擬化管理,黃河數(shù)據(jù)中心為數(shù)據(jù)和應(yīng)用整合業(yè)務(wù)提供統(tǒng)一的計(jì)算和存儲(chǔ)環(huán)境。虛擬存儲(chǔ)擴(kuò)容到 230 TB,備份存儲(chǔ)空間 166 TB,滿(mǎn)足黃委未來(lái)數(shù)據(jù)存儲(chǔ)和虛擬機(jī)運(yùn)行環(huán)境需求。

2)采用面向?qū)ο?事件的水利數(shù)據(jù)建模方法,對(duì)水利數(shù)據(jù)資源進(jìn)行統(tǒng)一建模。通過(guò)為水利對(duì)象建立基本、業(yè)務(wù)、空間和時(shí)相等屬性描述,將其映射成地圖圖層使用和交換的數(shù)據(jù)對(duì)象,旨在面向水利“一張圖”的數(shù)據(jù)匯聚和交換[2]。

3)在應(yīng)用資源整合方面,通過(guò)建立綜合信息門(mén)戶(hù),建立單點(diǎn)登錄和統(tǒng)一用戶(hù)管理機(jī)制。實(shí)現(xiàn)對(duì)人事、財(cái)務(wù)政務(wù)信息和水調(diào)防汛等 11 個(gè)大類(lèi) 70 個(gè)小類(lèi)業(yè)務(wù)信息聚合展現(xiàn)。在此基礎(chǔ)上,建設(shè)綜合監(jiān)控專(zhuān)題,實(shí)現(xiàn)對(duì)預(yù)算執(zhí)行進(jìn)度、大額資金變動(dòng),以及重大工程建設(shè)、工情險(xiǎn)情等動(dòng)態(tài)監(jiān)管。本研究旨在探討數(shù)據(jù)共享方法,以解決水利應(yīng)用對(duì)異構(gòu)數(shù)據(jù)的一致性共享需求。

在異構(gòu)系統(tǒng)中共享數(shù)據(jù)有以下幾種方法:

1)依靠在數(shù)據(jù)平面中使用表單和數(shù)據(jù) 2 種映射機(jī)制,將用戶(hù)本地查詢(xún)轉(zhuǎn)換成多個(gè)子查詢(xún),使得子查詢(xún)符合關(guān)聯(lián)數(shù)據(jù)源中的表單結(jié)構(gòu)和數(shù)據(jù)類(lèi)型,并將最終查詢(xún)結(jié)果進(jìn)行匯聚[3–4]。這種機(jī)制不需要全局協(xié)調(diào)機(jī)制確保數(shù)據(jù)一致性,數(shù)據(jù)共享發(fā)生在局部關(guān)聯(lián)數(shù)據(jù)源之間。但表單數(shù)據(jù)的改變會(huì)使得對(duì)關(guān)聯(lián)數(shù)據(jù)源的查詢(xún)映射失效,數(shù)據(jù)共享效率取決于關(guān)聯(lián)數(shù)據(jù)源中最慢節(jié)點(diǎn)處理速度。

2)在應(yīng)用平面中使用語(yǔ)義網(wǎng)技術(shù)進(jìn)行數(shù)據(jù)共享和服務(wù)集成[5–6]。盡管基于本體數(shù)據(jù)訪問(wèn)具有明顯前景和優(yōu)勢(shì),但是隱含的工程代價(jià)包括本體建立、更新維持及推導(dǎo)并沒(méi)有成熟工具和技術(shù)支持[7]。水利數(shù)據(jù)的頂層本體設(shè)計(jì)標(biāo)準(zhǔn)缺失,因此應(yīng)用時(shí)機(jī)還未成熟。

3)采用物理和邏輯集中相結(jié)合方式對(duì)應(yīng)用系統(tǒng)產(chǎn)生的數(shù)據(jù)進(jìn)行整合。物理集中是指在初始化時(shí)對(duì)歷史數(shù)據(jù)進(jìn)行統(tǒng)一對(duì)象提取,編碼建立目錄和集中存儲(chǔ)。應(yīng)用系統(tǒng)共享負(fù)載主要由中心服務(wù)器完成,通過(guò)數(shù)據(jù)遷移系統(tǒng)與中心服務(wù)器上的數(shù)據(jù)交換平臺(tái)交互。邏輯集中是將具有強(qiáng)專(zhuān)業(yè)性的數(shù)據(jù)本身仍存儲(chǔ)在原有數(shù)據(jù)庫(kù)中,由原數(shù)據(jù)所有者更新維護(hù),將對(duì)應(yīng)的數(shù)據(jù)資源目錄統(tǒng)一存儲(chǔ)在中心服務(wù)器上,數(shù)據(jù)共享后由需求方完成數(shù)據(jù)轉(zhuǎn)換和利用。

應(yīng)用系統(tǒng)處理邏輯和數(shù)據(jù)耦合使得分析應(yīng)用必須考慮數(shù)據(jù)源異構(gòu)及復(fù)雜數(shù)據(jù)轉(zhuǎn)換。數(shù)據(jù)提供者必須確保應(yīng)用對(duì)數(shù)據(jù)的一致性、現(xiàn)勢(shì)性要求,并使用復(fù)雜同步和協(xié)調(diào)機(jī)制來(lái)回傳遞數(shù)據(jù)。為此,提出一種面向軟件定義地圖(SDM)的共享方法。這種方法模擬了軟件定義網(wǎng)絡(luò)抽象[8],使用統(tǒng)一的地圖表示對(duì)一致性數(shù)據(jù)的要求。用地圖約束作為數(shù)據(jù)平面中進(jìn)行傳遞的實(shí)體單元,數(shù)據(jù)平面將通過(guò)“匹配-行動(dòng)”規(guī)則在不同數(shù)據(jù)源中進(jìn)行傳遞[9]。

1 時(shí)空數(shù)據(jù)抽象與應(yīng)用程序邏輯表達(dá)

黃委使用對(duì)象-事件模型對(duì)水利要素建模,用時(shí)間序列表示非空間屬性變化的關(guān)系圖如圖 1 所示。時(shí)間序列由幾何體、時(shí)間及值 3 個(gè)類(lèi)型參數(shù)表示。用軌跡描述空間屬性變化,軌跡和時(shí)間序列一樣由幾何體、時(shí)間和值構(gòu)成,表示特定對(duì)象在某個(gè)時(shí)間范圍下觀測(cè)位置變化。數(shù)據(jù)源頭記錄數(shù)據(jù)產(chǎn)品獲得歷史,用于評(píng)估數(shù)據(jù)產(chǎn)品質(zhì)量[10];數(shù)據(jù)源頭屬性記錄數(shù)據(jù)原始出處,以及最后一次數(shù)據(jù)被修改信息。事件由對(duì)象創(chuàng)建,包含幾何體、時(shí)間和標(biāo)識(shí),表示某個(gè)時(shí)間范圍內(nèi)事件發(fā)生時(shí)幾何體位置。

圖 1 基于對(duì)象-事件的水利對(duì)象模型

黃委使用水利地理空間信息元數(shù)據(jù)標(biāo)準(zhǔn)對(duì)空間對(duì)象元數(shù)據(jù)進(jìn)行建模[11],使用地圖代數(shù)理論及規(guī)范形式聲明描述應(yīng)用邏輯[12]。地圖代數(shù)以地圖圖層作為基本數(shù)據(jù)處理單元,并以局部、條帶、焦點(diǎn)及增量等操作表述標(biāo)準(zhǔn)化操作[13]。圖層類(lèi)似于彈性分布式數(shù)據(jù)集[14],對(duì)圖層的操作直接被映射成對(duì)圖層中每一個(gè)數(shù)據(jù)對(duì)象操作,因此可以通過(guò)序列化操作或者封裝在云環(huán)境中的容器傳遞到該對(duì)象所在數(shù)據(jù)位置進(jìn)行計(jì)算。目前地圖代數(shù)作為嚴(yán)格框架已經(jīng)被大量開(kāi)源和商業(yè) GIS 軟件支持[15]。數(shù)據(jù)平面中的處理單元能夠通過(guò)已有軟件實(shí)現(xiàn)標(biāo)準(zhǔn)化函數(shù)調(diào)用接口,處理控制平面發(fā)送任務(wù),并將處理結(jié)果在彼此間進(jìn)行傳遞。

2 軟件定義地圖

SDM 是一個(gè)框架,目的是構(gòu)建一個(gè)動(dòng)態(tài)自適應(yīng)環(huán)境用于支持面向地圖的時(shí)空數(shù)據(jù)分析應(yīng)用。SDM框架解耦應(yīng)用邏輯和底層異構(gòu)數(shù)據(jù),使得分析應(yīng)用可自動(dòng)靈活實(shí)現(xiàn),具體架構(gòu)如圖 2 所示。SDM 架構(gòu)層由數(shù)據(jù)傳遞元素組成,主要職責(zé)是在異構(gòu)數(shù)據(jù)源中進(jìn)行數(shù)據(jù)傳遞,負(fù)責(zé)監(jiān)控局部信息并收集統(tǒng)計(jì)信息。中間層負(fù)責(zé)對(duì)數(shù)據(jù)平面進(jìn)行規(guī)劃和管理,通過(guò)數(shù)據(jù)平面提供的信息定義數(shù)據(jù)操作和轉(zhuǎn)發(fā)路由規(guī)則??刂破骺梢允?1 個(gè)或多個(gè)分布式協(xié)調(diào)控制器,通過(guò)標(biāo)準(zhǔn)的南橋接口與數(shù)據(jù)平面中的元素通信。應(yīng)用層可以從控制器接收到當(dāng)前分布式數(shù)據(jù)的抽象視圖,并使用這些信息指導(dǎo)控制層任務(wù)分發(fā)。在應(yīng)用層和控制層之間的接口稱(chēng)為北橋接口。當(dāng)前控制層軟件提供自己特有的應(yīng)用程序開(kāi)發(fā)接口。

圖 2 SDM 架構(gòu)

數(shù)據(jù)平面的元素叫做代理,代理依據(jù)流表傳遞數(shù)據(jù)包和消息,流表中包含 1 個(gè)或多個(gè)流表項(xiàng)。流表項(xiàng)由以下 3 個(gè)部分組成:1)頭部域。描述此流表項(xiàng)會(huì)應(yīng)用于哪一個(gè)數(shù)據(jù)包,數(shù)據(jù)包可以是地圖圖層中某個(gè)空間對(duì)象,也可以是指向代理本地文件系統(tǒng)中的某個(gè)文件地址,還可以是一個(gè)服務(wù)接口的哈希值等。消息以數(shù)據(jù)包形式傳遞時(shí)會(huì)在頭部域添加唯一對(duì)象標(biāo)識(shí)及對(duì)象訪問(wèn)有關(guān)的協(xié)議信息。 2)計(jì)數(shù)域。即保留域,用于存儲(chǔ)接收數(shù)據(jù)包數(shù)目、字節(jié)及流表項(xiàng)持續(xù)時(shí)間。3)指令域。用于指定數(shù)據(jù)包如何被加工處理,有向前傳遞、執(zhí)行及丟棄數(shù)據(jù)包不做處理等操作。

通過(guò)插入、修改及刪除流表項(xiàng),控制器能夠更改代理行為。SDM 南橋協(xié)議主要用于指示代理執(zhí)行任務(wù)。當(dāng)代理接收到 1 個(gè)數(shù)據(jù)包時(shí),首先解析數(shù)據(jù)包頭部域。如果流表的某個(gè)流表項(xiàng)匹配上該數(shù)據(jù)包,則考慮執(zhí)行該流表項(xiàng);如果多個(gè)流表項(xiàng)匹配該數(shù)據(jù)包,則依據(jù)優(yōu)先級(jí)選擇執(zhí)行某個(gè)特定的流表項(xiàng)。接著,代理更新流表項(xiàng)計(jì)數(shù)域。代理依據(jù)指令域中定義的處理過(guò)程對(duì)數(shù)據(jù)包進(jìn)行處理,否則,如果沒(méi)有任何流表項(xiàng)匹配該數(shù)據(jù)包頭部域,代理通知控制器,如果該代理有內(nèi)存則緩存該數(shù)據(jù)包。代理發(fā)送消息到控制器,安裝 1 個(gè)或多個(gè)合適的流表項(xiàng)到所請(qǐng)求的代理。

2.1 南橋接口的協(xié)議規(guī)范

與 SDM 南橋接口協(xié)議類(lèi)似[16],SDM 接口協(xié)議表達(dá)了控制器與數(shù)據(jù)平面中數(shù)據(jù)元素之間的交互。代理是實(shí)現(xiàn)該南橋接口協(xié)議的進(jìn)程或服務(wù)。代理包含多個(gè)流表和組表,通過(guò)它們實(shí)現(xiàn)數(shù)據(jù)查找和傳遞功能;此外,還包含 1 個(gè)或多個(gè)通道,用于和控制器通信。使用南橋協(xié)議與代理通信時(shí),控制器可以指示代理添加、刪除和修改流表中的流目錄,在代理中的每個(gè)流表都可以有 1 個(gè)或者多個(gè)流目錄,每個(gè)目錄中包含匹配域、計(jì)數(shù)器及指令用于處理輸入數(shù)據(jù)。

SDM 中流表包含的是控制器傳遞的指令或指令集合,可以是代理自身所支持的某個(gè)地圖代數(shù)功能庫(kù)、函數(shù)或者應(yīng)用程序。代理端口是數(shù)據(jù)訪問(wèn)接口,用于在數(shù)據(jù)平面的代理之間傳遞數(shù)據(jù)。代理與代理之間通過(guò)端口建立連接,一個(gè)數(shù)據(jù)對(duì)象可以從一個(gè)代理的輸出端口傳遞到另一個(gè)代理的輸入端口。代理與代理之間的端口可以不同,代理可自行定義和禁止端口行為。通常定義的端口可與某個(gè)傳統(tǒng)應(yīng)用程序服務(wù)接口關(guān)聯(lián),SDM 代理內(nèi)部結(jié)構(gòu)如圖3 所示。

圖 3 南橋協(xié)議控制的代理內(nèi)部結(jié)構(gòu)

代理輸入端口用于接收數(shù)據(jù),數(shù)據(jù)處理經(jīng)過(guò)一系列流表組成的管道,最后 1 個(gè)流表決定數(shù)據(jù)處理結(jié)果的輸出端口。代理實(shí)現(xiàn)以下端口:1)物理端口。表示與本地?cái)?shù)據(jù)庫(kù)或已有應(yīng)用程序交互的數(shù)據(jù)接口,對(duì)象與數(shù)據(jù)交互接口是一對(duì)一關(guān)系,但在實(shí)際中,可通過(guò) Web 服務(wù)發(fā)現(xiàn)獲取多個(gè)數(shù)據(jù)對(duì)象。多個(gè)物理端口可以對(duì)應(yīng) 1 個(gè)數(shù)據(jù)接口。2)邏輯端口。是更高級(jí)別抽象的端口,可能包含數(shù)據(jù)封裝,可以映射到不同物理端口。邏輯端口代表數(shù)據(jù)更新操作,由代理依據(jù)管理對(duì)象定義。在代理中邏輯端口和物理端口唯一區(qū)別在于邏輯端口可能有 1 個(gè)外部管道域,這個(gè)管道域用于在代理和控制器或在代理之間傳遞數(shù)據(jù)。保留端口代表發(fā)送到控制器的通用數(shù)據(jù)傳遞過(guò)程。在代理中,端口會(huì)隨時(shí)發(fā)生變化,例如當(dāng)數(shù)據(jù)庫(kù)某一對(duì)象的訪問(wèn)發(fā)生變化時(shí),代理會(huì)改變端口的狀態(tài),端口狀態(tài)改變時(shí)代理都會(huì)通知控制器。在流表中,那些引用失效端口的流表項(xiàng)指令集會(huì)失敗,數(shù)據(jù)處理結(jié)果會(huì)丟失。端口在代理中具有唯一編碼,在流表中應(yīng)用修改過(guò)的端口,流表項(xiàng)指令集可以支持重新定向新的端口。邏輯端口可以表示復(fù)雜處理過(guò)程,例如當(dāng)對(duì)某一對(duì)象的處理觸發(fā)其它對(duì)象狀態(tài)改變,這種邏輯端口被用于在代理內(nèi)部維護(hù)數(shù)據(jù)一致性。

除了那些運(yùn)行時(shí)定義的流表沒(méi)有具體結(jié)構(gòu)要求之外,其它流表項(xiàng)由匹配域、優(yōu)先級(jí)域、計(jì)數(shù)域、指令域、失效域、Cookie 域及標(biāo)志域組成。其中,匹配域主要用于匹配數(shù)據(jù)對(duì)象標(biāo)識(shí),數(shù)據(jù)對(duì)象經(jīng)由端口傳遞時(shí),可能附加上元數(shù)據(jù)信息;流目錄具有優(yōu)先級(jí),用優(yōu)先級(jí)域表示;計(jì)數(shù)域表示計(jì)數(shù)器,當(dāng)數(shù)據(jù)對(duì)象匹配時(shí),代理更新這個(gè)域;指令域表示經(jīng)由管道執(zhí)行的指令集或者自動(dòng)生成的數(shù)據(jù)集,或者是變更指令集;失效域表示流表中最長(zhǎng)等待或有效時(shí)間,使得應(yīng)用可以控制延時(shí)響應(yīng)的指令集的最長(zhǎng)等待時(shí)間;Cookie 域包含控制器,依據(jù)流項(xiàng)目進(jìn)行有關(guān)統(tǒng)計(jì),從而作為過(guò)濾特定流目錄的一種參考;標(biāo)志域影響管理流目錄的方式。

在 SDM 中有組表和元表 2 個(gè)重要支持組件。組表表示代理的分組表示,內(nèi)部結(jié)構(gòu)由組標(biāo)識(shí)域、類(lèi)型域、技術(shù)域及指令域組成,其中,組標(biāo)識(shí)域在代理中唯一,類(lèi)型域用于決定組語(yǔ)義,計(jì)數(shù)域是自增域,指令域是指令集合,命令處理的結(jié)果發(fā)送到端口。組表經(jīng)常被用于控制一組代理的數(shù)據(jù)更新任務(wù),組表的標(biāo)識(shí)符由控制器控制和管理,一個(gè)相同分組內(nèi)的代理執(zhí)行相同指令。元表主要用于控制器更高級(jí)別管理應(yīng)用。

2.2 控制器和代理通信

南橋協(xié)議支持以下 3 種消息類(lèi)型:

1)控制器到代理消息。由控制器發(fā)起,主要用于管理和檢測(cè)代理狀態(tài)。a. 特征消息??刂破魍ㄟ^(guò)此消息獲取代理的標(biāo)識(shí)和能力。這些能力包括代理可用資源大小及表示代理健康狀態(tài)的其它參數(shù)。在收到此消息時(shí),代理必須回復(fù),這種消息通常在控制器與代理通道建立連接時(shí)觸發(fā)。b. 配置消息??刂破魍ㄟ^(guò)此消息配置和查詢(xún)代理參數(shù),代理僅回復(fù)配置查詢(xún)消息。 c. 修改狀態(tài)消息。控制器發(fā)送此消息以管理代理端口狀態(tài),目的主要是增加、移除和修改流表或組表。d. 讀狀態(tài)消息。控制器通過(guò)此消息搜集不同代理狀態(tài),內(nèi)容包括當(dāng)前配置、統(tǒng)計(jì)信息及代理當(dāng)前可用資源說(shuō)明。e. 數(shù)據(jù)包輸出消息??刂破魇褂么讼⑼硖囟ǘ丝诎l(fā)送數(shù)據(jù),或者通過(guò)得到的包輸入消息傳遞數(shù)據(jù)包到代理。數(shù)據(jù)包輸出消息包含完整的數(shù)據(jù)消息,或者所發(fā)送的消息中包含在代理緩存區(qū)或本地存儲(chǔ)區(qū)中的數(shù)據(jù)地址。

2)異步消息。由代理觸發(fā),發(fā)送到控制器,主要用于通知控制器數(shù)據(jù)發(fā)生變化,或者表示任務(wù)完成及自身狀態(tài)變化消息,代理并不要求控制器做出回應(yīng)。a. 數(shù)據(jù)包輸入消息。傳輸一個(gè)對(duì)數(shù)據(jù)包的控制到控制器,代理處理的結(jié)果通常用此消息發(fā)送到控制器。b. 流表項(xiàng)移除消息。通知控制器一個(gè)流表的流目錄已被刪除。c. 端口狀態(tài)消息。 通知控制器代理端口狀態(tài)發(fā)生改變,代理發(fā)送狀態(tài)和配置的改變消息到控制器,產(chǎn)生這些消息的事件包括代理管理者關(guān)閉端口,或者端口對(duì)應(yīng)的接口失效。d. 控制器狀態(tài)消息。當(dāng)代理的通道狀態(tài)發(fā)生變化時(shí)通知控制器,此消息會(huì)發(fā)送到所有與該代理聯(lián)系的控制器。

3)對(duì)稱(chēng)消息。指由控制器或代理發(fā)送的不要求回復(fù)消息,接收方可以發(fā)送回復(fù)也可不回復(fù)。a. 對(duì)稱(chēng)消息??刂破骱痛矶伎梢园l(fā)送對(duì)稱(chēng)消息,這種消息發(fā)送方對(duì)消息接收方是否回復(fù)不敏感。b. 探測(cè)消息。當(dāng)代理和控制器建立連接時(shí),此消息被雙方交換。c. 回顯消息?;仫@消息可由代理和控制器任意一方發(fā)出,任何接收回顯消息的一方都必須發(fā)送回復(fù)。此消息主要用于檢驗(yàn)控制器和代理之間的連接是否在線,也可用于測(cè)量延時(shí)或者帶寬。d. 錯(cuò)誤消息。此消息用于消息接收方報(bào)告錯(cuò)誤或者問(wèn)題出現(xiàn),主要用于代理通知由控制器發(fā)送的請(qǐng)求執(zhí)行失敗消息。

3 信息共享和業(yè)務(wù)系統(tǒng)協(xié)調(diào)實(shí)現(xiàn)方法

假定 MS 和 LS 分別表示按地圖代數(shù)邏輯表達(dá)的業(yè)務(wù)系統(tǒng)和原有業(yè)務(wù)系統(tǒng)。在控制器中有一個(gè)注冊(cè)機(jī)構(gòu),每個(gè)需共享數(shù)據(jù)的業(yè)務(wù)系統(tǒng)通過(guò)該機(jī)構(gòu)提供的統(tǒng)一接口注冊(cè),控制器為其分配唯一對(duì)象編碼。這類(lèi)原有業(yè)務(wù)系統(tǒng)不會(huì)經(jīng)常發(fā)生變化。按照應(yīng)用系統(tǒng)對(duì)數(shù)據(jù)不同需求,分 2 種情形討論實(shí)現(xiàn)方式:第1 種,多個(gè)應(yīng)用系統(tǒng)需要相同數(shù)據(jù);第 2 種,多個(gè)應(yīng)用系統(tǒng)需要不同數(shù)據(jù)。

3.1 第 1 種情況實(shí)現(xiàn)方式

第 1 種情況比較容易實(shí)現(xiàn),如果用 M 代表應(yīng)用定義的共享變量,則代碼片段 1 如下:

Sharing ( ls: LS, m:M ) {

val broadcast Value = SDMA Context.broadcast (o)

ls.for each (i = > {

share (i,o)

})

}。

具體實(shí)現(xiàn)步驟如下:

1)控制器調(diào)用廣播方法,將應(yīng)用定義的共享變量裝載入內(nèi)存區(qū)域。

2)對(duì) LS 的每個(gè)業(yè)務(wù)系統(tǒng)調(diào)用 share 函數(shù)??刂破髟陬A(yù)裝載處理過(guò)程中會(huì)判斷業(yè)務(wù)系統(tǒng)集合中業(yè)務(wù)系統(tǒng)接口和共享變量可用性。

3)控制器向指定代理發(fā)送包輸出消息。該消息發(fā)送后,代理通過(guò)輸入端口接收此消息。代理通過(guò)在流表項(xiàng)目中匹配消息頭部域,執(zhí)行流表項(xiàng)中預(yù)定義操作,流表項(xiàng)通過(guò)輸出端口輸出結(jié)果。代理通過(guò)發(fā)送端口狀態(tài)消息到控制器以反饋操作結(jié)果。

3.2 第 2 種情況實(shí)現(xiàn)方式

第 2 種情況,當(dāng)多個(gè)系統(tǒng)彼此互不關(guān)聯(lián),需要不同數(shù)據(jù)對(duì)象。這類(lèi)似于第 1 種情形,不同之處在于控制器調(diào)度任務(wù)到代理的次數(shù),控制器產(chǎn)生的任務(wù)相同。當(dāng)多個(gè)業(yè)務(wù)系統(tǒng)彼此關(guān)聯(lián)時(shí),每個(gè)業(yè)務(wù)處理的輸入和輸出參數(shù)格式有可能互不相同。此時(shí),軟件定義地圖模型的上層應(yīng)用(SDMA)的設(shè)計(jì)依賴(lài)于關(guān)聯(lián)矩陣定義。在 SDMA Context 類(lèi)中,關(guān)聯(lián)矩陣是一個(gè)稀疏矩陣,矩陣中每一行定義每一業(yè)務(wù)系統(tǒng)所依賴(lài)的其它業(yè)務(wù)系統(tǒng)的唯一編碼。 假定用 S 代表輸入?yún)?shù)不依賴(lài)于其它業(yè)務(wù)系統(tǒng)輸出結(jié)果的業(yè)務(wù)系統(tǒng),用 O 代表與對(duì)應(yīng) S 業(yè)務(wù)系統(tǒng)集合中的輸入對(duì)象列表,用 D 表示關(guān)聯(lián)矩陣。代碼片段 2 如下:

Sharing ( s:S,o:O,d:D ){

check (o)

share (s,o,d)

}

具體實(shí)現(xiàn)步驟如下:

1)在檢驗(yàn)要共享的對(duì)象是否存在之后,控制器從依賴(lài)矩陣中分析關(guān)聯(lián)關(guān)系,并開(kāi)始分配任務(wù)。

2)控制器內(nèi)部首先并行發(fā)送包輸入消息到業(yè)務(wù)系統(tǒng)所在代理端口,消息中包含每一個(gè)業(yè)務(wù)系統(tǒng)依賴(lài)的對(duì)象信息。代理通過(guò)解析消息頭部域獲得所依賴(lài)的對(duì)象唯一標(biāo)識(shí),然后發(fā)送包輸入消息以詢(xún)問(wèn)控制器如何獲得訪問(wèn)該對(duì)象。

3)控制器發(fā)送修改狀態(tài)消息,在流表項(xiàng)中增加如何獲取該對(duì)象的方法。

4)業(yè)務(wù)系統(tǒng)在執(zhí)行新增流表項(xiàng)方法之后,開(kāi)始調(diào)用業(yè)務(wù)系統(tǒng)所對(duì)應(yīng)的流表項(xiàng)執(zhí)行業(yè)務(wù)邏輯。執(zhí)行結(jié)束后,使用包輸出消息通知控制器。與傳統(tǒng)應(yīng)用依靠復(fù)雜參數(shù)匹配算法互相傳遞輸入輸出參數(shù)不同,由代理向控制器描述底層數(shù)據(jù)更新系統(tǒng)所支持的具體操作細(xì)節(jié),例如底層對(duì)象的唯一標(biāo)識(shí),在該對(duì)象上施加的操作及可能返回的結(jié)果類(lèi)型。這樣,在應(yīng)用層提交應(yīng)用之前,控制器將生成不同應(yīng)用系統(tǒng)輸入輸出參數(shù)的類(lèi)型轉(zhuǎn)換邏輯。數(shù)據(jù)平面中的元素主要任務(wù)是傳遞數(shù)據(jù)和執(zhí)行控制器任務(wù)。

5)代理通過(guò)包輸入消息向控制器發(fā)布數(shù)據(jù)更新操作。當(dāng)多個(gè)應(yīng)用系統(tǒng)需要操作這些數(shù)據(jù)對(duì)象時(shí),它們向控制器訂閱這些對(duì)象的訪問(wèn)規(guī)則,最后再由控制器控制系統(tǒng)數(shù)據(jù)共享的任務(wù)安排。

黃委信息中心整合了從黃委水文局獲取的水雨情數(shù)據(jù),從國(guó)家防汛抗旱指揮系統(tǒng)二期災(zāi)情評(píng)估系統(tǒng)獲取的社會(huì)經(jīng)濟(jì)數(shù)據(jù),從黃河水量調(diào)度業(yè)務(wù)處理系統(tǒng)中獲取的用水計(jì)劃、日?qǐng)?bào)月報(bào)數(shù)據(jù),以及國(guó)家水資源監(jiān)控能力建設(shè)項(xiàng)目建立的國(guó)控水資源標(biāo)準(zhǔn)數(shù)據(jù)庫(kù);涵蓋了用水監(jiān)測(cè)點(diǎn)的日用水量信息,水文站的水質(zhì)自動(dòng)監(jiān)測(cè)數(shù)據(jù),防汛指揮系統(tǒng)依賴(lài)的河道、水庫(kù)的水情數(shù)據(jù),沿黃河流域縣級(jí)以上行政區(qū)域農(nóng)作物產(chǎn)量、人口數(shù)據(jù)及工業(yè)產(chǎn)值等數(shù)據(jù)。這些數(shù)據(jù)庫(kù)都是依據(jù)國(guó)家水利行業(yè)有關(guān)標(biāo)準(zhǔn)設(shè)計(jì)建立的,例如,國(guó)控水資源標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)按照 SL 380-2007《水資源監(jiān)控管理數(shù)據(jù)庫(kù)表結(jié)構(gòu)及標(biāo)識(shí)符標(biāo)準(zhǔn)》建立,以結(jié)構(gòu)化數(shù)據(jù)為主。數(shù)據(jù)中心按照對(duì)象事件模型將這些結(jié)構(gòu)化數(shù)據(jù)映射成全局唯一的水利對(duì)象,例如,一個(gè)水質(zhì)監(jiān)測(cè)站基本信息表包含了監(jiān)測(cè)站的基本信息(測(cè)站編碼、測(cè)站名稱(chēng)、管理單位、經(jīng)緯度坐標(biāo)等 19 個(gè)屬性數(shù)據(jù))。每個(gè)監(jiān)測(cè)站對(duì)象有 1 個(gè)在中央數(shù)據(jù)中心具有全局唯一編碼,通過(guò)中心實(shí)現(xiàn)對(duì)全局水利對(duì)象的統(tǒng)一管理,局部系統(tǒng)自更新水利對(duì)象及支持面向地圖的自定義查詢(xún)分析 3 個(gè)核心功能。黃委綜合管理信息資源共享項(xiàng)目解決了水利對(duì)象在異構(gòu)系統(tǒng)中的共享與更新難題。每當(dāng)水質(zhì)監(jiān)測(cè)站的管理單位項(xiàng)發(fā)生變化時(shí),數(shù)據(jù)平面中的代理首先通過(guò)南橋協(xié)議向控制器發(fā)送異步消息,在控制器內(nèi)部通過(guò)查詢(xún)統(tǒng)一對(duì)象元數(shù)據(jù)目錄,對(duì)在數(shù)據(jù)中心存儲(chǔ)的該水質(zhì)監(jiān)測(cè)站對(duì)象數(shù)據(jù)進(jìn)行修改。之后由控制器生成數(shù)據(jù)更新通知消息到代理端口,每個(gè)數(shù)據(jù)平面中的代理在接收到消息后,在流表項(xiàng)中進(jìn)行任務(wù)匹配,最終由代理負(fù)責(zé)更新對(duì)應(yīng)數(shù)據(jù)庫(kù)中的監(jiān)測(cè)站數(shù)據(jù)條目。支持面向軟件定義地圖應(yīng)用的查詢(xún)是實(shí)現(xiàn)數(shù)據(jù)共享的一種方式,中心節(jié)點(diǎn)在數(shù)據(jù)目錄訪問(wèn)之后,將要查詢(xún)對(duì)象的全局編碼裝載到內(nèi)存區(qū)域,通過(guò)發(fā)送查詢(xún)消息到數(shù)據(jù)平面的代理,由代理執(zhí)行流表項(xiàng)中定義查詢(xún),最終由各代理返回查詢(xún)處理結(jié)果。

4 實(shí)驗(yàn)分析

2 種數(shù)據(jù)共享方式耗費(fèi)的時(shí)間由 3 個(gè)部分構(gòu)成:第 1 部分是中心節(jié)點(diǎn)數(shù)據(jù)目錄訪問(wèn)和內(nèi)存裝載過(guò)程時(shí)消耗時(shí)間;第 2 部分是數(shù)據(jù)平面中代理執(zhí)行流表中定義的流表項(xiàng)所耗費(fèi)時(shí)間;最后是各代理返回消息到控制器消耗時(shí)間。黃委共享服務(wù)平臺(tái)中包含了實(shí)時(shí)水情及水質(zhì)監(jiān)測(cè)等數(shù)據(jù),水情數(shù)據(jù)包含水文站名稱(chēng)、水位、流量、時(shí)間及警戒水位信息。假定業(yè)務(wù)系統(tǒng)的執(zhí)行功能相同且執(zhí)行代價(jià)都相同(僅僅在獲取共享數(shù)據(jù)后,在終端顯示數(shù)據(jù))。為確定業(yè)務(wù)系統(tǒng)數(shù)量對(duì)執(zhí)行數(shù)據(jù)共享效率的影響,本研究用 Docker 管理業(yè)務(wù)系統(tǒng)鏡像,用 Kubernetes 管理和加載業(yè)務(wù)容器使之自動(dòng)水平擴(kuò)展。Docker 版本為社區(qū)版 17.09.0-ce,Kubernetes 采用 1.10.4 穩(wěn)定版。Kubernetes 擴(kuò)展容器的能力使得實(shí)驗(yàn)過(guò)程中能加載任意數(shù)目的業(yè)務(wù)系統(tǒng)。本次實(shí)驗(yàn)環(huán)境為黃委信息中心黃河云,底層由 OpenStack 相關(guān)組件管理虛擬機(jī)實(shí)例,使用 Ceph 文件系統(tǒng)管理虛擬機(jī)存儲(chǔ)??偣采暾?qǐng)使用 6 臺(tái)虛擬機(jī),其中 5 臺(tái)虛擬機(jī)參數(shù)是2vCPUs, 8 GB 內(nèi)存,以及 250 GB 硬盤(pán);另外 1 臺(tái)虛擬機(jī)配置有 4vCPUs,16 GB 內(nèi)存,以及 500 GB硬盤(pán)。內(nèi)存較大的虛擬機(jī)實(shí)例用于加載控制器鏡像,其它 5 個(gè)虛擬機(jī)則用于運(yùn)行代理及業(yè)務(wù)系統(tǒng)的鏡像。假定業(yè)務(wù)系統(tǒng)都已經(jīng)遷移到云環(huán)境中,本研究用云計(jì)算虛擬化網(wǎng)絡(luò)模擬業(yè)務(wù)系統(tǒng)復(fù)雜通信網(wǎng)絡(luò)使之具有一定代表性。

實(shí)驗(yàn)首先分析在業(yè)務(wù)系統(tǒng)數(shù)量為 100 個(gè)時(shí),控制器使用同步和異步模式共享數(shù)據(jù)時(shí)的執(zhí)行時(shí)間開(kāi)銷(xiāo),具體時(shí)間開(kāi)銷(xiāo)如表 1 所示。面向軟件定義地圖共享的算法在執(zhí)行水情數(shù)據(jù)共享時(shí),實(shí)驗(yàn)記錄收到業(yè)務(wù)系統(tǒng)反饋的時(shí)間。每次不同的配置被執(zhí)行 10 次,記錄平均執(zhí)行時(shí)間。當(dāng)控制器使用異步操作指定共享 100 MB 數(shù)據(jù)時(shí),大約在 23.3 s 時(shí)間內(nèi)完成所有系統(tǒng)對(duì)該數(shù)據(jù)對(duì)象的訪問(wèn)與業(yè)務(wù)更新。當(dāng)控制器指定共享 500 MB 數(shù)據(jù)時(shí),大約在 34.9 s 時(shí)間內(nèi)所有業(yè)務(wù)系統(tǒng)完成更新操作。盡管數(shù)據(jù)量增加時(shí),所有業(yè)務(wù)系統(tǒng)完成更新的時(shí)間會(huì)增加,例如在更新 1000MB數(shù)據(jù)時(shí),大約需要 42.3 s 完成;但也發(fā)現(xiàn),控制器廣播變量傳遞數(shù)據(jù)時(shí),控制器使用 P2P 協(xié)議減少了業(yè)務(wù)系統(tǒng)獲取控制器內(nèi)存數(shù)據(jù)的時(shí)間。在執(zhí)行同步共享數(shù)據(jù)操作時(shí),控制器通過(guò)發(fā)送數(shù)據(jù)包輸出消息到代理端口,代理需等待業(yè)務(wù)系統(tǒng)完成后才能返回確認(rèn)消息。因此,可以看到在同步情況下,共享1000MB 數(shù)據(jù)時(shí),大約在 42.8 s 時(shí)間內(nèi)所有業(yè)務(wù)系統(tǒng)返回確認(rèn)消息,內(nèi)存裝載操作時(shí)間會(huì)隨著數(shù)據(jù)量大小增加而增大。在實(shí)驗(yàn)過(guò)程中,通過(guò)統(tǒng)計(jì)發(fā)現(xiàn)廣播 1 個(gè) 2 GB 對(duì)象大約消耗的時(shí)間是 61.0 s。實(shí)際上,在控制器版本的升級(jí)過(guò)程中已經(jīng)考慮引入 Redis緩存優(yōu)化以降低這一部分時(shí)間消耗。實(shí)驗(yàn)跟蹤了代理在執(zhí)行流表操作時(shí)的平均執(zhí)行時(shí)間,此次數(shù)據(jù)共享操作使得每一個(gè)代理都會(huì)匹配最后 1 個(gè)流表項(xiàng)以執(zhí)行代理到業(yè)務(wù)系統(tǒng)的數(shù)據(jù)傳遞,50% 的代理的流表項(xiàng)執(zhí)行時(shí)間在 450 ms 左右。因此,控制器在執(zhí)行共享操作時(shí)的效率主要由第 1 部分時(shí)間決定。

表 1 控制器使用同步和異步模式共享數(shù)據(jù)時(shí)的執(zhí)行時(shí)間開(kāi)銷(xiāo)(業(yè)務(wù)系統(tǒng)數(shù)為 100 個(gè))

本研究還分析了業(yè)務(wù)系統(tǒng)數(shù)對(duì)執(zhí)行器共享執(zhí)行大小數(shù)據(jù)的影響,共享數(shù)據(jù)為 1000MB 時(shí)的執(zhí)行時(shí)間開(kāi)銷(xiāo)如表 2 所示。更新 500,600,700,1000個(gè)業(yè)務(wù)系統(tǒng)數(shù)據(jù)時(shí),控制器異步執(zhí)行 1000MB 數(shù)據(jù)共享消耗時(shí)間大約分別為 32.6,34.1,33.1,35.1 s。結(jié)果表明,業(yè)務(wù)系統(tǒng)數(shù)和控制器共享大規(guī)模數(shù)據(jù)的性能之間沒(méi)有明顯關(guān)系。所有數(shù)據(jù)共享操作都在30.0 s 左右時(shí)間完成。在使用同步模式時(shí),控制器返回的時(shí)間會(huì)隨著業(yè)務(wù)系統(tǒng)數(shù)增加而產(chǎn)生較大延時(shí)。實(shí)際上業(yè)務(wù)系統(tǒng)所處網(wǎng)絡(luò)環(huán)境復(fù)雜,且業(yè)務(wù)系統(tǒng)的邏輯操作各不相同,因此,深入地實(shí)驗(yàn)分析控制器流表項(xiàng)如何使用計(jì)數(shù)域避免長(zhǎng)時(shí)間等待代理返回是必須的。后一階段任務(wù)重點(diǎn)考慮延時(shí)等待問(wèn)題。

表 2 控制器使用同步和異步模式共享數(shù)據(jù)時(shí)的執(zhí)行時(shí)間開(kāi)銷(xiāo)(共享數(shù)據(jù)為 1000MB)

5 結(jié)語(yǔ)

水利數(shù)據(jù)整合共享是實(shí)現(xiàn)水利數(shù)據(jù)深度挖掘的一個(gè)重要前提,其中技術(shù)框架和管理體系的建立是主要工作任務(wù)[18]。在第一次全國(guó)水利普查開(kāi)展之后[19],水利信息化標(biāo)準(zhǔn)體系確保了普查成果的有效開(kāi)發(fā)利用,促進(jìn)了水利業(yè)務(wù)協(xié)同[20]。這些標(biāo)準(zhǔn)體系包含水利對(duì)象和信息的分類(lèi)編碼、傳輸交換、數(shù)據(jù)存儲(chǔ)、圖示表達(dá)、產(chǎn)品服務(wù)、建設(shè)管理和運(yùn)維服務(wù)標(biāo)準(zhǔn),它們?cè)谕苿?dòng)水利業(yè)務(wù)系統(tǒng)之間全面共享數(shù)據(jù)方面發(fā)揮了重要作用。近年來(lái),面向“一張圖”的資源整合成為主流。黃委將標(biāo)準(zhǔn)化組織和存儲(chǔ)的水利對(duì)象數(shù)據(jù)通過(guò)一張圖的形式直觀表示出來(lái),使用標(biāo)準(zhǔn) WMTS 圖層服務(wù)匯聚了包括河流、湖泊及淤地壩等 9 類(lèi)水利基礎(chǔ)數(shù)據(jù)。此外,黃委通過(guò)數(shù)據(jù)整合提供雨量站、大堤等 18 項(xiàng)專(zhuān)題圖層服務(wù),與防汛抗旱有關(guān)的 6 項(xiàng)圖層服務(wù)包含了險(xiǎn)工險(xiǎn)點(diǎn)、治河工程等數(shù)據(jù)。這些工作使得通過(guò)通用的集合操作對(duì)圖層中所含對(duì)象進(jìn)行數(shù)據(jù)操作和分析成為趨勢(shì)。

考慮到對(duì)異構(gòu)服務(wù)聚合需要依賴(lài)復(fù)雜的參數(shù)轉(zhuǎn)換、服務(wù)注冊(cè)與更新,使得分析應(yīng)用及數(shù)據(jù)整合共享的任務(wù)實(shí)現(xiàn)非常困難,為此從解耦應(yīng)用邏輯和數(shù)據(jù)管理方面分析一個(gè)應(yīng)用的執(zhí)行過(guò)程。SDM 形式化將分析過(guò)程劃分到應(yīng)用、控制及數(shù)據(jù)平面。其中數(shù)據(jù)平面模擬軟件定義交換機(jī)的行為,通過(guò)接收控制器發(fā)送的指令,實(shí)現(xiàn)對(duì)數(shù)據(jù)平面中的數(shù)據(jù)進(jìn)行交換和處理的功能。SDM 綜合考慮了地圖約束條件下的應(yīng)用層表達(dá)模式,使得智能化分析應(yīng)用可以在統(tǒng)一的抽象概念上自動(dòng)組織。SDM 控制器作為傳遞應(yīng)用層數(shù)據(jù)需求和協(xié)調(diào)任務(wù)執(zhí)行的中樞,通過(guò)標(biāo)準(zhǔn)的南橋協(xié)議與數(shù)據(jù)平面中的異構(gòu)數(shù)據(jù)單元通信。南橋協(xié)議規(guī)范地描述了控制器和數(shù)據(jù)平面中代理的消息傳遞模式,定義了控制器獲取代理狀態(tài)、控制代理執(zhí)行流表更新任務(wù)及管理代理回復(fù)。在 SDM 架構(gòu)中,數(shù)據(jù)平面代理主要任務(wù)是傳遞數(shù)據(jù)和執(zhí)行控制器任務(wù),通過(guò)匹配對(duì)象以執(zhí)行控制器分發(fā)任務(wù),代理成為能自適應(yīng)底層數(shù)據(jù)存儲(chǔ)模式通用組件。SDM 是面向“一張圖”產(chǎn)生智能化分析應(yīng)用的基礎(chǔ),不僅適用于整合和共享異構(gòu)水利數(shù)據(jù),在自管理、自?xún)?yōu)化及自配置異構(gòu)水利資源方面也有著獨(dú)特作用。

猜你喜歡
表項(xiàng)數(shù)據(jù)包端口
一種改進(jìn)的TCAM路由表項(xiàng)管理算法及實(shí)現(xiàn)
二維隱蔽時(shí)間信道構(gòu)建的研究*
一種端口故障的解決方案
民用飛機(jī)飛行模擬機(jī)數(shù)據(jù)包試飛任務(wù)優(yōu)化結(jié)合方法研究
基于ARMA模型預(yù)測(cè)的交換機(jī)流表更新算法
SmartSniff
端口阻塞與優(yōu)先級(jí)
SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項(xiàng)轉(zhuǎn)換的流表調(diào)度優(yōu)化
系統(tǒng)網(wǎng)絡(luò)端口安全防護(hù)
衛(wèi)星三端口DC-DC變換器技術(shù)綜述
循化| 莫力| 贵州省| 武鸣县| 肥城市| 碌曲县| 菏泽市| 沙湾县| 民权县| 井陉县| 龙山县| 工布江达县| 德州市| 靖边县| 泾源县| 娱乐| 丰原市| 金湖县| 建德市| 榆社县| 大兴区| 阳城县| 黔西| 碌曲县| 高唐县| 友谊县| 天祝| 望谟县| 闵行区| 澄迈县| 洪洞县| 江陵县| 彭阳县| 沾化县| 安庆市| 增城市| 工布江达县| 望江县| 绥中县| 建平县| 旬阳县|