We have an asp.net application that needs to be expanded to notify users when an update occurs. All users need to be notified even if they don't have the asp.net app opened. All notifications must occur at the same time for everyone, so email is not an option. The application will run on a corporate network with standardized client computers running Windows XP. Approximately 45 users/client computers need to receive these updates.
My initial thoughts are to create a windows service that runs on each client computer and polls a web service (say every minute) during business hours. When an update occurs it will set a notification time (say 5 minutes from the update). As the client computers poll the web service they will receive the update and use the notification time to schedule the notification on the client computer. The client computers will schedule the notification based on the time on the server not the time on the local computer. If this works properly all client computers will notify users at the exact same time.
Does this solution make sense? How would you do it differently?
EDIT: If a client is off or disconnected they will not receive the update and they do not need to receive the update in the future. These updates are only relevant for a short period of time.