陳海山
(北京九橡科技有限公司,北京100000)
現(xiàn)在市場(chǎng)上大多數(shù)的設(shè)備檔案系統(tǒng),是通過SAP來實(shí)現(xiàn)對(duì)設(shè)備檔案管理的初步效果,并使用功能位置編碼對(duì)SAP里的檔案信息進(jìn)行關(guān)聯(lián)管理。但隨著數(shù)據(jù)量的逐步上升及應(yīng)用場(chǎng)景需求復(fù)雜化,此類系統(tǒng)已經(jīng)逐漸無法滿足客戶的應(yīng)用需求,主要需求痛點(diǎn)集中在以下幾方面:
設(shè)備數(shù)據(jù)和檔案數(shù)據(jù)繁多,采用傳統(tǒng)的數(shù)據(jù)存儲(chǔ)方式,數(shù)據(jù)存儲(chǔ)讀取較慢,需優(yōu)化現(xiàn)有的數(shù)據(jù)結(jié)構(gòu),提高數(shù)據(jù)讀寫便捷性、索引性能和關(guān)聯(lián)性。
設(shè)備檔案信息散落在不同系統(tǒng)中,無法實(shí)現(xiàn)一站式設(shè)備檔案數(shù)據(jù)訪問。在SAP系統(tǒng)中,設(shè)備檔案記錄了設(shè)備的出廠信息、位置、使用情況等信息,但未與其他信息系統(tǒng)中的設(shè)備定期檢查等信息關(guān)聯(lián)。
在現(xiàn)有的應(yīng)用場(chǎng)景下,一般會(huì)使用KKS編碼規(guī)范或者功能位置編碼等規(guī)則來保證數(shù)據(jù)和結(jié)構(gòu)的一致性。但是在沒有系統(tǒng)支持的情況下僅記錄設(shè)備的功能位置編碼,只是對(duì)設(shè)備信息之間的關(guān)聯(lián)關(guān)系做簡(jiǎn)單的記錄,不能對(duì)設(shè)備檔案信息維護(hù)、管理查詢、決策查詢等提供強(qiáng)有力的支持。在各風(fēng)場(chǎng)信息不同步的情況下,可能會(huì)出現(xiàn)未遵循編碼規(guī)則的數(shù)據(jù),導(dǎo)致編碼規(guī)則的混亂,不能滿足用戶多元化的檔案管理需求。
隨著業(yè)務(wù)的長(zhǎng)足發(fā)展,傳統(tǒng)的檔案數(shù)據(jù)存儲(chǔ)及查詢?cè)絹碓诫y以滿足日益復(fù)雜的應(yīng)用場(chǎng)景。
設(shè)備檔案信息的使用及查詢不應(yīng)僅是一線人員的“設(shè)備字典”和企業(yè)管理層的“設(shè)備臺(tái)賬”??梢酝ㄟ^關(guān)鍵信息統(tǒng)計(jì)分析的方式,為企業(yè)不同崗位提供有力的檔案信息的服務(wù)。
元數(shù)據(jù)是描述數(shù)據(jù)(主數(shù)據(jù))的數(shù)據(jù),是對(duì)數(shù)據(jù)、信息資源的描述性信息。主數(shù)據(jù)(也稱“基準(zhǔn)數(shù)據(jù)”)是指系統(tǒng)內(nèi)或系統(tǒng)之間的共享數(shù)據(jù)。與記錄業(yè)務(wù)活動(dòng)(如運(yùn)維、日志等數(shù)據(jù))等波動(dòng)較大的數(shù)據(jù)相比,主數(shù)據(jù)變化緩慢。在本系統(tǒng)中,主數(shù)據(jù)是設(shè)備的數(shù)據(jù)集合。
微服務(wù)架構(gòu)技術(shù)是一種將業(yè)務(wù)功能封裝成微服務(wù)方式,然后再通過將微服務(wù)組合成應(yīng)用系統(tǒng)的架構(gòu)技術(shù)。微服務(wù)的核心思想是通過業(yè)務(wù)領(lǐng)域設(shè)計(jì)來將業(yè)務(wù)應(yīng)用的環(huán)節(jié)封裝為獨(dú)立的微服務(wù),每一個(gè)微服務(wù)都可以獨(dú)立地進(jìn)行應(yīng)用、管理和部署。使用微服務(wù)架構(gòu)的開發(fā)技術(shù),各業(yè)務(wù)的數(shù)據(jù)結(jié)構(gòu)和業(yè)務(wù)邏輯可以獨(dú)立擴(kuò)展。
在本系統(tǒng)中,最主要是要將設(shè)備管理和檔案管理進(jìn)行服務(wù)化拆分,因?yàn)樵O(shè)備管理側(cè)重于設(shè)備數(shù)量的管理,而檔案管理則側(cè)重于設(shè)備的各種檔案內(nèi)容。兩者之間有關(guān)聯(lián)又有不同,因此采用微服務(wù)方式設(shè)計(jì)比較適合該系統(tǒng)的實(shí)際需求。
元數(shù)據(jù)體系包括以下結(jié)構(gòu):
元數(shù)據(jù):用于描述動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)的一種數(shù)據(jù)模型,組織管理動(dòng)態(tài)結(jié)構(gòu)基礎(chǔ)數(shù)據(jù)。
元數(shù)據(jù)引擎:為元數(shù)據(jù)模型構(gòu)建、采集與檢索提供統(tǒng)一接口服務(wù)能力,從業(yè)務(wù)層分離出來,便于對(duì)核心引擎能力演進(jìn)擴(kuò)展。
元數(shù)據(jù)模型構(gòu)建:定義元數(shù)據(jù)結(jié)構(gòu)模型。
元數(shù)據(jù)采集:基于已建立的元數(shù)據(jù)結(jié)構(gòu)模型采集基礎(chǔ)數(shù)據(jù)。
元數(shù)據(jù)檢索:對(duì)采集的數(shù)據(jù)建立索引規(guī)則,為元數(shù)據(jù)提供全文檢索能力。
系統(tǒng)將基于元數(shù)據(jù)管理工具形成對(duì)設(shè)備和檔案的數(shù)據(jù)建模,并基于此模型記錄設(shè)備檔案。在與其他系統(tǒng)交互時(shí),將設(shè)備檔案以主數(shù)據(jù)進(jìn)行傳輸。其中設(shè)備是指某個(gè)功能位置或者某個(gè)具體的設(shè)備,而設(shè)備檔案則是某個(gè)設(shè)備的相關(guān)檔案信息,例如定檢記錄、巡檢記錄、備件記錄、運(yùn)行日志等相關(guān)信息。
以元數(shù)據(jù)管理工具為核心的設(shè)備檔案管理系統(tǒng),可以通過元數(shù)據(jù)的無限擴(kuò)展屬性來滿足用戶復(fù)雜多變的設(shè)備檔案存儲(chǔ)需求,同時(shí)為數(shù)據(jù)的錄入、修改和刪除提供可配置的工作流管理。所有數(shù)據(jù)操作均保留歷史版本信息記錄。
(1)橫向擴(kuò)展:同級(jí)別屬性可以無限擴(kuò)展數(shù)量。例如:項(xiàng)目初期元數(shù)據(jù)中只記錄設(shè)備的齒輪箱信息,在使用過程中發(fā)現(xiàn)需要關(guān)注高速軸、中速軸等其他屬性,那直接為該設(shè)備添加新屬性。
(2)縱向擴(kuò)展:某個(gè)屬性可無限深化管理粒度。例如:一個(gè)設(shè)備A的某一個(gè)屬性,可以是另一個(gè)設(shè)備B(子設(shè)備),而B設(shè)備可以將設(shè)備C設(shè)為子設(shè)備,可按照管理粒度無限拆分或組合。
檔案信息結(jié)構(gòu)如圖1所示。
根據(jù)設(shè)備檔案的使用場(chǎng)景及使用需求分析,微服務(wù)的設(shè)計(jì)可分為:用戶認(rèn)證的服務(wù)、元數(shù)據(jù)的服務(wù)、工作流的服務(wù)、設(shè)備檔案管理的服務(wù)、設(shè)備管理的服務(wù)、統(tǒng)計(jì)的服務(wù)、外部數(shù)據(jù)同步服務(wù)以及消息服務(wù)。
每一個(gè)微服務(wù)都是獨(dú)立的業(yè)務(wù)支撐,通過統(tǒng)一的接口注冊(cè)到服務(wù)中心,由服務(wù)中心管理各個(gè)服務(wù)的狀態(tài)和性能。
其中設(shè)備的管理由設(shè)備管理子系統(tǒng)實(shí)現(xiàn),具備單獨(dú)增刪、查改等功能。新增加或變更的設(shè)備,需要通過審核后,才會(huì)同步到設(shè)備檔案子系統(tǒng)中,由設(shè)備檔案子系統(tǒng)進(jìn)行對(duì)應(yīng)的業(yè)務(wù)處理。
圖1 檔案信息結(jié)構(gòu)圖
圖2 整體架構(gòu)圖
系統(tǒng)會(huì)接入其他應(yīng)用系統(tǒng)的數(shù)據(jù),包括不限于巡檢系統(tǒng)、定檢系統(tǒng)、備件系統(tǒng)等,保證檔案數(shù)據(jù)既可以查詢客戶錄入的設(shè)備出廠固化信息及使用信息,還可以查詢從第三方系統(tǒng)同步過來的設(shè)備檢修維護(hù)等信息。
同時(shí)提供各系統(tǒng)與設(shè)備檔案系統(tǒng)的接口集成規(guī)范,在傳遞數(shù)據(jù)時(shí)對(duì)傳輸?shù)臉I(yè)務(wù)數(shù)據(jù)進(jìn)行校驗(yàn),數(shù)據(jù)校驗(yàn)可以保證數(shù)據(jù)的完整性、一致性和時(shí)效性。所有系統(tǒng)通信均記錄日志,用以追溯同步歷史記錄,確保系統(tǒng)通信的可追溯性。
系統(tǒng)采用前后端分離架構(gòu)模式,以NodeJS+Vue作為前端主技術(shù)棧,使用html5構(gòu)建(iOS/Android)手機(jī)端應(yīng)用。接口服務(wù)層采用微服務(wù)架構(gòu),基于業(yè)界流行的SpringCloud作為微服務(wù)基礎(chǔ)開發(fā)框架。將整個(gè)技術(shù)架構(gòu)分為展現(xiàn)層、微服務(wù)層、數(shù)據(jù)服務(wù)層和基礎(chǔ)能力服務(wù)層,整體架構(gòu)如圖2所示。
展現(xiàn)層:基于html5構(gòu)建前端手機(jī)應(yīng)用,以NodeJS+Vue構(gòu)建PC管理端應(yīng)用。
微服務(wù)層:基于SpringCloud框架,以微服務(wù)形式提供服務(wù)。
數(shù)據(jù)服務(wù)層:根據(jù)業(yè)務(wù)場(chǎng)景選擇不同的數(shù)據(jù)服務(wù)組織存儲(chǔ)和管理平臺(tái)數(shù)據(jù)。
基礎(chǔ)能力服務(wù)層:為分布式接口服務(wù)提供基礎(chǔ)能力服務(wù),例如:日志平臺(tái)統(tǒng)一收集日志進(jìn)行監(jiān)控分析。
根據(jù)用戶的日常工作流程和工作方式,對(duì)功能模塊進(jìn)行了詳細(xì)分析和設(shè)計(jì),將系統(tǒng)分為設(shè)備管理子系統(tǒng)、設(shè)備檔案管理子系統(tǒng)、設(shè)備統(tǒng)計(jì)子系統(tǒng)3個(gè)子系統(tǒng),具體功能描述如下:
3.5.1 設(shè)備管理子系統(tǒng)
3.5.1.1 元數(shù)據(jù)管理
創(chuàng)建元數(shù)據(jù):創(chuàng)建設(shè)備檔案及其他相關(guān)檔案信息元數(shù)據(jù),元數(shù)據(jù)屬性包含可填寫的屬性、文件屬性、第三方同步信息等。
修改、刪除元數(shù)據(jù):對(duì)已有元數(shù)據(jù)和元數(shù)據(jù)屬性定義進(jìn)行修改,包括元數(shù)據(jù)屬性的增加、刪除和修改。元數(shù)據(jù)和元數(shù)據(jù)屬性的刪除操作不會(huì)物理執(zhí)行,而是做刪除標(biāo)記,基于該元數(shù)據(jù)和元數(shù)據(jù)屬性創(chuàng)建的設(shè)備檔案不會(huì)被刪除,而是做失效(隱藏)標(biāo)記。
3.5.1.2 設(shè)備管理
創(chuàng)建設(shè)備:基于元數(shù)據(jù)創(chuàng)建的設(shè)備數(shù)據(jù)模型,提供可配置的審批流,實(shí)現(xiàn)基層填報(bào)設(shè)備數(shù)據(jù),上級(jí)管理機(jī)構(gòu)審核。
修改、刪除設(shè)備:對(duì)已經(jīng)創(chuàng)建的設(shè)備檔案,除關(guān)鍵唯一字段外(如功能位置編碼等),其他字段允許按照元數(shù)據(jù)定義自由修改。
查看設(shè)備信息:可查看設(shè)備的詳細(xì)信息,包括設(shè)備的創(chuàng)建時(shí)間、創(chuàng)建人、設(shè)備屬性、設(shè)備狀態(tài)以及操作記錄等。該設(shè)備信息僅包括設(shè)備本身基礎(chǔ)信息。
3.5.2 設(shè)備檔案管理子系統(tǒng)
3.5.2.1 設(shè)備檔案管理
創(chuàng)建檔案:通過審批后的設(shè)備,將自動(dòng)創(chuàng)建檔案,同時(shí)根據(jù)功能位置編碼或設(shè)備編碼等唯一值,同步該設(shè)備的各類檔案信息,例如臺(tái)賬、巡檢、備件等。
修改、刪除檔案:對(duì)檔案信息進(jìn)行修改,根據(jù)業(yè)務(wù)規(guī)則確定是否反向同步給原系統(tǒng)。所有設(shè)備檔案刪除操作均不做物理刪除,僅做刪除標(biāo)記和隱藏,刪除歷史可查。
檔案詳情:查看已經(jīng)創(chuàng)建設(shè)備的檔案信息,檔案信息不但包括了設(shè)備的基礎(chǔ)屬性,也包括了設(shè)備的運(yùn)行時(shí)間、運(yùn)維記錄等方方面面的信息,包括不限于日志記錄、定檢信息、巡檢信息、備件信息等。
3.5.2.2 外部系統(tǒng)接入管理
數(shù)據(jù)查詢:管理并維護(hù)各外部系統(tǒng)與檔案管理子系統(tǒng)的數(shù)據(jù)查詢接口,基于設(shè)備功能位置碼實(shí)現(xiàn)從本系統(tǒng)訪問設(shè)備對(duì)應(yīng)的檔案記錄。本模式下設(shè)備的檔案數(shù)據(jù)均為外部系統(tǒng)中實(shí)時(shí)產(chǎn)生的數(shù)據(jù),在查看檔案時(shí)將實(shí)時(shí)查看外部目標(biāo)系統(tǒng)中的對(duì)應(yīng)檔案信息。
數(shù)據(jù)同步管理:管理并維護(hù)各外部系統(tǒng)與檔案管理子系統(tǒng)的數(shù)據(jù)同步接口,外部信息將設(shè)備對(duì)應(yīng)的檔案信息上報(bào)到設(shè)備管理子系統(tǒng)中。本模式下設(shè)備的檔案數(shù)據(jù)均在本系統(tǒng)中存儲(chǔ),在查看檔案時(shí)只從本地?cái)?shù)據(jù)庫進(jìn)行查詢。
3.5.3 設(shè)備統(tǒng)計(jì)子系統(tǒng)
3.5.3.1 檔案查詢
快速查詢:提供基于多關(guān)鍵字(關(guān)鍵字間為“與”的關(guān)系)的廣泛的模糊查詢。用戶可通過輸入任意關(guān)鍵字,檢索設(shè)備信息。關(guān)鍵字允許包含一些簡(jiǎn)單的檢索邏輯表達(dá)式,如:
(1)“風(fēng)機(jī)+高功率”,表示滿足兩個(gè)關(guān)鍵字的設(shè)備數(shù)據(jù);
(2)“風(fēng)機(jī)”“高功率”,表示滿足任何一個(gè)關(guān)鍵字的設(shè)備數(shù)據(jù)。
高級(jí)查詢:在高級(jí)查詢界面通過選擇具體某一個(gè)元數(shù)據(jù)模型,允許用戶選擇該元數(shù)據(jù)模型中的多個(gè)屬性作為查詢條件,多查詢條件間允許自定義邏輯運(yùn)算為“與”或“或”,查詢結(jié)果以設(shè)備檔案為單位進(jìn)行列表展示。關(guān)鍵字以及高級(jí)查詢中指定的檢索字段,在系統(tǒng)設(shè)置的索引元數(shù)據(jù)字段中匹配檢索。
3.5.3.2 設(shè)備臺(tái)賬統(tǒng)計(jì)
設(shè)備臺(tái)賬由設(shè)備種類、品牌、規(guī)格、型號(hào)、技術(shù)參數(shù)、用途、功能、編號(hào)、生產(chǎn)廠家、生產(chǎn)時(shí)間、設(shè)備價(jià)格等元數(shù)據(jù)信息進(jìn)行統(tǒng)計(jì),可根據(jù)各業(yè)務(wù)部門所需進(jìn)行組合統(tǒng)計(jì),臺(tái)賬類型支持按組織、類型、狀態(tài)分類統(tǒng)計(jì)。
3.5.3.3 檔案綜合統(tǒng)計(jì)
支持設(shè)備完好率、故障率、待修率等綜合指標(biāo)統(tǒng)計(jì),便于形成統(tǒng)計(jì)分析報(bào)表,根據(jù)備件使用統(tǒng)計(jì),分析備件的使用率,便于備件的庫存維護(hù)。
3.5.4 通用功能
3.5.4.1 用戶認(rèn)證
通過用戶名、密碼登錄系統(tǒng),登錄后,按照用戶角色和機(jī)構(gòu)顯示權(quán)限范圍內(nèi)的子系統(tǒng)和所屬機(jī)構(gòu)的設(shè)備和檔案信息等。
3.5.4.2 組織機(jī)構(gòu)管理
提供基于元數(shù)據(jù)定義的組織架構(gòu)管理界面,組織架構(gòu)包括集團(tuán)現(xiàn)有管理架構(gòu)(集團(tuán)/部門、大區(qū)/部門、場(chǎng)站等)。
3.5.4.3 工作流管理
提供工作流管理工具,可查詢登陸人所經(jīng)手(發(fā)起、審批、通知等)的所有流程及流程相關(guān)信息。
3.5.4.4 員工管理
提供基于元數(shù)據(jù)定義的員工管理界面,提供員工與組織架構(gòu)的隸屬管理系統(tǒng)元數(shù)據(jù)模型間關(guān)系定義。
綜上所述,本文提出了微服務(wù)架構(gòu)下的設(shè)備檔案管理系統(tǒng)的設(shè)計(jì)方案。系統(tǒng)采用微服務(wù)方式進(jìn)行構(gòu)建,實(shí)現(xiàn)了設(shè)備數(shù)據(jù)和設(shè)備檔案數(shù)據(jù)有效解耦,可使系統(tǒng)達(dá)到整體結(jié)構(gòu)輕松耦合、高效率運(yùn)行的目的,實(shí)現(xiàn)了設(shè)備和檔案靈活管理、各業(yè)務(wù)模塊靈活擴(kuò)展的應(yīng)用效果。