Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Solution for keeping chain of responsibility's members independent.

IP.com Disclosure Number: IPCOM000204073D
Publication Date: 2011-Feb-10
Document File: 2 page(s) / 45K

Publishing Venue

The IP.com Prior Art Database

Abstract

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.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 51% of the total text.

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

1.

pipeline components. This solution produces a single, complicated, hard-to-maintain component.

Use degenerated CoR: resign from having pipeline components independent and

2.

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...