Figure 37 depicts the ObjectTypes of the message and transport protocol mapping independent part of the PubSub configuration model, their main components and their relations.
Figure 37 – PubSub configuration model overview
An instance of the PublishSubscribeType with the name PublishSubscribe represents the root Object for all PubSub related Objects. It manages a list of PubSubConnectionType Objects and the PublishedDataSetType Objects through the PublishedDataSets folder.
On the Publisher side, a PublishedDataSet represents the information to publish and the DataSetWriter represents the transport settings for creating DataSetMessages for delivery through a Message Oriented Middleware.
On the Subscriber side, a DataSetReader represents the transport settings for receiving DataSetMessages from a Message Oriented Middleware and the SubscribedDataSet represents the information to dispatch the received DataSets in the Subscriber.
The configuration can be done through Methods or product-specific configuration tools. The DataSetFolderType can be used to organize the PublishedDataSetType Objects in a tree of folders.
Figure 38 shows an example configuration with the root Object PublishSubscribe that is a component of the Server Object.
Figure 38 – PubSub example Objects
The example defines two PublishedDataSets published through one connection and one group and one DataSetReader used to subscribe one DataSet.
Figure 39 depicts the information flow and the related ObjectTypes from the PubSub Information Model. The boxes in the lower part of the figure are examples for blocks necessary to implement the information flow in a Publisher.
Figure 39 – PubSub information flow
The PublishedDataSetType represents the selection and configuration of Variables or Events. An Event notification or a snapshot of the Variables comprises a DataSet. A DataSet is the content of a DataSetMessage created by a DataSetWriter. Examples of concrete PublishedDataSetTypes are PublishedEventsType and PublishedDataItemsType. An instance of PublishedDataSetType has a list of DataSetWriters used to produce DataSetMessages sent via the Message Oriented Middleware. The DataSetMetaData describes the content of a DataSet.
Instances of the PubSubConnectionType represent settings associated with Message Oriented Middleware. A connection manages a list of WriterGroupType Objects and transport protocol mapping specific parameters.
Instances of the WriterGroupType contain instances of DataSetWriter Objects that share settings such as security configuration, encoding or timing of NetworkMessages. A group manages a list of DataSetWriterType Objects that define the payload of the NetworkMessages created from the group settings.
DataSetWriters represent the configuration necessary to create DataSetMessages contained as payload in NetworkMessages.
DataSetReaders represent the configuration necessary to receive and process DataSetMessages on the Subscriber side.
NetworkMessages are sent through a transport like AMQP, MQTT or OPC UA UDP. Other transport protocols can be added as subtypes without changing the base model.
The definition of the PubSub related ObjectTypes does not prescribe how the instances are created or configured or how dynamic the configuration can be. A Publisher may have a preconfigured number of PublishedDataSets and DataSetWriters where only protocol-specific settings can be configured. If a Publisher allows dynamic creation of Objects like DataSets and DataSetWriters, this can be done through product-specific configuration tools or through the standardized configuration Methods defined in this document.