新聞中心
用Kafka實(shí)現(xiàn)數(shù)字孿生的物聯(lián)網(wǎng)架構(gòu)
譯文
作者:陳峻編譯 2020-04-21 09:51:28
云計(jì)算
物聯(lián)網(wǎng)
Kafka 在本文中,你將先后了解到數(shù)字孿生在各個(gè)行業(yè)中的優(yōu)勢(shì),Kafka與物聯(lián)網(wǎng)架構(gòu)之間的關(guān)系,以及五種適用于數(shù)字孿生的物聯(lián)網(wǎng)架構(gòu)。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括臨湘網(wǎng)站建設(shè)、臨湘網(wǎng)站制作、臨湘網(wǎng)頁(yè)制作以及臨湘網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,臨湘網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到臨湘省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
【51CTO.com快譯】數(shù)字孿生(Digital Twin)可以被理解為現(xiàn)實(shí)中某些事物(也包括過(guò)程或服務(wù))在數(shù)字虛擬環(huán)境中的表現(xiàn)。在本文中,你將了解到數(shù)字孿生在各個(gè)行業(yè)中所處的優(yōu)勢(shì),以及Apache Kafka、物聯(lián)網(wǎng)架構(gòu)和機(jī)器學(xué)習(xí)之間的關(guān)系。在實(shí)際應(yīng)用中,Kafka通常被用作中央事件流平臺(tái),以那些實(shí)時(shí)流傳感器的數(shù)據(jù),構(gòu)建可靠、且可擴(kuò)展的數(shù)字孿生和數(shù)字線程。
我們將從如下三個(gè)方面來(lái)討論如何構(gòu)建開(kāi)放、且可擴(kuò)展的數(shù)字孿生基礎(chǔ)架構(gòu):
- 數(shù)字孿生與數(shù)字線程。
- 事件流、數(shù)字孿生與AI(機(jī)器學(xué)習(xí))之間的關(guān)系。
- 使用Apache Kafka和其他物聯(lián)網(wǎng)平臺(tái)的數(shù)字孿生物聯(lián)網(wǎng)架構(gòu)。
建立數(shù)字孿生的關(guān)鍵要點(diǎn)
我們首先來(lái)了解四個(gè)基礎(chǔ)性的要點(diǎn):
- 事件流是物聯(lián)網(wǎng)平臺(tái)和其他后端應(yīng)用程序/數(shù)據(jù)庫(kù)的補(bǔ)充。
- 大多數(shù)數(shù)字孿生架構(gòu)都使用機(jī)器學(xué)習(xí)(ML)和統(tǒng)計(jì)模型來(lái)進(jìn)行仿真、預(yù)測(cè)和推薦。
- “數(shù)字孿生”一詞通常是指單個(gè)資產(chǎn)的副本。在現(xiàn)實(shí)世界中,各種數(shù)字孿生比比皆是。
- “數(shù)字線程”一詞涵蓋了一到多個(gè)數(shù)字孿生的整個(gè)生命周期(如下圖所示)。
數(shù)字孿生可以被運(yùn)用到許多行業(yè)和領(lǐng)域,其中包括:
- 減少宕機(jī)時(shí)間
- 庫(kù)存管理
- 車(chē)隊(duì)管理
- 假設(shè)(what-if)模擬
- 運(yùn)營(yíng)計(jì)劃
- 服務(wù)化
- 產(chǎn)品開(kāi)發(fā)
- 衛(wèi)生保健
- 客戶體驗(yàn)
實(shí)際上,數(shù)字孿生不僅為各個(gè)行業(yè)帶來(lái)了自動(dòng)化,而且增加了不同業(yè)務(wù)的價(jià)值和創(chuàng)新。
事件流、數(shù)字孿生與AI(機(jī)器學(xué)習(xí))之間的關(guān)系
開(kāi)發(fā)者需要通過(guò)機(jī)器學(xué)習(xí),并運(yùn)用數(shù)字孿生,來(lái)進(jìn)行準(zhǔn)確的預(yù)測(cè)。這兩者存在著互補(bǔ)的關(guān)系。下圖展示了不同的數(shù)字孿生如何利用統(tǒng)計(jì)方法和分析的模型:
該示例包括了基于物理模型來(lái)模擬的各種假設(shè)情景,以及基于數(shù)據(jù)模型來(lái)估計(jì)剩余使用壽命(Remaining Useful Life,RUL)。可見(jiàn),數(shù)字孿生和機(jī)器學(xué)習(xí)有著以下共同點(diǎn):
- 能夠持續(xù)學(xué)習(xí)、監(jiān)控與行動(dòng)。
- 良好的數(shù)據(jù)源是成功的關(guān)鍵。
- 數(shù)據(jù)集越多越好。
- 實(shí)時(shí)性、可擴(kuò)展性和可靠性是關(guān)鍵的需求。
使用Apache Kafka來(lái)實(shí)現(xiàn)數(shù)字孿生,機(jī)器學(xué)習(xí)和事件流
Apache Kafka開(kāi)源生態(tài)系統(tǒng)為機(jī)器學(xué)習(xí)提供了基礎(chǔ)架構(gòu)。下圖展示了Kafka針對(duì)機(jī)器學(xué)習(xí)的架構(gòu)。該架構(gòu)為模型的訓(xùn)練、部署、評(píng)分和監(jiān)視,提供了開(kāi)放、可擴(kuò)展、以及可靠性的實(shí)時(shí)處理。
以下是數(shù)字孿生在實(shí)際應(yīng)用過(guò)程中的五大常見(jiàn)特征:
連接性
- 各類(lèi)實(shí)物資產(chǎn)、企業(yè)軟件與客戶。
- 通過(guò)雙向通信,以獲取命令和控制。
同態(tài)化(Homogenization)
- 解耦和標(biāo)準(zhǔn)化。
- 信息虛擬化。
- 能與多個(gè)代理共享,且不受物理位置或時(shí)間的限制。
- 成本更低,且能夠輕松地開(kāi)展測(cè)試、開(kāi)發(fā)和預(yù)測(cè)。
可重新編程與智能化
- 通過(guò)調(diào)整和改善特征,以開(kāi)發(fā)出產(chǎn)品的新版本。
數(shù)字跟蹤
- 能夠?qū)崿F(xiàn)時(shí)光倒流(回溯),并通過(guò)分析歷史事件,以診斷問(wèn)題。
模塊化
- 能夠?qū)Ξa(chǎn)品和生產(chǎn)模塊進(jìn)行設(shè)計(jì)和定制。
- 調(diào)整不同的模型和機(jī)器模塊。
為了實(shí)現(xiàn)上述特征,我們可以選用不同的物聯(lián)網(wǎng)平臺(tái)。根據(jù)物聯(lián)網(wǎng)分析研究(IoT Analytics Research)的統(tǒng)計(jì):截止到2019年,市場(chǎng)上存在著600多個(gè)物聯(lián)網(wǎng)平臺(tái)(請(qǐng)參見(jiàn):https://iot-analytics.com/iot-platform-companies-landscape-2020/)。與此同時(shí),它們中的許多工具和解決方案都能夠結(jié)合在一起,共同發(fā)揮作用。
下面,我們來(lái)討論幾種典型的物聯(lián)網(wǎng)平臺(tái):
- 以Siemens S7和Modbus為首的工業(yè)物聯(lián)網(wǎng)(IIoT)相關(guān)協(xié)議,以及與諸如OPC-UA之類(lèi)標(biāo)準(zhǔn)的深度集成:它們往往并非某個(gè)單一的產(chǎn)品(通常是各種OEM的不同代碼庫(kù))。雖然價(jià)格不菲,但是它們開(kāi)放特定的接口,而且其可擴(kuò)展性也十分有限。此類(lèi)平臺(tái)的典型代表包括:西門(mén)子MindSphere、思科Kinetic、GE Digital和Predix。
- 云提供商的物聯(lián)網(wǎng)產(chǎn)品:它們提供了完備的物聯(lián)網(wǎng)管理工具,能夠與其他云服務(wù)(如:存儲(chǔ)、分析等)實(shí)現(xiàn)良好的集成。不過(guò),它們往往被云提供商的平臺(tái)所綁定,且無(wú)法支持混合與邊緣計(jì)算。另外,它們不但擴(kuò)展性有限,而且售價(jià)也不菲。此類(lèi)平臺(tái)的典型代表包括:AWS、GCP、Azure和Alibaba等。
- 基于開(kāi)放標(biāo)準(zhǔn)(如:MQTT)、且開(kāi)源的物聯(lián)網(wǎng)平臺(tái):它們能夠開(kāi)放核心的業(yè)務(wù)模型,且與基礎(chǔ)架構(gòu)無(wú)關(guān)。不過(guò),它們?cè)卺槍?duì)舊協(xié)議和專(zhuān)有協(xié)議的連接方面,可能不太成熟。此類(lèi)平臺(tái)的典型代表包括:Eclipse IoT、Apache PLC4X、Node-RED等開(kāi)源框架、以及符合MQTT等標(biāo)準(zhǔn)的HiveMQ相關(guān)產(chǎn)品。
使用Apache Kafka和其他物聯(lián)網(wǎng)平臺(tái)的數(shù)字孿生架構(gòu)
下面,我們根據(jù)數(shù)字孿生的上述五大特征,來(lái)討論Kafka針對(duì)實(shí)時(shí)消息傳遞、集成與處理關(guān)鍵任務(wù)事件流等方面的作用:
- 連接性:Kafka Connect可以針對(duì)IoT接口、大數(shù)據(jù)解決方案、以及云服務(wù),提供免費(fèi)且實(shí)時(shí)的大規(guī)模連接。
- 同態(tài)化:Kafka實(shí)現(xiàn)了生產(chǎn)者和消費(fèi)者之間真正的解耦。模式(schema)管理和實(shí)施可利用JSON Schema、Avro、Profobuf等不同技術(shù),來(lái)實(shí)現(xiàn)數(shù)據(jù)的感知和標(biāo)準(zhǔn)化。
- 可重新編程與智能化:作為微服務(wù)架構(gòu)的實(shí)際標(biāo)準(zhǔn),Kafka支持:關(guān)注點(diǎn)分離(Separation of concerns),域驅(qū)動(dòng)設(shè)計(jì)(domain-driven design,DDD,請(qǐng)參見(jiàn):https://www.confluent.io/blog/microservices-apache-kafka-domain-driven-design/),部署新的已解耦應(yīng)用,實(shí)施版本控制,A/B測(cè)試與發(fā)布。
- 數(shù)字跟蹤:作為分布式提交日志,Kafka會(huì)按需將事件永久地追加、存儲(chǔ)到您的時(shí)間點(diǎn)(永久保留時(shí)間可 = -1)。這非常適合為數(shù)字孿生構(gòu)建數(shù)字跟蹤。
- 模塊化:Kafka基礎(chǔ)架構(gòu)本身就是模塊化、且可擴(kuò)展的,其中包括:Kafka brokers、Connect、Schema Registry、REST Proxy等組件、以及使用Java、Scala、Python、Go、.NET、以及C++等不同語(yǔ)言的客戶端應(yīng)用。通過(guò)這種模塊化,您可以輕松地在邊緣、混合或全局場(chǎng)景中,構(gòu)建合適的數(shù)字孿生架構(gòu),并能夠?qū)afka組件與任何其他物聯(lián)網(wǎng)方案結(jié)合起來(lái)。
下面是五種適用于數(shù)字孿生的物聯(lián)網(wǎng)架構(gòu)。您可以根據(jù)它們的優(yōu)缺點(diǎn),在自己的整體企業(yè)架構(gòu)、項(xiàng)目情況、以及其他方面,做出合理的選擇。
方案1:數(shù)字孿生Monolith
直接使用物聯(lián)網(wǎng)平臺(tái)來(lái)集成和構(gòu)建數(shù)字孿生,無(wú)需其他數(shù)據(jù)庫(kù)或其他組件。
方案2:將數(shù)字孿生作為外部數(shù)據(jù)庫(kù)
物聯(lián)網(wǎng)平臺(tái)與其端點(diǎn)集成,數(shù)字孿生的數(shù)據(jù)被存儲(chǔ)在諸如:MongoDB、Elastic、InfluxDB或Cloud Storage之類(lèi)的外部數(shù)據(jù)庫(kù)中。此類(lèi)數(shù)據(jù)庫(kù)僅用于存儲(chǔ),處理,以及儀表板分析等任務(wù)。
同時(shí),Tableau、Qlik或Power BI之類(lèi)的商業(yè)智能(BI)工具也可以使用數(shù)據(jù)庫(kù)的SQL接口,來(lái)實(shí)現(xiàn)交互式的查詢和報(bào)告。
方案3:Kafka作為數(shù)字孿生和企業(yè)其余部分的主干
物聯(lián)網(wǎng)平臺(tái)仍然與其端點(diǎn)集成。Kafka作為中央事件流平臺(tái),提供與其他組件之間的解耦。此處中央層是開(kāi)放、可擴(kuò)展且可靠的。而此處的數(shù)據(jù)庫(kù)同樣被用于數(shù)字孿生的存儲(chǔ)、以及儀表板分析。其他應(yīng)用也會(huì)以實(shí)時(shí)、批處理、請(qǐng)求-響應(yīng)通信等方式,使用來(lái)自Kafka的部分?jǐn)?shù)據(jù)。
方案4:Kafka作為物聯(lián)網(wǎng)平臺(tái)
作為中央事件流平臺(tái),Kafka可為物聯(lián)網(wǎng)端點(diǎn)和其他應(yīng)用提供關(guān)鍵任務(wù)的實(shí)時(shí)架構(gòu)和集成層。在此方案中,數(shù)字孿生并未用到上述方案中提到的數(shù)據(jù)庫(kù),而是使用了Azure IoT Twin Twins之類(lèi)的云端物聯(lián)網(wǎng)服務(wù)。
場(chǎng)景5:Kafka作為物聯(lián)網(wǎng)平臺(tái)
Kafka直接被用于實(shí)現(xiàn)數(shù)字孿生,而并不涉及到其他組件或數(shù)據(jù)庫(kù)。同時(shí),其他消費(fèi)者會(huì)直接使用原始數(shù)據(jù)和數(shù)字孿生的數(shù)據(jù)。
該方案的主要問(wèn)題在于Kafka是否可以替換數(shù)據(jù)庫(kù)、以及如何查詢到數(shù)據(jù)(請(qǐng)參見(jiàn):https://www.kai-waehner.de/blog/2020/03/12/can-apache-kafka-replace-database-acid-storage-transactions-sql-nosql-data-lake/)。在實(shí)際應(yīng)用中,由于Kafka可以被用作數(shù)據(jù)庫(kù),因此它不會(huì)替代諸如:Oracle、MongoDB或Elasticsearch等其他數(shù)據(jù)庫(kù)。
當(dāng)然,Kafka的多次部署也可以被運(yùn)用到數(shù)字孿生的架構(gòu)中,在永久性存儲(chǔ)等方面發(fā)揮巨大的作用。
名稱(chēng)欄目:用Kafka實(shí)現(xiàn)數(shù)字孿生的物聯(lián)網(wǎng)架構(gòu)
文章網(wǎng)址:http://m.fisionsoft.com.cn/article/cdijjod.html


咨詢
建站咨詢
