Method and apparatus to accomplish peer-to-peer application data routing between service consumers and service providers within a service oriented architecture
AssigneeAccenture Global Services Limited
InventorsBrian O'Neill, James Stogdill
Life of this patent
Estimating the term…
Abstract
A Peer-to-Peer Application Data Routing Fabric is described. The Fabric provides routing between endpoints resident in peer nodes of a Service Oriented Architecture where the routing is based on endpoint presence, availability, status, and location to satisfy the requirements of fault tolerance and load balancing among homogenous endpoints; or routing by address among instances of differing type. In the preferred embodiment of the Fabric, the Session Initiation Protocol components, interactions and transport mechanisms are leveraged and extended.
Claims44
A method for routing data among endpoints in a distributed network comprising:
- receiving, in a service access point, a request for a service of a requested service type from a service consumer;
- determining, in a proxy corresponding to the service access point, whether a pre-existing binding exists between the service consumer and a plurality of nodes of the requested service type;
- if the determining indicates that a pre-existing binding exists:
- selecting a target node from the plurality of nodes;
- and
- establishing a communication route directly between the target node and the service consumer, wherein a service broker is bypassed by the communication route;
- if the determining indicates that no pre-existing binding exists:
- querying a private persistent registry corresponding to the service broker to obtain a list of nodes from the plurality of nodes providing service of said particular service type;
- collecting, in the service broker, status and routing information for the nodes comprising the list of nodes;
- creating a plurality of bindings between the nodes comprising the list of nodes and the requested service type in a binding cache accessible to the proxy;
- analyzing the status and routing information to identify a node from the list of nodes as the target node;
- and
- establishing a communication route between the target node and the service consumer through the service broker.
A re-writable non-transitory computer-readable medium comprising processing instructions which, when executed in a computer system, is operable to perform data routing among endpoints in a distributed network, said processing instructions comprising:
- instructions to receive, in a service access point, a request for a service of a requested service type from a service consumer;
- instructions to determine, in a proxy corresponding to the service access point, whether a pre-existing binding exists between the service consumer and a plurality of nodes of the requested service type;
- if the determining indicates that a pre-existing binding exists, instructions to:
- select a target node from the plurality of nodes;
- establish a communication route directly between the target node and the service consumer, wherein a service broker is bypassed by the communication route;
- if the determining indicates that no pre-existing binding exists, instructions to:
- perform a query of a private persistent registry corresponding to the service broker to obtain a list of nodes from the plurality of nodes providing service of said particular service type,
- collect, in the service broker, status and routing information for the nodes comprising the list of nodes,
- create a plurality of bindings between the nodes comprising the list of nodes and the requested service type in a binding cache accessible to the proxy,
- analyze the status and routing information to identify a node from the list of nodes as the target node, and
- establish a communication route between the target node and the service consumer through the service broker.
The computer readable medium according to 26, wherein the instructions to establish a communication route directly between the target node and the service consumer comprises instructions to swap a message header corresponding to the service request to replace interim address information comprised in the message header with a final destination address information corresponding to the target node.
Dependencies are inferred from the claim text.