Notification App Architecture [modified]
-
I am fixing to begin writing an app the obvious design is simple however it will most likely not scale very well. What I am trying to do is have an app that notifies a user when an action needs to be taken. My initial thought was to have a table that it read based on user and showed new actions. I will have about 1000+- user hitting this app I want it to be fairly close to real time. So my question is how are other doing this? I have read about WCF however it seems convoluted and possibly overkill. Another thought I had was to have a service running on a server that could send messages out to the other apps it would only need be a one way communication. Are there other ways to accomplish this? I have read WCF has quite alot of overhead as well is this correct? Thank you, EDIT*** This a winforms app FYI. Humble Programmer -- Modified Tuesday, May 10, 2011 1:49 PM
-
I am fixing to begin writing an app the obvious design is simple however it will most likely not scale very well. What I am trying to do is have an app that notifies a user when an action needs to be taken. My initial thought was to have a table that it read based on user and showed new actions. I will have about 1000+- user hitting this app I want it to be fairly close to real time. So my question is how are other doing this? I have read about WCF however it seems convoluted and possibly overkill. Another thought I had was to have a service running on a server that could send messages out to the other apps it would only need be a one way communication. Are there other ways to accomplish this? I have read WCF has quite alot of overhead as well is this correct? Thank you, EDIT*** This a winforms app FYI. Humble Programmer -- Modified Tuesday, May 10, 2011 1:49 PM
Unless all 1000+- users are on the same machine, then your app IS a "server". I'm assuming the users are remote, however, so you need to consider how they will connect to your server app to receive push notifications. What protocol will you use? For example, TCP/IP using sockets works but do you want every user solidly connected? What happens on disconnects? Who manages the firewall issues? etc... I personally would use HTTP over TCP/IP. No firewall issues for most clients. I would also probably use WCF since it comes with HTTP bindings that allow push notifications from a server. Sure you could roll your own HTTP server using IHttpHandler but since HTTP is request/reply and connectionless, you'd have to reinvent code that's already available out of the box with WCF.
Mark Salsbery Microsoft MVP - Visual C++ :java:
-
Unless all 1000+- users are on the same machine, then your app IS a "server". I'm assuming the users are remote, however, so you need to consider how they will connect to your server app to receive push notifications. What protocol will you use? For example, TCP/IP using sockets works but do you want every user solidly connected? What happens on disconnects? Who manages the firewall issues? etc... I personally would use HTTP over TCP/IP. No firewall issues for most clients. I would also probably use WCF since it comes with HTTP bindings that allow push notifications from a server. Sure you could roll your own HTTP server using IHttpHandler but since HTTP is request/reply and connectionless, you'd have to reinvent code that's already available out of the box with WCF.
Mark Salsbery Microsoft MVP - Visual C++ :java:
Go ahead with WCF as it support TwoWay Bindings so your server can notify your clients. Overhead to WCF are only to its complex implementation, but at same time it is useful in particular problems. Search in Google for TwoWay binding in WCF you will get enough resources. Regards Rushi