Control
When methods require control data that can be asynchronously modified (eg via a GUI) this can be supplied via an AST. However, if the control data has to be supplied to several methods in a chain, their are two possible solutions: Sequential Control and Parallel Control.
Sequential Control
Where the control data is supplied to the start of the chain, and then passed with the data to the end of the chain.
Pros
Since Control data is passed with the data, each method knows what control values where applied to the data, thus ensuring that the correct controls are applied throughout the chain.
Cons
Users dont see the effects of the changes until the end of the chain (latency).
Parallel Control
Where control is applied at each method
Pros
Users see effects of changes immediately
Cons
Methods may be applying inconsistent control parameters
So which solution is best? That depends on the nature of the processing and control data. How interdependent are the control parameters? if interdependent use sequential, if not use parallel.
NB. If the control data is independent, use separate AST's to hold it, to emphasize the independence (dont hide logic).