作者:上海工業(yè)自動(dòng)化儀表研究院,PLCopen中國組織 彭瑜
摘要:泛在聯(lián)接性是工業(yè)互聯(lián)網(wǎng)系統中各種參與組件之間實(shí)現數據共享的一種基礎技術(shù)。目前,IIoT領(lǐng)域中存在許多專(zhuān)有聯(lián)接性技術(shù),雖然在各自應用范圍內內相當優(yōu)化,但是對于建立新的價(jià)值空間,以及打開(kāi)全球的IIoT市場(chǎng)而言,卻在數據共享、設計、架構乃至通信諸方面是一種障礙。本文重點(diǎn)闡述工業(yè)物聯(lián)網(wǎng)聯(lián)接性架構的主要內容,即工業(yè)物聯(lián)網(wǎng)的通信模型、工業(yè)互聯(lián)網(wǎng)參考架構中聯(lián)接性功能要求、聯(lián)接傳輸層和聯(lián)接框架層的任務(wù)和范圍、聯(lián)接框架層和聯(lián)接傳輸層的核心任務(wù)、美國工業(yè)互聯(lián)網(wǎng)聯(lián)盟IIC推薦的聯(lián)接框架層的核心標準。并重點(diǎn)概述作為核心標準之一的數據分發(fā)服務(wù)DDS,及其在德國工業(yè)4.0中應用的適用性。
關(guān)鍵詞:泛在聯(lián)通性;工業(yè)互聯(lián)網(wǎng);核心聯(lián)通標準;數據分發(fā)服務(wù);工業(yè)4.0的通信
Abstract: Ubiquitous connectivity is one of the foundational technologies that enables data sharing among participating components of an Industrial Internet of Things (IIoT) system. Even though there are many proprietary connectivity technologies optimized for a specific domain, the sharing of data, design, architecture, and communication are still obstacles that restricts creating new value streams and unlocking the potential of a global IIoT marketplace.
This paper focused on the main issues of connectivity architecture for IIoT , i.e., the communication model of IIoT, the functional requirements in industrial internet reference architecture, the roles and scope of connectivity transport layer and connectivity framework layer, and the core standards of connectivity framework layer recommended by Industrial Internet Consortium U.S.A.. At last, a brief introduction of DDS(Data Distribution Service), which is one of core connectivity framework layer standards, and a detailed discussion of the applicability of DDS in Industry4.0 are presented.
Key words: Ubiquitous connectivity; Industrial internet; Core connectivity standards; Data distribution service; Communication for industry 4.0
工業(yè)物聯(lián)網(wǎng)IIoT的領(lǐng)導聯(lián)盟由美國工業(yè)互聯(lián)網(wǎng)聯(lián)盟IIC和德國Industrie 4.0(I4.0)平臺組成。IIC建立了一種跨工業(yè)行業(yè)的技術(shù)架構,而工業(yè)4.0著(zhù)重于制造業(yè),但超越了技術(shù)架構,介入了供應鏈和產(chǎn)品生命周期。這些目標和架構都是互補的,而且這兩個(gè)組織正在共同繪制今后工業(yè)4.0和工業(yè)互聯(lián)網(wǎng)之間實(shí)現和發(fā)展可互操作性的設計藍圖,如圖1所示。
圖1 建立工業(yè)4.0和工業(yè)互聯(lián)網(wǎng)間的可互操作性
1 什么是泛在聯(lián)接性?
泛在聯(lián)接性是工業(yè)物聯(lián)網(wǎng)IIoT系統中各種參與組件之間實(shí)現數據共享的一種基礎技術(shù)。聯(lián)接性為聯(lián)接參與者之間,提供功能域內、系統內跨功能域,以及跨系統進(jìn)行數據交換的能力。這些數據交換包括傳感器的數據刷新、事件、報警、狀態(tài)變化、命令以及組態(tài)刷新。簡(jiǎn)言之,聯(lián)接性是跨功能域(由工業(yè)互聯(lián)網(wǎng)參考架構所定義)的橫向交互功能,具體如圖2所示。
圖2 聯(lián)接性是工業(yè)互聯(lián)網(wǎng)各功能域間的橫向交互功能
圖中綠色箭頭:數據/信息流;灰白色箭頭:決策流;紅色箭頭:命令/請求流。功能域有:控制功能域,信息功能域,應用功能域,操作運營(yíng)功能域和業(yè)務(wù)功能域。
目前,IIoT領(lǐng)域中充斥著(zhù)各種各樣的專(zhuān)有聯(lián)接性技術(shù),并且擁有一些在垂直集成系統中針對較小的特定范圍的應用案例及優(yōu)化標準。這聯(lián)接技術(shù)雖然在各自應用范圍內還是相當優(yōu)化的,但是對于建立新的價(jià)值空間,以及打開(kāi)全球的IIoT市場(chǎng)而言,卻在數據共享、設計、架構乃至通信諸方面是一種障礙。IIoT聯(lián)接性的首要目的是要讓這些相互隔離的孤立系統的數據開(kāi)放流動(dòng),使得這些封閉的組件和子系統之間能夠共享數據和實(shí)現可互操作性,以至在各種行業(yè)內和各種跨行業(yè)中的新型和新興的生態(tài)應用,得以形成和發(fā)展。
我們需要建立廣泛領(lǐng)域的IIoT的聯(lián)接性。通過(guò)定義IIoT聯(lián)接性的堆疊模型和開(kāi)放的聯(lián)接性參考架構,使從事IIoT的各個(gè)利益攸關(guān)者,對手頭正在開(kāi)發(fā)和應用的聯(lián)接性技術(shù)的適用性進(jìn)行分類(lèi)、評估和確認。
2 IIoT工業(yè)物聯(lián)網(wǎng)的通信模型
由于歷史發(fā)展的局限,經(jīng)典的開(kāi)放系統互連OSI 7層模型和互聯(lián)網(wǎng)4層模型都不能準確地描述工業(yè)互聯(lián)網(wǎng)聯(lián)接性的要求。毫無(wú)疑問(wèn),IIoT是工業(yè)互聯(lián)網(wǎng)的一個(gè)關(guān)鍵的基礎。IIoT系統要求用一個(gè)新的聯(lián)接性功能層模型來(lái)著(zhù)重表達分布式的傳感器、控制器、網(wǎng)關(guān)、各種設備和器件,以及分布式系統的其它應用組成。當然,這一模型還是以OSI模型和互聯(lián)網(wǎng)模型為參考,按照新的要求提出了聯(lián)網(wǎng)(物理層、鏈路層、網(wǎng)絡(luò )層)、聯(lián)接性(傳輸層、框架層)和信息三大功能共6層的通信模型,又稱(chēng)為IIoT聯(lián)接性堆疊模型,作為工業(yè)互聯(lián)網(wǎng)參考架構IIRA內的橫向交互功能的聯(lián)接性范圍,如圖3所示。
圖3 工業(yè)物聯(lián)網(wǎng)IIoT通信的6層模型
IIoT系統的可互操作性層呈沙漏形狀(見(jiàn)圖4)。其上頂部是一個(gè)寬泛的數據模型譜系,以及針對特定垂直行業(yè)的功能;頸部通常用于跨垂直行業(yè)的互聯(lián)網(wǎng)層。聯(lián)通性提供基本的數據共享機制,支持諸如分布式數據可互操作性和管理這樣的高級功能,作為實(shí)現語(yǔ)法可互操作性(注意:不是語(yǔ)義可互操作性)的橫向交互功能。沙漏頸部是IIoT中“互聯(lián)網(wǎng)”的起點(diǎn)。鑒于頸部上面的聯(lián)接層目前尚沒(méi)有被充分認識和理解,所以,為了構建IIoT系統,要側重考慮和研究“互聯(lián)網(wǎng)”聯(lián)網(wǎng)層上面的聯(lián)接功能。
圖4 IIoT聯(lián)接性堆疊模型
圖5 IIoT系統的聯(lián)接性堆疊模型的功能性
圖5表示IIoT聯(lián)接性堆疊模型,以及聯(lián)接功能性的范圍,作為工業(yè)互聯(lián)網(wǎng)參考架構IIRA中的橫向交互功能。聯(lián)通功能性為IIoT系統中在同一功能域內的參與者之間和在跨功能域的參與者之間,提供數據共享的機制。由圖5可見(jiàn),最底層為物理層,用物理介質(zhì)(有線(xiàn)、無(wú)線(xiàn))連接網(wǎng)絡(luò )的所有參與者,并進(jìn)行以“位”(bit)為特征的物理信號(電信號、光信號或其它)的傳輸。其上為鏈接層,用于相鄰參與者之間共享物理鏈接,并通過(guò)信號傳輸協(xié)議進(jìn)行以“幀”為特征的交換。再上面是網(wǎng)絡(luò )層,進(jìn)行以有限長(cháng)度的“數據包”為特征的交換,可能在非相鄰(遠程)參與者之間進(jìn)行多鏈接路由通信。再往上是傳輸層,是在參與者應用程序之間進(jìn)行不同長(cháng)度的通信報文的通信。其上是框架層,是指為參與者應用程序之間提供可組態(tài)的有服務(wù)質(zhì)量QoS的結構化數據(狀態(tài)、事件、數據流)交換。再上面已超出聯(lián)接的范圍,是分布式數據可互操作性和管理層橫向交互的功能,依賴(lài)于聯(lián)接框架層提供的有具體物理意義的信息共享。
3 工業(yè)互聯(lián)網(wǎng)參考架構中聯(lián)接性功能要求
IIRA中聯(lián)接性在整個(gè)架構中的任務(wù)是支持參與互聯(lián)的系統中各端點(diǎn)之間進(jìn)行數據交換。舉例說(shuō),信息包括傳感器刷新、遠傳數據、控制命令、報警、事件、狀態(tài)變化或組態(tài)更新和按時(shí)間記錄的數據等等?;旧下?lián)接的任務(wù)就是在端點(diǎn)之間提供可互操作的通信,以保證各種組件的集成。不過(guò)聯(lián)接性功能的目標是,為參與聯(lián)接的端點(diǎn)間提供語(yǔ)法的可互操作性。
通信中的可互操作性有不同的抽象級別:從客戶(hù)集成,到基于開(kāi)放型標準的即插即用。按維基百科,可互操作性通常分類(lèi)如下:
技術(shù)可互操作性,是指交換以位和字節表現的信息的能力。這建立在信息交換的基礎結構已經(jīng)存在,同時(shí)以基礎架構下的網(wǎng)絡(luò )和協(xié)議都有明確定義為前提。
語(yǔ)法可互操作性,是指交換以通常的數據結構表現的信息的能力。這建立在已經(jīng)使用構造數據的公用協(xié)議,且以信息交換的結構已經(jīng)明確定義為前提。語(yǔ)法可互操作性必須建立在技術(shù)可互操作性已經(jīng)實(shí)現的基礎上。
語(yǔ)義可互操作性,是指在適當的所給出的信息解釋的上下文條件下(即語(yǔ)境)進(jìn)行交換數據含義的能力。語(yǔ)義可互操作性以語(yǔ)法可互操作性已經(jīng)建立為前提。
4 聯(lián)接傳輸層和聯(lián)接框架層的任務(wù)和范圍
對于IIoT系統,聯(lián)接功能性有兩個(gè)功能層:聯(lián)接傳輸層和聯(lián)接框架層。前者提供端點(diǎn)間傳輸數據的方法和手段;在數據交換中它實(shí)現端點(diǎn)之間的技術(shù)可互操作性。此功能對應于OSI7層模型的第4層傳輸層,或對應于互聯(lián)網(wǎng)模型的傳輸層。聯(lián)接框架層為被交換的數據以共同而明確的數據格式進(jìn)行結構化,且與端點(diǎn)的實(shí)現無(wú)關(guān),與硬件和編程平臺解耦;它提供端點(diǎn)之間實(shí)現語(yǔ)法可互操作性的機制。在此聯(lián)接框架層中,“公共數據結構”是指被交換的數據的結構或模式。例如,我們所熟悉的編程語(yǔ)言中的數據結構和數據庫的模式。聯(lián)接框架的功能對應OSI7層模型中的第5層(會(huì )話(huà)層)至第7層(應用層),或互聯(lián)網(wǎng)模型的應用層。IIoT的聯(lián)接性功能層的任務(wù)和范圍如表1所示。
在分布式數據可互操作性和管理功能中的數據服務(wù)框架,建立在由聯(lián)接框架層提供的語(yǔ)法可互操作性的基礎上;工業(yè)互聯(lián)網(wǎng)參考架構的動(dòng)態(tài)合成和協(xié)調功能,進(jìn)一步要求語(yǔ)義可互操作性。
聯(lián)接框架層在信息交換中為參與的端點(diǎn)提供邏輯數據交換服務(wù)。在此層可觀(guān)察和“理解”數據交換,同時(shí)運用相關(guān)知識來(lái)優(yōu)化數據的傳送。它是位于聯(lián)接傳輸層上部的邏輯功能層,而且并不需要知曉實(shí)現聯(lián)接傳輸層的技術(shù)。聯(lián)接框架層為端點(diǎn)間提供語(yǔ)法可互操作性,所交換的數據其結構化具有共同而明確的數據格式,與端點(diǎn)的實(shí)現無(wú)關(guān),而且與硬件和編程平臺解耦。與端點(diǎn)后面的應用邏輯有關(guān),可能要求一個(gè)或多個(gè)數據交換的模式,其中有兩個(gè)主要的數據交換模式:發(fā)布——訂閱和請求——響應。
聯(lián)接框架層的關(guān)鍵利益是將不同功能的實(shí)現加以抽象和隱藏,這樣在聯(lián)接框架中所使用的應用軟件無(wú)需了解實(shí)現的具體方法,而是直接利用聯(lián)通框架層的功能。這樣既減少了開(kāi)發(fā)成本,又提高了生產(chǎn)能力和質(zhì)量。
表1 IIoT聯(lián)接性功能層的任務(wù)和范圍
5 聯(lián)接框架層和聯(lián)接傳輸層的核心任務(wù)
聯(lián)接框架層的核心功能包括數據資源模型、發(fā)布-訂閱和請求-響應交換機制、數據的服務(wù)質(zhì)量、數據的信息安全和可編程API等。具體如圖6所示。
圖6 聯(lián)接框架層的核心功能
聯(lián)接傳輸層為端點(diǎn)連接提供邏輯傳輸網(wǎng)絡(luò )。聯(lián)接傳輸類(lèi)似一個(gè)在端點(diǎn)之間執行數據流動(dòng)的不透明管道。聯(lián)通傳輸層的關(guān)鍵任務(wù)是為端點(diǎn)之間提供技術(shù)可互操作性。聯(lián)通傳輸的核心功能包括:端點(diǎn)尋址、通信模式、網(wǎng)絡(luò )拓撲、連通性、優(yōu)先管理、時(shí)序和同步,以及消息安全。圖7概述了聯(lián)接傳輸層的核心功能。
圖7 聯(lián)接傳輸層的核心功能
6 聯(lián)接框架層的核心標準
IIoT聯(lián)接框架層標準給出原來(lái)主要是用于相關(guān)垂直行業(yè)的聯(lián)接標準(如oneM2M用于電訊行業(yè), OPC-UA用于制造業(yè)),為那些行業(yè)提供了賦能的技術(shù)特性,也為許多其它行業(yè)提供應用服務(wù)。另外的聯(lián)接標準(例如DDS和互聯(lián)網(wǎng)服務(wù)),原來(lái)是為通用的、非特定行業(yè)的應用服務(wù),顯然也可以用于很多其它行業(yè)的許多不同類(lèi)型的應用服務(wù)。傳輸層是專(zhuān)為框架層服務(wù)的,在框架層與傳輸層之間沒(méi)有任意其它功能空間。
圖8 IIoT系統聯(lián)接性標準
傳輸層與框架層的區別很重要。傳輸層一定要與一種數據類(lèi)型系統相配對,例如MQTT可與一種數據類(lèi)型系統技術(shù)如由Google開(kāi)發(fā)的protocol buffers相配對,同時(shí)可用來(lái)建立一種專(zhuān)用用戶(hù)的聯(lián)接性框架。
顯然,目前可供選用的聯(lián)接性標準沒(méi)有一個(gè)能全面滿(mǎn)足IIoT系統的要求,能夠完成由高速運動(dòng)的機器人生產(chǎn)線(xiàn)、離散制造業(yè)、過(guò)程控制系統等各種類(lèi)型的工業(yè)生產(chǎn)系統和生產(chǎn)管理系統的數據流通和連接,為萬(wàn)物互聯(lián)及人與物互聯(lián)的超大規模系統提供無(wú)懈可擊的聯(lián)接性。為此需要選擇若干個(gè)標準構成核心標準,構成一個(gè)相互補充的聯(lián)接性標準簇。但這個(gè)標準簇又不能超過(guò)3到4個(gè)標準,否則,要為這些標準之間建立核心網(wǎng)關(guān)的數量過(guò)多,而使數據的及時(shí)流動(dòng)和實(shí)時(shí)流動(dòng)變得不切實(shí)際和不可實(shí)現。
圖8概述了IIoT聯(lián)接框架層和傳輸層的核心標準。由圖可知,聯(lián)接框架層的核心標準有4個(gè),其中1個(gè)是源于通用的WEB服務(wù)HTTP;1個(gè)是除美國以外其他國家工業(yè)界很少采用的數據分發(fā)服務(wù)DDS;另外2個(gè)則是來(lái)源于某些垂直行業(yè)的特定應用,但顯然也可以推廣到許多行業(yè),乃至跨行業(yè)的應用,即流行于制造業(yè)的OPCUA和由電信行業(yè)開(kāi)發(fā)、目前主要用于家居自動(dòng)化的oneM2M。DDS和OPCUA定義了自己的傳輸協(xié)議,而Web服務(wù)和oneM2M則依賴(lài)于通用的傳輸協(xié)議。為完整的表達,圖中還示出網(wǎng)絡(luò )IP層和更低的鏈路層和物理層的各種協(xié)議。運用HTTP的Web服務(wù)被稱(chēng)之為專(zhuān)為應用程序使用的聯(lián)接框架,主要用于人類(lèi)用戶(hù)互動(dòng)的接口。
表2 IIoT聯(lián)接性框架核心標準的判據表
選擇核心標準的主要依據共10項,在表2中已清晰概述。其中前5項是必須具備的關(guān)鍵判據,只要有一項不符要求就不能選用。
7 以數據為中心的系統的優(yōu)勢
相對于以平臺為中心或以網(wǎng)絡(luò )為中心的信息管理系統,以數據為中心的信息管理系統,可以在系統資源受到諸多限制(例如通信帶寬受限、聯(lián)接性可能處于時(shí)斷時(shí)續的間歇狀態(tài)、連接存在噪聲、處理和存貯能力有限等),經(jīng)常出現未曾預計的工作流,以及經(jīng)常發(fā)生動(dòng)態(tài)網(wǎng)絡(luò )拓撲和網(wǎng)絡(luò )節點(diǎn)的變化等情況下,仍能盡可能的保持信息管理系統的正常運行。這就是為什么美國國防部的戰術(shù)信息管理系統,在歷經(jīng)以平臺為中心和以網(wǎng)絡(luò )為中心等多種解決方案后,選定以數據為中心的數據分發(fā)服務(wù)DDS,并獲得滿(mǎn)意的運行效果。除了上述原因之外,以平臺為中心的系統一旦發(fā)生小的變化或缺少了任意一種資源,就會(huì )使整個(gè)系統癱瘓;以網(wǎng)絡(luò )為中心的系統本質(zhì)上是一種“事后諸葛亮”的系統,系統小有變化就會(huì )使系統性能顯著(zhù)變差。
用以數據為中心通信傳輸的信息可以進(jìn)一步分類(lèi)為:信號、流和狀態(tài)。信號表示連續變化的數據(例如傳感器的讀數),信號通常進(jìn)行盡最大的努力的發(fā)送。流數據表示數據對象以快速方式記錄的值,而這些值必須在前面同樣以快速方式記錄下來(lái)的那些值的前后關(guān)系或關(guān)連中予以解釋。狀態(tài)表示一組對象(或系統)的狀態(tài),被編成一組數據屬性(或數據結構)的最新值。一個(gè)對象的狀態(tài)并沒(méi)有必要隨任意固定的周期而變化。狀態(tài)的快速變化可能就在一個(gè)長(cháng)時(shí)間間隔沒(méi)有變化之后突然發(fā)生。狀態(tài)數據的訂閱者一般都是關(guān)心最新的狀態(tài)。但是,當狀態(tài)長(cháng)時(shí)間可能沒(méi)有變化時(shí),系統仍需確保最新?tīng)顟B(tài)能可靠地傳送。換句話(huà)說(shuō),若某狀態(tài)值被丟失,不能保證總會(huì )接收到,系統一直等待其值再次發(fā)生變化,直到準確被接收為止。
8 數據分發(fā)服務(wù)DDS簡(jiǎn)述
數據分發(fā)服務(wù)DDS是美國OMG集團管理的一個(gè)基于發(fā)布/訂閱(pub/sub)聯(lián)接性標準。正如圖9所示,它是一個(gè)通過(guò)全局數據的存貯方式,溝通處于高度分散分布的數據發(fā)布和數據訂閱之間的高質(zhì)量傳遞和發(fā)送。
圖9 基于全局數據存貯的數據分發(fā)服務(wù)
創(chuàng )立DDS的關(guān)鍵抽象是全分布的全局數據空間。在DDS規范中,要求實(shí)現全局數據空間必須是全分布式的,以避免引入單點(diǎn)故障或單點(diǎn)瓶頸。全局數據空間執行對發(fā)布者和訂閱者的動(dòng)態(tài)發(fā)現,不依賴(lài)于任意種類(lèi)的集中注冊(有些其它的pub/sub技術(shù)例如JMS,就是如此)。由于發(fā)布者和訂閱者都是可以被動(dòng)態(tài)發(fā)現的,所以它們可在任意點(diǎn)及時(shí)地參加或退出全局數據空間。全局數據空間也可以發(fā)現應用程序所定義的數據類(lèi)型,并且將發(fā)現的這些數據類(lèi)型加以傳送,就如這是發(fā)現過(guò)程的一部分。在本質(zhì)上當我們利用一個(gè)具有自動(dòng)發(fā)現的全局數據空間的系統時(shí),不需要對任何事項進(jìn)行組態(tài)。任意參與者都會(huì )被自動(dòng)發(fā)現,在被發(fā)現的同時(shí),數據也開(kāi)始流動(dòng)。再者,由于全局數據空間是全分布式的,人們不必擔心某個(gè)服務(wù)器引發(fā)的未知原因,會(huì )影響系統的可用性。在DDS系統中不存在單點(diǎn)故障的問(wèn)題,盡管應用程序會(huì )被沖擊和重啟,或者連接/斷開(kāi),系統仍然在連續運行。
由于DDS只規定了兩個(gè)層次(如圖10所示),在制定規范時(shí)充分考慮性能/效率兩者的平衡,且運行開(kāi)銷(xiāo)較少,所以運行高效,性能上佳。對于動(dòng)態(tài)的變化,它通過(guò)元事件(mata-events)進(jìn)行檢測。DDS還按照美國國防部戰術(shù)信息管理系統的要求,規定了QoS的策略。例如,通過(guò)建立約定,可在多系統各層級中精確規定不同的QoS策略,這些策略可以在很大范圍內變化,以適應不同系統、不同層級的通信質(zhì)量保證的要求。DDS還盡可能將處理靠近數據(邊緣計算概念的體現),而不是集中處理。DDS通過(guò)解耦提供靈活、高性能和模塊化的結構:發(fā)布者/訂閱者為匿名的,在通信中它們的位置無(wú)關(guān)緊要;數據的讀取者和寫(xiě)入者的數量可以是任意的,不加限制;在異步、連接斷開(kāi)、對時(shí)間敏感實(shí)時(shí)性要求很高、系統的規模擴充或縮小的情況下,QoS保證分布式數據的可靠分發(fā);不依賴(lài)于平臺和協(xié)議,便于移植,且具有可互操作的特性。
圖10 DDS的架構
在DDS的架構中,處于底層的是以數據為中心的發(fā)布/訂閱層(DCPS),其底層的API應用程序可按所規定的QoS策略,與其它DDS使能的應用程序進(jìn)行主題數據交換。處于上層的數據本地重構層(DLRL),其API定義如何構建本地對象的高速緩沖存貯(cache),使應用程序可以存取主題數據,就如這些數據不在遠程而在本地那樣。DDS規范只定義策略和應用程序與服務(wù)之間的接口,并不考慮實(shí)現服務(wù)的不同參與者的通信協(xié)議和技術(shù)方法;也不關(guān)心DDS內部資源的管理。
2017年數據分發(fā)服務(wù)DDS被IIC選定為工業(yè)物聯(lián)網(wǎng)IIoT應用的聯(lián)接框架核心標準,一般用于控制、工業(yè)應用、信息和操作運行范圍。其主要目的是將組件(設備、網(wǎng)關(guān)或應用程序)與其它組件連接,使之成為實(shí)時(shí)系統和系統中的系統(SoS)。組件互動(dòng)于一個(gè)分享的數據空間,而從不相互直接互動(dòng)。因此也可稱(chēng)為以數據為中心的中間件標準。DDS通過(guò)一關(guān)系數據模型實(shí)現直接的組件-數據-組件的通信。DDS也被稱(chēng)為數據總線(xiàn),因為它模擬數據庫中在移動(dòng)的數據,而數據庫只是管理存儲于其中而非流動(dòng)中的數據。數據庫和數據總線(xiàn)都是實(shí)現以數據為中心的抽象;但它們的應用并不直接相互作用,而是互動(dòng)于基礎結構中。與數據庫不同的是,數據庫將已產(chǎn)生的數據存儲,為以后用所存儲數據的有關(guān)屬性進(jìn)行搜索。而數據總線(xiàn)通過(guò)數據屬性過(guò)濾參與通信的數據,管理正在發(fā)生和將要發(fā)生的數據。以數據為中心使數據庫本質(zhì)上是個(gè)大型的存儲系統;以數據為中心使數據總線(xiàn),已經(jīng)成為IIoT軟件集成和自治運行的一種基本技術(shù)。
類(lèi)似于對存儲數據進(jìn)行存取控制的方法,數據總線(xiàn)用許多同時(shí)發(fā)生的組件控制數據存取和刷新。其核心是DDS圍繞以數據為中心構建了發(fā)布-預訂的數據交換機制。但是標準還定義了請求-應答的數據交換機制。關(guān)鍵的抽象是各個(gè)應用程序使用數據總線(xiàn)本身進(jìn)行互動(dòng),而不是讓?xiě)贸绦蛑苯优c其它的參與應用程序進(jìn)行互動(dòng)。DDS提供精確的以數據為中心的服務(wù)質(zhì)量QoS,包括可靠的多播,可組態(tài)的傳送,多種級別的數據持續時(shí)間,歷史數據,組件和傳輸冗余自動(dòng)發(fā)現,聯(lián)接管理,以及無(wú)須知曉傳輸細節、以數據為中心的傳輸信息安全。此外,一對多、多對一的通信是其很突出的特點(diǎn)。DDS提供有力的方法過(guò)濾和精確選擇什么數據送到哪里,而這個(gè)“哪里”的目標可以是幾千個(gè)同時(shí)發(fā)生的組件。為了支持小的邊緣設備,有一個(gè)輕量級別的DDS版本,可運行在有限制的嵌入式環(huán)境中。DDS數據總線(xiàn)保證超可靠的運行,并且簡(jiǎn)化了用于程序的編碼。它不要求服務(wù),極容易組態(tài)和操作,因而消除了故障點(diǎn)和阻塞點(diǎn)。一個(gè)基于DDS的系統不存在組件之間的應用編碼互動(dòng)。DDS自動(dòng)發(fā)現和連接正在發(fā)布和正在接收的組件,有新的組件(如智能機械)加入系統不必進(jìn)行組態(tài)變更。組件可以自行開(kāi)發(fā),或由獨立的第三方提供。DDS克服了點(diǎn)對點(diǎn)系統存在的問(wèn)題,諸如缺乏可擴展的性能,缺乏可互操作性,以及逐漸演進(jìn)發(fā)展架構的能力。它具有即插即用的簡(jiǎn)單性、可擴展性和特別好的實(shí)時(shí)性能。
概括地說(shuō),通過(guò)DDS的基礎架構(如圖11所示)使得各種不同類(lèi)型的設備、應用程序或路由器相互之間,能夠進(jìn)行由QoS保證的通信。
圖11 DDS的基礎架構
自從2004年OMG采用DDS標準之后,用了不到6年的時(shí)間就成功地確立了在分布式大數據的發(fā)布/訂閱技術(shù)方面不可動(dòng)搖的地位,應用到包括雷達信號處理、無(wú)人機飛行和著(zhù)陸、空中交通控制管理、大規模監控系統、自動(dòng)股票和股票期權交易等多種商業(yè)領(lǐng)域。而且被一些重要的行政管理機構(如美國海軍、美國國防部信息技術(shù)標準注冊機構等)推薦為實(shí)時(shí)數據分發(fā)的技術(shù)方法。此后,由于其靈活性、可靠性以及快速構建復雜系統或實(shí)時(shí)系統,DDS通常用來(lái)進(jìn)行系統集成和構建自治系統??傊?,DDS是一種經(jīng)過(guò)驗證的高可靠、高性能的構建大規??绱怪毙袠I(yè)的IIoT軟件系統的技術(shù)。運用DDS的工業(yè)物聯(lián)網(wǎng)應用包括農田、醫院醫療集團、醫療保險、自動(dòng)駕駛飛機和汽車(chē)、鐵路、資產(chǎn)跟蹤、自動(dòng)測試、智慧城市、通信、數據中心切換、視頻共享、消費電子、石油和天然氣開(kāi)采、廣播電視、空中交通控制、航空電子技術(shù)、SCADA、機器人以及國防。
9 從一個(gè)典型例子看DDS過(guò)濾數據的強大能力
在一個(gè)區域同時(shí)有一萬(wàn)部汽車(chē)在行駛。系統需要捕捉在200m范圍內以10m/s的速度向某一目標運動(dòng)的汽車(chē)的行駛軌跡。在該區域內所有可能路徑均布置有位置傳感器,如果傳感器每秒刷新1000次,要求每刷新5次時(shí)把汽車(chē)的位置發(fā)送給系統。也就是說(shuō),每個(gè)傳感器必須能夠存儲600個(gè)老的采樣值(每秒采集200個(gè)位置數據,連續采集3秒的數據存入傳感器的緩沖存儲區)。假設每秒鐘這10000部汽車(chē)的位置被傳感器檢測1000次,但僅僅有3部汽車(chē)在200米范圍內,那么系統將會(huì )從10000×1000=10000000個(gè)采樣來(lái)發(fā)現3×200=600個(gè)采樣數據。設想為此系統要付出什么樣的代價(jià)。
如果在有一個(gè)應用程序中能精確地接收所關(guān)注的600個(gè)采樣值,而且信息的流量率和可靠性是有保證的,我們只需采用像DDS這樣的的數據總線(xiàn),在源頭上從10×106個(gè)數據中過(guò)濾出600個(gè)符合約束條件的數據,這樣總的數據流減少99.994%。
10 DDS是如何實(shí)現這種高效的數據傳送呢?
由圖12可以知道,DDS通過(guò)主題Topic將發(fā)布者和訂閱者加以連接。主題是:為設定目的而采集的相關(guān)給定數據類(lèi)型的所有“實(shí)例”,用于提供基于內容的訂閱。主題包括主題名和類(lèi)型。主題在域中必須是唯一的。不同的主題可以有相同的類(lèi)型。多主題對應于SQL的join,內容過(guò)濾主題對應于SQL的select??梢哉{用ContentFilteredTopic和MultiTopic,來(lái)控制訂閱的范圍。還可以通過(guò)鑰匙key可進(jìn)一步定義,縮小數據目標,如對需要建模的動(dòng)態(tài)目標(例如跟蹤);還可顯著(zhù)減少系統的規模(見(jiàn)上述過(guò)濾的例子);用于可靠的多送一(即報警主題)。
用另外的一種表述,我們可以理解為,在DDS中主題就是數據由發(fā)布者流向訂閱者的載體,表示一個(gè)信息單元可以被產(chǎn)生或被使用。主題由類(lèi)型、唯一的名稱(chēng)和一組QoS策略三項定義而成,QoS策略用來(lái)控制與主題相關(guān)聯(lián)的非功能特性。主題類(lèi)型可用OMG的IDL(接口描述語(yǔ)言)標準的子集來(lái)表示,它用不支持任意類(lèi)型的限制來(lái)定義struct類(lèi)型。結構的嵌套也是允許的。
圖12 DDS定義的主題、類(lèi)型和鑰匙
在定義主題類(lèi)型中有主題鑰匙,可以選擇一個(gè)或多個(gè)數據元素作為該類(lèi)型的鑰匙。DDS將利用這個(gè)鑰匙對傳入的數據分類(lèi)。通過(guò)規定一個(gè)數據元素作為鑰匙,應用程序可以檢索來(lái)自DDS的數據,使其與一個(gè)特定的鑰匙匹配,或者與一序列鑰匙中的下一個(gè)鑰匙匹配。持有鑰匙將這些數據容器被定義為一個(gè)實(shí)例。鑰匙提供了可擴可縮的特性。如果一個(gè)應用程序有多個(gè)據有相同鑰匙相同主題的發(fā)布者,這使該應用程序提供某個(gè)主題的冗余。通過(guò)設定QoS的參數Ownership和Ownership Strength建立冗余。
11 DDS的QoS策略
DDS通過(guò)設定QoS策略的設定,可在很大范圍內提供非功能特性(如數據的可用性、數據傳送、數據的時(shí)效和資源利用)的明確選擇。圖13給出DDS中可用的QoS設定策略表。對于傳統系統,這些策略控制關(guān)鍵的數據非功能特性;而對于SoS則是絕對必要的。每個(gè)DDS實(shí)體(如一個(gè)主題,數據讀取者和數據寫(xiě)入者等)都可以使用所提供的QoS策略的一個(gè)子集。這些控制端到端特性的策略可考慮作為訂閱匹配的一部分。DDS訂閱要匹配主題類(lèi)型和名稱(chēng),以及匹配由數據讀取者和數據寫(xiě)入者提供/請求的QoS策略。DDS所提供的這種匹配機制確保了端到端的數據類(lèi)型保持一致,同時(shí)也保持了端到端的QoS策略。
圖13 DDS的QoS策略概貌表
以下介紹主要的幾種DDS的QoS策略:數據的可用性(Data availability),數據傳送(Datadelivery),數據的時(shí)效(Data timeliness),資源(Resources)以及組態(tài)(Configuration)。
(1)數據可用性。DDS的數據可用性策略用來(lái)控制域的參與者其使用數據的可用性,在時(shí)間和空間上為應用程序持續解耦;也使得在高度動(dòng)態(tài)的環(huán)境下(其特征是不斷有發(fā)布者/訂閱者加入和退出),這些應用程序還能夠正常運行。(2)數據傳送。DDS提供QoS策略來(lái)控制數據如何傳送,以及發(fā)布者可以如何聲明其對數據刷新的獨有的權利。這些DDS的數據傳送QoS策略控制數據的可靠性和可用性,使得有關(guān)的正確數據能在正確的時(shí)間傳送到正確的目標節點(diǎn)。更靈巧的選擇數據的方法是由DDS提供的內容檢測的方法,允許應用程序可以選擇基于感興趣的或與所需要的內容有關(guān)的信息進(jìn)行傳送。這些QoS策略在SoS(系統的系統)中尤其有用,因為它們可用來(lái)精確而真實(shí)地傳送所要傳送的數據,不僅限制所用的資源的數量,而且還可以通過(guò)獨立的數據流使干擾的程度最小化。(3)數據的時(shí)效。DDS提供QoS策略來(lái)控制分布式數據的時(shí)間特性,有助于以一種適時(shí)的手段確保以任務(wù)為關(guān)鍵(mission-critical)的信息所需要的重構共享運行的場(chǎng)景,還提供控制數據的暫存特性。這些特性在SoS中特別有用,因為這些策略可以用來(lái)定義和控制各種不同的子系統數據交換的需要暫存的時(shí)間,以確保帶寬的優(yōu)化利用。(4)資源。DDS定義QoS策略控制網(wǎng)絡(luò )和計算機的資源能力,來(lái)滿(mǎn)足數據傳送的要求。QoS策略支持不同單元和操作場(chǎng)景構成以網(wǎng)絡(luò )為中心的mission-critical的信息管理。通過(guò)這些QoS策略來(lái)規劃和控制從最低端的嵌入式系統與窄帶寬、且噪聲大的無(wú)線(xiàn)鏈接,到高端的服務(wù)器與高速的光纖鏈接。這些DDS資源QoS策略提供控制就地資源和端到端的資源(諸如存貯空間和網(wǎng)絡(luò )帶寬)。這些特性尤其在SoS中很有用處,因為它們由大型異構的子系統、設備和網(wǎng)絡(luò )鏈接所形成的特征,通常要求通過(guò)減少采樣以及對所用的資源的數量進(jìn)行整體的可控限制。(5)組態(tài)。DDS提供定義和用戶(hù)指定的自動(dòng)引導信息的QoS策略。這些可進(jìn)行組態(tài)的DDS的QoS策略,對在SoS中運行引導和組態(tài)應用提供有用的機制,提供一種組態(tài)信息的完全的分發(fā)方法。
12 DDS在工業(yè)4.0中適用性
在德國工業(yè)4.0的實(shí)踐中,OPC UA在通信中的地位首先獲得了普遍肯定。但僅僅采用OPC UA并不能滿(mǎn)足其全面的聯(lián)通性要求。隨著(zhù)工業(yè)4.0內涵和外延的不斷擴展和豐富,工業(yè)4.0和工業(yè)互聯(lián)網(wǎng)之間的互操作,以及基于價(jià)值的服務(wù),不僅被提上日程,而且在迅速推進(jìn)。于是擴展其聯(lián)通性的工作引起了廣泛重視。2017年與德國和日本工業(yè)界交流時(shí),德國ZVEI協(xié)會(huì )曾提出將DDS和OPC UA納入工業(yè)4.0參考架構模型RAMI4.0中的通信標準(見(jiàn)圖14)。隨后,又有中國臺灣凌華科技(ADLink)收購了美國從事DDS開(kāi)發(fā)應用的VortexTechnologies,在YouTube中討論DDS在工業(yè)4.0中的適用性時(shí)指出了,DDS可以用于RAMI4.0描述的三個(gè)維度。如圖15所示,鑒于DDS著(zhù)重于通信和信息,用于分布式數據的表達和分享,所以在HierarchyLevel這一維度可以用在由控制設備(control device)層級往上到企業(yè)間的連接(connected world)層級;在Life Cycle& Value Stream這一維度,DDS可用于從產(chǎn)品開(kāi)發(fā)的后一階段到產(chǎn)品生產(chǎn)和維護服務(wù)的階段;在由物理世界映射到數字虛擬世界的層級這一維度,可以用在從通信(communication)層級向上到經(jīng)營(yíng)業(yè)務(wù)(business)層級。
圖14 德國ZVEI提出將DDS納入RAMI4.0通信標準
圖15 DDS在RAMI4.0的適用性表達
13 結束語(yǔ)
工業(yè)互聯(lián)網(wǎng)和工業(yè)4.0要將原材料、設備、制造流程、產(chǎn)品、維護服務(wù)和參與全過(guò)程的管理和制造人員等進(jìn)行必要的適時(shí)聯(lián)接,從全局和全周期的視角優(yōu)化生產(chǎn)和服務(wù),就一定要建立強有力的泛在聯(lián)接性。
美國IIC選擇DDS、OPCUA、oneM2M和HTTP作為其聯(lián)接性的核心標準,已在全世界工業(yè)界,尤其在德國,得到積極響應。當然,這一推進(jìn)過(guò)程是長(cháng)期的,優(yōu)勢的顯現也需要很長(cháng)的過(guò)程。目前的現實(shí)是,在工業(yè)物聯(lián)網(wǎng)領(lǐng)域中存在著(zhù)多種專(zhuān)有聯(lián)接性技術(shù),在垂直集成系統中,也有針對一些較小的特定范圍的應用案例及優(yōu)化標準。這些特定范圍的聯(lián)接技術(shù)雖然在各自應用范圍內還是相當優(yōu)化的,但是對于建立新的價(jià)值空間,以及打開(kāi)全球的工業(yè)互聯(lián)網(wǎng)市場(chǎng)來(lái)說(shuō),在數據共享、設計、架構乃至通信諸方面卻是一種障礙。泛在聯(lián)接性的首要目的是要讓這些相互隔離的孤立系統的數據開(kāi)放流動(dòng),使得這些封閉的組件和子系統之間能夠共享數據和實(shí)現可互操作性,以至在各種行業(yè)內和各種跨行業(yè)中的新型和新興的生態(tài)應用得以形成和發(fā)展。所以,泛在聯(lián)接性的核心標準的推進(jìn)是一個(gè)方向性的問(wèn)題。如果不在早期引起重視,任其自行其是,以后再行統一,付出的代價(jià)將是十分巨大的。
作者簡(jiǎn)介:
彭瑜(1938-),男,湖南長(cháng)沙人,教授級高級工程師,畢業(yè)于清華大學(xué)熱能工程系,現任上海工業(yè)自動(dòng)化儀表研究院教授級高工、顧問(wèn),PLCopen中國組織名譽(yù)主席,中國自動(dòng)化學(xué)會(huì )儀表和裝置專(zhuān)委會(huì )名譽(yù)常務(wù)委員,PowerLink中國用戶(hù)協(xié)會(huì )理事長(cháng),工信部智能制造標準化體系建設工作組專(zhuān)家,國家智能制造標準化協(xié)調推進(jìn)組專(zhuān)家咨詢(xún)組專(zhuān)家。迄今為止,已經(jīng)為中國工業(yè)自動(dòng)化技術(shù)的發(fā)展服務(wù)了50多年,涉及流程工業(yè)、離散制造業(yè)等領(lǐng)域的檢測、控制、生產(chǎn)制造、執行管理等多個(gè)方面。自1993年起,因對工業(yè)技術(shù)的突出貢獻獲得國務(wù)院特殊津貼和相關(guān)證書(shū)。
摘自《自動(dòng)化博覽》2018年9月刊