Patent ID: 8335813

Claim:
A system for dynamic group communication, the system comprising: a network; a first computing device executing a first computing process; a second computing device executing a second computing process; a third computing device executing a third computing process; the first computing process, the second computing process, and the third computing process communicating via the network, wherein the first computing process, the second computing process, and the third computing process form a first group; the first computing process, the second computing process, and the third computing process communicating within the first group using a protocol, the protocol enabling the first computing process to migrate via the network from the first computing device to at least one of the second computing device and a fourth computing device by: obtaining group membership information for the first group of computing processes, the group membership information pertaining to at least the first computing process, the second computing process, and the third computing process in the first group, wherein the first computing process is located on the first computing device; waiting for a migration signal asynchronously at the first group; receiving the migration signal asynchronously at the first computing process; sending the migration signal asynchronously from the first computing process to at least one of the second computing process and the third computing process; establishing a synchronization point collectively within the first group; operating asynchronously until the first group reaches the synchronization point; ensuring that the first group reaches the synchronization point; spawning a fourth computing process by the first group on at least one of the second computing device and the fourth computing device, the fourth computing process replacing the first computing process in operation; establishing a second group of computing processes, the second group including the second computing process, the third computing process, and the fourth computing process, the second group replacing the first group in operation; and maintaining group membership information for the second group, the group membership information pertaining to at least the second computing process, the third computing process, and the fourth computing process; and the protocol enabling the first computing process, the second computing process, and the third computing process to asynchronously exchange data while the first computing process migrates.