Solution for keeping chain of responsibility's members independent.
Publication Date: 2011-Feb-10
The IP.com Prior Art Database
Solution for keeping pipeline components independent even when they can produce contradict output. It is achieved by adding reconciling component, which gets and buffers output from all pipeline components, reconciling contradict inputs when needed. When end of the pipeline is reached, reconciling component returns complete correct output.
Page 01 of 2
Solution for keeping chain of responsibility 's members independent.
The problem lays in the area of converting set of abstract settings (input) into the set of specific settings (output). Each abstract setting is transformed into the one of more specific setting. To ease the process of conversion often Chain of Responsibility (CoR) pattern is used, which is kind of divide-and-conquer approach. In CoR, the responsibility of handling input set of abstract settings is divided between number of pipeline components, where each component handles only its part of input, and is unaware of existing of other components. However, in some domain it may happen that output settings can overlap, ie: two abstract settings can be transformed into contradictory specific settings and reconciliation needs to be done. In such cases, CoR pattern becomes unwieldy because pipeline components need to get awareness of other components (cannot stay independent).
The typical solutions to this problem are:
Don't use CoR pattern, make one big component instead of splitting job between
pipeline components. This solution produces a single, complicated, hard-to-maintain component.
Use degenerated CoR: resign from having pipeline components independent and
unaware of existing of others. Let them communicate to reconcile contradict outputs. This solution provides much smaller or even no improvement in terms of simplicity, compared to original CoR.
To describe improvement given by our solution, we will use two diagrams, named "Typical CoR solution" and "Improved CoR solution".
On the first diagram we see 4 in...