×

Managing communications between computing nodes

  • US 7,801,128 B2
  • Filed: 03/31/2006
  • Issued: 09/21/2010
  • Est. Priority Date: 03/31/2006
  • Status: Active Grant
First Claim
Patent Images

1. A computer-implemented method for managing data transmissions between a plurality of virtual machine nodes hosted on a network of multiple computing systems such that each of the computing systems hosts multiple of the virtual machine nodes, the method comprising:

  • receiving definitions of multiple groups of nodes such that each group has multiple members that are each authorized to communicate with the other members of the node group, the multiple members of each group being multiple related virtual machine nodes from the plurality of virtual machine nodes;

    for each of multiple source virtual machine nodes that each initiate a transmission of data to a remote destination virtual machine node, and under control of the computing system hosting the source virtual machine node, permitting the transmission only if authorized by,receiving an indication from the source node to transmit data to the remote destination node;

    determining if authorization for current transmissions from the source node to the destination node already exists based on negotiations from any prior transmissions from the source node to the destination node;

    if authorization for current transmissions from the source node to the destination node is determined to already exist, transmitting the data to the destination node; and

    if authorization for current transmissions from the source node to the destination node is not determined to already exist,communicating with a distinct computing system hosting the destination node to negotiate for authorization from the distinct computing system for the source node to transmit to the destination node, authorization for a source node to transmit to a destination node being based at least in part on the source node and the destination node each being members of a common node group; and

    if the negotiated authorization is obtained from the distinct computing system, transmitting the data to the destination node on behalf of the source node, and storing an indication of the obtained authorization for use in authorizing future transmissions of data from the source node to the destination node without negotiation; and

    for each of multiple destination virtual machine nodes to which a transmission of data is initiated from a remote source virtual machine node, and under control of the computing system hosting the destination virtual machine node, determining whether to authorize the transmission by;

    receiving a request from the computing system hosting the source node for authorization to transmit data to the destination node;

    determining a first set of one or more node groups of which the source node is a member;

    determining a second set of one or more node groups of which the destination node is a member;

    determining whether the source node is authorized to communicate with the destination node based at least in part on whether at least one group of the first set is also a group of the second set; and

    sending a response to the computing system hosting the source node that indicates whether authorization is provided for the source node to communicate with the destination node,and wherein each of the computing systems hosts a single privileged virtual machine node that executes a data transmission manager program to control transmissions to and from all other virtual machine nodes hosted by the computing system by intercepting those transmissions and by forwarding those transmissions to intended recipients only if those transmissions are determined to be authorized, such that the permitting of an initiated transmission from a source virtual machine node under the control of the computing system hosting the source virtual machine node is performed by the data transmission manager program for that computing system, and such that the determining whether to authorize an initiated transmission to a destination virtual machine node under the control of the computing system hosting the destination virtual machine node is performed by the data transmission manager program for that computing system.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×