|
My network application deals with security, and as such, it requires that real time updates be distributed to its clients within just a few seconds of their occurrence.
Right now, it uses a custom network server that implements a push model. This works great because each client doesn't have to hit the server every few seconds just to find out that nothing is happening, and the server can spend its time doing useful stuff instead of responding to thousands of wasted requests for data from the clients.
Now I am thinking about moving the system to a web server, and having the clients use a web service to communicate with it.
Is it possible to use a push model with a web server? Can a web service accommodate such a design? If not, is there some other way to solve the need for real time updating without having the clients pummel the server to death with thousands of useless requests per minute?
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
One way to do this is to incorporate OASIS Web Services Notifications[^]. It is not exactly bleeding edge, but it is an accepted and standardized notification interface.
To be honest, I found it a bit cumbersome getting all the schema dependencies straightened out, but it is doable.
I am only going to throw a few links at you since you will have more fun searching for information yourself . You should be looking for references to "WS-BaseNotification", such as this tiny page[^] on Wikipedia.
Another approach I would like to try out, but still have not had time to play around with, is setting up a callback mechanism as outlined in this CodeProject article: How to Get Notifications from a .NET Web Service[^].
It is an interesting concept with potential problems that could be worked out. Essentially, the client performs an asynchronous call to a web service on the server and the server "parks" the response. Since the client is expecting a response, it does not tear down the connection. Whenever the server has a notification to send, it sends the response with notification information to the client, which will process it and perform a new call to the "callback web service".
Soren Madsen
"When you don't know what you're doing it's best to do it quickly" - Jase #DuckDynasty
|
|
|
|
|
Hi, thanks for your great post.
I will look into those links you provided.
The coincidence is that a very early version of my system did use the "response parking" technique, but with .NET Remoting calls instead of web service calls.
This proved to be very difficult to manage for reasons that I can't recall at the moment, and that's when I developed the push implementation.
Thanks again
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|