摘" 要: 建筑管理系統(tǒng)(BMS)、能源管理系統(tǒng)(EMS)、物聯(lián)網(wǎng)設(shè)備、建筑信息模型(BIM)、電網(wǎng)及氣象服務(wù)等多元信息系統(tǒng)是有效支撐由數(shù)據(jù)驅(qū)動(dòng)的智能建筑軟件高效運(yùn)行的關(guān)鍵。然而,這些由不同開發(fā)商提供的系統(tǒng)之間缺乏統(tǒng)一且明確界定的程序接口與標(biāo)準(zhǔn),這已成為制約應(yīng)用程序在模塊開發(fā)、可擴(kuò)展性及重用性上進(jìn)一步發(fā)展的主要障礙。為增強(qiáng)云環(huán)境下智能建筑系統(tǒng)對(duì)需求和技術(shù)變化的適應(yīng)能力,提出一個(gè)優(yōu)化的端到端實(shí)現(xiàn)架構(gòu)。該架構(gòu)以Zachman框架為基礎(chǔ),通過符合MACH原則的微服務(wù)、API和基于云的組件來確保整個(gè)系統(tǒng)的高靈活性、可擴(kuò)展性以及向前兼容能力。為了驗(yàn)證所提優(yōu)化方法的有效性,以某高校工程實(shí)訓(xùn)中心為案例,開發(fā)了一套智能建筑應(yīng)用程序。經(jīng)過一年多的實(shí)際運(yùn)行,該程序充分展示了傳感器數(shù)據(jù)與BIM模型集成的數(shù)字孿生應(yīng)用、基于事件驅(qū)動(dòng)的實(shí)時(shí)傳感器數(shù)據(jù)與建模分析等先進(jìn)功能,不僅證明了所提方法的前瞻性和兼容性,同時(shí)也展現(xiàn)了其應(yīng)對(duì)不斷變化的需求和挑戰(zhàn)的能力。
關(guān)鍵詞: 智能建筑; 面向服務(wù)的架構(gòu)(SOA); 建筑軟件; Zachman框架; MACH框架; 微服務(wù)架構(gòu)
中圖分類號(hào): TN911?34; TP39" " " " " " " " " " "文獻(xiàn)標(biāo)識(shí)碼: A" " " " " " " " " " " 文章編號(hào): 1004?373X(2024)16?0110?07
Research on service?oriented software framework for intelligent buildings
ZHANG Tianfan1, CHEN Ximo2
(1. School of Mathematics and Statistics, Hubei Engineering University, Xiaogan 432000, China;
2. Intelligent Building College, Zhejiang Institute of Security Technology, Wenzhou 325000, China)
Abstract: The multiple information systems such as building management system (BMS), energy management system (EMS), Internet of Things devices, building information modeling (BIM), power grids and meteorological services are crucial for effectively supporting the efficient operation of data?driven intelligent building software. However, the lack of unified and clearly defined program interfaces and standards among these systems provided by different developers has become a major obstacle to the further development of application programs in module development, scalability and reusability. In order to enhance the adaptability of intelligent building systems to demand and technological changes in cloud environments, an optimized end?to?end implementation architecture is proposed. This architecture is based on the Zachman framework, and the high flexibility, scalability, and forward compatibility of the entire system can be ensured by means of microservices, APIs, and cloud?based components that comply with the MACH (microservices, API?first, cloud native, headless) principle. In order to verify the effectiveness of the proposed optimization method, a set of intelligent building application program is developed by taking an engineering training center of a university as an example. After more than a year of practical operation, this program fully demonstrates advanced features such as digital twin applications integrating sensor data with BIM model, real?time sensor data based on event driven and modeling analysis. It not only proves the foresight and compatibility of the proposed method, but also demonstrates its ability to respond to constantly changing needs and challenges.
Keywords: intelligent building; service oriented architecture (SOA); building software; Zachman framework; MACH framework; microservice architecture
智能建筑作為現(xiàn)代建筑發(fā)展的重要方向,致力于通過技術(shù)手段實(shí)現(xiàn)能源效率、靈活性、室內(nèi)環(huán)境質(zhì)量及居住者舒適度的全面優(yōu)化。其發(fā)展的核心驅(qū)動(dòng)力在于數(shù)據(jù)驅(qū)動(dòng)的智能應(yīng)用,這些應(yīng)用依賴于來自建筑管理系統(tǒng)(BMS)、能源管理系統(tǒng)(EMS)、物聯(lián)網(wǎng)設(shè)備、建筑信息模型(BIM)、電網(wǎng)及氣象服務(wù)等多元信息系統(tǒng)的操作數(shù)據(jù)和上下文數(shù)據(jù)。然而,當(dāng)前智能建筑在整合這些多源數(shù)據(jù)以驅(qū)動(dòng)新應(yīng)用時(shí),面臨著諸多挑戰(zhàn)。數(shù)據(jù)的提取、標(biāo)記、組織、共享和集成等過程異常復(fù)雜,尤其是在各系統(tǒng)由不同開發(fā)商獨(dú)立開發(fā)、缺乏統(tǒng)一且明確界定的程序接口與標(biāo)準(zhǔn)的情況下。這些問題不僅導(dǎo)致數(shù)據(jù)整合困難,也極大地限制了數(shù)據(jù)驅(qū)動(dòng)應(yīng)用的可重用性、模塊化和擴(kuò)展性。盡管智能建筑對(duì)數(shù)據(jù)驅(qū)動(dòng)的明確定義架構(gòu)和標(biāo)準(zhǔn)化API有著迫切的需求,但每棟建筑的獨(dú)特性使得制定統(tǒng)一的架構(gòu)變得異常困難?,F(xiàn)有的建筑信息技術(shù)架構(gòu)和模式往往難以直接應(yīng)用于智能建筑,這種缺失進(jìn)一步加劇了可重用、模塊化和可擴(kuò)展應(yīng)用開發(fā)的難度。因此,如何有效地整合和管理來自不同源頭的多源數(shù)據(jù),以支持智能建筑軟件的高效運(yùn)行,同時(shí)確保系統(tǒng)的靈活性、可擴(kuò)展性和向前兼容性,成為了當(dāng)前智能建筑領(lǐng)域亟待解決的問題。
本研究通過提出一個(gè)優(yōu)化的端到端實(shí)現(xiàn)架構(gòu),為解決上述難題提供新的思路和方法。同時(shí),通過重點(diǎn)聚焦在數(shù)據(jù)集成和系統(tǒng)集成領(lǐng)域,結(jié)合軟件定義服務(wù)(SOA),提出了一種符合MACH原則的智能建筑體系結(jié)構(gòu),旨在通過重用、模塊化和可擴(kuò)展性來開發(fā)數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用程序。
1) 基于Zachman框架為數(shù)據(jù)驅(qū)動(dòng)的智能建筑系統(tǒng),開發(fā)了一種滿足功能性需求和非功能性需求的體系結(jié)構(gòu)。該結(jié)構(gòu)在邏輯上分為七個(gè)部分,涵蓋業(yè)務(wù)應(yīng)用、微服務(wù)、數(shù)據(jù)庫、集成軟件、基礎(chǔ)設(shè)施、共享服務(wù)和用戶界面。
2) 詳細(xì)闡釋了如何將語義技術(shù)無縫融入智能建筑軟件體系結(jié)構(gòu)中,實(shí)現(xiàn)了對(duì)現(xiàn)有本體和語義技術(shù)的有效重用,以加強(qiáng)元數(shù)據(jù)集成。
3) 實(shí)現(xiàn)了該體系結(jié)構(gòu)的一個(gè)具體實(shí)例,并通過該案例中三個(gè)用例的成功應(yīng)用,展示了其端到端解決方案的能力。這些用例不僅驗(yàn)證了體系結(jié)構(gòu)的可行性和有效性,還為其在實(shí)際智能建筑項(xiàng)目中的應(yīng)用提供了有力的實(shí)踐支撐。
1" 背景和相關(guān)工作
隨著大數(shù)據(jù)技術(shù)的崛起,軟件開發(fā)技術(shù)的重大變化正在深刻影響著智能建筑領(lǐng)域的發(fā)展,持續(xù)交付可用軟件并迅速響應(yīng)業(yè)務(wù)需求的變化已成為至關(guān)重要的能力。為了提高系統(tǒng)的可維護(hù)性和擴(kuò)展性,面向服務(wù)的架構(gòu)(SOA)和微服務(wù)架構(gòu)逐漸成為主流選擇。這些架構(gòu)模式通過解耦服務(wù)實(shí)現(xiàn)服務(wù)的獨(dú)立性和可重用性,從而允許系統(tǒng)更加靈活地適應(yīng)業(yè)務(wù)和技術(shù)的發(fā)展。無服務(wù)器架構(gòu)作為新興的軟件開發(fā)范式,也逐漸成為軟件開發(fā)的重要組成部分。它允許軟件開發(fā)者將應(yīng)用程序部署到云端,通過事件觸發(fā)的方式自動(dòng)啟動(dòng)和終止計(jì)算資源,極大地提高了資源的利用率和系統(tǒng)的可擴(kuò)展性。
更為復(fù)雜的智能建筑系統(tǒng)也在利用類似的技術(shù)以應(yīng)對(duì)這一變化。MATRYCS[1]是一個(gè)重要的嘗試,它通過微服務(wù)實(shí)現(xiàn)模塊化、云虛擬化、開放性和數(shù)據(jù)共享,同時(shí)在確保安全性和無供應(yīng)商鎖定的六個(gè)原則的條件下,構(gòu)建了一個(gè)分布式的數(shù)據(jù)生態(tài)框架,但在具體實(shí)施和細(xì)節(jié)上仍有待完善。文獻(xiàn)[2?3]中為智慧城市提出了一種受面向服務(wù)架構(gòu)(SOA)啟發(fā)的數(shù)據(jù)驅(qū)動(dòng)參考架構(gòu),但僅限于UML元模型的展示,缺乏實(shí)施細(xì)節(jié)。文獻(xiàn)[4]提出的智能建筑ICT參考架構(gòu),從硬件、網(wǎng)絡(luò)、管理、應(yīng)用與服務(wù)四個(gè)層面進(jìn)行了全面考慮。但這一架構(gòu)更多地停留在理論層面,缺乏具體解決方案的詳細(xì)闡述。BuildingDepot架構(gòu)[5]則側(cè)重于在大型商業(yè)建筑中實(shí)現(xiàn)可移植的數(shù)據(jù)驅(qū)動(dòng)應(yīng)用,但在元數(shù)據(jù)管理、外部服務(wù)集成和用戶界面等方面存在不足。B. C. Chevalliera等人的研究關(guān)注于傳感器數(shù)據(jù)與智能建筑本體的集成,但其僅覆蓋了智能建筑生態(tài)系統(tǒng)的一個(gè)方面。文獻(xiàn)[7]提出一種B?SMART概念分層架構(gòu),旨在促進(jìn)智能建筑的自主優(yōu)化,但缺乏具體的實(shí)施策略。文獻(xiàn)[8]提出的IBDMA參考架構(gòu)雖然使用了標(biāo)準(zhǔn)驅(qū)動(dòng)程序來獲取數(shù)據(jù),但在數(shù)據(jù)集成和雙向通信方面仍有待加強(qiáng)。
綜上所述,當(dāng)前智能建筑架構(gòu)的研究在整合最佳架構(gòu)框架、現(xiàn)有架構(gòu)模式以及語義技術(shù)等方面仍存在不足。元數(shù)據(jù)集成作為智能建筑體系結(jié)構(gòu)的關(guān)鍵組成部分,需要得到更深入的探索和實(shí)施。為推動(dòng)智能建筑的發(fā)展,需要一種更加全面、具體且實(shí)用的體系結(jié)構(gòu),并通過端到端的解決方案來加深對(duì)其的理解和提高可用性。
2" 研究方法
2.1" Zachman框架
Zachman框架是一個(gè)用于描述和規(guī)劃企業(yè)信息系統(tǒng)的結(jié)構(gòu)化框架,它提供了一個(gè)全面的視角來分析和設(shè)計(jì)復(fù)雜的信息系統(tǒng)。由于智慧建筑信息系統(tǒng)涉及多個(gè)子系統(tǒng)和設(shè)備的集成與交互,以及復(fù)雜的物理環(huán)境和安全要求,因此需要一個(gè)全面、結(jié)構(gòu)化的框架來分析和設(shè)計(jì)系統(tǒng)。而Zachman框架可以提供這樣的框架,幫助開發(fā)人員從多個(gè)視角和建模類別出發(fā),全面考慮系統(tǒng)的各個(gè)方面,從而確保系統(tǒng)的設(shè)計(jì)和實(shí)施能夠滿足復(fù)雜性和特殊性的要求。因此,Zachman框架可以作為SOA有效的補(bǔ)充[3],從宏觀層面提供一個(gè)全面、結(jié)構(gòu)化的視角,以支持企業(yè)從多個(gè)角度理解和設(shè)計(jì)其信息系統(tǒng)。
Zachman框架通過其6行6列的矩陣形式,覆蓋了從業(yè)務(wù)戰(zhàn)略到技術(shù)實(shí)現(xiàn)的各個(gè)方面,從而幫助企業(yè)更好地整合業(yè)務(wù)與IT,確保信息系統(tǒng)能夠滿足整體業(yè)務(wù)需求,并為企業(yè)創(chuàng)造更大的價(jià)值。
2.2" MACH框架
MACH(Microservices, API?First, Cloud Native, Headless)框架[9]是一種新興的以客戶為中心、面向未來的軟件架構(gòu)。它基于微服務(wù)、API優(yōu)先、云原生和無頭化(Headless)等原則,旨在構(gòu)建敏捷、可擴(kuò)展、靈活且以客戶為中心的軟件系統(tǒng)。盡管Zachman框架和SOA在企業(yè)架構(gòu)設(shè)計(jì)中扮演了重要角色,但MACH框架特別關(guān)注業(yè)務(wù)的快速演進(jìn)和變化,并強(qiáng)調(diào)通過模塊化、可擴(kuò)展性和靈活性等技術(shù)來支撐這種變化,能夠提供更加個(gè)性化、便捷和高效的服務(wù)。
2.3" 研究方法流程
本節(jié)設(shè)計(jì)和實(shí)現(xiàn)智能建筑架構(gòu)相關(guān)的六步研究方法,具體流程如圖1所示。
步驟1:根據(jù)來自關(guān)鍵涉眾的多樣化需求來理解現(xiàn)有建筑生態(tài)系統(tǒng)的數(shù)據(jù)驅(qū)動(dòng)控制域。這一步建立在調(diào)查智能建筑數(shù)據(jù)需求和要求的基礎(chǔ)上。
步驟2:定義系統(tǒng)的功能性和非功能性需求。調(diào)研面談和行業(yè)內(nèi)最先進(jìn)的審查中收集到的需求,有助于確定體系結(jié)構(gòu)模式和體系結(jié)構(gòu)的軟件組成。
步驟3:根據(jù)生態(tài)系統(tǒng)特性及明確需求,篩選與之相匹配的體系結(jié)構(gòu)模式。此決策過程受到智能建筑生態(tài)系統(tǒng)本質(zhì)屬性的顯著影響。
步驟4:定義體系結(jié)構(gòu)的組件,具體內(nèi)容如下。
1) 識(shí)別建筑物中的現(xiàn)有系統(tǒng)。
2) 通過研究其他領(lǐng)域中可用的參考體系結(jié)構(gòu)與模式來識(shí)別公共組件。
3) 根據(jù)步驟2的需求和步驟3的體系結(jié)構(gòu)模式,確定智能建筑領(lǐng)域還需要哪些新的和獨(dú)特的組件。
步驟5:設(shè)計(jì)一種綜合性解決方案架構(gòu),核心聚焦于技術(shù)架構(gòu)的精心設(shè)計(jì)與開發(fā)。
步驟6:實(shí)現(xiàn)所設(shè)計(jì)的智能建筑部署體系結(jié)構(gòu),并通過在一個(gè)智能建筑應(yīng)用中的展示,驗(yàn)證其可行性和效果。
3" 面向服務(wù)的數(shù)據(jù)驅(qū)動(dòng)智能建筑軟件框架設(shè)計(jì)
圖1給出了總體設(shè)計(jì)流程,在此基礎(chǔ)上,首先需要根據(jù)Zachman框架,在考慮36個(gè)維度的要求下實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)的智能建筑生態(tài)系統(tǒng)映射到Zachman框架,從而將業(yè)務(wù)、技術(shù)和部署三維關(guān)鍵組件都放置在相應(yīng)的單元中,并最終封裝在一個(gè)框架內(nèi);然后再來確定如表1所示的功能性和非功能性需求。
基于上述分析,給出符合Zachman架構(gòu)的面向服務(wù)的數(shù)據(jù)驅(qū)動(dòng)智能建筑軟件框架,如圖2所示。圖2中明確了七個(gè)軟件組件及其內(nèi)部服務(wù),并揭示了這些組件服務(wù)如何協(xié)同工作,共同構(gòu)建一個(gè)全面整合的系統(tǒng)架構(gòu)。該體系結(jié)構(gòu)設(shè)計(jì)需要支持對(duì)各種現(xiàn)有數(shù)據(jù)(FR1~FR3)的無障礙訪問與高效集成(FR4),并兼容新部署的服務(wù)(NFR2)。微服務(wù)架構(gòu)因其模塊化特性,在促進(jìn)系統(tǒng)可擴(kuò)展性、可重用性以及可維護(hù)性(NFR1~NFR3)方面展現(xiàn)出顯著優(yōu)勢(shì),因此被認(rèn)定為新型應(yīng)用開發(fā)的優(yōu)選方案。此外,該架構(gòu)還要支持服務(wù)間命令與消息的傳遞(FR5、FR6),主要通過提供高效的傳輸機(jī)制滿足這一需求。在復(fù)雜的控制策略中,如模型預(yù)測(cè)控制(MPC),服務(wù)間的消息傳輸尤為重要,它允許一個(gè)服務(wù)根據(jù)另一服務(wù)的輸出觸發(fā)響應(yīng)。此類協(xié)調(diào)機(jī)制通常通過微服務(wù)框架內(nèi)的“基于事件的消息傳遞”機(jī)制實(shí)現(xiàn)。此外,在模塊化方式下添加新服務(wù)(NFR2)時(shí),擴(kuò)展微服務(wù)架構(gòu)的功能通常是一個(gè)高效且便捷的過程,包括新服務(wù)的創(chuàng)建、容器化封裝、API端點(diǎn)的建立以及最終部署等步驟,確保系統(tǒng)功能的靈活擴(kuò)展與更新[10]。
4" 關(guān)鍵組件設(shè)計(jì)與系統(tǒng)實(shí)現(xiàn)
為進(jìn)一步闡述圖2所示的軟件框架中的關(guān)鍵組件,本文結(jié)合某高校工程實(shí)訓(xùn)中心智慧建筑設(shè)計(jì)項(xiàng)目進(jìn)行說明。該項(xiàng)目包含Sub1~Sub3三個(gè)子部分,分別對(duì)應(yīng)數(shù)字孿生(DT)[11]、物聯(lián)網(wǎng)集成(IoT)[12]和BIM集成。
關(guān)鍵軟件組件一部分來自于經(jīng)典SOA框架,另外一部分是數(shù)據(jù)驅(qū)動(dòng)的建筑領(lǐng)域特有的。本文主要考慮以下七個(gè)關(guān)鍵組件:現(xiàn)有業(yè)務(wù)應(yīng)用程序、新的基于微服務(wù)的業(yè)務(wù)應(yīng)用程序、數(shù)據(jù)庫、集成軟件、基礎(chǔ)設(shè)施服務(wù)、共享服務(wù)、用戶界面。
4.1" 現(xiàn)有業(yè)務(wù)應(yīng)用
符合基本規(guī)范的現(xiàn)有業(yè)務(wù)應(yīng)用主要由BMS、BIM和IoT來實(shí)現(xiàn)。在本文框架中,與BMS交互的目的僅在于提取歷史數(shù)據(jù),而BIM模型被用于創(chuàng)建數(shù)字孿生應(yīng)用。其他來源系統(tǒng)包括提供實(shí)時(shí)傳感器數(shù)據(jù)的IoT設(shè)備。為整合這些已有系統(tǒng),需要使用多種驅(qū)動(dòng)程序。
4.2" 基于微服務(wù)的新應(yīng)用
新應(yīng)用主要位于集成軟件和新業(yè)務(wù)應(yīng)用類別中。在當(dāng)前框架中,這些服務(wù)包括IoT驅(qū)動(dòng)程序、BMS驅(qū)動(dòng)程序、文件轉(zhuǎn)換器和ETL工具,這些工具為上層應(yīng)用提供數(shù)據(jù)。而建筑中的MPC等數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用則可根據(jù)實(shí)際需要實(shí)裝。
4.3" 數(shù)據(jù)庫
圖2中所示的四類數(shù)據(jù)庫是這些應(yīng)用實(shí)現(xiàn)的基礎(chǔ)。其中,MongoDB時(shí)間序列集合用于存儲(chǔ)時(shí)間序列數(shù)據(jù),而MongoDB文檔集合用于存儲(chǔ)關(guān)于用戶和項(xiàng)目的其他數(shù)據(jù)[13];GraphDB數(shù)據(jù)庫存儲(chǔ)描述建筑物元數(shù)據(jù)的語義圖;作為對(duì)象存儲(chǔ),使用Minio來存儲(chǔ)IFC文件、轉(zhuǎn)換后的xkt文件以及大型時(shí)間序列數(shù)據(jù)集合等。
為了方便統(tǒng)一動(dòng)態(tài)管理,四類數(shù)據(jù)庫都安裝在Docker環(huán)境中。
代碼1展示了Sub1中時(shí)間序列數(shù)據(jù)示例:
{\"_id\":ObjectId(\"xxxx\")
\"sensor_id\":\"xxxx\"
\"timestamp\":ISODate(\"2024?06?10T9:00:00Z\")
\"value\":31.5}
代碼2展示了Sub1中對(duì)象數(shù)據(jù)示例:
{\"id\":ObjectId(\"xxxx\"),
\"title\":\"HBEU\",
\"description\":\"ET_Center\",
\"xktFiles\":[\"ET_Center.xkt\"],
\"rdfFiles\":[\"\"ET_Center.ttl\"],
\"queries\":[]
\"__v\":1}
代碼3展示了Sub1和Sub2的GraphDB數(shù)據(jù)庫中的RDF語法語義建筑圖的一部分(Brick本體論版本v1.3),具體內(nèi)容如下:
{inst:08BEAC0A1C04 Edimax a brick:Sensor;
rdfs:label \"EDIMAX air quality sensor\";
brick:hasPoint
inst:08BEAC0A1C04Edimaxco2;
inst:08BEAC0A1C04 Edimaxh;
brick:hasLocationinst:space892;
ref:hasExternalReference[
a ref:TimeseriesReference;
ref:hasTimeseriesId \"edimax/08BEAC0A1C04/pub\";
ref:storedAtinst:mongo?timeseries;].
inst:11NR00STE?001TRL Sensor a brick:Temperature_Sensor;
rdfs:label \"TEMPERATURE 8128\";
brick:hasLocationinst:space 892;
ref:hasExternalReference[
a ref:TimeseriesReference;
ref:hasTimeseriesId \"11NR00STE?001TRL\";
ref:storedAtinst:mongo?timeseries;].
inst:space_892
a bot:Space,brick:Room;
bot:hasGuid \"1456e859?2e9e?4e70?9341?f073adb2dbb0\";
props:hasCompressedGuid \"0KLkXPBfvES9D1y7Ejijkm\".
inst:mongo?timeseriesaref:Database;
rdfs:label \"MongoDB Timeseries Collection\".}
4.4" 集成軟件
1) BMS集成。在示例中使用BMS中的歷史數(shù)據(jù)來支持用Sub1和Sub3,通過ETL將傳入數(shù)據(jù)轉(zhuǎn)換為邏輯數(shù)據(jù)模型中定義的MongoDB模式。
2) 物聯(lián)網(wǎng)集成。在IoT示例中使用了三種類型的物聯(lián)網(wǎng)設(shè)備。一種是空氣質(zhì)量傳感器,該設(shè)備每10 s從物聯(lián)網(wǎng)平臺(tái)獲取傳感器數(shù)據(jù),并將其發(fā)布到MQTT代理;另一種是智能插座,該設(shè)備的物聯(lián)網(wǎng)驅(qū)動(dòng)程序采用了一個(gè)已有的連接器,以將這些消息轉(zhuǎn)發(fā)到MQTT代理;還有一種為自定義的直接與MQTT代理通信的設(shè)備。這樣,所有實(shí)時(shí)數(shù)據(jù)都可以通過單一的MQTT消息代理訪問。每個(gè)物聯(lián)網(wǎng)設(shè)備ID(如果可用,則可選為MAC地址)都包含在MQTT?Topic中,傳感器讀數(shù)則包含在MQTT有效負(fù)載中。由服務(wù)產(chǎn)生的空氣質(zhì)量傳感器的物理數(shù)據(jù)模型代碼4所示:
{topic:'esp32/xxxxx/pub',
keys:['co2','tvoc','te','rh','lux','vbat'],
values:[721,72,26.141,55.942,587.1000,4.1000]
timestamp:1662299568432}
這些統(tǒng)一的數(shù)據(jù)也記錄在時(shí)間序列數(shù)據(jù)庫中以便后續(xù)使用。
3) BIM集成。BIM集成在用Sub1中的ET_Center建筑時(shí)使用,其依賴于xeokit SDK。在這種情況下,需要另一個(gè)驅(qū)動(dòng)程序?qū)FC文件轉(zhuǎn)換為與Web兼容的xkt格式,轉(zhuǎn)換后的文件存儲(chǔ)在可通過API訪問的對(duì)象存儲(chǔ)中。
4) 元數(shù)據(jù)集成。上述所有應(yīng)用實(shí)現(xiàn)都依賴于元數(shù)據(jù)集成服務(wù)。元數(shù)據(jù)圖的目標(biāo)是標(biāo)準(zhǔn)化語義,并在不同的數(shù)據(jù)源之間建立聯(lián)系。最重要的三個(gè)數(shù)據(jù)源是BMS(建筑管理系統(tǒng))、IoT(物聯(lián)網(wǎng))和BIM(建筑信息模型),因?yàn)樗鼈儼罅吭獢?shù)據(jù),使得數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用能夠進(jìn)行上下文表示。在這方面,本文實(shí)現(xiàn)了兩種元數(shù)據(jù)驅(qū)動(dòng)程序,一種用于IFC到RDF的轉(zhuǎn)換,另一種是基于BMS和IoT傳感器生成元數(shù)據(jù)模式。
從BMS的元數(shù)據(jù)源(如數(shù)據(jù)字典和設(shè)備規(guī)格)中提取語義,以創(chuàng)建元數(shù)據(jù)模式。這些圖形存儲(chǔ)在GraphDB圖形數(shù)據(jù)庫中,通過API在圖形數(shù)據(jù)庫上執(zhí)行SPARQL查詢,可以根據(jù)傳感器類型、位置或其他關(guān)系發(fā)現(xiàn)傳感器和觀測(cè)值。為了提高應(yīng)用程序的整體可重用性,將可重用的SPARQL查詢編程到API中。圖3展示了代碼4所示傳感器和空間的結(jié)果。
5) API:REST API的目的是促進(jìn)智能建筑應(yīng)用程序與架構(gòu)中其他組件之間的通信。本文三個(gè)用例都使用相同的API,目的是使API更加通用,適用于任何數(shù)據(jù)驅(qū)動(dòng)的建筑,而不局限于一個(gè)特定用例的建筑。API使用Node.js的Nest.js框架實(shí)現(xiàn),它允許應(yīng)用程序與各種服務(wù)進(jìn)行交互,并對(duì)可用的4個(gè)數(shù)據(jù)庫執(zhí)行創(chuàng)建?讀取?更新?刪除(CRUD)操作。
4.5" 基礎(chǔ)設(shè)施服務(wù)
使用Docker作為容器化環(huán)境,因?yàn)檩^新的應(yīng)用程序(如IoT驅(qū)動(dòng)程序、API和數(shù)據(jù)庫)都在Docker上運(yùn)行。
4.6" 共享服務(wù)
所有服務(wù)共有的功能被識(shí)別為共享服務(wù),包括安全性、治理、監(jiān)控和自動(dòng)化。
4.7" 用戶界面
用戶界面展示了針對(duì)Sub1和Sub2的兩個(gè)Web應(yīng)用程序以及針對(duì)Sub3的Grafana儀表板的實(shí)現(xiàn),所有應(yīng)用程序都是基于所提出和實(shí)現(xiàn)的架構(gòu)開發(fā)的。
圖4為Sub1和Sub2的應(yīng)用示例,其中主界面為數(shù)字孿生頁面,使用了React前端框架和xeokit SDK。該應(yīng)用程序允許用戶通過Web瀏覽器瀏覽BIM模型,并查看與其空間相關(guān)的傳感器數(shù)據(jù)。REST API將Web應(yīng)用程序連接到語義圖、時(shí)間序列數(shù)據(jù)(歷史和實(shí)時(shí))以及BIM模型。
圖4中展示了與BIM模型相關(guān)聯(lián)的歷史傳感器數(shù)據(jù),并在Web應(yīng)用程序中進(jìn)行了可視化;還展示了IoT集成的案例(Sub2)傳感器節(jié)點(diǎn)信息查看。該應(yīng)用程序也使用React前端框架,該模塊允許用戶與實(shí)訓(xùn)中心建筑的元數(shù)據(jù)圖進(jìn)行交互,探索其IoT設(shè)備并接收實(shí)時(shí)數(shù)據(jù)。
圖5所示為Sub3的應(yīng)用示例?;贐MS歷史數(shù)據(jù)開發(fā)了一個(gè)基于元數(shù)據(jù)模式的應(yīng)用,通過Grafana儀表板將其與時(shí)間序列數(shù)據(jù)庫集成,提供了高效查詢時(shí)間序列數(shù)據(jù)的能力,包括按設(shè)備或點(diǎn)類型查詢數(shù)據(jù)的能力,以及通過圖表對(duì)數(shù)據(jù)獲得初步見解。
用戶可以在圖5所示的下拉列表選擇設(shè)備類型來查詢感興趣的BMS點(diǎn)。其中的時(shí)間序列圖展示了一個(gè)被選擇為brick:Equipment的空氣處理單元(AHU)的示例,通過SPARQL查詢請(qǐng)求與該brick:AHU在元數(shù)據(jù)模式中相關(guān)的數(shù)據(jù)點(diǎn)的唯一標(biāo)識(shí)符。
5" 結(jié)" 語
本文提出一種面向服務(wù)的數(shù)據(jù)驅(qū)動(dòng)建筑體系結(jié)構(gòu),旨在解決當(dāng)前系統(tǒng)架構(gòu)缺乏集成、不依賴語義技術(shù)且多為概念性的不足等問題。通過采用Zachman框架、行業(yè)需求和經(jīng)過測(cè)試的IT架構(gòu)模式,結(jié)合MACH原則和可擴(kuò)展元數(shù)據(jù)方案,顯著提升了體系結(jié)構(gòu)的可擴(kuò)展性、模塊化和可重用性。該體系結(jié)構(gòu)包含特定于建筑領(lǐng)域的組件,支持微服務(wù)架構(gòu),并通過API和消息總線實(shí)現(xiàn)組件間通信。
利用語義技術(shù),本文體系結(jié)構(gòu)能在不同數(shù)據(jù)庫中維護(hù)數(shù)據(jù)類型,通過開放元數(shù)據(jù)模型和本體保證數(shù)據(jù)模型的靈活性和可擴(kuò)展性。通過智慧校園智能建筑應(yīng)用案例驗(yàn)證了體系結(jié)構(gòu)的可重用性和模塊化,適用于為智能建筑構(gòu)建解決方案的架構(gòu)師、業(yè)務(wù)主管和服務(wù)提供商,有助于數(shù)據(jù)和系統(tǒng)訪問,并減少實(shí)現(xiàn)新應(yīng)用時(shí)的歧義。
這種軟件架構(gòu)的實(shí)際實(shí)現(xiàn)對(duì)于智能建筑生態(tài)系統(tǒng)中的多個(gè)利益相關(guān)者至關(guān)重要。未來工作主要是使用提議的體系結(jié)構(gòu)將DSM應(yīng)用程序(如MPC)實(shí)現(xiàn)為基于微服務(wù)的應(yīng)用程序。
注:本文通訊作者為陳惜墨。
參考文獻(xiàn)
[1] PAU M, KAPSALIS P, PAN Z, et al. MATRYCS: a big data architecture for advanced services in the building domain [J]. Energies, 2022, 15(7): 2568.
[2] MATAR M A. Towards a software defined reference architec?ture for smart city ecosystems [C]// 2016 IEEE International Smart Cities Conference (ISC2). Trento, Italy: IEEE, 2016: 1?6.
[3] LI X, WU P, SHEN G Q, et al. Mapping the knowledge domains
of building information modeling (BIM): a bibliometric approach[J]. Automation in construction, 2017, 84: 195?206.
[4] MAZZARA M, AFANASYEV I, SARANGI S R, et al. A reference architecture for smart and software?defined buildings [C]// 2019 IEEE International Conference on Smart Computing. Washington, DC, USA: IEEE, 2019: 167?172.
[5] LIU H Y, BALAJI B, GAO S, et al. Safe HVAC control via batch reinforcement learning [C]// 2022 ACM/IEEE 13th International Conference on Cyber?Physical Systems. [S.l.]: IEEE, 2022: 181?192.
[6] BOULAKIA B C, BEATRICE F, CHEVALLIER Z. A reference architecture for smart building digital twin [EB/OL]. [2023?07?18]. https://www.xueshufan.com/publication/3036551559.
[7] GENKIN M, MCARTHUR J J. B?SMART: a reference archi?tecture for autonomic smart buildings [J]. IOP conference series: earth and environmental science, 2022, 1101: 092036.
[8] BASHIR M R, GILL A Q, BEYDOUN G. A reference archi?tecture for IoT?enabled smart buildings [J]. SN computer science, 2022, 3(6): 493.
[9] ROBEY Ruissaard. MACH architecture: discover the principles and benefits [EB/OL]. [2023?07?11]. https://www.incentro.com/en/blog/mach?architecture?discover?principles?and?benefits.
[10] RICHARDS M. Software architecture patterns [M]. Sebastopol, CA, USA: O’Reilly Media, Inc., 2015.
[11] 劉剛,馬智亮,曾勃,等.數(shù)字孿生技術(shù)在建筑工程中的應(yīng)用研究綜述[J].土木建筑工程信息技術(shù),2023,15(6):1?8.
[12] 商開友.數(shù)字化技術(shù)在裝配式建筑施工中的應(yīng)用前景探討[J].工程與建設(shè),2024,38(1):172?174.
[13] 宗平,李雷.PostgreSQL與MongoDB處理非結(jié)構(gòu)化數(shù)據(jù)性能比較[J].計(jì)算機(jī)工程與應(yīng)用,2017,53(7):104?108.