摘要 |
Steering data communications packets for transparent, bump-in-the-wire data processing among multiple service applications; the service applications executing on servers organized in groups, each server in a server group executing an instance of a same service application, including selecting an instance of each of the service applications to process a packet; identifying a server selection value for each packet as a single integer value that yields server selection modulus values that identify each instance of each of the service applications to process the packet; and steering, by the switches in dependence upon the server selection modulus values, each packet to each instance of each of the service applications to process the packet. |
主权项 |
1. A method of steering data communications packets for transparent, bump-in-the-wire data processing among multiple service applications, the method implemented with link-level data communications switching apparatus disposed among two or more data communications networks, the method comprising:
receiving, in a steering control engine of the switching apparatus from a source network, data communications packets directed to a destination network, the switching apparatus comprising:
the steering control engine and link-level data communications switches, the steering control engine comprising a module of automated computing machinery coupled for data communications to the link-level data communications switches, each link-level data communications switch comprising data communications ports, a plurality of the ports connected for data communications to the service applications;the service applications organized in sets, each set of service applications comprising a plurality of service applications that process a packet in a predefined sequence through the service applications in the set; the service applications executing on servers; andthe servers organized in groups, each server in a server group executing an instance of a same service application, each instance of a service application identified by a server selection modulus value that is unique among the instances of a service application executing on the servers in a server grow; selecting, by the steering control engine for each packet, an instance of each of the service applications to process the packet; identifying, by the steering control engine for each packet, a server selection value comprising a single integer value that yields, by a plurality of modulus operations, server selection modulus values that identify each instance of each of the plurality of service applications to process the packet; and steering, by the switches in dependence upon the server selection modulus values, each packet to each instance of each of the plurality of service applications to process the packet. |