Monday, July 24, 2006

DFC Application Router supporting reverse

DFC algorithm specifies that feature boxes are marked as reversible. Then, one can verify that if A,B, and C are fbs subscribed to address a in order in originating region, then C,B,A appear in that order in terminating region for address, a. To verify this property in advance for the JSR289 DFC App Router implementation is difficult:
  1. With regular expression based subscription, it's hard to know that the above property is met for the universe of addresses.
  2. Unlike DFC, originating and terminating addresses are not natively 'comparable'.
So, simplify:

Application D issues a reverse with address, r
Two cases.
  1. r subscribes to D in the other region. Compute route set of r, RS(r). D is in RS(r). Take RSR(r) = Suffix(RS(r), D) which is the list of applications higher in priority than D. [What about applications that have no ordering relationship with D? - They are arbitrarily included or not included?]
  2. r does not subscribe to D in other region. Compute route set of r, RS(r). D is not in RS(r). Let RRS(r) = RS(r). No fanciness trying to determine a suffix of RS(r) based on inferred order of D within RS(r) - too complex.