I have some questions about OPC UA PubSub, and I would like to hear your feedback and inputs.
- What are your experience with OPC UA PubSub so far? In your opinion, what is the advantage with OPC UA PubSub? What is your use cases - is it vertical "edge-to-cloud" connectivity? Or device-to-device communication on the plant floor?
- In your experience, do you discuss what information shall be included as a part of the DataSetMessage payloads? How shall the payload JSON object be structured and what shall it consist of? What shall be included as a part of the DataSetMetaDataMessage payloads? Will the different companion specifications give any requirements or guidelines on the PubSub message construction? Or is it basically up to end users and suppliers/vendors to agree on this case-by-case?
- In your opinion, what does it mean to be OPC UA PubSub compliant? What exactly shall a publisher or OPC UA server implement and support to be "OPC UA PubSub compliant"? Can an publisher getting data from a non-OPC source that only constructs OPC UA PubSub messages be considered an OPC UA PubSub compliant publisher?
- DataSetClass acts as a template declaring the content of a DataSet. What is "declaring the content" mean? How will this look like in practice?
PubSub is a better choice:
1) when the application requirements mean the same message is delivered to many receivers. If each receiver needs a different message then there is little advantage over client-server.
2) when devices need to communicate with cloud based brokers (MQTT or AMQP) infrastructure because this type of infrastructure is designed for the pub-sub message exchange pattern.
PubSub does not replace Client-Server. It simply provides alternatives that allow UA applications to satisfy a larger number of requirements.
What goes into a DataSet is up to the application. OPC UA provides no restrictions or suggestions.
As with all OPC UA features, compliance is based on meeting the requirements of one or more profiles.
The available profiles are online here:
The PubSub profiles can be found in the "Client Category | Publisher Category" and "Client Category | Subscriber Category" trees.
In practice, all PubSub messages are a simple list of values where the DataSet specifies the structure and semantics for each value in the list.