Can someone please give example of a typical architecture employed by a trading application to display live data feed to its clients?
eg., assuming the company name of the trading application is X, is this architecture possible?
1. X subscribes to Bloomberg using data feed API. There is a windows service or application process (process1) running on one of the servers of X. It maintains a socket connection with Bloomberg by calling the data API using a specific port,data address and a list of symbols.
2.Client machines have a Visual C++ application (front end of trading application) each running on their desktop.
3.There is a process(process2) running on one of the servers of X which has a TCP/IP socket connection listener. It is connected to server process process1 using named pipe to get streaming data.
4.The client machine VC++ GUI is connected to the server process process2 running on X using Socket connection, and live data stream is supplied to the client
If this is possible, I am confused whether how the server process (process2) is able to serve socket connections for so many clients (eg. 500) at the same time? Does it mean that process2 creates 500 threads to service each client?
Any tips or suggestions will be highly appreciated
eg., assuming the company name of the trading application is X, is this architecture possible?
1. X subscribes to Bloomberg using data feed API. There is a windows service or application process (process1) running on one of the servers of X. It maintains a socket connection with Bloomberg by calling the data API using a specific port,data address and a list of symbols.
2.Client machines have a Visual C++ application (front end of trading application) each running on their desktop.
3.There is a process(process2) running on one of the servers of X which has a TCP/IP socket connection listener. It is connected to server process process1 using named pipe to get streaming data.
4.The client machine VC++ GUI is connected to the server process process2 running on X using Socket connection, and live data stream is supplied to the client
If this is possible, I am confused whether how the server process (process2) is able to serve socket connections for so many clients (eg. 500) at the same time? Does it mean that process2 creates 500 threads to service each client?
Any tips or suggestions will be highly appreciated
Use a thread pool and queue work items