自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

物聯(lián)網(wǎng)數(shù)據(jù)流三寶:OPC-UA + MQTT + Apache Kafka

譯文 精選
物聯(lián)網(wǎng)
本文將介紹在物聯(lián)網(wǎng)和工業(yè)4.0中如何通過Apache Kafka、MQTT和OPC-UA 來處置數(shù)據(jù)流,以及探討兩個來自寶馬和奧迪的使用案例。

譯者 | 陳峻

審校 | 孫淑娟

在物聯(lián)網(wǎng)世界中,MQTT(消息隊列遙測傳輸協(xié)議)和OPC-UA(OPC統(tǒng)一架構(gòu))已經(jīng)成為了在工業(yè)物聯(lián)網(wǎng)(IIoT)和工業(yè)4.0用例中,數(shù)據(jù)交換的開放協(xié)議和平臺獨立標(biāo)準(zhǔn)。而Apache Kafka的數(shù)據(jù)流用于實時集成和處理任何規(guī)模的、海量數(shù)據(jù)的數(shù)據(jù)中心。本文將探討Kafka和各種IoT協(xié)議之間的關(guān)系,何時該使用哪種技術(shù),以及為何有時HTTP/REST是更好的選擇。最后,我們將探討兩個來自寶馬和奧迪的使用案例。

圖片

1.工業(yè)4.0數(shù)據(jù)流平臺通過連接設(shè)備來提高工廠的整體效率 

工業(yè)4.0和工業(yè)物聯(lián)網(wǎng)(IIoT)需要通過系統(tǒng)近乎實時地傳輸、處理、分析和提供數(shù)據(jù)。這會導(dǎo)致數(shù)據(jù)量的逐日攀升,并讓制造商面臨數(shù)據(jù)多樣化的挑戰(zhàn)。然而,使問題進一步復(fù)雜化的是,傳統(tǒng)的IT環(huán)境持續(xù)存在于各種制造設(shè)施中。這往往限制了制造商實現(xiàn)跨業(yè)務(wù)進行數(shù)據(jù)有效集成的能力。因此,大多數(shù)制造商都需要將數(shù)據(jù)復(fù)制和同步策略予以混合實施。目前,他們也正在從產(chǎn)品設(shè)計和制造到運維環(huán)節(jié),努力提高其生產(chǎn)設(shè)施的整體設(shè)備效率(OEE)。與此同時,由于新冠疫情的流行和2021年蘇伊士運河的中斷,都會導(dǎo)致即時生產(chǎn)與供應(yīng)鏈問題的凸顯。因此企業(yè)需要通過實時的流程和監(jiān)控,在如下方面確保生產(chǎn)線的自適應(yīng)能力:

  • 準(zhǔn)時(JIT)的預(yù)測
  • 構(gòu)建工廠的產(chǎn)能
  • 人員配備與倒班狀況
  • 原材料和產(chǎn)品價格的波動

通常,由設(shè)備產(chǎn)生的數(shù)據(jù)必須在生成之后立即被轉(zhuǎn)換,并在整個企業(yè)中可用,來體現(xiàn)數(shù)據(jù)被提取的最大價值,提高工廠的整體效率,進而避免嚴(yán)重故障。如今,寶馬和特斯拉之類的汽車制造商已經(jīng)認(rèn)識到了數(shù)據(jù)流平臺的潛力,正在利用Apache Kafka生態(tài)系統(tǒng)來流轉(zhuǎn)數(shù)據(jù)??梢哉f,數(shù)據(jù)流對于數(shù)據(jù)驅(qū)型制造公司的好處,不僅體現(xiàn)在數(shù)字化和自動化轉(zhuǎn)型上,還包括如下方面:

  • 使生產(chǎn)過程更加高效
  • 多快好省
  • 盡量減少錯誤率

2.何時使用Kafka、MQTT和OPC-UA 

如前文所述,Kafka是一個出色的數(shù)據(jù)流平臺,可被用于大規(guī)模的實時消息傳遞、存儲、數(shù)據(jù)集成和處理。不過,Kafka并非包治百病,它未能實現(xiàn)如下方面:

  • 數(shù)百萬客戶級別(如移動應(yīng)用)的代理
  • API管理平臺
  • 用于復(fù)雜查詢和批量分析的數(shù)據(jù)庫
  • 具有設(shè)備管理等功能的物聯(lián)網(wǎng)平臺
  • 一種用于硬實時應(yīng)用的技術(shù)

鑒于上述原因,Kafka需要通過與MQTT和OPC-UA的協(xié)同使用,來補齊短板。以近乎實時的方式,在工廠、公司、以及在全球范圍內(nèi),實現(xiàn)大量數(shù)據(jù)的處理和交換。

圖片

全球Apache Kafka和事件流用例

如上圖所示,Apache Kafka通常作為分散式數(shù)據(jù)流的數(shù)據(jù)網(wǎng)格節(jié)點,能夠集成各種系統(tǒng),其中包括:邊緣、物聯(lián)網(wǎng)設(shè)備、以及業(yè)務(wù)軟件,并能夠獨立于底層基礎(chǔ)設(shè)施(如:邊緣、本地、公共、多云和混合云等)來執(zhí)行。因此,開放、可擴展、以及靈活的架構(gòu)對于與舊環(huán)境的集成,和利用現(xiàn)代化云原生應(yīng)用都是至關(guān)重要的。由事件驅(qū)動的Apache Kafka等數(shù)據(jù)流平臺正好滿足了此類需求。它們收集相關(guān)傳感器的遙測數(shù)據(jù)、以及來自IT系統(tǒng)的數(shù)據(jù),并在數(shù)據(jù)傳輸時,對其進行處理。這便是“動態(tài)數(shù)據(jù)”的概念。它區(qū)別于將事件存儲到數(shù)據(jù)庫中,以待日后查看的“靜態(tài)數(shù)據(jù)”。在物聯(lián)網(wǎng)用例中,我們通常認(rèn)為處理靜態(tài)數(shù)據(jù)的是一種“過時的架構(gòu)”。

3.使用域驅(qū)動設(shè)計和真正的解耦來進行分離 

其實,工廠的IT環(huán)境被建立在什么樣的基礎(chǔ)設(shè)施上并不重要。重要的是,新舊系統(tǒng)能夠?qū)崿F(xiàn)數(shù)據(jù)的實時集成,能夠以解耦的方式維持?jǐn)?shù)據(jù)的持續(xù)流動和消息存儲。而與其他消息系統(tǒng)(如IT領(lǐng)域的RabbitMQ、或物聯(lián)網(wǎng)領(lǐng)域中的MQTT)相比,Apache Kafka的域驅(qū)動設(shè)計(DDD)實現(xiàn)了背壓處理和數(shù)據(jù)可重放性的真正解耦,同時提升了高可用性和故障安全(fail-safe)性,這些都是生產(chǎn)環(huán)境中至關(guān)重要的。

圖片

用于工業(yè)物聯(lián)網(wǎng)MQTT和OPC UA的Kafka域驅(qū)動設(shè)計

4.OPC-UA、MQTT、HTTP與其他 

目前,開放且標(biāo)準(zhǔn)化的物聯(lián)網(wǎng)架構(gòu)有三個通用的標(biāo)準(zhǔn):OPC-UA(Open Platform Communications Unified Architecture,開放平臺通信統(tǒng)一架構(gòu))和MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸),這兩個是特定于物聯(lián)網(wǎng)的協(xié)議,另一個是簡單的REST/HTTP。當(dāng)然,業(yè)界也有一些私有的特定協(xié)議。例如:Skynet的專有DataHub傳輸協(xié)議(DHTP,https://skkynet.com/iiot-protocol-comparison),以及開放標(biāo)準(zhǔn)的替代方案--AMQP等。下表展示了它們在特性上的比較:

圖片

工業(yè)物聯(lián)網(wǎng)協(xié)議的比較

5.評估物聯(lián)網(wǎng)協(xié)議的決策樹 

那么,哪一種更值得我們?nèi)ミx用呢?首先,需要強調(diào)的是,此類討論只有在您擁有選擇權(quán)的情況下才有意義。如果您在車間購買并安裝了一臺新機器或PLC,而僅提供特定接口,那么您只有用的份,沒有選擇可言。當(dāng)然,不同領(lǐng)域的人員可能會有不同的選擇偏好。甚至有人會從TCO和ROI的角度,認(rèn)為專有方案會是更好的選擇。而總地說來,對于不同的物聯(lián)網(wǎng)協(xié)議,我的建議是:盡可能地使用開放標(biāo)準(zhǔn),甚至可以按需將它們組合到一起。下面,讓我們來看一個簡單的、如何在OPC-UA、MQTT、HTTP和其他專有的工業(yè)物聯(lián)網(wǎng)協(xié)議之間,做出選擇的“決策樹”:

圖片

MQTT、OPC UA、HTTP REST的工業(yè)物聯(lián)網(wǎng)決策樹

讓我們來討論一下上面的決策樹:

  • HTTP/REST非常適合簡單的用例(盡可能地保持簡單)。HTTP的易懂易用特性,幾乎適用于任何場景。它不需要額外的工具、API或中間件,而且其通信是同步式的“請求-響應(yīng)”。如果您能夠采用HTTP(S)的80或443端口,而不是其他TCP端口的話,還能順利地得到安全團隊的協(xié)助。當(dāng)然,HTTP屬于單向通信。例如,聯(lián)網(wǎng)的汽車需要一個HTTP服務(wù)器,來獲取從云端推送的數(shù)據(jù),它們會使用pub/sub。
  • MQTT非常適合于連接著數(shù)萬或數(shù)十萬臺設(shè)備,使用有限的帶寬和間斷性網(wǎng)絡(luò)的場景(如,聯(lián)網(wǎng)汽車的基礎(chǔ)設(shè)施)。其通信是使用MQTT代理作為中間人的異步發(fā)布與訂閱。MQTT不使用標(biāo)準(zhǔn)的數(shù)據(jù)格式,但是開發(fā)人員可以使用Sparkplug作為構(gòu)建附加的組件。MQTT非常輕量級,其服務(wù)質(zhì)量(QoS)、遺囑式功能,開箱即用地解決了物聯(lián)網(wǎng)用例的各種要求。同時MQTT非常適合雙向通信(如,聯(lián)網(wǎng)汽車<-->云通信)等IT用例。此外,LoRaWAN和其他低功耗的廣域網(wǎng)都非常適合MQTT。
  • OPC-UA非常適合工業(yè)自動化(如,生產(chǎn)線上的機器)。今天的通信通常是客戶端/服務(wù)器,但也支持發(fā)布/訂閱。它使用標(biāo)準(zhǔn)數(shù)據(jù)格式,并提供豐富、強大、復(fù)雜的功能、組件、以及行業(yè)特定數(shù)據(jù)格式集。OPC-UA非常適合OT與IT相集成的場景。OPC UA的TSN(time-sensitive networking,時間敏感網(wǎng)絡(luò))是一個可選組件。它是一種以太網(wǎng)通信標(biāo)準(zhǔn),可以提供開放、確定性、以及硬實時(hard real-time)通信。
  • 專有協(xié)議適用于那些基于標(biāo)準(zhǔn)化的實現(xiàn)無法解決的特定問題。這些協(xié)議通常是瑕瑜互見。它們在帶來強大的高性能的同時,往往也比較昂貴且?guī)в芯窒扌浴?/li>

如前文所述,我們在OPC-UA、MQTT和其他協(xié)議之間進行選擇時,并不是非此即彼的。在許多工業(yè)案例中,我們可以將OPC-UA和MQTT同時用于現(xiàn)代化應(yīng)用中,取長補短,讓每種協(xié)議都發(fā)揮其出色的作用,從而讓老舊的應(yīng)用和專有的SCADA系統(tǒng)、或其他歷史遺留數(shù)據(jù)與專有中間件相集成。

6.MQTT、OPC-UA和Kafka之間的集成 

在將MQTT、OPC-UA和Kafka的集成過程中,我們通常會涉及到如下設(shè)備與組件:

Kafka Connect連接器:可以實現(xiàn)協(xié)議級別的原生Kafka集成。Confluent Hub(https://www.confluent.io/hub/)可以作為它的替代方案。一些企業(yè)往往會構(gòu)建他們自定義的Kafka Connect連接器。

自定義集成:通過低級別的MQTT/OPC-UA API(如,使用Kafka的HTTP/REST代理)或Kafka客戶端(如,用于Windows環(huán)境的.NET/C++)進行集成。

開放的第三方物聯(lián)網(wǎng)中間件:通用的開源式集成中間件(如,帶有IoT連接器的Apache Camel)、特定于IoT的框架(如Apache PLC4X或Eclipse Ditto),或基于標(biāo)準(zhǔn)API的專有第三方IoT中間件。

商業(yè)化物聯(lián)網(wǎng)平臺:適合現(xiàn)有的歷史遺留部署,并能夠起到“膠合”代碼與協(xié)議作用(如Modbus、西門子S7等)。傳統(tǒng)的歷史數(shù)據(jù)、專有協(xié)議、單體架構(gòu)、有限的可擴展性、ETL批處理平臺都非常適合采用商業(yè)化物聯(lián)網(wǎng)平臺,在內(nèi)部部署和云服務(wù)之間架起一座橋梁。

7.使用OPC-UA或MQTT去連接機器與設(shè)備 

雖然OPC UA和MQTT并非為數(shù)據(jù)處理和集成而設(shè)計,但是它們的優(yōu)勢在于實時建立與設(shè)備、機器、PLC、物聯(lián)網(wǎng)網(wǎng)關(guān)或車輛之間的雙向“最后一英里”通信。如上文所述,這兩種標(biāo)準(zhǔn)有著不同的側(cè)重點,可以被結(jié)合起來使用。目前,幾乎所有的現(xiàn)代化機器、PLC和智能工廠的物聯(lián)網(wǎng)網(wǎng)關(guān)都可以支持OPC-UA。而MQTT主要被用于較差的網(wǎng)絡(luò)、以及大規(guī)模的設(shè)備場景中。數(shù)據(jù)流往往通過連接器流入數(shù)據(jù)流平臺。此類平臺既可以與“邊緣”的物聯(lián)網(wǎng)平臺并行部署,也可以被組合到混合云的場景中。作為靈活的數(shù)據(jù)中心,數(shù)據(jù)流平臺可以在OT和IT應(yīng)用之間進行數(shù)據(jù)的集成和處理。除了OT端的OPC-UA和MQTT,無論是在邊緣、本地、還是在云端,MES、ERP、CRM、數(shù)據(jù)倉庫、以及數(shù)據(jù)湖等IT應(yīng)用都是實時連接的。

圖片

Apache Kafka作為具有MQTT和OPC UA的開放式可擴展歷史數(shù)據(jù)庫(https://www.kai-waehner.de/blog/2020/04/21/apache-kafka-as-data-historian-an-iiot-industry-4-0-real-time-data-lake/)

8.用于開發(fā)和預(yù)測仿真的數(shù)字孿生 

通過持續(xù)地以流式傳輸數(shù)據(jù),以及處理和集成傳感器的數(shù)據(jù),數(shù)據(jù)流平臺能夠創(chuàng)建一個開放、可擴展且高度可用的基礎(chǔ)架構(gòu),并用于部署數(shù)字孿生。

數(shù)字孿生結(jié)合了物聯(lián)網(wǎng)、人工智能、機器學(xué)習(xí)和其他技術(shù),旨在創(chuàng)建物理組件、設(shè)備和流程等虛擬模擬。通過參考歷史數(shù)據(jù),數(shù)字孿生也可以在物理對應(yīng)物所生成的數(shù)據(jù)發(fā)生變化時,立即進行自我更新。通常,Kafka可與其他技術(shù)相結(jié)合,以構(gòu)建數(shù)字孿生。例如,Eclipse Ditto是一個將Kafka與IoT協(xié)議相結(jié)合的項目。一些團隊也會使用Kafka和MongoDB等數(shù)據(jù)庫,定制數(shù)字孿生。

圖片

Apache Kafka助力工業(yè) 4.0和工業(yè)物聯(lián)網(wǎng)的數(shù)字孿生

如上圖所示,在工業(yè)4.0中,機器操作員可以通過數(shù)字孿生,詳細了解其模擬或監(jiān)控的元素的生命周期,不斷優(yōu)化產(chǎn)品和流程,測試單個部件或整個系統(tǒng)的功能和性能,進而對能耗和磨損進行預(yù)測。

9.狀態(tài)監(jiān)測和預(yù)測性維護 

在現(xiàn)代化維護中,機器操作員往往需要及時了解到:所有設(shè)備是否能按照預(yù)期運行?在需要進行維護工作之前,這些設(shè)備通??梢赃\行多長時間?異常和錯誤的原因是什么?

一方面,他們需要依賴可靠且可擴展的基礎(chǔ)架構(gòu),以支持?jǐn)?shù)據(jù)流的處理、分析和集成,進而實時地檢測出諸如:嚴(yán)重的溫度波動或振動等關(guān)鍵性指標(biāo),以便采取措施,保障工廠的生產(chǎn)效率。另一方面,數(shù)字孿生可以通過監(jiān)測和診斷,將當(dāng)前傳感器捕捉到的數(shù)據(jù)與歷史數(shù)據(jù)相關(guān)聯(lián),從而識別故障的原因,方便采取預(yù)測性的維護措施。而最重要的是,通過確保設(shè)備和設(shè)施僅在必要時得到維修,他們可以更加有效地實施預(yù)測性維護計劃,既做到為制造型企業(yè)節(jié)省寶貴的資源,又可以避免代價高昂的停機時間。

圖片

使用Apache Kafka的ksqlDB和TensorFlow進行狀態(tài)監(jiān)控和預(yù)測性維護(https://www.kai-waehner.de/blog/2021/10/25/apache-kafka-condition-monitoring-predictive-maintenance-industrial-iot-digital-twin/)

10.聯(lián)網(wǎng)汽車和流式機器學(xué)習(xí) 

聯(lián)網(wǎng)汽車是可以與車外其他系統(tǒng)進行雙向通信的汽車。它實現(xiàn)了汽車與車內(nèi)、車外的各種設(shè)備和應(yīng)用共享互聯(lián)網(wǎng)上的訪問和數(shù)據(jù)。而前面提到的MQTT與Kafka相結(jié)合的方式,便可以服務(wù)于聯(lián)網(wǎng)汽車及其基礎(chǔ)設(shè)施的用例。

下圖展示了Kafka如何與數(shù)萬、甚至數(shù)十萬個物聯(lián)網(wǎng)設(shè)備相集成,并實時地處理數(shù)據(jù)。在聯(lián)網(wǎng)汽車的基礎(chǔ)設(shè)施中,該流程可以自動化地進行預(yù)測性防護(即異常檢測),以及預(yù)測發(fā)動機的故障:

圖片

Kappa架構(gòu)、Kafka MQTT的Kubernetes和Tensorflow用于流式機器學(xué)習(xí)

11.寶馬案例研究使用智能工廠和云服務(wù)實現(xiàn)制造4.0 

讓我們從技術(shù)角度來探討一下,寶馬是如何成功地將Kafka和OPC-UA作為邊緣設(shè)備和云端應(yīng)用之間的實時數(shù)據(jù)中心。在實施之前,寶馬希望達到的目標(biāo)是:

  • 在不影響其他服務(wù)的情況下,獲取IoT數(shù)據(jù),并將其傳輸?shù)秸_的位置
  • 一次收集,多次處理和消費(不同的消費端在不同的時段,使用不同的通信范式,如:實時、批處理、請求-響應(yīng))
  • 實現(xiàn)可擴展性的實時處理,并縮短上市的時間

寶馬團隊通過使用OPC-UA連接器,直接與Azure中的Confluent Cloud進行通信,成功地將其全球智能工廠的負(fù)載相連接,并在公共云中實現(xiàn)了實時復(fù)制。其中,作為消息傳遞平臺的Kafka提供了不同接口之間的真正解耦、透明化和數(shù)字創(chuàng)新。而Confluent通過產(chǎn)品和專業(yè)知識,增加了制造系統(tǒng)的穩(wěn)定性。此外,實時優(yōu)化的供應(yīng)鏈管理方案也提供了有關(guān)物理上、以及ERP系統(tǒng)中的正確庫存信息。

 12.奧迪案例研究

 采用群體智能(Swarm Intelligence)的聯(lián)網(wǎng)汽車 

奧迪使用Apache Kafka構(gòu)建了聯(lián)網(wǎng)汽車的基礎(chǔ)設(shè)施。他們在Kafka峰會上分享并探討了其用例和架構(gòu)。

圖片

他們構(gòu)建了實時數(shù)據(jù)分析、群體智能、合作伙伴協(xié)作、以及預(yù)測性AI,實現(xiàn)了聯(lián)網(wǎng)汽車的所有傳感器數(shù)據(jù),經(jīng)過實時處理與存儲,用于歷史分析和實時報告的一整套流程。

13.題外話 

如果網(wǎng)絡(luò)基礎(chǔ)設(shè)施的連接性允許您在自己IoT項目中使用“無服務(wù)器Kafka”的話,那么您也可以像上述寶馬的案例那樣,利用Confluent Cloud在全球推廣智能工廠,用“無服務(wù)器Kafka”來處理和集成數(shù)據(jù)流。通過無服務(wù)器數(shù)據(jù)流,您可以更加專注于物聯(lián)網(wǎng)業(yè)務(wù)的應(yīng)用,并提高設(shè)備綜合效率(OEE)。原文鏈接:https://dzone.com/articles/opc-ua-mqtt-and-apache-kafka-the-trinity-of-data-s

譯者介紹

陳峻 (Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項目實施經(jīng)驗,善于對內(nèi)外部資源與風(fēng)險實施管控,專注傳播網(wǎng)絡(luò)與信息安全知識與經(jīng)驗;持續(xù)以博文、專題和譯文等形式,分享前沿技術(shù)與新知;經(jīng)常以線上、線下等方式,開展信息安全類培訓(xùn)與授課。

責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2020-08-20 11:24:31

物聯(lián)網(wǎng)數(shù)據(jù)技術(shù)

2023-03-17 07:39:54

開源數(shù)據(jù)流技術(shù)

2024-09-23 10:10:00

OPC UAIOT數(shù)據(jù)采集

2019-07-05 12:16:26

大數(shù)據(jù)IT互聯(lián)網(wǎng)

2020-09-15 12:50:53

物聯(lián)網(wǎng)人工智能機器學(xué)習(xí)

2023-06-20 14:04:59

2023-03-20 16:16:40

MQTT傳輸協(xié)議

2024-03-26 11:52:13

2018-08-17 06:13:16

物聯(lián)網(wǎng)協(xié)議MQTTMQTT-SN

2022-06-27 10:41:45

MQTT物聯(lián)網(wǎng)協(xié)議

2016-10-19 16:52:52

流數(shù)據(jù)Apache Kafk

2017-09-06 16:49:43

KSQLKafka數(shù)據(jù)集

2023-09-24 23:18:50

2023-09-07 14:59:42

物聯(lián)網(wǎng)MQTTCoAP

2018-03-29 10:13:54

物聯(lián)網(wǎng)協(xié)議MQTT

2009-08-19 10:41:12

Java輸入數(shù)據(jù)流

2011-12-14 15:57:13

javanio

2022-03-18 08:57:17

前端數(shù)據(jù)流選型

2019-05-15 08:40:34

工業(yè)物聯(lián)網(wǎng)MQTT物聯(lián)網(wǎng)

2019-05-15 08:26:44

工業(yè)物聯(lián)網(wǎng)MQTT物聯(lián)網(wǎng)
點贊
收藏

51CTO技術(shù)棧公眾號