FlowBasedProgramming | RecentChanges | Preferences

Data in FlowBasedProgramming (FBP) is primarily managed as streams of InformationPackets (IPs). At a given point in time, an IP is either owned by a particular process or is in transit between two processes. More by luck than by good planning this actually avoids the major pitfall awaiting complex data structures in many approaches to DataflowProgramming: since the whole IP is only owned by one process at a time, any field in it can be changed as desired, and the IP is then sent on.

FBP imposes a strict accounting on IPs - all IPs received or created by a process must be disposed of explicitly, much as one disposes of a memo: the IP can be sent on, destroyed or filed. An IP can also be attached to another one, much as one would clip two memos together. This can ramify into a tree structure which is sent from process to process as a single unit (see TreeIP), so "ownership" can be broadened to be direct or indirect.

In the various implementations of FBP to date, which all used a single address space, ownership was transferred by shipping IP addresses or handles around - from a logical point of view it doesn't matter if one transfers the whole IP or just a handle - this is just a performance issue. Between address spaces or different hardware processors, it makes more sense to transfer the whole IP.

FlowBasedProgramming | RecentChanges | Preferences
This page is read-only - contact owner for a password | View other revisions
Last edited February 14, 2005 7:35 pm by PaulMorrison (diff)