I need to develop a real-time monitoring solution.
there is a data source that sends real-time datas to the server.(~500kb of data every second).
A number of desktop clients(~100) connects to the server to get the real-time data, and displays the streaming datas in a chart which is updated every second.
the service side should be up and running for longer than a month.
In a way, it is similar a stock price monitoring program.
What are some technologies in .NET stack that I can use in this scenario?
For me what you are describing here, would imo fit perfectly into a message queueing scenario. (I’m working on a client which works quite similar to what you are describing).
I would design it that way, that the updating client uploads via a WCF interface and the server publishes it then via message queueing to the clients. To reduce the networkload you should compress that data, if easily possible (e.g. is xml data).
MsMq you get out of the box from Microsoft including the libs in the .NET. We are using TIBCO in our company, because it’s according to the JMS spec and offers a .NET wrapper. But it’s not cheap.
You can as well have a look at ActiveMQ and use the Spring.NET wrapper for it.
Edit:
The problem the clients which should get just parts of the data, you can create a topic/queue per stock and the client are listening just one the stock queues they are interested in.