I'd like to develop a simple solution using .NET for the following problem:
We have several computers in a local network:
- 10 client computers that may need to execute a program that is only installed on two workstations
- The two workstations that are only used to execute the defined program
- A server that can be used to install a service available from all previously described computers
When a client computer needs to execute the program, he would send a request to the server, and the server would distribute the job to a workstation when available for execution, and inform the client computer when the execution has been performed.
I'm not very used to web and services development so I'm not sure if it's the best way to go, but below is a possible solution I thought about:
- A web service on the server stores in queues or in a database the list of tasks with their status
- The client computer calls the web service to execute a program and gets a task id. Then calls it every second with the task id to know if the execution has been performed.
- The workstations that are available call the web service every second to know if there is something to execute. If yes, the server assigns the task, and the workstation calls the web service when the execution is completed.
I summarized this in the below figure:
Do you think to a simpler solution?