1. A method for a plurality of groups to implement a process, the method comprising: receiving a process specification for the process wherein the process comprises a plurality of activities, wherein the process specification specifies a process graph, wherein the process graph comprises a plurality of activity nodes, wherein each activity node is associated with one group, wherein each one of the groups is associated with at least one activity node, and wherein that group associated with any one of the activity nodes is to perform all activity represented by that one of the activity nodes, and wherein the groups comprise a first group and a second group or more groups; deriving a plurality of subordinate specifications from the process specification wherein each one of the subordinate specifications specifies one of a plurality of subordinate graphs comprising at least one activity node all of which are associated with the same group, wherein the plurality of subordinate graphs comprise a first graph comprising a message send activity node associated with the first group and a second graph comprising a message receive activity node associated with the second group, wherein the message send activity node represents a message send activity wherein message receive activity node represents a message receive activity, wherein the message receive activity delays execution until it receives data from the message send activity, and wherein at least one of the subordinate graphs comprises a non-conditional split because the process graph comprises a conditional split; and distributing the subordinate specifications to the groups such that each group implements and executes a subordinate process to therefore perform the process in a distributed manner.