1. A tangible computer-readable medium embodying computer-executable instructions for performing steps, when executed by one or more processors, for defining and using flow types and instances thereof, said steps comprising: defining a first flow type including a first set of properties, the first set of properties including at least one property of a plurality of possible properties selectable when defining a flow type, said defining the first flow type including generating an entry in a flow type data structure maintained in a computer storage device for the first flow type, said entry identifiable based on an identifier of the first flow type and said entry including an identification of each property in the first set of properties, with each said property defining a field for containing a corresponding type of value to be matched in an instance of the first flow type; defining a first instance of the first flow type based on the entry in the flow type data structure corresponding to the first flow type, said defining the first instance including retrieving the first flow type from the computer storage device in order to identify the first set of properties, and associating an attribute in the first instance with each property in the first set of properties; generating one or more first associative memory entries, based on said defined first instance of the first flow type, including a value for each said attribute in the first instance; and programming one or more associative memories with said generated first associative memory entries; wherein the computer storage device is distinct from said one or more associative memories.