OPC 10000-14: UA Part 14: PubSub


Released 1.05.03

2023-12-13

This document is subject to the license terms described here.

The general OPC Foundation specification license agreement also applies and can be found here.

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


1 Scope 2 Normative references 3 Terms, definitions and abbreviated terms 3.1 Terms and definitions 3.1.1 DataSetClass 3.1.2 DataSetMetaData 3.1.3 DataSetReader 3.1.4 DataSetWriter 3.1.5 PublishedDataSet 3.1.6 SecurityGroup 3.1.7 SubscribedDataSet 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.3.8 Topics 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 DataTypeSchemaHeader 6.2.3.2.3 DataSetMetaDataType 6.2.3.2.4 FieldMetaData 6.2.3.2.5 DataSetFieldFlags 6.2.3.2.6 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 Network‌Message‌ContentMask 6.3.1.4.6 DataSetMessage‌ContentMask 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 Network‌Message‌ContentMask 6.3.2.4.2 DataSetMessage‌ContentMask 6.3.2.4.3 JsonDataSetReaderMessageDataType structure 6.3.2.4.4 DataSetClassId 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 MessageTypes 7.2.3 SequenceNumber in headers 7.2.4 UADP message mapping 7.2.4.1 General 7.2.4.2 MessageType mapping 7.2.4.3 Error handling 7.2.4.4 NetworkMessage 7.2.4.4.1 General 7.2.4.4.2 NetworkMessage layout 7.2.4.4.3 UADP message security 7.2.4.4.3.1 General 7.2.4.4.3.2 AES-CTR 7.2.4.4.4 UADP Chunk NetworkMessage 7.2.4.5 DataSetMessage 7.2.4.5.1 General 7.2.4.5.2 DataSet payload header 7.2.4.5.3 DataSet payload 7.2.4.5.4 DataSetMessage header 7.2.4.5.5 Data Key Frame DataSetMessage 7.2.4.5.6 Data Delta Frame DataSetMessage 7.2.4.5.7 Event DataSetMessage 7.2.4.5.8 KeepAlive message 7.2.4.5.9 RawData field encoding 7.2.4.6 Discovery messages 7.2.4.6.1 General 7.2.4.6.2 Discovery scope for Datagram transport protocols 7.2.4.6.3 Discovery announcement header 7.2.4.6.4 DataSetMetaData 7.2.4.6.5 ApplicationDescription 7.2.4.6.6 ServerEndpoints 7.2.4.6.7 Status 7.2.4.6.8 PubSubConnection 7.2.4.6.9 DataSetWriter configuration announcement message 7.2.4.6.10 UADP discovery probe NetworkMessage 7.2.4.6.10.1 General 7.2.4.6.10.2 Traffic reduction 7.2.4.6.10.3 Discovery probe header 7.2.4.6.10.4 Publisher information probe message 7.2.5 JSON message mapping 7.2.5.1 General 7.2.5.2 MessageType mapping 7.2.5.3 NetworkMessage containing DataSetMessages 7.2.5.4 DataSetMessage 7.2.5.5 Discovery Messages 7.2.5.5.1 General 7.2.5.5.2 DataSetMetaData 7.2.5.5.3 ApplicationDescription 7.2.5.5.4 ServerEndpoints 7.2.5.5.5 Status 7.2.5.5.6 PubSubConnection 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 Topics 7.3.5.7.1 General 7.3.5.7.2 MessageType mapping 7.3.5.7.3 data Topic level 7.3.5.7.4 metadata Topic level 7.3.5.7.5 application Topic level 7.3.5.7.6 endpoints Topic level 7.3.5.7.7 status Topic level 7.3.5.7.8 connection Topic level 7.3.5.8 Message header 7.3.5.9 Message body 7.3.5.9.1 General 7.3.5.9.2 JSON message mapping 7.3.5.9.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.12.1 PubSubCapabilitiesType 9.1.12.2 Supported configuration properties 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)Header Layouts A.1 General A.2 UADP Header Layouts A.2.1 Message headers for periodic data with fixed layout A.2.1.1 Motivation A.2.1.2 Overview A.2.1.3 Header layout URI A.2.1.4 Header layout for NetworkMessages A.2.1.5 Header layout for NetworkMessages with integrity (signing) A.2.1.6 Header layout for NetworkMessages with integrity and confidentiality (signing and encryption) A.2.1.7 Header layout for DataSetMessages A.2.1.8 Example fixed message layout without security A.2.1.9 Example fixed message layout with integrity A.2.2 Message headers for Events and Data with dynamic layout A.2.2.1 Motivation A.2.2.2 Overview A.2.2.3 Header layout URI A.2.2.4 Header layout for NetworkMessages A.2.2.5 Header layout for NetworkMessages with integrity (signing) A.2.2.6 Header layout for NetworkMessages with integrity and confidentiality (signing and encryption) A.2.2.7 Header layout for DataSetMessages A.2.2.8 Example dynamic message layout with different DataSetMessage types A.3 JSON Header Layouts A.3.1 DataSets for examples A.3.2 JSON message headers for minimal messages A.3.2.1 Motivation A.3.2.2 Overview A.3.2.3 Header layout URI A.3.2.4 Configuration parameters A.3.2.5 Examples A.3.3 JSON message headers for single DataSetMessage A.3.3.1 Motivation A.3.3.2 Overview A.3.3.3 Header layout URI A.3.3.4 Configuration parameters A.3.3.5 Examples A.3.4 JSON message headers for multiple DataSetMessages A.3.4.1 Motivation A.3.4.2 Overview A.3.4.3 Header layout URI A.3.4.4 Configuration parameters A.3.4.5 Examples 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