(中國(guó)長(zhǎng)江電力股份有限公司,湖北宜昌 443002)
圖文管理系統(tǒng)為生產(chǎn)企業(yè)提供圖紙服務(wù),支持圖紙管理的存儲(chǔ)檢索、審批流程、權(quán)限管控和外部接口等功能,支持各種格式的圖紙與生產(chǎn)設(shè)備關(guān)聯(lián),整合企業(yè)內(nèi)部的其他管理信息系統(tǒng),提供安全、開(kāi)放的圖紙?jiān)L問(wèn)接口,提高企業(yè)圖紙管理的標(biāo)準(zhǔn)化、規(guī)范化和高效化。
隨著生產(chǎn)企業(yè)規(guī)模的擴(kuò)大,企業(yè)設(shè)備的復(fù)雜性和規(guī)模的提升,傳統(tǒng)的基于關(guān)系數(shù)據(jù)庫(kù)的圖文管理系統(tǒng)存在管理復(fù)雜、存取速度慢,檢索方式單一的缺陷。大數(shù)據(jù)、云計(jì)算、人工智能等新興技術(shù)的出現(xiàn),提升了企業(yè)信息管理能力,為企業(yè)圖紙管理提供新的策略和解決方案。
為了提升圖文管系統(tǒng)的檢索性能、用戶(hù)體驗(yàn)和可擴(kuò)展性,本文采用大數(shù)據(jù)架構(gòu)和知識(shí)圖譜(Knowledge Graph)[1-3]技術(shù)設(shè)計(jì)企業(yè)圖文管理系統(tǒng),與僅僅依靠關(guān)系數(shù)據(jù)庫(kù)的圖文管理系統(tǒng)相比,基于大數(shù)據(jù)架構(gòu)圖文管理系統(tǒng)具有更好的計(jì)算性能、可擴(kuò)展性和用戶(hù)體驗(yàn),更有效地利用生產(chǎn)企業(yè)數(shù)據(jù)中心的云存儲(chǔ)[4-6]和云計(jì)算[7-8]能力;將知識(shí)圖譜應(yīng)用圖紙知識(shí)模型和圖紙使用模型,可以提升圖文管理系統(tǒng)的檢索能力和用戶(hù)體驗(yàn)。
本文提出的圖文管理系統(tǒng)整體分為4個(gè)層次:資源層、存儲(chǔ)層、服務(wù)層和應(yīng)用層,如圖1所示。
圖1 系統(tǒng)總體架構(gòu)
本系統(tǒng)基于企業(yè)的數(shù)據(jù)中心構(gòu)建資源層,資源層提供兩種基本的資源能力:存儲(chǔ)能力和高性能計(jì)算能力。
存儲(chǔ)層通過(guò)Hadoop分布式文件系統(tǒng)HDFS[9-10]提供高性能、可靠的文件存儲(chǔ)服務(wù)。
服務(wù)層分為服務(wù)支撐和應(yīng)用服務(wù)兩個(gè)子層,服務(wù)支撐子層提供4種基本的服務(wù):使用關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)關(guān)系數(shù)據(jù),使用分布式文件系統(tǒng)存儲(chǔ)圖紙文件,使用分布式檢索系統(tǒng)存儲(chǔ)非關(guān)系型圖紙信息,以及使用分布式集群滿(mǎn)足整個(gè)系統(tǒng)并行計(jì)算和智能計(jì)算要求;應(yīng)用服務(wù)子層包括圖紙存儲(chǔ)、圖紙檢索、審核流程、權(quán)限管理和外部接口這些具體圖紙應(yīng)用功能。
上層是圖文管理系統(tǒng)的應(yīng)用層,由桌面應(yīng)用程序、Web應(yīng)用程序和移動(dòng)App組成,調(diào)用服務(wù)層的各種具體業(yè)務(wù)功能。
圖紙管理涉及3種不同類(lèi)型的數(shù)據(jù):關(guān)系數(shù)據(jù)、非關(guān)系系統(tǒng)和二進(jìn)制圖紙文件。為了提高不同類(lèi)型數(shù)據(jù)的存取效率和檢索效率,本文采用混合存儲(chǔ)結(jié)構(gòu)存取這3種不同類(lèi)型數(shù)據(jù),采用關(guān)系數(shù)據(jù)庫(kù)Oracle存儲(chǔ)圖文管理系統(tǒng)的關(guān)系數(shù)據(jù),采用分布式文件系統(tǒng)HDFS存儲(chǔ)圖紙文件,采用分布式檢索引擎Solr[11-12]存儲(chǔ)圖文管理系統(tǒng)的非關(guān)系數(shù)據(jù)。針對(duì)將3種不同形式存儲(chǔ)系統(tǒng)方便應(yīng)用程序訪問(wèn),本文設(shè)計(jì)一個(gè)混合存儲(chǔ)結(jié)構(gòu)來(lái)支持具體圖紙應(yīng)用程序模塊訪問(wèn)這些不同的存儲(chǔ)方式,混合存儲(chǔ)結(jié)構(gòu)從下往上包括4個(gè)層次:存儲(chǔ)層、接口層、服務(wù)層和應(yīng)用層,如圖2所示。
圖2 混合存儲(chǔ)結(jié)構(gòu)
最低層是支撐層,由Oracle關(guān)系數(shù)據(jù)庫(kù)、HDFS分布式文件系統(tǒng)和Solr全文引擎組成,針對(duì)不同類(lèi)型的數(shù)據(jù)源向上提供不同的存儲(chǔ)服務(wù)。
(1)Oracle數(shù)據(jù)庫(kù)系統(tǒng)是目前世界上流行的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),具有可移植性好、使用方便、功能強(qiáng)等特點(diǎn),適用于各類(lèi)大、中、小、微機(jī)環(huán)境。它是一種高效率、可靠性好、適應(yīng)高吞吐量的數(shù)據(jù)庫(kù)方案。本文使用Oracle數(shù)據(jù)系統(tǒng)存儲(chǔ)圖紙管理的各種關(guān)系數(shù)據(jù):圖紙信息、圖紙流程信息、設(shè)備信息和用戶(hù)信息等。
(2)HDFS是一個(gè)適合部署在普通硬件設(shè)備上的分布式文件系統(tǒng)。HDFS適合存儲(chǔ)不同大小的,文件大小一般從幾百M(fèi)B~幾百TB不等;支持高吞吐量的數(shù)據(jù)訪問(wèn);具有高度容錯(cuò)性,設(shè)計(jì)為可以運(yùn)行在廉價(jià)的機(jī)器集群上;支持 POSIX接口訪問(wèn),容許流式地訪問(wèn)數(shù)據(jù)。本文使用HDFS存儲(chǔ)圖紙文件可以有效提高圖紙的讀寫(xiě)速速,解決圖紙本地?cái)?shù)據(jù)存儲(chǔ)和管理困難的問(wèn)題。
(3)Solr是一個(gè)高性能,基于Lucene的全文搜索服務(wù)器,Solr具有可配置、可擴(kuò)展特性,具有較高的非關(guān)系型文本數(shù)據(jù)查詢(xún)性能,并且提供完善的功能管理界面,是一款非常優(yōu)秀的全文搜索引擎。使用Solr存儲(chǔ)圖紙的非關(guān)系數(shù)據(jù)可以提升圖紙非關(guān)系型數(shù)據(jù)的檢索能力和檢索速度。
存儲(chǔ)層之上的是接口層,通過(guò)Java語(yǔ)言和一組Java接口訪問(wèn)Oracle關(guān)系數(shù)據(jù)庫(kù)、HDFS分布式文件系統(tǒng)和Solr全文引擎。
(4)本文使用JDBC (Java Database Connection)訪問(wèn)關(guān)系數(shù)據(jù)庫(kù)Oracle,JDBC是Java語(yǔ)言中用來(lái)規(guī)范客戶(hù)端程序如何來(lái)訪問(wèn)數(shù)據(jù)庫(kù)的應(yīng)用程序接口,提供了諸如查詢(xún)和更新數(shù)據(jù)庫(kù)中數(shù)據(jù)的方法。
(5)使用FileSystem API訪問(wèn)HDFS,F(xiàn)ileSystem API是一個(gè)抽象的文件系統(tǒng)API,支持 HDFS進(jìn)行一般的文件操作。
(6)使用SolrJ訪問(wèn)Solr,SolrJ是一個(gè)使Java應(yīng)用程序可以輕松與Solr對(duì)話的API。SolrJ隱藏了許多連接到Solr的細(xì)節(jié),并允許您的應(yīng)用程序通過(guò)簡(jiǎn)單的高級(jí)方法與Solr進(jìn)行交互。
接口層之上的訪問(wèn)層,訪問(wèn)層基于關(guān)系數(shù)據(jù)庫(kù)的查詢(xún)語(yǔ)言SQL,擴(kuò)充支持HDFS的IO接口和SolrJ的查詢(xún)接口,來(lái)支持對(duì)下面接口層不同數(shù)據(jù)接口的統(tǒng)一訪問(wèn),并向上面的應(yīng)用層提供一致的查詢(xún)接口,向上層應(yīng)用程序屏蔽底層存儲(chǔ)方式的差異,并提供不同存儲(chǔ)系統(tǒng)的分布式事務(wù)處理的支持。
最上層是具體應(yīng)用層,具體圖紙應(yīng)用模塊通過(guò)調(diào)用下面的統(tǒng)一訪問(wèn)接口來(lái)實(shí)現(xiàn)圖紙文件及其相關(guān)數(shù)據(jù)的存取訪問(wèn)。
知識(shí)圖譜在圖書(shū)情報(bào)界稱(chēng)為知識(shí)域可視化或知識(shí)領(lǐng)域映射地圖,是顯示知識(shí)發(fā)展進(jìn)程與結(jié)構(gòu)關(guān)系的一系列各種不同的圖形,用可視化技術(shù)描述知識(shí)資源及其載體,挖掘、分析、構(gòu)建、繪制和顯示知識(shí)及它們之間的相互聯(lián)系。知識(shí)圖譜是通過(guò)將應(yīng)用數(shù)學(xué)、圖形學(xué)、信息可視化技術(shù)、信息科學(xué)等學(xué)科的理論與方法與計(jì)量學(xué)引文分析、共現(xiàn)分析等方法結(jié)合,并利用可視化的圖譜形象地展示學(xué)科的核心結(jié)構(gòu)、發(fā)展歷史、前沿領(lǐng)域以及整體知識(shí)架構(gòu)達(dá)到多學(xué)科融合目的的現(xiàn)代理論。它能為學(xué)科研究提供切實(shí)的、有價(jià)值的參考。
本文通過(guò)知識(shí)圖譜從海量的圖紙及其相關(guān)數(shù)據(jù)中找出有價(jià)值的知識(shí),可以對(duì)圖紙使用者在使用過(guò)程中的圖紙文件、圖紙相關(guān)數(shù)據(jù)、圖紙功能、使用頻率、交互協(xié)作等多維度進(jìn)行測(cè)量,通過(guò)深層次挖掘有價(jià)值數(shù)據(jù)信息,揭示其內(nèi)在的規(guī)律。將知識(shí)圖譜應(yīng)用于圖紙管理,可對(duì)用戶(hù)的使用效果和使用習(xí)慣做出及時(shí)準(zhǔn)確的反饋,提供個(gè)性化圖紙服務(wù)干預(yù),有利于改進(jìn)圖文管理系統(tǒng)的功能指標(biāo)和非功能指標(biāo)。本文使用大數(shù)據(jù)和知識(shí)圖譜挖掘設(shè)備和圖紙之間的內(nèi)在聯(lián)系,挖掘圖紙信息和用戶(hù)使用之間的內(nèi)在聯(lián)系,設(shè)計(jì)圖紙推薦和圖紙使用推薦推薦功能。
構(gòu)建基于設(shè)備的圖紙知識(shí)模型,在設(shè)備基本信息、設(shè)備之間關(guān)系、圖紙基本信息、設(shè)備圖紙關(guān)系和圖紙之間關(guān)系五個(gè)維度對(duì)圖紙的個(gè)體特征進(jìn)行了描摹,圖紙模型型根據(jù)用戶(hù)通過(guò)設(shè)備導(dǎo)航樹(shù)管理和使用圖紙的實(shí)踐不斷對(duì)圖紙個(gè)體模型個(gè)體肖像進(jìn)行動(dòng)態(tài)更新。圖紙關(guān)系推薦的基礎(chǔ)是形成基于設(shè)備的動(dòng)態(tài)化的圖紙知識(shí)圖譜,以顯示圖紙和不同設(shè)備之間的關(guān)聯(lián)性。將不同種類(lèi)的設(shè)備和圖紙連接在一起而得到一個(gè)關(guān)系網(wǎng)絡(luò),把復(fù)雜的設(shè)備和圖紙之間多對(duì)多的關(guān)系通過(guò)數(shù)據(jù)挖掘、信息處理、知識(shí)計(jì)量和圖形繪制顯示出來(lái),來(lái)顯示圖紙個(gè)體的知識(shí)動(dòng)態(tài)發(fā)展規(guī)律。
構(gòu)建用戶(hù)為中心的圖紙使用模型,在該模型的指導(dǎo)下,結(jié)合同一用戶(hù)和不同用戶(hù)使用圖文管理系統(tǒng)的過(guò)程和習(xí)慣,本研究構(gòu)建基于用戶(hù)基本信息、用戶(hù)之間關(guān)系、圖紙基本信息、圖紙之間關(guān)系、功能模塊信息、功能與圖紙關(guān)系六個(gè)維度對(duì)圖紙使用的個(gè)體特征進(jìn)行了描摹,圖紙使用模型根據(jù)同一用戶(hù)的圖紙使用過(guò)程和不同用戶(hù)的圖紙使用過(guò)程不斷對(duì)圖紙使用模型進(jìn)行動(dòng)態(tài)更新。圖紙功能推薦的基礎(chǔ)是形成基于用戶(hù)使用的動(dòng)態(tài)化的圖紙使用圖譜,以顯示圖紙和不同用戶(hù)之間的關(guān)聯(lián)性。將不同種類(lèi)的用戶(hù)和圖紙連接在一起而得到一個(gè)關(guān)系網(wǎng)絡(luò),把復(fù)雜的用戶(hù)和圖紙之間多對(duì)多的關(guān)系通過(guò)數(shù)據(jù)挖掘、信息處理、知識(shí)計(jì)量和圖形繪制顯示出來(lái),來(lái)顯示圖紙使用的知識(shí)動(dòng)態(tài)發(fā)展規(guī)律。
Zeroc ICE[13-14]是由Zeroc公司開(kāi)發(fā)的一套開(kāi)源分布式中間件,適用于異種環(huán)境的面向?qū)ο篌w系的中間件平臺(tái),支持遠(yuǎn)程過(guò)程調(diào)用(Remote Prcedure Call: RPC)協(xié)議?;贗CE的客戶(hù)端和服務(wù)器可以兼容不同的編程語(yǔ)言,可以運(yùn)行在不同的操作系統(tǒng)上,同時(shí)提供了多種網(wǎng)絡(luò)技術(shù)進(jìn)行通信(例如TCP、UDP、SSL等)。ICE作為安全性高、伸縮性強(qiáng)的底層通信平臺(tái),特別適用于高技術(shù)和高性能需求的分布式系統(tǒng)開(kāi)發(fā)。
為了確保新圖文管理系統(tǒng)的快速開(kāi)發(fā)、測(cè)試、部署和實(shí)施,我們采用基于ICE RPC的圖紙應(yīng)用程序,與單體的圖紙應(yīng)用程序架構(gòu)相比,基于ICE RPC的圖文管理系統(tǒng)具有更好的性能、可擴(kuò)展性和用戶(hù)體驗(yàn),更加有效地利用企業(yè)的云端資源和云計(jì)算能力,本文基于ICE RPC的客戶(hù)/服務(wù)器架構(gòu)如圖3所示。
圖3 ICE的圖紙服務(wù)訪問(wèn)
本文首先將圖紙功能封裝成一組模塊化、可重用的服務(wù)模塊:圖紙維護(hù)、圖紙查詢(xún)、流程管理、用戶(hù)管理和權(quán)限管理等,然后針對(duì)這一組服務(wù)定義模塊化接口,這組接口使用ICE的接口語(yǔ)言ICE Slice語(yǔ)言定義,Slice (Specification Language for Ice)語(yǔ)言建立了一種服務(wù)器和客戶(hù)端之間的契約,Slice描述接口和數(shù)據(jù)類(lèi)型,這種描述和應(yīng)用程序的具體實(shí)現(xiàn)語(yǔ)言無(wú)關(guān),客戶(hù)端和服務(wù)器不需要用同一種語(yǔ)言來(lái)編寫(xiě)。
使用ICE的生成工具Slice2java生成Java版本的服務(wù)器骨架代碼(ICE Skeleton),ICE骨架代碼提供了圖紙服務(wù)客戶(hù)端調(diào)用接口,允許 ICE 運(yùn)行時(shí)把控制線程轉(zhuǎn)交給應(yīng)用服務(wù)器里面具體圖紙服務(wù)模塊。
圖文管理系統(tǒng)的客戶(hù)端一般包括傳統(tǒng)的桌面應(yīng)用程序、Web應(yīng)用程序和移動(dòng)應(yīng)用程序,基于ICE的跨語(yǔ)言特性,Slice2XXX工具可以不同語(yǔ)言客戶(hù)端服務(wù)代理代碼(ICE Stub),ICE代理就是ICE對(duì)象在客戶(hù)端的代表,不同客戶(hù)端要想訪問(wèn)遠(yuǎn)程的某個(gè)圖紙服務(wù)接口,就必須先擁有這個(gè)對(duì)象的代理,而代理就存在于客戶(hù)端的進(jìn)程地址空間中。
本文基于AppCan構(gòu)建移動(dòng)APP,AppCan移動(dòng)開(kāi)發(fā)平臺(tái)讓HTML5開(kāi)發(fā)的移動(dòng)應(yīng)用基本接近Native App的體驗(yàn),基于AppCan的移動(dòng)App架構(gòu)分為服務(wù)層、Restful接口層、應(yīng)用層3大部分,如圖4所示。
圖4 移動(dòng)平臺(tái)體系結(jié)構(gòu)
服務(wù)層和本文前面提出的服務(wù)層結(jié)構(gòu)基本一致,通過(guò)Restful[15-16]接口層向用戶(hù)提供各項(xiàng)業(yè)務(wù)功能。Restful是一種網(wǎng)絡(luò)應(yīng)用程序的設(shè)計(jì)風(fēng)格和開(kāi)發(fā)方式,基于HTTP,可以使用XML格式定義或JSON格式定義。RESTFUL適用于移動(dòng)互聯(lián)網(wǎng)廠商作為業(yè)務(wù)使能接口的場(chǎng)景,實(shí)現(xiàn)第三方OTT調(diào)用移動(dòng)網(wǎng)絡(luò)資源的功能,動(dòng)作類(lèi)型為新增、變更、刪除所調(diào)用資源。
應(yīng)用層由AppCan SDK、HMTL5和JavaScript腳本語(yǔ)言組成,AppCan SDK支持Hybrid App的開(kāi)發(fā)和運(yùn)行,并且著重解決了基于HTML5的移動(dòng)應(yīng)用“不流暢”和“體驗(yàn)差”的問(wèn)題,HTML5和JavaScript負(fù)責(zé)與用戶(hù)交互,調(diào)用Restful接口完成系統(tǒng)的各項(xiàng)功能。
該系統(tǒng)現(xiàn)服務(wù)于中國(guó)長(zhǎng)江電力股份有限公司下屬梯級(jí)流域水電站群,覆蓋了葛洲壩區(qū)域、三峽區(qū)域、金沙江區(qū)域、烏白區(qū)域等7個(gè)生產(chǎn)單位,涉及約12萬(wàn)份圖文技術(shù)資料。系統(tǒng)通過(guò)大數(shù)據(jù)架構(gòu)整合公司各梯級(jí)流域水電站圖紙技術(shù)資料管理與應(yīng)用,同時(shí)結(jié)合上述信息化及電力行業(yè)前沿應(yīng)用及發(fā)展趨勢(shì),對(duì)圖文管理系統(tǒng)業(yè)務(wù)與流程管理進(jìn)行不斷的優(yōu)化完善,為生產(chǎn)一線員工提供全面、準(zhǔn)確、穩(wěn)定、高效的技術(shù)支持,從而保障電力生產(chǎn)及運(yùn)維等各項(xiàng)活動(dòng),獲得了各生產(chǎn)單位用戶(hù)的高度支持與認(rèn)可。各生產(chǎn)單位在該系統(tǒng)的管理應(yīng)用過(guò)程中不斷積累沉淀,形成各生產(chǎn)單位自有的圖文技術(shù)資料管控及學(xué)習(xí)平臺(tái),在滿(mǎn)足保障本單位生產(chǎn)及運(yùn)維活動(dòng)時(shí),也為新員工的培養(yǎng)提供支持。
本文提出一種基于大數(shù)據(jù)架構(gòu)的智慧圖文管理系統(tǒng),相對(duì)于傳統(tǒng)的圖文管理系統(tǒng),大數(shù)據(jù)架構(gòu)的圖文管理系統(tǒng)能夠更加有效的使用企業(yè)日益增加的云存儲(chǔ)和云計(jì)算能力,而知識(shí)圖譜的應(yīng)用可以更加有效進(jìn)行圖紙知識(shí)管理,提升圖文管理系統(tǒng)的用戶(hù)體驗(yàn)。