This class implements core functions of a service daemon. The daemon should run until it is requested by the runtime
environment to terminate.
When started this
AbstractEngine creates a local thread that observes the engine's state. If a termination
signal was caught by the environment the thread enters the shutdown sequence and asks all known processes to
terminate. Finally all engine resources are cleard and the engine will stop.
Shutdown sequence
If the engine receives a shutdown command the engine observer starts the shutdown sequence. All known processes are
requested to stop. This may take a while since there can be "long" running tasks to do while shutting down. If there
are abandoned threads or processes that do not stop in a specified amount of time (configurable using
#SHUTDOWN_TIMEOUT) the engine is shut down forcibly.