Hello all,
I have been reading through the OPC UA Reference (v104), specifically Part 14: PubSub under PubSub Concepts. I would like to verify if my understanding is correct.
1. An information source is usually the publisher (Can be a logical node, a physical sensor, or some sort of OPC UA Server)
2. The subscriber is the consumer of information
3. The flow of information is one way: Publisher to Broker to Subscriber
4. The spec does not specify that the publisher should have to handle any actions/ methods/ services from the subscriber (also to say, making it a “two way” connection)
Thank you.
05/30/2017
request-response operations are provided by UA client-server. Numerous technical issues make it problematic to replicate this message pattern over a broker designed for large numbers of devices.
A publisher can also be a subscriber so two way communication is possible – just not a formal request-response message pattern.
Randy Armstrong said
request-response operations are provided by UA client-server. Numerous technical issues make it problematic to replicate this message pattern over a broker designed for large numbers of devices.A publisher can also be a subscriber so two way communication is possible – just not a formal request-response message pattern.
Hi Randy
I was having the same qualms regarding implementing the request-response pattern over a broker too. With regards to the last sentence, does that mean the spec only specifies data and event transfer over pubsub, but not method invocations (as this require two way communication, which the spec does not specify either).
Thank you.
05/30/2017
A method is just a set of input parameters and a set of output parameters so you could design 2 datasets to look like a method.
The important point to keep in mind is you can only have “methods” where the caller is not expecting to block waiting for a response. Ideally you would want methods that can be sent to multiple responses can be sent without breaking the pattern.
For example, in electrical distribution you could have a centralized service send a “ShedLoad” command and every device that receives would return a ShedLoad response indicating whether it could do it.
In other cases, it would make no sense to use pubsub to implement a method. For example, a method to browse the file system on a device would implicitly require the caller to make multiple calls in sequence based on the results returned. This kind of thing is best done with client-server.
05/30/2017
1 Guest(s)