Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>As I understand it, you are considering a systems architecture with three elements. A Windows application, a set of devices, and then an additional service that would act as a proxy or go-between, brokering communication between the two. </p> <p>First question: is there a reason the management application cannot connect to the devices itself? The Windows app used for management should be able to open a socket to the devices, just as easily as another app could. Why would you not? I guess another way to ask this is, <em>What is the justification to introduce the broker, the third element, into the architecture?</em> Is there some asynchrony you want to introduce? Is it a matter of scale - maybe the number of devices is so large that you'd like a separate app to manage communications to all of them, rather than directly connecting from an app with a UI. Is it a matter of network topology? Before considering what technology to use in the broker, first decide what is compelling you to include a broker in the architecture.</p> <p>Supposing there is good justification for the third element, then you can consider the question of whether WCF is appropriate communications technology for that element. Certainly between 2 Windows-based apps, WCF will work well. If they are on the same machine you can use a named-pipes binding and get very good perf for the local communication. If these two apps are distributed on different Windows machines you can use TCP for, again, very good performance on the network communication. </p> <p>You also want to consider the connection between the broker and the devices. WCF can interconnect with non-WCF systems. You would have to write some extensions on the WCF side, to interconnect with an existing system. But it is possible and I'd say a near-mainstream use-case for WCF. See <a href="https://stackoverflow.com/questions/381142/how-to-write-a-socket-based-custom-transport-for-wcf">this Q for more on that topic</a>. </p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload