OPC UA Part 1

參考鏈接地址:https://opcfoundation.org/developer-tools/specifications-unified-architecture

1.OPC協(xié)議簡(jiǎn)介

OPC全稱是Object Linking and Embedding(OLE) for Process Control,它的出現(xiàn)為基于Windows的應(yīng)用程序和現(xiàn)場(chǎng)過程控制應(yīng)用建立了橋梁。在過去,為了存取現(xiàn)場(chǎng)設(shè)備的數(shù)據(jù)信息,每一個(gè)應(yīng)用軟件開發(fā)商都需要編寫專用的接口函數(shù)。由于現(xiàn)場(chǎng)設(shè)備的種類繁多,且產(chǎn)品的不斷升級(jí),往往給用戶和軟件開發(fā)商帶來了巨大的工作負(fù)擔(dān)。通常這樣也不能滿足工作的實(shí)際需要,系統(tǒng)集成商和開發(fā)商急切需要一種具有高效性、可靠性、開放性、可互操作性的即插即用的設(shè)備驅(qū)動(dòng)程序。在這種情況下,OPC標(biāo)準(zhǔn)應(yīng)運(yùn)而生。OPC標(biāo)準(zhǔn)以微軟的OLE技術(shù)為基礎(chǔ),它的制定是通過提供一套標(biāo)準(zhǔn)的OLE/COM接口完成的,在OPC技術(shù)中使用的是OLE 2技術(shù),OLE標(biāo)準(zhǔn)允許多臺(tái)微機(jī)之間交換文檔、圖形等對(duì)象.

COM是Component Object Model的縮寫,是所有OLE機(jī)制的基礎(chǔ)。COM是一種為了實(shí)現(xiàn)與編程語言無關(guān)的對(duì)象而制定的標(biāo)準(zhǔn),該標(biāo)準(zhǔn)將Windows下的對(duì)象定義為獨(dú)立單元,可不受程序限制地訪問這些單元。這種標(biāo)準(zhǔn)可以使兩個(gè)應(yīng)用程序通過對(duì)象化接口通訊,而不需要知道對(duì)方是如何創(chuàng)建的。例如,用戶可以使用C++語言創(chuàng)建一個(gè)Windows對(duì)象,它支持一個(gè)接口,通過該接口,用戶可以訪問該對(duì)象提供的各種功能,用戶可以使用Visual Basic,C,Pascal,Smalltalk或其它語言編寫對(duì)象訪問程序。在Windows NT4.0操作系統(tǒng)下,COM規(guī)范擴(kuò)展到可訪問本機(jī)以外的其它對(duì)象,一個(gè)應(yīng)用程序所使用的對(duì)象可分布在網(wǎng)絡(luò)上,COM的這個(gè)擴(kuò)展被稱為DCOM(Distributed COM)。

通過DCOM技術(shù)和OPC標(biāo)準(zhǔn),完全可以創(chuàng)建一個(gè)開放的、可互操作的控制系統(tǒng)軟件。OPC采用客戶/服務(wù)器模式,把開發(fā)訪問接口的任務(wù)放在硬件生產(chǎn)廠家或第三方廠家,以O(shè)PC服務(wù)器的形式提供給用戶,解決了軟、硬件廠商的矛盾,完成了系統(tǒng)的集成,提高了系統(tǒng)的開放性和可互操作性。OPC服務(wù)器通常支持兩種類型的訪問接口,它們分別為不同的編程語言環(huán)境提供訪問機(jī)制。這兩種接口是:自動(dòng)化接口(Automation interface);自定義接口(Custom interface)。

自動(dòng)化接口通常是為基于腳本編程語言而定義的標(biāo)準(zhǔn)接口,可以使用VisualBasic、Delphi、PowerBuilder等編程語言開發(fā)OPC服務(wù)器的客戶應(yīng)用.

自定義接口是專門為C++等高級(jí)編程語言而制定的標(biāo)準(zhǔn)接口.

1、在控制領(lǐng)域中,系統(tǒng)往往由分散的各子系統(tǒng)構(gòu)成;并且各子系統(tǒng)往往采用不同廠家的設(shè)備和方案。用戶需要,將這些子系統(tǒng)集成,并架構(gòu)統(tǒng)一的實(shí)時(shí)監(jiān)控系統(tǒng)。

2、這樣的實(shí)時(shí)監(jiān)控系統(tǒng)需要解決分散子系統(tǒng)間的數(shù)據(jù)共享,各子系統(tǒng)需要統(tǒng)一協(xié)調(diào)相應(yīng)控制指令。

3、再考慮到實(shí)時(shí)監(jiān)控系統(tǒng)往往需要升級(jí)和調(diào)整。

4、就需要各子系統(tǒng)具備統(tǒng)一的開放接口。

5、OPC(OLE for Process Control) 規(guī)范正是這一思維的產(chǎn)物。

6、OPC 基于Microsoft公司的 Distributed interNet Application (DNA) 構(gòu)架和 Component Object Model (COM) 技術(shù)的,根據(jù)易于擴(kuò)展性而設(shè)計(jì)的。OPC規(guī)范定義了一個(gè)工業(yè)標(biāo)準(zhǔn)接口。

7、OPC是以O(shè)LE/COM機(jī)制作為應(yīng)用程序的通訊標(biāo)準(zhǔn)。OLE/COM是一種客戶/服務(wù)器模式,具有語言無關(guān)性、代碼重用性、易于集成性等優(yōu)點(diǎn)。OPC規(guī)范了接口函數(shù),不管現(xiàn)場(chǎng)設(shè)備以何種形式存在,客戶都以統(tǒng)一的方式去訪問,從而保證軟件對(duì)客戶的透明性,使得用戶完全從低層的開發(fā)中脫離出來。

8、OPC定義了一個(gè)開放的接口,在這個(gè)接口上,基于PC的軟件組件能交換數(shù)據(jù)。它是基于Windows的OLE——對(duì)象鏈接和嵌入、COM——部件對(duì)象模型(Component Object Model)和DCOM——分布式COM(Distributed COM)技術(shù)。因而,OPC為自動(dòng)化層的典型現(xiàn)場(chǎng)設(shè)備連接工業(yè)應(yīng)用程序和辦公室程序提供了一個(gè)理想的方法。

OPC是為了連接數(shù)據(jù)源(OPC服務(wù)器)和數(shù)據(jù)的使用者(OPC應(yīng)用程序)之間的軟件接口標(biāo)準(zhǔn)。數(shù)據(jù)源可以是PLC,DCS,條形碼讀取器等控制設(shè)備。隨控制系統(tǒng)構(gòu)成的不同,作為數(shù)據(jù)源的OPC服務(wù)器既可以是和OPC應(yīng)用程序在同一臺(tái)計(jì)算機(jī)上運(yùn)行的本地OPC服務(wù)器,也可以是在另外的計(jì)算機(jī)上運(yùn)行的遠(yuǎn)程OPC服務(wù)器。OPC接口既適用于通過網(wǎng)絡(luò)把最下層的控制設(shè)備的原始數(shù)據(jù)提供給作為數(shù)據(jù)的使用者(OPC應(yīng)用程序)的HMI(硬件監(jiān)督接口)/SCADA(監(jiān)督控制與數(shù)據(jù)采集),批處理等自動(dòng)化程序,以至更上層的歷史數(shù)據(jù)庫(kù)等應(yīng)用程序,也適用于應(yīng)用程序和物理設(shè)備的直接連接。所以O(shè)PC接口是適用于很多系統(tǒng)的具有高厚度柔軟性的接口標(biāo)準(zhǔn)。

2 OPC協(xié)議有關(guān)定義

2.1 OPC UA條款

2.1.1 AddressSpace

OPC UA服務(wù)器使其客戶端可見的信息集合。[UA Part 3]

2.1.2 Alarm

與通常需要確認(rèn)的狀態(tài)條件相關(guān)聯(lián)的事件類型。[UA Part 9]

2.1.3 Attribute

節(jié)點(diǎn)的基本特征。所有屬性都是由OPC UA定義的,并且可能不是由客戶機(jī)或服務(wù)器定義的。屬性是AddressSpace中惟一允許具有數(shù)據(jù)值的元素。

2.1.4 Certificate

描述客戶機(jī)或服務(wù)器功能的數(shù)字簽名數(shù)據(jù)結(jié)構(gòu)。

2.1.5 Client

一種軟件應(yīng)用程序,它將消息發(fā)送到符合本規(guī)范集中指定的服務(wù)的OPC UA服務(wù)器。

2.1.6 Communication Stack

應(yīng)用程序和硬件之間的一組分層軟件模塊,提供各種功能來編碼、加密和格式化發(fā)送的消息,以及解碼、解密和解壓接收到的消息。

2.1.7 Complex Data

由元素或多個(gè)基本數(shù)據(jù)類型(如結(jié)構(gòu))組成的數(shù)據(jù)。

2.1.8 Event

一種通用術(shù)語,用于描述在系統(tǒng)或系統(tǒng)組件中發(fā)生的具有某種意義的事件。

2.1.9?EventNotifier

節(jié)點(diǎn)的一種特殊屬性,表示客戶機(jī)可以訂閱該特定節(jié)點(diǎn)以接收事件發(fā)生的通知.

2.1.10 Information Model

一種組織框架,定義、描述和關(guān)聯(lián)給定系統(tǒng)或一組系統(tǒng)的信息資源。核心地址空間模型支持地址空間中信息模型的表示。[UA Part 5]。

2.1.11 Message

客戶端和服務(wù)器之間傳輸?shù)臄?shù)據(jù)單元,表示特定的服務(wù)請(qǐng)求或響應(yīng)。

2.1.12 Method

一個(gè)可調(diào)用的軟件功能。

2.1.13 MonitoredItem?

服務(wù)器中客戶端定義的實(shí)體,用于監(jiān)視屬性或事件通知程序的新值或事件發(fā)生,并為它們生成通知.

2.1.14 Node

地址簿的基本組成部分。

2.1.15 nodeclass

地址空間中節(jié)點(diǎn)的類。nodeclass為OPC UA對(duì)象模型的組件定義元數(shù)據(jù)。它們還定義了用于組織AddressSpace的結(jié)構(gòu),比如視圖.

2.1.16 Notification

數(shù)據(jù)的通用術(shù)語,用于宣布檢測(cè)事件或更改的屬性值。通知以NotificationMessages的形式發(fā)送。

2.1.17?NotificationMessage

從包含一個(gè)或多個(gè)通知的訂閱中發(fā)布的消息。

2.1.18 Object

表示系統(tǒng)的物理或抽象元素的節(jié)點(diǎn)。對(duì)象使用OPC UA對(duì)象模型建模。系統(tǒng)、子系統(tǒng)和設(shè)備就是對(duì)象的例子。對(duì)象可以定義為ObjectType的實(shí)例。

2.1.19 Object Instance

對(duì)象的同義詞。并非所有對(duì)象都由ObjectTypes定義。

2.1.20 ObjectType

表示Objec類型定義的節(jié)點(diǎn)。

2.1.21 profile

在[UA第7部分]中定義的一組特定功能,服務(wù)器可以對(duì)其聲明一致性。每個(gè)服務(wù)器可以聲明多個(gè)配置文件的一致性。

2.1.22 Program

一個(gè)可執(zhí)行對(duì)象,當(dāng)被調(diào)用時(shí),立即返回一個(gè)響應(yīng),以指示執(zhí)行已經(jīng)開始,然后通過調(diào)用期間客戶端標(biāo)識(shí)的訂閱返回中間結(jié)果和最終結(jié)果。

2.1.23 Reference

從一個(gè)節(jié)點(diǎn)到另一個(gè)節(jié)點(diǎn)的顯式關(guān)系(命名指針)。包含引用的節(jié)點(diǎn)是源節(jié)點(diǎn),引用的節(jié)點(diǎn)是目標(biāo)節(jié)點(diǎn)。所有引用都由ReferenceTypes定義。

2.1.24 ReferenceType

從一個(gè)節(jié)點(diǎn)到另一個(gè)節(jié)點(diǎn)的顯式關(guān)系(命名指針)。包含引用的節(jié)點(diǎn)是源節(jié)點(diǎn),引用的節(jié)點(diǎn)是目標(biāo)節(jié)點(diǎn)。所有引用都由ReferenceTypes定義。

2.1.25?RootNode?

層次結(jié)構(gòu)的開始或頂部節(jié)點(diǎn)。OPC UA地址空間的根節(jié)點(diǎn)在[UA Part 5]中定義。

2.1.26?Server?

實(shí)現(xiàn)并公開在這組規(guī)范中指定的服務(wù)的軟件應(yīng)用程序.

2.1.27?Service?

在OPC UA服務(wù)器中可調(diào)用的客戶端操作。服務(wù)在[UA第4部分]中定義。服務(wù)類似于編程語言中的方法調(diào)用或Web服務(wù)WSDL契約中的操作。

2.1.28?Service Set?

一組相關(guān)服務(wù)。

2.1.29 ?Session?

客戶機(jī)和服務(wù)器之間的邏輯長(zhǎng)時(shí)間運(yùn)行的連接。會(huì)話維護(hù)從客戶機(jī)到服務(wù)器的服務(wù)調(diào)用之間的狀態(tài)信息。

2.1.30?Subscription?

服務(wù)器中客戶端定義的端點(diǎn),用于向客戶端返回通知。泛型術(shù)語,描述客戶端選擇的一組節(jié)點(diǎn)(1),服務(wù)器定期監(jiān)視這些節(jié)點(diǎn)以確定是否存在某些條件;(2)當(dāng)檢測(cè)到條件時(shí),服務(wù)器向客戶端發(fā)送通知。

2.1.31?Variable?

變量是包含值的節(jié)點(diǎn).

2.1.32?View?

客戶端感興趣的地址空間的特定子集


2.2?縮寫詞和符號(hào)

A&E ? ? ? ? ? ? ? ? ? Alarms and Events

API ? ? ? ? ? ? ? ? ?? 應(yīng)用程序接口

COM ? ? ? ? ? ? ? ? 組件對(duì)象模型

DA ? ? ? ? ? ? ? ? ? ? 數(shù)據(jù)存取

DX ? ? ? ? ? ? ? ? ? ? 數(shù)據(jù)交換

HDA ? ? ? ? ? ? ? ?? 歷史數(shù)據(jù)存取

HMI ? ? ? ? ? ? ? ? ? 人機(jī)界面

MES ? ? ? ? ? ? ? ? ?可集成制造執(zhí)行系統(tǒng)

PLC ? ? ? ? ? ? ? ? ??可編程序邏輯控制器

SCADA ? ? ? ? ? ?? 數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)

SOAP ? ? ? ? ? ? ?? 簡(jiǎn)單對(duì)象訪問協(xié)議

UA ? ? ? ? ? ? ? ? ? ?? 統(tǒng)一架構(gòu)

UML ? ? ? ? ? ? ? ? ? ?統(tǒng)一建模語言

WSDL ? ? ? ? ? ? ? ?服務(wù)描述語言

XML ? ? ? ? ? ? ? ? ?可擴(kuò)展的標(biāo)記語言


3.OPC UA體系結(jié)構(gòu)

3.1 規(guī)范組織

該規(guī)范被組織為一個(gè)多部分規(guī)范,如圖1所示。

圖1

前七個(gè)部分指定了OPC UA的核心功能。這些核心功能定義了OPC地址空間的結(jié)構(gòu)以及在其上運(yùn)行的服務(wù)。第8部分到第11部分將這些核心功能應(yīng)用于以前由單獨(dú)的OPC COM規(guī)范處理的特定類型的訪問,如數(shù)據(jù)訪問(DA)、警報(bào)和事件(A&E)以及歷史數(shù)據(jù)訪問(HDA)。

3.2 ?Core Specification Part

3.2.1?Part 1 – OPC UA Concepts?

本規(guī)范描述了適用于OPC UA服務(wù)器和客戶機(jī)的概念.

3.2.2 ?Part 2 – OPC UA Security Model?

[UA Part 2]描述了用于保護(hù)OPC UA客戶機(jī)和OPC UA服務(wù)器之間交互的模型

3.2.3?Part 3 – OPC UA Address Space Model

[UA Part 3]描述了服務(wù)器地址空間的內(nèi)容和結(jié)構(gòu)。

3.2.4 ?Part 4 – OPC UA Services?

[UA Part 4]指定OPC UA服務(wù)器提供的服務(wù)。

3.2.5?Part 5 – OPC UA Information Model?

[UA Part 5]指定為OPC UA服務(wù)器定義的標(biāo)準(zhǔn)類型及其關(guān)系。

3.2.6?Part 6 – OPC UA Service Mapping

[UA Part 6]指定OPC UA支持的傳輸映射和數(shù)據(jù)編碼。

3.2.7?Part 7 – OPC UA Profiles?

[UA Part 7]指定OPC客戶機(jī)和服務(wù)器可用的概要文件。這些概要文件提供了可用于一致性級(jí)別認(rèn)證的服務(wù)或功能組。服務(wù)器和客戶機(jī)將根據(jù)概要文件進(jìn)行測(cè)試。

3.3?Access Type Specification Parts?

3.3.1 Part 8 – OPC UA Data Access?

[UA Part 8]指定使用OPC UA進(jìn)行數(shù)據(jù)訪問

3.3.2 Part 9 – OPC UA Alarms and Conditions

[UA Part 9]指定使用OPC UA支持訪問警報(bào)和條件。基本系統(tǒng)包括對(duì)簡(jiǎn)單事件的支持;該規(guī)范擴(kuò)展了這種支持,包括對(duì)警報(bào)和條件的支持。

3.3.3 Part 10 – OPC UA Programs

[UA Part 10]指定了對(duì)程序訪問的OPC UA支持。

3.3.4?Part 11 – OPC UA Historical Access?

[UA Part 11]指定使用OPC UA進(jìn)行歷史訪問。這種訪問包括歷史數(shù)據(jù)和歷史事件。


4. 綜述

4.1 介紹

OPC統(tǒng)一架構(gòu)(UA)是一種平臺(tái)無關(guān)的標(biāo)準(zhǔn),通過它,各種系統(tǒng)和設(shè)備可以通過各種類型的網(wǎng)絡(luò)在客戶機(jī)和服務(wù)器之間發(fā)送消息進(jìn)行通信。它支持健壯、安全的通信,確??蛻舳撕头?wù)器的身份,并抵御攻擊。OPC UA定義了服務(wù)器可能提供的標(biāo)準(zhǔn)服務(wù)集,各個(gè)服務(wù)器向客戶機(jī)指定它們支持哪些服務(wù)集。信息使用標(biāo)準(zhǔn)和供應(yīng)商定義的數(shù)據(jù)類型來傳遞,服務(wù)器定義了客戶端可以動(dòng)態(tài)發(fā)現(xiàn)的對(duì)象模型。服務(wù)器可以提供對(duì)當(dāng)前和歷史數(shù)據(jù)的訪問,還可以提供警報(bào)和事件來通知客戶端重要的更改。OPC UA可以映射到各種通信協(xié)議上,數(shù)據(jù)可以以各種方式編碼,以權(quán)衡可移植性和效率。

4.2 設(shè)計(jì)目標(biāo)

OPC UA提供了一致的、集成的地址空間和服務(wù)模型。這允許單個(gè)OPC UA服務(wù)器將數(shù)據(jù)、警報(bào)、事件和歷史集成到其地址空間中,并使用一組集成的服務(wù)提供對(duì)它們的訪問。這些服務(wù)還包括一個(gè)集成的安全模型。

這允許使用標(biāo)準(zhǔn)信息模型來描述AddressSpace的內(nèi)容。OPC UA允許以多種不同的格式公開數(shù)據(jù),包括二進(jìn)制結(jié)構(gòu)和XML文檔。數(shù)據(jù)的格式可以由OPC、其他標(biāo)準(zhǔn)組織或供應(yīng)商定義。通過AddressSpace,客戶機(jī)可以向服務(wù)器查詢描述數(shù)據(jù)格式的元數(shù)據(jù)。在許多情況下,沒有預(yù)先編程的數(shù)據(jù)格式知識(shí)的客戶機(jī)將能夠在運(yùn)行時(shí)確定格式并正確地利用數(shù)據(jù)。

通過這種方式,OPC UA服務(wù)器可以在各種層次結(jié)構(gòu)中顯示數(shù)據(jù),這些層次結(jié)構(gòu)根據(jù)一組客戶機(jī)通常希望查看數(shù)據(jù)的方式進(jìn)行定制。這種靈活性,加上對(duì)類型定義的支持,使得OPC UA適用于廣泛的問題領(lǐng)域。如下圖所示,OPC UA不僅針對(duì)遙測(cè)服務(wù)器接口,而且還作為一種在更高級(jí)別的功能之間提供更大互操作性的方法。

圖2

所有OPC服務(wù)器的一個(gè)主要特性是能夠發(fā)布數(shù)據(jù)和事件通知。OPC UA為客戶端提供了一種機(jī)制,可以快速檢測(cè)和從與這些傳輸相關(guān)的通信故障中恢復(fù),而不必等待底層協(xié)議提供的長(zhǎng)時(shí)間超時(shí).

這些服務(wù)器的特點(diǎn)是具有廣泛的規(guī)模、性能、執(zhí)行平臺(tái)和功能功能。因此,OPC UA定義了一組全面的功能,服務(wù)器可以實(shí)現(xiàn)這些功能的子集。為了促進(jìn)互操作性,OPC UA定義了標(biāo)準(zhǔn)子集,稱為概要文件,服務(wù)器可以聲明對(duì)這些子集的一致性。然后,客戶端可以發(fā)現(xiàn)服務(wù)器的概要文件,并根據(jù)概要文件定制與該服務(wù)器的交互。概要文件在[UA第7部分]中定義。

這使得OPC UA可以根據(jù)需要映射到未來的技術(shù),而不需要否定基本的設(shè)計(jì)。映射和數(shù)據(jù)編碼在[UA第6部分]中進(jìn)行了描述。本部分定義了兩種數(shù)據(jù)編碼:

(1)XML/text

(2)UA Binary

此外,本部分定義了兩個(gè)傳輸映射:

(1)TCP

(2)SOAP Web services over HTTP?

支持多種傳輸和編碼的客戶機(jī)和服務(wù)器將允許最終用戶在部署時(shí)對(duì)性能和XML Web服務(wù)兼容性之間的權(quán)衡做出決策,而不是由OPC供應(yīng)商在產(chǎn)品定義時(shí)決定這些權(quán)衡。

OPC UA被設(shè)計(jì)為基于Microsoft COM技術(shù)的OPC客戶機(jī)和服務(wù)器的遷移路徑。在OPC-UA的設(shè)計(jì)上已經(jīng)很小心了,這樣OPC COM服務(wù)器(DA、HDA和A&E)公開的現(xiàn)有數(shù)據(jù)可以很容易地通過OPC UA映射和公開。供應(yīng)商可以選擇將其產(chǎn)品本地遷移到OPC UA,或者使用外部包裝器將OPC COM轉(zhuǎn)換為OPC UA,反之亦然。之前的每個(gè)OPC規(guī)范都定義了自己的地址空間模型和自己的服務(wù)集。OPC UA使用一組服務(wù)將以前的模型統(tǒng)一到一個(gè)集成的地址空間中。

4.3?綜合模型及服務(wù)

4.3.1?Security model

4.3.1.1 General

OPC UA安全性涉及客戶機(jī)和服務(wù)器的身份驗(yàn)證、用戶的身份驗(yàn)證、通信的完整性和機(jī)密性,以及功能聲明的可驗(yàn)證性。它沒有指定需要各種安全機(jī)制的情況。該規(guī)范是至關(guān)重要的,但是它是由給定站點(diǎn)上的系統(tǒng)設(shè)計(jì)人員制定的,并且可以由其他標(biāo)準(zhǔn)指定.

相反,OPC UA提供了在[UA第2部分]中定義的安全模型,其中可以選擇和配置安全措施來滿足給定安裝的安全需求。該模型包括標(biāo)準(zhǔn)的安全機(jī)制和參數(shù)。在某些情況下,定義了交換安全參數(shù)的機(jī)制,但沒有定義應(yīng)用程序使用這些參數(shù)的方式。這個(gè)框架還定義了所有UA服務(wù)器都必須支持的最小安全概要文件集,即使它們不能在所有安裝中使用。安全概要文件在[UA第7部分]中定義。

4.3.1.2?Session establishment?

應(yīng)用程序級(jí)安全性依賴于一個(gè)安全的通信通道,該通道在應(yīng)用程序會(huì)話期間處于活動(dòng)狀態(tài),并確保交換的所有消息的完整性。這意味著只需要在建立應(yīng)用程序會(huì)話時(shí)對(duì)用戶進(jìn)行一次身份驗(yàn)證。建立安全通信通道和應(yīng)用程序會(huì)話的機(jī)制見[UA Part 4]和[UA Part 6]。

在建立會(huì)話時(shí),客戶機(jī)和服務(wù)器應(yīng)用程序協(xié)商一個(gè)安全的通信通道,并交換軟件證書,這些證書標(biāo)識(shí)客戶機(jī)和服務(wù)器及其提供的功能。OPC基金會(huì)生成的軟件證書表明應(yīng)用程序?qū)崿F(xiàn)的OPC UA概要文件和每個(gè)概要文件達(dá)到的OPC UA認(rèn)證級(jí)別。每個(gè)概要文件和證書的詳細(xì)信息在[UA Part 7]中指定。其他組織頒發(fā)的證書也可以在會(huì)議設(shè)立期間交換。

服務(wù)器進(jìn)一步對(duì)用戶進(jìn)行身份驗(yàn)證,并授權(quán)后續(xù)請(qǐng)求訪問服務(wù)器中的對(duì)象。OPC UA規(guī)范沒有指定諸如訪問控制列表之類的授權(quán)機(jī)制。它們是特定于應(yīng)用程序或系統(tǒng)的。

4.3.1.3?Auditing?

用戶級(jí)安全性包括對(duì)安全審計(jì)跟蹤的支持,以及客戶機(jī)和服務(wù)器審計(jì)日志之間的可跟蹤性。如果在服務(wù)器上檢測(cè)到與安全性相關(guān)的問題,則可以定位和檢查關(guān)聯(lián)的客戶機(jī)審計(jì)日志條目。OPC UA還為服務(wù)器提供了生成事件通知的功能,該事件通知向能夠處理和記錄可審計(jì)事件的客戶機(jī)報(bào)告可審計(jì)事件。OPC UA定義了可以包含在審計(jì)日志條目和審計(jì)事件通知中的標(biāo)準(zhǔn)安全審計(jì)參數(shù)。[UA Part 5]定義了這些參數(shù)的數(shù)據(jù)類型。并非所有服務(wù)器和客戶端都提供所有審計(jì)功能。在[UA Part 7]中找到的概要文件指出支持哪些特性。

4.3.1.4 Transport security

OPC UA安全補(bǔ)充了大多數(shù)支持web服務(wù)的平臺(tái)所提供的安全基礎(chǔ)設(shè)施。

傳輸級(jí)別安全性可用于對(duì)消息進(jìn)行加密和簽名。加密和簽名可以防止信息泄露,并保護(hù)消息的完整性。加密功能由用于在OPC UA應(yīng)用程序之間交換消息的底層通信技術(shù)提供。[UA Part 7]定義了用于給定概要文件的加密和簽名算法。

4.3.2?Integrated AddressSpace model?

OPC UA安全補(bǔ)充了大多數(shù)支持web服務(wù)的平臺(tái)所提供的安全基礎(chǔ)設(shè)施。

傳輸級(jí)別安全性可用于對(duì)消息進(jìn)行加密和簽名。加密和簽名可以防止信息泄露,并保護(hù)消息的完整性。加密功能由用于在OPC UA應(yīng)用程序之間交換消息的底層通信技術(shù)提供。[UA Part 7]定義了用于給定概要文件的加密和簽名算法。

AddressSpace中的節(jié)點(diǎn)根據(jù)它們的用途和含義進(jìn)行類型化。nodeclass為OPC UA地址空間定義元數(shù)據(jù)。[UA Part 3]定義OPC UA nodeclass。?

基本NodeClass定義了所有節(jié)點(diǎn)共有的屬性,允許標(biāo)識(shí)、分類和命名。每個(gè)NodeClass都繼承這些屬性,并且可以額外定義自己的屬性。?

為了促進(jìn)客戶端和服務(wù)器之間的互操作性,OPC UA地址空間是分層結(jié)構(gòu)的,所有服務(wù)器的頂層都是標(biāo)準(zhǔn)化的。雖然AddressSpace中的節(jié)點(diǎn)通常可以通過層次結(jié)構(gòu)訪問,但它們可能彼此有引用,從而允許AddressSpace表示一個(gè)相互關(guān)聯(lián)的節(jié)點(diǎn)網(wǎng)絡(luò)。地址空間的模型在[UA Part 3]中定義。

OPC UA服務(wù)器可以將AddressSpace子集化為視圖,以簡(jiǎn)化客戶機(jī)訪問。第5.3.3.3條更詳細(xì)地描述了AddressSpace視圖。

4.3.3?Integrated object model?

OPC UA對(duì)象模型為表示地址空間中的對(duì)象提供了一組一致的、集成的nodeclass。該模型根據(jù)對(duì)象的變量、事件和方法以及它們與其他對(duì)象的關(guān)系來表示對(duì)象。[UA第3部分]描述了這個(gè)模型。?

OPC UA對(duì)象模型允許服務(wù)器為對(duì)象及其組件提供類型定義。類型定義可以子類化。它們也可能是標(biāo)準(zhǔn)化的,或者是特定于系統(tǒng)的。對(duì)象類型可以由OPC基金會(huì)、其他標(biāo)準(zhǔn)組織、供應(yīng)商或最終用戶定義。

該模型允許將數(shù)據(jù)、警報(bào)和事件及其歷史集成到一個(gè)OPC UA服務(wù)器中。例如,OPC UA服務(wù)器能夠?qū)囟茸兯推鞅硎緸橐粋€(gè)對(duì)象,該對(duì)象由一個(gè)溫度值、一組報(bào)警參數(shù)和一組相應(yīng)的報(bào)警限制組成。

4.3.4?Integrated services

OPC UA客戶機(jī)和服務(wù)器之間的接口被定義為一組服務(wù)。這些服務(wù)被組織成稱為服務(wù)集的邏輯分組。服務(wù)集在第7條中討論,并在[UA Part 4]中指定。

OPC UA服務(wù)為客戶端提供兩種功能。它們?cè)试S客戶機(jī)向服務(wù)器發(fā)出請(qǐng)求并從服務(wù)器接收響應(yīng)。它們還允許客戶端訂閱服務(wù)器以獲取通知。服務(wù)器使用通知來報(bào)告發(fā)生的事件,如警報(bào)、數(shù)據(jù)值更改、事件和程序執(zhí)行結(jié)果。?

為了提高效率,OPC UA消息可以編碼為XML文本或二進(jìn)制格式。它們可以使用多種底層傳輸傳輸,例如TCP或HTTP上的web服務(wù)。服務(wù)器可以根據(jù)[UA Part 7]的定義提供不同的編碼和傳輸。

4.4?Sessions?

OPC UA需要一個(gè)有狀態(tài)模型。狀態(tài)信息在應(yīng)用程序會(huì)話中維護(hù)。狀態(tài)信息的示例包括跨多個(gè)請(qǐng)求的操作的訂閱、用戶憑證和延續(xù)點(diǎn)。

會(huì)話被定義為客戶機(jī)和服務(wù)器之間的邏輯連接。服務(wù)器可以根據(jù)資源可用性、許可限制或其他限制限制并發(fā)會(huì)話的數(shù)量。每個(gè)會(huì)話都獨(dú)立于底層通信協(xié)議。這些協(xié)議的失敗不會(huì)自動(dòng)導(dǎo)致會(huì)話終止。會(huì)話根據(jù)客戶機(jī)或服務(wù)器請(qǐng)求或客戶機(jī)的不活動(dòng)而終止。不活動(dòng)時(shí)間間隔在會(huì)話建立期間協(xié)商。

4.5?Redundancy

OPC UA的設(shè)計(jì)確保供應(yīng)商能夠以一致的方式創(chuàng)建冗余客戶機(jī)和冗余服務(wù)器。冗余可用于高可用性、容錯(cuò)和負(fù)載平衡。冗余的詳細(xì)信息可以在[UA Part 4]中找到。只有一些概要文件[UA Part 7]需要冗余支持,但不需要基本概要文件。

5. 系統(tǒng)概念

5.1 綜述

OPC UA系統(tǒng)架構(gòu)將OPC UA客戶機(jī)和服務(wù)器建模為交互伙伴。每個(gè)系統(tǒng)可以包含多個(gè)客戶機(jī)和服務(wù)器。每個(gè)客戶機(jī)可以與一個(gè)或多個(gè)服務(wù)器并發(fā)交互,并且每個(gè)服務(wù)器可以與一個(gè)或多個(gè)客戶機(jī)并發(fā)交互。應(yīng)用程序可以結(jié)合服務(wù)器和客戶端組件,以允許與其他服務(wù)器和客戶端交互,如第5.3.6條所述。

OPC UA客戶機(jī)和服務(wù)器將在下面的子句中描述。圖3說明了包含組合服務(wù)器和客戶機(jī)的體系結(jié)構(gòu)。

圖3

5.2?OPC UA Clients

OPC UA客戶機(jī)體系結(jié)構(gòu)為客戶機(jī)/服務(wù)器交互的客戶機(jī)端點(diǎn)建模。圖4說明了典型OPC UA客戶機(jī)的主要元素以及它們之間的關(guān)系。

圖4

客戶機(jī)應(yīng)用程序是實(shí)現(xiàn)客戶機(jī)功能的代碼。它使用OPC UA客戶機(jī)API向OPC UA服務(wù)器發(fā)送和接收OPC UA服務(wù)請(qǐng)求和響應(yīng)。OPC UA定義的服務(wù)在第7條中描述,并在[UA Part 4]中指定。?

注意,“OPC UA客戶端API”是一個(gè)內(nèi)部接口,它將客戶端應(yīng)用程序代碼與OPC UA通信堆棧隔離開來。OPC UA通信堆棧將OPC UA客戶機(jī)API調(diào)用轉(zhuǎn)換為消息,并應(yīng)客戶機(jī)應(yīng)用程序的請(qǐng)求通過底層通信實(shí)體將它們發(fā)送到服務(wù)器。OPC UA通信堆棧還接收來自底層通信實(shí)體的響應(yīng)和通知消息,并通過OPC UA客戶機(jī)API將它們傳遞給客戶機(jī)應(yīng)用程序。

5.3?OPC UA Servers

OPC UA服務(wù)器體系結(jié)構(gòu)為客戶機(jī)/服務(wù)器交互的服務(wù)器端點(diǎn)建模。圖5說明了OPC UA服務(wù)器的主要元素以及它們之間的關(guān)系。?

圖5

5.3.1?Real objects?

實(shí)際對(duì)象是OPC UA服務(wù)器應(yīng)用程序可以訪問的物理對(duì)象或軟件對(duì)象,或者是OPC UA服務(wù)器應(yīng)用程序內(nèi)部維護(hù)的對(duì)象。示例包括物理設(shè)備和診斷計(jì)數(shù)器。?

5.3.2?OPC UA Server application

實(shí)際對(duì)象是OPC UA服務(wù)器應(yīng)用程序可以訪問的物理對(duì)象或軟件對(duì)象,或者是OPC UA服務(wù)器應(yīng)用程序內(nèi)部維護(hù)的對(duì)象。示例包括物理設(shè)備和診斷計(jì)數(shù)器。?

它使用OPC UA服務(wù)器API從OPC UA客戶機(jī)發(fā)送和接收OPC UA消息。注意,“OPC UA服務(wù)器API”是一個(gè)內(nèi)部接口,它將服務(wù)器應(yīng)用程序代碼與OPC UA通信堆棧隔離開來。這可能是OPC Foundation提供的標(biāo)準(zhǔn)實(shí)現(xiàn),也可能是特定于供應(yīng)商的實(shí)現(xiàn)。

5.3.3?OPC UA AddressSpace?

5.3.3.1?AddressSpace Nodes?

AddressSpace被建模為客戶端使用OPC UA服務(wù)(接口和方法)訪問的一組節(jié)點(diǎn)。AddressSpace中的節(jié)點(diǎn)用于表示實(shí)際對(duì)象、它們的定義以及彼此之間的引用。?

5.3.3.2 AddressSpace organization?

[UA Part 3]包含元模型“構(gòu)建塊”的詳細(xì)信息,用于以標(biāo)準(zhǔn)的、一致的方式從互連節(jié)點(diǎn)創(chuàng)建地址空間。服務(wù)器可以根據(jù)自己的選擇自由地在AddressSpace中組織節(jié)點(diǎn)。節(jié)點(diǎn)之間引用的使用允許服務(wù)器將地址空間組織成層次結(jié)構(gòu)、節(jié)點(diǎn)的完整網(wǎng)狀網(wǎng)絡(luò)或任何可能的組合。?

[UA Part 5]定義了標(biāo)準(zhǔn)OPC UA節(jié)點(diǎn)和引用,以及它們?cè)诘刂房臻g中的期望組織。一些概要文件不需要實(shí)現(xiàn)所有標(biāo)準(zhǔn)的UA節(jié)點(diǎn)

5.3.3.3 AddressSpace Views?

視圖是AddressSpace的子集。視圖用于限制服務(wù)器對(duì)客戶機(jī)可見的節(jié)點(diǎn),從而限制客戶機(jī)提交的服務(wù)請(qǐng)求的地址空間大小。默認(rèn)視圖是整個(gè)AddressSpace。服務(wù)器可以選擇定義其他視圖。視圖隱藏了AddressSpace中的一些節(jié)點(diǎn)或引用。視圖通過AddressSpace可見,客戶端可以瀏覽視圖來確定它們的結(jié)構(gòu)。視圖通常是層次結(jié)構(gòu),客戶端更容易在樹中導(dǎo)航和表示。

5.3.3.4 Support for information models?

OPC UA地址空間支持信息模型。這項(xiàng)支助是通過:

a)允許AddressSpace中的對(duì)象相互關(guān)聯(lián)的節(jié)點(diǎn)引用。

b)為實(shí)際對(duì)象(類型定義)提供語義信息的ObjectType節(jié)點(diǎn)。

c) ObjectType節(jié)點(diǎn),以支持類型定義的子類化。

d) AddressSpace中公開的數(shù)據(jù)類型定義,允許使用特定于行業(yè)的數(shù)據(jù)類型。

e) OPC UA伙伴標(biāo)準(zhǔn),允許行業(yè)組織定義如何在OPC UA服務(wù)器地址空間中表示其特定的信息模型。

5.3.4 Publisher/subscriber entities?

5.3.4.1 MonitoredItem

MonitoredItems是客戶端創(chuàng)建的服務(wù)器中的實(shí)體,用于監(jiān)視AddressSpace節(jié)點(diǎn)及其實(shí)際對(duì)等節(jié)點(diǎn)。當(dāng)它們檢測(cè)到數(shù)據(jù)更改或事件/警報(bào)發(fā)生時(shí),它們生成一個(gè)通知,該通知通過訂閱傳輸?shù)娇蛻魴C(jī)。

5.3.4.2 Subscriptions

訂閱是服務(wù)器中的端點(diǎn),它向客戶機(jī)發(fā)布通知??蛻魴C(jī)通過發(fā)送發(fā)布消息來控制發(fā)布的速率??蛻魴C(jī)通過發(fā)送發(fā)布消息來控制發(fā)布的速率。

5.3.5?OPC UA Service Interface

5.3.5.1 General?

OPC UA定義的服務(wù)在第7條中描述,并在[UA Part 4]中指定。

5.3.5.2 Request/response Services?

請(qǐng)求/響應(yīng)服務(wù)是客戶機(jī)通過OPC UA服務(wù)接口調(diào)用的服務(wù),用于在AddressSpace中的一個(gè)或多個(gè)節(jié)點(diǎn)上執(zhí)行特定任務(wù)并返回響應(yīng)。

5.3.5.3 Publisher Services?

發(fā)布者服務(wù)是通過OPC UA服務(wù)接口調(diào)用的服務(wù),用于定期向客戶端發(fā)送通知。通知包括事件、警報(bào)、數(shù)據(jù)更改和程序輸出。

5.3.6 Server to Server interactions?

服務(wù)器到服務(wù)器的交互是指一個(gè)服務(wù)器充當(dāng)另一個(gè)服務(wù)器的客戶機(jī)的交互。服務(wù)器到服務(wù)器的交互允許開發(fā)以下服務(wù)器:

a)一個(gè)對(duì)等的基礎(chǔ)上互相交換信息,這可能包括冗余或遠(yuǎn)程服務(wù)器用于維護(hù)系統(tǒng)廣泛的類型定義,

b)鏈接在一個(gè)分層架構(gòu)的服務(wù)器提供:

1)來自下層的數(shù)據(jù)聚合服務(wù)器,

2)客戶更高層次數(shù)據(jù)結(jié)構(gòu),

3)集中器接口為單點(diǎn)訪問多個(gè)潛在客戶服務(wù)器。

圖6演示了服務(wù)器之間的交互

圖6

圖7擴(kuò)展了前面的示例,并演示了將OPC UA服務(wù)器鏈接在一起以垂直訪問企業(yè)中的數(shù)據(jù)。

圖7

6. Service Sets

6.1?General

OPC UA服務(wù)被劃分為服務(wù)集,每個(gè)服務(wù)集定義用于訪問服務(wù)器特定方面的邏輯服務(wù)分組。服務(wù)集描述如下。服務(wù)集及其服務(wù)在[UA第4部分]中指定。服務(wù)器是否支持服務(wù)集或服務(wù)集中的特定服務(wù)由其概要文件定義。簡(jiǎn)介見[UA第7部分]。

6.2?SecureChannel Service Set

此服務(wù)集定義用于發(fā)現(xiàn)服務(wù)器的安全配置和打開通信通道的服務(wù),該通信通道確保與服務(wù)器交換的所有消息的機(jī)密性和完整性。UA安全的基本概念在[UA第2部分]中定義。

SecureChannel服務(wù)與其他服務(wù)不同,因?yàn)樗鼈兺ǔ2皇怯蒛A應(yīng)用程序直接實(shí)現(xiàn)的。相反,它們是由構(gòu)建UA應(yīng)用程序的通信堆棧提供的。例如,可以在SOAP堆棧上構(gòu)建UA服務(wù)器,允許應(yīng)用程序使用WS-SecureConversation規(guī)范建立SecureChannel。在這些情況下,UA應(yīng)用程序只需驗(yàn)證WS-SecureConversation是否在接收到消息時(shí)處于活動(dòng)狀態(tài)。[UA第6部分]描述如何實(shí)現(xiàn)SecureChannel服務(wù)。

SecureChannel是單客戶機(jī)和單服務(wù)器之間的長(zhǎng)時(shí)間邏輯連接。該通道維護(hù)一組密鑰,這些密鑰只有客戶機(jī)和服務(wù)器知道,用于對(duì)通過網(wǎng)絡(luò)發(fā)送的消息進(jìn)行身份驗(yàn)證和加密。SecureChannel服務(wù)允許客戶機(jī)和服務(wù)器安全地協(xié)商要使用的密鑰。

用于驗(yàn)證和加密消息的確切算法在服務(wù)器的安全策略中進(jìn)行了描述??蛻魴C(jī)在創(chuàng)建SecureChannel時(shí)必須選擇服務(wù)器支持的安全策略之一。

當(dāng)客戶機(jī)和服務(wù)器通過SecureChannel通信時(shí),它們必須驗(yàn)證所有傳入消息都已根據(jù)安全策略簽名和/或加密。一個(gè)UA應(yīng)用程序不能處理任何不符合通道安全策略的消息。

SecureChannel與UA應(yīng)用程序會(huì)話分離;但是,一個(gè)UA應(yīng)用程序會(huì)話只能通過一個(gè)SecureChannel訪問。這意味著UA應(yīng)用程序必須能夠確定哪個(gè)SecureChannel與每個(gè)消息相關(guān)聯(lián)。提供SecureChannel機(jī)制但不允許應(yīng)用程序知道為給定消息使用了什么SecureChannel的通信堆棧不能用于實(shí)現(xiàn)SecureChannel服務(wù)集。

圖8顯示了UA應(yīng)用程序會(huì)話和SecureChannel之間的關(guān)系。UA應(yīng)用程序使用通信堆棧來交換消息。首先,SecureChannel服務(wù)用于在兩個(gè)通信堆棧之間建立SecureChannel,允許它們以安全的方式交換消息。其次,UA應(yīng)用程序使用會(huì)話服務(wù)集來建立一個(gè)UA應(yīng)用程序會(huì)話.

圖8

當(dāng)客戶機(jī)建立SecureChannel時(shí),它可能提供用戶標(biāo)識(shí)。此用戶標(biāo)識(shí)可能與客戶機(jī)打開UA應(yīng)用程序會(huì)話時(shí)提供的用戶標(biāo)識(shí)不同。

6.3 Session Service Set?

此服務(wù)集定義用于在會(huì)話上下文中代表特定用戶建立應(yīng)用程序?qū)舆B接的服務(wù)。

6.4 NodeManagement Service Set?

節(jié)點(diǎn)管理服務(wù)集允許客戶端在AddressSpace中添加、修改和刪除節(jié)點(diǎn)。這些服務(wù)為服務(wù)器的配置提供了一個(gè)標(biāo)準(zhǔn)接口。

6.5?View Service Set?

視圖是公開定義的,服務(wù)器創(chuàng)建的AddressSpace子集。整個(gè)AddressSpace是默認(rèn)視圖,因此視圖服務(wù)能夠在整個(gè)AddressSpace上運(yùn)行。此規(guī)范的未來版本還可以定義服務(wù)來創(chuàng)建客戶端定義的視圖。

視圖服務(wù)集允許客戶端通過瀏覽發(fā)現(xiàn)視圖中的節(jié)點(diǎn)。瀏覽允許客戶機(jī)在層次結(jié)構(gòu)中上下導(dǎo)航,或者跟蹤視圖中包含的節(jié)點(diǎn)之間的引用。通過這種方式,瀏覽還允許客戶端發(fā)現(xiàn)視圖的結(jié)構(gòu)。

6.6 Attribute Service Set

屬性服務(wù)集用于讀取和寫入屬性值。屬性是由OPC UA定義的節(jié)點(diǎn)的基本特征。它們可能不是由客戶機(jī)或服務(wù)器定義的。屬性是AddressSpace中惟一允許具有數(shù)據(jù)值的元素。值屬性是一個(gè)特殊的屬性,用于定義變量的值。

6.7 Method Service Set?

方法表示對(duì)象的函數(shù)調(diào)用。它們?cè)赱UA第3部分]中定義。方法被調(diào)用并在完成后返回,無論成功與否。方法的執(zhí)行時(shí)間可能不同,這取決于它們所執(zhí)行的函數(shù)。

方法服務(wù)集定義了調(diào)用方法的方法。方法必須是對(duì)象的組件。發(fā)現(xiàn)是通過瀏覽和查詢服務(wù)提供的。客戶端通過瀏覽標(biāo)識(shí)其支持方法的所屬對(duì)象來發(fā)現(xiàn)服務(wù)器支持的方法。

由于方法可能控制工廠操作的某些方面,所以方法調(diào)用可能取決于環(huán)境或其他條件。當(dāng)嘗試在方法完成執(zhí)行后立即重新調(diào)用該方法時(shí),這一點(diǎn)可能尤其正確。調(diào)用方法所需的條件可能尚未返回到允許方法重新啟動(dòng)的狀態(tài)。此外,一些方法可能支持并發(fā)調(diào)用,而另一些方法可能在給定時(shí)間執(zhí)行單個(gè)調(diào)用。

6.8 MonitoredItem Service Set?

客戶端使用MonitoredItem服務(wù)集來創(chuàng)建和維護(hù)MonitoredItems。MonitoredItems監(jiān)視變量、屬性和事件通知程序。當(dāng)檢測(cè)到某些條件時(shí),它們會(huì)生成通知。它們監(jiān)視變量的值、狀態(tài)或時(shí)間戳的變化;值更改的屬性;以及用于新生成警報(bào)和事件報(bào)告的事件通知器。?

每個(gè)MonitoredItem標(biāo)識(shí)要監(jiān)視的項(xiàng)和用于定期向客戶機(jī)發(fā)布通知的訂閱(參見第7.9條)。每個(gè)MonitoredItem還指定要監(jiān)視(采樣)項(xiàng)的速率,對(duì)于變量和事件通知程序,還指定用于確定何時(shí)生成通知的篩選條件。屬性的篩選條件由[UA第4部分]中的屬性定義指定。?

為MonitoredItem定義的示例速率可能快于訂閱的發(fā)布速率。因此,MonitoredItem可以配置為對(duì)所有通知排隊(duì),也可以只對(duì)最新的通知排隊(duì),以便通過訂閱進(jìn)行傳輸。在后一種情況下,隊(duì)列大小為1。?

MonitoredItem服務(wù)還定義了監(jiān)視模式。監(jiān)視模式被配置為禁用抽樣和報(bào)告,只啟用抽樣,或同時(shí)啟用抽樣和報(bào)告。啟用抽樣時(shí),服務(wù)器對(duì)項(xiàng)進(jìn)行抽樣。此外,將對(duì)每個(gè)示例進(jìn)行評(píng)估,以確定是否應(yīng)該生成通知。如果是,則通知將排隊(duì)。如果啟用了報(bào)表,則將隊(duì)列提供給訂閱以進(jìn)行傳輸。?

最后,可以將MonitoredItems配置為觸發(fā)其他MonitoredItems的報(bào)告。在這種情況下,通常將要報(bào)告的項(xiàng)的監(jiān)視模式設(shè)置為僅抽樣,當(dāng)觸發(fā)項(xiàng)生成通知時(shí),訂閱方可以使用要報(bào)告的項(xiàng)的任何排隊(duì)通知進(jìn)行傳輸。

6.9 Subscription Service Set?

客戶端使用訂閱服務(wù)集來創(chuàng)建和維護(hù)訂閱。訂閱是定期發(fā)布分配給它們的MonitoredItem通知消息的實(shí)體(參見第6.7條)。通知消息包含一個(gè)公共頭,后面跟著一系列通知。通知的格式特定于所監(jiān)視的項(xiàng)的類型(即變量、屬性和eventnotifier)。?

一旦創(chuàng)建,訂閱的存在就獨(dú)立于客戶機(jī)與服務(wù)器的會(huì)話。這允許一個(gè)客戶機(jī)創(chuàng)建訂閱,另一個(gè)客戶機(jī)(可能是冗余客戶機(jī))從訂閱中接收通知消息。?

為了防止客戶端不使用,訂閱有一個(gè)配置的生命周期,客戶端定期更新。如果任何客戶機(jī)未能更新生存期,則生存期將過期,服務(wù)器將關(guān)閉訂閱。當(dāng)訂閱被關(guān)閉時(shí),分配給訂閱的所有MonitoredItems都將被刪除。?

訂閱包括支持檢測(cè)和恢復(fù)丟失消息的功能。每個(gè)通知消息都包含一個(gè)序列號(hào),允許客戶端檢測(cè)丟失的消息。當(dāng)在keep-alive時(shí)間間隔內(nèi)沒有要發(fā)送的通知時(shí),服務(wù)器發(fā)送一個(gè)keep-alive消息,其中包含最后發(fā)送的通知消息的序列號(hào)。如果客戶機(jī)在keep-alive間隔過期后未能接收到消息,或者如果客戶機(jī)確定錯(cuò)過了消息,則可以請(qǐng)求服務(wù)器重新發(fā)送一條或多條消息。

6.10 Query Service Set?

查詢服務(wù)集允許客戶端根據(jù)客戶端提供的篩選條件在地址空間或視圖中選擇節(jié)點(diǎn)子集。查詢服務(wù)選擇的節(jié)點(diǎn)及其屬性稱為結(jié)果集。結(jié)果集可以是“平面”節(jié)點(diǎn)集,也可以通過返回連接結(jié)果集中節(jié)點(diǎn)的引用來保持結(jié)構(gòu)。

服務(wù)器可能會(huì)發(fā)現(xiàn)很難處理需要訪問運(yùn)行時(shí)數(shù)據(jù)的查詢,比如涉及資源密集型操作或重大延遲的設(shè)備數(shù)據(jù)。在這些情況下,服務(wù)器可能會(huì)發(fā)現(xiàn)有必要拒絕查詢

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容