A service which acts as an intermediary process which handles the communication between the user(s) and uTorrent instance(s).
The service must be able to communicate with multiple uTorrent instances properly, isolating each communication to specific users only. At no point of time can any user access instance(s) that does not belong to the user.
The service must be able to keep track of relevant user information pertaining to the uTorrent instances, be it in the form of a serialized object or database. Information must also be synchronized and free of any overlapped information. The service must be able to detect duplicates and create status links between the duplicates.
The service must also handle both pre and post initialization of the uTorrent instance(s) which includes but not limited to creating/moving/uploading/extracting/deleting files, starting/stopping/removing uTorrent instances, handling unexpected errors(sudden reboot of PC), and/or restarting of all instances. The service is also required to interact with Amazon S3 API for uploading/tracking purposes.
The service must also monitor the uTorrent instances whereby should one terminate prematurely, it will be handled accordingly.
The server must also allow front-end communication that is called externally from another source. XML will used for front-end to service communication. The communication must be clear and easily modifiable to add/delete functions.
GUI interface is not needed(up to the programmer to decide if he wishes to create one) and any configuration should be modifiable and not hard coded.