QADPZ - General requirements
The system should provide the following features:
(see also the TERMINOLOGY and DESIGN)
- slave computers of different
hardware and software platforms
- slave computers join/leave at any time, accounting done at master
- multiple users at the same time
- multiple jobs per user at the same time
- multiple instances of the same job type
- task-specific binary code, data, and hardware/software requirements
- possibility to receive slave data directly from client (without passing
them through master)
- buffering of job tasks and task data at master
- slaves run as daemons/NT service so that the user applications can run
without some user to login to the computer
- handling of logging on and off of regular computer users; runs only
when nobody logged in (to avoid any disturbance of IDI computer users)
- no component vulnerable to immediate shutdown of any other component
- waste of computational resources minimalized
- possibility to reserve a group of slave computers that will be allocated
either at the same time or one by one
- automatic shutdown of the slaves in a group in case of interrupt of
one of the group members with the possibility of client receiving the
data of
the living members of the group that was damaged [to avoid wasting the
resources]
- communication between clients, master, and slaves in human-readable
easy to debug and easy to extend XML-type language
- slave user programs distributed as libraries (Win32 DLLs, UNIX libraries)
- prone to bugs in the slave programs and external hacker attacks