21:45, EEST
May 17, 2019
Hi,
can someone please tell me if a client in reverse mode (listening like a server) is able to accept multiple incoming connections at the same time? If this is not possible, how can we support hundrets of opc-ua servers located behind firewalls? Will starting a “master-client” that will accept reverse connections and creates “child-clients” for each server be an option? I didn’t see a class or method that accepts a connection or socket object in order to establish a secure channel.
Thank’s in advance!
Best regards,
Thomas
10:27, EEST
April 3, 2012
Hi,
Currently not possible. We could maybe add that in the future, if needed. I wont go into details here, but the implementation could be non-trivial due to legacy of the stack layer, so it could take some time. How important would this be for you?
Typically in these scenarios people having multiple servers have used https://www.prosysopc.com/products/opc-ua-gateway/ to aggregate the servers through a single server thus requiring opening of a single port in the server side.
P.S.
Do all these servers support reverse connections?
7:37, EEST
May 17, 2019
Hi Bjarne,
Thank you for your answer. At the moment I am on a fact-finding mission. A customer of ours wants to run hundreds to thousands of machines that should be able to put their telemetry data into a cloud-based system. Since the customer also wants to run an industry standard on his machines they came up with OPC-UA.
I do not have any experience with OPC-UA but after reading parts of the specification and after your answer I think OPC-UA might not be the best fit for this use case.
Thomas
7:57, EEST
May 17, 2019
Bjarne,
This might be too technical but in a reverse connect scenario a tcp service (that needs to be written) has to listen for incoming connections. Whenever a OPC server connects this service could create an OPC client and inject the socket. After that the communication between OPC server and client could flow as designed.
Did I miss something.
Thanks,
Thomas
10:15, EEST
April 3, 2012
Note that the reverse connections were added in UA 1.04, so it is quite new thing. Usually previously we have suggested changing the control flow such as that the UA Server would be in the cloud and UA Client would be used behind firewalls. We did so in the case: https://www.prosysopc.com/cases/kruger/. It might make sense here as well.
Your description of the reverse connect scenario is correct (though simplified). That is basically how it goes even now for the reverse connections that were added in SDK version 4.0.0, with the limitation that we can only accept one incoming connection per UaClient. We have to do this currently quite deep in the internals due to the current design (UA has more transport protocols than opc.tcp, but that is the only one that can have reverse connections; the design is quite layered). We would probably need to do some “UaClientServer” which would push out UaClients as we get incoming connections. However that could get very confusing with the API so it would need some careful thought. Therefore it is currently not a very high priority, unless someone needs it.
Most Users Ever Online: 1919
Currently Online:
11 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Heikki Tahvanainen: 402
hbrackel: 144
rocket science: 88
pramanj: 86
Francesco Zambon: 83
Ibrahim: 78
Sabari: 62
kapsl: 57
gjevremovic: 49
Xavier: 43
Member Stats:
Guest Posters: 0
Members: 736
Moderators: 7
Admins: 1
Forum Stats:
Groups: 3
Forums: 15
Topics: 1524
Posts: 6450
Newest Members:
kristiewinkle8, rust, christamcdowall, redaahern07571, nigelbdhmp, travistimmons, AnnelCib, dalenegettinger, howardkennerley, ThomassnismModerators: Jouni Aro: 1026, Pyry: 1, Petri: 0, Bjarne Boström: 1026, Jimmy Ni: 26, Matti Siponen: 346, Lusetti: 0
Administrators: admin: 1