So MQTT is the light weight messaging protocol based on publish/subscribe model.
Originally OPC-UA was based on a request/response model, but I have read that it now also supports pub/sub extension.
I also understand that OPC-UA is a not really a protocol but a system architecture. Other than this fact, from the view point of protocol features (considering pub/sub only) what is the difference between MQTT and OPC-UA?