Data Flow Patterns

Based Data

This is not a flow pattern, but instead describes a type of transformation that occurs on data.

Let org, mod be Data;
mod is based on org iff
the algorithm that produces mod uses org where
the algorithm cannot be simplified to remove org;
Based Flow
Let org be Data; 
Let A be a Point; 
x_A( dt ) is based on org iff 
the series of algorithms, that produce the resultant flow x_A( data ), use org where 
the series of algorithms cannot be simplified to remove org;
Write Access Flow
Let A be a Point; 
A has write access flow if 
x_A( {mode:set} | dt ) modifies A.Data based on dt;
Read Access Flow
Let A be a Point; 
A has read access flow if 
x_A( {mode:get} | {out:ctl} | dt ) modifies dt based on A.Data
Write Data Flow
Let A be a Point; 
A has write data flow and directed data flow if 
x_A( {mode:set} | ( dt := orig ) ) results in 
write access flow on some point B in the half cluster of A with 
the dt being based on orig;
Read Data Flow
Let A be a Point; 
A has read data flow if 
x_A( {mode:get} | dt ) results in  
read access flow, based on {mode:get}, on some Point B in the half cluster of A where 
the resultant flow data is based on B.Data;
Read-Only Data Cluster
Let A be a Point; 
A is a read-only data cluster iff 
A has the combined flow of  
( managed flow and 
read data flow and 
not write data flow);
Write-Only Data Cluster
Let A be a Point; 
A is a write-only data cluster iff 
A has the combined flow of 
( managed flow and 
write data flow and 
not read data flow);
Read-Write Data Cluster
Let A be a Point; 
A is a read-write data cluster iff 
A has the combined flow of 
( managed flow and 
write data flow and 
read data flow);

Brokered Flow Patterns

Tight Unit Flow
Let A, B[i], for i=[0,n], be Points; 
Let k belong to [0,n]; 
Let incall = x_A( {in: {rel:A_B[k]} } | {out:ctl} | dt ); 
Let outcall = x_A( {out:ctl} | dt ); 
A has tight unit flow on B[i] if 
( incall results in A_B[k]( {out:ctl} | dt ) with results in outcall ) and  
( outcall is directed flow on out );

The above concept is a very vital one on which other patterns will be built. Since so many future patterns will be based on it it requires some shorthand notation.

Let A, B[i], for i=[0,n], be Points where 
A has tight unit flow on B[i]; 
Let C be a Point; 
Let A_B[k]( data ), in C.Algorithm for k=[0,n], be equivalent to 
C_A( {in:{rel:A_B[k]}} | dt );