IP Library Granted Patent US 7,610,386
Granted Patent B1
US 7,610,386 · App. 10/425,584 · Granted Oct 27, 2009

Stateful messaging gateway

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,610,386
App. No.
10/425,584
Granted
Oct 27, 2009
Kind
B1
Abstract

Methods, apparatuses and systems facilitating the support of stateful messaging protocols in web services and other network environments comprising a plurality of distributed control points. The present invention supports Web service protocols, such as SOAP-Conversation, that introduce an element of statefulness into a Web service invocation, ensuring that use of such protocols is enabled and, in some embodiments, enhanced in web services networks implemented by a plurality of distributed control points or routing nodes. As discussed above, a fundamental requirement introduced by stateful protocols is that, once an endpoint initializes stateful data (such as a session, context, or conversation token) in response to a Web service invocation, all subsequent messages associated with that conversation instance or stateful data must be routed to that endpoint. In other words, the consuming applications requiring access to functionality dependent on stateful data must have an affinity for the endpoint on which the state data resides for as long as the dependency persists. The invention provides methods, apparatuses and systems directed to ensuring that the control points implement this affinity. For each stateful conversation, certain embodiments of the present invention maintain a set of routing rules that track the usage of such protocols and make sure sequences of messages that must be sent to the same endpoint are properly dispatched. The present invention can be applied to a variety of web- or application-service network architectures comprising a plurality of distributed control points or routing nodes.

Claims (60)

1. An apparatus, comprising:

a state cache storing state information corresponding to at least one stateful conversation between a consuming node and a provider node;

a web services routing table comprising one or more routing table entries, the at least one routing table entry comprising a web service operation identifier and at least one endpoint location associated with the web service operation identifier; and,

a control point operative to:

mediate the transport of web service invocation messages and web service response messages between consuming nodes and providing nodes,

access, responsive to a first web service invocation message of the web service invocation messages identifying a web service operation, the web services routing table to identify a providing node to which the first web service invocation message is to be routed;

detect stateful conversations between consuming nodes and providing nodes based on attributes of the web service invocation messages and the web service response messages transmitted between the consuming and providing nodes, wherein the attributes include a session, context, or conversation token,

store, responsive to detection of initiation of stateful conversations, state information corresponding to newly-initiated stateful conversations in the state cache, wherein the state information for a stateful conversation comprises an affinity relation entry describing the providing node location to which previous web service invocation messages of the stateful conversation have been routed,

exchange state information with one or more remote control points,

route web service invocation messages associated with stateful conversations to providing nodes based at least in part on affinity relation entries in the state cache,

transmit affinity fault messages to the one or more remote control points including information corresponding to a second web service invocation message associated with a first existing stateful conversation for which no state information is stored in the state cache, and

transmit the second web service invocation message to the remote control points of the one or more control points that respond to the affinity fault messages.

2. The apparatus of claim 1 wherein the control point is operative, in response to an affinity fault message identifying a third web service invocation message associated with a second stateful interaction, to:

scan the state cache for state information corresponding to the third web service invocation message identified in the affinity fault message,

transmit a response to the affinity fault message, if the state cache includes information relating to the stateful interaction corresponding to the third web service invocation message,

receive the third web service invocation message and route the second message based at least in part on state information in the state cache.

3. The apparatus of claim 1 wherein the state information, for each stateful conversation, comprises a consuming node identifier, a provider node identifier, and a conversation token.

4. The apparatus of claim 3 wherein the control point is operative to: route requests associated with a stateful conversation to the providing node identified in the state information associated with the stateful conversation.

5. The apparatus of claim 1 wherein the stateful conversation is a SOAP Conversation.

6. The apparatus of claim 5 wherein the conversation token is a SOAP conversation identifier.

7. The apparatus of claim 1 wherein the control point is further operative to:

transmit state information relating to newly-initiated stateful conversations to the one or more remote control points; and

receive state information relating to stateful conversations from the one or more remote control points,

store the received state information in the state cache.

8. The apparatus of claim 7 wherein the control point is operative, as to web service invocation messages associated with stateful conversations for which no state information is stored in the state cache, to:

transmit affinity fault messages to the one or more remote control points including information associated with the messages,

transmit the messages to the remote control points of the one or more control points that respond to the affinity fault messages.

9. A web services network infrastructure supporting stateful conversations between consuming nodes and providing nodes, comprising:

at least two web services nodes, wherein each of the web services nodes comprises:

a state cache storing state information corresponding to at least one stateful conversation between a consuming node and a provider node;

a web services routing table comprising one or more routing table entries, the at least one routing table entry comprising a web service operation identifier and at least one endpoint location associated with the web service operation identifier; and,

a control point module operative to:

mediate the transport of web service invocation messages and web service response messages between consuming nodes and providing nodes,

access, responsive to a first web service invocation message of the web service invocation messages identifying a web service operation, the web services routing table to identify a providing node to which the first web service invocation message is to be routed;

detect stateful conversations between consuming nodes and providing nodes based on attributes of the web service invocation messages and the web service response messages transmitted between the consuming and providing nodes, wherein the attributes include a session, context, or conversation token,

store, responsive to detection of initiation of stateful conversations, state information corresponding to newly-initiated stateful conversations in the state cache, wherein the state information for a stateful conversation comprises an affinity relation entry describing the providing node location to which previous web service invocation messages of the stateful conversation have been routed,

exchange state information with other web services nodes of the at least two web services nodes,

route web service invocation messages associated with stateful conversations to providing nodes based at least in part on affinity relation entries in the state cache,

transmit affinity fault messages to all other web services nodes of the at least two web services nodes including information corresponding to a second web service invocation message associated with a first existing stateful conversation for which no state information is stored in the state cache, and

transmit the second web service invocation message to one or more of the other web services nodes of the at least two web services nodes that respond to the affinity fault messages.

10. The system of claim 9 wherein the control point is operative, in response to an affinity fault message identifying a third web service invocation message associated with a second stateful interaction, to:

scan the state cache for state information corresponding to the third web service invocation message identified in the affinity fault message,

transmit a response to the affinity fault message, if the state cache includes information relating to the stateful interaction corresponding to the third web service invocation message,

receive the third web service invocation message and route the third web service invocation message based at least in part on state information in the state cache.

11. The system of claim 9 wherein the state information, for each stateful conversation, comprises a consuming node identifier, a provider node identifier, and a conversation token.

12. The system of claim 11 wherein the control point is operative to: route requests associated with a stateful conversation to the providing node identified in the state information associated with the stateful conversation.

13. The system of claim 9 wherein the stateful conversation is a SOAP Conversation.

14. The system of claim 13 wherein the conversation token is a SOAP conversation identifier.

15. The system of claim 9 wherein the control point is further operative to:

transmit state information relating to newly-initiated stateful conversations to other web services nodes of the at least two web services nodes; and

receive state information relating to stateful conversations from other web services nodes of the at least two web services nodes,

store the received state information in the state cache.

16. The system of claim 15 wherein the control point is operative, as to web service invocation messages associated with stateful conversations for which no state information is stored in the state cache, to:

transmit affinity fault messages to the other web services nodes of the at least two web services nodes including information associated with the messages,

transmit the messages to the one or more of the other web services nodes of the at least two web services nodes respond to the affinity fault messages.

17. The system of claim 9 further comprising a network publish/subscribe system operative to:

receive a fourth state information message posted to a topic, and

distribute the fourth state information message to subscribers associated with the topic; and wherein the network publish/subscribe system is configured to include a state information topic to which the at least two web services nodes are subscribers; and wherein the control point is operative to exchange state information with other web services nodes of the at least two web services nodes by posting state information messages including state information to the state information topic.

18. The system of claim 17 wherein the state information topic is an affinity fault topic.

19. The system of claim 17 wherein the state information topic is an affinity relation entry topic.

Assignments (18)
SECURITY INTEREST Recorded Apr 7, 2026
From: PERFORCE SOFTWARE, INC.; DELPHIX CORP.; AKANA, INC.; ROGUE WAVE SOFTWARE, INC.
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 075368/0968 →
RELEASE OF SECURITY INTEREST Recorded Apr 7, 2026
From: CORTLAND CAPITAL MARKET SERVICES, AS COLLATERAL AGENT
To: ROGUE WAVE SOFTWARE, INC.; AKANA, INC.; GLIFFY, INC.; DELPHIX CORP.
Reel/Frame 075365/0519 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 7, 2019
From: BRIGHTWOOD LOAN SERVICES LLC, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
To: AKANA, INC.; ROGUE WAVE SOFTWARE, INC.; PERFORCE SOFTWARE, INC.
Reel/Frame 049996/0115 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Jul 22, 2019
From: ANTARES CAPITAL LP, AS COLLATERAL AGENT
To: AKANA, INC.
Reel/Frame 049823/0685 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jul 22, 2019
From: PERFORCE SOFTWARE, INC.; PERFORCE INTERMEDIATE HOLDINGS, LLC; AKANA, INC.; GLIFFY, INC.; KLOCWORK INC.; OPENLOGIC, INC.; ROGUE WAVE HOLDING CORP.; ROGUE WAVE HOLDINGS, INC.; ROGUE WAVE SOFTWARE, INC.; RWS, INC.; TOTALVIEW TECHNOLOGIES, INC.; TOTALVIEW TECHNOLOGIES LLC; VISUAL NUMERICS, INC.; ZEROTURNAROUND USA, INC.; ZEROTURNAROUND, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 049823/0752 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jul 8, 2019
From: AKANA, INC.
To: CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 049688/0800 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Feb 8, 2019
From: AKANA, INC.; ROGUE WAVE SOFTWARE, INC.; PERFORCE SOFTWARE, INC.
To: BRIGHTWOOD LOAN SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 048290/0223 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Feb 8, 2019
From: AKANA, INC.; ROGUE WAVE SOFTWARE, INC.; PERFORCE SOFTWARE, INC.
To: BRIGHTWOOD LOAN SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 048290/0241 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Feb 8, 2019
From: FIRST EAGLE PRIVATE CREDIT, LLC (F/K/A/ NEWSTAR FINANCIAL, LLC (NEWSTAR FINANCIAL, LLC F/K/A NEWSTAR FINANCIAL, INC.))
To: ROGUE WAVE SOFTWARE, INC.; ROGUE WAVE HOLDINGS, INC.; KLOCWORK INC.; TOTALVIEW TECHNOLOGIES, INC.; TOTALVIEW TECHNOLOGIES LLC; RWS, INC.; OPENLOGIC, INC.; VISUAL NUMERICS, INC.; AKANA, INC.
Reel/Frame 048289/0928 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Feb 8, 2019
From: AKANA, INC.
To: ANTARES CAPITAL LP, AS COLLATERAL AGENT
Reel/Frame 049859/0124 →
RELEASE OF SECURITY INTEREST Recorded Dec 6, 2016
From: MULTIPLIER CAPITAL, LP
To: AKANA, INC.
Reel/Frame 040842/0358 →
SECURITY INTEREST Recorded Nov 29, 2016
From: AKANA, INC.
To: NEWSTAR FINANCIAL, INC.
Reel/Frame 040456/0699 →
SECURITY AGREEMENT Recorded Apr 7, 2016
From: AKANA, INC.
To: MULTIPLIER CAPITAL, LP
Reel/Frame 038381/0780 →
CHANGE OF NAME Recorded May 1, 2015
From: SOA SOFTWARE, INC.
To: AKANA, INC.
Reel/Frame 035566/0196 →
RELEASE OF SECURITY INTEREST Recorded Jun 23, 2014
From: VENTURE LENDING & LEASING V, INC.
To: SOA SOFTWARE, INC.
Reel/Frame 033217/0035 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2014
From: BLUE TITAN SOFTWARE, INC.
To: SOA SOFTWARE INC.
Reel/Frame 033070/0604 →
SECURITY INTEREST Recorded Aug 18, 2008
From: SOA SOFTWARE, INC.
To: VENTURE LENDING & LEASING V, INC.
Reel/Frame 021411/0393 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2003
From: TOTH, PAUL KEVIN; MARTINEZ, FRANK
To: BLUE TITAN SOFTWARE, INC.
Reel/Frame 014693/0009 →