唐天琪,談 帥,高 雅
(江蘇省測繪研究所, 江蘇 南京 210013)
大數據時代,地理時空數據的迅猛增長給應用理念、技術框架和服務形式帶來挑戰(zhàn)[1]。原國家測繪地理信息局在2017年頒布的《智慧城市時空大數據與云平臺建設技術大綱》中提出,一套時空大數據包括市域全覆蓋的歷史與現(xiàn)狀的基礎地理信息數據、歷史與現(xiàn)狀的公共專題數據、智能感知數據和空間規(guī)劃數據,要求建設知識引擎,并“通過提供不同層級能力的大數據分析工具,幫助用戶完成對數據的深度挖掘,進而獲取有價值的知識”[2]。
隨著“互聯(lián)網+”、大數據、云計算、人工智能2.0等的迅猛發(fā)展,以知識圖譜和知識中心為代表的知識服務研究方興未艾[3-5]。國內學者從基礎地理知識服務[6-7]、圖書館大數據知識服務[8-9]等方面開展了研究,如張鵬程[10]、毛曦[11]等對智慧城市時空知識搜索引擎進行了探索,國外已有學者對知識流程的建立、管理進行了研究[12],如搭建Kepler[13]、Taverna[14]等系統(tǒng),旨在增強地理計算和地理處理網絡服務之間的相互作用關系。然而,面對智慧城市建設的不斷深入,自然資源管理業(yè)務整合的迫切需要,對于地理國情普查、傳感網、基礎測繪等不同部門生產的數據進行分析和應用的需求越來越大,如何搭建統(tǒng)一的平臺實現(xiàn)一站式管理是亟待解決的問題。
為此,本系統(tǒng)奉行“從模型到服務,一切皆服務”的理念,研究知識模型算法、知識服務容器、知識引擎等相互之間的關系,以B/S分布式系統(tǒng)架構為基礎,利用并行計算與存儲技術[15]、流程化定制技術等,開發(fā)了算法豐富、支持擴展、便于使用的知識引擎工具,為用戶打造一站式分析流程體驗,為智慧城市時空大數據云平臺開展分析、挖掘和應用提供有力技術支撐。
本系統(tǒng)創(chuàng)新之處主要體現(xiàn)在以下3個方面:① 便利性,提供在線建模與分析的服務,既省去了購買第三方桌面軟件的費用,又不需要開發(fā)人員進行安裝,一舉兩得,大大縮短了開發(fā)的周期;② 多樣性,提供了大量的時空大數據分析相關服務,用戶進行在線建模與分析時可以根據自身需求,靈活的選擇多種模型自由組合,該方法有效地改變了過去在一個軟件中構建模型導出,再導入另一個軟件進行分析的場景,極大地改善了用戶的體驗;③ 繼承性,僅需簡單封裝即可將現(xiàn)有的第三方軟件進行融合,實現(xiàn)一站式服務,如果用戶出現(xiàn)新的需求,可以在提供的容器上進行二次開發(fā)。
根據《智慧城市時空大數據與云平臺建設技術大綱》(2017版)要求,知識引擎相關概念邏輯關系如圖1所示,具體表現(xiàn)為:① 知識模型通過封裝,發(fā)布為知識服務,存儲在知識容器中;② 不同服務提供方擁有多個容器;③ 多個服務提供方匯集在一個知識服務池中,并統(tǒng)一在服務注冊中心進行注冊,登記服務的名稱、機器IP、端口號、域名等信息;④ 知識引擎幫助用戶使用容器中的模型,組合成特定應用場景下適用的知識鏈,并按知識鏈從不同容器中自動調用和執(zhí)行知識服務,對數據集進行一系列運算分析并得出最終結果。
采用容器封裝的優(yōu)點在于:① 解除了各服務之間的直接聯(lián)系,每個服務只要考慮跟容器對接,無需考慮對其他服務的影響,能保持相互獨立的狀態(tài);② 運維人員無需關注原有服務的具體細節(jié),僅通過容器的開放接口對接新模型,顯著提高了更新的效率;③ 容器支持服務即插即用,實現(xiàn)了熱插拔,在后續(xù)擴充服務的過程中,原有的服務可以一直保持正常運行的狀態(tài),充分體現(xiàn)了服務的可持續(xù)性。
傳統(tǒng)數據分析工作往往涉及多個軟件的操作,例如,遙感數據的解譯需要在專門的軟件中完成,但與矢量數據的疊置分析工作可能需要在另一個軟件中完成,這樣的分析過程給用戶增加了軟件和時間的成本。
本文研發(fā)的知識引擎作為連接知識服務池和應用系統(tǒng)之間的紐帶,是滿足用戶快速分析需求的可交互式工具,具備操作簡單、可重復使用、功能強大等優(yōu)點,具體表現(xiàn)在以下2個方面:
(1)集成性與可操作性:本系統(tǒng)開發(fā)的知識引擎集成了多個分析功能,用戶根據自身需求,選擇合適的知識服務,通過簡單地拖拽操作即可繪制復雜的組合流程圖,既降低了原先的開發(fā)成本又縮短了分析時間。
(2)共享性與可擴展性:搭建好的組合流程圖可以進行保存,便于后期的重復使用和共享,或者在此基礎上進行二次開發(fā)。例如,本系統(tǒng)提供的知識服務模式有效地融合了基礎測繪數據與“地理國情分析”相關研究成果,將地理國情綜合分析研究中的城鎮(zhèn)發(fā)展專題分析方面的模型導入知識引擎中,與基礎測繪成果結合,進一步豐富可視化展示效果。
知識引擎運轉的核心體現(xiàn)在以下2個部分(圖2):① 流程設計器,主要負責前端模型的解譯,將可視化的流程圖形解譯為流程引擎所能理解的元素,即通過前端的可視化定制方式形成標準的BPMN流程文件,并映射為引擎內置對象;② 流程引擎,負責幫助用戶使用容器中的模型,組合成特定應用場景下適用的知識鏈,并按知識鏈從不同容器中自動調用并執(zhí)行知識服務。
將系統(tǒng)功能模塊設計為4個部分,即知識模型展示模塊、流程定制模塊、流程執(zhí)行模塊和流程管理模塊。
知識模型包括所有知識容器發(fā)布的知識服務,存儲在模型庫中,通過服務接口獲取知識模型的服務元數據信息,根據元數據信息,將模型以樹形結構的形式進行分類組織并展現(xiàn)出來,用戶可以利用關鍵字進行篩選和查找。
2.2.1 流程引擎設計
用戶通過對節(jié)點(知識模型)的拖拽、組合和屬性配置,繪制個性化組合流程圖,每個知識模型具有不同的配置信息,通過模型的元數據動態(tài)生成參數配置表單,方便用戶修改。為了保證流程引擎的標準化和可擴展性,實現(xiàn)跨業(yè)務、跨部門、跨平臺的應用,流程引擎設計嚴格遵循BPMN2.0規(guī)范,通過統(tǒng)一的執(zhí)行語義和格式,利用標準的圖元,描述真實的流程發(fā)生過程。本系統(tǒng)設置了8個核心元素,分別是流程、節(jié)點、事件、任務、流程結構控制點、監(jiān)聽器、流程線和流程結構,如表1所示。
表1 流程引擎元素
2.2.2 基于Web服務的流轉
本文的任務節(jié)點主要是外部的Web服務,流程引擎對Web服務的處理狀態(tài)進行監(jiān)控,當Web服務執(zhí)行完成時自動流轉到下一個節(jié)點。
2.3.1 邏輯流程
流程引擎需要通過前端可視化工具(流程設計器)實現(xiàn)與用戶的交互,通過封裝復雜的后臺程序,呈現(xiàn)給用戶簡單、易操作的界面,即用戶只需根據自身需求選擇相應的模型和流程元素,就可以畫出較為復雜的流程圖,其他計算都由后臺完成。
流程設計器主要負責前端模型的解譯,將可視化的流程圖形解譯為流程引擎所能理解的元素。其原理是通過前端可視化定制方式形成標準的BPMN流程文件,并映射為引擎內置對象。根據流程引擎的工作機制,如圖3所示,將流程設計器的設計分為3步:① 可視化模型節(jié)點的生成和顯示;② 流程的配置過程,對節(jié)點元素進行顯示、拖動、繪制和屬性配置,形成可視化的流程;③ 對配置的流程進行解譯和轉換,形成標準的BPMN格式,并持久化。
2.3.2 頁面設計
整個系統(tǒng)界面分別由樹形的知識模型面板、工具欄、流程繪制區(qū)、流程執(zhí)行狀態(tài)欄、模型參數配置區(qū)等部分組成,具體闡述見3.2小節(jié)。
定制好的流程通過引擎保存在用戶模型庫中,并接入時空信息云平臺中,具體功能設計分為查看、添加、新增、刪除、執(zhí)行5個基本方面。
(1)模型查看
分行顯示模型縮略圖、名稱、創(chuàng)建時間、摘要信息等,支持根據模型名稱進行查詢。
(2)模型添加
通過在模型庫選擇要添加的模型,加入模型列表中。
(3)模型新增
用戶在流程設計器中定制新模型后進行保存,輸入模型名稱和描述信息,即可完成新增操作。
(4)模型刪除
從專題目錄中刪除指定的模型,對應的知識引擎模型庫的模型不刪除。模型庫的模型從知識引擎的模型管理中刪除。
(5)模型執(zhí)行
模型執(zhí)行模塊包括模型的參數配置、執(zhí)行狀態(tài)監(jiān)聽、結果集管理。模型的參數配置實現(xiàn)了執(zhí)行節(jié)點的參數配置信息;執(zhí)行狀態(tài)監(jiān)聽通過文本行的形式展示了流程在執(zhí)行過程中的實時狀態(tài);結果集是模型執(zhí)行后產生的結果數據,結果集管理用來維護結果集的信息,以及對應的數據集關系。
系統(tǒng)后臺開發(fā)工具采用Eclipse,開發(fā)框架采用Spring MVC,開發(fā)語言為Java。前端開發(fā)工具采用WebStorm,使用React結合NoteJS的開發(fā)模式。Web地圖開發(fā)使用ArcGIS javascript api 4.7。數據庫采用Oracle、PostGIS,Oracle存儲管理業(yè)務數據,PostGIS存儲管理空間數據。
時空大數據知識引擎系統(tǒng)界面如圖4所示,界面由樹形的知識模型面板、工具欄、流程繪制區(qū)、流程執(zhí)行狀態(tài)欄、模型參數配置區(qū)等部分組成。
根據第2章節(jié)中功能模塊的設計思路,實現(xiàn)以下功能:
(1)知識模型展示
本系統(tǒng)已經在平臺上搭建了兩個模型節(jié)點容器:通用模型容器與專業(yè)模型容器,共包含32個模型節(jié)點。其中,通用模型容器中開發(fā)了聚合點分析、計算密度查找熱點、追加數據、緩沖區(qū)分析、匯總屬性等18個地理信息系統(tǒng)常用的空間分析方法;在專業(yè)模型容器方面,將江蘇省省級基礎測繪項目《江蘇省地理國情綜合分析—城鎮(zhèn)發(fā)展專題分析》的成果轉化為包括城鎮(zhèn)空間格局分析、城鎮(zhèn)化質量與規(guī)模綜合計算模型等在內的10個節(jié)點,同時結合深度學習影像解譯技術開發(fā)遙感影像分析節(jié)點3個,文本地理數據挖掘節(jié)點1個。
(2)流程定制
模型定制模塊主要實現(xiàn)對知識模型的制作,用戶通過拖拽控件(如開始事件、任務、執(zhí)行方式等)到繪制區(qū),同時可以對部分控件進行參數配置、算法選擇、模塊執(zhí)行等操作。
(3)流程執(zhí)行
模型執(zhí)行模塊包括模型的參數配置、執(zhí)行狀態(tài)監(jiān)聽、結果集管理。模型的參數配置實現(xiàn)了執(zhí)行節(jié)點的參數信息配置;執(zhí)行狀態(tài)監(jiān)聽通過文本行的形式展示了流程在執(zhí)行過程中的實時狀態(tài);結果集是模型執(zhí)行后產生的結果數據,結果集管理用來維護結果集的信息,以及對應的數據集的關系。
由系統(tǒng)提供的知識服務遵循OGC(Open Geospatial Consortium開發(fā)地理信息聯(lián)盟)的標準WPS(Web Processing Service網絡處理服務)規(guī)范,因此,用戶在選擇模型時,系統(tǒng)通過在線請求獲取服務的元數據信息,自動生成參數配置表單。例如,通過請求DescribeProcess方法獲取“城鎮(zhèn)占地面積計算”模型的元數據,如圖5所示。利用XML解析器,把相關的元數據信息轉換為JSON對象,最后通過表單生成器生成表單,如圖6所示。
(4)流程管理
用戶定制流程后,通過引擎保存在用戶模型庫中,用戶可以對自己定制的模型進行添加、刪除、修改信息等操作。
3.3.1 實驗數據
實驗數據為地理國情普查中2016年淮安市企業(yè)經濟數據和地理國情院落數據。本系統(tǒng)旨在打通基礎測繪、地理國情普查等數據之間融合的技術道路,后期會根據實際生產需求進一步擴充實驗數據。
3.3.2 實例展示
以構建土地產能分析模型為例,如圖7所示,定制分析流程為:① 開始事件;② 空間聚合分析服務;③ 計算分析服務;④ 結束事件。
兩個服務任務都是調用已經封裝好的WPS服務,即聚合點分析和計算分析,根據用戶選擇的企業(yè)經濟數據和對應年份的地理國情院落數據,進行空間聚合分析和分類統(tǒng)計,結束任務后得到淮安市以院落為單位的企業(yè)效益與占地面積之比,該結果可作為其他定制流程的數據源進行可視化展示或者其他應用,將分析結果按照屬性字段“平均產值”進行分級設色可視化展示,顏色越深代表土地效能越高。
從分析結果來看,土地效能最高的是淮安潤爾華化工有限公司,如圖8所示。在得到分析結果后,可以將該模型進行封裝并發(fā)布為服務,只要有相同需求出現(xiàn),就可以直接調用該服務,選擇需要分析的數據即可輕松得到分析結果。
3.3.3 應用優(yōu)勢
按照傳統(tǒng)思路,上述實例需要先將數據導入ArcGIS中,分別進行聚合點分析和計算分析,該過程需要經歷較多的操作步驟,而本系統(tǒng)只需簡單地拖拽即可實現(xiàn)同樣的效果。此外,在分析完成后的可視化過程中,相較ArcGIS相關軟件需要多步操作才能看到最終效果的情況,用戶通過左側的面板參數設置(圖8),即可在右側直觀看到可視化效果。
綜上所述,時空大數據知識引擎系統(tǒng)有效避免了過多復雜的操作,提高了分析效率,改善了用戶體驗,并且結果和模型都可以進行靈活調用,為地理國情監(jiān)測、生態(tài)環(huán)境監(jiān)測等數據的應用提供了新的思路。
本文研究將時空分析算法和模型發(fā)布為服務,部署在知識服務容器中;定義知識服務接口,接入用戶和第三方的空間分析算法與模型,不斷提高知識服務能力;設計分布式知識容器架構,形成知識服務池,建立知識服務注冊與發(fā)現(xiàn)機制,開發(fā)流程引擎與流程設計器,支持用戶根據需求在知識服務池中選擇知識服務,進行定制與流程化。今后對智能感知數據進行探索,如實時交通數據等,進一步提升從模型到服務的轉變能力。