none
Best architectural option for Hub app receiving data from peers in subset of LAN

    Question

  • Hi All!

    I have the followin scenario.

    • The company has a huge LAN environment (thousands of PCs).
    • In a plant (with ,say, 50 computers belonging to the LAN), i need to develop an App which will receive information about data being entered in some of the other computers, in real time.
    • So the Hub App will be listening and the clients will be broadcasting info. The hub will display data as it arrives from the clients.

    Questions:

    1) Is it possible to develop this without the clients knowing where is the Hub located (i.e. IP or hostname) ?

    2) How to make this as efficient as possible so the data is travelling just within the confines of the plant, not going to the whole network.

    3) which networking platform (WCF, TCP , remoting) would you recommend for this task.

    Thanks!

    dan


    dfirka

    Thursday, July 03, 2014 1:19 PM

Answers

  • 1) Is it possible to develop this without the clients knowing where is the Hub located (i.e. IP or hostname) ?

    The client machine must know the IP of the machine that is hosting the service.

    2) How to make this as efficient as possible so the data is travelling just within the confines of the plant, not going to the whole network.

    That would be that the client machines know the LAN IP of the machine that is hosting the service. The service is only going to be in communcations with any machine that makes initial contact with the service. The service is not broadcating on the LAN, and the client must always make the initial contact with the service before communcations will commence between the client machine hosting the client software and the server machine hosting the service software.

    3) which networking platform (WCF, TCP , remoting) would you recommend for this task.

    WCF Web service over HTTP hosted by IIS, WCF service over TCP/IP, a selfhosting service or WCF over MSMQ, a selfhosting service are the choices. All new .NET technology is centered around WCF and legacy .NET remoting is falling by the wasteside. 

    • Marked as answer by dfirka Thursday, July 03, 2014 9:33 PM
    Thursday, July 03, 2014 5:50 PM

All replies

  • 1) Is it possible to develop this without the clients knowing where is the Hub located (i.e. IP or hostname) ?

    The client machine must know the IP of the machine that is hosting the service.

    2) How to make this as efficient as possible so the data is travelling just within the confines of the plant, not going to the whole network.

    That would be that the client machines know the LAN IP of the machine that is hosting the service. The service is only going to be in communcations with any machine that makes initial contact with the service. The service is not broadcating on the LAN, and the client must always make the initial contact with the service before communcations will commence between the client machine hosting the client software and the server machine hosting the service software.

    3) which networking platform (WCF, TCP , remoting) would you recommend for this task.

    WCF Web service over HTTP hosted by IIS, WCF service over TCP/IP, a selfhosting service or WCF over MSMQ, a selfhosting service are the choices. All new .NET technology is centered around WCF and legacy .NET remoting is falling by the wasteside. 

    • Marked as answer by dfirka Thursday, July 03, 2014 9:33 PM
    Thursday, July 03, 2014 5:50 PM
  • Thanks,

    Regarding (1), is there any way for a selfhosting service over TCP-IP to make itself "discoverable", so that the client checks whether there are any hosts listening closeby?

    If that is not posible, the only options looks like using a central DB accesible by both client and server, where the server updates its IP so that the clients would connect with it. Do you agree? (currently both client and server are actually connecting to the db via WebServices through AppSvr)

    dan


    dfirka

    Thursday, July 03, 2014 9:38 PM
  • Regarding (1), is there any way for a selfhosting service over TCP-IP to make itself "discoverable", so that the client checks whether there are any hosts listening closeby?

    No, WCF is about SOA. The client must know about the location of the WCF service by it the service's IP address, which is set by the IP assigned to the machine hosting the WCF service on a network on the LAN Local area network or WAN Wide Area Network/the Internet. So no the WCF service is not discoverable, and the WCF client must absolutely know  where the WCF service is located at what machine IP the machine hosting the WCF service is located, which is done by WCF client-side configuration.

    If that is not posible, the only options looks like using a central DB accesible by both client and server, where the server updates its IP so that the clients would connect with it. Do you agree? (currently both client and server are actually connecting to the db via WebServices through AppSvr)

    No, the machine that is hosting the WCF service is assigned a static IP on the LAN or WAN that never changes. The IP assigned to the machine is static so that the client wanting to use the service knows how to locate the machine hosting the WCF service by the hosting machine's static IP that never changes.

    You can talk to the network administrator about static IP(s).

    Friday, July 04, 2014 1:11 PM