The two main Tymeac elements are Queues and Functions.
Queues are:
- Individual user-written application programs that execute as "linked to" code
from an asynchronous task.
- The Wait Lists of pending requests
- The logical anchor points for asynchronous tasks with create/destroy options of:
- Created at Tymeac startup or
- created when first required.
- Destroyed after an idle period or
- never destroyed.
- The threshold variables for activating a new asynchronous task
Functions are lists of Queues.
The Client
application passes a request to Tymeac to get the job done
(a Tymeac Function).
Tymeac
schedules the request on the Tymeac Queues necessary to
complete the job.
An asynchronous task on each Queue Links to invoke the user-written application program
for the Queue.
For synchronous requests, Tymeac waits until all
processing completes and returns the results of all the processes to the Client.
For asynchronous requests, Tymeac returns immediately
to the Client. (This is sometimes known as background or back-end processing.)
Optionally, when the last Queue Task process completes, it schedules an Output
Agent Queue that may further process the results of all the prior processes or pass the
results to the network. [ example ]
Many more requests may be active then there are threads to process them. Tymeac
provides a system of prioritized Wait Lists for each Queue.
Balancing
Synchronous task processing does not provide any
control over the queue of requests, the ability to view the queue, or to change priority.
Most importantly, there is no facility to control the number of asynchronous tasks active
at any one time.
Tymeac provides designers the tools
necessary to balance the asynchronous task load.
- Each Queue may have as many asynchronous tasks as are prudent and necessary as a
maximum.
- When to activate a new asynchronous task is always the major issue. Tymeac
analyzes four thresholds to give designers almost unlimited control over this parameter
for each Queue. [example]
- User parameters control when to create a physical asynchronous task (at Tymeac
start up or when first needed), and when to destroy the physical asynchronous task (after
an idle period or never.)
- Threshold and Wait List variables are alterable during execution providing a dynamic
response to an ever changing environment.