This clause describes the general OPC UA PubSub concepts.
The DataSetconstitutes the payload of messages provided by the Publisherand consumed by the Subscriber. The DataSetis described in 5.2. The mapping to messages is described in 5.3. The participating entities like Publisherand Subscriberare described in 5.4.
The abstract communication parameters are described in clause 6.
The mapping of this model to concrete message and transport protocol mappings is defined in clause 7.
Figure 2provides an overview of the PublisherandSubscriberentities. It illustrates the flow of messages from a Publisherto one or more Subscribers. The PubSubcommunication model supports many other scenarios; for example, a Publishermay send a DataSetto multiple Message Oriented Middlewareand a Subscribermay receive messages from multiple Publishers.
Publishersand Subscribersare loosely coupled. They often will not even know each other. Their primary relation is the shared understanding of specific types of data (DataSets), the publish characteristics of messages that include these data, and the Message Oriented Middleware.
The “messages” in Figure 2represent NetworkMessages. Each NetworkMessageincludes header information (e.g. identification and security data) and one or more DataSetMessages(the payload). The DataSetMessagesmay be signed and encrypted in accordance with the configured message security. A Security Key Serveris responsible for the distribution of the security keys needed for message security.
Each DataSetMessageis created from a DataSet. A component of a Publishercalled DataSetWritergenerates a continuous sequence of DataSetMessages. Syntax and semantics of DataSetsare described by DataSetMetaData. The selection of information for a DataSetin the Publisherand the data acquisition parameters are called PublishedDataSet.DataSet, DataSetMetaDataand PublishedDataSetare detailed in 5.2.
Note 1: The PubSub directory is an optional entity that allows Publishersto advertise their PublishedDataSetsand their communication parameters. This directory functionality is planned for a future release of this specification.