Virtual network with adaptive dispatcher
First Claim
1. An apparatus, comprising:
- a message dispatcher that routes and dispatches messages, wherein each message is routed based on an arbitrary portion of the message'"'"'s contents;
an interface through which application programs communicate with the message dispatcher to define the arbitrary portion of the message'"'"'s contents; and
stored rules instructing the message dispatcher to route a first network message based on a first arbitrary attribute and a second message based on a second arbitrary attribute, wherein the second arbitrary attribute is different from the first arbitrary attribute,wherein the first arbitrary attribute is selected from a set of header and data contained in each message,wherein each rule is stored in a message handler, andwherein the message dispatcher comprises computer executable instructions that, when executed, cause the data processing apparatus to perform the steps of;
(i) polling a second apparatus at predetermined intervals; and
(ii) receiving poll responses from the second apparatus;
wherein responsive to a predetermined condition comprising a failure to receive the poll responses, a first message handler sends an alteration message to alter a second message handler;
wherein the predetermined condition comprises a nonoccurrence of step (ii) for a predetermined amount of time.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems for providing a virtual network are disclosed. At least one layer of abstraction is created between network service applications and conventional network protocols by inserting an adaptive dispatcher between applications and network transport services on each machine in a network. The message protocol in the virtual network is extensible, allowing application programs to create new headers within any message as needed. The adaptive dispatcher contains handlers that route and dispatch messages within the virtual network based on arbitrary content within each message, including any combination of headers and/or data content. Each device on the virtual network has a virtual address to which messages are directed, allowing devices to move within the network without reconfiguring routing tables. Handlers may be automatically created when an event meeting predefined criteria occurs, including the non-occurrence of a condition, making the virtual network self-healing and adaptive to reconfiguration.
63 Citations
33 Claims
-
1. An apparatus, comprising:
-
a message dispatcher that routes and dispatches messages, wherein each message is routed based on an arbitrary portion of the message'"'"'s contents; an interface through which application programs communicate with the message dispatcher to define the arbitrary portion of the message'"'"'s contents; and stored rules instructing the message dispatcher to route a first network message based on a first arbitrary attribute and a second message based on a second arbitrary attribute, wherein the second arbitrary attribute is different from the first arbitrary attribute, wherein the first arbitrary attribute is selected from a set of header and data contained in each message, wherein each rule is stored in a message handler, and wherein the message dispatcher comprises computer executable instructions that, when executed, cause the data processing apparatus to perform the steps of; (i) polling a second apparatus at predetermined intervals; and (ii) receiving poll responses from the second apparatus; wherein responsive to a predetermined condition comprising a failure to receive the poll responses, a first message handler sends an alteration message to alter a second message handler; wherein the predetermined condition comprises a nonoccurrence of step (ii) for a predetermined amount of time. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A data processing apparatus, comprising:
-
a message dispatcher module; a transport adapter for interfacing the message dispatcher module to a transport protocol; an interface through which application programs communicate with the message dispatcher module; stored rules instructing the message dispatcher module to route a first network message based on a first arbitrary attribute of said first network message, and to route a second network message based on a second arbitrary attribute different from said first arbitrary attribute, of said second network message, wherein the first and second arbitrary attributes are selected from a set of headers and data contained in each network message; wherein each rule is stored in a message handler, and wherein a first message handler sends an alteration message to alter a second message handler responsive to the occurrence of a predetermined condition, and wherein the message dispatcher module comprises computer executable instructions that, when executed, cause the data processing apparatus to perform the steps of; (i) polling a second apparatus in first predetermined intervals; and (ii) receiving poll responses from the second apparatus, wherein the predetermined condition comprises a nonoccurrence of step (ii) for a predetermined amount of time. - View Dependent Claims (8, 9, 10)
-
-
11. A method for routing network messages, comprising the steps of:
-
(i) routing a first network message based on a first attribute of the first network message; (ii) routing a second network message based on a second attribute, different from said first attribute, of said second network message; (iii) storing rules instructing a message dispatcher module to route the first network message and the second network message, wherein each rule is stored in a message handler, and wherein a first message handler sends an alteration message to alter a second message handler responsive to the occurrence of a predetermined condition, and wherein the message dispatcher module comprises computer executable instructions that, when executed, cause the data processing apparatus to perform the steps of; (iv) polling a first data processing device in predetermined intervals; (v) receiving poll responses from the first data processing device; and (vi) when step (v) has not occurred for a predetermined amount of time, altering a message handler to direct messages originally addressed to the first data processing device to a second data processing device, wherein the first and second attributes are arbitrarily selected from a set of headers and data of each network message. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A network router comprising computer executable instructions that, when executed by the router, perform steps of:
-
(i) storing routing information received from a network application, wherein the routing information comprises a message field, a field condition, and a routing instruction; (ii) receiving at least a first and a second network message; (iii) processing each of the at least first and second network messages by comparing each of the at least first and second network messages to the stored routing information; (iv) when a message field of each of the received at least first and second network message meets the field condition, performing the routing instruction for each of the at least first and second network message, wherein the network router stores rules instructing a message dispatcher to route the first network message based on a first arbitrary attribute, and to route the second network message based on a second arbitrary attribute, wherein the second arbitrary attribute is different from the first arbitrary attribute, and wherein each rule is stored in a message handler, and wherein a first message handler sends an alteration message to alter a second message handler responsive to the occurrence of a predetermined condition, and wherein the message dispatcher comprises computer executable instructions that, when executed, cause the network router to perform the steps of; (v) polling an apparatus in predetermined intervals; and (vi) receiving poll responses from the apparatus, wherein the predetermined condition comprises the non-occurrence of step (vi) for a predetermined amount of time.
-
-
21. The network router of step 20, wherein, in step (iv), the routing instruction comprises altering the corresponding at least first and second network messages.
-
22. The network router of step 20, wherein, in step (iv), the routing instruction comprises routing the corresponding at least first and second network messages based on an application level header.
-
23. A computer network, comprising:
-
a plurality of computers, each comprising; at least one transport adapter that converts messages between a transport layer protocol and a network protocol; and a message dispatcher that routes and dispatches messages based on an arbitrary portion of the message'"'"'s contents, wherein the message dispatcher in each computer routes messages in a virtual network protocol over the transport layer protocol using the at least one transport adapter; stored rules that instruct the message dispatcher to route a first network message based on a first arbitrary attribute and to route a second network message based on a second arbitrary attribute, wherein the second arbitrary attribute is different from the first arbitrary attribute, and wherein each of the stored rules is stored in a message handler, and wherein a first message handler sends an alteration message to alter a second message handler responsive to the occurrence of a predetermined condition, and wherein the message dispatcher comprises computer executable instructions that, when executed, cause each computer to perform the steps of; (i) polling an additional computer in first predetermined intervals; and (ii) receiving poll responses from the additional computer, wherein the predetermined condition comprises the non-occurrence of step (ii) for a predetermined amount of time. - View Dependent Claims (24)
-
-
25. A virtual network, comprising at least one virtualized component inserted between layer 7 and layer 6 of an OSI protocol stack, wherein said virtualized component provides a virtual network service, wherein the at least one virtualized component comprises a virtual network message dispatcher that routs and dispatches messages, wherein each message is routed based on an arbitrary portion of the message'"'"'s contents, and wherein each rule is stored in a message handler, and wherein the virtual network message dispatcher comprises computer executable instructions that, when executed, cause a first data processing apparatus to perform the steps of:
- (i) polling a second data processing apparatus at predetermined intervals; and
(ii) receiving poll responses from the second data processing apparatus, wherein a first message handler sends an alteration message to alter a second message handler responsive to the first data processing apparatus failing to receive the poll response in step (ii), said failure being a predetermined condition. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32)
- (i) polling a second data processing apparatus at predetermined intervals; and
-
33. A computer network architecture comprising a plurality of data processing devices interconnected via a computer network, each data processing device comprising:
-
a virtual message dispatcher that routes messages to intended destinations and dispatches messages to appropriate applications at their intended destination, wherein each message is handled based on an arbitrary portion of the message'"'"'s contents; stored rules that instruct the virtual message dispatcher to route a first network message based on a first arbitrary attribute and a second network message based on a second arbitrary attribute different from the first arbitrary attribute, wherein a first intended routing destination is replaced by a second intended routing destination when the first intended routing destination fails to respond to a plurality of poll requests; and an interface through which OSI layer 7 application programs communicate with the message dispatcher to define the arbitrary portion of the message'"'"'s contents by which each message is handled, wherein the virtual message dispatcher comprises a transport adapter for converting messages between a virtual network protocol used by network applications and a transport protocol used by the computer network, and wherein the virtual message dispatcher is configurable for use with a second transport protocol by adding a second transport adapter that converts messages between the second transport protocol and the virtual network protocol, without requiring any network applications to be reconfigured for use with the second transport protocol.
-
Specification