亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Zookeeper的國土資源檔案分布式查詢框架設計與實現(xiàn)

        2017-03-30 09:59:21顧乾斌潘善亮
        移動通信 2017年5期

        顧乾斌+潘善亮

        【摘 要】基于業(yè)務發(fā)展需求,市國土資源局需要集成下屬縣(市)區(qū)國土資源局的檔案數(shù)據(jù),并提供全大市統(tǒng)一檔案查詢視圖,故設計和實現(xiàn)了一種基于Zookeeper服務注冊中心機制,采用REST服務風格的分布式檔案數(shù)據(jù)查詢框架,通過RESTful WebService解決了異地分布數(shù)據(jù)查詢的問題,同時結(jié)合Lucene搜索引擎提供的全文索引功能,提高了數(shù)據(jù)查詢速度和查準率,實際系統(tǒng)投入使用效果良好。

        【關鍵詞】Zookeeper REST 國土檔案 WebService

        [Abstract] In view of the business development demand, the city bureau of land resources needs to integrate the archive data of the subordinate counties (city)s bureau and provide the unified view file query to the market. A distributed archives data query framework in which the Zookeeper service registration mechanism and the REST service style are used. By means of RESTful Web Service, the remote distributed data query was resolved. Combined with the full-text index function provided by Lucene search engine, the data query speed and accuracy are enhanced with good application effect in real systems.

        [Key words]Zookeeper REST land archives WebService

        1 引言

        國土資源檔案管理是專業(yè)性較強的一項工作,因為其中專業(yè)檔案較多,特別是地籍資料,具有很高的查找利用價值。近年來,隨著城市化進程的加快和新農(nóng)村建設的推進,拆遷安置中引發(fā)的土地糾紛也隨之增加。國土檔案工作可以為調(diào)處土地權屬糾紛、土地違法案件、信訪案件提供大量證據(jù)資料,切實維護土地所有者、使用者的權益,進一步促進社會的和諧穩(wěn)定;在解決鄰里糾紛、民事訴訟、房屋拆遷補償、辦理土地使用權證等方面發(fā)揮重要作用。

        隨著信息化發(fā)展的加快,國土檔案管理對象從紙質(zhì)文檔發(fā)展到了電子影像文檔。檔案數(shù)據(jù)的來源從過去純粹的單一系統(tǒng)錄入,轉(zhuǎn)變到來自不同業(yè)務系統(tǒng)。因此迫切地需要集成化的國土檔案資源管理系統(tǒng)對數(shù)據(jù)進行管理。

        當前的檔案管理系統(tǒng)在歸檔時需要二次掃描,重復性工作量大。其次,全市國土檔案數(shù)據(jù)在物理上分布于各個縣區(qū),各縣市區(qū)的檔案系統(tǒng)無法提供一個統(tǒng)一的系統(tǒng)入口以供對全市范圍的檔案數(shù)據(jù)進行查詢,原檔案查詢過程繁瑣。針對這些問題,需要對不同系統(tǒng)的未歸檔數(shù)據(jù)和物理上獨立分布的已歸檔數(shù)據(jù)進行集成,并提供統(tǒng)一的檔案查詢接口,使檔案查詢歸檔更加快捷方便,提高檔案的利用率。

        目前基于WebService的面向服務的架構SOA成為人們解決問題的主要途徑[1]。近年來,表述性狀態(tài)轉(zhuǎn)移(REST,Representational State Transfer)作為架構被提出,其高可擴展性和簡單的部署方式更適合于輕量級的Web服務,尤其適合面向資源的應用[2]?;赗EST風格構建的互聯(lián)網(wǎng)應用具有方便集成、提高服務器的可擴展性等優(yōu)點。基于Zookeeper設計和實現(xiàn)服務的注冊發(fā)現(xiàn)中心,提高了注冊中心的一致性和高性能。基于Node.js實現(xiàn)的Service Gateway(服務網(wǎng)關)可解耦服務消費者和服務提供者,對外提供統(tǒng)一的服務調(diào)用方式。本文主要研究如何利用REST、注冊中心和服務網(wǎng)關實現(xiàn)可擴展性好、穩(wěn)定性高的分布式查詢框架,并在此基礎上實現(xiàn)松耦合、易查詢的國土資源檔案信息系統(tǒng)的建立,解決不同系統(tǒng)之間的資源集成問題,并采用Lucene對部分關鍵表的重要字段以及部分文檔實時建立全文索引,以提高檔案資源的利用率[4]。

        2 關鍵技術

        2.1 面向服務的架構SOA

        SOA的基本概念:面向服務的體系架構是一個組件模型,其架構思想主張系統(tǒng)設計與實現(xiàn)相分離,使系統(tǒng)整體設計不再受制于技術實現(xiàn)因素。面向服務的體系架構設計擺脫技術的束縛,為解決異構系統(tǒng)通信與互操作問題提供了一種行之有效的解決方案[5]。在SOA架構的基礎上,利用所提供的面向服務的特性,對原有國土資源局及縣市區(qū)的應用系統(tǒng)的數(shù)據(jù)庫進行分析,將必要的資源數(shù)據(jù)轉(zhuǎn)變?yōu)榭晒蚕淼臉藴史?,然后通過對服務的調(diào)用來完成各個應用和系統(tǒng)數(shù)據(jù)的交互與業(yè)務協(xié)同,實現(xiàn)異構、分布式應用系統(tǒng)之間的敏捷、快速、松耦合、高可靠的應用集成的體系架構[6]。

        2.2 REST

        REST是2000年Roy Thomas Fielding博士在他的論文中提出的一個術語。其核心思想是將Web應用中所有信息均抽象為“資源”,而所有操作也都是基于資源完成的[7]。在REST中,認為Web是由一系列抽象資源組成的。

        REST并不是一種架構,而是一種約束或者說是設計原則,任何符合該約束的服務或架構都可以稱為是RESTful的服務或架構。在RESTful架構中,當客戶請求時,返回資源的一種特定表現(xiàn)形式,例如Json、PDF、XML等。這種基于資源的設計改變了傳統(tǒng)的基于動作的設計思想。RESTful Web服務是基于HTTP協(xié)議的,Web應用程序通過一致的接口(URI)來暴露資源,客戶端通過HTTP的四個動作謂詞來訪問資源[8]。因此可以顯式地使用CRUD方法,即創(chuàng)建、讀取、更新和刪除(CRUD,Create、Read、Update、Delete),從而與HTTP服務建立四種映射。

        綜上,通過RESTful風格設計國土資源檔案管理系統(tǒng)能夠賦予其高伸縮性、擴展性和靈活性,通過標準的服務來訪問檔案資源,使整個架構更加簡潔。因此對于國土檔案資源在物理上多點分布和系統(tǒng)異構并存的資源環(huán)境,使用RESTful Web服務是合適的。

        2.3 Zookeeper分布式服務注冊中心

        Zookeeper是一個分布式的框架,應用于解決分布式集群系統(tǒng)的一致性問題。Zookeeper提供了基于類似文件系統(tǒng)的目錄節(jié)點樹方式的數(shù)據(jù)存儲,其不僅是存儲這些數(shù)據(jù),還可以維護和監(jiān)控數(shù)據(jù)的狀態(tài)變化,并將這些數(shù)據(jù)的最新狀態(tài)通知給數(shù)據(jù)服務的使用者[9]。

        Zookeeper作為分布式服務的注冊發(fā)現(xiàn)配置中心,可以對服務提供者和服務消費者進行解耦,服務提供者在應用啟動時向服務中心注冊,服務消費者在應用啟動時向服務注冊中心拉取當前的提供者基本數(shù)據(jù)[10]。Zookeeper分布式服務注冊中心示意圖如圖1所示。

        如圖1所示,用socket長連接來保持服務提供者、服務消費者(可以是服務網(wǎng)關)和服務注冊中心之間的連通性,并通過心跳包來感知服務提供者,服務消費者可及時獲取到最新的可用服務列表,確保注冊中心服務的可用性以及架構的健壯性和伸縮性。

        (1)健壯性

        1)注冊中心宕機后,服務消費者仍能通過本地緩存的服務目錄調(diào)用服務提供者;

        2)服務提供者無狀態(tài),一臺宕機后,服務消費者根據(jù)拉取到的服務信息仍可調(diào)用其他服務。

        (2)伸縮性:服務提供者無狀態(tài),可動態(tài)增加機器部署實例,注冊中心將推送新的服務提供者信息給服務消費者。

        3 需求分析

        3.1 數(shù)據(jù)和系統(tǒng)現(xiàn)狀

        市國土資源局的各個業(yè)務系統(tǒng)建立在信息化進程中的不同時期,所采用的技術和架構存在較大差異,早期系統(tǒng)沒有解決各系統(tǒng)的數(shù)據(jù)集成問題,全市檔案數(shù)據(jù)分布于各縣市區(qū)和市局的檔案系統(tǒng)中,由于這些系統(tǒng)采用的技術架構不同,無法很好地集成數(shù)據(jù),形成了信息孤島,從而導致了在檔案數(shù)據(jù)歸檔時出現(xiàn)重復性工作。加之不動產(chǎn)登記對國土檔案數(shù)據(jù)有著大范圍的查檔需求,故建立集成化的檔案管理系統(tǒng)迫在眉睫。

        對上述現(xiàn)狀可歸納為已歸檔的檔案數(shù)據(jù)在物理上多點分布,需歸檔的數(shù)據(jù)存在于異構的系統(tǒng)中,要在數(shù)據(jù)層面上以服務的形式進行集成[6]。集成后可以提高檔案查詢的效率,只需打開一個瀏覽器終端頁面就可以對全市檔案進行查詢,如圖2所示:

        3.2 功能需求

        在采用RESTful Web服務解決數(shù)據(jù)集成問題的基礎上,對需求進行分析后得出檔案管理系統(tǒng)的功能模塊,如表1所示:

        4 系統(tǒng)設計

        4.1 架構設計

        基于RESTful的市國土資源檔案管理系統(tǒng)的架構模型如圖3所示,大致可以分為6層和一個服務注冊中心。

        (1)數(shù)據(jù)源層

        數(shù)據(jù)源層主要包括數(shù)據(jù)資源和相關業(yè)務系統(tǒng)。數(shù)據(jù)來源主要有OA數(shù)據(jù)庫,江北、海曙、江東和高新區(qū)的數(shù)據(jù)庫以及ftp服務器上的檔案文件。業(yè)務系統(tǒng)包括部署在市局的檔案、OA系統(tǒng),地籍系統(tǒng)等,這些系統(tǒng)中的數(shù)據(jù)正是市檔案系統(tǒng)所要集成的。

        (2)索引層

        Lucene是一個高性能的全文搜索引擎工具,在倒排索引的基礎上可實現(xiàn)分塊索引,提升了索引的速度[8]。系統(tǒng)從數(shù)據(jù)庫中獲取數(shù)據(jù),對主要的查詢字段形成一個全文檢索的庫,在檢索條件模糊的情況下從索引庫檢索,從而提高檔案查詢時的查準率。并且每天定時從數(shù)據(jù)庫中拉取增量數(shù)據(jù)建立全文索引。

        (3)原子服務層

        原子服務層的服務是標準的、獨立的、細粒度的,原則上原子服務是不依賴于其它任何服務的,運行效率和可復用性高。例如將各個系統(tǒng)的數(shù)據(jù)表中的檔案數(shù)據(jù)分別建立查詢的服務,作為最基本的原子服務,向服務注冊中心注冊,為上層的組合服務提供基礎。

        (4)組合服務層

        組合服務根據(jù)檔案系統(tǒng)的業(yè)務邏輯將原子服務組裝成符合業(yè)務需求的服務,提供粒度更粗的服務功能,同時能簡化客戶端的調(diào)用邏輯。比如,需要在全市范圍內(nèi)查詢一個檔案,需要逐個調(diào)用5到6個服務,通過服務的組合可以減少業(yè)務層在調(diào)用服務時的成本。

        (5)服務網(wǎng)關

        Service Gateway封裝應用的內(nèi)部結(jié)構,簡化客戶端的調(diào)用過程,相比起直接調(diào)用指定的服務,通過Service Gateway實現(xiàn)服務調(diào)用更加簡便。同時客戶端能提供統(tǒng)一的調(diào)用接口,減少客戶端維護保存服務調(diào)用接口地址的成本。

        (6)服務注冊中心

        服務注冊中心作為整個架構中一個重要的中間件,是整個系統(tǒng)維護各類服務接口的基本數(shù)據(jù),在此基礎上,基于Zookeeper的注冊中心會監(jiān)聽已注冊服務的服務器,當監(jiān)聽服務器不可達時,將該服務從注冊服務的節(jié)點上刪除,以保證在注冊中心的服務是可用的。

        (7)業(yè)務層

        在原子服務和組合服務的基礎上,系統(tǒng)通過調(diào)用這些服務來實現(xiàn)檔案系統(tǒng)的部分重要功能,例如全市范圍內(nèi)檔案的搜索和文檔影像文件的查看功能,以及文書檔案、業(yè)務檔案和多媒體的歸檔、整理、借閱管理和利用率統(tǒng)計等功能。

        4.2 架構設計

        (1)注冊中心數(shù)據(jù)存儲結(jié)構設計

        Zookeeper內(nèi)部提供了一個基于ZNode節(jié)點的樹狀模型,可以在根節(jié)點下方擴展任意的子節(jié)點,其子節(jié)點分為四種創(chuàng)建模式,包括持久節(jié)點、持久順序節(jié)點、臨時節(jié)點、臨時順序節(jié)點[3]。

        根節(jié)點是持久節(jié)點,可以在根節(jié)點下添加其他節(jié)點,使用服務名稱作為子節(jié)點的名稱,將該類節(jié)點稱為服務節(jié)點,其同樣是持久節(jié)點。為了確保服務的高可用性,可以發(fā)布多個相同功能的服務到同一個服務節(jié)點下。根據(jù)業(yè)務和架構設計,將節(jié)點分為原子服務和組合服務兩大類,注冊中心存儲結(jié)構如圖4所示。

        (2)基于注冊中心和服務網(wǎng)關設計實現(xiàn)服務的高可用屬性

        每個服務節(jié)點下都有多個節(jié)點提供同類的服務,當消費者發(fā)起調(diào)用時,服務網(wǎng)關根據(jù)從注冊中心拉取到的服務列表逐個調(diào)用該類服務直到調(diào)用成功,這種錯誤從試的調(diào)用策略提高了服務的可用性和系統(tǒng)穩(wěn)定性。根據(jù)調(diào)用策略亦可實現(xiàn)軟負載均衡的功能??捎眯栽O計如圖5所示:

        4.3 基于Node.js的服務網(wǎng)關的設計

        Node.js是一個基于Chrome V8引擎的JavaScript運行時環(huán)境,它使用了一個事件驅(qū)動且“異步非阻塞I/O”的模型,使其非常輕量高效,因此可基于Node.js來設計和開發(fā)服務網(wǎng)關。

        服務網(wǎng)關(Service Gateway)是服務架構中的核心組件,它是服務請求的門戶,是調(diào)用具體服務端的橋梁,服務網(wǎng)關類似經(jīng)典設計模式中的門面模式,它將底層的復雜細節(jié)進行屏蔽,解耦服務調(diào)用者和服務提供者之間的關系,對外提供簡單且統(tǒng)一的調(diào)用方式,如HTTP方式。

        服務調(diào)用者將服務名放到請求頭中,服務網(wǎng)關解析該請求,從注冊中心獲取該服務的提供者,并根據(jù)一定的規(guī)則,例如隨機、錯誤從試和隨機調(diào)用等規(guī)則來調(diào)用服務提供者,調(diào)用過程如圖6所示:

        5 系統(tǒng)架構具體實現(xiàn)

        5.1 系統(tǒng)服務化的實現(xiàn)

        (1)資源的分類標準

        標準的Web服務是檔案系統(tǒng)查詢、管理、歸檔和集成不同數(shù)據(jù)源的規(guī)范基礎,根據(jù)REST的設計原則,可以將資源的CRUD操作對應于HTTP的POST、GET、PUT、DELETE四個類型的請求。根據(jù)《寧波市國土資源局歸檔范圍、分類方案及保管期限表》,確定檔案資源的分類和命名規(guī)則,將綜合類、會計類、土地類、地籍類、土地規(guī)劃類、建設用地類、故土資源監(jiān)察類、科技類、電子聲像類和地質(zhì)礦產(chǎn)類,依次以A到I命名。

        (2)發(fā)布接口的定義

        依據(jù)REST的設計原則以及檔案的分類,部分服務接口的模板定義如表2所示:

        (3)接口的實現(xiàn)

        JAX-RS即Java API for RESTful Web Services,是java實現(xiàn)RESTfulWEB服務的規(guī)范,而Apach CXF是對JAX-RS的一種很好的實現(xiàn),借助于Spring能夠較好地將Apach CXF框架集成到項目中。

        5.2 組合服務實現(xiàn)

        組合服務層是根據(jù)業(yè)務進行組合過的原子服務,可滿足復合業(yè)務需求。在檔案管理系統(tǒng)的查詢服務中,由于檔案數(shù)據(jù)所在地不同,需要訪問4~5個不同的原子服務接口才能查詢?nèi)繖n案,這增加了客戶端調(diào)用的成本,故將原子服務組合成一個方便調(diào)用的服務接口。例如,客戶端請求C類檔案的查詢服務:

        (1)首先客戶端向服務網(wǎng)關請求C類檔案的服務,服務名為“queryC”;

        (2)服務網(wǎng)關解析客戶端的請求,獲得服務名為“queryC”的服務節(jié)點的信息;

        (3)服務網(wǎng)關執(zhí)行反向代理;

        (4)組合服務從注冊中心的“/atomService/”路徑下獲取所有服務名是“queryC”下面的服務提供者節(jié)點;

        (5)根據(jù)獲取到的服務提供者節(jié)點,分別調(diào)用該服務;

        (6)將原子服務返回的結(jié)果合并,并返回給調(diào)用者。

        5.3 服務注冊實現(xiàn)

        服務注冊在應用啟動時,自動將要發(fā)布的服務注冊到服務中心。首先將獲取到哪些服務需要注冊,借助java的反射掃描指定的包下的Class獲取到哪些有“@Path、@GET”等注解的類和方法,這些加了該注解的方法就是需要發(fā)布的服務,并獲取注解中的服務路徑、參數(shù)等屬性。

        6 結(jié)束語

        針對國土檔案資源物理上多點分布、歸檔數(shù)據(jù)存在于異構系統(tǒng)中的現(xiàn)狀。本文設計和實現(xiàn)了基于Zookeeper的檔案資源分布式查詢框架,并對應實現(xiàn)了的Zookeeper服務注冊中心和基于NodeJs的服務網(wǎng)關,使得系統(tǒng)具有了接口統(tǒng)一,以及調(diào)用方便、易擴展、松耦合等特性,在此基礎上完成了資源的定義、數(shù)據(jù)的集成,REST服務的發(fā)布及其他業(yè)務功能的設計和實現(xiàn)?;谏鲜隹蚣艿臋n案資源管理系統(tǒng)解決了當前遇到的數(shù)據(jù)集成問題,在實際運行中效果良好。未來還需要增強服務網(wǎng)關的可靠性,增加服務網(wǎng)關對服務的監(jiān)控功能,包括服務的調(diào)用次數(shù)和調(diào)用耗時等,使能對系統(tǒng)服務運行情況有基本的了解。

        參考文獻:

        [1] 周濤. EAI企業(yè)實現(xiàn)信息化的重要途徑[J]. 中國信息導報, 2003(1): 38-39.

        [2] 張海峰,馬蘇. 基于SOA的企業(yè)應用集成技術研究與實現(xiàn)[J]. 計算機應用與軟件, 2011(7): 192-194.

        [3] 韋強,張國宣. 基于SOA的企業(yè)數(shù)據(jù)集成應用[J]. 計算機與現(xiàn)代化, 2010(11): 117-119.

        [4] 周敬才,胡華平,岳虹. 基于Lucene全文檢索系統(tǒng)的設計與實現(xiàn)[J]. 計算機工程與科學, 2015(7): 252-256.

        [5] 唐旭華,鄒崢嶸. 基于RESTfulWebServices的空間數(shù)據(jù)共享[J]. 測繪科學, 2010,35(4): 122-124.

        [6] 王建斌,胡小生,李康君,等. REST風格和基于SOAP的WebServices的比較與結(jié)合[J]. 計算機應用與軟件, 2010,27(9): 297-300.

        [7] Fielding R T. Architectural Styles and the Design of Network-based Software Architectures[J]. University of California Irvine, 2000,64(3): 303.

        [8] 江日念,林霞,喬德新. Maven在Java項目中的引入及應用[J]. 電腦知識與技術, 2013,9(21): 4842-4847.

        [9] 唐海東,武延軍. 分布式同步系統(tǒng)ZooKeeper的優(yōu)化[J]. 計算機工程, 2014,40(4): 53-56.

        [10] 易柏勝. 基于ZooKeeper的虛擬機動態(tài)變更機制的設計和實現(xiàn)[D]. 廣州: 華南理工大學, 2013.

        久久精品无码一区二区三区蜜费| 不卡高清av手机在线观看| 蜜桃视频在线看一区二区三区| 亚洲精品无码专区在线在线播放| 国产精品亚洲综合色区| 又白又嫩毛又多15p| 亚洲αⅴ无码乱码在线观看性色| 不打码在线观看一区二区三区视频| 日韩产的人妻av在线网 | 日本国产精品久久一线| 亚洲国产精品无码久久一线| 久久青青草原亚洲av无码麻豆| 亚洲永久无码7777kkk| 免费人成在线观看播放国产| 亚洲成人黄色av在线观看| 九九精品国产亚洲av日韩| 亚洲国产亚综合在线区| 成人国产精品一区二区视频| 又黄又爽又色又刺激的视频| 九九99国产精品视频| 视频一区视频二区亚洲| 无遮挡1000部拍拍拍免费| 丰满少妇大力进入av亚洲| 综合无码一区二区三区四区五区 | 东京热久久综合久久88| 国产性一交一乱一伦一色一情| 亚洲视一区二区三区四区| 日韩高清不卡一区二区三区| 超碰色偷偷男人的天堂| 成全高清在线播放电视剧| 另类欧美亚洲| 青青手机在线视频观看| 成人激情视频在线手机观看| 亚洲国产精品久久电影欧美| 97久久天天综合色天天综合色hd| 亚洲一区sm无码| 国产亚洲激情av一区二区| 日本精品一区二区三区福利视频 | 日韩高清亚洲日韩精品一区| 国产一区二区三区免费精品| 亚洲第一女优在线观看|