OPC 10000-14: OPC Unified Architecture

Part 14: PubSub

Release 1.05.01
2022-02-22

Copyright (c) 2022 OPC Foundation
Generated on 2/25/2022 8:40:17 PM.

This document is subject to the license terms described here.

This document is a copy of the original which can be found here.

Table of Contents

1 Scope

2 Normative references

3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms

4 Overview
    4.1 Fields of application
    4.2 Abstraction layers
    4.3 Decoupling by use of middleware
    4.4 Synergy of models

5 PubSub Concepts
    5.1 General
    5.2 DataSet
        5.2.1 General
        5.2.2 DataSetClass
        5.2.3 DataSetMetaData
    5.3 Messages
        5.3.1 General
        5.3.2 DataSetMessage field
        5.3.3 DataSetMessage
        5.3.4 NetworkMessage
        5.3.5 Message security
        5.3.6 Transport security
        5.3.7 SecurityGroup
    5.4 Entities
        5.4.1 Publisher
            5.4.1.1 General
            5.4.1.2 Message sending
        5.4.2 Subscriber
            5.4.2.1 General
            5.4.2.2 Message reception
        5.4.3 Configuration Tool
        5.4.4 Security Key Service
            5.4.4.1 General
            5.4.4.2 SecurityGroup Management
            5.4.4.3 Key acquisition handshakes
            5.4.4.4 Authorization Services and Security Key Service
        5.4.5 Message Oriented Middleware
            5.4.5.1 General
            5.4.5.2 Broker-less Middleware
                5.4.5.2.1 General
                5.4.5.2.2 Broker-less model with OPC UA UDP
            5.4.5.3 Broker-based Middleware
                5.4.5.3.1 General
                5.4.5.3.2 Broker-based model
            5.4.5.4 QoS configuration

6 PubSub communication parameters
    6.1 Overview
    6.2 Common configuration parameters
        6.2.1 PubSubState state machine
        6.2.2 PubSub configuration properties
        6.2.3 PublishedDataSet parameters
            6.2.3.1 Overview
            6.2.3.2 DataSetMetaData
                6.2.3.2.1 General
                6.2.3.2.2 DataSetMetaDataType
                6.2.3.2.3 FieldMetaData
                6.2.3.2.4 DataSetFieldFlags
                6.2.3.2.5 ConfigurationVersionDataType
            6.2.3.3 DataSetClassId
            6.2.3.4 ExtensionFields
            6.2.3.5 PublishedDataSetDataType
            6.2.3.6 PublishedDataSetSourceDataType
            6.2.3.7 Published Data Items
                6.2.3.7.1 PublishedData
                6.2.3.7.2 PublishedDataItemsDataType
            6.2.3.8 Published Events
                6.2.3.8.1 EventNotifier
                6.2.3.8.2 SelectedFields
                6.2.3.8.3 Filter
                6.2.3.8.4 PublishedEventsDataType
            6.2.3.9 Custom PublishedDataSet source
                6.2.3.9.1 CyclicDataSet
                6.2.3.9.2 PublishedDataSetCustomSourceDataType
        6.2.4 DataSetWriter parameters
            6.2.4.1 DataSetWriterId
            6.2.4.2 DataSetFieldContentMask
            6.2.4.3 KeyFrameCount
            6.2.4.4 DataSetWriterProperties
            6.2.4.5 DataSetWriter definition
                6.2.4.5.1 DataSetWriterDataType
                6.2.4.5.2 DataSetWriterTransportDataType
                6.2.4.5.3 DataSetWriterMessageDataType
        6.2.5 Shared PubSubGroup parameters
            6.2.5.1 General
            6.2.5.2 SecurityMode
            6.2.5.3 SecurityGroupId
            6.2.5.4 SecurityKeyServices
            6.2.5.5 MaxNetworkMessageSize
            6.2.5.6 GroupProperties
            6.2.5.7 PubSubGroup structure
        6.2.6 WriterGroup parameters
            6.2.6.1 WriterGroupId
            6.2.6.2 PublishingInterval
            6.2.6.3 KeepAliveTime
            6.2.6.4 Priority
            6.2.6.5 LocaleIds
            6.2.6.6 HeaderLayoutUri
            6.2.6.7 WriterGroup structures
                6.2.6.7.1 WriterGroupDataType
                6.2.6.7.2 WriterGroupTransportDataType
                6.2.6.7.3 WriterGroupMessageDataType
        6.2.7 PubSubConnection parameters
            6.2.7.1 PublisherId
            6.2.7.2 TransportProfileUri
            6.2.7.3 Address
            6.2.7.4 ConnectionProperties
            6.2.7.5 PubSubConnection structure
                6.2.7.5.1 PubSubConnectionDataType
                6.2.7.5.2 ConnectionTransportDataType
                6.2.7.5.3 NetworkAddressDataType
                6.2.7.5.4 NetworkAddressUrlDataType
        6.2.8 ReaderGroup parameters
            6.2.8.1 General
            6.2.8.2 ReaderGroup structures
                6.2.8.2.1 ReaderGroupDataType
                6.2.8.2.2 ReaderGroupTransportDataType
                6.2.8.2.3 ReaderGroupMessageDataType
        6.2.9 DataSetReader parameters
            6.2.9.1 PublisherId
            6.2.9.2 WriterGroupId
            6.2.9.3 DataSetWriterId
            6.2.9.4 DataSetMetaData
            6.2.9.5 DataSetFieldContentMask
            6.2.9.6 MessageReceiveTimeout
            6.2.9.7 KeyFrameCount
            6.2.9.8 HeaderLayoutUri
            6.2.9.9 SecurityMode
            6.2.9.10 SecurityGroupId
            6.2.9.11 SecurityKeyServices
            6.2.9.12 DataSetReaderProperties
            6.2.9.13 DataSetReader structure
                6.2.9.13.1 DataSetReaderDataType
                6.2.9.13.2 DataSetReaderTransportDataType
                6.2.9.13.3 DataSetReaderMessageDataType
        6.2.10 SubscribedDataSet parameters
            6.2.10.1 SubscribedDataSetDataType
            6.2.10.2 TargetVariables
                6.2.10.2.1 General
                6.2.10.2.2 TargetVariablesDataType
                6.2.10.2.3 FieldTargetDataType
                6.2.10.2.4 OverrideValueHandling
            6.2.10.3 SubscribedDataSetMirror
                6.2.10.3.1 General
                6.2.10.3.2 ParentNodeName
                6.2.10.3.3 RolePermissions
                6.2.10.3.4 SubscribedDataSetMirrorDataType
            6.2.10.4 StandaloneSubscribedDataSetRefDataType
            6.2.10.5 StandaloneSubscribedDataSetDataType
        6.2.11 Information flow and status handling
        6.2.12 PubSubConfiguration
            6.2.12.1 PubSubConfigurationDataType
            6.2.12.2 SecurityGroupDataType
            6.2.12.3 PubSubKeyPushTargetDataType
            6.2.12.4 PubSubConfiguration2DataType
    6.3 Message mapping configuration parameters
        6.3.1 UADP message mapping
            6.3.1.1 UADP NetworkMessage Writer
                6.3.1.1.1 Relationship of Timing parameters
                6.3.1.1.2 GroupVersion
                6.3.1.1.3 DataSetOrdering
                6.3.1.1.4 NetworkMessageContentMask
                6.3.1.1.5 SamplingOffset
                6.3.1.1.6 PublishingOffset
                6.3.1.1.7 UadpWriterGroupMessageDataType structure
            6.3.1.2 UADP ReaderGroup Parameters
            6.3.1.3 UADP DataSetMessage Writer
                6.3.1.3.1 General
                6.3.1.3.2 DataSetMessageContentMask
                6.3.1.3.3 ConfiguredSize
                6.3.1.3.4 NetworkMessageNumber
                6.3.1.3.5 DataSetOffset
                6.3.1.3.6 UadpDataSetWriterMessageDataType structure
            6.3.1.4 UADP DataSetMessage Reader
                6.3.1.4.1 GroupVersion
                6.3.1.4.2 NetworkMessageNumber
                6.3.1.4.3 DataSetOffset
                6.3.1.4.4 DataSetClassId
                6.3.1.4.5 NetworkMessageContentMask
                6.3.1.4.6 DataSetMessageContentMask
                6.3.1.4.7 PublishingInterval
                6.3.1.4.8 ReceiveOffset
                6.3.1.4.9 ProcessingOffset
                6.3.1.4.10 UadpDataSetReaderMessageDataType
        6.3.2 JSON message mapping
            6.3.2.1 JSON NetworkMessage Writer
                6.3.2.1.1 NetworkMessageContentMask
                6.3.2.1.2 JsonWriterGroupMessageDataType structure
            6.3.2.2 JSON ReaderGroup Parameters
            6.3.2.3 JSON DataSetMessage Writer
                6.3.2.3.1 DataSetMessageContentMask
                6.3.2.3.2 JsonDataSetWriterMessageDataType structure
            6.3.2.4 JSON DataSetMessage Reader
                6.3.2.4.1 NetworkMessageContentMask
                6.3.2.4.2 DataSetMessageContentMask
                6.3.2.4.3 JsonDataSetReaderMessageDataType structure
    6.4 Transport Protocol mapping configuration parameters
        6.4.1 Datagram Transport Protocol
            6.4.1.1 Quality of service parameters
                6.4.1.1.1 QosCategory and DatagramQos
                6.4.1.1.2 QosDataType structure
                6.4.1.1.3 TransmitQosDataType
                6.4.1.1.4 TransmitQosPriorityDataType
                    6.4.1.1.4.1 PriorityLabel
                    6.4.1.1.4.2 TransmitQosPriorityDataType structure
                6.4.1.1.5 ReceiveQosDataType
                6.4.1.1.6 ReceiveQosPriorityDataType
                    6.4.1.1.6.1 PriorityLabel
                    6.4.1.1.6.2 ReceiveQosPriorityDataType structure
            6.4.1.2 Datagram PubSubConnection
                6.4.1.2.1 DiscoveryAddress
                6.4.1.2.2 DatagramConnectionTransportDataType structure
                6.4.1.2.3 DiscoveryAnnounceRate
                6.4.1.2.4 DiscoveryMaxMessageSize
                6.4.1.2.5 QosCategory
                6.4.1.2.6 DatagramQos
                6.4.1.2.7 DatagramConnectionTransport2DataType structure
            6.4.1.3 Datagram WriterGroup
                6.4.1.3.1 MessageRepeatCount
                6.4.1.3.2 MessageRepeatDelay
                6.4.1.3.3 DatagramWriterGroupTransportDataType structure
                6.4.1.3.4 Address
                6.4.1.3.5 QosCategory
                6.4.1.3.6 DatagramQos
                6.4.1.3.7 DiscoveryAnnounceRate
                6.4.1.3.8 Topic
                6.4.1.3.9 DatagramWriterGroupTransport2DataType structure
            6.4.1.4 Datagram ReaderGroup parameters
            6.4.1.5 Datagram DataSetWriter parameters
            6.4.1.6 Datagram DataSetReader
                6.4.1.6.1 Address
                6.4.1.6.2 QosCategory
                6.4.1.6.3 DatagramQos
                6.4.1.6.4 Topic
                6.4.1.6.5 DatagramDataSetReaderTransportDataType structure
        6.4.2 Broker Transport Protocol
            6.4.2.1 Broker quality of service Enumeration
            6.4.2.2 Broker PubSubConnection
                6.4.2.2.1 ResourceUri
                6.4.2.2.2 AuthenticationProfileUri
                6.4.2.2.3 BrokerConnectionTransportDataType structure
            6.4.2.3 Broker WriterGroup
                6.4.2.3.1 QueueName
                6.4.2.3.2 ResourceUri
                6.4.2.3.3 AuthenticationProfileUri
                6.4.2.3.4 RequestedDeliveryGuarantee
                6.4.2.3.5 BrokerWriterGroupTransportDataType structure
            6.4.2.4 Broker ReaderGroup Parameters
            6.4.2.5 Broker DataSetWriter
                6.4.2.5.1 QueueName
                6.4.2.5.2 ResourceUri
                6.4.2.5.3 AuthenticationProfileUri
                6.4.2.5.4 RequestedDeliveryGuarantee
                6.4.2.5.5 MetaDataQueueName
                6.4.2.5.6 MetaDataUpdateTime
                6.4.2.5.7 BrokerDataSetWriterTransportDataType structure
            6.4.2.6 Broker DataSetReader
                6.4.2.6.1 QueueName
                6.4.2.6.2 ResourceUri
                6.4.2.6.3 AuthenticationProfileUri
                6.4.2.6.4 RequestedDeliveryGuarantee
                6.4.2.6.5 MetaDataQueueName
                6.4.2.6.6 BrokerDataSetReaderTransportDataType structure

7 PubSub mappings
    7.1 General
    7.2 Message mappings
        7.2.1 General
        7.2.2 UADP message mapping
            7.2.2.1 General
            7.2.2.2 Error handling
            7.2.2.3 SequenceNumber in headers
            7.2.2.4 NetworkMessage
                7.2.2.4.1 General
                7.2.2.4.2 NetworkMessage layout
                7.2.2.4.3 UADP message security
                    7.2.2.4.3.1 General
                    7.2.2.4.3.2 AES-CTR
                7.2.2.4.4 UADP Chunk NetworkMessage
            7.2.2.5 DataSetMessage
                7.2.2.5.1 General
                7.2.2.5.2 DataSet payload header
                7.2.2.5.3 DataSet payload
                7.2.2.5.4 DataSetMessage header
                7.2.2.5.5 Data Key Frame DataSetMessage
                7.2.2.5.6 Data Delta Frame DataSetMessage
                7.2.2.5.7 Event DataSetMessage
                7.2.2.5.8 KeepAlive message
                7.2.2.5.9 RawData field encoding
            7.2.2.6 Discovery messages
                7.2.2.6.1 General
                7.2.2.6.2 Discovery scope
                7.2.2.6.3 UADP discovery probe NetworkMessage
                    7.2.2.6.3.1 General
                    7.2.2.6.3.2 Traffic reduction
                    7.2.2.6.3.3 Discovery probe header
                    7.2.2.6.3.4 Publisher information probe message
                7.2.2.6.4 UADP discovery announcement NetworkMessage
                    7.2.2.6.4.1 General
                    7.2.2.6.4.2 Discovery announcement header
                    7.2.2.6.4.3 Publisher Endpoints announcement message
                    7.2.2.6.4.4 DataSetMetaData announcement message
                    7.2.2.6.4.5 DataSetWriter configuration announcement message
                    7.2.2.6.4.6 PubSubConnection configuration announcement message
                    7.2.2.6.4.7 OPC UA Application information announcement message
        7.2.3 JSON message mapping
            7.2.3.1 General
            7.2.3.2 NetworkMessage
            7.2.3.3 DataSetMessage
            7.2.3.4 Discovery Messages
                7.2.3.4.1 General
                7.2.3.4.2 DataSetMetaData
    7.3 Transport Protocol Mappings
        7.3.1 General
        7.3.2 OPC UA UDP
            7.3.2.1 General
            7.3.2.2 UDP multicast and broadcast
            7.3.2.3 UDP unicast
        7.3.3 OPC UA Ethernet
        7.3.4 AMQP
            7.3.4.1 General
            7.3.4.2 Address
            7.3.4.3 Authentication
            7.3.4.4 Connection properties
            7.3.4.5 RequestedDeliveryGuarantee
            7.3.4.6 Transport Limits and Keep Alive
            7.3.4.7 Message header
            7.3.4.8 Message body
                7.3.4.8.1 General
                7.3.4.8.2 JSON message mapping
                7.3.4.8.3 UADP message mapping
        7.3.5 MQTT
            7.3.5.1 General
            7.3.5.2 Address
            7.3.5.3 Authentication
            7.3.5.4 Connection properties
            7.3.5.5 RequestedDeliveryGuarantee
            7.3.5.6 Transport Limits and Keep Alive
            7.3.5.7 Message header
            7.3.5.8 Message body
                7.3.5.8.1 General
                7.3.5.8.2 JSON message mapping
                7.3.5.8.3 UADP message mapping

8 PubSub Security Key Service model
    8.1 Overview
    8.2 PublishSubscribe Object
    8.3 PubSubKeyServiceType
        8.3.1 PubSubKeyServiceType definition
        8.3.2 GetSecurityKeys Method
        8.3.3 GetSecurityGroup Method
    8.4 SecurityGroupType
        8.4.1 SecurityGroupType definition
        8.4.2 InvalidateKeys Method
        8.4.3 ForceKeyRotation Method
    8.5 SecurityGroupFolderType
        8.5.1 SecurityGroupFolderType definition
        8.5.2 AddSecurityGroup Method
        8.5.3 RemoveSecurityGroup Method
        8.5.4 AddSecurityGroupFolder Method
        8.5.5 RemoveSecurityGroupFolder Method
    8.6 PubSubKeyPushTargetType
        8.6.1 PubSubKeyPushTargetType definition
        8.6.2 Behaviour
        8.6.3 ConnectSecurityGroups
        8.6.4 DisconnectSecurityGroups Method
        8.6.5 TriggerKeyUpdate Method
        8.6.6 HasPushedSecurityGroup
    8.7 PubSubKeyPushTargetFolderType
        8.7.1 PubSubKeyPushTargetFolderType definition
        8.7.2 AddPushTarget Method
        8.7.3 RemovePushTarget Method
        8.7.4 AddPushTargetFolder Method
        8.7.5 RemovePushTargetFolder Method
    8.8 Security Key Service Roles

9 PubSub configuration model
    9.1 Common configuration model
        9.1.1 General
        9.1.2 Configuration behaviours
        9.1.3 Types for the PublishSubscribe Object
            9.1.3.1 Overview
            9.1.3.2 PublishSubscribeType
            9.1.3.3 SetSecurityKeys
            9.1.3.4 AddConnection Method
            9.1.3.5 RemoveConnection Method
            9.1.3.6 HasPubSubConnection
            9.1.3.7 Modification of PubSub configuration
                9.1.3.7.1 PubSubConfigurationType
                9.1.3.7.2 PubSubConfigurationRefMask
                9.1.3.7.3 PubSubConfigurationRefDataType
                9.1.3.7.4 PubSubConfigurationValueDataType
                9.1.3.7.5 ReserveIds Method
                9.1.3.7.6 CloseAndUpdate Method
        9.1.4 Published DataSet model
            9.1.4.1 Overview
            9.1.4.2 Published DataSet
                9.1.4.2.1 PublishedDataSetType
                9.1.4.2.2 ExtensionFieldsType
                9.1.4.2.3 AddExtensionField Method
                9.1.4.2.4 RemoveExtensionField Method
                9.1.4.2.5 DataSetToWriter
            9.1.4.3 Published Data Items
                9.1.4.3.1 PublishedDataItemsType
                9.1.4.3.2 AddVariables Method
                9.1.4.3.3 RemoveVariables Method
            9.1.4.4 Published Events
                9.1.4.4.1 PublishedEventsType
                9.1.4.4.2 ModifyFieldSelection Method
            9.1.4.5 DataSet Folder
                9.1.4.5.1 DataSetFolderType
                9.1.4.5.2 AddPublishedDataItems Method
                9.1.4.5.3 AddPublishedEvents Method
                9.1.4.5.4 AddPublishedDataItemsTemplate Method
                9.1.4.5.5 AddPublishedEventsTemplate Method
                9.1.4.5.6 RemovePublishedDataSet Method
                9.1.4.5.7 AddDataSetFolder Method
                9.1.4.5.8 RemoveDataSetFolder Method
        9.1.5 Connection model
            9.1.5.1 Overview
            9.1.5.2 PubSubConnectionType
            9.1.5.3 AddWriterGroup Method
            9.1.5.4 AddReaderGroup Method
            9.1.5.5 RemoveGroup Method
            9.1.5.6 NetworkAddressType
            9.1.5.7 NetworkAddressUrlType
            9.1.5.8 ConnectionTransportType
            9.1.5.9 HasWriterGroup
            9.1.5.10 HasReaderGroup
        9.1.6 Group model
            9.1.6.1 Overview
            9.1.6.2 PubSubGroupType
            9.1.6.3 WriterGroupType
            9.1.6.4 AddDataSetWriter Method
            9.1.6.5 RemoveDataSetWriter Method
            9.1.6.6 HasDataSetWriter
            9.1.6.7 WriterGroupTransportType
            9.1.6.8 WriterGroupMessageType
            9.1.6.9 ReaderGroupType
            9.1.6.10 AddDataSetReader Method
            9.1.6.11 RemoveDataSetReader Method
            9.1.6.12 HasDataSetReader
            9.1.6.13 ReaderGroupTransportType
            9.1.6.14 ReaderGroupMessageType
        9.1.7 DataSetWriter model
            9.1.7.1 Overview
            9.1.7.2 DataSetWriterType
            9.1.7.3 DataSetWriterTransportType
            9.1.7.4 DataSetWriterMessageType
        9.1.8 DataSetReader model
            9.1.8.1 Overview
            9.1.8.2 DataSetReaderType
            9.1.8.3 DataSetReaderTransportType
            9.1.8.4 DataSetReaderMessageType
            9.1.8.5 CreateTargetVariables Method
            9.1.8.6 CreateDataSetMirror Method
        9.1.9 Subscribed DataSet model
            9.1.9.1 SubscribedDataSetType
            9.1.9.2 Target Variables
                9.1.9.2.1 TargetVariablesType
                9.1.9.2.2 AddTargetVariables Method
                9.1.9.2.3 RemoveTargetVariables Method
            9.1.9.3 SubscribedDataSetMirrorType
            9.1.9.4 Subscribed DataSet Folder
                9.1.9.4.1 SubscribedDataSetFolderType
                9.1.9.4.2 AddSubscribedDataSet Method
                9.1.9.4.3 RemoveSubscribedDataSet Method
                9.1.9.4.4 AddDataSetFolder Method
                9.1.9.4.5 RemoveDataSetFolder Method
            9.1.9.5 StandaloneSubscribedDataSetType
        9.1.10 PubSub Status Object
            9.1.10.1 PubSubStatusType
            9.1.10.2 Enable Method
            9.1.10.3 Disable Method
            9.1.10.4 Status Object
        9.1.11 PubSub Diagnostics Objects
            9.1.11.1 General
            9.1.11.2 PubSubDiagnosticsType
            9.1.11.3 Reset Method
            9.1.11.4 DiagnosticsLevel
            9.1.11.5 PubSubDiagnosticsCounterType
            9.1.11.6 PubSubDiagnosticsCounterClassification
            9.1.11.7 PubSubDiagnosticsRootType
            9.1.11.8 PubSubDiagnosticsConnectionType
            9.1.11.9 PubSubDiagnosticsWriterGroupType
            9.1.11.10 PubSubDiagnosticsReaderGroupType
            9.1.11.11 PubSubDiagnosticsDataSetWriterType
            9.1.11.12 PubSubDiagnosticsDataSetReaderType
        9.1.12 PubSub Capabilities
        9.1.13 PubSub Status Events
            9.1.13.1 PubSubStatusEventType
            9.1.13.2 PubSubTransportLimitsExceedEventType
            9.1.13.3 PubSubCommunicationFailureEventType
    9.2 Message Mapping configuration model
        9.2.1 UADP Message mapping
            9.2.1.1 UadpWriterGroupMessageType
            9.2.1.2 UadpDataSetWriterMessageType
            9.2.1.3 UadpDataSetReaderMessageType
        9.2.2 JSON Message mapping
            9.2.2.1 JsonWriterGroupMessageType
            9.2.2.2 JsonDataSetWriterMessageType
            9.2.2.3 JsonDataSetReaderMessageType
    9.3 Transport Protocol Mapping configuration model
        9.3.1 Datagram Transport Protocol mapping
            9.3.1.1 DatagramConnectionTransportType
            9.3.1.2 DatagramWriterGroupTransportType
            9.3.1.3 DatagramDataSetWriterTransportType
            9.3.1.4 DatagramDataSetReaderTransportType
        9.3.2 Broker Transport Protocol mapping
            9.3.2.1 BrokerConnectionTransportType
            9.3.2.2 BrokerWriterGroupTransportType
            9.3.2.3 BrokerDataSetWriterTransportType
            9.3.2.4 BrokerDataSetReaderTransportType

Annex A (normative) UADP Header Layouts
    A.1 General
    A.2 Message headers for periodic data with fixed layout
        A.2.1 Motivation
        A.2.2 Overview
        A.2.3 Header layout URI
        A.2.4 Header layout for NetworkMessages
        A.2.5 Header layout for NetworkMessages with integrity (signing)
        A.2.6 Header layout for NetworkMessages with integrity and confidentiality (signing and encryption)
        A.2.7 Header layout for DataSetMessages
        A.2.8 Examples
            A.2.8.1 Fixed message layout without security
            A.2.8.2 Fixed message layout with integrity
    A.3 Message headers for Events and Data with dynamic layout
        A.3.1 Motivation
        A.3.2 Overview
        A.3.3 Header layout URI
        A.3.4 Header layout for NetworkMessages
        A.3.5 Header layout for NetworkMessages with integrity (signing)
        A.3.6 Header layout for NetworkMessages with integrity and confidentiality (signing and encryption)
        A.3.7 Header layout for DataSetMessages
        A.3.8 Examples
            A.3.8.1 Dynamic message layout with different DataSetMessage types

Annex B (informative) Client Server vs. Publish Subscribe
    B.1 Overview
    B.2 Client Server Subscriptions
    B.3 Publish-Subscribe
    B.4 Synergy of models