Quantcast
Channel: Service Bus forum
Viewing all articles
Browse latest Browse all 1916

Appropriate use of ServiceBus Relay for large number of clients WCF

$
0
0

I was hoping for some design advice on the use ServiceBus relays and if the they are the most appropriate technology for my use case.

Summary of setup

 1. There are 1000's of clients
 2. All clients are behind a NAT and not directly accessible by the server
 3. There is 1 server that is used to configure one client at a time
 4. The server will run a user interface to access the clients using WCF (TCP)
 5. This user interface is only required occasionally to configure the client.
 6. The server should be able to initiate a session to configure a single client on demand.
 7. Both server and client is written in .net
 8. When the server connects to a client - it would keep the session open until all configuration is completed - it also uses a duplex channel to enable 2-way communication.

To achieve this I was proposing that each client would make a connection to ServiceBus relay using netTCPRelayBinding.  There would be a unique relay for each client therefore 1000's of relays.  This relay would remain active permanently waiting for the server to connect to the relay when we want to configure.  We would complete configuration using a duplex channel and then disconnect.  The relay would remain open on the client waiting for the next time that we want to connect to configure the service.  It could be months between connections to configure the client.

Questions

 1. Is this the best design solution?
 2. Will the relay stay open for very long periods of time (days, months)
 3. On the client I have subscribed to the serviceHost Faulted event.  Is this enough to capture disconnects from the relay and allow me to then re-create the relay if it failed?
 4. Is it possible that the client would create the relay - but something goes wrong and it does not fault - but therefore the server can never contact that client?
 5. Should ReliableSession be used
 6. Is a duplex session problematic
 7. Is there a significant performance issues in having 1000's of clients create relay's that are only used very occasionally?
 8. Would there be a cost impact for creating 1000's of relay connections that are only occasionally used?

If this is not the best solution to keep these clients contactable, what would be your suggestion?

Thanks and I look forward to your advice.


matvdl


Viewing all articles
Browse latest Browse all 1916

Trending Articles